From a14772e48923121be9152419d57c8c0bc5ecc28b Mon Sep 17 00:00:00 2001 From: Raghu Saxena Date: Tue, 29 Nov 2022 10:57:45 +0800 Subject: [PATCH 1/3] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3478cd3..191634c 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ npm install bencode ## Usage ```javascript -var bencode = require( 'bencode' ) +import bencode from 'bencode'; ``` You can also use node-bencode with browserify to be able to use it in a lot of modern browsers. From 84501fc930ce37e1fcc135093dbaf16a44f839ae Mon Sep 17 00:00:00 2001 From: Raghu Saxena Date: Mon, 1 Apr 2024 13:28:49 +0530 Subject: [PATCH 2/3] Revert "Update README" This reverts commit a14772e48923121be9152419d57c8c0bc5ecc28b. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 191634c..3478cd3 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ npm install bencode ## Usage ```javascript -import bencode from 'bencode'; +var bencode = require( 'bencode' ) ``` You can also use node-bencode with browserify to be able to use it in a lot of modern browsers. From a1135e61945b4ee3faa9e05f554e734ba3cfe752 Mon Sep 17 00:00:00 2001 From: Raghu Saxena Date: Mon, 1 Apr 2024 13:40:27 +0530 Subject: [PATCH 3/3] Set bytes to position for compliance with abstract-encoding --- lib/decode.js | 5 +++-- test/decode.length.test.js | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 test/decode.length.test.js diff --git a/lib/decode.js b/lib/decode.js index e7c5908..54a3e96 100644 --- a/lib/decode.js +++ b/lib/decode.js @@ -78,9 +78,10 @@ function decode (data, start, end, encoding) { ? text2arr(data) : new Uint8Array(data.slice(start, end)) - decode.bytes = decode.data.length + const decodeResult = decode.next() + decode.bytes = decode.position - return decode.next() + return decodeResult } decode.bytes = 0 diff --git a/test/decode.length.test.js b/test/decode.length.test.js new file mode 100644 index 0000000..23ce28b --- /dev/null +++ b/test/decode.length.test.js @@ -0,0 +1,24 @@ +import test from 'tape' +import bencode from '../index.js' + +test('bencode#decode#bytes', function (t) { + t.test('bytes should be set to correct value for two separate bencoded elements', function (t) { + t.plan(2) + t.equal(bencode.decode('i123ei123e'), 123) + t.equal(bencode.decode.bytes, 5) + }) + t.test('bytes should be set to correct value when followed by random junk data', function (t) { + t.plan(1) + const someData = { + string: 'Hello World', + integer: 12345, + dict: { + key: 'This is a string within a dictionary' + }, + list: [1, 2, 3, 4, 'string', 5, {}] + } + const result = bencode.encode(someData) + bencode.decode(Buffer.from(result).toString() + 'RANDOM_JUNK_DATA') + t.equal(bencode.decode.bytes, result.length) + }) +})