@bitgo-beta/utxo-bin 2.8.3-beta.9 → 2.8.3-beta.91

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 (67) hide show
  1. package/README.md +107 -86
  2. package/dist/bin/index.js +9 -2
  3. package/dist/src/AddressParser.d.ts +1 -0
  4. package/dist/src/AddressParser.d.ts.map +1 -1
  5. package/dist/src/AddressParser.js +7 -1
  6. package/dist/src/InputParser.d.ts +44 -0
  7. package/dist/src/InputParser.d.ts.map +1 -0
  8. package/dist/src/InputParser.js +239 -0
  9. package/dist/src/OutputParser.d.ts +24 -0
  10. package/dist/src/OutputParser.d.ts.map +1 -0
  11. package/dist/src/OutputParser.js +52 -0
  12. package/dist/src/Parser.d.ts +7 -1
  13. package/dist/src/Parser.d.ts.map +1 -1
  14. package/dist/src/Parser.js +29 -2
  15. package/dist/src/ParserTx.d.ts +28 -0
  16. package/dist/src/ParserTx.d.ts.map +1 -0
  17. package/dist/src/ParserTx.js +94 -0
  18. package/dist/src/ScriptParser.d.ts +21 -0
  19. package/dist/src/ScriptParser.d.ts.map +1 -0
  20. package/dist/src/ScriptParser.js +77 -0
  21. package/dist/src/TxParser.d.ts +9 -6
  22. package/dist/src/TxParser.d.ts.map +1 -1
  23. package/dist/src/TxParser.js +21 -23
  24. package/dist/src/commands.d.ts +36 -1
  25. package/dist/src/commands.d.ts.map +1 -1
  26. package/dist/src/commands.js +151 -19
  27. package/dist/src/fetch.d.ts +4 -3
  28. package/dist/src/fetch.d.ts.map +1 -1
  29. package/dist/src/fetch.js +14 -3
  30. package/dist/src/format.d.ts +1 -1
  31. package/dist/src/format.d.ts.map +1 -1
  32. package/dist/src/format.js +17 -7
  33. package/dist/src/generateAddress.d.ts +32 -0
  34. package/dist/src/generateAddress.d.ts.map +1 -0
  35. package/dist/src/generateAddress.js +104 -0
  36. package/dist/src/parseString.d.ts +5 -0
  37. package/dist/src/parseString.d.ts.map +1 -0
  38. package/dist/src/parseString.js +29 -0
  39. package/dist/src/parseUnknown.d.ts +5 -0
  40. package/dist/src/parseUnknown.d.ts.map +1 -0
  41. package/dist/src/parseUnknown.js +50 -0
  42. package/dist/src/readStdin.d.ts +5 -0
  43. package/dist/src/readStdin.d.ts.map +1 -0
  44. package/dist/src/readStdin.js +42 -0
  45. package/dist/test/fixtures.d.ts +24 -0
  46. package/dist/test/fixtures.d.ts.map +1 -0
  47. package/dist/test/fixtures.js +95 -0
  48. package/dist/test/generateAddress.d.ts +2 -0
  49. package/dist/test/generateAddress.d.ts.map +1 -0
  50. package/dist/test/generateAddress.js +29 -0
  51. package/dist/test/parseAddress.d.ts +10 -0
  52. package/dist/test/parseAddress.d.ts.map +1 -0
  53. package/dist/test/parseAddress.js +87 -0
  54. package/dist/test/parseScript.d.ts +2 -0
  55. package/dist/test/parseScript.d.ts.map +1 -0
  56. package/dist/test/parseScript.js +38 -0
  57. package/dist/test/parseTransaction.d.ts +2 -0
  58. package/dist/test/parseTransaction.d.ts.map +1 -0
  59. package/dist/test/parseTransaction.js +66 -0
  60. package/dist/test/stringToBuffer.d.ts +2 -0
  61. package/dist/test/stringToBuffer.d.ts.map +1 -0
  62. package/dist/test/stringToBuffer.js +16 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -4635
  64. package/package.json +8 -6
  65. package/dist/src/InputOutputParser.d.ts +0 -35
  66. package/dist/src/InputOutputParser.d.ts.map +0 -1
  67. package/dist/src/InputOutputParser.js +0 -196
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ 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");
6
+ const ScriptParser_1 = require("../src/ScriptParser");
7
+ function testParseScript(type) {
8
+ let tx;
9
+ before('setup transaction', async function () {
10
+ tx = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
11
+ scriptType: type,
12
+ spendType: type === 'p2trMusig2' ? 'scriptPath' : undefined,
13
+ fixtureType: 'psbtFullSigned',
14
+ });
15
+ });
16
+ const parser = new ScriptParser_1.ScriptParser();
17
+ function parse(label, script) {
18
+ return parser.node(label, undefined, [parser.parse(script)]);
19
+ }
20
+ it(`parse script ${type}`, async function () {
21
+ if (tx.transaction instanceof utxolib.bitgo.UtxoTransaction) {
22
+ return this.skip();
23
+ }
24
+ const nodes = tx.transaction.data.inputs.flatMap((input) => {
25
+ return [
26
+ ...(input.redeemScript ? [parse('redeemScript', input.redeemScript)] : []),
27
+ ...(input.witnessScript ? [parse('witnessScript', input.witnessScript)] : []),
28
+ ];
29
+ });
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));
33
+ });
34
+ }
35
+ utxolib.bitgo.outputScripts.scriptTypes2Of3.forEach((scriptType) => {
36
+ testParseScript(scriptType);
37
+ });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3BhcnNlU2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLGdEQUFnRDtBQUNoRCx5Q0FBNkc7QUFFN0csc0RBQW1EO0FBRW5ELFNBQVMsZUFBZSxDQUFDLElBQWdEO0lBQ3ZFLElBQUksRUFBaUIsQ0FBQztJQUN0QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUMvQixFQUFFLEdBQUcsTUFBTSxzQ0FBMkIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMvRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixTQUFTLEVBQUUsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzNELFdBQVcsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFZLEVBQUUsQ0FBQztJQUVsQyxTQUFTLEtBQUssQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEtBQUs7UUFDOUIsSUFBSSxFQUFFLENBQUMsV0FBVyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELE9BQU87Z0JBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSwyQkFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxTQUFTLEdBQUcsNEJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSwyQkFBZ0IsQ0FBQyw4QkFBOEIsSUFBSSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7SUFDakUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZvcm1hdFRyZWVOb0NvbG9yLCBnZXRGaXh0dXJlU3RyaW5nLCBnZXRUcmFuc2FjdGlvbldpdGhTcGVuZFR5cGUsIFBhcnNlZEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9zcmMvUGFyc2VyJztcbmltcG9ydCB7IFNjcmlwdFBhcnNlciB9IGZyb20gJy4uL3NyYy9TY3JpcHRQYXJzZXInO1xuXG5mdW5jdGlvbiB0ZXN0UGFyc2VTY3JpcHQodHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzKSB7XG4gIGxldCB0eDogUGFyc2VkRml4dHVyZTtcbiAgYmVmb3JlKCdzZXR1cCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0eCA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsIHtcbiAgICAgIHNjcmlwdFR5cGU6IHR5cGUsXG4gICAgICBzcGVuZFR5cGU6IHR5cGUgPT09ICdwMnRyTXVzaWcyJyA/ICdzY3JpcHRQYXRoJyA6IHVuZGVmaW5lZCxcbiAgICAgIGZpeHR1cmVUeXBlOiAncHNidEZ1bGxTaWduZWQnLFxuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgU2NyaXB0UGFyc2VyKCk7XG5cbiAgZnVuY3Rpb24gcGFyc2UobGFiZWw6IHN0cmluZywgc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VyLm5vZGUobGFiZWwsIHVuZGVmaW5lZCwgW3BhcnNlci5wYXJzZShzY3JpcHQpXSk7XG4gIH1cblxuICBpdChgcGFyc2Ugc2NyaXB0ICR7dHlwZX1gLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGlmICh0eC50cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB0eC50cmFuc2FjdGlvbi5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKGlucHV0LnJlZGVlbVNjcmlwdCA/IFtwYXJzZSgncmVkZWVtU2NyaXB0JywgaW5wdXQucmVkZWVtU2NyaXB0KV0gOiBbXSksXG4gICAgICAgIC4uLihpbnB1dC53aXRuZXNzU2NyaXB0ID8gW3BhcnNlKCd3aXRuZXNzU2NyaXB0JywgaW5wdXQud2l0bmVzc1NjcmlwdCldIDogW10pLFxuICAgICAgXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvb3QgPSBuZXcgU2NyaXB0UGFyc2VyKCkubm9kZSgnaW5wdXRTY3JpcHRzJywgdW5kZWZpbmVkLCBub2Rlcyk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihyb290LCB7IHNob3dBbGw6IHRydWUgfSk7XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZm9ybWF0dGVkLCBhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdFNjcmlwdC8ke3R5cGV9LnR4dGAsIGZvcm1hdHRlZCkpO1xuICB9KTtcbn1cblxudXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mb3JFYWNoKChzY3JpcHRUeXBlKSA9PiB7XG4gIHRlc3RQYXJzZVNjcmlwdChzY3JpcHRUeXBlKTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parseTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseTransaction.d.ts","sourceRoot":"","sources":["../../test/parseTransaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ 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");
7
+ const commands_1 = require("../src/commands");
8
+ function getArgs({ showAll }) {
9
+ return showAll ? ['--all'] : [];
10
+ }
11
+ function getParams() {
12
+ return ['psbtUnsigned', 'psbtHalfSigned', 'psbtFullSigned', 'networkFullSigned'].flatMap((fixtureType) => {
13
+ return [false, true].flatMap((showAll) => {
14
+ return utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => {
15
+ if (scriptType === 'p2trMusig2') {
16
+ return [
17
+ { scriptType, spendType: 'keyPath', showAll, fixtureType },
18
+ { scriptType, spendType: 'scriptPath', showAll, fixtureType },
19
+ ];
20
+ }
21
+ return [{ scriptType, spendType: undefined, showAll, fixtureType }];
22
+ });
23
+ });
24
+ });
25
+ }
26
+ getParams().forEach(({ scriptType, spendType, fixtureType, showAll }) => {
27
+ describe(`parse ${fixtureType} ${scriptType} ${spendType ? spendType : 'default'} spend [args=${getArgs({
28
+ showAll,
29
+ })}`, function () {
30
+ function parse(tx, prevOutputs) {
31
+ return commands_1.getTxParser(yargs.command(commands_1.cmdParseTx).parse([...getArgs({ showAll }), '--parseError=throw'])).parse(tx, {
32
+ prevOutputs,
33
+ });
34
+ }
35
+ let fixture;
36
+ before(async function () {
37
+ fixture = await fixtures_1.getTransactionWithSpendType(utxolib.networks.testnet, {
38
+ scriptType,
39
+ spendType,
40
+ fixtureType,
41
+ });
42
+ });
43
+ it(`parses`, function () {
44
+ parse(fixture.transaction);
45
+ if (fixture.prevOutputs) {
46
+ parse(fixture.transaction, fixture.prevOutputs);
47
+ }
48
+ });
49
+ [false, true].forEach((usePrevOuts) => {
50
+ it(`formats [usePrevOuts=${usePrevOuts}]`, async function () {
51
+ if (usePrevOuts && !fixture.prevOutputs) {
52
+ this.skip();
53
+ }
54
+ const formatted = fixtures_1.formatTreeNoColor(parse(fixture.transaction, usePrevOuts ? fixture.prevOutputs : undefined), {
55
+ showAll,
56
+ });
57
+ const fixtureName = spendType ? `${scriptType}_${spendType}` : scriptType;
58
+ const filename = [fixtureName, fixtureType, showAll ? 'all' : '', usePrevOuts ? 'prevOuts' : '']
59
+ .filter((v) => v !== '')
60
+ .join('_');
61
+ assert.strictEqual(formatted, await fixtures_1.getFixtureString(`test/fixtures/formatTransaction/${filename}.txt`, formatted));
62
+ });
63
+ });
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvcGFyc2VUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtCQUErQjtBQUMvQixpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBQ2hELHlDQUE2RztBQUU3Ryw4Q0FBMEQ7QUFVMUQsU0FBUyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQXdCO0lBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixPQUFRLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbEgsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQWdCLEVBQUU7Z0JBQ3RGLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtvQkFDL0IsT0FBTzt3QkFDTCxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7d0JBQzFELEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtxQkFDOUQsQ0FBQztpQkFDSDtnQkFDRCxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0lBQ3RFLFFBQVEsQ0FBQyxTQUFTLFdBQVcsSUFBSSxVQUFVLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsZ0JBQWdCLE9BQU8sQ0FBQztRQUN0RyxPQUFPO0tBQ1IsQ0FBQyxFQUFFLEVBQUU7UUFDSixTQUFTLEtBQUssQ0FBQyxFQUFZLEVBQUUsV0FBd0M7WUFDbkUsT0FBTyxzQkFBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFRLENBQUMsQ0FBQyxLQUFLLENBQy9HLEVBQUUsRUFDRjtnQkFDRSxXQUFXO2FBQ1osQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksT0FBc0IsQ0FBQztRQUMzQixNQUFNLENBQUMsS0FBSztZQUNWLE9BQU8sR0FBRyxNQUFNLHNDQUEyQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwRSxVQUFVO2dCQUNWLFNBQVM7Z0JBQ1QsV0FBVzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNYLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsQ0FBQyx3QkFBd0IsV0FBVyxHQUFHLEVBQUUsS0FBSztnQkFDOUMsSUFBSSxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO29CQUN2QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcsNEJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDN0csT0FBTztpQkFDUixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUMxRSxNQUFNLFFBQVEsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUM3RixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsV0FBVyxDQUNoQixTQUFTLEVBQ1QsTUFBTSwyQkFBZ0IsQ0FBQyxtQ0FBbUMsUUFBUSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQ3JGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vY2hhIGZyb20gJ21vY2hhJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZywgZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlLCBQYXJzZWRGaXh0dXJlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBQYXJzZXJOb2RlIH0gZnJvbSAnLi4vc3JjL1BhcnNlcic7XG5pbXBvcnQgeyBjbWRQYXJzZVR4LCBnZXRUeFBhcnNlciB9IGZyb20gJy4uL3NyYy9jb21tYW5kcyc7XG5pbXBvcnQgeyBQYXJzZXJUeCB9IGZyb20gJy4uL3NyYy9QYXJzZXJUeCc7XG5cbnR5cGUgVGVzdFBhcmFtcyA9IHtcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuICBzcGVuZFR5cGU6ICdrZXlQYXRoJyB8ICdzY3JpcHRQYXRoJyB8IHVuZGVmaW5lZDtcbiAgZml4dHVyZVR5cGU6ICdwc2J0VW5zaWduZWQnIHwgJ3BzYnRIYWxmU2lnbmVkJyB8ICdwc2J0RnVsbFNpZ25lZCcgfCAnbmV0d29ya0Z1bGxTaWduZWQnO1xuICBzaG93QWxsOiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gZ2V0QXJncyh7IHNob3dBbGwgfTogeyBzaG93QWxsOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBzaG93QWxsID8gWyctLWFsbCddIDogW107XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcygpOiBUZXN0UGFyYW1zW10ge1xuICByZXR1cm4gKFsncHNidFVuc2lnbmVkJywgJ3BzYnRIYWxmU2lnbmVkJywgJ3BzYnRGdWxsU2lnbmVkJywgJ25ldHdvcmtGdWxsU2lnbmVkJ10gYXMgY29uc3QpLmZsYXRNYXAoKGZpeHR1cmVUeXBlKSA9PiB7XG4gICAgcmV0dXJuIFtmYWxzZSwgdHJ1ZV0uZmxhdE1hcCgoc2hvd0FsbCkgPT4ge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMuZmxhdE1hcCgoc2NyaXB0VHlwZSk6IFRlc3RQYXJhbXNbXSA9PiB7XG4gICAgICAgIGlmIChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBzY3JpcHRUeXBlLCBzcGVuZFR5cGU6ICdrZXlQYXRoJywgc2hvd0FsbCwgZml4dHVyZVR5cGUgfSxcbiAgICAgICAgICAgIHsgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiAnc2NyaXB0UGF0aCcsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3sgc2NyaXB0VHlwZSwgc3BlbmRUeXBlOiB1bmRlZmluZWQsIHNob3dBbGwsIGZpeHR1cmVUeXBlIH1dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5nZXRQYXJhbXMoKS5mb3JFYWNoKCh7IHNjcmlwdFR5cGUsIHNwZW5kVHlwZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgfSkgPT4ge1xuICBkZXNjcmliZShgcGFyc2UgJHtmaXh0dXJlVHlwZX0gJHtzY3JpcHRUeXBlfSAke3NwZW5kVHlwZSA/IHNwZW5kVHlwZSA6ICdkZWZhdWx0J30gc3BlbmQgW2FyZ3M9JHtnZXRBcmdzKHtcbiAgICBzaG93QWxsLFxuICB9KX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gcGFyc2UodHg6IFBhcnNlclR4LCBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXQ8YmlnaW50PltdKTogUGFyc2VyTm9kZSB7XG4gICAgICByZXR1cm4gZ2V0VHhQYXJzZXIoeWFyZ3MuY29tbWFuZChjbWRQYXJzZVR4KS5wYXJzZShbLi4uZ2V0QXJncyh7IHNob3dBbGwgfSksICctLXBhcnNlRXJyb3I9dGhyb3cnXSkgYXMgYW55KS5wYXJzZShcbiAgICAgICAgdHgsXG4gICAgICAgIHtcbiAgICAgICAgICBwcmV2T3V0cHV0cyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgZml4dHVyZTogUGFyc2VkRml4dHVyZTtcbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgZml4dHVyZSA9IGF3YWl0IGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZSh1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQsIHtcbiAgICAgICAgc2NyaXB0VHlwZSxcbiAgICAgICAgc3BlbmRUeXBlLFxuICAgICAgICBmaXh0dXJlVHlwZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYHBhcnNlc2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBhcnNlKGZpeHR1cmUudHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKGZpeHR1cmUucHJldk91dHB1dHMpIHtcbiAgICAgICAgcGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgZml4dHVyZS5wcmV2T3V0cHV0cyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBbZmFsc2UsIHRydWVdLmZvckVhY2goKHVzZVByZXZPdXRzKSA9PiB7XG4gICAgICBpdChgZm9ybWF0cyBbdXNlUHJldk91dHM9JHt1c2VQcmV2T3V0c31dYCwgYXN5bmMgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgaWYgKHVzZVByZXZPdXRzICYmICFmaXh0dXJlLnByZXZPdXRwdXRzKSB7XG4gICAgICAgICAgdGhpcy5za2lwKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VHJlZU5vQ29sb3IocGFyc2UoZml4dHVyZS50cmFuc2FjdGlvbiwgdXNlUHJldk91dHMgPyBmaXh0dXJlLnByZXZPdXRwdXRzIDogdW5kZWZpbmVkKSwge1xuICAgICAgICAgIHNob3dBbGwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmaXh0dXJlTmFtZSA9IHNwZW5kVHlwZSA/IGAke3NjcmlwdFR5cGV9XyR7c3BlbmRUeXBlfWAgOiBzY3JpcHRUeXBlO1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IFtmaXh0dXJlTmFtZSwgZml4dHVyZVR5cGUsIHNob3dBbGwgPyAnYWxsJyA6ICcnLCB1c2VQcmV2T3V0cyA/ICdwcmV2T3V0cycgOiAnJ11cbiAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSAnJylcbiAgICAgICAgICAuam9pbignXycpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgZm9ybWF0dGVkLFxuICAgICAgICAgIGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0VHJhbnNhY3Rpb24vJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stringToBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringToBuffer.d.ts","sourceRoot":"","sources":["../../test/stringToBuffer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const parseString_1 = require("../src/parseString");
5
+ describe('stringToBuffer', function () {
6
+ const bytes = Buffer.alloc(32, 42);
7
+ it('converts hex and base64', function () {
8
+ for (const e of ['hex', 'base64']) {
9
+ const str = bytes.toString(e);
10
+ assert.deepStrictEqual(parseString_1.stringToBuffer(str, ['hex', 'base64']), bytes);
11
+ const strNl = [str.slice(0, 4), str.slice(4)].join('\n');
12
+ assert.deepStrictEqual(parseString_1.stringToBuffer(strNl, ['hex', 'base64']), bytes);
13
+ }
14
+ });
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nVG9CdWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L3N0cmluZ1RvQnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBRWpDLG9EQUFvRDtBQUVwRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7SUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsRUFBRSxDQUFDLHlCQUF5QixFQUFFO1FBQzVCLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsZUFBZSxDQUFDLDRCQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxlQUFlLENBQUMsNEJBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgc3RyaW5nVG9CdWZmZXIgfSBmcm9tICcuLi9zcmMvcGFyc2VTdHJpbmcnO1xuXG5kZXNjcmliZSgnc3RyaW5nVG9CdWZmZXInLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJ5dGVzID0gQnVmZmVyLmFsbG9jKDMyLCA0Mik7XG4gIGl0KCdjb252ZXJ0cyBoZXggYW5kIGJhc2U2NCcsIGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKGNvbnN0IGUgb2YgWydoZXgnLCAnYmFzZTY0J10pIHtcbiAgICAgIGNvbnN0IHN0ciA9IGJ5dGVzLnRvU3RyaW5nKGUpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdHJpbmdUb0J1ZmZlcihzdHIsIFsnaGV4JywgJ2Jhc2U2NCddKSwgYnl0ZXMpO1xuXG4gICAgICBjb25zdCBzdHJObCA9IFtzdHIuc2xpY2UoMCwgNCksIHN0ci5zbGljZSg0KV0uam9pbignXFxuJyk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0cmluZ1RvQnVmZmVyKHN0ck5sLCBbJ2hleCcsICdiYXNlNjQnXSksIGJ5dGVzKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=