plevinjs 0.1.6 → 0.1.8

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
@@ -299,6 +299,27 @@ word beats one inside it, and then the network that touches most of the internet
299
299
  which is its exchanges and its users. `search("13335")` is the ASN itself. The index is
300
300
  one lowercase text built on the first search, 0.32 s, and kept from then on.
301
301
 
302
+ ## What an ASN announces
303
+
304
+ ```js
305
+ const routes = db.routes("AS13335"); // written however system() takes it
306
+ routes.ipv4.length; // 1506
307
+ routes.ipv4[0].cidr; // '152.114.0.0/17', the widest first
308
+ routes.ipv4[0].addresses; // 32768
309
+ routes.ipv4_addresses; // 616704, the space of all of them
310
+ routes.ipv6_addresses >> 64n; // 75037868032n, as /64 networks
311
+ ```
312
+
313
+ `routes()` answers a `Routes`: every prefix the ASN is announced as, split into `ipv4`
314
+ and `ipv6` and widest first, each one a `Span` with its `cidr`, `start`, `end`,
315
+ `version`, `prefix` and `addresses`. `ipv4_addresses` is a number and `ipv6_addresses` a
316
+ bigint, and both count the space once where a more specific sits inside its own cover.
317
+ `found` is `false` where the file carries no such ASN.
318
+
319
+ It reads the spine's network column whole, a block at a time, rather than a row at a
320
+ time: 159 ms for the first ASN asked about and 2 to 9 ms for every one after it, each
321
+ answer kept. Nothing an address lookup reads is touched.
322
+
302
323
  ## In a browser
303
324
 
304
325
  No build step and no install: the package is plain ESM with no dependencies, so any npm
@@ -362,6 +383,7 @@ Measured on the full file, Node 26, one core:
362
383
  | repeats | 4,600,000/s |
363
384
  | uniformly random v4 | 13,000/s cold, 200,000/s over the same log again |
364
385
  | one ASN | 350,000/s, a bisect of the network table |
386
+ | one ASN's prefixes | 159 ms for the first, 2 to 9 ms after, then kept |
365
387
  | search | 1 ms, after 0.32 s building the index |
366
388
 
367
389
  Blocks decode on reach and stay decoded, so a real log lands between the two. Memory is
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /** Location, network and abuse information for any IP address in one offline file. */
2
2
  import { type Value } from "./address.ts";
3
- import type { Result, System } from "./models.ts";
3
+ import type { Result, Routes, System } from "./models.ts";
4
4
  import { File, type Row } from "./reader.ts";
5
5
  export type { Value } from "./address.ts";
6
6
  export * from "./models.ts";
@@ -17,6 +17,7 @@ export declare class Plevin {
17
17
  readonly file: File;
18
18
  private readonly kept;
19
19
  private readonly results;
20
+ private readonly announced;
20
21
  private second;
21
22
  constructor(bytes: Uint8Array);
22
23
  get built(): string;
@@ -29,6 +30,8 @@ export declare class Plevin {
29
30
  resolve(value: Value, options?: Asked): Promise<Result>;
30
31
  /** One ASN as everything the file stores about the network behind it. */
31
32
  system(asn: number | string): System;
33
+ /** Every prefix one ASN is announced as, widest first, and the space they cover. */
34
+ routes(asn: number | string): Routes;
32
35
  /** The networks whose handle or company carries this text, best match first. */
33
36
  search(text: string, limit?: number): System[];
34
37
  /** The stored rows without any shaping, or null where the file covers nothing. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAoBL,KAAK,KAAK,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAWV,MAAM,EACN,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,IAAI,EAAc,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAEzD,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAuRvD,uFAAuF;AACvF,MAAM,MAAM,KAAK,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5D,2EAA2E;AAC3E,qBAAa,MAAM;IACjB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,MAAM,CAAK;IAEnB,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,OAAO,CAAC,SAAS;IAUjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAmBjD;IAED,oFAAoF;IAC9E,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5D;IAED,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAWnC;IAED,gFAAgF;IAChF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,EAAE,CAIzC;IAED,kFAAkF;IAClF,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,CAG5B;CACF;AAED,+EAA+E;AAC/E,eAAO,MAAM,IAAI,WACP,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,KACnE,OAAO,CAAC,MAAM,CAMhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAoBL,KAAK,KAAK,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAWV,MAAM,EACN,MAAM,EAEN,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,IAAI,EAAc,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAEzD,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAyTvD,uFAAuF;AACvF,MAAM,MAAM,KAAK,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5D,2EAA2E;AAC3E,qBAAa,MAAM;IACjB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,MAAM,CAAK;IAEnB,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,OAAO,CAAC,SAAS;IAUjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAmBjD;IAED,oFAAoF;IAC9E,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5D;IAED,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAWnC;IAED,oFAAoF;IACpF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CA4BnC;IAED,gFAAgF;IAChF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,EAAE,CAIzC;IAED,kFAAkF;IAClF,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,CAG5B;CACF;AAED,+EAA+E;AAC/E,eAAO,MAAM,IAAI,WACP,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,KACnE,OAAO,CAAC,MAAM,CAMhB,CAAC"}
package/dist/index.js CHANGED
@@ -197,6 +197,39 @@ const systemOf = (row) => {
197
197
  abuse: abuseOf(undefined, record, userType),
198
198
  };
199
199
  };
200
+ /** A more specific sits inside its own cover, so the sweep counts the space once. */
201
+ const covered = (held, bits) => {
202
+ let total = 0n;
203
+ let reach = 0n;
204
+ for (const [start, prefix] of [...held].sort(([one], [two]) => (one < two ? -1 : 1))) {
205
+ const end = start + (1n << (bits - BigInt(prefix)));
206
+ if (end <= reach)
207
+ continue;
208
+ total += end - (start > reach ? start : reach);
209
+ reach = end;
210
+ }
211
+ return total;
212
+ };
213
+ /** Every prefix one network row is announced as, widest first, and the space covered. */
214
+ const routed = (file, row, version) => {
215
+ const wide = version === 6;
216
+ const bits = wide ? 128n : 32n;
217
+ const held = file.spans(row, version);
218
+ held.sort((one, two) => one[1] - two[1] || (one[0] < two[0] ? -1 : 1));
219
+ const spans = held.map(([start, prefix]) => {
220
+ const [cidr, first, last] = span(start, wide, prefix);
221
+ const addresses = 1n << (bits - BigInt(prefix));
222
+ return {
223
+ cidr,
224
+ start: first,
225
+ end: last,
226
+ version,
227
+ prefix,
228
+ addresses: wide ? addresses : Number(addresses),
229
+ };
230
+ });
231
+ return [spans, covered(held, bits)];
232
+ };
200
233
  /** An ASN however it is written, as AS15169, as15169 or plainly 15169. */
201
234
  const asnOf = (value) => {
202
235
  const held = String(value).trim().toLowerCase().replace(/^as/, "");
@@ -253,6 +286,7 @@ export class Plevin {
253
286
  file;
254
287
  kept = new Map();
255
288
  results = new Map();
289
+ announced = new Map();
256
290
  second = 0;
257
291
  constructor(bytes) {
258
292
  this.file = new File(bytes);
@@ -322,6 +356,36 @@ export class Plevin {
322
356
  abuse: null,
323
357
  };
324
358
  }
359
+ /** Every prefix one ASN is announced as, widest first, and the space they cover. */
360
+ routes(asn) {
361
+ const number = asnOf(asn);
362
+ const found = this.announced.get(number);
363
+ if (found)
364
+ return found;
365
+ const row = this.file.systemAt(number);
366
+ if (row < 0) {
367
+ return {
368
+ asn: number || null,
369
+ found: false,
370
+ ipv4: [],
371
+ ipv6: [],
372
+ ipv4_addresses: 0,
373
+ ipv6_addresses: 0n,
374
+ };
375
+ }
376
+ const [ipv4, four] = routed(this.file, row, 4);
377
+ const [ipv6, six] = routed(this.file, row, 6);
378
+ const built = {
379
+ asn: number,
380
+ found: true,
381
+ ipv4,
382
+ ipv6,
383
+ ipv4_addresses: Number(four),
384
+ ipv6_addresses: six,
385
+ };
386
+ this.announced.set(number, built);
387
+ return built;
388
+ }
325
389
  /** The networks whose handle or company carries this text, best match first. */
326
390
  search(text, limit = 20) {
327
391
  const found = this.system(text);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/models.d.ts CHANGED
@@ -125,6 +125,24 @@ export type System = {
125
125
  network: Network | null;
126
126
  abuse: Abuse | null;
127
127
  };
128
+ /** One prefix an ASN is announced as, and how many addresses it holds. */
129
+ export type Span = {
130
+ cidr: string;
131
+ start: string;
132
+ end: string;
133
+ version: number;
134
+ prefix: number;
135
+ addresses: number | bigint;
136
+ };
137
+ /** Every prefix one ASN is announced as, widest first, and the space they cover. */
138
+ export type Routes = {
139
+ asn: number | null;
140
+ found: boolean;
141
+ ipv4: Span[];
142
+ ipv6: Span[];
143
+ ipv4_addresses: number;
144
+ ipv6_addresses: bigint;
145
+ };
128
146
  /** What the resolvers say about the address, asked for only where a flag says so. */
129
147
  export type Dns = {
130
148
  asked: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,GAAG,GAAG;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- var X="ipv4-mapped",ee="6to4",ne="teredo",gn="nat64";var En=(1n<<128n)-1n,yn=[["0.0.0.0/8",8],["10.0.0.0/8",1],["100.64.0.0/10",129],["127.0.0.0/8",3],["169.254.0.0/16",17],["172.16.0.0/12",1],["192.0.0.0/24",8],["192.0.2.0/24",72],["192.88.99.0/24",8],["192.168.0.0/16",1],["198.18.0.0/15",264],["198.51.100.0/24",72],["203.0.113.0/24",72],["224.0.0.0/4",4],["240.0.0.0/4",8]],Cn=[["::/128",8],["::1/128",3],["::ffff:0:0/96",8],["64:ff9b::/96",8],["64:ff9b:1::/48",8],["100::/64",8],["2001::/23",8],["2001:db8::/32",72],["2002::/16",8],["3fff::/20",72],["fc00::/7",33],["fe80::/10",17],["ff00::/8",4]],Rn=/^(0|[1-9][0-9]{0,2})$/,Mn=/^[0-9a-fA-F]{1,4}$/,ke=e=>{let n=e.split(".");if(n.length!==4)return null;let t=0;for(let r of n){if(!Rn.test(r))return null;let i=Number(r);if(i>255)return null;t=t*256+i}return t},Ue=(e,n)=>{if(e==="")return[];let t=e.split(":"),r=[];for(let i=0;i<t.length;i+=1){let a=t[i];if(i===t.length-1&&a.includes(".")){let o=ke(a);if(o===null)return null;r.push(o>>>16,o&65535);continue}if(!Mn.test(a))return null;r.push(Number.parseInt(a,16))}return r.length<=n?r:null},Dn=e=>{let n=e.split("::");if(n.length>2)return null;let t=Ue(n[0],8),r=n.length===2?Ue(n[1],8):[];if(t===null||r===null)return null;let i=t.length+r.length;if(n.length===1?i!==8:i>7)return null;let a=[...t,...Array(8-i).fill(0),...r],o=0n;for(let s of a)o=o<<16n|BigInt(s);return o},M=e=>{if(typeof e=="string"){if(e.includes(":")){let r=Dn(e);if(r===null)throw new Error(`${e} is not an address`);return[r,!0]}let t=ke(e);if(t===null)throw new Error(`${e} is not an address`);return[t,!1]}if(e instanceof Uint8Array){if(e.length===4)return[(e[0]<<24>>>0)+(e[1]<<16)+(e[2]<<8)+e[3],!1];if(e.length!==16)throw new Error("packed addresses are 4 or 16 bytes");let t=0n;for(let r of e)t=t<<8n|BigInt(r);return[t,!0]}if(typeof e!="bigint"&&!Number.isInteger(e))throw new Error(`${String(e)} is not an address`);let n=typeof e=="bigint"?e:BigInt(e);if(n<0n||n>En)throw new Error(`${e} is not an address`);return n>BigInt(4294967295)?[n,!0]:[Number(n),!1]},wn=e=>Array.from({length:8},(n,t)=>Number(e>>BigInt(112-t*16)&0xffffn)),k=e=>[24,16,8,0].map(n=>e>>>n&255).join("."),Be=(e,n)=>{let t=-1,r=1,i=-1;for(let s=0;s<=n.length;s+=1)n[s]===0&&i<0&&(i=s),(n[s]!==0||s===n.length)&&i>=0&&(s-i>r&&([t,r]=[i,s-i]),i=-1);if(t<0)return e.join(":");let a=e.slice(0,t).join(":"),o=e.slice(t+r).join(":");return`${a}::${o}`},P=(e,n)=>{if(!n){let o=k(e),s=o.split(".");return[o,o,`${[...s].reverse().join(".")}.in-addr.arpa`]}let t=wn(e),i=`${[...e.toString(16).padStart(32,"0")].reverse().join(".")}.ip6.arpa`;if(t.slice(0,5).every(o=>o===0)&&t[5]===65535){let o=k(Number(e&0xffffffffn)),s=t.slice(0,6).map(c=>c.toString(16)),l=t.slice(0,6).map(c=>c.toString(16).padStart(4,"0"));return[`${Be(s,t.slice(0,6))}:${o}`,`${l.join(":")}:${o}`,i]}return[Be(t.map(o=>o.toString(16)),t),t.map(o=>o.toString(16).padStart(4,"0")).join(":"),i]},R=(e,n)=>P(e,n)[0],Ne=(e,n)=>e.map(([t,r])=>{let[i,a]=t.split("/"),o=BigInt(M(i)[0]),s=BigInt((n?128:32)-Number(a));return[o,o+((1n<<s)-1n),r]}).sort((t,r)=>t[0]<r[0]?-1:1),In=[Ne(yn,!1),Ne(Cn,!0)],Pe=(e,n)=>{let t=In[n?1:0],r=BigInt(e),i=0,a=t.length;for(;i<a;){let s=i+a>>1;t[s][0]<=r?i=s+1:a=s}let o=t[i-1];return o&&r<=o[1]?o[2]:n&&r>>125n!==1n?8:0},G=(e,n)=>{if(!n)return[null,null];let t=e,r=Number(t&0xffffffffn);return t>>32n===0xffffn?[X,k(r)]:t>>112n===0x2002n?[ee,k(Number(t>>80n&0xffffffffn))]:t>>96n===0x20010000n?[ne,k(~r>>>0)]:t>>32n===0x0064ff9bn<<64n?[gn,k(r)]:[null,null]},Ge=(e,n)=>{if(!n||G(e,n)[0]!==null)return null;let t=e,r=[48n,32n,16n,0n].map(a=>Number(t>>a&0xffffn).toString(16));return r.every(a=>/^[0-9]+$/.test(a)&&Number(a)>0&&Number(a)<256)?r.join("."):null},Le=(e,n)=>{if(n)return[null,null,null];let t=BigInt(e);return[R(0xffff00000000n|t,!0),R(0x2002n<<112n|t<<80n,!0),R(0x0064ff9bn<<96n|t,!0)]},_e=(e,n,t)=>{let r=BigInt((n?128:32)-t),i=BigInt(e),a=i>>r<<r,o=i|(1n<<r)-1n,s=R(n?a:Number(a),n);return[`${s}/${t}`,s,R(n?o:Number(o),n)]};var te=e=>new Set(e.split(" ")),Un=te("inc incorporated llc ltd ltda limited gmbh mbh ag kgaa ohg ev eg sa sab saa sau sal saog sac sas sarl srl spa nv bv cv asa aps oyj kft zrt nyrt doo sro ooo zao pao pjsc jsc ojsc llp plc pte pteltd pty corp corporation company holding holdings group uab sia tov oao pt sdn bhd coltd coltda eireli ead ood eood sti ltdsti spzoo"),Bn=te("de me epp co as ab ad dd bt lc lp se sl slu sp z oo zoo oy ao esp kg network networks net telecom telecoms telecommunication telecommunications telecomunicaciones comunicaciones communication communications hosting solutions services service technologies technology tech systems system data datacenter datacentre cloud internet online isp international global enterprises enterprise backbone provider providers of and"),Nn=te("the llc ltd gmbh sarl ooo zao pao ao oao jsc ojsc pjsc uab sia tov pt pp ps ip spolka"),kn=new Set([...Un,...Bn,""]),Pn=[".com",".net",".org",".io"],Gn=/^.*\b(?:trading as|d\/b\/a|dba)\b\s*/i,Ln=/\(.*?\)|,.*|\s+-\s+.*/g,ve=/[^0-9a-z]/g,_n=/^AS\d+$/i,vn=/-(AS|AP|US|UK|DE|FR|IN|CN|JP|EU|NET|COM|ORG)$/,xn=/(NET|COM|TEL|WEB|LINE)$/,Kn=/[/?#]/,On=/^["']+|["']+$/g,xe=new Set(["hosting","cdn","content"]),Fn=new Set(["residential","cellular"]),Ke=new Set(["public_proxy","residential_proxy"]),Vn={"national capital":"country","regional capital":"region","district capital":"district"},Hn=8192,Oe=e=>{let n=new Map;return t=>{let r=n.get(t);if(r!==void 0)return r;n.size>=Hn&&n.clear();let i=e(t);return n.set(t,i),i}},Wn=/^\p{L}+$/u,Fe=e=>{let n=e.indexOf(`
2
- `);return[e.slice(0,n),e.slice(n+1)]},zn=e=>e.length>4&&Wn.test(e)&&e===e.toUpperCase()&&e!==e.toLowerCase(),$n=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),Ve=e=>e.split(" ").map(n=>zn(n)?$n(n):n).join(" "),Zn=e=>{let t=e.replace(Gn,"").replace(Ln,"").split(/\s+/).map(a=>a.replace(On,"")).filter(Boolean);for(;t.length>1&&kn.has(t[t.length-1].toLowerCase().replace(ve,""));)t.pop();for(;t.length&&Nn.has(t[0].toLowerCase().replace(ve,""));)t.shift();let r=t.join(" "),i=Pn.find(a=>r.toLowerCase().endsWith(a));return Ve(i?r.slice(0,r.length-i.length):r)},jn=e=>{let t=(e.split(/\s+/)[0]??"").replace(vn,"");return _n.test(t)?"":(t.length>4&&t===t.toUpperCase()&&(t=t.replace(xn,"")),Ve(t))},Jn=Oe(e=>{let[n,t]=Fe(e),r=Zn(t),i=jn(n);return!r||!i?r||i:r.toLowerCase()===i.toLowerCase()?i===i.toUpperCase()?r:i:r.toLowerCase().startsWith(`${i.toLowerCase()} `)?i:r}),He=(e,n)=>Jn(`${e}
3
- ${n}`),Yn=Oe(e=>{let[n,t]=Fe(e),i=((n.split("//").pop()??"").split(Kn)[0].split("@").pop()??"").split(":")[0],a=(t.split("@")[1]??"").toLowerCase(),o=(i||a).toLowerCase().replace(/^www\./,""),s=o.split(".").pop()??"";return s.length>2&&a.split(".")[0]===s&&o!==a?a:o}),We=(e,n)=>Yn(`${e}
4
- ${n}`),ze=(e,n)=>e==="public_proxy"&&Fn.has(n)?["residential_proxy","inferred"]:[e,""],$e=e=>Vn[e]??"";var re=`
1
+ var ee="ipv4-mapped",ne="6to4",te="teredo",Cn="nat64";var Rn=(1n<<128n)-1n,Mn=[["0.0.0.0/8",8],["10.0.0.0/8",1],["100.64.0.0/10",129],["127.0.0.0/8",3],["169.254.0.0/16",17],["172.16.0.0/12",1],["192.0.0.0/24",8],["192.0.2.0/24",72],["192.88.99.0/24",8],["192.168.0.0/16",1],["198.18.0.0/15",264],["198.51.100.0/24",72],["203.0.113.0/24",72],["224.0.0.0/4",4],["240.0.0.0/4",8]],Dn=[["::/128",8],["::1/128",3],["::ffff:0:0/96",8],["64:ff9b::/96",8],["64:ff9b:1::/48",8],["100::/64",8],["2001::/23",8],["2001:db8::/32",72],["2002::/16",8],["3fff::/20",72],["fc00::/7",33],["fe80::/10",17],["ff00::/8",4]],wn=/^(0|[1-9][0-9]{0,2})$/,In=/^[0-9a-fA-F]{1,4}$/,Ge=e=>{let n=e.split(".");if(n.length!==4)return null;let t=0;for(let r of n){if(!wn.test(r))return null;let i=Number(r);if(i>255)return null;t=t*256+i}return t},Ne=(e,n)=>{if(e==="")return[];let t=e.split(":"),r=[];for(let i=0;i<t.length;i+=1){let s=t[i];if(i===t.length-1&&s.includes(".")){let o=Ge(s);if(o===null)return null;r.push(o>>>16,o&65535);continue}if(!In.test(s))return null;r.push(Number.parseInt(s,16))}return r.length<=n?r:null},Un=e=>{let n=e.split("::");if(n.length>2)return null;let t=Ne(n[0],8),r=n.length===2?Ne(n[1],8):[];if(t===null||r===null)return null;let i=t.length+r.length;if(n.length===1?i!==8:i>7)return null;let s=[...t,...Array(8-i).fill(0),...r],o=0n;for(let a of s)o=o<<16n|BigInt(a);return o},M=e=>{if(typeof e=="string"){if(e.includes(":")){let r=Un(e);if(r===null)throw new Error(`${e} is not an address`);return[r,!0]}let t=Ge(e);if(t===null)throw new Error(`${e} is not an address`);return[t,!1]}if(e instanceof Uint8Array){if(e.length===4)return[(e[0]<<24>>>0)+(e[1]<<16)+(e[2]<<8)+e[3],!1];if(e.length!==16)throw new Error("packed addresses are 4 or 16 bytes");let t=0n;for(let r of e)t=t<<8n|BigInt(r);return[t,!0]}if(typeof e!="bigint"&&!Number.isInteger(e))throw new Error(`${String(e)} is not an address`);let n=typeof e=="bigint"?e:BigInt(e);if(n<0n||n>Rn)throw new Error(`${e} is not an address`);return n>BigInt(4294967295)?[n,!0]:[Number(n),!1]},Bn=e=>Array.from({length:8},(n,t)=>Number(e>>BigInt(112-t*16)&0xffffn)),k=e=>[24,16,8,0].map(n=>e>>>n&255).join("."),ke=(e,n)=>{let t=-1,r=1,i=-1;for(let a=0;a<=n.length;a+=1)n[a]===0&&i<0&&(i=a),(n[a]!==0||a===n.length)&&i>=0&&(a-i>r&&([t,r]=[i,a-i]),i=-1);if(t<0)return e.join(":");let s=e.slice(0,t).join(":"),o=e.slice(t+r).join(":");return`${s}::${o}`},P=(e,n)=>{if(!n){let o=k(e),a=o.split(".");return[o,o,`${[...a].reverse().join(".")}.in-addr.arpa`]}let t=Bn(e),i=`${[...e.toString(16).padStart(32,"0")].reverse().join(".")}.ip6.arpa`;if(t.slice(0,5).every(o=>o===0)&&t[5]===65535){let o=k(Number(e&0xffffffffn)),a=t.slice(0,6).map(c=>c.toString(16)),l=t.slice(0,6).map(c=>c.toString(16).padStart(4,"0"));return[`${ke(a,t.slice(0,6))}:${o}`,`${l.join(":")}:${o}`,i]}return[ke(t.map(o=>o.toString(16)),t),t.map(o=>o.toString(16).padStart(4,"0")).join(":"),i]},R=(e,n)=>P(e,n)[0],Pe=(e,n)=>e.map(([t,r])=>{let[i,s]=t.split("/"),o=BigInt(M(i)[0]),a=BigInt((n?128:32)-Number(s));return[o,o+((1n<<a)-1n),r]}).sort((t,r)=>t[0]<r[0]?-1:1),Nn=[Pe(Mn,!1),Pe(Dn,!0)],Le=(e,n)=>{let t=Nn[n?1:0],r=BigInt(e),i=0,s=t.length;for(;i<s;){let a=i+s>>1;t[a][0]<=r?i=a+1:s=a}let o=t[i-1];return o&&r<=o[1]?o[2]:n&&r>>125n!==1n?8:0},G=(e,n)=>{if(!n)return[null,null];let t=e,r=Number(t&0xffffffffn);return t>>32n===0xffffn?[ee,k(r)]:t>>112n===0x2002n?[ne,k(Number(t>>80n&0xffffffffn))]:t>>96n===0x20010000n?[te,k(~r>>>0)]:t>>32n===0x0064ff9bn<<64n?[Cn,k(r)]:[null,null]},ve=(e,n)=>{if(!n||G(e,n)[0]!==null)return null;let t=e,r=[48n,32n,16n,0n].map(s=>Number(t>>s&0xffffn).toString(16));return r.every(s=>/^[0-9]+$/.test(s)&&Number(s)>0&&Number(s)<256)?r.join("."):null},xe=(e,n)=>{if(n)return[null,null,null];let t=BigInt(e);return[R(0xffff00000000n|t,!0),R(0x2002n<<112n|t<<80n,!0),R(0x0064ff9bn<<96n|t,!0)]},re=(e,n,t)=>{let r=BigInt((n?128:32)-t),i=BigInt(e),s=i>>r<<r,o=i|(1n<<r)-1n,a=R(n?s:Number(s),n);return[`${a}/${t}`,a,R(n?o:Number(o),n)]};var ie=e=>new Set(e.split(" ")),kn=ie("inc incorporated llc ltd ltda limited gmbh mbh ag kgaa ohg ev eg sa sab saa sau sal saog sac sas sarl srl spa nv bv cv asa aps oyj kft zrt nyrt doo sro ooo zao pao pjsc jsc ojsc llp plc pte pteltd pty corp corporation company holding holdings group uab sia tov oao pt sdn bhd coltd coltda eireli ead ood eood sti ltdsti spzoo"),Pn=ie("de me epp co as ab ad dd bt lc lp se sl slu sp z oo zoo oy ao esp kg network networks net telecom telecoms telecommunication telecommunications telecomunicaciones comunicaciones communication communications hosting solutions services service technologies technology tech systems system data datacenter datacentre cloud internet online isp international global enterprises enterprise backbone provider providers of and"),Gn=ie("the llc ltd gmbh sarl ooo zao pao ao oao jsc ojsc pjsc uab sia tov pt pp ps ip spolka"),Ln=new Set([...kn,...Pn,""]),vn=[".com",".net",".org",".io"],xn=/^.*\b(?:trading as|d\/b\/a|dba)\b\s*/i,_n=/\(.*?\)|,.*|\s+-\s+.*/g,_e=/[^0-9a-z]/g,Kn=/^AS\d+$/i,On=/-(AS|AP|US|UK|DE|FR|IN|CN|JP|EU|NET|COM|ORG)$/,Fn=/(NET|COM|TEL|WEB|LINE)$/,Vn=/[/?#]/,Hn=/^["']+|["']+$/g,Ke=new Set(["hosting","cdn","content"]),Wn=new Set(["residential","cellular"]),Oe=new Set(["public_proxy","residential_proxy"]),zn={"national capital":"country","regional capital":"region","district capital":"district"},$n=8192,Fe=e=>{let n=new Map;return t=>{let r=n.get(t);if(r!==void 0)return r;n.size>=$n&&n.clear();let i=e(t);return n.set(t,i),i}},Zn=/^\p{L}+$/u,Ve=e=>{let n=e.indexOf(`
2
+ `);return[e.slice(0,n),e.slice(n+1)]},jn=e=>e.length>4&&Zn.test(e)&&e===e.toUpperCase()&&e!==e.toLowerCase(),Jn=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),He=e=>e.split(" ").map(n=>jn(n)?Jn(n):n).join(" "),Yn=e=>{let t=e.replace(xn,"").replace(_n,"").split(/\s+/).map(s=>s.replace(Hn,"")).filter(Boolean);for(;t.length>1&&Ln.has(t[t.length-1].toLowerCase().replace(_e,""));)t.pop();for(;t.length&&Gn.has(t[0].toLowerCase().replace(_e,""));)t.shift();let r=t.join(" "),i=vn.find(s=>r.toLowerCase().endsWith(s));return He(i?r.slice(0,r.length-i.length):r)},qn=e=>{let t=(e.split(/\s+/)[0]??"").replace(On,"");return Kn.test(t)?"":(t.length>4&&t===t.toUpperCase()&&(t=t.replace(Fn,"")),He(t))},Qn=Fe(e=>{let[n,t]=Ve(e),r=Yn(t),i=qn(n);return!r||!i?r||i:r.toLowerCase()===i.toLowerCase()?i===i.toUpperCase()?r:i:r.toLowerCase().startsWith(`${i.toLowerCase()} `)?i:r}),We=(e,n)=>Qn(`${e}
3
+ ${n}`),Xn=Fe(e=>{let[n,t]=Ve(e),i=((n.split("//").pop()??"").split(Vn)[0].split("@").pop()??"").split(":")[0],s=(t.split("@")[1]??"").toLowerCase(),o=(i||s).toLowerCase().replace(/^www\./,""),a=o.split(".").pop()??"";return a.length>2&&s.split(".")[0]===a&&o!==s?s:o}),ze=(e,n)=>Xn(`${e}
4
+ ${n}`),$e=(e,n)=>e==="public_proxy"&&Wn.has(n)?["residential_proxy","inferred"]:[e,""],Ze=e=>zn[e]??"";var se=`
5
5
  ADAND020Andorra|Principality of Andorra|
6
6
  AEARE784United Arab Emirates
7
7
  AFAFG004Afghanistan|Islamic Republic of Afghanistan|
@@ -252,7 +252,7 @@ ZAZAF710South Africa|Republic of South Africa|
252
252
  ZMZMB894Zambia|Republic of Zambia|
253
253
  ZWZWE716Zimbabwe|Republic of Zimbabwe|
254
254
  `.trim().split(`
255
- `);var Ze=`
255
+ `);var je=`
256
256
  Africa/Abidjan|GMT
257
257
  Africa/Accra|GMT
258
258
  Africa/Addis_Ababa|EAT
@@ -621,6 +621,6 @@ W-SU|MSK
621
621
  WET|WET|WEST
622
622
  Zulu|UTC
623
623
  `.trim().split(`
624
- `);var Qn=new Set("AT BE BG HR CY CZ DK EE FI FR DE GR HU IE IT LV LT LU MT NL PL PT RO SK SI ES SE".split(" ")),Xn=new Set("AG AI AU BB BD BM BN BS BT BW CC CK CX CY DM FJ FK GB GD GG GY HK ID IE IM IN JE JM JP KE KI KN KY LC LK LS MO MS MT MU MV MW MY MZ NA NF NP NR NU NZ PG PK PN SB SC SG SH SR SZ TC TH TL TO TT TV TZ UG VC VG WS ZA ZM ZW".split(" ")),w=864e5,et=7*w,oe=400*w,L=6e4,nt=new Map(re.map(e=>{let[n,t="",r=""]=e.slice(8).split("|");return[e.slice(0,2),[n,t,r,e.slice(2,5)]]})),tt=new Map(re.map(e=>[e.slice(0,2),e.slice(5,8)])),je=e=>e||null,rt=e=>e.length!==2||!/^[a-zA-Z]{2}$/.test(e)?"":[...e.toUpperCase()].map(n=>String.fromCodePoint(127462+n.charCodeAt(0)-65)).join(""),Je=new Map,Xe=e=>{if(!e)return null;let n=Je.get(e);if(n!==void 0)return n;let t=nt.get(e),r={code:e,name:t?t[0]:null,official:t?je(t[1]):null,common:t?je(t[2]):null,iso3:t?t[3]:null,numeric:tt.get(e)??null,flag:rt(e)||null,european_union:Qn.has(e),driving_side:Xn.has(e)?"left":"right"};return Je.set(e,r),r},it=new Map(Ze.map(e=>{let[n,t,r=t]=e.split("|");return[n,[t,r]]})),Ye=new Map,ot=e=>{let n=Ye.get(e);if(n!==void 0)return n;let t=null;try{t=new Intl.DateTimeFormat("en-US",{timeZone:e,hour12:!1,era:"short",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{t=null}return Ye.set(e,t),t},en=(e,n)=>{let t={};for(let a of e.formatToParts(n))t[a.type]=a.value;let r=Number(t.year)*(t.era==="BC"?-1:1),i=t.hour==="24"?0:Number(t.hour);return Date.UTC(r,Number(t.month)-1,Number(t.day),i,Number(t.minute),Number(t.second))},ie=(e,n)=>Math.round((en(e,n)-n)/L),I=(e,n)=>{let t=ie(e,n-w),r=ie(e,n+w);if(t===r)return t;let i=[t,r].filter(a=>ie(e,n-a*L)===a);return i.length?Math.max(...i):Math.min(t,r)},ae=e=>{let n=Math.abs(e),t=String(Math.floor(n/60)).padStart(2,"0");return`${e<0?"-":"+"}${t}:${String(n%60).padStart(2,"0")}`},qe=(e,n)=>new Date(n).toISOString().slice(0,19)+ae(I(e,n)),at=(e,n,t,r)=>{for(;t-n>1e3;){let i=n+Math.floor((t-n)/2);I(e,i)===r?n=i:t=i}return Math.floor((t+3e4)/L)*L},st=(e,n)=>{let t=n+oe,r=[],i=n-oe,a=I(e,i);for(;i<t;){let o=i+et,s=I(e,o);s!==a&&r.push(at(e,i,o,a)),a=s,i=o}return r},j=new Map,lt=(e,n,t)=>{let r=Math.floor(t/w)*w+w/2,i=`${e}@${r}`,a=j.get(i);if(a!==void 0)return a;j.size>2048&&j.clear();let o=st(n,r),s=[I(n,r-oe),...o.map(f=>I(n,f))],l=Math.min(...s),c=Math.max(...s),u=[l,null,null];for(let f=0;l!==c&&f+1<o.length;f+=1){let[d,m]=[o[f],o[f+1]];if(I(n,d)===c&&m>=r){u=[l,d,m];break}}return j.set(i,u),u},ct=(e,n,t)=>{let r=it.get(e);if(r)return t?r[1]:r[0];let i=Math.abs(n),a=String(Math.floor(i/60)).padStart(2,"0"),o=i%60;return`${n<0?"-":"+"}${a}`+(o?String(o).padStart(2,"0"):"")},Qe=(e,n)=>{let t=ot(e);if(t===null)return{timezone:e,abbreviation:null,local:null,utc_offset:null,is_dst:!1,dst_start:null,dst_end:null};let r=en(t,n),i=Math.round((r-n)/L),[a,o,s]=lt(e,t,r);return{timezone:e,abbreviation:ct(e,i,i!==a),local:new Date(r).toISOString().slice(0,19)+ae(i),utc_offset:ae(i),is_dst:i!==a,dst_start:o===null?null:qe(t,o),dst_end:s===null?null:qe(t,s)}},J=new Map,nn=(e,n)=>{if(!e)return null;if(n)return Qe(e,n.getTime());let t=Math.floor(Date.now()/1e3),r=`${e}@${t}`,i=J.get(r);if(i!==void 0)return i;J.size>1024&&J.clear();let a=Qe(e,t*1e3);return J.set(r,a),a};var ut=["1.1.1.1","8.8.8.8","9.9.9.9"],ft=["https://cloudflare-dns.com/dns-query","https://dns.google/dns-query"],se=2e3,dt=4096,mt=36e5,pt=1232,bt=new Set([0,3]),U={A:1,CNAME:5,SOA:6,PTR:12,AAAA:28},Tt=(e,n)=>{let t=e.split(".").filter(Boolean),r=t.reduce((s,l)=>s+l.length+1,0),i=new Uint8Array(12+r+1+4+11),a=new DataView(i.buffer);a.setUint16(0,Math.floor(Math.random()*65536)),a.setUint16(2,288),a.setUint16(4,1),a.setUint16(10,1);let o=12;for(let s of t){i[o]=s.length;for(let l=0;l<s.length;l+=1)i[o+1+l]=s.charCodeAt(l);o+=s.length+1}return o+=1,a.setUint16(o,U[n]),a.setUint16(o+2,1),a.setUint16(o+5,41),a.setUint16(o+7,pt),i},x=(e,n)=>{let t=[],r=n,i=-1;for(let a=0;a<128;a+=1){let o=e[r];if(o>=192){i<0&&(i=r+2),r=(o&63)<<8|e[r+1];continue}if(r+=1,!o)return[t.join("."),i<0?r:i];t.push(String.fromCharCode(...e.slice(r,r+o)).toLowerCase()),r+=o}throw new Error("name loops")},At=(e,n,t)=>{if(t===U.A){let r=e.slice(n,n+4);return R((r[0]<<24>>>0)+(r[1]<<16)+(r[2]<<8)+r[3],!1)}if(t===U.AAAA){let r=0n;for(let i of e.slice(n,n+16))r=r<<8n|BigInt(i);return R(r,!0)}if(t===U.CNAME||t===U.PTR)return x(e,n)[0];if(t===U.SOA){let[r,i]=x(e,n);return`${r} ${x(e,i)[0]}`}return""},ht=e=>{let n=new DataView(e.buffer,e.byteOffset),t=n.getUint16(2),r=[n.getUint16(4),n.getUint16(6),n.getUint16(8)],i=12;for(let o=0;o<r[0];o+=1)i=x(e,i)[1]+4;let a=[];for(let o of r.slice(1)){let s=[];for(let l=0;l<o;l+=1){let[c,u]=x(e,i),f=n.getUint16(u),d=n.getUint16(u+8);s.push({name:c,kind:f,data:At(e,u+10,f)}),i=u+10+d}a.push(s)}return{code:t&15,authentic:(t&32)!==0,truncated:(t&512)!==0,answer:a[0],authority:a[1]}},K=(e,n,t="answer")=>e?(t==="any"?[...e.answer,...e.authority]:e.answer).filter(i=>i.kind===U[n]):[],_=(e,n)=>K(e,n).map(t=>t.data),le=e=>{try{let n=ht(e);return bt.has(n.code)?n:null}catch{return null}},ce=async e=>await import(e),St=()=>typeof process<"u"&&!!process.versions?.node,tn=null,gt=async()=>(tn??=(async()=>{let e=[];try{let{getServers:t}=await ce("node:dns");e.push(...t())}catch{}let n=e.map(t=>t.split("%")[0].replace(/^\[|]$/g,"")).filter(t=>!/^(fe80|169\.254)/i.test(t));return[...new Set([...n,...ut])]})(),tn),Et=async(e,n)=>{let{connect:t}=await ce("node:net");return new Promise(r=>{let i=t(53,e),a=[],o=0,s=l=>{i.destroy(),r(l)};i.setTimeout(se,()=>s(null)),i.on("error",()=>s(null)),i.on("connect",()=>{let l=new Uint8Array(n.length+2);new DataView(l.buffer).setUint16(0,n.length),l.set(n,2),i.write(l)}),i.on("data",l=>{if(a.push(l),o+=l.length,o<2)return;let c=new Uint8Array(o),u=0;for(let d of a)c.set(d,u),u+=d.length;let f=new DataView(c.buffer).getUint16(0);o>=f+2&&s(le(c.slice(2,f+2)))})})},yt=async(e,n)=>{let{createSocket:t}=await ce("node:dgram"),r=await gt();return new Promise(i=>{let a=r.map(d=>t(d.includes(":")?"udp6":"udp4")),o=null,s=a.length,l=!1,c=d=>{if(!l){l=!0,clearTimeout(u);for(let m of a)m.close();i(d)}},u=setTimeout(()=>c(o),se),f=async(d,m)=>{s-=1;let p=le(d);if(p?.truncated&&(p=await Et(m,e)),p&&(!n||K(p,n,"any").length))return c(p);o??=p,s||c(o)};a.forEach((d,m)=>{let p=r[m];d.on("error",()=>{s-=1,s||c(o)}),d.on("message",T=>{f(T,p)}),d.send(e,53,p)}),a.length||c(null)})},Ct=async(e,n)=>{let t=ft.map(async i=>{let a=await fetch(i,{method:"POST",headers:{"content-type":"application/dns-message"},body:e,signal:AbortSignal.timeout(se)});if(!a.ok)throw new Error(`${a.status} from ${i}`);let o=le(new Uint8Array(await a.arrayBuffer()));if(!o)throw new Error(`nothing from ${i}`);return o}),r=null;for(let i of await Promise.allSettled(t))if(i.status==="fulfilled"){if(!n||K(i.value,n,"any").length)return i.value;r??=i.value}return r},v=async([e,n,t])=>{let r=Tt(e,n);return St()?yt(r,t):Ct(r,t)},Rt=(e,n)=>{let t=K(e,"SOA","any");if(!t.length)return;let[r,i]=t[0].data.split(" "),a=i.indexOf(".");n.zone=t[0].name,n.zone_primary=r,n.zone_contact=a<0?i:`${i.slice(0,a)}@${i.slice(a+1)}`},Mt=e=>({asked:e,hostname:null,hostnames:[],ipv4:null,ipv6:null,ipv4_addresses:[],ipv6_addresses:[],alias:null,zone:null,zone_primary:null,zone_contact:null,is_confirmed:!1,is_signed:!1}),rn=async(e,n)=>{let t=G(e,n)[1],[r,i]=t?M(t):[e,n],[a,,o]=P(r,i),[s,l]=await Promise.all([v([o,"PTR",null]),v([o,"SOA","SOA"])]),c=Mt(a);c.is_signed=!!s?.authentic,Rt(l,c);let u=_(s,"PTR");if(!u.length)return c;c.hostname=u[0],c.hostnames=u;let[f,d]=await Promise.all([v([u[0],"A",null]),v([u[0],"AAAA",null])]);c.ipv4_addresses=_(f,"A"),c.ipv6_addresses=_(d,"AAAA"),c.ipv4=c.ipv4_addresses[0]??null,c.ipv6=c.ipv6_addresses[0]??null;let m=[..._(f,"CNAME"),..._(d,"CNAME")];c.alias=m[0]??null;let p=[...c.ipv4_addresses,...c.ipv6_addresses];return c.is_confirmed=p.some(T=>BigInt(M(T)[0])===BigInt(r)),c},Y=new Map,ue=async(e,n)=>{let t=`${n?6:4}:${e}`,r=Y.get(t);if(r&&r[0]>Date.now())return r[1];let i=await rn(e,n);return Y.size>=dt&&Y.clear(),Y.set(t,[Date.now()+mt,i]),i};var sn=(e,n)=>{let t=new Int32Array(e.length),r=n;for(let i=0;i<e.length;i+=1)t[i]=r,r+=1<<e[i];return t},de=new Uint8Array([...Array(16).fill(0),1,1,1,1,2,2,3,3,4,6,7,8,9,10,11,12,13,14,15,16]),me=new Uint8Array([...Array(32).fill(0),1,1,1,1,2,2,3,3,4,4,5,7,8,9,10,11,12,13,14,15,16]),Dt=sn(de,0),wt=sn(me,3),It=[4,3,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,3,2,1,1,1,1,1,-1,-1,-1,-1],Ut=[1,4,3,2,2,2,2,2,2,...Array(37).fill(1),...Array(7).fill(-1)],Bt=[1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1],S=e=>{throw new Error(`zstd: ${e}`)},B=e=>{let n=0;for(;1<<n<=e;)n+=1;return n-1},pe=(e,n,t)=>{let r=1<<t,i={log:t,symbols:new Uint8Array(r),bits:new Uint8Array(r),next:new Uint16Array(r)},a=new Uint16Array(256),o=r;for(let c=0;c<n;c+=1)e[c]<0?(a[c]=1,o-=1,i.symbols[o]=c):a[c]=e[c];let s=(r>>1)+(r>>3)+3,l=0;for(let c=0;c<n;c+=1)for(let u=0;u<e[c];u+=1){i.symbols[l]=c;do l=l+s&r-1;while(l>=o)}l!==0&&S("the symbols do not spread over the table");for(let c=0;c<r;c+=1){let u=a[i.symbols[c]]++,f=t-B(u);i.bits[c]=f,i.next[c]=(u<<f)-r}return i},O=(e,n,t)=>{let r=(e[n]&15)+5;r>t&&S("an entropy table is too accurate");let i=new Int16Array(256),a=(n<<3)+4,o=1<<r,s=-1;for(;s<255&&o>0;){let l=B(o+1),c=a>>3,u=(1<<l+1)-1,f=(e[c]|e[c+1]<<8|e[c+2]<<16)>>(a&7),d=f&(1<<l)-1,m=u-o-1,p=f&u;if(d<m?(a+=l,p=d):(a+=l+1,p>(1<<l)-1&&(p-=m)),p-=1,s+=1,i[s]=p,o-=p<0?-p:p,p!==0)continue;let T=3;for(;T===3;){let A=a>>3;T=(e[A]|e[A+1]<<8)>>(a&7)&3,a+=2,s+=T}}return(s>255||o!==0)&&S("the entropy counts do not add up"),[pe(i,s+1,r),a+7>>3]},on=(e,n)=>{let t=0;for(let c=0;c<n;c+=1){let u=e[c];u>11&&S("a huffman weight is out of range"),t+=u?1<<u-1:0}let r=B(t)+1,i=1<<r,a=i-t;a&a-1&&S("the huffman weights do not add up"),e[n]=B(a)+1;let o=new Uint32Array(13);for(let c=0;c<=n;c+=1)e[c]=e[c]&&r+1-e[c],o[e[c]]+=1;let s={maxBits:r,symbols:new Uint8Array(i),bits:new Uint8Array(i)},l=new Uint32Array(13);for(let c=r;c>0;c-=1){let u=l[c];l[c-1]=u+o[c]*(1<<r-c),s.bits.fill(c,u,l[c-1])}l[0]!==i&&S("the huffman codes do not fill the table");for(let c=0;c<=n;c+=1){let u=e[c];if(!u)continue;let f=l[u];l[u]=f+(1<<r-u),s.symbols.fill(c,f,l[u])}return s},ln=(e,n)=>{let t=e[n],r=new Uint8Array(256);if(t>=128){let T=t-127;for(let A=0;A<T;A+=2){let E=e[n+1+(A>>1)];r[A]=E>>4,r[A+1]=E&15}return[on(r,T),n+1+(T+1>>1)]}let[i,a]=O(e,n+1,6),o=n+1+t,s=e[o-1];s||S("a huffman bitstream ends on a zero byte");let l=a<<3,c=(o<<3)-8+B(s),u=0,f=0,d=0,m=i.log,p=i.log;for(;c-=m,!(c<l);){let T=c>>3;if(f+=(e[T]|e[T+1]<<8)>>(c&7)&(1<<m)-1,r[u]=i.symbols[f],u+=1,c-=p,c<l)break;T=c>>3,d+=(e[T]|e[T+1]<<8)>>(c&7)&(1<<p)-1,r[u]=i.symbols[d],u+=1,m=i.bits[f],f=i.next[f],p=i.bits[d],d=i.next[d]}return[on(r,u),o]},an=(e,n,t)=>{let r=e[e.length-1];r||S("a literal bitstream ends on a zero byte");let i=(1<<n.maxBits)-1,a=-n.maxBits,o=n.maxBits,s=(e.length<<3)-8+B(r)-o,l=0,c=0;for(;s>a&&c<t.length;){let u=s>>3,f=(e[u]|e[u+1]<<8|e[u+2]<<16)>>(s&7);l=(l<<o|f)&i,t[c]=n.symbols[l],c+=1,o=n.bits[l],s-=o}(s!==a||c!==t.length)&&S("a literal bitstream is the wrong length")},Nt=(e,n,t,r)=>{if(!r){an(e,n,t);return}let i=t.length+3>>2,a=6;for(let o=0;o<4;o+=1){let s=e[o<<1]|e[(o<<1)+1]<<8,l=o===3?e.length:a+s,c=i*o;an(e.subarray(a,l),n,t.subarray(c,c+i)),a=l}},kt=()=>{let e=(n,t)=>{let r=new Int16Array(256);return r.set(n),pe(r,n.length,t)};return{literal:e(It,6),match:e(Ut,6),offset:e(Bt,5)}},fe=kt(),Pt=e=>pe(Int16Array.of(...Array(e).fill(0),1),e+1,0),Gt=(e,n,t)=>{let r=e[n],i=r&3,a=r>>2&3,o=r>>4,s=0,l=n;if(i<2)return a&1?(o|=e[l+1]<<4,l+=1,a&2&&(o|=e[l+1]<<12,l+=1)):o=r>>3,l+=1,i===0?[{data:e.subarray(l,l+o),size:o},l+o]:[{data:new Uint8Array(o).fill(e[l]),size:o},l+1];if(a<2?(o|=(e[n+1]&63)<<4,s=e[n+1]>>6|e[n+2]<<2,l=n+3):a===2?(o|=e[n+1]<<4|(e[n+2]&3)<<12,s=e[n+2]>>2|e[n+3]<<6,l=n+4):(o|=e[n+1]<<4|(e[n+2]&63)<<12,s=e[n+2]>>6|e[n+3]<<2|e[n+4]<<10,l=n+5),i===2){let[f,d]=ln(e,l);t.huffman=f,s-=d-l,l=d}let c=t.huffman??S("literals without a huffman table"),u=new Uint8Array(o);return Nt(e.subarray(l,l+s),c,u,a!==0),[{data:u,size:o},l+s]},Lt=(e,n,t)=>{let r=e[n];r&3&&S("a sequence header reserves bits that are set");let i=t.tables,a=[i?.match??null,i?.offset??null,i?.literal??null],s=[...[fe.match,fe.offset,fe.literal]],l=n+1;for(let u=2;u>-1;u-=1){let f=r>>(u<<1)+2&3;if(f===1)s[u]=Pt(e[l]),l+=1;else if(f===2){let[d,m]=O(e,l,9-(u&1));s[u]=d,l=m}else f===3&&(s[u]=a[u]??S("a repeated table was never sent"))}let c={match:s[0],offset:s[1],literal:s[2]};return t.tables=c,[c,l]},_t=(e,n)=>{let t=e[n];return t<128?[t,n+1]:t<255?[t-128<<8|e[n+1],n+2]:[(e[n+1]|e[n+2]<<8)+32512,n+3]},vt=(e,n,t)=>{if(e>3)return t[2]=t[1],t[1]=t[0],t[0]=e-3,t[0];let r=e-(n!==0?1:0);if(r===0)return t[0];let i=r===3?t[0]-1:t[r];return r>1&&(t[2]=t[1]),t[1]=t[0],t[0]=i,i},xt=(e,n,t,r,i,a,o,s)=>{let[l]=Lt(e,n,a),c=e[t-1];c||S("a sequence bitstream ends on a zero byte");let u=(E,C)=>{let y=E>>3,N=(e[y]|e[y+1]<<8|e[y+2]<<16|e[y+3]<<24)>>>(E&7);return C===32?N:N&(1<<C)-1},f=(t<<3)-8+B(c)-l.literal.log,d=u(f,l.literal.log);f-=l.offset.log;let m=u(f,l.offset.log);f-=l.match.log;let p=u(f,l.match.log),T=0,A=s;for(let E=0;E<r;E+=1){let C=l.literal.symbols[d],y=l.literal.bits[d],N=l.match.symbols[p],Me=l.match.bits[p],Q=l.offset.symbols[m],De=l.offset.bits[m];f-=Q;let Sn=(1<<Q)+u(f,Q);f-=me[N];let we=wt[N]+u(f,me[N]);f-=de[C];let $=Dt[C]+u(f,de[C]);f-=y,d=l.literal.next[d]+u(f,y),f-=Me,p=l.match.next[p]+u(f,Me),f-=De,m=l.offset.next[m]+u(f,De);let Ie=vt(Sn,$,a.offsets);o.set(i.data.subarray(T,T+$),A),T+=$,A+=$,Ie>A&&S("a match reaches before the window");for(let Z=0;Z<we;Z+=1)o[A+Z]=o[A+Z-Ie];A+=we}return o.set(i.data.subarray(T,i.size),A),A+i.size-T},Kt=(e,n,t,r,i,a)=>{let[o,s]=Gt(e,n,r),[l,c]=_t(e,s);return l===0?(i.set(o.data.subarray(0,o.size),a),a+o.size):xt(e,c,t,l,o,r,i,a)},Ot=e=>{((e[0]|e[1]<<8|e[2]<<16)!==3126568||e[3]!==253)&&S("not a zstd frame");let t=e[4],r=t>>5&1,i=t>>6,a=6-r+(t&3?(t&3)===3?4:t&3:0),o=i?1<<i:r,s=0;for(let l=0;l<o;l+=1)s+=e[a+l]*256**l;return[a+o,o?s+(i===1?256:0):0]},Ft=(e,n)=>{if(n<=e.length)return e;let t=new Uint8Array(Math.max(n,e.length*2));return t.set(e),t},be=(e,n)=>{let[t,r]=Ot(e),i=n?n.content:new Uint8Array(0),a={huffman:n?.huffman??null,tables:n?.tables??null,offsets:Int32Array.from(n?n.offsets:[1,4,8])},o=new Uint8Array(i.length+(r||65536));o.set(i);let s=i.length,l=t;for(;;){let c=e[l]|e[l+1]<<8|e[l+2]<<16,u=c>>1&3,f=c>>3;if(l+=3,o=Ft(o,s+f+(1<<17)),u===0?(o.set(e.subarray(l,l+f),s),s+=f,l+=f):u===1?(o.fill(e[l],s,s+f),s+=f,l+=1):u===2?(s=Kt(e,l,l+f,a,o,s),l+=f):S("a block has no known type"),c&1)break}return o.subarray(i.length,s)},Te=e=>{let n=new DataView(e.buffer,e.byteOffset,e.byteLength);if(n.getUint32(0,!0)!==3962610743)return{id:0,content:e,huffman:null,tables:null,offsets:[1,4,8]};let[t,r]=ln(e,8),[i,a]=O(e,r,8),[o,s]=O(e,a,9),[l,c]=O(e,s,9);return{id:n.getUint32(4,!0),content:e.subarray(c+12),huffman:t,tables:{literal:l,match:o,offset:i},offsets:[0,1,2].map(u=>n.getUint32(c+u*4,!0))}};var F="PLEVIN\0",cn=1,Vt=16384,Ht=512,Wt=new Set(" -,./()&_+'"),zt=1e4,$t=255,Ae=16384,Zt=["place","network","abuse","prefix","rpki","roas","rir"],jt=new Set(["place","network","abuse"]),un="network",Jt={rpki:"rpki",rir:"rirs","place.granularity":"granularity","city.timezone":"timezones","city.type":"place_types","operator.category":"categories","abuse.user_type":"categories","abuse.service":"services","abuse.evidence":"evidence"},Yt=e=>e===$t?null:e/100,qt={"abuse.risk":Yt,"abuse.is_anycast":Boolean,"abuse.is_satellite":Boolean},Se=new TextDecoder,Qt=new TextEncoder,Xt=(e,n,t)=>{let r="";for(let i=n;i<t;i+=1){if(e[i]>127)return null;r+=String.fromCharCode(e[i])}return r},er=(e,n,t)=>{let r=new Uint8Array(n+t.length);return r.set(e.subarray(0,n)),r.set(t,n),r},nr=new Uint8Array(Uint16Array.of(1).buffer)[0]===0,D=class{held=new Map;build;limit;constructor(n,t=Vt){this.build=n,this.limit=t}get(n){let t=this.held.get(n);if(t!==void 0)return t;this.held.size>=this.limit&&this.held.clear();let r=this.build(n);return this.held.set(n,r),r}clear(){this.held.clear()}},Re=(e,n)=>{let t=0,r=1;for(;;){let i=e[n];if(n+=1,t+=(i&127)*r,i<128)return[t,n];r*=128}},ge=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let[a,o]=Re(e,n);r.push(a),n=o}return[r,n]},he=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let a=0n,o=0n;for(;;){let s=e[n];if(n+=1,a|=BigInt(s&127)<<o,s<128)break;o+=7n}r.push(a)}return[r,n]},V=class{count;read;perBlock;perGroup;fanout;width;blocks;keys;offsets;data;dictionary;cache;groups;constructor(n,t){let r=new DataView(n.buffer,n.byteOffset,n.byteLength);this.count=t.count,this.read=t.read,this.perBlock=t.block,this.perGroup=t.group,this.fanout=this.perBlock/this.perGroup,this.blocks=r.getUint32(0,!0),this.width=r.getUint32(4,!0);let i=r.getUint32(8,!0);this.offsets=new Uint32Array(this.blocks+1);for(let o=0;o<=this.blocks;o+=1)this.offsets[o]=r.getUint32(12+o*4,!0);let a=12+4*(this.blocks+1);this.keys=[];for(let o=0;o<this.blocks;o+=1){let s=0n;for(let l=0;l<this.width;l+=1)s=s<<8n|BigInt(n[a+o*this.width+l]);this.keys.push(s)}a+=this.width*this.blocks,this.dictionary=i?Te(n.subarray(a,a+i)):null,this.data=n.subarray(a+i),this.cache=new D(o=>this.block(o)),this.groups=new D(o=>this.values(o))}raw(n){let t=this.data.subarray(this.offsets[n],this.offsets[n+1]);return be(t,this.dictionary)}held(n){return Math.min(this.perGroup,this.count-n*this.perGroup)}block(n){throw new Error(`no block ${n}`)}values(n){throw new Error(`no group ${n}`)}at(n){throw new Error(`no row ${n}`)}},tr={1:[Uint8Array,Int8Array],2:[Uint16Array,Int16Array],4:[Uint32Array,Int32Array],8:[BigUint64Array,BigInt64Array]},Ee=class extends V{signed;constructor(n,t){super(n,t),this.signed=t.encoding==="signed"}block(n){let t=this.raw(n),r=t[0],i=t.slice(1);if(nr&&r>1)for(let a=0;a+r<=i.length;a+=r)i.subarray(a,a+r).reverse();return new tr[r][this.signed?1:0](i.buffer)}at(n){let t=Math.floor(n/this.perBlock),r=this.cache.get(t)[n%this.perBlock];return typeof r=="bigint"?Number(r):r}},ye=class extends V{block(n){let t=this.raw(n),r=this.count-n*this.perBlock,i=Math.min(this.fanout,Math.ceil(r/this.perGroup))-1,[a,o]=ge(t,0,i),s=[o];for(let l of a)s.push(s[s.length-1]+l);return s.push(t.length),[t,s]}values(n){let t=Math.floor(n/this.fanout),[r,i]=this.cache.get(t),a=i[n%this.fanout],o=[],s="",l=null;for(let c=0;c<this.held(n);c+=1){let u=r[a],f=r[a+1];a+=2,f>127&&([f,a]=Re(r,a-1));let d=l===null?Xt(r,a,a+f):null;d===null?(l=er(l??Qt.encode(s),u,r.subarray(a,a+f)),s=Se.decode(l)):s=s.slice(0,u)+d,a+=f,o.push(s)}return o}at(n){if(!n)return"";let t=Math.floor((n-1)/this.perGroup);return this.groups.get(t)[(n-1)%this.perGroup]}},Ce=class extends V{hostBits;big;constructor(n,t){super(n,t),this.big=this.width!==4,this.hostBits=this.big?64:0}block(n){let t=this.raw(n),[r,i]=Re(t,0),a=Math.ceil(r/this.perGroup),[o,s]=he(t,i,a-1),l=[this.keys[n]];for(let d of o)l.push(l[l.length-1]+d);let[c,u]=ge(t,s,a-1),f=[u];for(let d of c)f.push(f[f.length-1]+d);return[l,f,t]}values(n){let t=Math.floor(n/this.fanout),[r,i,a]=this.cache.get(t),o=this.held(n),s=r[n%this.fanout],[l,c]=this.big?he(a,i[n%this.fanout],o-1):ge(a,i[n%this.fanout],o-1);if(!this.big){let d=[Number(s)];for(let m of l)d.push(d[d.length-1]+m);return d}let u=[s>>BigInt(this.hostBits)];for(let d of l)u.push(u[u.length-1]+d);let[f]=he(a,c,o);return u.map((d,m)=>d<<BigInt(this.hostBits)|f[m])}at(n){let t=Math.floor(n/this.perGroup);return this.groups.get(t)[n%this.perGroup]}row(n){let t=(this.big,n),r=q(this.keys,this.big?t:BigInt(t))-1;if(r<0)return null;let[i]=this.cache.get(r),a=r*this.fanout+q(i,this.big?t:BigInt(t))-1,o=q(this.groups.get(a),t)-1;return o<0?null:a*this.perGroup+o}holds(n){let t=this.row(n);return t!==null&&this.at(t)===n?t:null}},q=(e,n)=>{let t=0,r=e.length;for(;t<r;){let i=t+r>>1;e[i]<=n?t=i+1:r=i}return t},rr={plain:[],text:[],degrees:[],coded:[],links:[]},H=class{head;sections={};reads={};tables={};families;rows={};located;answers=new D(n=>this.answer(n));words=null;constructor(n){let t=new DataView(n.buffer,n.byteOffset,n.byteLength);if(Se.decode(n.subarray(0,F.length))!==F||n[F.length]!==cn)throw new Error(`not a plevin ${cn} database`);let i=t.getUint32(F.length+1,!0),a=F.length+5;this.head=JSON.parse(Se.decode(n.subarray(a,a+i)));let o=a+i;for(let[s,l]of Object.entries(this.head.sections)){let c=o+l.offset,u=n.subarray(c,c+l.bytes),f=l.encoding==="index"?Ce:l.encoding==="front"?ye:Ee;this.sections[s]=new f(u,l)}Object.assign(this.reads,qt);for(let[s,l]of Object.entries(Jt)){let c=this.head.vocabularies[l];c&&(this.reads[s]=u=>c[u]??"")}this.plan(),this.families={4:this.family(4),6:this.family(6)},this.located={4:new D(s=>this.locateIn(4,s)),6:new D(s=>this.locateIn(6,s))}}linked(n,t){return this.rows[n]??=new D(r=>this.row(n,r)),this.rows[n].get(t)}get built(){return this.head.built}get selection(){return this.head.selection}get fields(){return this.head.fields}plan(){for(let[n,t]of Object.entries(this.sections)){let r=n.split(".");if(r.length!==3||r[0]!=="col"&&r[0]!=="link")continue;let[i,a,o]=r;this.tables[a]??={plain:[],text:[],degrees:[],coded:[],links:[]};let s=this.tables[a],l=this.reads[`${a}.${o}`];i==="link"?s.links.push([o,t]):l?s.coded.push([o,t,l]):t.read==="text"?s.text.push([o,t,this.sections.strings]):t.read?s.degrees.push([o,t]):s.plain.push([o,t])}}family(n){let t=`spine.v${n}`,r=`hosts.v${n}`;return{index:this.sections[t]??null,columns:Zt.filter(i=>`${t}.${i}`in this.sections).map(i=>[i,this.sections[`${t}.${i}`],this.reads[i]??null]),hosts:this.sections[r]??null,records:this.sections[`${r}.abuse`]??null}}row(n,t){let r=this.tables[n]??rr,i={};for(let[a,o]of r.plain)i[a]=o.at(t);for(let[a,o,s]of r.text)i[a]=s.at(o.at(t));for(let[a,o]of r.degrees)i[a]=o.at(t)/zt;for(let[a,o,s]of r.coded)i[a]=s(o.at(t));for(let[a,o]of r.links){let s=o.at(t);s&&(i[a]=this.linked(a,s-1))}return"postal_partial"in i&&(i.postal_partial=String(i.postal).slice(0,i.postal_partial)),i}answer(n){let t=n%2?6:4,r=(n-n%2)/2,i=r%Ae,a=(r-i)/Ae,o={};for(let[s,l,c]of this.families[t].columns){let u=i&&s==="abuse"?i:l.at(a);jt.has(s)?u&&(o[s]=this.linked(s,u-1)):(o[un]??={},o[un][s]=c?c(u):u)}return o}locateIn(n,t){let{index:r,hosts:i,records:a}=this.families[n],o=r===null?null:r.row(t);if(o===null)return null;if(i===null||a===null)return[n,o,0];let s=i.holds(t);return[n,o,s===null?0:a.at(s)+1]}locate(n,t){return this.located[t?6:4].get(n)}rowFor(n,t){let r=this.locate(n,t);return r===null?null:this.answerFor(r)}answerFor(n){let[t,r,i]=n;return this.answers.get((r*Ae+i)*2+(t===6?1:0))}seek(n,t){let r=0,i=n.count;for(;r<i;){let a=r+i>>1;n.at(a)<t?r=a+1:i=a}return r}system(n){let t=this.sections["col.network.asn"];if(!t||n<=0)return null;let r=this.seek(t,n);return r>=t.count||t.at(r)!==n?null:this.linked("network",r)}searchable(){let n=this.sections["col.network.asn"],t=this.sections["col.network.handle"],r=this.sections["link.network.operator"],i=this.sections["link.network.carrier"],a=this.sections["col.operator.company"],o=this.sections["col.operator.peering"],s=this.sections["col.carrier.user_count"],l=this.sections.strings,c=[],u=[0],f=[],d=[];for(let m=this.seek(n,1);m<n.count;m+=1){let p=r.at(m),T=i.at(m),A=p?l.at(a.at(p-1)):"",E=p?o.at(p-1):0,C=T?s.at(T-1):0,y=`${l.at(t.at(m))} ${A}`.toLowerCase();c.push(y),u.push(u[u.length-1]+y.length+1),f.push(E+32-Math.clz32(C)),d.push(m)}return{haystack:c.join(`
625
- `),starts:u,weights:f,rows:d}}find(n,t){let r=n.trim().toLowerCase();if(!r||!("col.network.asn"in this.sections))return[];this.words??=this.searchable();let{haystack:i,starts:a,weights:o,rows:s}=this.words,l=[],c=i.indexOf(r);for(;c>=0&&l.length<Ht;){let u=q(a,c)-1,f=a[u],d=a[u+1],m=c>f&&!Wt.has(i[c-1])?1:0;l.push([m,-o[u],d-f,u]),c=i.indexOf(r,d)}return l.sort((u,f)=>u[0]-f[0]||u[1]-f[1]||u[2]-f[2]),l.slice(0,t).map(([,,,u])=>this.linked("network",s[u]))}};var fn=1024,mr=1n<<128n,b=e=>e?String(e):null,h=e=>e?Number(e):null,z=e=>e==null?null:Number(e),g=(e,n)=>e?.[n],pr=e=>e?{code:h(e.code),label:b(e.label)}:null,br=e=>e?{id:h(e.id),code:b(e.code),name:b(e.name)}:null,Tr=e=>e?{id:h(e.id),code:b(e.code),iso:b(e.iso),name:b(e.name),type:b(e.type)}:null,pn=e=>{let n=new WeakMap;return(t,...r)=>{if(!t)return null;let i=r.join(`
626
- `),a=n.get(t);a||(a=new Map,n.set(t,a));let o=a.get(i);if(o!==void 0)return o;let s=e(t,...r);return a.set(i,s),s}},bn=pn(e=>{let n=String(e.type??"");return{id:h(e.id),name:b(e.name),ascii:b(e.ascii),country:b(e.country),population:h(e.population),elevation:h(e.elevation),postal:b(e.postal),postal_partial:b(e.postal_partial),timezone:b(e.timezone),type:b(n),capital:b($e(n)),region:Tr(g(e,"region")),district:br(g(e,"district")),metro:pr(g(e,"metro"))}}),Ar=pn((e,n)=>{let t=String(e.company??""),r=String(e.website??""),i=String(e.abuse_email??"");return{company:b(t),brand:b(He(n,t)),domain:b(We(r,i)),website:b(r),category:b(e.category),tier:h(e.tier),peering:h(e.peering),scope:b(e.scope),rir:b(e.rir),since:h(e.since),street:b(e.street),state:b(e.state),postal:b(e.postal),country:b(e.country),abuse_email:b(i),city:bn(g(e,"city"))}}),hr=(e,n)=>{if(!e&&!n)return null;let t=e??{};return{user_type:b(n),user_count:h(t.user_count),mcc:h(t.mcc),mnc:h(t.mnc),is_mobile:n==="cellular"}},Tn=(e,n,t)=>{if(!e&&!n)return null;let r=e??{},[i,a]=ze(String(r.service??""),t);return{name:b(r.name),service:b(i),evidence:b(String(r.evidence??"")||a),risk:z(r.risk),network_risk:n?z(n.risk):null,last_seen_days:h(r.last_seen_days),is_anycast:!!r.is_anycast,is_satellite:!!r.is_satellite,is_hosting_provider:xe.has(t),is_proxy:Ke.has(i),is_public_proxy:i==="public_proxy",is_residential_proxy:i==="residential_proxy",is_anonymous_vpn:i==="anonymous_vpn",is_tor_exit_node:i==="tor_exit_node",is_private_relay:i==="private_relay",is_anonymous:!!i}},Sr=e=>{if(!e)return null;let n=bn(g(e,"city")),t=n?.country??"",r=n?.timezone??"";return[{lat:z(e.lat),lon:z(e.lon),accuracy:h(e.accuracy),confidence:h(e.confidence),granularity:b(e.granularity),city:n,country:Xe(t)},r]},An=(e,n)=>{let t=String(e.handle??"");return[{asn:h(e.asn),handle:b(t),rir:b(e.rir),rpki:b(e.rpki),roas:z(e.roas),operator:Ar(g(e,"operator"),t),carrier:hr(g(e,"carrier"),n)},h(e.prefix)]},hn=(e,n)=>String(e?.user_type||n?.user_type||""),gr=e=>{let n=g(e,"network"),t=g(n,"abuse"),r=hn(g(e,"abuse"),t);return[Sr(g(e,"place")),n?An(n,r):null,Tn(g(e,"abuse"),t,r)]},dn=e=>{let n=g(e,"abuse"),t=hn(void 0,n),{asn:r,handle:i,operator:a,carrier:o}=An(e,t)[0];return{asn:r,handle:i,found:!0,network:{asn:r,handle:i,prefix:null,cidr:null,start:null,end:null,rir:null,rpki:null,roas:null,operator:a,carrier:o},abuse:Tn(void 0,n,t)}},Er=e=>{let n=String(e).trim().toLowerCase().replace(/^as/,"");return/^\d+$/.test(n)?Number(n):0},yr=(e,n,t)=>{let[r,i]=e,[a,o,s]=i===null?[null,null,null]:_e(n,t,i);return{...r,prefix:i,cidr:a,start:o,end:s}},mn=(e,n,t,r,i=null)=>{let[a,o,s]=P(e,n),l=Pe(e,n),[c,u]=G(e,n),[f,d,m]=Le(e,n),p=Ge(e,n),[T,A,E]=t??[null,null,null];return{ip:a,version:n?6:4,number:e,compressed:a,expanded:o,arpa:s,is_global:l===0,is_bogon:l!==0,is_private:(l&1)!==0,is_loopback:(l&2)!==0,is_multicast:(l&4)!==0,is_reserved:(l&8)!==0,is_link_local:(l&16)!==0,is_unique_local:(l&32)!==0,is_documentation:(l&64)!==0,is_shared:(l&128)!==0,is_benchmark:(l&256)!==0,is_ipv4_mapped:c===X,is_6to4:c===ee,is_teredo:c===ne,tunnel:c,embedded_ipv4:u,decimal_ipv4:p,as_ipv4_mapped:f,as_6to4:d,as_nat64:m,found:t!==null,place:T===null?null:{...T[0],time:nn(T[1],r)},network:A===null?null:yr(A,e,n),abuse:E,dns:i}},W=class{file;kept=new Map;results=new Map;second=0;constructor(n){this.file=new H(n)}get built(){return this.file.built}get selection(){return this.file.selection}get fields(){return this.file.fields}storedFor(n){let t=n.join(","),r=this.kept.get(t);if(r!==void 0)return r;this.kept.size>=fn*16&&this.kept.clear();let i=gr(this.file.answerFor(n));return this.kept.set(t,i),i}lookup(n,t){let[r,i]=M(n);if(t){let u=this.file.locate(r,i);return mn(r,i,u&&this.storedFor(u),t)}let a=Math.floor(Date.now()/1e3);a!==this.second&&(this.second=a,this.results.clear());let o=i?r+mr:BigInt(r),s=this.results.get(o);if(s!==void 0)return s;this.results.size>=fn&&this.results.clear();let l=this.file.locate(r,i),c=mn(r,i,l&&this.storedFor(l));return this.results.set(o,c),c}async resolve(n,t){let r=this.lookup(n,t?.moment);if(!t?.dns)return r;let[i,a]=M(n);return{...r,dns:await ue(i,a)}}system(n){let t=Er(n),r=this.file.system(t);return r?dn(r):{asn:t||null,handle:null,found:!1,network:null,abuse:null}}search(n,t=20){let r=this.system(n);return r.found?[r]:this.file.find(n,t).map(dn)}row(n){let[t,r]=M(n);return this.file.rowFor(t,r)}},xr=async e=>{if(e instanceof Uint8Array)return new W(e);if(e instanceof ArrayBuffer)return new W(new Uint8Array(e));let n=e instanceof Response?e:await fetch(e);if(!n.ok)throw new Error(`${n.status} reading the database`);return new W(new Uint8Array(await n.arrayBuffer()))};export{H as File,W as Plevin,v as ask,be as decompress,rn as facts,Te as loadDictionary,ue as named,xr as open,K as records};
624
+ `);var nt=new Set("AT BE BG HR CY CZ DK EE FI FR DE GR HU IE IT LV LT LU MT NL PL PT RO SK SI ES SE".split(" ")),tt=new Set("AG AI AU BB BD BM BN BS BT BW CC CK CX CY DM FJ FK GB GD GG GY HK ID IE IM IN JE JM JP KE KI KN KY LC LK LS MO MS MT MU MV MW MY MZ NA NF NP NR NU NZ PG PK PN SB SC SG SH SR SZ TC TH TL TO TT TV TZ UG VC VG WS ZA ZM ZW".split(" ")),w=864e5,rt=7*w,ae=400*w,L=6e4,it=new Map(se.map(e=>{let[n,t="",r=""]=e.slice(8).split("|");return[e.slice(0,2),[n,t,r,e.slice(2,5)]]})),st=new Map(se.map(e=>[e.slice(0,2),e.slice(5,8)])),Je=e=>e||null,ot=e=>e.length!==2||!/^[a-zA-Z]{2}$/.test(e)?"":[...e.toUpperCase()].map(n=>String.fromCodePoint(127462+n.charCodeAt(0)-65)).join(""),Ye=new Map,en=e=>{if(!e)return null;let n=Ye.get(e);if(n!==void 0)return n;let t=it.get(e),r={code:e,name:t?t[0]:null,official:t?Je(t[1]):null,common:t?Je(t[2]):null,iso3:t?t[3]:null,numeric:st.get(e)??null,flag:ot(e)||null,european_union:nt.has(e),driving_side:tt.has(e)?"left":"right"};return Ye.set(e,r),r},at=new Map(je.map(e=>{let[n,t,r=t]=e.split("|");return[n,[t,r]]})),qe=new Map,lt=e=>{let n=qe.get(e);if(n!==void 0)return n;let t=null;try{t=new Intl.DateTimeFormat("en-US",{timeZone:e,hour12:!1,era:"short",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{t=null}return qe.set(e,t),t},nn=(e,n)=>{let t={};for(let s of e.formatToParts(n))t[s.type]=s.value;let r=Number(t.year)*(t.era==="BC"?-1:1),i=t.hour==="24"?0:Number(t.hour);return Date.UTC(r,Number(t.month)-1,Number(t.day),i,Number(t.minute),Number(t.second))},oe=(e,n)=>Math.round((nn(e,n)-n)/L),I=(e,n)=>{let t=oe(e,n-w),r=oe(e,n+w);if(t===r)return t;let i=[t,r].filter(s=>oe(e,n-s*L)===s);return i.length?Math.max(...i):Math.min(t,r)},le=e=>{let n=Math.abs(e),t=String(Math.floor(n/60)).padStart(2,"0");return`${e<0?"-":"+"}${t}:${String(n%60).padStart(2,"0")}`},Qe=(e,n)=>new Date(n).toISOString().slice(0,19)+le(I(e,n)),ct=(e,n,t,r)=>{for(;t-n>1e3;){let i=n+Math.floor((t-n)/2);I(e,i)===r?n=i:t=i}return Math.floor((t+3e4)/L)*L},ut=(e,n)=>{let t=n+ae,r=[],i=n-ae,s=I(e,i);for(;i<t;){let o=i+rt,a=I(e,o);a!==s&&r.push(ct(e,i,o,s)),s=a,i=o}return r},j=new Map,ft=(e,n,t)=>{let r=Math.floor(t/w)*w+w/2,i=`${e}@${r}`,s=j.get(i);if(s!==void 0)return s;j.size>2048&&j.clear();let o=ut(n,r),a=[I(n,r-ae),...o.map(f=>I(n,f))],l=Math.min(...a),c=Math.max(...a),u=[l,null,null];for(let f=0;l!==c&&f+1<o.length;f+=1){let[d,m]=[o[f],o[f+1]];if(I(n,d)===c&&m>=r){u=[l,d,m];break}}return j.set(i,u),u},dt=(e,n,t)=>{let r=at.get(e);if(r)return t?r[1]:r[0];let i=Math.abs(n),s=String(Math.floor(i/60)).padStart(2,"0"),o=i%60;return`${n<0?"-":"+"}${s}`+(o?String(o).padStart(2,"0"):"")},Xe=(e,n)=>{let t=lt(e);if(t===null)return{timezone:e,abbreviation:null,local:null,utc_offset:null,is_dst:!1,dst_start:null,dst_end:null};let r=nn(t,n),i=Math.round((r-n)/L),[s,o,a]=ft(e,t,r);return{timezone:e,abbreviation:dt(e,i,i!==s),local:new Date(r).toISOString().slice(0,19)+le(i),utc_offset:le(i),is_dst:i!==s,dst_start:o===null?null:Qe(t,o),dst_end:a===null?null:Qe(t,a)}},J=new Map,tn=(e,n)=>{if(!e)return null;if(n)return Xe(e,n.getTime());let t=Math.floor(Date.now()/1e3),r=`${e}@${t}`,i=J.get(r);if(i!==void 0)return i;J.size>1024&&J.clear();let s=Xe(e,t*1e3);return J.set(r,s),s};var mt=["1.1.1.1","8.8.8.8","9.9.9.9"],pt=["https://cloudflare-dns.com/dns-query","https://dns.google/dns-query"],ce=2e3,bt=4096,Tt=36e5,At=1232,ht=new Set([0,3]),U={A:1,CNAME:5,SOA:6,PTR:12,AAAA:28},St=(e,n)=>{let t=e.split(".").filter(Boolean),r=t.reduce((a,l)=>a+l.length+1,0),i=new Uint8Array(12+r+1+4+11),s=new DataView(i.buffer);s.setUint16(0,Math.floor(Math.random()*65536)),s.setUint16(2,288),s.setUint16(4,1),s.setUint16(10,1);let o=12;for(let a of t){i[o]=a.length;for(let l=0;l<a.length;l+=1)i[o+1+l]=a.charCodeAt(l);o+=a.length+1}return o+=1,s.setUint16(o,U[n]),s.setUint16(o+2,1),s.setUint16(o+5,41),s.setUint16(o+7,At),i},_=(e,n)=>{let t=[],r=n,i=-1;for(let s=0;s<128;s+=1){let o=e[r];if(o>=192){i<0&&(i=r+2),r=(o&63)<<8|e[r+1];continue}if(r+=1,!o)return[t.join("."),i<0?r:i];t.push(String.fromCharCode(...e.slice(r,r+o)).toLowerCase()),r+=o}throw new Error("name loops")},gt=(e,n,t)=>{if(t===U.A){let r=e.slice(n,n+4);return R((r[0]<<24>>>0)+(r[1]<<16)+(r[2]<<8)+r[3],!1)}if(t===U.AAAA){let r=0n;for(let i of e.slice(n,n+16))r=r<<8n|BigInt(i);return R(r,!0)}if(t===U.CNAME||t===U.PTR)return _(e,n)[0];if(t===U.SOA){let[r,i]=_(e,n);return`${r} ${_(e,i)[0]}`}return""},Et=e=>{let n=new DataView(e.buffer,e.byteOffset),t=n.getUint16(2),r=[n.getUint16(4),n.getUint16(6),n.getUint16(8)],i=12;for(let o=0;o<r[0];o+=1)i=_(e,i)[1]+4;let s=[];for(let o of r.slice(1)){let a=[];for(let l=0;l<o;l+=1){let[c,u]=_(e,i),f=n.getUint16(u),d=n.getUint16(u+8);a.push({name:c,kind:f,data:gt(e,u+10,f)}),i=u+10+d}s.push(a)}return{code:t&15,authentic:(t&32)!==0,truncated:(t&512)!==0,answer:s[0],authority:s[1]}},K=(e,n,t="answer")=>e?(t==="any"?[...e.answer,...e.authority]:e.answer).filter(i=>i.kind===U[n]):[],v=(e,n)=>K(e,n).map(t=>t.data),ue=e=>{try{let n=Et(e);return ht.has(n.code)?n:null}catch{return null}},fe=async e=>await import(e),yt=()=>typeof process<"u"&&!!process.versions?.node,rn=null,Ct=async()=>(rn??=(async()=>{let e=[];try{let{getServers:t}=await fe("node:dns");e.push(...t())}catch{}let n=e.map(t=>t.split("%")[0].replace(/^\[|]$/g,"")).filter(t=>!/^(fe80|169\.254)/i.test(t));return[...new Set([...n,...mt])]})(),rn),Rt=async(e,n)=>{let{connect:t}=await fe("node:net");return new Promise(r=>{let i=t(53,e),s=[],o=0,a=l=>{i.destroy(),r(l)};i.setTimeout(ce,()=>a(null)),i.on("error",()=>a(null)),i.on("connect",()=>{let l=new Uint8Array(n.length+2);new DataView(l.buffer).setUint16(0,n.length),l.set(n,2),i.write(l)}),i.on("data",l=>{if(s.push(l),o+=l.length,o<2)return;let c=new Uint8Array(o),u=0;for(let d of s)c.set(d,u),u+=d.length;let f=new DataView(c.buffer).getUint16(0);o>=f+2&&a(ue(c.slice(2,f+2)))})})},Mt=async(e,n)=>{let{createSocket:t}=await fe("node:dgram"),r=await Ct();return new Promise(i=>{let s=r.map(d=>t(d.includes(":")?"udp6":"udp4")),o=null,a=s.length,l=!1,c=d=>{if(!l){l=!0,clearTimeout(u);for(let m of s)m.close();i(d)}},u=setTimeout(()=>c(o),ce),f=async(d,m)=>{a-=1;let p=ue(d);if(p?.truncated&&(p=await Rt(m,e)),p&&(!n||K(p,n,"any").length))return c(p);o??=p,a||c(o)};s.forEach((d,m)=>{let p=r[m];d.on("error",()=>{a-=1,a||c(o)}),d.on("message",T=>{f(T,p)}),d.send(e,53,p)}),s.length||c(null)})},Dt=async(e,n)=>{let t=pt.map(async i=>{let s=await fetch(i,{method:"POST",headers:{"content-type":"application/dns-message"},body:e,signal:AbortSignal.timeout(ce)});if(!s.ok)throw new Error(`${s.status} from ${i}`);let o=ue(new Uint8Array(await s.arrayBuffer()));if(!o)throw new Error(`nothing from ${i}`);return o}),r=null;for(let i of await Promise.allSettled(t))if(i.status==="fulfilled"){if(!n||K(i.value,n,"any").length)return i.value;r??=i.value}return r},x=async([e,n,t])=>{let r=St(e,n);return yt()?Mt(r,t):Dt(r,t)},wt=(e,n)=>{let t=K(e,"SOA","any");if(!t.length)return;let[r,i]=t[0].data.split(" "),s=i.indexOf(".");n.zone=t[0].name,n.zone_primary=r,n.zone_contact=s<0?i:`${i.slice(0,s)}@${i.slice(s+1)}`},It=e=>({asked:e,hostname:null,hostnames:[],ipv4:null,ipv6:null,ipv4_addresses:[],ipv6_addresses:[],alias:null,zone:null,zone_primary:null,zone_contact:null,is_confirmed:!1,is_signed:!1}),sn=async(e,n)=>{let t=G(e,n)[1],[r,i]=t?M(t):[e,n],[s,,o]=P(r,i),[a,l]=await Promise.all([x([o,"PTR",null]),x([o,"SOA","SOA"])]),c=It(s);c.is_signed=!!a?.authentic,wt(l,c);let u=v(a,"PTR");if(!u.length)return c;c.hostname=u[0],c.hostnames=u;let[f,d]=await Promise.all([x([u[0],"A",null]),x([u[0],"AAAA",null])]);c.ipv4_addresses=v(f,"A"),c.ipv6_addresses=v(d,"AAAA"),c.ipv4=c.ipv4_addresses[0]??null,c.ipv6=c.ipv6_addresses[0]??null;let m=[...v(f,"CNAME"),...v(d,"CNAME")];c.alias=m[0]??null;let p=[...c.ipv4_addresses,...c.ipv6_addresses];return c.is_confirmed=p.some(T=>BigInt(M(T)[0])===BigInt(r)),c},Y=new Map,de=async(e,n)=>{let t=`${n?6:4}:${e}`,r=Y.get(t);if(r&&r[0]>Date.now())return r[1];let i=await sn(e,n);return Y.size>=bt&&Y.clear(),Y.set(t,[Date.now()+Tt,i]),i};var ln=(e,n)=>{let t=new Int32Array(e.length),r=n;for(let i=0;i<e.length;i+=1)t[i]=r,r+=1<<e[i];return t},pe=new Uint8Array([...Array(16).fill(0),1,1,1,1,2,2,3,3,4,6,7,8,9,10,11,12,13,14,15,16]),be=new Uint8Array([...Array(32).fill(0),1,1,1,1,2,2,3,3,4,4,5,7,8,9,10,11,12,13,14,15,16]),Ut=ln(pe,0),Bt=ln(be,3),Nt=[4,3,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,3,2,1,1,1,1,1,-1,-1,-1,-1],kt=[1,4,3,2,2,2,2,2,2,...Array(37).fill(1),...Array(7).fill(-1)],Pt=[1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1],S=e=>{throw new Error(`zstd: ${e}`)},B=e=>{let n=0;for(;1<<n<=e;)n+=1;return n-1},Te=(e,n,t)=>{let r=1<<t,i={log:t,symbols:new Uint8Array(r),bits:new Uint8Array(r),next:new Uint16Array(r)},s=new Uint16Array(256),o=r;for(let c=0;c<n;c+=1)e[c]<0?(s[c]=1,o-=1,i.symbols[o]=c):s[c]=e[c];let a=(r>>1)+(r>>3)+3,l=0;for(let c=0;c<n;c+=1)for(let u=0;u<e[c];u+=1){i.symbols[l]=c;do l=l+a&r-1;while(l>=o)}l!==0&&S("the symbols do not spread over the table");for(let c=0;c<r;c+=1){let u=s[i.symbols[c]]++,f=t-B(u);i.bits[c]=f,i.next[c]=(u<<f)-r}return i},O=(e,n,t)=>{let r=(e[n]&15)+5;r>t&&S("an entropy table is too accurate");let i=new Int16Array(256),s=(n<<3)+4,o=1<<r,a=-1;for(;a<255&&o>0;){let l=B(o+1),c=s>>3,u=(1<<l+1)-1,f=(e[c]|e[c+1]<<8|e[c+2]<<16)>>(s&7),d=f&(1<<l)-1,m=u-o-1,p=f&u;if(d<m?(s+=l,p=d):(s+=l+1,p>(1<<l)-1&&(p-=m)),p-=1,a+=1,i[a]=p,o-=p<0?-p:p,p!==0)continue;let T=3;for(;T===3;){let A=s>>3;T=(e[A]|e[A+1]<<8)>>(s&7)&3,s+=2,a+=T}}return(a>255||o!==0)&&S("the entropy counts do not add up"),[Te(i,a+1,r),s+7>>3]},on=(e,n)=>{let t=0;for(let c=0;c<n;c+=1){let u=e[c];u>11&&S("a huffman weight is out of range"),t+=u?1<<u-1:0}let r=B(t)+1,i=1<<r,s=i-t;s&s-1&&S("the huffman weights do not add up"),e[n]=B(s)+1;let o=new Uint32Array(13);for(let c=0;c<=n;c+=1)e[c]=e[c]&&r+1-e[c],o[e[c]]+=1;let a={maxBits:r,symbols:new Uint8Array(i),bits:new Uint8Array(i)},l=new Uint32Array(13);for(let c=r;c>0;c-=1){let u=l[c];l[c-1]=u+o[c]*(1<<r-c),a.bits.fill(c,u,l[c-1])}l[0]!==i&&S("the huffman codes do not fill the table");for(let c=0;c<=n;c+=1){let u=e[c];if(!u)continue;let f=l[u];l[u]=f+(1<<r-u),a.symbols.fill(c,f,l[u])}return a},cn=(e,n)=>{let t=e[n],r=new Uint8Array(256);if(t>=128){let T=t-127;for(let A=0;A<T;A+=2){let E=e[n+1+(A>>1)];r[A]=E>>4,r[A+1]=E&15}return[on(r,T),n+1+(T+1>>1)]}let[i,s]=O(e,n+1,6),o=n+1+t,a=e[o-1];a||S("a huffman bitstream ends on a zero byte");let l=s<<3,c=(o<<3)-8+B(a),u=0,f=0,d=0,m=i.log,p=i.log;for(;c-=m,!(c<l);){let T=c>>3;if(f+=(e[T]|e[T+1]<<8)>>(c&7)&(1<<m)-1,r[u]=i.symbols[f],u+=1,c-=p,c<l)break;T=c>>3,d+=(e[T]|e[T+1]<<8)>>(c&7)&(1<<p)-1,r[u]=i.symbols[d],u+=1,m=i.bits[f],f=i.next[f],p=i.bits[d],d=i.next[d]}return[on(r,u),o]},an=(e,n,t)=>{let r=e[e.length-1];r||S("a literal bitstream ends on a zero byte");let i=(1<<n.maxBits)-1,s=-n.maxBits,o=n.maxBits,a=(e.length<<3)-8+B(r)-o,l=0,c=0;for(;a>s&&c<t.length;){let u=a>>3,f=(e[u]|e[u+1]<<8|e[u+2]<<16)>>(a&7);l=(l<<o|f)&i,t[c]=n.symbols[l],c+=1,o=n.bits[l],a-=o}(a!==s||c!==t.length)&&S("a literal bitstream is the wrong length")},Gt=(e,n,t,r)=>{if(!r){an(e,n,t);return}let i=t.length+3>>2,s=6;for(let o=0;o<4;o+=1){let a=e[o<<1]|e[(o<<1)+1]<<8,l=o===3?e.length:s+a,c=i*o;an(e.subarray(s,l),n,t.subarray(c,c+i)),s=l}},Lt=()=>{let e=(n,t)=>{let r=new Int16Array(256);return r.set(n),Te(r,n.length,t)};return{literal:e(Nt,6),match:e(kt,6),offset:e(Pt,5)}},me=Lt(),vt=e=>Te(Int16Array.of(...Array(e).fill(0),1),e+1,0),xt=(e,n,t)=>{let r=e[n],i=r&3,s=r>>2&3,o=r>>4,a=0,l=n;if(i<2)return s&1?(o|=e[l+1]<<4,l+=1,s&2&&(o|=e[l+1]<<12,l+=1)):o=r>>3,l+=1,i===0?[{data:e.subarray(l,l+o),size:o},l+o]:[{data:new Uint8Array(o).fill(e[l]),size:o},l+1];if(s<2?(o|=(e[n+1]&63)<<4,a=e[n+1]>>6|e[n+2]<<2,l=n+3):s===2?(o|=e[n+1]<<4|(e[n+2]&3)<<12,a=e[n+2]>>2|e[n+3]<<6,l=n+4):(o|=e[n+1]<<4|(e[n+2]&63)<<12,a=e[n+2]>>6|e[n+3]<<2|e[n+4]<<10,l=n+5),i===2){let[f,d]=cn(e,l);t.huffman=f,a-=d-l,l=d}let c=t.huffman??S("literals without a huffman table"),u=new Uint8Array(o);return Gt(e.subarray(l,l+a),c,u,s!==0),[{data:u,size:o},l+a]},_t=(e,n,t)=>{let r=e[n];r&3&&S("a sequence header reserves bits that are set");let i=t.tables,s=[i?.match??null,i?.offset??null,i?.literal??null],a=[...[me.match,me.offset,me.literal]],l=n+1;for(let u=2;u>-1;u-=1){let f=r>>(u<<1)+2&3;if(f===1)a[u]=vt(e[l]),l+=1;else if(f===2){let[d,m]=O(e,l,9-(u&1));a[u]=d,l=m}else f===3&&(a[u]=s[u]??S("a repeated table was never sent"))}let c={match:a[0],offset:a[1],literal:a[2]};return t.tables=c,[c,l]},Kt=(e,n)=>{let t=e[n];return t<128?[t,n+1]:t<255?[t-128<<8|e[n+1],n+2]:[(e[n+1]|e[n+2]<<8)+32512,n+3]},Ot=(e,n,t)=>{if(e>3)return t[2]=t[1],t[1]=t[0],t[0]=e-3,t[0];let r=e-(n!==0?1:0);if(r===0)return t[0];let i=r===3?t[0]-1:t[r];return r>1&&(t[2]=t[1]),t[1]=t[0],t[0]=i,i},Ft=(e,n,t,r,i,s,o,a)=>{let[l]=_t(e,n,s),c=e[t-1];c||S("a sequence bitstream ends on a zero byte");let u=(E,C)=>{let y=E>>3,N=(e[y]|e[y+1]<<8|e[y+2]<<16|e[y+3]<<24)>>>(E&7);return C===32?N:N&(1<<C)-1},f=(t<<3)-8+B(c)-l.literal.log,d=u(f,l.literal.log);f-=l.offset.log;let m=u(f,l.offset.log);f-=l.match.log;let p=u(f,l.match.log),T=0,A=a;for(let E=0;E<r;E+=1){let C=l.literal.symbols[d],y=l.literal.bits[d],N=l.match.symbols[p],we=l.match.bits[p],X=l.offset.symbols[m],Ie=l.offset.bits[m];f-=X;let yn=(1<<X)+u(f,X);f-=be[N];let Ue=Bt[N]+u(f,be[N]);f-=pe[C];let $=Ut[C]+u(f,pe[C]);f-=y,d=l.literal.next[d]+u(f,y),f-=we,p=l.match.next[p]+u(f,we),f-=Ie,m=l.offset.next[m]+u(f,Ie);let Be=Ot(yn,$,s.offsets);o.set(i.data.subarray(T,T+$),A),T+=$,A+=$,Be>A&&S("a match reaches before the window");for(let Z=0;Z<Ue;Z+=1)o[A+Z]=o[A+Z-Be];A+=Ue}return o.set(i.data.subarray(T,i.size),A),A+i.size-T},Vt=(e,n,t,r,i,s)=>{let[o,a]=xt(e,n,r),[l,c]=Kt(e,a);return l===0?(i.set(o.data.subarray(0,o.size),s),s+o.size):Ft(e,c,t,l,o,r,i,s)},Ht=e=>{((e[0]|e[1]<<8|e[2]<<16)!==3126568||e[3]!==253)&&S("not a zstd frame");let t=e[4],r=t>>5&1,i=t>>6,s=6-r+(t&3?(t&3)===3?4:t&3:0),o=i?1<<i:r,a=0;for(let l=0;l<o;l+=1)a+=e[s+l]*256**l;return[s+o,o?a+(i===1?256:0):0]},Wt=(e,n)=>{if(n<=e.length)return e;let t=new Uint8Array(Math.max(n,e.length*2));return t.set(e),t},Ae=(e,n)=>{let[t,r]=Ht(e),i=n?n.content:new Uint8Array(0),s={huffman:n?.huffman??null,tables:n?.tables??null,offsets:Int32Array.from(n?n.offsets:[1,4,8])},o=new Uint8Array(i.length+(r||65536));o.set(i);let a=i.length,l=t;for(;;){let c=e[l]|e[l+1]<<8|e[l+2]<<16,u=c>>1&3,f=c>>3;if(l+=3,o=Wt(o,a+f+(1<<17)),u===0?(o.set(e.subarray(l,l+f),a),a+=f,l+=f):u===1?(o.fill(e[l],a,a+f),a+=f,l+=1):u===2?(a=Vt(e,l,l+f,s,o,a),l+=f):S("a block has no known type"),c&1)break}return o.subarray(i.length,a)},he=e=>{let n=new DataView(e.buffer,e.byteOffset,e.byteLength);if(n.getUint32(0,!0)!==3962610743)return{id:0,content:e,huffman:null,tables:null,offsets:[1,4,8]};let[t,r]=cn(e,8),[i,s]=O(e,r,8),[o,a]=O(e,s,9),[l,c]=O(e,a,9);return{id:n.getUint32(4,!0),content:e.subarray(c+12),huffman:t,tables:{literal:l,match:o,offset:i},offsets:[0,1,2].map(u=>n.getUint32(c+u*4,!0))}};var F="PLEVIN\0",un=1,zt=16384,$t=512,Zt=new Set(" -,./()&_+'"),jt=1e4,Jt=255,Se=16384,Yt=["place","network","abuse","prefix","rpki","roas","rir"],qt=new Set(["place","network","abuse"]),Qt=new Set(["signed","delta"]),fn="network",Xt={rpki:"rpki",rir:"rirs","place.granularity":"granularity","city.timezone":"timezones","city.type":"place_types","operator.category":"categories","abuse.user_type":"categories","abuse.service":"services","abuse.evidence":"evidence"},er=e=>e===Jt?null:e/100,nr={"abuse.risk":er,"abuse.is_anycast":Boolean,"abuse.is_satellite":Boolean},Ee=new TextDecoder,tr=new TextEncoder,rr=(e,n,t)=>{let r="";for(let i=n;i<t;i+=1){if(e[i]>127)return null;r+=String.fromCharCode(e[i])}return r},ir=(e,n,t)=>{let r=new Uint8Array(n+t.length);return r.set(e.subarray(0,n)),r.set(t,n),r},sr=new Uint8Array(Uint16Array.of(1).buffer)[0]===0,D=class{held=new Map;build;limit;constructor(n,t=zt){this.build=n,this.limit=t}get(n){let t=this.held.get(n);if(t!==void 0)return t;this.held.size>=this.limit&&this.held.clear();let r=this.build(n);return this.held.set(n,r),r}clear(){this.held.clear()}},De=(e,n)=>{let t=0,r=1;for(;;){let i=e[n];if(n+=1,t+=(i&127)*r,i<128)return[t,n];r*=128}},ye=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let[s,o]=De(e,n);r.push(s),n=o}return[r,n]},ge=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let s=0n,o=0n;for(;;){let a=e[n];if(n+=1,s|=BigInt(a&127)<<o,a<128)break;o+=7n}r.push(s)}return[r,n]},V=class{count;read;perBlock;perGroup;fanout;width;blocks;keys;offsets;data;dictionary;cache;groups;constructor(n,t){let r=new DataView(n.buffer,n.byteOffset,n.byteLength);this.count=t.count,this.read=t.read,this.perBlock=t.block,this.perGroup=t.group,this.fanout=this.perBlock/this.perGroup,this.blocks=r.getUint32(0,!0),this.width=r.getUint32(4,!0);let i=r.getUint32(8,!0);this.offsets=new Uint32Array(this.blocks+1);for(let o=0;o<=this.blocks;o+=1)this.offsets[o]=r.getUint32(12+o*4,!0);let s=12+4*(this.blocks+1);this.keys=[];for(let o=0;o<this.blocks;o+=1){let a=0n;for(let l=0;l<this.width;l+=1)a=a<<8n|BigInt(n[s+o*this.width+l]);this.keys.push(a)}s+=this.width*this.blocks,this.dictionary=i?he(n.subarray(s,s+i)):null,this.data=n.subarray(s+i),this.cache=new D(o=>this.block(o)),this.groups=new D(o=>this.values(o))}raw(n){let t=this.data.subarray(this.offsets[n],this.offsets[n+1]);return Ae(t,this.dictionary)}held(n){return Math.min(this.perGroup,this.count-n*this.perGroup)}block(n){throw new Error(`no block ${n}`)}values(n){throw new Error(`no group ${n}`)}at(n){throw new Error(`no row ${n}`)}},or={1:[Uint8Array,Int8Array],2:[Uint16Array,Int16Array],4:[Uint32Array,Int32Array],8:[BigUint64Array,BigInt64Array]},Q=class extends V{signed;constructor(n,t){super(n,t),this.signed=Qt.has(t.encoding)}block(n){let t=this.raw(n),r=t[0],i=t.slice(1);if(sr&&r>1)for(let s=0;s+r<=i.length;s+=r)i.subarray(s,s+r).reverse();return new or[r][this.signed?1:0](i.buffer)}at(n){let t=Math.floor(n/this.perBlock),r=this.cache.get(t)[n%this.perBlock];return typeof r=="bigint"?Number(r):r}rows(n){let t=[];for(let r=0;r<this.blocks;r+=1){let i=this.cache.get(r),s=typeof i[0]=="bigint"?BigInt(n):n;for(let o=i.indexOf(s);o>=0;o=i.indexOf(s,o+1))t.push(r*this.perBlock+o)}return t}},Ce=class extends Q{block(n){let t=super.block(n),r=new Float64Array(t.length),i=0;for(let s=0;s<t.length;s+=1)i+=Number(t[s]),r[s]=i;return r}},Re=class extends V{block(n){let t=this.raw(n),r=this.count-n*this.perBlock,i=Math.min(this.fanout,Math.ceil(r/this.perGroup))-1,[s,o]=ye(t,0,i),a=[o];for(let l of s)a.push(a[a.length-1]+l);return a.push(t.length),[t,a]}values(n){let t=Math.floor(n/this.fanout),[r,i]=this.cache.get(t),s=i[n%this.fanout],o=[],a="",l=null;for(let c=0;c<this.held(n);c+=1){let u=r[s],f=r[s+1];s+=2,f>127&&([f,s]=De(r,s-1));let d=l===null?rr(r,s,s+f):null;d===null?(l=ir(l??tr.encode(a),u,r.subarray(s,s+f)),a=Ee.decode(l)):a=a.slice(0,u)+d,s+=f,o.push(a)}return o}at(n){if(!n)return"";let t=Math.floor((n-1)/this.perGroup);return this.groups.get(t)[(n-1)%this.perGroup]}},Me=class extends V{hostBits;big;constructor(n,t){super(n,t),this.big=this.width!==4,this.hostBits=this.big?64:0}block(n){let t=this.raw(n),[r,i]=De(t,0),s=Math.ceil(r/this.perGroup),[o,a]=ge(t,i,s-1),l=[this.keys[n]];for(let d of o)l.push(l[l.length-1]+d);let[c,u]=ye(t,a,s-1),f=[u];for(let d of c)f.push(f[f.length-1]+d);return[l,f,t]}values(n){let t=Math.floor(n/this.fanout),[r,i,s]=this.cache.get(t),o=this.held(n),a=r[n%this.fanout],[l,c]=this.big?ge(s,i[n%this.fanout],o-1):ye(s,i[n%this.fanout],o-1);if(!this.big){let d=[Number(a)];for(let m of l)d.push(d[d.length-1]+m);return d}let u=[a>>BigInt(this.hostBits)];for(let d of l)u.push(u[u.length-1]+d);let[f]=ge(s,c,o);return u.map((d,m)=>d<<BigInt(this.hostBits)|f[m])}at(n){let t=Math.floor(n/this.perGroup);return this.groups.get(t)[n%this.perGroup]}row(n){let t=(this.big,n),r=q(this.keys,this.big?t:BigInt(t))-1;if(r<0)return null;let[i]=this.cache.get(r),s=r*this.fanout+q(i,this.big?t:BigInt(t))-1,o=q(this.groups.get(s),t)-1;return o<0?null:s*this.perGroup+o}holds(n){let t=this.row(n);return t!==null&&this.at(t)===n?t:null}},q=(e,n)=>{let t=0,r=e.length;for(;t<r;){let i=t+r>>1;e[i]<=n?t=i+1:r=i}return t},ar={plain:[],text:[],degrees:[],coded:[],links:[]},H=class{head;sections={};reads={};tables={};families;rows={};located;answers=new D(n=>this.answer(n));words=null;constructor(n){let t=new DataView(n.buffer,n.byteOffset,n.byteLength);if(Ee.decode(n.subarray(0,F.length))!==F||n[F.length]!==un)throw new Error(`not a plevin ${un} database`);let i=t.getUint32(F.length+1,!0),s=F.length+5;this.head=JSON.parse(Ee.decode(n.subarray(s,s+i)));let o=s+i;for(let[a,l]of Object.entries(this.head.sections)){let c=o+l.offset,u=n.subarray(c,c+l.bytes),f=l.encoding==="index"?Me:l.encoding==="front"?Re:l.encoding==="delta"?Ce:Q;this.sections[a]=new f(u,l)}Object.assign(this.reads,nr);for(let[a,l]of Object.entries(Xt)){let c=this.head.vocabularies[l];c&&(this.reads[a]=u=>c[u]??"")}this.plan(),this.families={4:this.family(4),6:this.family(6)},this.located={4:new D(a=>this.locateIn(4,a)),6:new D(a=>this.locateIn(6,a))}}linked(n,t){return this.rows[n]??=new D(r=>this.row(n,r)),this.rows[n].get(t)}get built(){return this.head.built}get selection(){return this.head.selection}get fields(){return this.head.fields}plan(){for(let[n,t]of Object.entries(this.sections)){let r=n.split(".");if(r.length!==3||r[0]!=="col"&&r[0]!=="link")continue;let[i,s,o]=r;this.tables[s]??={plain:[],text:[],degrees:[],coded:[],links:[]};let a=this.tables[s],l=this.reads[`${s}.${o}`];i==="link"?a.links.push([o,t]):l?a.coded.push([o,t,l]):t.read==="text"?a.text.push([o,t,this.sections.strings]):t.read?a.degrees.push([o,t]):a.plain.push([o,t])}}family(n){let t=`spine.v${n}`,r=`hosts.v${n}`;return{index:this.sections[t]??null,columns:Yt.filter(i=>`${t}.${i}`in this.sections).map(i=>[i,this.sections[`${t}.${i}`],this.reads[i]??null]),hosts:this.sections[r]??null,records:this.sections[`${r}.abuse`]??null}}row(n,t){let r=this.tables[n]??ar,i={};for(let[s,o]of r.plain)i[s]=o.at(t);for(let[s,o,a]of r.text)i[s]=a.at(o.at(t));for(let[s,o]of r.degrees)i[s]=o.at(t)/jt;for(let[s,o,a]of r.coded)i[s]=a(o.at(t));for(let[s,o]of r.links){let a=o.at(t);a&&(i[s]=this.linked(s,a-1))}return"postal_partial"in i&&(i.postal_partial=String(i.postal).slice(0,i.postal_partial)),i}answer(n){let t=n%2?6:4,r=(n-n%2)/2,i=r%Se,s=(r-i)/Se,o={};for(let[a,l,c]of this.families[t].columns){let u=i&&a==="abuse"?i:l.at(s);qt.has(a)?u&&(o[a]=this.linked(a,u-1)):(o[fn]??={},o[fn][a]=c?c(u):u)}return o}locateIn(n,t){let{index:r,hosts:i,records:s}=this.families[n],o=r===null?null:r.row(t);if(o===null)return null;if(i===null||s===null)return[n,o,0];let a=i.holds(t);return[n,o,a===null?0:s.at(a)+1]}locate(n,t){return this.located[t?6:4].get(n)}rowFor(n,t){let r=this.locate(n,t);return r===null?null:this.answerFor(r)}answerFor(n){let[t,r,i]=n;return this.answers.get((r*Se+i)*2+(t===6?1:0))}seek(n,t){let r=0,i=n.count;for(;r<i;){let s=r+i>>1;n.at(s)<t?r=s+1:i=s}return r}systemAt(n){let t=this.sections["col.network.asn"];if(!t||n<=0)return-1;let r=this.seek(t,n);return r<t.count&&t.at(r)===n?r:-1}system(n){let t=this.systemAt(n);return t<0?null:this.linked("network",t)}spans(n,t){let r=this.sections[`spine.v${t}`],i=this.sections[`spine.v${t}.network`],s=this.sections[`spine.v${t}.prefix`];if(!r||!i||!s)return[];let o=BigInt(t===6?128:32),a=new Set,l=[];for(let c of i.rows(n+1)){let u=s.at(c),f=o-BigInt(u),d=BigInt(r.at(c))>>f<<f,m=`${d}/${u}`;a.has(m)||(a.add(m),l.push([d,u]))}return l}searchable(){let n=this.sections["col.network.asn"],t=this.sections["col.network.handle"],r=this.sections["link.network.operator"],i=this.sections["link.network.carrier"],s=this.sections["col.operator.company"],o=this.sections["col.operator.peering"],a=this.sections["col.carrier.user_count"],l=this.sections.strings,c=[],u=[0],f=[],d=[];for(let m=this.seek(n,1);m<n.count;m+=1){let p=r.at(m),T=i.at(m),A=p?l.at(s.at(p-1)):"",E=p?o.at(p-1):0,C=T?a.at(T-1):0,y=`${l.at(t.at(m))} ${A}`.toLowerCase();c.push(y),u.push(u[u.length-1]+y.length+1),f.push(E+32-Math.clz32(C)),d.push(m)}return{haystack:c.join(`
625
+ `),starts:u,weights:f,rows:d}}find(n,t){let r=n.trim().toLowerCase();if(!r||!("col.network.asn"in this.sections))return[];this.words??=this.searchable();let{haystack:i,starts:s,weights:o,rows:a}=this.words,l=[],c=i.indexOf(r);for(;c>=0&&l.length<$t;){let u=q(s,c)-1,f=s[u],d=s[u+1],m=c>f&&!Zt.has(i[c-1])?1:0;l.push([m,-o[u],d-f,u]),c=i.indexOf(r,d)}return l.sort((u,f)=>u[0]-f[0]||u[1]-f[1]||u[2]-f[2]),l.slice(0,t).map(([,,,u])=>this.linked("network",a[u]))}};var dn=1024,Ar=1n<<128n,b=e=>e?String(e):null,h=e=>e?Number(e):null,z=e=>e==null?null:Number(e),g=(e,n)=>e?.[n],hr=e=>e?{code:h(e.code),label:b(e.label)}:null,Sr=e=>e?{id:h(e.id),code:b(e.code),name:b(e.name)}:null,gr=e=>e?{id:h(e.id),code:b(e.code),iso:b(e.iso),name:b(e.name),type:b(e.type)}:null,An=e=>{let n=new WeakMap;return(t,...r)=>{if(!t)return null;let i=r.join(`
626
+ `),s=n.get(t);s||(s=new Map,n.set(t,s));let o=s.get(i);if(o!==void 0)return o;let a=e(t,...r);return s.set(i,a),a}},hn=An(e=>{let n=String(e.type??"");return{id:h(e.id),name:b(e.name),ascii:b(e.ascii),country:b(e.country),population:h(e.population),elevation:h(e.elevation),postal:b(e.postal),postal_partial:b(e.postal_partial),timezone:b(e.timezone),type:b(n),capital:b(Ze(n)),region:gr(g(e,"region")),district:Sr(g(e,"district")),metro:hr(g(e,"metro"))}}),Er=An((e,n)=>{let t=String(e.company??""),r=String(e.website??""),i=String(e.abuse_email??"");return{company:b(t),brand:b(We(n,t)),domain:b(ze(r,i)),website:b(r),category:b(e.category),tier:h(e.tier),peering:h(e.peering),scope:b(e.scope),rir:b(e.rir),since:h(e.since),street:b(e.street),state:b(e.state),postal:b(e.postal),country:b(e.country),abuse_email:b(i),city:hn(g(e,"city"))}}),yr=(e,n)=>{if(!e&&!n)return null;let t=e??{};return{user_type:b(n),user_count:h(t.user_count),mcc:h(t.mcc),mnc:h(t.mnc),is_mobile:n==="cellular"}},Sn=(e,n,t)=>{if(!e&&!n)return null;let r=e??{},[i,s]=$e(String(r.service??""),t);return{name:b(r.name),service:b(i),evidence:b(String(r.evidence??"")||s),risk:z(r.risk),network_risk:n?z(n.risk):null,last_seen_days:h(r.last_seen_days),is_anycast:!!r.is_anycast,is_satellite:!!r.is_satellite,is_hosting_provider:Ke.has(t),is_proxy:Oe.has(i),is_public_proxy:i==="public_proxy",is_residential_proxy:i==="residential_proxy",is_anonymous_vpn:i==="anonymous_vpn",is_tor_exit_node:i==="tor_exit_node",is_private_relay:i==="private_relay",is_anonymous:!!i}},Cr=e=>{if(!e)return null;let n=hn(g(e,"city")),t=n?.country??"",r=n?.timezone??"";return[{lat:z(e.lat),lon:z(e.lon),accuracy:h(e.accuracy),confidence:h(e.confidence),granularity:b(e.granularity),city:n,country:en(t)},r]},gn=(e,n)=>{let t=String(e.handle??"");return[{asn:h(e.asn),handle:b(t),rir:b(e.rir),rpki:b(e.rpki),roas:z(e.roas),operator:Er(g(e,"operator"),t),carrier:yr(g(e,"carrier"),n)},h(e.prefix)]},En=(e,n)=>String(e?.user_type||n?.user_type||""),Rr=e=>{let n=g(e,"network"),t=g(n,"abuse"),r=En(g(e,"abuse"),t);return[Cr(g(e,"place")),n?gn(n,r):null,Sn(g(e,"abuse"),t,r)]},mn=e=>{let n=g(e,"abuse"),t=En(void 0,n),{asn:r,handle:i,operator:s,carrier:o}=gn(e,t)[0];return{asn:r,handle:i,found:!0,network:{asn:r,handle:i,prefix:null,cidr:null,start:null,end:null,rir:null,rpki:null,roas:null,operator:s,carrier:o},abuse:Sn(void 0,n,t)}},Mr=(e,n)=>{let t=0n,r=0n;for(let[i,s]of[...e].sort(([o],[a])=>o<a?-1:1)){let o=i+(1n<<n-BigInt(s));o<=r||(t+=o-(i>r?i:r),r=o)}return t},pn=(e,n,t)=>{let r=t===6,i=r?128n:32n,s=e.spans(n,t);return s.sort((a,l)=>a[1]-l[1]||(a[0]<l[0]?-1:1)),[s.map(([a,l])=>{let[c,u,f]=re(a,r,l),d=1n<<i-BigInt(l);return{cidr:c,start:u,end:f,version:t,prefix:l,addresses:r?d:Number(d)}}),Mr(s,i)]},bn=e=>{let n=String(e).trim().toLowerCase().replace(/^as/,"");return/^\d+$/.test(n)?Number(n):0},Dr=(e,n,t)=>{let[r,i]=e,[s,o,a]=i===null?[null,null,null]:re(n,t,i);return{...r,prefix:i,cidr:s,start:o,end:a}},Tn=(e,n,t,r,i=null)=>{let[s,o,a]=P(e,n),l=Le(e,n),[c,u]=G(e,n),[f,d,m]=xe(e,n),p=ve(e,n),[T,A,E]=t??[null,null,null];return{ip:s,version:n?6:4,number:e,compressed:s,expanded:o,arpa:a,is_global:l===0,is_bogon:l!==0,is_private:(l&1)!==0,is_loopback:(l&2)!==0,is_multicast:(l&4)!==0,is_reserved:(l&8)!==0,is_link_local:(l&16)!==0,is_unique_local:(l&32)!==0,is_documentation:(l&64)!==0,is_shared:(l&128)!==0,is_benchmark:(l&256)!==0,is_ipv4_mapped:c===ee,is_6to4:c===ne,is_teredo:c===te,tunnel:c,embedded_ipv4:u,decimal_ipv4:p,as_ipv4_mapped:f,as_6to4:d,as_nat64:m,found:t!==null,place:T===null?null:{...T[0],time:tn(T[1],r)},network:A===null?null:Dr(A,e,n),abuse:E,dns:i}},W=class{file;kept=new Map;results=new Map;announced=new Map;second=0;constructor(n){this.file=new H(n)}get built(){return this.file.built}get selection(){return this.file.selection}get fields(){return this.file.fields}storedFor(n){let t=n.join(","),r=this.kept.get(t);if(r!==void 0)return r;this.kept.size>=dn*16&&this.kept.clear();let i=Rr(this.file.answerFor(n));return this.kept.set(t,i),i}lookup(n,t){let[r,i]=M(n);if(t){let u=this.file.locate(r,i);return Tn(r,i,u&&this.storedFor(u),t)}let s=Math.floor(Date.now()/1e3);s!==this.second&&(this.second=s,this.results.clear());let o=i?r+Ar:BigInt(r),a=this.results.get(o);if(a!==void 0)return a;this.results.size>=dn&&this.results.clear();let l=this.file.locate(r,i),c=Tn(r,i,l&&this.storedFor(l));return this.results.set(o,c),c}async resolve(n,t){let r=this.lookup(n,t?.moment);if(!t?.dns)return r;let[i,s]=M(n);return{...r,dns:await de(i,s)}}system(n){let t=bn(n),r=this.file.system(t);return r?mn(r):{asn:t||null,handle:null,found:!1,network:null,abuse:null}}routes(n){let t=bn(n),r=this.announced.get(t);if(r)return r;let i=this.file.systemAt(t);if(i<0)return{asn:t||null,found:!1,ipv4:[],ipv6:[],ipv4_addresses:0,ipv6_addresses:0n};let[s,o]=pn(this.file,i,4),[a,l]=pn(this.file,i,6),c={asn:t,found:!0,ipv4:s,ipv6:a,ipv4_addresses:Number(o),ipv6_addresses:l};return this.announced.set(t,c),c}search(n,t=20){let r=this.system(n);return r.found?[r]:this.file.find(n,t).map(mn)}row(n){let[t,r]=M(n);return this.file.rowFor(t,r)}},Vr=async e=>{if(e instanceof Uint8Array)return new W(e);if(e instanceof ArrayBuffer)return new W(new Uint8Array(e));let n=e instanceof Response?e:await fetch(e);if(!n.ok)throw new Error(`${n.status} reading the database`);return new W(new Uint8Array(await n.arrayBuffer()))};export{H as File,W as Plevin,x as ask,Ae as decompress,sn as facts,he as loadDictionary,de as named,Vr as open,K as records};
package/dist/reader.d.ts CHANGED
@@ -83,8 +83,12 @@ export declare class File {
83
83
  answerFor(found: Found): Row;
84
84
  /** The first row of a sorted column that is not below the value asked for. */
85
85
  private seek;
86
+ /** The row one ASN is stored at, or -1 where the file carries no such network. */
87
+ systemAt(asn: number): number;
86
88
  /** The network row one ASN is stored at, no address and no bisecting a spine. */
87
89
  system(asn: number): Row | null;
90
+ /** Every prefix a network row is announced as, deduped, in the spine's order. */
91
+ spans(network: number, version: number): [bigint, number][];
88
92
  /** Every ASN's handle and company in one lowercase text a search scans whole. */
89
93
  private searchable;
90
94
  /** The networks whose handle or company carries the text, widest reach first. */
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
package/dist/reader.js CHANGED
@@ -10,6 +10,7 @@ const UNSEEN = 255;
10
10
  const RECORDS = 1 << 14;
11
11
  const CARRIED = ["place", "network", "abuse", "prefix", "rpki", "roas", "rir"];
12
12
  const LINKED = new Set(["place", "network", "abuse"]);
13
+ const STEPPED = new Set(["signed", "delta"]);
13
14
  const SPAN = "network";
14
15
  const BOOKS = {
15
16
  rpki: "rpki",
@@ -179,7 +180,7 @@ class Column extends Section {
179
180
  signed;
180
181
  constructor(view, entry) {
181
182
  super(view, entry);
182
- this.signed = entry.encoding === "signed";
183
+ this.signed = STEPPED.has(entry.encoding);
183
184
  }
184
185
  block(index) {
185
186
  const raw = this.raw(index);
@@ -197,6 +198,31 @@ class Column extends Section {
197
198
  const value = this.cache.get(index)[row % this.perBlock];
198
199
  return typeof value === "bigint" ? Number(value) : value;
199
200
  }
201
+ /** Every row holding this value, searched a block at a time and not a row at a time. */
202
+ rows(value) {
203
+ const found = [];
204
+ for (let index = 0; index < this.blocks; index += 1) {
205
+ const held = this.cache.get(index);
206
+ const target = (typeof held[0] === "bigint" ? BigInt(value) : value);
207
+ for (let at = held.indexOf(target); at >= 0; at = held.indexOf(target, at + 1)) {
208
+ found.push(index * this.perBlock + at);
209
+ }
210
+ }
211
+ return found;
212
+ }
213
+ }
214
+ /** The steps between values, summed once a block: monotone columns cost a byte. */
215
+ class Deltas extends Column {
216
+ block(index) {
217
+ const steps = super.block(index);
218
+ const values = new Float64Array(steps.length);
219
+ let running = 0;
220
+ for (let at = 0; at < steps.length; at += 1) {
221
+ running += Number(steps[at]);
222
+ values[at] = running;
223
+ }
224
+ return values;
225
+ }
200
226
  }
201
227
  /** One pool, front-coded, restarting every group so a group decodes alone. */
202
228
  class Strings extends Section {
@@ -351,7 +377,9 @@ export class File {
351
377
  ? Index
352
378
  : entry.encoding === "front"
353
379
  ? Strings
354
- : Column;
380
+ : entry.encoding === "delta"
381
+ ? Deltas
382
+ : Column;
355
383
  this.sections[name] = new kind(held, entry);
356
384
  }
357
385
  Object.assign(this.reads, READS);
@@ -496,15 +524,40 @@ export class File {
496
524
  }
497
525
  return low;
498
526
  }
499
- /** The network row one ASN is stored at, no address and no bisecting a spine. */
500
- system(asn) {
527
+ /** The row one ASN is stored at, or -1 where the file carries no such network. */
528
+ systemAt(asn) {
501
529
  const column = this.sections["col.network.asn"];
502
530
  if (!column || asn <= 0)
503
- return null;
531
+ return -1;
504
532
  const row = this.seek(column, asn);
505
- if (row >= column.count || column.at(row) !== asn)
506
- return null;
507
- return this.linked("network", row);
533
+ return row < column.count && column.at(row) === asn ? row : -1;
534
+ }
535
+ /** The network row one ASN is stored at, no address and no bisecting a spine. */
536
+ system(asn) {
537
+ const row = this.systemAt(asn);
538
+ return row < 0 ? null : this.linked("network", row);
539
+ }
540
+ /** Every prefix a network row is announced as, deduped, in the spine's order. */
541
+ spans(network, version) {
542
+ const spine = this.sections[`spine.v${version}`];
543
+ const links = this.sections[`spine.v${version}.network`];
544
+ const prefixes = this.sections[`spine.v${version}.prefix`];
545
+ if (!spine || !links || !prefixes)
546
+ return [];
547
+ const bits = BigInt(version === 6 ? 128 : 32);
548
+ const seen = new Set();
549
+ const held = [];
550
+ for (const row of links.rows(network + 1)) {
551
+ const prefix = prefixes.at(row);
552
+ const spare = bits - BigInt(prefix);
553
+ const start = (BigInt(spine.at(row)) >> spare) << spare;
554
+ const key = `${start}/${prefix}`;
555
+ if (seen.has(key))
556
+ continue;
557
+ seen.add(key);
558
+ held.push([start, prefix]);
559
+ }
560
+ return held;
508
561
  }
509
562
  /** Every ASN's handle and company in one lowercase text a search scans whole. */
510
563
  searchable() {
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plevinjs",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Location, network and abuse information for any IP address in one offline file.",
5
5
  "keywords": [
6
6
  "ip",