maxmind 4.3.0 → 4.3.4
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/LICENSE +1 -1
- package/README.md +1 -1
- package/lib/fs.d.ts +1 -2
- package/lib/fs.js +1 -2
- package/lib/fs.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +25 -13
- package/lib/index.js.map +1 -1
- package/package.json +11 -11
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# node-maxmind
|
|
1
|
+
# node-maxmind
|
|
2
2
|
|
|
3
3
|
Javascript module for Geo IP lookup using Maxmind binary databases (aka mmdb or geoip2).
|
|
4
4
|
Fastest Maxmind lookup library available - up to [17,000% faster](https://github.com/runk/node-maxmind-benchmark) than other libraries. Module has 100% test coverage with comprehensive test suite. It natively works with binary Maxmind database format and doesn't require any "CSV - {specific lib format}" conversions as some other modules do. Maxmind binary databases are highly optimized for size and performance so there's no point using other formats.
|
package/lib/fs.d.ts
CHANGED
package/lib/fs.js
CHANGED
|
@@ -8,7 +8,6 @@ const util_1 = __importDefault(require("util"));
|
|
|
8
8
|
exports.default = {
|
|
9
9
|
existsSync: fs_1.default.existsSync,
|
|
10
10
|
readFile: util_1.default.promisify(fs_1.default.readFile),
|
|
11
|
-
|
|
12
|
-
watch: fs_1.default.watch,
|
|
11
|
+
watchFile: fs_1.default.watchFile,
|
|
13
12
|
};
|
|
14
13
|
//# sourceMappingURL=fs.js.map
|
package/lib/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,kBAAe;IACb,UAAU,EAAE,YAAE,CAAC,UAAU;IACzB,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,YAAE,CAAC,QAAQ,CAAC;IACrC,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,kBAAe;IACb,UAAU,EAAE,YAAE,CAAC,UAAU;IACzB,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,YAAE,CAAC,QAAQ,CAAC;IACrC,SAAS,EAAE,YAAE,CAAC,SAAS;CACxB,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -16,20 +16,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.Reader = exports.validate = exports.init = exports.openSync = exports.open = void 0;
|
|
17
17
|
const assert_1 = __importDefault(require("assert"));
|
|
18
18
|
const tiny_lru_1 = __importDefault(require("tiny-lru"));
|
|
19
|
-
const mmdb_lib_1 =
|
|
20
|
-
exports
|
|
19
|
+
const mmdb_lib_1 = require("mmdb-lib");
|
|
20
|
+
Object.defineProperty(exports, "Reader", { enumerable: true, get: function () { return mmdb_lib_1.Reader; } });
|
|
21
21
|
const fs_1 = __importDefault(require("./fs"));
|
|
22
22
|
const ip_1 = __importDefault(require("./ip"));
|
|
23
23
|
const is_gzip_1 = __importDefault(require("./is-gzip"));
|
|
24
24
|
const utils_1 = __importDefault(require("./utils"));
|
|
25
|
-
|
|
26
|
-
assert_1.default(!cb, utils_1.default.legacyErrorMessage);
|
|
25
|
+
const open = async (filepath, opts, cb) => {
|
|
26
|
+
(0, assert_1.default)(!cb, utils_1.default.legacyErrorMessage);
|
|
27
27
|
const database = await fs_1.default.readFile(filepath);
|
|
28
|
-
if (is_gzip_1.default(database)) {
|
|
28
|
+
if ((0, is_gzip_1.default)(database)) {
|
|
29
29
|
throw new Error('Looks like you are passing in a file in gzip format, please use mmdb database instead.');
|
|
30
30
|
}
|
|
31
|
-
const cache = tiny_lru_1.default((opts && opts.cache && opts.cache.max) || 6000);
|
|
32
|
-
|
|
31
|
+
const cache = (0, tiny_lru_1.default)((opts && opts.cache && opts.cache.max) || 6000);
|
|
32
|
+
const reader = new mmdb_lib_1.Reader(database, { cache });
|
|
33
33
|
if (opts && !!opts.watchForUpdates) {
|
|
34
34
|
if (opts.watchForUpdatesHook &&
|
|
35
35
|
typeof opts.watchForUpdatesHook !== 'function') {
|
|
@@ -38,13 +38,22 @@ exports.open = async (filepath, opts, cb) => {
|
|
|
38
38
|
const watcherOptions = {
|
|
39
39
|
persistent: opts.watchForUpdatesNonPersistent !== true,
|
|
40
40
|
};
|
|
41
|
-
fs_1.default.
|
|
42
|
-
|
|
41
|
+
fs_1.default.watchFile(filepath, watcherOptions, async () => {
|
|
42
|
+
const waitExists = async () => {
|
|
43
|
+
for (let i = 0; i < 3; i++) {
|
|
44
|
+
if (fs_1.default.existsSync(filepath)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
await new Promise(a => setTimeout(a, 500));
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
};
|
|
51
|
+
if (!(await waitExists())) {
|
|
43
52
|
return;
|
|
44
53
|
}
|
|
45
|
-
const
|
|
54
|
+
const updatedDatabase = await fs_1.default.readFile(filepath);
|
|
46
55
|
cache.clear();
|
|
47
|
-
reader
|
|
56
|
+
reader.load(updatedDatabase);
|
|
48
57
|
if (opts.watchForUpdatesHook) {
|
|
49
58
|
opts.watchForUpdatesHook();
|
|
50
59
|
}
|
|
@@ -52,12 +61,15 @@ exports.open = async (filepath, opts, cb) => {
|
|
|
52
61
|
}
|
|
53
62
|
return reader;
|
|
54
63
|
};
|
|
55
|
-
exports.
|
|
64
|
+
exports.open = open;
|
|
65
|
+
const openSync = () => {
|
|
56
66
|
throw new Error(utils_1.default.legacyErrorMessage);
|
|
57
67
|
};
|
|
58
|
-
exports.
|
|
68
|
+
exports.openSync = openSync;
|
|
69
|
+
const init = () => {
|
|
59
70
|
throw new Error(utils_1.default.legacyErrorMessage);
|
|
60
71
|
};
|
|
72
|
+
exports.init = init;
|
|
61
73
|
exports.validate = ip_1.default.validate;
|
|
62
74
|
__exportStar(require("mmdb-lib"), exports);
|
|
63
75
|
exports.default = {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,wDAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,wDAA2B;AAC3B,uCAAiC;AA8FxB,uFA9FA,iBAAM,OA8FA;AA7Ff,8CAAsB;AACtB,8CAAsB;AACtB,wDAA+B;AAC/B,oDAA4B;AAarB,MAAM,IAAI,GAAG,KAAK,EACvB,QAAgB,EAChB,IAAe,EACf,EAAa,EACO,EAAE;IACtB,IAAA,gBAAM,EAAC,CAAC,EAAE,EAAE,eAAK,CAAC,kBAAkB,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,IAAA,iBAAM,EAAC,QAAQ,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;KACH;IAED,MAAM,KAAK,GAAG,IAAA,kBAAG,EAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,iBAAM,CAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAElD,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;QAClC,IACE,IAAI,CAAC,mBAAmB;YACxB,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAC9C;YACA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QACD,MAAM,cAAc,GAAG;YACrB,UAAU,EAAE,IAAI,CAAC,4BAA4B,KAAK,IAAI;SACvD,CAAC;QAEF,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;YAGhD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC1B,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;wBAC3B,OAAO,IAAI,CAAC;qBACb;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;iBAC5C;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAA;YACD,IAAI,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE;gBACzB,OAAO;aACR;YACD,MAAM,eAAe,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpD,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxDW,QAAA,IAAI,QAwDf;AAEK,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEK,MAAM,IAAI,GAAG,GAAG,EAAE;IACvB,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEW,QAAA,QAAQ,GAAG,YAAE,CAAC,QAAQ,CAAC;AAEpC,2CAAyB;AAEzB,kBAAe;IACb,IAAI,EAAJ,YAAI;IACJ,IAAI,EAAJ,YAAI;IACJ,QAAQ,EAAR,gBAAQ;IACR,QAAQ,EAAE,YAAE,CAAC,QAAQ;CACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maxmind",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.4",
|
|
4
4
|
"homepage": "https://github.com/runk/node-maxmind",
|
|
5
5
|
"description": "IP lookup using Maxmind databases",
|
|
6
6
|
"keywords": [
|
|
@@ -26,21 +26,21 @@
|
|
|
26
26
|
"Gregory Oschwald @oschwald"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"mmdb-lib": "
|
|
29
|
+
"mmdb-lib": "2.0.1",
|
|
30
30
|
"tiny-lru": "7.0.6"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/ip-address": "6.0.0",
|
|
34
|
-
"@types/jest": "
|
|
35
|
-
"@types/node": "
|
|
36
|
-
"@types/sinon": "
|
|
37
|
-
"ip-address": "
|
|
38
|
-
"jest": "
|
|
39
|
-
"
|
|
40
|
-
"
|
|
34
|
+
"@types/jest": "27.4.0",
|
|
35
|
+
"@types/node": "16.11.19",
|
|
36
|
+
"@types/sinon": "10.0.6",
|
|
37
|
+
"ip-address": "8.1.0",
|
|
38
|
+
"jest": "27.4.7",
|
|
39
|
+
"semantic-release": "18.0.1",
|
|
40
|
+
"sinon": "12.0.1",
|
|
41
|
+
"ts-jest": "27.1.2",
|
|
41
42
|
"tslint": "6.1.3",
|
|
42
|
-
"typescript": "4.
|
|
43
|
-
"semantic-release": "17.1.2"
|
|
43
|
+
"typescript": "4.5.4"
|
|
44
44
|
},
|
|
45
45
|
"repository": {
|
|
46
46
|
"type": "git",
|