@ctrl/torrent-file 1.3.0 → 2.0.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.
File without changes
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decode = void 0;
4
1
  const INTEGER_START = 0x69; // 'i'
5
2
  const STRING_DELIM = 0x3a; // ':'
6
3
  const DICTIONARY_START = 0x64; // 'd'
@@ -15,8 +12,11 @@ function getIntFromBuffer(buffer, start, end) {
15
12
  let sign = 1;
16
13
  for (let i = start; i < end; i++) {
17
14
  const num = buffer[i];
15
+ if (typeof num === 'undefined') {
16
+ continue;
17
+ }
18
18
  if (num < 58 && num >= 48) {
19
- sum = ((sum * 10) + (num - 48));
19
+ sum = sum * 10 + (num - 48);
20
20
  continue;
21
21
  }
22
22
  if (i === start && num === 43) {
@@ -40,7 +40,7 @@ function getIntFromBuffer(buffer, start, end) {
40
40
  /**
41
41
  * Decodes bencoded data
42
42
  */
43
- function decode(data, encoding = null) {
43
+ export function decode(data, encoding = null) {
44
44
  const state = {
45
45
  bytes: 0,
46
46
  position: 0,
@@ -54,7 +54,6 @@ function decode(data, encoding = null) {
54
54
  state.bytes = state.data.length;
55
55
  return next(state);
56
56
  }
57
- exports.decode = decode;
58
57
  function next(state) {
59
58
  switch (state.data[state.position]) {
60
59
  case DICTIONARY_START:
@@ -112,8 +111,7 @@ function buffer(state) {
112
111
  const length = getIntFromBuffer(state.data, state.position, sep);
113
112
  const end = ++sep + length;
114
113
  state.position = end;
115
- return state.encoding ?
116
- state.data.toString(state.encoding, sep, end) :
117
- state.data.slice(sep, end);
114
+ return state.encoding
115
+ ? state.data.toString(state.encoding, sep, end)
116
+ : state.data.slice(sep, end);
118
117
  }
119
- //# sourceMappingURL=decode.js.map
@@ -2,4 +2,4 @@
2
2
  /**
3
3
  * Encodes data in bencode.
4
4
  */
5
- export declare function encode(data: Buffer | string | any[] | ArrayBuffer | number | boolean | Record<string, unknown> | object, buffer?: any, offset?: any, disableFloatConversionWarning?: boolean): Buffer;
5
+ export declare function encode(data: Buffer | string | any[] | ArrayBuffer | number | boolean | Record<string, unknown> | object, buffer?: unknown, offset?: number, disableFloatConversionWarning?: boolean): Buffer;
@@ -1,15 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.encode = void 0;
7
1
  /* eslint-disable @typescript-eslint/ban-types */
8
- const lodash_isarraybuffer_1 = __importDefault(require("lodash.isarraybuffer"));
2
+ import { isArrayBuffer } from '../isArrayBuffer.js';
9
3
  /**
10
4
  * Encodes data in bencode.
11
5
  */
12
- function encode(data, buffer, offset, disableFloatConversionWarning = false) {
6
+ export function encode(data, buffer, offset, disableFloatConversionWarning = false) {
13
7
  const buffers = [];
14
8
  const state = {
15
9
  bytes: -1,
@@ -24,7 +18,6 @@ function encode(data, buffer, offset, disableFloatConversionWarning = false) {
24
18
  }
25
19
  return result;
26
20
  }
27
- exports.encode = encode;
28
21
  function getType(value) {
29
22
  if (Buffer.isBuffer(value)) {
30
23
  return 'buffer';
@@ -41,7 +34,7 @@ function getType(value) {
41
34
  if (value instanceof Boolean) {
42
35
  return 'boolean';
43
36
  }
44
- if (lodash_isarraybuffer_1.default(value)) {
37
+ if (isArrayBuffer(value)) {
45
38
  return 'arraybuffer';
46
39
  }
47
40
  return typeof value;
@@ -92,7 +85,7 @@ function number(state, buffers, data) {
92
85
  const maxLo = 0x80000000;
93
86
  const hi = (data / maxLo) << 0;
94
87
  const lo = data % maxLo << 0;
95
- const val = (hi * maxLo) + lo;
88
+ const val = hi * maxLo + lo;
96
89
  buffers.push(Buffer.from(`i${val}e`));
97
90
  if (val !== data && !state.disableFloatConversionWarning) {
98
91
  state.disableFloatConversionWarning = true;
@@ -102,14 +95,9 @@ function number(state, buffers, data) {
102
95
  }
103
96
  function dict(state, buffers, data) {
104
97
  buffers.push(buffD);
105
- let j = 0;
106
- let k;
107
98
  // sorted dicts
108
- // eslint-disable-next-line @typescript-eslint/require-array-sort-compare
109
99
  const keys = Object.keys(data).sort();
110
- const kl = keys.length;
111
- for (; j < kl; j++) {
112
- k = keys[j];
100
+ for (const k of keys) {
113
101
  // filter out null / undefined elements
114
102
  if (data[k] === null || data[k] === undefined) {
115
103
  continue;
@@ -131,4 +119,3 @@ function list(state, buffers, data) {
131
119
  }
132
120
  buffers.push(buffE);
133
121
  }
134
- //# sourceMappingURL=encode.js.map
File without changes
@@ -0,0 +1,2 @@
1
+ export * from './decode';
2
+ export * from './encode';
@@ -0,0 +1,2 @@
1
+ export * from './bencode/index.js';
2
+ export * from './torrentFile.js';
@@ -0,0 +1,2 @@
1
+ export * from './bencode/index.js';
2
+ export * from './torrentFile.js';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Check if the given value is an ArrayBuffer.
3
+ * @param value - The value to check.
4
+ * @returns `true` if the given value is an ArrayBuffer, else `false`.
5
+ * @example
6
+ * isArrayBuffer(new ArrayBuffer())
7
+ * // => true
8
+ * isArrayBuffer([])
9
+ * // => false
10
+ */
11
+ export declare function isArrayBuffer(value: unknown): boolean;
@@ -0,0 +1,16 @@
1
+ const hasArrayBuffer = typeof ArrayBuffer === 'function';
2
+ const { toString } = Object.prototype;
3
+ /**
4
+ * Check if the given value is an ArrayBuffer.
5
+ * @param value - The value to check.
6
+ * @returns `true` if the given value is an ArrayBuffer, else `false`.
7
+ * @example
8
+ * isArrayBuffer(new ArrayBuffer())
9
+ * // => true
10
+ * isArrayBuffer([])
11
+ * // => false
12
+ */
13
+ export function isArrayBuffer(value) {
14
+ return (hasArrayBuffer &&
15
+ (value instanceof ArrayBuffer || toString.call(value) === '[object ArrayBuffer]'));
16
+ }
File without changes
@@ -1,22 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.info = exports.files = exports.hash = void 0;
4
- const crypto_hash_1 = require("crypto-hash");
5
- const path_1 = require("path");
6
- const bencode_1 = require("./bencode");
1
+ import { join, sep } from 'node:path';
2
+ import { sha1 } from 'crypto-hash';
3
+ import { decode, encode } from './bencode/index.js';
7
4
  /**
8
5
  * sha1 of torrent file info. This hash is commenly used by torrent clients as the ID of the torrent.
9
6
  */
10
- async function hash(file) {
11
- const torrent = bencode_1.decode(file);
12
- return crypto_hash_1.sha1(bencode_1.encode(torrent.info));
7
+ export async function hash(file) {
8
+ const torrent = decode(file);
9
+ return sha1(encode(torrent.info));
13
10
  }
14
- exports.hash = hash;
15
11
  /**
16
12
  * data about the files the torrent contains
17
13
  */
18
- function files(file) {
19
- const torrent = bencode_1.decode(file);
14
+ export function files(file) {
15
+ const torrent = decode(file);
20
16
  const result = {
21
17
  files: [],
22
18
  length: 0,
@@ -27,11 +23,9 @@ function files(file) {
27
23
  const files = torrent.info.files || [torrent.info];
28
24
  const name = (torrent.info['name.utf-8'] || torrent.info.name).toString();
29
25
  result.files = files.map((file, i) => {
30
- const parts = []
31
- .concat(name, file['path.utf-8'] || file.path || [])
32
- .map(p => p.toString());
26
+ const parts = [name, ...(file['path.utf-8'] || file.path || [])].map(p => p.toString());
33
27
  return {
34
- path: path_1.join(path_1.sep, ...parts).slice(1),
28
+ path: join(sep, ...parts).slice(1),
35
29
  name: parts[parts.length - 1],
36
30
  length: file.length,
37
31
  offset: files.slice(0, i).reduce(sumLength, 0),
@@ -40,11 +34,10 @@ function files(file) {
40
34
  result.length = files.reduce(sumLength, 0);
41
35
  const lastFile = result.files[result.files.length - 1];
42
36
  result.lastPieceLength =
43
- (lastFile.offset + lastFile.length) % result.pieceLength || result.pieceLength;
37
+ (lastFile && (lastFile.offset + lastFile.length) % result.pieceLength) || result.pieceLength;
44
38
  result.pieces = splitPieces(torrent.info.pieces);
45
39
  return result;
46
40
  }
47
- exports.files = files;
48
41
  function sumLength(sum, file) {
49
42
  return sum + file.length;
50
43
  }
@@ -58,8 +51,8 @@ function splitPieces(buf) {
58
51
  /**
59
52
  * torrent file info
60
53
  */
61
- function info(file) {
62
- const torrent = bencode_1.decode(file);
54
+ export function info(file) {
55
+ const torrent = decode(file);
63
56
  const result = {
64
57
  name: (torrent.info['name.utf-8'] || torrent.info.name).toString(),
65
58
  announce: [],
@@ -81,8 +74,8 @@ function info(file) {
81
74
  if (Array.isArray(torrent['announce-list']) &&
82
75
  torrent['announce-list'] &&
83
76
  torrent['announce-list'].length > 0) {
84
- torrent['announce-list'].forEach(urls => {
85
- urls.forEach(url => {
77
+ torrent['announce-list'].forEach((urls) => {
78
+ urls.forEach((url) => {
86
79
  result.announce.push(url.toString());
87
80
  });
88
81
  });
@@ -98,11 +91,9 @@ function info(file) {
98
91
  // some clients set url-list to empty string
99
92
  torrent['url-list'] = torrent['url-list'].length > 0 ? [torrent['url-list']] : [];
100
93
  }
101
- result.urlList = (torrent['url-list'] || []).map(url => url.toString());
94
+ result.urlList = (torrent['url-list'] || []).map((url) => url.toString());
102
95
  if (result.urlList.length) {
103
96
  result.urlList = Array.from(new Set(result.urlList));
104
97
  }
105
98
  return result;
106
99
  }
107
- exports.info = info;
108
- //# sourceMappingURL=torrentFile.js.map
package/package.json CHANGED
@@ -1,46 +1,51 @@
1
1
  {
2
2
  "name": "@ctrl/torrent-file",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "Parse a torrent file (name, hash, files, pieces)",
5
5
  "author": "Scott Cooper <scttcper@gmail.com>",
6
6
  "license": "MIT",
7
7
  "repository": "scttcper/torrent-file",
8
- "main": "dist/index.js",
9
- "typings": "dist/index.d.ts",
8
+ "type": "module",
9
+ "exports": "./dist/src/index.js",
10
+ "types": "./dist/src/index.d.ts",
10
11
  "files": [
11
- "dist"
12
+ "dist/src"
12
13
  ],
13
14
  "sideEffects": false,
14
- "keywords": [
15
- "typescript"
16
- ],
15
+ "keywords": [],
17
16
  "scripts": {
18
- "lint": "eslint --ext .js,.ts, .",
19
- "lint:fix": "eslint --fix --ext .js,.ts, .",
17
+ "lint": "eslint --ext .ts .",
18
+ "lint:fix": "eslint --fix --ext .ts .",
20
19
  "prepare": "npm run build",
21
- "build": "tsc -p tsconfig.build.json",
22
- "test": "jest",
23
- "test:watch": "jest --watch",
24
- "test:ci": "jest --ci --runInBand --coverage"
20
+ "build": "tsc",
21
+ "test": "ava",
22
+ "test:watch": "ava --watch",
23
+ "test:ci": "c8 --reporter=text --reporter=lcov ava"
25
24
  },
26
25
  "dependencies": {
27
- "crypto-hash": "^1.2.2",
28
- "lodash.isarraybuffer": "^4.4.1"
26
+ "crypto-hash": "^2.0.1"
29
27
  },
30
28
  "devDependencies": {
31
- "@ctrl/eslint-config": "1.0.3",
32
- "@types/jest": "26.0.3",
33
- "@types/lodash.isarraybuffer": "4.4.6",
34
- "@types/node": "14.0.14",
35
- "@types/parse-torrent": "5.8.3",
36
- "jest": "26.1.0",
37
- "parse-torrent": "7.1.3",
38
- "ts-jest": "26.1.1",
39
- "typescript": "3.9.6"
29
+ "@sindresorhus/tsconfig": "2.0.0",
30
+ "@ctrl/eslint-config": "3.1.4",
31
+ "@types/node": "17.0.0",
32
+ "@types/parse-torrent": "5.8.4",
33
+ "ava": "4.0.0-rc.1",
34
+ "c8": "7.10.0",
35
+ "tsm": "2.2.1",
36
+ "parse-torrent": "9.1.4",
37
+ "typescript": "4.5.4"
40
38
  },
41
- "jest": {
42
- "preset": "ts-jest",
43
- "testEnvironment": "node"
39
+ "ava": {
40
+ "files": [
41
+ "test/**/*.spec.ts"
42
+ ],
43
+ "extensions": {
44
+ "ts": "module"
45
+ },
46
+ "nodeArguments": [
47
+ "--loader=tsm"
48
+ ]
44
49
  },
45
50
  "publishConfig": {
46
51
  "access": "public"
@@ -49,6 +54,6 @@
49
54
  "branch": "master"
50
55
  },
51
56
  "engines": {
52
- "node": ">=10.19.0"
57
+ "node": ">=14.16"
53
58
  }
54
59
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/bencode/decode.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/bencode/encode.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./decode"), exports);
14
- __exportStar(require("./encode"), exports);
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bencode/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './bencode';
2
- export * from './torrentFile';
package/dist/index.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./bencode"), exports);
14
- __exportStar(require("./torrentFile"), exports);
15
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,gDAA8B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"torrentFile.js","sourceRoot":"","sources":["../src/torrentFile.ts"],"names":[],"mappings":"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"}