ts-ip2region2 1.1.0 → 1.1.2

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 CHANGED
@@ -28,8 +28,11 @@ import { Ip2Region } from 'ts-ip2region2';
28
28
  // Create searcher instance (uses bundled data)
29
29
  const searcher = new Ip2Region();
30
30
 
31
+ // Or with options
32
+ const searcher2 = new Ip2Region({ cachePolicy: 'content', ipVersion: 'v6' });
33
+
31
34
  // Or specify custom database path
32
- const searcher2 = new Ip2Region('./custom.xdb', {
35
+ const searcher3 = new Ip2Region('./custom.xdb', {
33
36
  cachePolicy: 'vectorIndex',
34
37
  ipVersion: 'v4'
35
38
  });
@@ -48,11 +51,13 @@ searcher.close();
48
51
  ### Constructor
49
52
 
50
53
  ```typescript
51
- new Ip2Region(dbPath?: string, options?: Ip2RegionOptions)
52
- ```
54
+ // Using default bundled data
55
+ new Ip2Region()
56
+ new Ip2Region(options: Ip2RegionOptions)
53
57
 
54
- - `dbPath` (optional): Path to custom xdb file. If not provided, uses bundled data.
55
- - `options` (optional): Configuration options
58
+ // Using custom database
59
+ new Ip2Region(dbPath: string, options?: Ip2RegionOptions)
60
+ ```
56
61
 
57
62
  ### Methods
58
63
 
package/dist/index.d.ts CHANGED
@@ -24,10 +24,10 @@ export default class Ip2Region {
24
24
  private readonly options;
25
25
  /**
26
26
  * Create ip2region searcher instance
27
- * @param dbPath Path to xdb database file (optional, will use bundled data if not provided)
28
- * @param options Configuration options
27
+ * @param dbPathOrOptions Path to xdb database file or options (when using default path)
28
+ * @param options Configuration options (when dbPath is provided)
29
29
  */
30
- constructor(dbPath?: string, options?: Ip2RegionOptions);
30
+ constructor(dbPathOrOptions?: string | Ip2RegionOptions, options?: Ip2RegionOptions);
31
31
  /**
32
32
  * Query geographic location information for IP address
33
33
  * @param ip IP address string (supports IPv4 and IPv6)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACjD,8BAA8B;IAC9B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAsB3D;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAOhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtC;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOnD;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC,gBAAgB,CAAC;IAIxC;;;OAGG;IACH,SAAS,IAAI,MAAM;CAGtB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACjD,8BAA8B;IAC9B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD;;;;OAIG;gBACS,eAAe,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAkCnF;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAOhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtC;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOnD;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC,gBAAgB,CAAC;IAIxC;;;OAGG;IACH,SAAS,IAAI,MAAM;CAGtB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -6,13 +6,24 @@ const ts_ip2region2_data_1 = require("ts-ip2region2-data");
6
6
  class Ip2Region {
7
7
  /**
8
8
  * Create ip2region searcher instance
9
- * @param dbPath Path to xdb database file (optional, will use bundled data if not provided)
10
- * @param options Configuration options
9
+ * @param dbPathOrOptions Path to xdb database file or options (when using default path)
10
+ * @param options Configuration options (when dbPath is provided)
11
11
  */
12
- constructor(dbPath, options = {}) {
12
+ constructor(dbPathOrOptions, options) {
13
+ let dbPath;
14
+ let finalOptions;
15
+ // If first parameter is options object, use default dbPath
16
+ if (typeof dbPathOrOptions === 'object' && dbPathOrOptions !== null) {
17
+ dbPath = undefined;
18
+ finalOptions = dbPathOrOptions;
19
+ }
20
+ else {
21
+ dbPath = dbPathOrOptions;
22
+ finalOptions = options || {};
23
+ }
13
24
  this.options = {
14
- cachePolicy: options.cachePolicy || 'vectorIndex',
15
- ipVersion: options.ipVersion || 'v4',
25
+ cachePolicy: finalOptions.cachePolicy || 'vectorIndex',
26
+ ipVersion: finalOptions.ipVersion || 'v4',
16
27
  };
17
28
  if (!dbPath) {
18
29
  if (!(0, ts_ip2region2_data_1.isDataExtracted)()) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACzD,2DAAmE;AAyBnE,MAAqB,SAAS;IAK1B;;;;OAIG;IACH,YAAY,MAAe,EAAE,UAA4B,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG;YACX,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa;YACjD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;SACvC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,IAAI,CAAC,IAAA,oCAAe,GAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACvG,CAAC;YACD,MAAM,SAAS,GAAG,IAAA,iCAAY,GAAE,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU;QACb,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QACxB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,UAAU;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AA3FD,4BA2FC;AAEQ,8BAAS"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACzD,2DAAmE;AAyBnE,MAAqB,SAAS;IAK1B;;;;OAIG;IACH,YAAY,eAA2C,EAAE,OAA0B;QAC/E,IAAI,MAA0B,CAAC;QAC/B,IAAI,YAA8B,CAAC;QAEnC,2DAA2D;QAC3D,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAClE,MAAM,GAAG,SAAS,CAAC;YACnB,YAAY,GAAG,eAAe,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,eAAe,CAAC;YACzB,YAAY,GAAG,OAAO,IAAI,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACX,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,aAAa;YACtD,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI;SAC5C,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,IAAI,CAAC,IAAA,oCAAe,GAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACvG,CAAC;YACD,MAAM,SAAS,GAAG,IAAA,iCAAY,GAAE,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU;QACb,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QACxB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,UAAU;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAvGD,4BAuGC;AAEQ,8BAAS"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ip2region2",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "TypeScript-first ip2region implementation with native Node.js addon. Ultra-fast IPv4/IPv6 geolocation queries.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -41,8 +41,8 @@
41
41
  "ts-ip2region2-data": "*"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/node": "^24.7.0",
45
- "node-gyp": "^11.4.2",
44
+ "@types/node": "^24.8.1",
45
+ "node-gyp": "^11.5.0",
46
46
  "typescript": "^5.9.3"
47
47
  },
48
48
  "engines": {