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 CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020 Dmitry Shirokov
3
+ Copyright (c) 2022 Dmitry Shirokov
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # node-maxmind [![Build Status](https://api.travis-ci.org/runk/node-maxmind.svg?branch=master)](https://travis-ci.org/runk/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
@@ -3,7 +3,6 @@ import fs from 'fs';
3
3
  declare const _default: {
4
4
  existsSync: typeof fs.existsSync;
5
5
  readFile: typeof fs.readFile.__promisify__;
6
- readFileSync: typeof fs.readFileSync;
7
- watch: typeof fs.watch;
6
+ watchFile: typeof fs.watchFile;
8
7
  };
9
8
  export default _default;
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
- readFileSync: fs_1.default.readFileSync,
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,YAAY,EAAE,YAAE,CAAC,YAAY;IAC7B,KAAK,EAAE,YAAE,CAAC,KAAK;CAChB,CAAC"}
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
@@ -1,4 +1,4 @@
1
- import Reader from 'mmdb-lib';
1
+ import { Reader } from 'mmdb-lib';
2
2
  declare type Callback = () => void;
3
3
  export interface OpenOpts {
4
4
  cache?: {
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 = __importDefault(require("mmdb-lib"));
20
- exports.Reader = mmdb_lib_1.default;
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
- exports.open = async (filepath, opts, cb) => {
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
- let reader = new mmdb_lib_1.default(database, { cache });
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.watch(filepath, watcherOptions, async () => {
42
- if (!fs_1.default.existsSync(filepath)) {
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 updateDatabase = await fs_1.default.readFile(filepath);
54
+ const updatedDatabase = await fs_1.default.readFile(filepath);
46
55
  cache.clear();
47
- reader = new mmdb_lib_1.default(updateDatabase, { cache });
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.openSync = () => {
64
+ exports.open = open;
65
+ const openSync = () => {
56
66
  throw new Error(utils_1.default.legacyErrorMessage);
57
67
  };
58
- exports.init = () => {
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,wDAA6B;AAmFpB,iBAnFF,kBAAM,CAmFE;AAlFf,8CAAsB;AACtB,8CAAsB;AACtB,wDAA+B;AAC/B,oDAA4B;AAaf,QAAA,IAAI,GAAG,KAAK,EACvB,QAAgB,EAChB,IAAe,EACf,EAAa,EACO,EAAE;IACtB,gBAAM,CAAC,CAAC,EAAE,EAAE,eAAK,CAAC,kBAAkB,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,iBAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;KACH;IAED,MAAM,KAAK,GAAG,kBAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAClE,IAAI,MAAM,GAAG,IAAI,kBAAM,CAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhD,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,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;YAG5C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5B,OAAO;aACR;YACD,MAAM,cAAc,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnD,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,IAAI,kBAAM,CAAI,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEW,QAAA,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEW,QAAA,IAAI,GAAG,GAAG,EAAE;IACvB,MAAM,IAAI,KAAK,CAAC,eAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC;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"}
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.0",
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": "1.2.0",
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": "26.0.14",
35
- "@types/node": "10.17.5",
36
- "@types/sinon": "9.0.8",
37
- "ip-address": "6.4.0",
38
- "jest": "26.5.0",
39
- "sinon": "9.1.0",
40
- "ts-jest": "26.4.1",
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.0.3",
43
- "semantic-release": "17.1.2"
43
+ "typescript": "4.5.4"
44
44
  },
45
45
  "repository": {
46
46
  "type": "git",