@bitgo/sdk-core 28.2.0 → 28.4.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/src/account-lib/baseCoin/enum.d.ts +1 -1
  3. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/iface.d.ts +14 -14
  5. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  6. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +9 -9
  7. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  8. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  9. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +41 -41
  10. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  11. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  12. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +5 -7
  13. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  14. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  15. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  16. package/dist/src/bitgo/address-book/types.d.ts +36 -36
  17. package/dist/src/bitgo/address-book/types.d.ts.map +1 -1
  18. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +7 -7
  19. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  20. package/dist/src/bitgo/coinFactory.d.ts +1 -1
  21. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  22. package/dist/src/bitgo/config.d.ts +2 -2
  23. package/dist/src/bitgo/config.d.ts.map +1 -1
  24. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +1 -1
  25. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  26. package/dist/src/bitgo/environments.d.ts +3 -3
  27. package/dist/src/bitgo/environments.d.ts.map +1 -1
  28. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +1 -1
  29. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  30. package/dist/src/bitgo/keychain/iKeychains.d.ts +9 -10
  31. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  32. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  33. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  34. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  35. package/dist/src/bitgo/lightning/codecs.d.ts +143 -0
  36. package/dist/src/bitgo/lightning/codecs.d.ts.map +1 -0
  37. package/dist/src/bitgo/lightning/codecs.js +75 -0
  38. package/dist/src/bitgo/lightning/custodial/iLightning.d.ts +12 -12
  39. package/dist/src/bitgo/lightning/custodial/iLightning.d.ts.map +1 -1
  40. package/dist/src/bitgo/lightning/custodial/lightningUtils.d.ts +1 -1
  41. package/dist/src/bitgo/lightning/custodial/lightningUtils.d.ts.map +1 -1
  42. package/dist/src/bitgo/lightning/index.d.ts +2 -0
  43. package/dist/src/bitgo/lightning/index.d.ts.map +1 -1
  44. package/dist/src/bitgo/lightning/index.js +3 -1
  45. package/dist/src/bitgo/lightning/lightningUtils.d.ts +22 -1
  46. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +1 -1
  47. package/dist/src/bitgo/lightning/lightningUtils.js +117 -2
  48. package/dist/src/bitgo/lightning/lightningWallet.d.ts +18 -0
  49. package/dist/src/bitgo/lightning/lightningWallet.d.ts.map +1 -0
  50. package/dist/src/bitgo/lightning/lightningWallet.js +67 -0
  51. package/dist/src/bitgo/lightning/signableJson.d.ts +1 -1
  52. package/dist/src/bitgo/lightning/signableJson.d.ts.map +1 -1
  53. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  54. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  55. package/dist/src/bitgo/recovery/initiate.d.ts +1 -1
  56. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  57. package/dist/src/bitgo/staking/iStakingWallet.d.ts +3 -2
  58. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  59. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  60. package/dist/src/bitgo/staking/stakingWallet.d.ts +2 -1
  61. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  62. package/dist/src/bitgo/staking/stakingWallet.js +2 -1
  63. package/dist/src/bitgo/trading/network/types.d.ts +50 -50
  64. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  65. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +1 -1
  66. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  67. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  68. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  69. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +1 -1
  70. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  71. package/dist/src/bitgo/tss/eddsa/eddsa.js +9 -12
  72. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  73. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  74. package/dist/src/bitgo/tss/types.d.ts +3 -3
  75. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  76. package/dist/src/bitgo/types.d.ts +3 -3
  77. package/dist/src/bitgo/types.d.ts.map +1 -1
  78. package/dist/src/bitgo/utils/opengpgUtils.d.ts +2 -2
  79. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  80. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  81. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  82. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  83. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  84. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +15 -15
  85. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  86. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -7
  87. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  88. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +2 -2
  89. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -1
  90. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
  91. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  92. package/dist/src/bitgo/wallet/BuildParams.d.ts +1 -1
  93. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  94. package/dist/src/bitgo/wallet/iWallet.d.ts +12 -8
  95. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  96. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  97. package/dist/src/bitgo/wallet/iWallets.d.ts +6 -6
  98. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  99. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  100. package/dist/src/bitgo/wallet/wallets.js +127 -112
  101. package/dist/test/unit/bitgo/lightning/codecs.d.ts +2 -0
  102. package/dist/test/unit/bitgo/lightning/codecs.d.ts.map +1 -0
  103. package/dist/test/unit/bitgo/lightning/codecs.js +137 -0
  104. package/dist/test/unit/bitgo/lightning/createWatchOnlyFixture.d.ts +4 -0
  105. package/dist/test/unit/bitgo/lightning/createWatchOnlyFixture.d.ts.map +1 -0
  106. package/dist/test/unit/bitgo/lightning/createWatchOnlyFixture.js +1562 -0
  107. package/dist/test/unit/bitgo/lightning/lightningUtils.js +39 -11
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +6 -4
@@ -28,7 +28,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const assert_1 = __importDefault(require("assert"));
30
30
  const utxolib = __importStar(require("@bitgo/utxo-lib"));
31
- const lightning_1 = require("../../../../src/bitgo/lightning");
31
+ const macaroon_1 = require("macaroon");
32
+ const src_1 = require("../../../../src");
33
+ const createWatchOnlyFixture_1 = require("./createWatchOnlyFixture");
34
+ const utxo_lib_1 = require("@bitgo/utxo-lib");
32
35
  describe('lightning utils', function () {
33
36
  [
34
37
  { name: 'lnbtc', networkName: 'bitcoin' },
@@ -36,27 +39,52 @@ describe('lightning utils', function () {
36
39
  ].forEach(({ name, networkName }) => {
37
40
  describe(`success - coin ${name} and network ${networkName}`, function () {
38
41
  it(`isValidLightningNetworkName and getLightningNetwork`, function () {
39
- (0, assert_1.default)((0, lightning_1.isValidLightningNetworkName)(networkName));
40
- const network = (0, lightning_1.getLightningNetwork)(networkName);
42
+ (0, assert_1.default)((0, src_1.isValidLightningNetworkName)(networkName));
43
+ const network = (0, src_1.getLightningNetwork)(networkName);
41
44
  assert_1.default.strictEqual(network, utxolib.networks[networkName]);
42
45
  });
43
46
  it(`isValidLightningNetwork`, function () {
44
- (0, assert_1.default)((0, lightning_1.isValidLightningNetworkName)(networkName));
45
- (0, assert_1.default)((0, lightning_1.isValidLightningNetwork)(utxolib.networks[networkName]));
47
+ (0, assert_1.default)((0, src_1.isValidLightningNetworkName)(networkName));
48
+ (0, assert_1.default)((0, src_1.isValidLightningNetwork)(utxolib.networks[networkName]));
46
49
  });
47
50
  it(`getUtxolibNetworkName`, function () {
48
- assert_1.default.strictEqual((0, lightning_1.getUtxolibNetworkName)(name), networkName);
51
+ assert_1.default.strictEqual((0, src_1.getUtxolibNetworkName)(name), networkName);
52
+ });
53
+ it(`getUtxolibNetwork`, function () {
54
+ assert_1.default.strictEqual((0, src_1.getUtxolibNetwork)(name), networkName === 'bitcoin' ? utxolib.networks.bitcoin : utxolib.networks.testnet);
55
+ });
56
+ it(`isLightningCoinName`, function () {
57
+ assert_1.default.strictEqual((0, src_1.isLightningCoinName)(name), true);
58
+ assert_1.default.strictEqual((0, src_1.isLightningCoinName)('ltc'), false);
49
59
  });
50
60
  });
51
61
  });
52
62
  it(`isValidLightningNetworkName should return false for non lightning network name`, function () {
53
- assert_1.default.strictEqual((0, lightning_1.isValidLightningNetworkName)('litecoin'), false);
63
+ assert_1.default.strictEqual((0, src_1.isValidLightningNetworkName)('litecoin'), false);
54
64
  });
55
65
  it(`isValidLightningNetwork should return false for non lightning network`, function () {
56
- assert_1.default.strictEqual((0, lightning_1.isValidLightningNetwork)(utxolib.networks['litecoin']), false);
66
+ assert_1.default.strictEqual((0, src_1.isValidLightningNetwork)(utxolib.networks['litecoin']), false);
67
+ });
68
+ it(`getUtxolibNetworkName should return undefined for non lightning coin`, function () {
69
+ assert_1.default.strictEqual((0, src_1.getUtxolibNetworkName)('ltc'), undefined);
70
+ });
71
+ it(`getUtxolibNetwork should return fail for invalid lightning coin`, function () {
72
+ assert_1.default.throws(() => {
73
+ (0, src_1.getUtxolibNetwork)('ltc');
74
+ }, /invalid lightning network/);
75
+ });
76
+ it(`createWatchOnly`, function () {
77
+ const watchOnly = (0, src_1.createWatchOnly)(createWatchOnlyFixture_1.signerRootKey, utxo_lib_1.networks.testnet);
78
+ assert_1.default.deepStrictEqual(watchOnly.accounts, createWatchOnlyFixture_1.accounts);
79
+ assert_1.default.strictEqual(watchOnly.master_key_fingerprint, utxolib.bip32.fromBase58(createWatchOnlyFixture_1.signerRootKey, utxo_lib_1.networks.testnet).fingerprint.toString('hex'));
57
80
  });
58
- it(`isValidLightningNetwork should return undefined for non lightning coin`, function () {
59
- assert_1.default.strictEqual((0, lightning_1.getUtxolibNetworkName)('ltc'), undefined);
81
+ it(`addIPCaveatToMacaroon`, function () {
82
+ const macaroon = 'AgEDbG5kAvgBAwoQMgU7rDi802Yqg/tHll24nhIBMBoWCgdhZGRyZXNzEgRyZWFkEgV3cml0ZRoTCgRpbmZvEgRyZWFkEgV3cml0ZRoXCghpbnZvaWNlcxIEcmVhZBIFd3JpdGUaIQoIbWFjYXJvb24SCGdlbmVyYXRlEgRyZWFkEgV3cml0ZRoWCgdtZXNzYWdlEgRyZWFkEgV3cml0ZRoXCghvZmZjaGFpbhIEcmVhZBIFd3JpdGUaFgoHb25jaGFpbhIEcmVhZBIFd3JpdGUaFAoFcGVlcnMSBHJlYWQSBXdyaXRlGhgKBnNpZ25lchIIZ2VuZXJhdGUSBHJlYWQAAAYgZKiUvEzxGd2QKGUS+9R5ZWevG09S06fMJUnt+k1XXXQ=';
83
+ const macaroonObj = (0, macaroon_1.importMacaroon)(macaroon).exportJSON();
84
+ assert_1.default.strictEqual(macaroonObj.c, undefined);
85
+ const macaroonWithCaveat = (0, src_1.addIPCaveatToMacaroon)(macaroon, '127.0.0.1');
86
+ const macaroonObjWithCaveat = (0, macaroon_1.importMacaroon)(macaroonWithCaveat).exportJSON();
87
+ assert_1.default.strictEqual(macaroonObjWithCaveat.c[0].i, 'ipaddr 127.0.0.1');
60
88
  });
61
89
  });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vbGlnaHRuaW5nL2xpZ2h0bmluZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIseURBQTJDO0FBRTNDLCtEQUt5QztBQUV6QyxRQUFRLENBQUMsaUJBQWlCLEVBQUU7SUFDMUI7UUFDRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtRQUN6QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtLQUMzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDbEMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixXQUFXLEVBQUUsRUFBRTtZQUM1RCxFQUFFLENBQUMscURBQXFELEVBQUU7Z0JBQ3hELElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUEsK0JBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELGdCQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUU7Z0JBQzVCLElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUEsZ0JBQU0sRUFBQyxJQUFBLG1DQUF1QixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFO2dCQUMxQixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLGlDQUFxQixFQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRTtRQUNuRixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHVDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVFQUF1RSxFQUFFO1FBQzFFLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsbUNBQXVCLEVBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdFQUF3RSxFQUFFO1FBQzNFLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsaUNBQXFCLEVBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHtcbiAgZ2V0TGlnaHRuaW5nTmV0d29yayxcbiAgZ2V0VXR4b2xpYk5ldHdvcmtOYW1lLFxuICBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayxcbiAgaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nJztcblxuZGVzY3JpYmUoJ2xpZ2h0bmluZyB1dGlscycsIGZ1bmN0aW9uICgpIHtcbiAgW1xuICAgIHsgbmFtZTogJ2xuYnRjJywgbmV0d29ya05hbWU6ICdiaXRjb2luJyB9LFxuICAgIHsgbmFtZTogJ3RsbmJ0YycsIG5ldHdvcmtOYW1lOiAndGVzdG5ldCcgfSxcbiAgXS5mb3JFYWNoKCh7IG5hbWUsIG5ldHdvcmtOYW1lIH0pID0+IHtcbiAgICBkZXNjcmliZShgc3VjY2VzcyAtIGNvaW4gJHtuYW1lfSBhbmQgbmV0d29yayAke25ldHdvcmtOYW1lfWAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya05hbWUgYW5kIGdldExpZ2h0bmluZ05ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzc2VydChpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya05hbWUobmV0d29ya05hbWUpKTtcbiAgICAgICAgY29uc3QgbmV0d29yayA9IGdldExpZ2h0bmluZ05ldHdvcmsobmV0d29ya05hbWUpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV0d29yaywgdXR4b2xpYi5uZXR3b3Jrc1tuZXR3b3JrTmFtZV0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXNzZXJ0KGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZShuZXR3b3JrTmFtZSkpO1xuICAgICAgICBhc3NlcnQoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmsodXR4b2xpYi5uZXR3b3Jrc1tuZXR3b3JrTmFtZV0pKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdChgZ2V0VXR4b2xpYk5ldHdvcmtOYW1lYCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0VXR4b2xpYk5ldHdvcmtOYW1lKG5hbWUpLCBuZXR3b3JrTmFtZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoYGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmsgbmFtZWAsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lKCdsaXRlY29pbicpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrKHV0eG9saWIubmV0d29ya3NbJ2xpdGVjb2luJ10pLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayBzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3Igbm9uIGxpZ2h0bmluZyBjb2luYCwgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRVdHhvbGliTmV0d29ya05hbWUoJ2x0YycpLCB1bmRlZmluZWQpO1xuICB9KTtcbn0pO1xuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vbGlnaHRuaW5nL2xpZ2h0bmluZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIseURBQTJDO0FBQzNDLHVDQUEwQztBQUUxQyx5Q0FTeUI7QUFDekIscUVBQW1FO0FBQ25FLDhDQUEyQztBQUUzQyxRQUFRLENBQUMsaUJBQWlCLEVBQUU7SUFDMUI7UUFDRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtRQUN6QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtLQUMzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDbEMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixXQUFXLEVBQUUsRUFBRTtZQUM1RCxFQUFFLENBQUMscURBQXFELEVBQUU7Z0JBQ3hELElBQUEsZ0JBQU0sRUFBQyxJQUFBLGlDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUEseUJBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELGdCQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUU7Z0JBQzVCLElBQUEsZ0JBQU0sRUFBQyxJQUFBLGlDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUEsZ0JBQU0sRUFBQyxJQUFBLDZCQUF1QixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFD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a0IsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlFLGdCQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgaW1wb3J0TWFjYXJvb24gfSBmcm9tICdtYWNhcm9vbic7XG5cbmltcG9ydCB7XG4gIGFkZElQQ2F2ZWF0VG9NYWNhcm9vbixcbiAgY3JlYXRlV2F0Y2hPbmx5LFxuICBnZXRMaWdodG5pbmdOZXR3b3JrLFxuICBnZXRVdHhvbGliTmV0d29yayxcbiAgZ2V0VXR4b2xpYk5ldHdvcmtOYW1lLFxuICBpc0xpZ2h0bmluZ0NvaW5OYW1lLFxuICBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayxcbiAgaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgYWNjb3VudHMsIHNpZ25lclJvb3RLZXkgfSBmcm9tICcuL2NyZWF0ZVdhdGNoT25seUZpeHR1cmUnO1xuaW1wb3J0IHsgbmV0d29ya3MgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5kZXNjcmliZSgnbGlnaHRuaW5nIHV0aWxzJywgZnVuY3Rpb24gKCkge1xuICBbXG4gICAgeyBuYW1lOiAnbG5idGMnLCBuZXR3b3JrTmFtZTogJ2JpdGNvaW4nIH0sXG4gICAgeyBuYW1lOiAndGxuYnRjJywgbmV0d29ya05hbWU6ICd0ZXN0bmV0JyB9LFxuICBdLmZvckVhY2goKHsgbmFtZSwgbmV0d29ya05hbWUgfSkgPT4ge1xuICAgIGRlc2NyaWJlKGBzdWNjZXNzIC0gY29pbiAke25hbWV9IGFuZCBuZXR3b3JrICR7bmV0d29ya05hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoYGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSBhbmQgZ2V0TGlnaHRuaW5nTmV0d29ya2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXNzZXJ0KGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZShuZXR3b3JrTmFtZSkpO1xuICAgICAgICBjb25zdCBuZXR3b3JrID0gZ2V0TGlnaHRuaW5nTmV0d29yayhuZXR3b3JrTmFtZSk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXR3b3JrLCB1dHhvbGliLm5ldHdvcmtzW25ldHdvcmtOYW1lXSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoYGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrYCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBhc3NlcnQoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lKG5ldHdvcmtOYW1lKSk7XG4gICAgICAgIGFzc2VydChpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayh1dHhvbGliLm5ldHdvcmtzW25ldHdvcmtOYW1lXSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KGBnZXRVdHhvbGliTmV0d29ya05hbWVgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRVdHhvbGliTmV0d29ya05hbWUobmFtZSksIG5ldHdvcmtOYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdChgZ2V0VXR4b2xpYk5ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICBnZXRVdHhvbGliTmV0d29yayhuYW1lKSxcbiAgICAgICAgICBuZXR3b3JrTmFtZSA9PT0gJ2JpdGNvaW4nID8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIDogdXR4b2xpYi5uZXR3b3Jrcy50ZXN0bmV0XG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgaXQoYGlzTGlnaHRuaW5nQ29pbk5hbWVgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc0xpZ2h0bmluZ0NvaW5OYW1lKG5hbWUpLCB0cnVlKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzTGlnaHRuaW5nQ29pbk5hbWUoJ2x0YycpLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoYGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmsgbmFtZWAsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lKCdsaXRlY29pbicpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrKHV0eG9saWIubmV0d29ya3NbJ2xpdGVjb2luJ10pLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBnZXRVdHhvbGliTmV0d29ya05hbWUgc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIG5vbiBsaWdodG5pbmcgY29pbmAsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0VXR4b2xpYk5ldHdvcmtOYW1lKCdsdGMnKSwgdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoYGdldFV0eG9saWJOZXR3b3JrIHNob3VsZCByZXR1cm4gZmFpbCBmb3IgaW52YWxpZCBsaWdodG5pbmcgY29pbmAsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IHtcbiAgICAgIGdldFV0eG9saWJOZXR3b3JrKCdsdGMnKTtcbiAgICB9LCAvaW52YWxpZCBsaWdodG5pbmcgbmV0d29yay8pO1xuICB9KTtcblxuICBpdChgY3JlYXRlV2F0Y2hPbmx5YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhdGNoT25seSA9IGNyZWF0ZVdhdGNoT25seShzaWduZXJSb290S2V5LCBuZXR3b3Jrcy50ZXN0bmV0KTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdhdGNoT25seS5hY2NvdW50cywgYWNjb3VudHMpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgIHdhdGNoT25seS5tYXN0ZXJfa2V5X2ZpbmdlcnByaW50LFxuICAgICAgdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KHNpZ25lclJvb3RLZXksIG5ldHdvcmtzLnRlc3RuZXQpLmZpbmdlcnByaW50LnRvU3RyaW5nKCdoZXgnKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KGBhZGRJUENhdmVhdFRvTWFjYXJvb25gLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbWFjYXJvb24gPVxuICAgICAgJ0FnRURiRzVrQXZnQkF3b1FNZ1U3ckRpODAyWXFnL3RIbGwyNG5oSUJNQm9XQ2dkaFpHUnlaWE56RWdSeVpXRmtFZ1YzY21sMFpSb1RDZ1JwYm1adkVnUnlaV0ZrRWdWM2NtbDBaUm9YQ2docGJuWnZhV05sY3hJRWNtVmhaQklGZDNKcGRHVWFJUW9JYldGallYSnZiMjRTQ0dkbGJtVnlZWFJsRWdSeVpXRmtFZ1YzY21sMFpSb1dDZ2R0WlhOellXZGxFZ1J5WldGa0VnVjNjbWwwWlJvWENnaHZabVpqYUdGcGJoSUVjbVZoWkJJRmQzSnBkR1VhRmdvSGIyNWphR0ZwYmhJRWNtVmhaQklGZDNKcGRHVWFGQW9GY0dWbGNuTVNCSEpsWVdRU0JYZHlhWFJsR2hnS0JuTnBaMjVsY2hJSVoyVnVaWEpoZEdVU0JISmxZV1FBQUFZZ1pLaVV2RXp4R2QyUUtHVVMrOVI1WldldkcwOVMwNmZNSlVudCtrMVhYWFE9JztcbiAgICBjb25zdCBtYWNhcm9vbk9iaiA9IGltcG9ydE1hY2Fyb29uKG1hY2Fyb29uKS5leHBvcnRKU09OKCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY2Fyb29uT2JqLmMsIHVuZGVmaW5lZCk7XG4gICAgY29uc3QgbWFjYXJvb25XaXRoQ2F2ZWF0ID0gYWRkSVBDYXZlYXRUb01hY2Fyb29uKG1hY2Fyb29uLCAnMTI3LjAuMC4xJyk7XG4gICAgY29uc3QgbWFjYXJvb25PYmpXaXRoQ2F2ZWF0ID0gaW1wb3J0TWFjYXJvb24obWFjYXJvb25XaXRoQ2F2ZWF0KS5leHBvcnRKU09OKCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY2Fyb29uT2JqV2l0aENhdmVhdC5jWzBdLmksICdpcGFkZHIgMTI3LjAuMC4xJyk7XG4gIH0pO1xufSk7XG4iXX0=