mmdb-lib 1.4.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.
- package/README.md +2 -2
- package/lib/decoder.js +54 -10
- package/lib/index.js +25 -5
- package/lib/ip.js +5 -2
- package/lib/metadata.js +8 -5
- package/lib/reader/response.js +0 -1
- package/lib/reader/walker.js +2 -3
- package/lib/types.js +0 -1
- package/lib/utils.js +0 -1
- package/package.json +11 -9
- package/lib/decoder.d.ts +0 -29
- package/lib/decoder.js.map +0 -1
- package/lib/index.d.ts +0 -20
- package/lib/index.js.map +0 -1
- package/lib/ip.d.ts +0 -7
- package/lib/ip.js.map +0 -1
- package/lib/metadata.d.ts +0 -17
- package/lib/metadata.js.map +0 -1
- package/lib/reader/response.d.ts +0 -115
- package/lib/reader/response.js.map +0 -1
- package/lib/reader/walker.d.ts +0 -8
- package/lib/reader/walker.js.map +0 -1
- package/lib/types.d.ts +0 -7
- package/lib/types.js.map +0 -1
- package/lib/utils.d.ts +0 -7
- package/lib/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,12 +14,12 @@ npm i mmdb-lib
|
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
import fs from 'fs';
|
|
17
|
-
import
|
|
17
|
+
import * as mmdb from 'mmdb-lib';
|
|
18
18
|
|
|
19
19
|
// Get a buffer with mmdb database, from file system or whereever.
|
|
20
20
|
const db = fs.readFileSync('/path/to/GeoLite2-City.mmdb');
|
|
21
21
|
|
|
22
|
-
const reader = new Reader<CityResponse>(db);
|
|
22
|
+
const reader = new mmdb.Reader<CityResponse>(db);
|
|
23
23
|
console.log(reader.get('66.6.44.4')); // inferred type `CityResponse`
|
|
24
24
|
console.log(reader.getWithPrefixLength('66.6.44.4')); // tuple with inferred type `[CityResponse|null, number]`
|
|
25
25
|
```
|
package/lib/decoder.js
CHANGED
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const assert_1 = __importDefault(require("assert"));
|
|
7
7
|
const utils_1 = __importDefault(require("./utils"));
|
|
8
|
-
assert_1.default(typeof BigInt !== 'undefined', 'Apparently you are using old version of node. Please upgrade to node 10.4.x or above.');
|
|
8
|
+
(0, assert_1.default)(typeof BigInt !== 'undefined', 'Apparently you are using old version of node. Please upgrade to node 10.4.x or above.');
|
|
9
9
|
var DataType;
|
|
10
10
|
(function (DataType) {
|
|
11
11
|
DataType[DataType["Extended"] = 0] = "Extended";
|
|
@@ -34,7 +34,7 @@ const cursor = (value, offset) => ({ value, offset });
|
|
|
34
34
|
class Decoder {
|
|
35
35
|
constructor(db, baseOffset = 0, cache = noCache) {
|
|
36
36
|
this.telemetry = {};
|
|
37
|
-
assert_1.default((this.db = db), 'Database buffer is required');
|
|
37
|
+
(0, assert_1.default)((this.db = db), 'Database buffer is required');
|
|
38
38
|
this.baseOffset = baseOffset;
|
|
39
39
|
this.cache = cache;
|
|
40
40
|
}
|
|
@@ -68,6 +68,15 @@ class Decoder {
|
|
|
68
68
|
}
|
|
69
69
|
decodeByType(type, offset, size) {
|
|
70
70
|
const newOffset = offset + size;
|
|
71
|
+
// ipv4 types occurrence stats:
|
|
72
|
+
// 3618591 x utf8_string
|
|
73
|
+
// 448163 x map
|
|
74
|
+
// 175085 x uint32
|
|
75
|
+
// 83040 x double
|
|
76
|
+
// 24745 x array
|
|
77
|
+
// 3 x uint16
|
|
78
|
+
// 1 x uint64
|
|
79
|
+
// 14 x boolean
|
|
71
80
|
switch (type) {
|
|
72
81
|
case DataType.Utf8String:
|
|
73
82
|
return cursor(this.decodeString(offset, size), newOffset);
|
|
@@ -97,16 +106,37 @@ class Decoder {
|
|
|
97
106
|
throw new Error('Unknown type ' + type + ' at offset ' + offset);
|
|
98
107
|
}
|
|
99
108
|
sizeFromCtrlByte(ctrlByte, offset) {
|
|
109
|
+
// The first three bits of the control byte tell you what type the field is. If
|
|
110
|
+
// these bits are all 0, then this is an "extended" type, which means that the
|
|
111
|
+
// *next* byte contains the actual type. Otherwise, the first three bits will
|
|
112
|
+
// contain a number from 1 to 7, the actual type for the field.
|
|
113
|
+
// var type = ctrlByte >> 3;
|
|
114
|
+
// The next five bits in the control byte tell you how long the data field's
|
|
115
|
+
// payload is, except for maps and pointers. Maps and pointers use this size
|
|
116
|
+
// information a bit differently.``
|
|
100
117
|
const size = ctrlByte & 0x1f;
|
|
118
|
+
// If the five bits are smaller than 29, then those bits are the payload size in
|
|
119
|
+
// bytes. For example:
|
|
120
|
+
// 01000010 UTF-8 string - 2 bytes long
|
|
121
|
+
// 01011100 UTF-8 string - 28 bytes long
|
|
122
|
+
// 11000001 unsigned 32-bit int - 1 byte long
|
|
123
|
+
// 00000011 00000011 unsigned 128-bit int - 3 bytes long
|
|
101
124
|
if (size < 29) {
|
|
102
125
|
return cursor(size, offset);
|
|
103
126
|
}
|
|
127
|
+
// If the value is 29, then the size is 29 + *the next byte after the type
|
|
128
|
+
// specifying bytes as an unsigned integer*.
|
|
104
129
|
if (size === 29) {
|
|
105
130
|
return cursor(29 + this.db[offset], offset + 1);
|
|
106
131
|
}
|
|
132
|
+
// If the value is 30, then the size is 285 + *the next two bytes after the type
|
|
133
|
+
// specifying bytes as a single unsigned integer*.
|
|
107
134
|
if (size === 30) {
|
|
108
|
-
return cursor(285 + this.db.readUInt16BE(offset
|
|
135
|
+
return cursor(285 + this.db.readUInt16BE(offset), offset + 2);
|
|
109
136
|
}
|
|
137
|
+
// At this point `size` is always 31.
|
|
138
|
+
// If the value is 31, then the size is 65,821 + *the next three bytes after the
|
|
139
|
+
// type specifying bytes as a single unsigned integer*.
|
|
110
140
|
return cursor(65821 +
|
|
111
141
|
utils_1.default.concat3(this.db[offset], this.db[offset + 1], this.db[offset + 2]), offset + 3);
|
|
112
142
|
}
|
|
@@ -114,20 +144,36 @@ class Decoder {
|
|
|
114
144
|
return this.db.slice(offset, offset + size);
|
|
115
145
|
}
|
|
116
146
|
decodePointer(ctrlByte, offset) {
|
|
147
|
+
// Pointers use the last five bits in the control byte to calculate the pointer value.
|
|
148
|
+
// To calculate the pointer value, we start by subdividing the five bits into two
|
|
149
|
+
// groups. The first two bits indicate the size, and the next three bits are part
|
|
150
|
+
// of the value, so we end up with a control byte breaking down like this:
|
|
151
|
+
// 001SSVVV.
|
|
117
152
|
const pointerSize = (ctrlByte >> 3) & 3;
|
|
118
153
|
const pointer = this.baseOffset + pointerValueOffset[pointerSize];
|
|
119
154
|
let packed = 0;
|
|
155
|
+
// The size can be 0, 1, 2, or 3.
|
|
156
|
+
// If the size is 0, the pointer is built by appending the next byte to the last
|
|
157
|
+
// three bits to produce an 11-bit value.
|
|
120
158
|
if (pointerSize === 0) {
|
|
121
159
|
packed = utils_1.default.concat2(ctrlByte & 7, this.db[offset]);
|
|
160
|
+
// If the size is 1, the pointer is built by appending the next two bytes to the
|
|
161
|
+
// last three bits to produce a 19-bit value + 2048.
|
|
122
162
|
}
|
|
123
163
|
else if (pointerSize === 1) {
|
|
124
164
|
packed = utils_1.default.concat3(ctrlByte & 7, this.db[offset], this.db[offset + 1]);
|
|
165
|
+
// If the size is 2, the pointer is built by appending the next three bytes to the
|
|
166
|
+
// last three bits to produce a 27-bit value + 526336.
|
|
125
167
|
}
|
|
126
168
|
else if (pointerSize === 2) {
|
|
127
169
|
packed = utils_1.default.concat4(ctrlByte & 7, this.db[offset], this.db[offset + 1], this.db[offset + 2]);
|
|
170
|
+
// At next point `size` is always 3.
|
|
171
|
+
// Finally, if the size is 3, the pointer's value is contained in the next four
|
|
172
|
+
// bytes as a 32-bit value. In this case, the last three bits of the control byte
|
|
173
|
+
// are ignored.
|
|
128
174
|
}
|
|
129
175
|
else {
|
|
130
|
-
packed = this.db.readUInt32BE(offset
|
|
176
|
+
packed = this.db.readUInt32BE(offset);
|
|
131
177
|
}
|
|
132
178
|
offset += pointerSize + 1;
|
|
133
179
|
return cursor(pointer + packed, offset);
|
|
@@ -146,10 +192,10 @@ class Decoder {
|
|
|
146
192
|
return size !== 0;
|
|
147
193
|
}
|
|
148
194
|
decodeDouble(offset) {
|
|
149
|
-
return this.db.readDoubleBE(offset
|
|
195
|
+
return this.db.readDoubleBE(offset);
|
|
150
196
|
}
|
|
151
197
|
decodeFloat(offset) {
|
|
152
|
-
return this.db.readFloatBE(offset
|
|
198
|
+
return this.db.readFloatBE(offset);
|
|
153
199
|
}
|
|
154
200
|
decodeMap(size, offset) {
|
|
155
201
|
let tmp;
|
|
@@ -168,7 +214,7 @@ class Decoder {
|
|
|
168
214
|
if (size === 0) {
|
|
169
215
|
return 0;
|
|
170
216
|
}
|
|
171
|
-
return this.db.readInt32BE(offset
|
|
217
|
+
return this.db.readInt32BE(offset);
|
|
172
218
|
}
|
|
173
219
|
decodeUint(offset, size) {
|
|
174
220
|
switch (size) {
|
|
@@ -199,11 +245,9 @@ class Decoder {
|
|
|
199
245
|
const numberOfLongs = size / 4;
|
|
200
246
|
for (let i = 0; i < numberOfLongs; i++) {
|
|
201
247
|
integer =
|
|
202
|
-
integer * BigInt(4294967296) +
|
|
203
|
-
BigInt(buffer.readUInt32BE(i << 2, true));
|
|
248
|
+
integer * BigInt(4294967296) + BigInt(buffer.readUInt32BE(i << 2));
|
|
204
249
|
}
|
|
205
250
|
return integer.toString();
|
|
206
251
|
}
|
|
207
252
|
}
|
|
208
253
|
exports.default = Decoder;
|
|
209
|
-
//# sourceMappingURL=decoder.js.map
|
package/lib/index.js
CHANGED
|
@@ -7,12 +7,13 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.Reader = void 0;
|
|
16
17
|
const decoder_1 = __importDefault(require("./decoder"));
|
|
17
18
|
const ip_1 = __importDefault(require("./ip"));
|
|
18
19
|
const metadata_1 = require("./metadata");
|
|
@@ -28,9 +29,9 @@ class Reader {
|
|
|
28
29
|
throw new Error(`mmdb-lib expects an instance of Buffer, got: ${typeof db}`);
|
|
29
30
|
}
|
|
30
31
|
this.db = db;
|
|
31
|
-
this.metadata = metadata_1.parseMetadata(this.db);
|
|
32
|
+
this.metadata = (0, metadata_1.parseMetadata)(this.db);
|
|
32
33
|
this.decoder = new decoder_1.default(this.db, this.metadata.searchTreeSize + DATA_SECTION_SEPARATOR_SIZE, this.opts.cache);
|
|
33
|
-
this.walker = walker_1.default(this.db, this.metadata.recordSize);
|
|
34
|
+
this.walker = (0, walker_1.default)(this.db, this.metadata.recordSize);
|
|
34
35
|
this.ipv4StartNodeNumber = this.ipv4Start();
|
|
35
36
|
}
|
|
36
37
|
get(ipAddress) {
|
|
@@ -46,13 +47,26 @@ class Reader {
|
|
|
46
47
|
const rawAddress = ip_1.default.parse(ipAddress);
|
|
47
48
|
const nodeCount = this.metadata.nodeCount;
|
|
48
49
|
const bitLength = rawAddress.length * 8;
|
|
50
|
+
// Binary search tree consists of certain (`nodeCount`) number of nodes. Tree
|
|
51
|
+
// depth depends on the ip version, it's 32 for IPv4 and 128 for IPv6. Each
|
|
52
|
+
// tree node has the same fixed length and usually 6-8 bytes. It consists
|
|
53
|
+
// of two records, left and right:
|
|
54
|
+
// | node |
|
|
55
|
+
// | 0x000000 | 0x000000 |
|
|
49
56
|
let bit;
|
|
50
57
|
let nodeNumber = 0;
|
|
51
58
|
let offset;
|
|
52
59
|
let depth = 0;
|
|
60
|
+
// When storing IPv4 addresses in an IPv6 tree, they are stored as-is, so they
|
|
61
|
+
// occupy the first 32-bits of the address space (from 0 to 2**32 - 1).
|
|
62
|
+
// Which means they're padded with zeros.
|
|
53
63
|
if (rawAddress.length === 4) {
|
|
54
64
|
nodeNumber = this.ipv4StartNodeNumber;
|
|
55
65
|
}
|
|
66
|
+
// Record value can point to one of three things:
|
|
67
|
+
// 1. Another node in the tree (most common case)
|
|
68
|
+
// 2. Data section address with relevant information (less common case)
|
|
69
|
+
// 3. Point to the value of `nodeCount`, which means IP address is unknown
|
|
56
70
|
for (; depth < bitLength && nodeNumber < nodeCount; depth++) {
|
|
57
71
|
bit = ip_1.default.bitAt(rawAddress, depth);
|
|
58
72
|
offset = nodeNumber * this.metadata.nodeByteSize;
|
|
@@ -64,6 +78,13 @@ class Reader {
|
|
|
64
78
|
return [null, depth];
|
|
65
79
|
}
|
|
66
80
|
resolveDataPointer(pointer) {
|
|
81
|
+
// In order to determine where in the file this offset really points to, we also
|
|
82
|
+
// need to know where the data section starts. This can be calculated by
|
|
83
|
+
// determining the size of the search tree in bytes and then adding an additional
|
|
84
|
+
// 16 bytes for the data section separator.
|
|
85
|
+
// So the final formula to determine the offset in the file is:
|
|
86
|
+
// $offset_in_file = ( $record_value - $node_count )
|
|
87
|
+
// + $search_tree_size_in_bytes
|
|
67
88
|
const resolved = pointer - this.metadata.nodeCount + this.metadata.searchTreeSize;
|
|
68
89
|
return this.decoder.decodeFast(resolved).value;
|
|
69
90
|
}
|
|
@@ -81,6 +102,5 @@ class Reader {
|
|
|
81
102
|
return pointer;
|
|
82
103
|
}
|
|
83
104
|
}
|
|
84
|
-
exports.
|
|
105
|
+
exports.Reader = Reader;
|
|
85
106
|
__exportStar(require("./reader/response"), exports);
|
|
86
|
-
//# sourceMappingURL=index.js.map
|
package/lib/ip.js
CHANGED
|
@@ -21,6 +21,7 @@ const parseIPv6 = (input) => {
|
|
|
21
21
|
let i;
|
|
22
22
|
let parsed;
|
|
23
23
|
let chunk;
|
|
24
|
+
// ipv4 e.g. `::ffff:64.17.254.216`
|
|
24
25
|
const ip = input.indexOf('.') > -1
|
|
25
26
|
? input.replace(/(\d+)\.(\d+)\.(\d+)\.(\d+)/, (match, a, b, c, d) => {
|
|
26
27
|
return hex(a) + hex(b) + ':' + hex(c) + hex(d);
|
|
@@ -37,7 +38,7 @@ const parseIPv6 = (input) => {
|
|
|
37
38
|
}
|
|
38
39
|
if (right) {
|
|
39
40
|
parsed = right.split(':');
|
|
40
|
-
const offset = 16 - parsed.length * 2;
|
|
41
|
+
const offset = 16 - parsed.length * 2; // 2 bytes per chunk
|
|
41
42
|
for (i = 0; i < parsed.length; i++) {
|
|
42
43
|
chunk = parseInt(parsed[i], 16);
|
|
43
44
|
addr[offset + i * 2] = chunk >> 8;
|
|
@@ -50,8 +51,11 @@ const parse = (ip) => {
|
|
|
50
51
|
return ip.indexOf(':') === -1 ? parseIPv4(ip) : parseIPv6(ip);
|
|
51
52
|
};
|
|
52
53
|
const bitAt = (rawAddress, idx) => {
|
|
54
|
+
// 8 bits per octet in the buffer (>>3 is slightly faster than Math.floor(idx/8))
|
|
53
55
|
const bufIdx = idx >> 3;
|
|
56
|
+
// Offset within the octet (basically equivalent to 8 - (idx % 8))
|
|
54
57
|
const bitIdx = 7 ^ (idx & 7);
|
|
58
|
+
// Shift the offset rightwards by bitIdx bits and & it to grab the bit
|
|
55
59
|
return (rawAddress[bufIdx] >>> bitIdx) & 1;
|
|
56
60
|
};
|
|
57
61
|
const validate = (ip) => {
|
|
@@ -63,4 +67,3 @@ exports.default = {
|
|
|
63
67
|
parse,
|
|
64
68
|
validate,
|
|
65
69
|
};
|
|
66
|
-
//# sourceMappingURL=ip.js.map
|
package/lib/metadata.js
CHANGED
|
@@ -8,16 +8,16 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
8
8
|
const decoder_1 = __importDefault(require("./decoder"));
|
|
9
9
|
const utils_1 = __importDefault(require("./utils"));
|
|
10
10
|
const METADATA_START_MARKER = Buffer.from('ABCDEF4D61784D696E642E636F6D', 'hex');
|
|
11
|
-
|
|
11
|
+
const parseMetadata = (db) => {
|
|
12
12
|
const offset = findStart(db);
|
|
13
13
|
const decoder = new decoder_1.default(db, offset);
|
|
14
14
|
const metadata = decoder.decode(offset).value;
|
|
15
15
|
if (!metadata) {
|
|
16
|
-
throw new Error(exports.isLegacyFormat(db)
|
|
16
|
+
throw new Error((0, exports.isLegacyFormat)(db)
|
|
17
17
|
? utils_1.default.legacyErrorMessage
|
|
18
18
|
: 'Cannot parse binary database');
|
|
19
19
|
}
|
|
20
|
-
assert_1.default([24, 28, 32].indexOf(metadata.record_size) > -1, 'Unsupported record size');
|
|
20
|
+
(0, assert_1.default)([24, 28, 32].indexOf(metadata.record_size) > -1, 'Unsupported record size');
|
|
21
21
|
return {
|
|
22
22
|
binaryFormatMajorVersion: metadata.binary_format_major_version,
|
|
23
23
|
binaryFormatMinorVersion: metadata.binary_format_minor_version,
|
|
@@ -30,9 +30,11 @@ exports.parseMetadata = (db) => {
|
|
|
30
30
|
nodeCount: metadata.node_count,
|
|
31
31
|
recordSize: metadata.record_size,
|
|
32
32
|
searchTreeSize: (metadata.node_count * metadata.record_size) / 4,
|
|
33
|
+
// Depth depends on the IP version, it's 32 for IPv4 and 128 for IPv6.
|
|
33
34
|
treeDepth: Math.pow(2, metadata.ip_version + 1),
|
|
34
35
|
};
|
|
35
36
|
};
|
|
37
|
+
exports.parseMetadata = parseMetadata;
|
|
36
38
|
const findStart = (db) => {
|
|
37
39
|
let found = 0;
|
|
38
40
|
let fsize = db.length - 1;
|
|
@@ -42,14 +44,15 @@ const findStart = (db) => {
|
|
|
42
44
|
}
|
|
43
45
|
return fsize + found;
|
|
44
46
|
};
|
|
45
|
-
|
|
47
|
+
const isLegacyFormat = (db) => {
|
|
46
48
|
const structureInfoMaxSize = 20;
|
|
47
49
|
for (let i = 0; i < structureInfoMaxSize; i++) {
|
|
48
50
|
const delim = db.slice(db.length - 3 - i, db.length - i);
|
|
51
|
+
// Look for [0xff, 0xff, 0xff] metadata delimiter
|
|
49
52
|
if (delim[0] === 255 && delim[1] === 255 && delim[2] === 255) {
|
|
50
53
|
return true;
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
return false;
|
|
54
57
|
};
|
|
55
|
-
|
|
58
|
+
exports.isLegacyFormat = isLegacyFormat;
|
package/lib/reader/response.js
CHANGED
package/lib/reader/walker.js
CHANGED
|
@@ -8,8 +8,8 @@ const readNodeRight24 = (db) => (offset) => utils_1.default.concat3(db[offset +
|
|
|
8
8
|
const readNodeLeft24 = (db) => (offset) => utils_1.default.concat3(db[offset], db[offset + 1], db[offset + 2]);
|
|
9
9
|
const readNodeLeft28 = (db) => (offset) => utils_1.default.concat4(db[offset + 3] >> 4, db[offset], db[offset + 1], db[offset + 2]);
|
|
10
10
|
const readNodeRight28 = (db) => (offset) => utils_1.default.concat4(db[offset + 3] & 0x0f, db[offset + 4], db[offset + 5], db[offset + 6]);
|
|
11
|
-
const readNodeLeft32 = (db) => (offset) => db.readUInt32BE(offset
|
|
12
|
-
const readNodeRight32 = (db) => (offset) => db.readUInt32BE(offset + 4
|
|
11
|
+
const readNodeLeft32 = (db) => (offset) => db.readUInt32BE(offset);
|
|
12
|
+
const readNodeRight32 = (db) => (offset) => db.readUInt32BE(offset + 4);
|
|
13
13
|
exports.default = (db, recordSize) => {
|
|
14
14
|
switch (recordSize) {
|
|
15
15
|
case 24:
|
|
@@ -21,4 +21,3 @@ exports.default = (db, recordSize) => {
|
|
|
21
21
|
}
|
|
22
22
|
throw new Error('Unsupported record size');
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=walker.js.map
|
package/lib/types.js
CHANGED
package/lib/utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mmdb-lib",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"homepage": "https://github.com/runk/mmdb-lib",
|
|
5
5
|
"description": "Maxmind DB (MMDB) Library",
|
|
6
6
|
"keywords": [
|
|
@@ -11,23 +11,24 @@
|
|
|
11
11
|
"geoip2"
|
|
12
12
|
],
|
|
13
13
|
"author": "Dmitry Shirokov <deadrunk@gmail.com>",
|
|
14
|
-
"contributors": [
|
|
15
|
-
|
|
14
|
+
"contributors": [
|
|
15
|
+
"William Storey @horgh"
|
|
16
|
+
],
|
|
16
17
|
"devDependencies": {
|
|
17
18
|
"@types/ip-address": "5.8.2",
|
|
18
|
-
"@types/jest": "
|
|
19
|
-
"@types/node": "
|
|
19
|
+
"@types/jest": "27.0.0",
|
|
20
|
+
"@types/node": "16.0.0",
|
|
20
21
|
"@types/sinon": "7.5.2",
|
|
21
22
|
"@typescript-eslint/eslint-plugin": "^4.4.0",
|
|
22
23
|
"@typescript-eslint/parser": "^4.4.0",
|
|
23
24
|
"eslint": "^7.10.0",
|
|
24
25
|
"ip-address": "6.2.0",
|
|
25
|
-
"jest": "
|
|
26
|
+
"jest": "^27.4.7",
|
|
26
27
|
"prettier": "^2.1.2",
|
|
27
|
-
"semantic-release": "
|
|
28
|
+
"semantic-release": "^18.0.1",
|
|
28
29
|
"sinon": "9.0.1",
|
|
29
|
-
"ts-jest": "
|
|
30
|
-
"typescript": "
|
|
30
|
+
"ts-jest": "^27.1.2",
|
|
31
|
+
"typescript": "4.5.4"
|
|
31
32
|
},
|
|
32
33
|
"repository": {
|
|
33
34
|
"type": "git",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"lint": "eslint . --ext .ts",
|
|
53
54
|
"lint:types": "tsc --noEmit",
|
|
54
55
|
"test": "jest",
|
|
56
|
+
"test-imports": "node test/imports/commonjs.js && node test/imports/esm.mjs",
|
|
55
57
|
"format": "prettier --write src",
|
|
56
58
|
"prepublish": "npm run build",
|
|
57
59
|
"semantic-release": "semantic-release"
|
package/lib/decoder.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Cache } from './types';
|
|
3
|
-
interface Cursor {
|
|
4
|
-
value: any;
|
|
5
|
-
offset: number;
|
|
6
|
-
}
|
|
7
|
-
export default class Decoder {
|
|
8
|
-
telemetry: Record<string, any>;
|
|
9
|
-
private db;
|
|
10
|
-
private baseOffset;
|
|
11
|
-
private cache;
|
|
12
|
-
constructor(db: Buffer, baseOffset?: number, cache?: Cache);
|
|
13
|
-
decode(offset: number): Cursor;
|
|
14
|
-
decodeFast(offset: number): any;
|
|
15
|
-
private decodeByType;
|
|
16
|
-
private sizeFromCtrlByte;
|
|
17
|
-
private decodeBytes;
|
|
18
|
-
private decodePointer;
|
|
19
|
-
private decodeArray;
|
|
20
|
-
private decodeBoolean;
|
|
21
|
-
private decodeDouble;
|
|
22
|
-
private decodeFloat;
|
|
23
|
-
private decodeMap;
|
|
24
|
-
private decodeInt32;
|
|
25
|
-
private decodeUint;
|
|
26
|
-
private decodeString;
|
|
27
|
-
private decodeBigUint;
|
|
28
|
-
}
|
|
29
|
-
export {};
|
package/lib/decoder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Metadata } from './metadata';
|
|
3
|
-
import { Response } from './reader/response';
|
|
4
|
-
import { ReaderOptions } from './types';
|
|
5
|
-
export default class Reader<T extends Response> {
|
|
6
|
-
metadata: Metadata;
|
|
7
|
-
private decoder;
|
|
8
|
-
private db;
|
|
9
|
-
private ipv4StartNodeNumber;
|
|
10
|
-
private walker;
|
|
11
|
-
private opts;
|
|
12
|
-
constructor(db: Buffer, opts?: ReaderOptions);
|
|
13
|
-
load(db: Buffer): void;
|
|
14
|
-
get(ipAddress: string): T | null;
|
|
15
|
-
getWithPrefixLength(ipAddress: string): [T | null, number];
|
|
16
|
-
private findAddressInTree;
|
|
17
|
-
private resolveDataPointer;
|
|
18
|
-
private ipv4Start;
|
|
19
|
-
}
|
|
20
|
-
export * from './reader/response';
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/ip.d.ts
DELETED
package/lib/ip.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ip.js","sourceRoot":"","sources":["../src/ip.ts"],"names":[],"mappings":"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"}
|
package/lib/metadata.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export interface Metadata {
|
|
3
|
-
readonly binaryFormatMajorVersion: number;
|
|
4
|
-
readonly binaryFormatMinorVersion: number;
|
|
5
|
-
readonly buildEpoch: Date;
|
|
6
|
-
readonly databaseType: string;
|
|
7
|
-
readonly languages: string[];
|
|
8
|
-
readonly description: string;
|
|
9
|
-
readonly ipVersion: number;
|
|
10
|
-
readonly nodeCount: number;
|
|
11
|
-
readonly recordSize: number;
|
|
12
|
-
readonly nodeByteSize: number;
|
|
13
|
-
readonly searchTreeSize: number;
|
|
14
|
-
readonly treeDepth: number;
|
|
15
|
-
}
|
|
16
|
-
export declare const parseMetadata: (db: Buffer) => Metadata;
|
|
17
|
-
export declare const isLegacyFormat: (db: Buffer) => boolean;
|
package/lib/metadata.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,wDAAgC;AAChC,oDAA4B;AAE5B,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CACvC,8BAA8B,EAC9B,KAAK,CACN,CAAC;AAiBW,QAAA,aAAa,GAAG,CAAC,EAAU,EAAY,EAAE;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;IAE9C,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,sBAAc,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,eAAK,CAAC,kBAAkB;YAC1B,CAAC,CAAC,8BAA8B,CACnC,CAAC;KACH;IAED,gBAAM,CACJ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAC/C,yBAAyB,CAC1B,CAAC;IAEF,OAAO;QACL,wBAAwB,EAAE,QAAQ,CAAC,2BAA2B;QAC9D,wBAAwB,EAAE,QAAQ,CAAC,2BAA2B;QAC9D,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjD,YAAY,EAAE,QAAQ,CAAC,aAAa;QACpC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,YAAY,EAAE,QAAQ,CAAC,WAAW,GAAG,CAAC;QACtC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,cAAc,EAAE,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;QAEhE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAU,EAAU,EAAE;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAE9C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,EAAE;QACnC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,qBAAqB,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KACzE;IACD,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC,CAAC;AAEW,QAAA,cAAc,GAAG,CAAC,EAAU,EAAW,EAAE;IACpD,MAAM,oBAAoB,GAAG,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAGzD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/lib/reader/response.d.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
interface Names {
|
|
2
|
-
readonly de?: string;
|
|
3
|
-
readonly en: string;
|
|
4
|
-
readonly es?: string;
|
|
5
|
-
readonly fr?: string;
|
|
6
|
-
readonly ja?: string;
|
|
7
|
-
readonly 'pt-BR'?: string;
|
|
8
|
-
readonly ru?: string;
|
|
9
|
-
readonly 'zh-CN'?: string;
|
|
10
|
-
}
|
|
11
|
-
interface CityRecord {
|
|
12
|
-
readonly confidence?: number;
|
|
13
|
-
readonly geoname_id: number;
|
|
14
|
-
readonly names: Names;
|
|
15
|
-
}
|
|
16
|
-
interface ContinentRecord {
|
|
17
|
-
readonly code: 'AF' | 'AN' | 'AS' | 'EU' | 'NA' | 'OC' | 'SA';
|
|
18
|
-
readonly geoname_id: number;
|
|
19
|
-
readonly names: Names;
|
|
20
|
-
}
|
|
21
|
-
interface RegisteredCountryRecord {
|
|
22
|
-
readonly geoname_id: number;
|
|
23
|
-
readonly is_in_european_union?: boolean;
|
|
24
|
-
readonly iso_code: string;
|
|
25
|
-
readonly names: Names;
|
|
26
|
-
}
|
|
27
|
-
interface CountryRecord extends RegisteredCountryRecord {
|
|
28
|
-
readonly confidence?: number;
|
|
29
|
-
}
|
|
30
|
-
interface LocationRecord {
|
|
31
|
-
readonly accuracy_radius: number;
|
|
32
|
-
readonly average_income?: number;
|
|
33
|
-
readonly latitude: number;
|
|
34
|
-
readonly longitude: number;
|
|
35
|
-
readonly metro_code?: number;
|
|
36
|
-
readonly population_density?: number;
|
|
37
|
-
readonly time_zone?: string;
|
|
38
|
-
}
|
|
39
|
-
interface PostalRecord {
|
|
40
|
-
readonly code: string;
|
|
41
|
-
readonly confidence?: number;
|
|
42
|
-
}
|
|
43
|
-
interface RepresentedCountryRecord extends RegisteredCountryRecord {
|
|
44
|
-
readonly type: string;
|
|
45
|
-
}
|
|
46
|
-
interface SubdivisionsRecord {
|
|
47
|
-
readonly confidence?: number;
|
|
48
|
-
readonly geoname_id: number;
|
|
49
|
-
readonly iso_code: string;
|
|
50
|
-
readonly names: Names;
|
|
51
|
-
}
|
|
52
|
-
interface TraitsRecord {
|
|
53
|
-
readonly autonomous_system_number?: number;
|
|
54
|
-
readonly autonomous_system_organization?: string;
|
|
55
|
-
readonly connection_type?: string;
|
|
56
|
-
readonly domain?: string;
|
|
57
|
-
ip_address?: string;
|
|
58
|
-
readonly is_anonymous?: boolean;
|
|
59
|
-
readonly is_anonymous_proxy?: boolean;
|
|
60
|
-
readonly is_anonymous_vpn?: boolean;
|
|
61
|
-
readonly is_hosting_provider?: boolean;
|
|
62
|
-
readonly is_legitimate_proxy?: boolean;
|
|
63
|
-
readonly is_public_proxy?: boolean;
|
|
64
|
-
readonly is_satellite_provider?: boolean;
|
|
65
|
-
readonly is_tor_exit_node?: boolean;
|
|
66
|
-
readonly isp?: string;
|
|
67
|
-
readonly mobile_country_code?: string;
|
|
68
|
-
readonly mobile_network_code?: string;
|
|
69
|
-
readonly organization?: string;
|
|
70
|
-
readonly user_type?: 'business' | 'cafe' | 'cellular' | 'college' | 'content_delivery_network' | 'dialup' | 'government' | 'hosting' | 'library' | 'military' | 'residential' | 'router' | 'school' | 'search_engine_spider' | 'traveler';
|
|
71
|
-
}
|
|
72
|
-
export interface CountryResponse {
|
|
73
|
-
readonly continent?: ContinentRecord;
|
|
74
|
-
readonly country?: CountryRecord;
|
|
75
|
-
readonly registered_country?: RegisteredCountryRecord;
|
|
76
|
-
readonly represented_country?: RepresentedCountryRecord;
|
|
77
|
-
readonly traits?: TraitsRecord;
|
|
78
|
-
}
|
|
79
|
-
export interface CityResponse extends CountryResponse {
|
|
80
|
-
readonly city?: CityRecord;
|
|
81
|
-
readonly location?: LocationRecord;
|
|
82
|
-
readonly postal?: PostalRecord;
|
|
83
|
-
readonly subdivisions?: SubdivisionsRecord[];
|
|
84
|
-
}
|
|
85
|
-
export interface AnonymousIPResponse {
|
|
86
|
-
ip_address?: string;
|
|
87
|
-
readonly is_anonymous?: boolean;
|
|
88
|
-
readonly is_anonymous_proxy?: boolean;
|
|
89
|
-
readonly is_anonymous_vpn?: boolean;
|
|
90
|
-
readonly is_hosting_provider?: boolean;
|
|
91
|
-
readonly is_public_proxy?: boolean;
|
|
92
|
-
readonly is_residential_proxy?: boolean;
|
|
93
|
-
readonly is_tor_exit_node?: boolean;
|
|
94
|
-
}
|
|
95
|
-
export interface AsnResponse {
|
|
96
|
-
readonly autonomous_system_number: number;
|
|
97
|
-
readonly autonomous_system_organization: string;
|
|
98
|
-
ip_address?: string;
|
|
99
|
-
}
|
|
100
|
-
export interface ConnectionTypeResponse {
|
|
101
|
-
readonly connection_type: string;
|
|
102
|
-
ip_address?: string;
|
|
103
|
-
}
|
|
104
|
-
export interface DomainResponse {
|
|
105
|
-
readonly domain: string;
|
|
106
|
-
ip_address?: string;
|
|
107
|
-
}
|
|
108
|
-
export interface IspResponse extends AsnResponse {
|
|
109
|
-
readonly isp: string;
|
|
110
|
-
readonly mobile_country_code?: string;
|
|
111
|
-
readonly mobile_network_code?: string;
|
|
112
|
-
readonly organization: string;
|
|
113
|
-
}
|
|
114
|
-
export declare type Response = CountryResponse | CityResponse | AnonymousIPResponse | AsnResponse | ConnectionTypeResponse | DomainResponse | IspResponse;
|
|
115
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/reader/response.ts"],"names":[],"mappings":""}
|
package/lib/reader/walker.d.ts
DELETED
package/lib/reader/walker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/reader/walker.ts"],"names":[],"mappings":";;;;;AAAA,qDAA6B;AAS7B,MAAM,eAAe,GACnB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAElE,MAAM,cAAc,GAClB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,cAAc,GAClB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,eAAK,CAAC,OAAO,CACX,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EACnB,EAAE,CAAC,MAAM,CAAC,EACV,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EACd,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CACf,CAAC;AAEN,MAAM,eAAe,GACnB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,eAAK,CAAC,OAAO,CACX,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EACrB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EACd,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EACd,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CACf,CAAC;AAEN,MAAM,cAAc,GAClB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAElC,MAAM,eAAe,GACnB,CAAC,EAAU,EAAc,EAAE,CAC3B,CAAC,MAAc,EAAU,EAAE,CACzB,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAEtC,kBAAe,CAAC,EAAU,EAAE,UAAkB,EAAU,EAAE;IACxD,QAAQ,UAAU,EAAE;QAClB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;KACnE;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC,CAAC"}
|
package/lib/types.d.ts
DELETED
package/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/lib/utils.d.ts
DELETED
package/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAAA,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAU,EAAE;IAC1D,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAU,EAAE;IACrE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;oEAGyC,CAAC;AAErE,kBAAe;IACb,OAAO;IACP,OAAO;IACP,OAAO;IACP,kBAAkB;CACnB,CAAC"}
|