plevinjs 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -85,6 +85,21 @@ read once.
85
85
  | `plevin.abuse-network.plv` | 10.3 MB | ASN, operator, routing, abuse |
86
86
  | `plevin.place-country-code.plv` | 423 KB | the country code |
87
87
 
88
+ ## The same answers over HTTP
89
+
90
+ Where a file is one dependency too many, the reader runs on a Cloudflare Worker at
91
+ [plevin.tn3w.dev/api](https://plevin.tn3w.dev/api/1.1.1.1) and returns the same JSON,
92
+ field for field, with no key and CORS open to every origin.
93
+
94
+ ```bash
95
+ curl https://plevin.tn3w.dev/api/1.1.1.1 # any address
96
+ curl https://plevin.tn3w.dev/api/me # the caller's own
97
+ curl https://plevin.tn3w.dev/api/about # the build and its fields
98
+ ```
99
+
100
+ [`worker/`](https://github.com/tn3w/plevin/blob/master/worker) is that worker, ready to
101
+ run on an account of your own.
102
+
88
103
  ## Every field
89
104
 
90
105
  <picture>
@@ -190,6 +205,64 @@ db.lookup("2002:808:808::1").is_6to4; // true
190
205
 
191
206
  `tunnel` is `ipv4-mapped`, `6to4`, `teredo`, `nat64` or `null`.
192
207
 
208
+ ```js
209
+ db.lookup("2001:67c:e60:c0c:192:42:116:55").decimal_ipv4; // '192.42.116.55'
210
+ ```
211
+
212
+ `decimal_ipv4` is a guess and never a tunnel: the last four hextets where an operator
213
+ wrote a v4 address into them as decimal. It is `null` wherever a real tunnel answers.
214
+
215
+ ```js
216
+ db.lookup("8.8.8.8").as_ipv4_mapped; // '::ffff:8.8.8.8'
217
+ db.lookup("8.8.8.8").as_6to4; // '2002:808:808::'
218
+ db.lookup("8.8.8.8").as_nat64; // '64:ff9b::808:808'
219
+ ```
220
+
221
+ `as_ipv4_mapped`, `as_6to4` and `as_nat64` write a v4 address the other way about, as
222
+ the v6 addresses that carry it; all three are `null` for a v6 address, where
223
+ `embedded_ipv4` already says what it carries.
224
+
225
+ ## What DNS says, where you ask for it
226
+
227
+ `lookup` never leaves the machine and stays synchronous. `resolve` is the same lookup
228
+ with DNS behind a flag, and does nothing more than `lookup` unless the flag is set:
229
+
230
+ ```js
231
+ (await db.resolve("8.8.8.8", { dns: true })).dns;
232
+ {
233
+ asked: '8.8.8.8',
234
+ hostname: 'dns.google',
235
+ hostnames: [ 'dns.google' ],
236
+ ipv4: '8.8.4.4',
237
+ ipv6: '2001:4860:4860::8888',
238
+ ipv4_addresses: [ '8.8.4.4', '8.8.8.8' ],
239
+ ipv6_addresses: [ '2001:4860:4860::8888', '2001:4860:4860::8844' ],
240
+ alias: null,
241
+ zone: '8.8.8.in-addr.arpa',
242
+ zone_primary: 'ns1.google.com',
243
+ zone_contact: 'dns-admin@google.com',
244
+ is_confirmed: true,
245
+ is_signed: true,
246
+ }
247
+ ```
248
+
249
+ `hostname` is the first PTR name and `hostnames` all of them; `ipv4` and `ipv6` are
250
+ that name resolved forward, `ipv4_addresses` and `ipv6_addresses` all of those, so a v6
251
+ address names its v4 and a v4 address names its v6. `is_confirmed` says the name leads
252
+ back to the address, which is what forward-confirmed reverse DNS means; `zone`,
253
+ `zone_primary` and `zone_contact` come from the reverse zone's SOA, naming who runs the
254
+ range; `is_signed` is the resolver's DNSSEC verdict; `alias` is a CNAME where one
255
+ stands in the way. A tunnel is asked about as the v4 address it carries, which `asked`
256
+ names.
257
+
258
+ Four questions in two rounds: PTR and SOA on the reverse name together, then A and AAAA
259
+ of the hostname. Node, Deno and Bun write those onto the wire themselves and send them
260
+ to every server at once — the machine's own from `node:dns` and 1.1.1.1, 8.8.8.8 and
261
+ 9.9.9.9 — first real answer winning, TCP where one comes back truncated. A browser or a
262
+ worker has no datagram, so the same queries go to Cloudflare and Google over
263
+ DNS-over-HTTPS instead. Answers are kept for an hour, and nothing is asked where the
264
+ flag is off, which keeps a bundled reader as offline as it was.
265
+
193
266
  ## In a browser
194
267
 
195
268
  No build step and no install: the package is plain ESM with no dependencies, so any npm
@@ -216,7 +289,7 @@ rather than a download.
216
289
  | `https://cdn.jsdelivr.net/npm/plevinjs` | `dist/plevin.min.js`, the whole reader in one file |
217
290
  | `https://unpkg.com/plevinjs` | the same as jsDelivr |
218
291
  | `https://esm.sh/plevinjs` | the modules as published, imports rewritten |
219
- | `https://plevin.tn3w.dev/plevin/` | the reader beside the databases |
292
+ | `https://plevin.tn3w.dev/plevin/plevin.min.js` | the reader beside the databases |
220
293
 
221
294
  jsDelivr and unpkg serve the bundle named by the `jsdelivr`/`unpkg` fields, 44 kB of
222
295
  JavaScript with no further requests. The bare `dist/index.js` is not usable from those
package/dist/address.d.ts CHANGED
@@ -23,6 +23,10 @@ export declare const written: (value: number | bigint, wide: boolean) => string;
23
23
  export declare const purpose: (value: number | bigint, wide: boolean) => number;
24
24
  /** The v4 address a v6 one carries, and the tunnel that puts it there. */
25
25
  export declare const tunnel: (value: number | bigint, wide: boolean) => [string | null, string | null];
26
+ /** The v4 address an operator wrote into the last four hextets as decimal. */
27
+ export declare const guessed: (value: number | bigint, wide: boolean) => string | null;
28
+ /** The v6 addresses a v4 one is written as where a tunnel carries it across. */
29
+ export declare const carried: (value: number | bigint, wide: boolean) => [string | null, string | null, string | null];
26
30
  /** The announcement the address falls in, masked out of the address itself. */
27
31
  export declare const span: (value: number | bigint, wide: boolean, prefix: number) => [string, string, string];
28
32
  //# sourceMappingURL=address.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1D,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,eAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAuF7B,sFAAsF;AACtF,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CA6B7D,CAAC;AA2BF,gFAAgF;AAChF,eAAO,MAAM,OAAO,UACX,MAAM,GAAG,MAAM,QAChB,OAAO,KACZ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CA4BzB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,MACvC,CAAC;AAc1B,kFAAkF;AAClF,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,MAa/D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,MAAM,UACV,MAAM,GAAG,MAAM,QAChB,OAAO,KACZ,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAW/B,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,IAAI,UACR,MAAM,GAAG,MAAM,QAChB,OAAO,UACL,MAAM,KACb,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAOzB,CAAC"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1D,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,eAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAuF7B,sFAAsF;AACtF,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CA6B7D,CAAC;AA2BF,gFAAgF;AAChF,eAAO,MAAM,OAAO,UACX,MAAM,GAAG,MAAM,QAChB,OAAO,KACZ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CA4BzB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,MACvC,CAAC;AAc1B,kFAAkF;AAClF,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,MAa/D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,MAAM,UACV,MAAM,GAAG,MAAM,QAChB,OAAO,KACZ,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAW/B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,MAAM,GAAG,IAUxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,OAAO,UACX,MAAM,GAAG,MAAM,QAChB,OAAO,KACZ,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ9C,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,IAAI,UACR,MAAM,GAAG,MAAM,QAChB,OAAO,UACL,MAAM,KACb,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAOzB,CAAC"}
package/dist/address.js CHANGED
@@ -230,6 +230,26 @@ export const tunnel = (value, wide) => {
230
230
  return [NAT64, dotted(low)];
231
231
  return [null, null];
232
232
  };
233
+ /** The v4 address an operator wrote into the last four hextets as decimal. */
234
+ export const guessed = (value, wide) => {
235
+ if (!wide || tunnel(value, wide)[0] !== null)
236
+ return null;
237
+ const held = value;
238
+ const parts = [48n, 32n, 16n, 0n].map((shift) => Number((held >> shift) & 0xffffn).toString(16));
239
+ const decimal = parts.every((part) => /^[0-9]+$/.test(part) && Number(part) > 0 && Number(part) < 256);
240
+ return decimal ? parts.join(".") : null;
241
+ };
242
+ /** The v6 addresses a v4 one is written as where a tunnel carries it across. */
243
+ export const carried = (value, wide) => {
244
+ if (wide)
245
+ return [null, null, null];
246
+ const held = BigInt(value);
247
+ return [
248
+ written(0xffff00000000n | held, true),
249
+ written((0x2002n << 112n) | (held << 80n), true),
250
+ written((0x0064ff9bn << 96n) | held, true),
251
+ ];
252
+ };
233
253
  /** The announcement the address falls in, masked out of the address itself. */
234
254
  export const span = (value, wide, prefix) => {
235
255
  const spare = BigInt((wide ? 128 : 32) - prefix);
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,8 +4,14 @@ import type { Result } 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";
7
+ export { ask, facts, named, records } from "./naming.ts";
7
8
  export { File } from "./reader.ts";
8
9
  export { decompress, loadDictionary } from "./zstd.ts";
10
+ /** What a lookup should do beyond the file, none of it done unless it is asked for. */
11
+ export type Asked = {
12
+ dns?: boolean;
13
+ moment?: Date | null;
14
+ };
9
15
  /** One database, opened once and asked as often as a log has addresses. */
10
16
  export declare class Plevin {
11
17
  readonly file: File;
@@ -19,6 +25,8 @@ export declare class Plevin {
19
25
  private storedFor;
20
26
  /** One address, however it is written, as everything the file answers. */
21
27
  lookup(value: Value, moment?: Date | null): Result;
28
+ /** The same lookup with what DNS says about the address, where the flag says so. */
29
+ resolve(value: Value, options?: Asked): Promise<Result>;
22
30
  /** The stored rows without any shaping, or null where the file covers nothing. */
23
31
  row(value: Value): Row | null;
24
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAkBL,KAAK,KAAK,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAUV,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,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,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA+OvD,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,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,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;AAuPvD,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,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
@@ -1,9 +1,11 @@
1
1
  /** Location, network and abuse information for any IP address in one offline file. */
2
- import { BENCHMARK, DOCUMENTATION, LINK_LOCAL, LOOPBACK, MAPPED, MULTICAST, PRIVATE, parse, purpose, RESERVED, SHARED, SIXTOFOUR, span, spelled, TEREDO, tunnel, UNIQUE_LOCAL, } from "./address.js";
2
+ import { BENCHMARK, carried, DOCUMENTATION, guessed, LINK_LOCAL, LOOPBACK, MAPPED, MULTICAST, PRIVATE, parse, purpose, RESERVED, SHARED, SIXTOFOUR, span, spelled, TEREDO, tunnel, UNIQUE_LOCAL, } from "./address.js";
3
3
  import * as derive from "./derive.js";
4
4
  import { clock, country } from "./extra.js";
5
+ import { named } from "./naming.js";
5
6
  import { File } from "./reader.js";
6
7
  export * from "./models.js";
8
+ export { ask, facts, named, records } from "./naming.js";
7
9
  export { File } from "./reader.js";
8
10
  export { decompress, loadDictionary } from "./zstd.js";
9
11
  const ANSWERED = 1 << 10;
@@ -176,10 +178,12 @@ const spanned = (wires, value, wide) => {
176
178
  const [cidr, start, end] = prefix === null ? [null, null, null] : span(value, wide, prefix);
177
179
  return { ...held, prefix, cidr, start, end };
178
180
  };
179
- const result = (value, wide, found, moment) => {
181
+ const result = (value, wide, found, moment, dns = null) => {
180
182
  const [compressed, expanded, arpa] = spelled(value, wide);
181
183
  const marks = purpose(value, wide);
182
184
  const [through, embedded] = tunnel(value, wide);
185
+ const [mapped, sixtofour, nat64] = carried(value, wide);
186
+ const decimal = guessed(value, wide);
183
187
  const [ground, wires, abuse] = found ?? [null, null, null];
184
188
  return {
185
189
  ip: compressed,
@@ -204,10 +208,15 @@ const result = (value, wide, found, moment) => {
204
208
  is_teredo: through === TEREDO,
205
209
  tunnel: through,
206
210
  embedded_ipv4: embedded,
211
+ decimal_ipv4: decimal,
212
+ as_ipv4_mapped: mapped,
213
+ as_6to4: sixtofour,
214
+ as_nat64: nat64,
207
215
  found: found !== null,
208
216
  place: ground === null ? null : { ...ground[0], time: clock(ground[1], moment) },
209
217
  network: wires === null ? null : spanned(wires, value, wide),
210
218
  abuse,
219
+ dns,
211
220
  };
212
221
  };
213
222
  /** One database, opened once and asked as often as a log has addresses. */
@@ -262,6 +271,14 @@ export class Plevin {
262
271
  this.results.set(key, built);
263
272
  return built;
264
273
  }
274
+ /** The same lookup with what DNS says about the address, where the flag says so. */
275
+ async resolve(value, options) {
276
+ const answered = this.lookup(value, options?.moment);
277
+ if (!options?.dns)
278
+ return answered;
279
+ const [held, wide] = parse(value);
280
+ return { ...answered, dns: await named(held, wide) };
281
+ }
265
282
  /** The stored rows without any shaping, or null where the file covers nothing. */
266
283
  row(value) {
267
284
  const [held, wide] = parse(value);
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":"AAAA,sFAAsF;AAEtF,OAAO,EACL,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,EACT,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,YAAY,GAEb,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAc5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAwB,MAAM,aAAa,CAAC;AAGzD,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;AAEvD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,MAAM,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC;AAExB,MAAM,IAAI,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/E,MAAM,KAAK,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEhF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC/C,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/D,MAAM,IAAI,GAAG,CAAC,GAAoB,EAAE,KAAa,EAAmB,EAAE,CACpE,GAAG,EAAE,CAAC,KAAK,CAAoB,CAAC;AAElC,MAAM,KAAK,GAAG,CAAC,GAAoB,EAAgB,EAAE,CACnD,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAEjE,MAAM,QAAQ,GAAG,CAAC,GAAoB,EAAmB,EAAE,CACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAEjF,MAAM,MAAM,GAAG,CAAC,GAAoB,EAAiB,EAAE,CACrD,GAAG;IACD,CAAC,CAAC;QACE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;KACrB;IACH,CAAC,CAAC,IAAI,CAAC;AAEX,iFAAiF;AACjF,MAAM,MAAM,GAAG,CAAQ,KAA6C,EAAE,EAAE;IACtE,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAC;IACpD,OAAO,CAAC,GAAoB,EAAE,GAAG,IAAc,EAAgB,EAAE;QAC/D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAQ,EAAQ,EAAE;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;QACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACzC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAQ,EAAE,MAAc,EAAY,EAAE;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACtB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAClB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACvB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAE,QAAgB,EAAkB,EAAE;IACzE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC;IACxB,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QACnC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACrB,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACrB,SAAS,EAAE,QAAQ,KAAK,UAAU;KACnC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CACd,MAAuB,EACvB,MAAuB,EACvB,QAAgB,EACF,EAAE;IAChB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QACpB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC;QACxD,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACjD,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;QAC3C,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QACrC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QACzC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACnC,eAAe,EAAE,KAAK,KAAK,cAAc;QACzC,oBAAoB,EAAE,KAAK,KAAK,mBAAmB;QACnD,gBAAgB,EAAE,KAAK,KAAK,eAAe;QAC3C,gBAAgB,EAAE,KAAK,KAAK,eAAe;QAC3C,gBAAgB,EAAE,KAAK,KAAK,eAAe;QAC3C,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC,CAAC;AAMF,kFAAkF;AAClF,MAAM,KAAK,GAAG,CAAC,GAAoB,EAAiB,EAAE;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IACnC,OAAO;QACL;YACE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7B,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YAClC,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;SACvB;QACD,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAEF,oFAAoF;AACpF,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAE,QAAgB,EAAgB,EAAE;IACvE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO;QACL;YACE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YACjD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;SACjD;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,GAAG,CAAC,MAAuB,EAAE,MAAuB,EAAU,EAAE,CAC9E,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAU,EAAE;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,KAAsB,EAAE,IAAa,EAAW,EAAE;IAC/E,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GACtB,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CACb,KAAsB,EACtB,IAAa,EACb,KAAoB,EACpB,MAAoB,EACpB,GAAG,GAAe,IAAI,EACd,EAAE;IACV,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,KAAK;QACb,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,SAAS,EAAE,KAAK,KAAK,CAAC;QACtB,QAAQ,EAAE,KAAK,KAAK,CAAC;QACrB,UAAU,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,WAAW,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACrC,YAAY,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACvC,WAAW,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACrC,aAAa,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QACzC,eAAe,EAAE,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAC7C,gBAAgB,EAAE,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QAC/C,SAAS,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,YAAY,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACvC,cAAc,EAAE,OAAO,KAAK,MAAM;QAClC,OAAO,EAAE,OAAO,KAAK,SAAS;QAC9B,SAAS,EAAE,OAAO,KAAK,MAAM;QAC7B,MAAM,EAAE,OAAO;QACf,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,KAAK,KAAK,IAAI;QACrB,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;QAChF,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;QAC5D,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC,CAAC;AAKF,2EAA2E;AAC3E,MAAM,OAAO,MAAM;IACR,IAAI,CAAO;IACH,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,GAAG,CAAC,CAAC;IAEnB,YAAY,KAAiB;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAEO,SAAS,CAAC,KAAY;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,KAAY,EAAE,MAAoB;QACvC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,IAAe,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAc,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,OAAe;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,GAAG;YAAE,OAAO,QAAQ,CAAC;QACnC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,kFAAkF;IAClF,GAAG,CAAC,KAAY;QACd,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,MAAoE,EACnD,EAAE;IACnB,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,MAAM,YAAY,WAAW;QAAE,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAC7E,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
package/dist/models.d.ts CHANGED
@@ -116,6 +116,22 @@ export type Network = {
116
116
  operator: Operator | null;
117
117
  carrier: Carrier | null;
118
118
  };
119
+ /** What the resolvers say about the address, asked for only where a flag says so. */
120
+ export type Dns = {
121
+ asked: string | null;
122
+ hostname: string | null;
123
+ hostnames: string[];
124
+ ipv4: string | null;
125
+ ipv6: string | null;
126
+ ipv4_addresses: string[];
127
+ ipv6_addresses: string[];
128
+ alias: string | null;
129
+ zone: string | null;
130
+ zone_primary: string | null;
131
+ zone_contact: string | null;
132
+ is_confirmed: boolean;
133
+ is_signed: boolean;
134
+ };
119
135
  /** One address: what it says on its own, and what the database stores for it. */
120
136
  export type Result = {
121
137
  ip: string;
@@ -140,9 +156,14 @@ export type Result = {
140
156
  is_teredo: boolean;
141
157
  tunnel: string | null;
142
158
  embedded_ipv4: string | null;
159
+ decimal_ipv4: string | null;
160
+ as_ipv4_mapped: string | null;
161
+ as_6to4: string | null;
162
+ as_nat64: string | null;
143
163
  found: boolean;
144
164
  place: Place | null;
145
165
  network: Network | null;
146
166
  abuse: Abuse | null;
167
+ dns: Dns | null;
147
168
  };
148
169
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** What DNS says about an address: datagrams where a runtime has them, HTTPS where not. */
2
+ import type { Dns } from "./models.ts";
3
+ export declare const PUBLIC_SERVERS: string[];
4
+ export declare const RESOLVERS: string[];
5
+ declare const KINDS: {
6
+ readonly A: 1;
7
+ readonly CNAME: 5;
8
+ readonly SOA: 6;
9
+ readonly PTR: 12;
10
+ readonly AAAA: 28;
11
+ };
12
+ export type Kind = keyof typeof KINDS;
13
+ export type Question = [string, Kind, Kind | null];
14
+ export type Record = {
15
+ name: string;
16
+ kind: number;
17
+ data: string;
18
+ };
19
+ export type Reply = {
20
+ code: number;
21
+ authentic: boolean;
22
+ truncated: boolean;
23
+ answer: Record[];
24
+ authority: Record[];
25
+ };
26
+ /** One question, recursion asked for, DNSSEC status asked for, EDNS0 announced. */
27
+ export declare const encodeQuery: (name: string, kind: Kind) => Uint8Array;
28
+ /** A reply as its header bits, its answers and the zone that owns them. */
29
+ export declare const decode: (message: Uint8Array) => Reply;
30
+ export declare const records: (reply: Reply | null, kind: Kind, section?: "answer" | "any") => Record[];
31
+ export declare const ask: ([name, kind, carrying]: Question) => Promise<Reply | null>;
32
+ /** Everything DNS says about the address, in two rounds of questions. */
33
+ export declare const facts: (value: number | bigint, wide: boolean) => Promise<Dns>;
34
+ /** The same address answered from memory for an hour before asking again. */
35
+ export declare const named: (value: number | bigint, wide: boolean) => Promise<Dns>;
36
+ export {};
37
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAG3F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,eAAO,MAAM,cAAc,UAAoC,CAAC;AAChE,eAAO,MAAM,SAAS,UAGrB,CAAC;AAOF,QAAA,MAAM,KAAK;aAAK,CAAC,EAAE,CAAC;aAAE,KAAK,EAAE,CAAC;aAAE,GAAG,EAAE,CAAC;aAAE,GAAG,EAAE,EAAE;aAAE,IAAI,EAAE,EAAE;CAAW,CAAC;AAErE,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,KAAK,CAAC;AACtC,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,WAAW,SAAU,MAAM,QAAQ,IAAI,KAAG,UAuBtD,CAAC;AA2CF,2EAA2E;AAC3E,eAAO,MAAM,MAAM,YAAa,UAAU,KAAG,KAyB5C,CAAC;AAEF,eAAO,MAAM,OAAO,UACX,KAAK,GAAG,IAAI,QACb,IAAI,YACD,QAAQ,GAAG,KAAK,KACxB,MAAM,EAIR,CAAC;AAqKF,eAAO,MAAM,GAAG,2BAAkC,QAAQ,KAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAGhF,CAAC;AA6BF,yEAAyE;AACzE,eAAO,MAAM,KAAK,UAAiB,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,OAAO,CAAC,GAAG,CA+B9E,CAAC;AAIF,6EAA6E;AAC7E,eAAO,MAAM,KAAK,UAAiB,MAAM,GAAG,MAAM,QAAQ,OAAO,KAAG,OAAO,CAAC,GAAG,CAQ9E,CAAC"}
package/dist/naming.js ADDED
@@ -0,0 +1,333 @@
1
+ /** What DNS says about an address: datagrams where a runtime has them, HTTPS where not. */
2
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
3
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
4
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
5
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
6
+ });
7
+ }
8
+ return path;
9
+ };
10
+ import { parse, spelled, tunnel, written } from "./address.js";
11
+ export const PUBLIC_SERVERS = ["1.1.1.1", "8.8.8.8", "9.9.9.9"];
12
+ export const RESOLVERS = [
13
+ "https://cloudflare-dns.com/dns-query",
14
+ "https://dns.google/dns-query",
15
+ ];
16
+ const TIMEOUT = 2000;
17
+ const KEPT = 4096;
18
+ const KEPT_FOR = 3_600_000;
19
+ const PAYLOAD = 1232;
20
+ const ANSWERED = new Set([0, 3]);
21
+ const KINDS = { A: 1, CNAME: 5, SOA: 6, PTR: 12, AAAA: 28 };
22
+ /** One question, recursion asked for, DNSSEC status asked for, EDNS0 announced. */
23
+ export const encodeQuery = (name, kind) => {
24
+ const labels = name.split(".").filter(Boolean);
25
+ const size = labels.reduce((held, label) => held + label.length + 1, 0);
26
+ const message = new Uint8Array(12 + size + 1 + 4 + 11);
27
+ const view = new DataView(message.buffer);
28
+ view.setUint16(0, Math.floor(Math.random() * 65536));
29
+ view.setUint16(2, 0x0120);
30
+ view.setUint16(4, 1);
31
+ view.setUint16(10, 1);
32
+ let at = 12;
33
+ for (const label of labels) {
34
+ message[at] = label.length;
35
+ for (let index = 0; index < label.length; index += 1) {
36
+ message[at + 1 + index] = label.charCodeAt(index);
37
+ }
38
+ at += label.length + 1;
39
+ }
40
+ at += 1;
41
+ view.setUint16(at, KINDS[kind]);
42
+ view.setUint16(at + 2, 1);
43
+ view.setUint16(at + 5, 41);
44
+ view.setUint16(at + 7, PAYLOAD);
45
+ return message;
46
+ };
47
+ /** A name, following compression pointers, and where the record goes on. */
48
+ const readName = (message, from) => {
49
+ const labels = [];
50
+ let at = from;
51
+ let after = -1;
52
+ for (let step = 0; step < 128; step += 1) {
53
+ const length = message[at];
54
+ if (length >= 0xc0) {
55
+ if (after < 0)
56
+ after = at + 2;
57
+ at = ((length & 0x3f) << 8) | message[at + 1];
58
+ continue;
59
+ }
60
+ at += 1;
61
+ if (!length)
62
+ return [labels.join("."), after < 0 ? at : after];
63
+ labels.push(String.fromCharCode(...message.slice(at, at + length)).toLowerCase());
64
+ at += length;
65
+ }
66
+ throw new Error("name loops");
67
+ };
68
+ const readData = (message, at, kind) => {
69
+ if (kind === KINDS.A) {
70
+ const held = message.slice(at, at + 4);
71
+ return written(((held[0] << 24) >>> 0) + (held[1] << 16) + (held[2] << 8) + held[3], false);
72
+ }
73
+ if (kind === KINDS.AAAA) {
74
+ let held = 0n;
75
+ for (const byte of message.slice(at, at + 16))
76
+ held = (held << 8n) | BigInt(byte);
77
+ return written(held, true);
78
+ }
79
+ if (kind === KINDS.CNAME || kind === KINDS.PTR)
80
+ return readName(message, at)[0];
81
+ if (kind === KINDS.SOA) {
82
+ const [primary, next] = readName(message, at);
83
+ return `${primary} ${readName(message, next)[0]}`;
84
+ }
85
+ return "";
86
+ };
87
+ /** A reply as its header bits, its answers and the zone that owns them. */
88
+ export const decode = (message) => {
89
+ const view = new DataView(message.buffer, message.byteOffset);
90
+ const flags = view.getUint16(2);
91
+ const counts = [view.getUint16(4), view.getUint16(6), view.getUint16(8)];
92
+ let at = 12;
93
+ for (let index = 0; index < counts[0]; index += 1)
94
+ at = readName(message, at)[1] + 4;
95
+ const sections = [];
96
+ for (const count of counts.slice(1)) {
97
+ const records = [];
98
+ for (let index = 0; index < count; index += 1) {
99
+ const [name, next] = readName(message, at);
100
+ const kind = view.getUint16(next);
101
+ const length = view.getUint16(next + 8);
102
+ records.push({ name, kind, data: readData(message, next + 10, kind) });
103
+ at = next + 10 + length;
104
+ }
105
+ sections.push(records);
106
+ }
107
+ return {
108
+ code: flags & 15,
109
+ authentic: (flags & 0x20) !== 0,
110
+ truncated: (flags & 0x200) !== 0,
111
+ answer: sections[0],
112
+ authority: sections[1],
113
+ };
114
+ };
115
+ export const records = (reply, kind, section = "answer") => {
116
+ if (!reply)
117
+ return [];
118
+ const found = section === "any" ? [...reply.answer, ...reply.authority] : reply.answer;
119
+ return found.filter((record) => record.kind === KINDS[kind]);
120
+ };
121
+ const answers = (reply, kind) => records(reply, kind).map((record) => record.data);
122
+ const read = (message) => {
123
+ try {
124
+ const reply = decode(message);
125
+ return ANSWERED.has(reply.code) ? reply : null;
126
+ }
127
+ catch {
128
+ return null;
129
+ }
130
+ };
131
+ /** A node builtin named at runtime, which keeps bundlers from reaching for it. */
132
+ const builtin = async (name) => (await import(__rewriteRelativeImportExtension(/* @vite-ignore */ name)));
133
+ const onNode = () => typeof process !== "undefined" && Boolean(process.versions?.node);
134
+ let servers = null;
135
+ /** The servers this machine resolves through, which only a node runtime knows. */
136
+ const systemServers = async () => {
137
+ servers ??= (async () => {
138
+ const found = [];
139
+ try {
140
+ const { getServers } = await builtin("node:dns");
141
+ found.push(...getServers());
142
+ }
143
+ catch {
144
+ /* a runtime without node:dns has the public servers and nothing else */
145
+ }
146
+ const usable = found
147
+ .map((server) => server.split("%")[0].replace(/^\[|]$/g, ""))
148
+ .filter((server) => !/^(fe80|169\.254)/i.test(server));
149
+ return [...new Set([...usable, ...PUBLIC_SERVERS])];
150
+ })();
151
+ return servers;
152
+ };
153
+ /** The same question again where the datagram came back cut short. */
154
+ const overTcp = async (server, query) => {
155
+ const { connect } = await builtin("node:net");
156
+ return new Promise((settle) => {
157
+ const socket = connect(53, server);
158
+ const pieces = [];
159
+ let size = 0;
160
+ const done = (reply) => {
161
+ socket.destroy();
162
+ settle(reply);
163
+ };
164
+ socket.setTimeout(TIMEOUT, () => done(null));
165
+ socket.on("error", () => done(null));
166
+ socket.on("connect", () => {
167
+ const framed = new Uint8Array(query.length + 2);
168
+ new DataView(framed.buffer).setUint16(0, query.length);
169
+ framed.set(query, 2);
170
+ socket.write(framed);
171
+ });
172
+ socket.on("data", (piece) => {
173
+ pieces.push(piece);
174
+ size += piece.length;
175
+ if (size < 2)
176
+ return;
177
+ const held = new Uint8Array(size);
178
+ let at = 0;
179
+ for (const one of pieces) {
180
+ held.set(one, at);
181
+ at += one.length;
182
+ }
183
+ const expected = new DataView(held.buffer).getUint16(0);
184
+ if (size >= expected + 2)
185
+ done(read(held.slice(2, expected + 2)));
186
+ });
187
+ });
188
+ };
189
+ /** Every server asked at once over UDP, the first real answer winning. */
190
+ const overUdp = async (query, carrying) => {
191
+ const { createSocket } = await builtin("node:dgram");
192
+ const reachable = await systemServers();
193
+ return new Promise((settle) => {
194
+ const sockets = reachable.map((server) => createSocket(server.includes(":") ? "udp6" : "udp4"));
195
+ let spare = null;
196
+ let left = sockets.length;
197
+ let settled = false;
198
+ const done = (reply) => {
199
+ if (settled)
200
+ return;
201
+ settled = true;
202
+ clearTimeout(timer);
203
+ for (const socket of sockets)
204
+ socket.close();
205
+ settle(reply);
206
+ };
207
+ const timer = setTimeout(() => done(spare), TIMEOUT);
208
+ const heard = async (message, server) => {
209
+ left -= 1;
210
+ let reply = read(message);
211
+ if (reply?.truncated)
212
+ reply = await overTcp(server, query);
213
+ if (reply && (!carrying || records(reply, carrying, "any").length))
214
+ return done(reply);
215
+ spare ??= reply;
216
+ if (!left)
217
+ done(spare);
218
+ };
219
+ sockets.forEach((socket, index) => {
220
+ const server = reachable[index];
221
+ socket.on("error", () => {
222
+ left -= 1;
223
+ if (!left)
224
+ done(spare);
225
+ });
226
+ socket.on("message", (message) => void heard(message, server));
227
+ socket.send(query, 53, server);
228
+ });
229
+ if (!sockets.length)
230
+ done(null);
231
+ });
232
+ };
233
+ /** Every resolver asked at once over HTTPS, for runtimes without a datagram. */
234
+ const overHttps = async (query, carrying) => {
235
+ const asking = RESOLVERS.map(async (resolver) => {
236
+ const response = await fetch(resolver, {
237
+ method: "POST",
238
+ headers: { "content-type": "application/dns-message" },
239
+ body: query,
240
+ signal: AbortSignal.timeout(TIMEOUT),
241
+ });
242
+ if (!response.ok)
243
+ throw new Error(`${response.status} from ${resolver}`);
244
+ const reply = read(new Uint8Array(await response.arrayBuffer()));
245
+ if (!reply)
246
+ throw new Error(`nothing from ${resolver}`);
247
+ return reply;
248
+ });
249
+ let spare = null;
250
+ for (const settled of await Promise.allSettled(asking)) {
251
+ if (settled.status !== "fulfilled")
252
+ continue;
253
+ if (!carrying || records(settled.value, carrying, "any").length)
254
+ return settled.value;
255
+ spare ??= settled.value;
256
+ }
257
+ return spare;
258
+ };
259
+ export const ask = async ([name, kind, carrying]) => {
260
+ const query = encodeQuery(name, kind);
261
+ return onNode() ? overUdp(query, carrying) : overHttps(query, carrying);
262
+ };
263
+ const zoneOf = (reply, found) => {
264
+ const soa = records(reply, "SOA", "any");
265
+ if (!soa.length)
266
+ return;
267
+ const [primary, contact] = soa[0].data.split(" ");
268
+ const at = contact.indexOf(".");
269
+ found.zone = soa[0].name;
270
+ found.zone_primary = primary;
271
+ found.zone_contact =
272
+ at < 0 ? contact : `${contact.slice(0, at)}@${contact.slice(at + 1)}`;
273
+ };
274
+ const empty = (asked) => ({
275
+ asked,
276
+ hostname: null,
277
+ hostnames: [],
278
+ ipv4: null,
279
+ ipv6: null,
280
+ ipv4_addresses: [],
281
+ ipv6_addresses: [],
282
+ alias: null,
283
+ zone: null,
284
+ zone_primary: null,
285
+ zone_contact: null,
286
+ is_confirmed: false,
287
+ is_signed: false,
288
+ });
289
+ /** Everything DNS says about the address, in two rounds of questions. */
290
+ export const facts = async (value, wide) => {
291
+ const embedded = tunnel(value, wide)[1];
292
+ const [held, narrow] = embedded ? parse(embedded) : [value, wide];
293
+ const [asked, , arpa] = spelled(held, narrow);
294
+ const [reverse, zone] = await Promise.all([
295
+ ask([arpa, "PTR", null]),
296
+ ask([arpa, "SOA", "SOA"]),
297
+ ]);
298
+ const found = empty(asked);
299
+ found.is_signed = Boolean(reverse?.authentic);
300
+ zoneOf(zone, found);
301
+ const hostnames = answers(reverse, "PTR");
302
+ if (!hostnames.length)
303
+ return found;
304
+ found.hostname = hostnames[0];
305
+ found.hostnames = hostnames;
306
+ const [forwardV4, forwardV6] = await Promise.all([
307
+ ask([hostnames[0], "A", null]),
308
+ ask([hostnames[0], "AAAA", null]),
309
+ ]);
310
+ found.ipv4_addresses = answers(forwardV4, "A");
311
+ found.ipv6_addresses = answers(forwardV6, "AAAA");
312
+ found.ipv4 = found.ipv4_addresses[0] ?? null;
313
+ found.ipv6 = found.ipv6_addresses[0] ?? null;
314
+ const aliases = [...answers(forwardV4, "CNAME"), ...answers(forwardV6, "CNAME")];
315
+ found.alias = aliases[0] ?? null;
316
+ const back = [...found.ipv4_addresses, ...found.ipv6_addresses];
317
+ found.is_confirmed = back.some((one) => BigInt(parse(one)[0]) === BigInt(held));
318
+ return found;
319
+ };
320
+ const kept = new Map();
321
+ /** The same address answered from memory for an hour before asking again. */
322
+ export const named = async (value, wide) => {
323
+ const key = `${wide ? 6 : 4}:${value}`;
324
+ const held = kept.get(key);
325
+ if (held && held[0] > Date.now())
326
+ return held[1];
327
+ const found = await facts(value, wide);
328
+ if (kept.size >= KEPT)
329
+ kept.clear();
330
+ kept.set(key, [Date.now() + KEPT_FOR, found]);
331
+ return found;
332
+ };
333
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- var V="ipv4-mapped",W="6to4",z="teredo",nn="nat64";var tn=(1n<<128n)-1n,rn=[["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]],an=[["::/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]],on=/^(0|[1-9][0-9]{0,2})$/,sn=/^[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(!on.test(r))return null;let i=Number(r);if(i>255)return null;t=t*256+i}return t},Ae=(e,n)=>{if(e==="")return[];let t=e.split(":"),r=[];for(let i=0;i<t.length;i+=1){let o=t[i];if(i===t.length-1&&o.includes(".")){let a=ge(o);if(a===null)return null;r.push(a>>>16,a&65535);continue}if(!sn.test(o))return null;r.push(Number.parseInt(o,16))}return r.length<=n?r:null},ln=e=>{let n=e.split("::");if(n.length>2)return null;let t=Ae(n[0],8),r=n.length===2?Ae(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 o=[...t,...Array(8-i).fill(0),...r],a=0n;for(let s of o)a=a<<16n|BigInt(s);return a},v=e=>{if(typeof e=="string"){if(e.includes(":")){let r=ln(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>tn)throw new Error(`${e} is not an address`);return n>BigInt(4294967295)?[n,!0]:[Number(n),!1]},cn=e=>Array.from({length:8},(n,t)=>Number(e>>BigInt(112-t*16)&0xffffn)),N=e=>[24,16,8,0].map(n=>e>>>n&255).join("."),Se=(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 o=e.slice(0,t).join(":"),a=e.slice(t+r).join(":");return`${o}::${a}`},Z=(e,n)=>{if(!n){let a=N(e),s=a.split(".");return[a,a,`${[...s].reverse().join(".")}.in-addr.arpa`]}let t=cn(e),i=`${[...e.toString(16).padStart(32,"0")].reverse().join(".")}.ip6.arpa`;if(t.slice(0,5).every(a=>a===0)&&t[5]===65535){let a=N(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[`${Se(s,t.slice(0,6))}:${a}`,`${l.join(":")}:${a}`,i]}return[Se(t.map(a=>a.toString(16)),t),t.map(a=>a.toString(16).padStart(4,"0")).join(":"),i]},Ee=(e,n)=>Z(e,n)[0],he=(e,n)=>e.map(([t,r])=>{let[i,o]=t.split("/"),a=BigInt(v(i)[0]),s=BigInt((n?128:32)-Number(o));return[a,a+((1n<<s)-1n),r]}).sort((t,r)=>t[0]<r[0]?-1:1),un=[he(rn,!1),he(an,!0)],Ce=(e,n)=>{let t=un[n?1:0],r=BigInt(e),i=0,o=t.length;for(;i<o;){let s=i+o>>1;t[s][0]<=r?i=s+1:o=s}let a=t[i-1];return a&&r<=a[1]?a[2]:n&&r>>125n!==1n?8:0},ye=(e,n)=>{if(!n)return[null,null];let t=e,r=Number(t&0xffffffffn);return t>>32n===0xffffn?[V,N(r)]:t>>112n===0x2002n?[W,N(Number(t>>80n&0xffffffffn))]:t>>96n===0x20010000n?[z,N(~r>>>0)]:t>>32n===0x0064ff9bn<<64n?[nn,N(r)]:[null,null]},Re=(e,n,t)=>{let r=BigInt((n?128:32)-t),i=BigInt(e),o=i>>r<<r,a=i|(1n<<r)-1n,s=Ee(n?o:Number(o),n);return[`${s}/${t}`,s,Ee(n?a:Number(a),n)]};var $=e=>new Set(e.split(" ")),fn=$("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"),Tn=$("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"),bn=$("the llc ltd gmbh sarl ooo zao pao ao oao jsc ojsc pjsc uab sia tov pt pp ps ip spolka"),mn=new Set([...fn,...Tn,""]),pn=[".com",".net",".org",".io"],dn=/^.*\b(?:trading as|d\/b\/a|dba)\b\s*/i,An=/\(.*?\)|,.*|\s+-\s+.*/g,Me=/[^0-9a-z]/g,Sn=/^AS\d+$/i,En=/-(AS|AP|US|UK|DE|FR|IN|CN|JP|EU|NET|COM|ORG)$/,hn=/(NET|COM|TEL|WEB|LINE)$/,gn=/[/?#]/,Cn=/^["']+|["']+$/g,De=new Set(["hosting","cdn","content"]),yn=new Set(["residential","cellular"]),Ie=new Set(["public_proxy","residential_proxy"]),Rn={"national capital":"country","regional capital":"region","district capital":"district"},Mn=8192,Be=e=>{let n=new Map;return t=>{let r=n.get(t);if(r!==void 0)return r;n.size>=Mn&&n.clear();let i=e(t);return n.set(t,i),i}},Dn=/^\p{L}+$/u,Ne=e=>{let n=e.indexOf(`
2
- `);return[e.slice(0,n),e.slice(n+1)]},In=e=>e.length>4&&Dn.test(e)&&e===e.toUpperCase()&&e!==e.toLowerCase(),Bn=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),Ue=e=>e.split(" ").map(n=>In(n)?Bn(n):n).join(" "),Nn=e=>{let t=e.replace(dn,"").replace(An,"").split(/\s+/).map(o=>o.replace(Cn,"")).filter(Boolean);for(;t.length>1&&mn.has(t[t.length-1].toLowerCase().replace(Me,""));)t.pop();for(;t.length&&bn.has(t[0].toLowerCase().replace(Me,""));)t.shift();let r=t.join(" "),i=pn.find(o=>r.toLowerCase().endsWith(o));return Ue(i?r.slice(0,r.length-i.length):r)},Un=e=>{let t=(e.split(/\s+/)[0]??"").replace(En,"");return Sn.test(t)?"":(t.length>4&&t===t.toUpperCase()&&(t=t.replace(hn,"")),Ue(t))},wn=Be(e=>{let[n,t]=Ne(e),r=Nn(t),i=Un(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)=>wn(`${e}
3
- ${n}`),Gn=Be(e=>{let[n,t]=Ne(e),i=((n.split("//").pop()??"").split(gn)[0].split("@").pop()??"").split(":")[0],o=(t.split("@")[1]??"").toLowerCase(),a=(i||o).toLowerCase().replace(/^www\./,""),s=a.split(".").pop()??"";return s.length>2&&o.split(".")[0]===s&&a!==o?o:a}),Ge=(e,n)=>Gn(`${e}
4
- ${n}`),ke=(e,n)=>e==="public_proxy"&&yn.has(n)?["residential_proxy","inferred"]:[e,""],Le=e=>Rn[e]??"";var j=`
1
+ var Q="ipv4-mapped",X="6to4",ee="teredo",bn="nat64";var An=(1n<<128n)-1n,Sn=[["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]],hn=[["::/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]],En=/^(0|[1-9][0-9]{0,2})$/,gn=/^[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(!En.test(r))return null;let i=Number(r);if(i>255)return null;t=t*256+i}return t},we=(e,n)=>{if(e==="")return[];let t=e.split(":"),r=[];for(let i=0;i<t.length;i+=1){let o=t[i];if(i===t.length-1&&o.includes(".")){let a=ke(o);if(a===null)return null;r.push(a>>>16,a&65535);continue}if(!gn.test(o))return null;r.push(Number.parseInt(o,16))}return r.length<=n?r:null},yn=e=>{let n=e.split("::");if(n.length>2)return null;let t=we(n[0],8),r=n.length===2?we(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 o=[...t,...Array(8-i).fill(0),...r],a=0n;for(let s of o)a=a<<16n|BigInt(s);return a},C=e=>{if(typeof e=="string"){if(e.includes(":")){let r=yn(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>An)throw new Error(`${e} is not an address`);return n>BigInt(4294967295)?[n,!0]:[Number(n),!1]},Cn=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 o=e.slice(0,t).join(":"),a=e.slice(t+r).join(":");return`${o}::${a}`},P=(e,n)=>{if(!n){let a=k(e),s=a.split(".");return[a,a,`${[...s].reverse().join(".")}.in-addr.arpa`]}let t=Cn(e),i=`${[...e.toString(16).padStart(32,"0")].reverse().join(".")}.ip6.arpa`;if(t.slice(0,5).every(a=>a===0)&&t[5]===65535){let a=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))}:${a}`,`${l.join(":")}:${a}`,i]}return[Be(t.map(a=>a.toString(16)),t),t.map(a=>a.toString(16).padStart(4,"0")).join(":"),i]},y=(e,n)=>P(e,n)[0],Ne=(e,n)=>e.map(([t,r])=>{let[i,o]=t.split("/"),a=BigInt(C(i)[0]),s=BigInt((n?128:32)-Number(o));return[a,a+((1n<<s)-1n),r]}).sort((t,r)=>t[0]<r[0]?-1:1),Rn=[Ne(Sn,!1),Ne(hn,!0)],Pe=(e,n)=>{let t=Rn[n?1:0],r=BigInt(e),i=0,o=t.length;for(;i<o;){let s=i+o>>1;t[s][0]<=r?i=s+1:o=s}let a=t[i-1];return a&&r<=a[1]?a[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?[Q,k(r)]:t>>112n===0x2002n?[X,k(Number(t>>80n&0xffffffffn))]:t>>96n===0x20010000n?[ee,k(~r>>>0)]:t>>32n===0x0064ff9bn<<64n?[bn,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(o=>Number(t>>o&0xffffn).toString(16));return r.every(o=>/^[0-9]+$/.test(o)&&Number(o)>0&&Number(o)<256)?r.join("."):null},Le=(e,n)=>{if(n)return[null,null,null];let t=BigInt(e);return[y(0xffff00000000n|t,!0),y(0x2002n<<112n|t<<80n,!0),y(0x0064ff9bn<<96n|t,!0)]},_e=(e,n,t)=>{let r=BigInt((n?128:32)-t),i=BigInt(e),o=i>>r<<r,a=i|(1n<<r)-1n,s=y(n?o:Number(o),n);return[`${s}/${t}`,s,y(n?a:Number(a),n)]};var ne=e=>new Set(e.split(" ")),Mn=ne("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"),Dn=ne("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"),In=ne("the llc ltd gmbh sarl ooo zao pao ao oao jsc ojsc pjsc uab sia tov pt pp ps ip spolka"),Un=new Set([...Mn,...Dn,""]),wn=[".com",".net",".org",".io"],Bn=/^.*\b(?:trading as|d\/b\/a|dba)\b\s*/i,Nn=/\(.*?\)|,.*|\s+-\s+.*/g,ve=/[^0-9a-z]/g,kn=/^AS\d+$/i,Pn=/-(AS|AP|US|UK|DE|FR|IN|CN|JP|EU|NET|COM|ORG)$/,Gn=/(NET|COM|TEL|WEB|LINE)$/,Ln=/[/?#]/,_n=/^["']+|["']+$/g,xe=new Set(["hosting","cdn","content"]),vn=new Set(["residential","cellular"]),Ke=new Set(["public_proxy","residential_proxy"]),xn={"national capital":"country","regional capital":"region","district capital":"district"},Kn=8192,Oe=e=>{let n=new Map;return t=>{let r=n.get(t);if(r!==void 0)return r;n.size>=Kn&&n.clear();let i=e(t);return n.set(t,i),i}},On=/^\p{L}+$/u,Fe=e=>{let n=e.indexOf(`
2
+ `);return[e.slice(0,n),e.slice(n+1)]},Fn=e=>e.length>4&&On.test(e)&&e===e.toUpperCase()&&e!==e.toLowerCase(),Vn=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),Ve=e=>e.split(" ").map(n=>Fn(n)?Vn(n):n).join(" "),Hn=e=>{let t=e.replace(Bn,"").replace(Nn,"").split(/\s+/).map(o=>o.replace(_n,"")).filter(Boolean);for(;t.length>1&&Un.has(t[t.length-1].toLowerCase().replace(ve,""));)t.pop();for(;t.length&&In.has(t[0].toLowerCase().replace(ve,""));)t.shift();let r=t.join(" "),i=wn.find(o=>r.toLowerCase().endsWith(o));return Ve(i?r.slice(0,r.length-i.length):r)},Wn=e=>{let t=(e.split(/\s+/)[0]??"").replace(Pn,"");return kn.test(t)?"":(t.length>4&&t===t.toUpperCase()&&(t=t.replace(Gn,"")),Ve(t))},zn=Oe(e=>{let[n,t]=Fe(e),r=Hn(t),i=Wn(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)=>zn(`${e}
3
+ ${n}`),$n=Oe(e=>{let[n,t]=Fe(e),i=((n.split("//").pop()??"").split(Ln)[0].split("@").pop()??"").split(":")[0],o=(t.split("@")[1]??"").toLowerCase(),a=(i||o).toLowerCase().replace(/^www\./,""),s=a.split(".").pop()??"";return s.length>2&&o.split(".")[0]===s&&a!==o?o:a}),We=(e,n)=>$n(`${e}
4
+ ${n}`),ze=(e,n)=>e==="public_proxy"&&vn.has(n)?["residential_proxy","inferred"]:[e,""],$e=e=>xn[e]??"";var te=`
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 Pe=`
255
+ `);var Ze=`
256
256
  Africa/Abidjan|GMT
257
257
  Africa/Accra|GMT
258
258
  Africa/Addis_Ababa|EAT
@@ -621,5 +621,5 @@ W-SU|MSK
621
621
  WET|WET|WEST
622
622
  Zulu|UTC
623
623
  `.trim().split(`
624
- `);var Ln=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(" ")),Pn=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(" ")),R=864e5,_n=7*R,Y=400*R,U=6e4,Kn=new Map(j.map(e=>{let[n,t="",r=""]=e.slice(8).split("|");return[e.slice(0,2),[n,t,r,e.slice(2,5)]]})),xn=new Map(j.map(e=>[e.slice(0,2),e.slice(5,8)])),_e=e=>e||null,vn=e=>e.length!==2||!/^[a-zA-Z]{2}$/.test(e)?"":[...e.toUpperCase()].map(n=>String.fromCodePoint(127462+n.charCodeAt(0)-65)).join(""),Ke=new Map,Fe=e=>{if(!e)return null;let n=Ke.get(e);if(n!==void 0)return n;let t=Kn.get(e),r={code:e,name:t?t[0]:null,official:t?_e(t[1]):null,common:t?_e(t[2]):null,iso3:t?t[3]:null,numeric:xn.get(e)??null,flag:vn(e)||null,european_union:Ln.has(e),driving_side:Pn.has(e)?"left":"right"};return Ke.set(e,r),r},On=new Map(Pe.map(e=>{let[n,t,r=t]=e.split("|");return[n,[t,r]]})),xe=new Map,Fn=e=>{let n=xe.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 xe.set(e,t),t},He=(e,n)=>{let t={};for(let o of e.formatToParts(n))t[o.type]=o.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))},J=(e,n)=>Math.round((He(e,n)-n)/U),M=(e,n)=>{let t=J(e,n-R),r=J(e,n+R);if(t===r)return t;let i=[t,r].filter(o=>J(e,n-o*U)===o);return i.length?Math.max(...i):Math.min(t,r)},q=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")}`},ve=(e,n)=>new Date(n).toISOString().slice(0,19)+q(M(e,n)),Hn=(e,n,t,r)=>{for(;t-n>1e3;){let i=n+Math.floor((t-n)/2);M(e,i)===r?n=i:t=i}return Math.floor((t+3e4)/U)*U},Vn=(e,n)=>{let t=n+Y,r=[],i=n-Y,o=M(e,i);for(;i<t;){let a=i+_n,s=M(e,a);s!==o&&r.push(Hn(e,i,a,o)),o=s,i=a}return r},O=new Map,Wn=(e,n,t)=>{let r=Math.floor(t/R)*R+R/2,i=`${e}@${r}`,o=O.get(i);if(o!==void 0)return o;O.size>2048&&O.clear();let a=Vn(n,r),s=[M(n,r-Y),...a.map(f=>M(n,f))],l=Math.min(...s),c=Math.max(...s),u=[l,null,null];for(let f=0;l!==c&&f+1<a.length;f+=1){let[T,m]=[a[f],a[f+1]];if(M(n,T)===c&&m>=r){u=[l,T,m];break}}return O.set(i,u),u},zn=(e,n,t)=>{let r=On.get(e);if(r)return t?r[1]:r[0];let i=Math.abs(n),o=String(Math.floor(i/60)).padStart(2,"0"),a=i%60;return`${n<0?"-":"+"}${o}`+(a?String(a).padStart(2,"0"):"")},Oe=(e,n)=>{let t=Fn(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=He(t,n),i=Math.round((r-n)/U),[o,a,s]=Wn(e,t,r);return{timezone:e,abbreviation:zn(e,i,i!==o),local:new Date(r).toISOString().slice(0,19)+q(i),utc_offset:q(i),is_dst:i!==o,dst_start:a===null?null:ve(t,a),dst_end:s===null?null:ve(t,s)}},F=new Map,Ve=(e,n)=>{if(!e)return null;if(n)return Oe(e,n.getTime());let t=Math.floor(Date.now()/1e3),r=`${e}@${t}`,i=F.get(r);if(i!==void 0)return i;F.size>1024&&F.clear();let o=Oe(e,t*1e3);return F.set(r,o),o};var Ze=(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},X=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]),ee=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]),Zn=Ze(X,0),$n=Ze(ee,3),jn=[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],Jn=[1,4,3,2,2,2,2,2,2,...Array(37).fill(1),...Array(7).fill(-1)],Yn=[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],E=e=>{throw new Error(`zstd: ${e}`)},D=e=>{let n=0;for(;1<<n<=e;)n+=1;return n-1},ne=(e,n,t)=>{let r=1<<t,i={log:t,symbols:new Uint8Array(r),bits:new Uint8Array(r),next:new Uint16Array(r)},o=new Uint16Array(256),a=r;for(let c=0;c<n;c+=1)e[c]<0?(o[c]=1,a-=1,i.symbols[a]=c):o[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>=a)}l!==0&&E("the symbols do not spread over the table");for(let c=0;c<r;c+=1){let u=o[i.symbols[c]]++,f=t-D(u);i.bits[c]=f,i.next[c]=(u<<f)-r}return i},w=(e,n,t)=>{let r=(e[n]&15)+5;r>t&&E("an entropy table is too accurate");let i=new Int16Array(256),o=(n<<3)+4,a=1<<r,s=-1;for(;s<255&&a>0;){let l=D(a+1),c=o>>3,u=(1<<l+1)-1,f=(e[c]|e[c+1]<<8|e[c+2]<<16)>>(o&7),T=f&(1<<l)-1,m=u-a-1,d=f&u;if(T<m?(o+=l,d=T):(o+=l+1,d>(1<<l)-1&&(d-=m)),d-=1,s+=1,i[s]=d,a-=d<0?-d:d,d!==0)continue;let p=3;for(;p===3;){let A=o>>3;p=(e[A]|e[A+1]<<8)>>(o&7)&3,o+=2,s+=p}}return(s>255||a!==0)&&E("the entropy counts do not add up"),[ne(i,s+1,r),o+7>>3]},We=(e,n)=>{let t=0;for(let c=0;c<n;c+=1){let u=e[c];u>11&&E("a huffman weight is out of range"),t+=u?1<<u-1:0}let r=D(t)+1,i=1<<r,o=i-t;o&o-1&&E("the huffman weights do not add up"),e[n]=D(o)+1;let a=new Uint32Array(13);for(let c=0;c<=n;c+=1)e[c]=e[c]&&r+1-e[c],a[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+a[c]*(1<<r-c),s.bits.fill(c,u,l[c-1])}l[0]!==i&&E("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},$e=(e,n)=>{let t=e[n],r=new Uint8Array(256);if(t>=128){let p=t-127;for(let A=0;A<p;A+=2){let g=e[n+1+(A>>1)];r[A]=g>>4,r[A+1]=g&15}return[We(r,p),n+1+(p+1>>1)]}let[i,o]=w(e,n+1,6),a=n+1+t,s=e[a-1];s||E("a huffman bitstream ends on a zero byte");let l=o<<3,c=(a<<3)-8+D(s),u=0,f=0,T=0,m=i.log,d=i.log;for(;c-=m,!(c<l);){let p=c>>3;if(f+=(e[p]|e[p+1]<<8)>>(c&7)&(1<<m)-1,r[u]=i.symbols[f],u+=1,c-=d,c<l)break;p=c>>3,T+=(e[p]|e[p+1]<<8)>>(c&7)&(1<<d)-1,r[u]=i.symbols[T],u+=1,m=i.bits[f],f=i.next[f],d=i.bits[T],T=i.next[T]}return[We(r,u),a]},ze=(e,n,t)=>{let r=e[e.length-1];r||E("a literal bitstream ends on a zero byte");let i=(1<<n.maxBits)-1,o=-n.maxBits,a=n.maxBits,s=(e.length<<3)-8+D(r)-a,l=0,c=0;for(;s>o&&c<t.length;){let u=s>>3,f=(e[u]|e[u+1]<<8|e[u+2]<<16)>>(s&7);l=(l<<a|f)&i,t[c]=n.symbols[l],c+=1,a=n.bits[l],s-=a}(s!==o||c!==t.length)&&E("a literal bitstream is the wrong length")},qn=(e,n,t,r)=>{if(!r){ze(e,n,t);return}let i=t.length+3>>2,o=6;for(let a=0;a<4;a+=1){let s=e[a<<1]|e[(a<<1)+1]<<8,l=a===3?e.length:o+s,c=i*a;ze(e.subarray(o,l),n,t.subarray(c,c+i)),o=l}},Qn=()=>{let e=(n,t)=>{let r=new Int16Array(256);return r.set(n),ne(r,n.length,t)};return{literal:e(jn,6),match:e(Jn,6),offset:e(Yn,5)}},Q=Qn(),Xn=e=>ne(Int16Array.of(...Array(e).fill(0),1),e+1,0),et=(e,n,t)=>{let r=e[n],i=r&3,o=r>>2&3,a=r>>4,s=0,l=n;if(i<2)return o&1?(a|=e[l+1]<<4,l+=1,o&2&&(a|=e[l+1]<<12,l+=1)):a=r>>3,l+=1,i===0?[{data:e.subarray(l,l+a),size:a},l+a]:[{data:new Uint8Array(a).fill(e[l]),size:a},l+1];if(o<2?(a|=(e[n+1]&63)<<4,s=e[n+1]>>6|e[n+2]<<2,l=n+3):o===2?(a|=e[n+1]<<4|(e[n+2]&3)<<12,s=e[n+2]>>2|e[n+3]<<6,l=n+4):(a|=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,T]=$e(e,l);t.huffman=f,s-=T-l,l=T}let c=t.huffman??E("literals without a huffman table"),u=new Uint8Array(a);return qn(e.subarray(l,l+s),c,u,o!==0),[{data:u,size:a},l+s]},nt=(e,n,t)=>{let r=e[n];r&3&&E("a sequence header reserves bits that are set");let i=t.tables,o=[i?.match??null,i?.offset??null,i?.literal??null],s=[...[Q.match,Q.offset,Q.literal]],l=n+1;for(let u=2;u>-1;u-=1){let f=r>>(u<<1)+2&3;if(f===1)s[u]=Xn(e[l]),l+=1;else if(f===2){let[T,m]=w(e,l,9-(u&1));s[u]=T,l=m}else f===3&&(s[u]=o[u]??E("a repeated table was never sent"))}let c={match:s[0],offset:s[1],literal:s[2]};return t.tables=c,[c,l]},tt=(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]},rt=(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},it=(e,n,t,r,i,o,a,s)=>{let[l]=nt(e,n,o),c=e[t-1];c||E("a sequence bitstream ends on a zero byte");let u=(g,I)=>{let y=g>>3,B=(e[y]|e[y+1]<<8|e[y+2]<<16|e[y+3]<<24)>>>(g&7);return I===32?B:B&(1<<I)-1},f=(t<<3)-8+D(c)-l.literal.log,T=u(f,l.literal.log);f-=l.offset.log;let m=u(f,l.offset.log);f-=l.match.log;let d=u(f,l.match.log),p=0,A=s;for(let g=0;g<r;g+=1){let I=l.literal.symbols[T],y=l.literal.bits[T],B=l.match.symbols[d],be=l.match.bits[d],H=l.offset.symbols[m],me=l.offset.bits[m];f-=H;let en=(1<<H)+u(f,H);f-=ee[B];let pe=$n[B]+u(f,ee[B]);f-=X[I];let K=Zn[I]+u(f,X[I]);f-=y,T=l.literal.next[T]+u(f,y),f-=be,d=l.match.next[d]+u(f,be),f-=me,m=l.offset.next[m]+u(f,me);let de=rt(en,K,o.offsets);a.set(i.data.subarray(p,p+K),A),p+=K,A+=K,de>A&&E("a match reaches before the window");for(let x=0;x<pe;x+=1)a[A+x]=a[A+x-de];A+=pe}return a.set(i.data.subarray(p,i.size),A),A+i.size-p},at=(e,n,t,r,i,o)=>{let[a,s]=et(e,n,r),[l,c]=tt(e,s);return l===0?(i.set(a.data.subarray(0,a.size),o),o+a.size):it(e,c,t,l,a,r,i,o)},ot=e=>{((e[0]|e[1]<<8|e[2]<<16)!==3126568||e[3]!==253)&&E("not a zstd frame");let t=e[4],r=t>>5&1,i=t>>6,o=6-r+(t&3?(t&3)===3?4:t&3:0),a=i?1<<i:r,s=0;for(let l=0;l<a;l+=1)s+=e[o+l]*256**l;return[o+a,a?s+(i===1?256:0):0]},st=(e,n)=>{if(n<=e.length)return e;let t=new Uint8Array(Math.max(n,e.length*2));return t.set(e),t},te=(e,n)=>{let[t,r]=ot(e),i=n?n.content:new Uint8Array(0),o={huffman:n?.huffman??null,tables:n?.tables??null,offsets:Int32Array.from(n?n.offsets:[1,4,8])},a=new Uint8Array(i.length+(r||65536));a.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,a=st(a,s+f+(1<<17)),u===0?(a.set(e.subarray(l,l+f),s),s+=f,l+=f):u===1?(a.fill(e[l],s,s+f),s+=f,l+=1):u===2?(s=at(e,l,l+f,o,a,s),l+=f):E("a block has no known type"),c&1)break}return a.subarray(i.length,s)},re=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]=$e(e,8),[i,o]=w(e,r,8),[a,s]=w(e,o,9),[l,c]=w(e,s,9);return{id:n.getUint32(4,!0),content:e.subarray(c+12),huffman:t,tables:{literal:l,match:a,offset:i},offsets:[0,1,2].map(u=>n.getUint32(c+u*4,!0))}};var G="PLEVIN\0",je=1,lt=16384,ct=1e4,ut=255,ie=16384,ft=["place","network","abuse","prefix","rpki","roas"],Tt=new Set(["place","network","abuse"]),Je="network",bt={rpki:"rpki","place.granularity":"granularity","city.timezone":"timezones","city.type":"place_types","operator.category":"categories","abuse.user_type":"categories","abuse.service":"services","abuse.evidence":"evidence"},mt=e=>e===ut?null:e/100,pt={"abuse.risk":mt,"abuse.is_anycast":Boolean,"abuse.is_satellite":Boolean},se=new TextDecoder,dt=new Uint8Array(Uint16Array.of(1).buffer)[0]===0,C=class{held=new Map;build;limit;constructor(n,t=lt){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()}},Te=(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}},le=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let[o,a]=Te(e,n);r.push(o),n=a}return[r,n]},ae=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let o=0n,a=0n;for(;;){let s=e[n];if(n+=1,o|=BigInt(s&127)<<a,s<128)break;a+=7n}r.push(o)}return[r,n]},k=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 a=0;a<=this.blocks;a+=1)this.offsets[a]=r.getUint32(12+a*4,!0);let o=12+4*(this.blocks+1);this.keys=[];for(let a=0;a<this.blocks;a+=1){let s=0n;for(let l=0;l<this.width;l+=1)s=s<<8n|BigInt(n[o+a*this.width+l]);this.keys.push(s)}o+=this.width*this.blocks,this.dictionary=i?re(n.subarray(o,o+i)):null,this.data=n.subarray(o+i),this.cache=new C(a=>this.block(a)),this.groups=new C(a=>this.values(a))}raw(n){let t=this.data.subarray(this.offsets[n],this.offsets[n+1]);return te(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}`)}},At={1:[Uint8Array,Int8Array],2:[Uint16Array,Int16Array],4:[Uint32Array,Int32Array],8:[BigUint64Array,BigInt64Array]},ce=class extends k{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(dt&&r>1)for(let o=0;o+r<=i.length;o+=r)i.subarray(o,o+r).reverse();return new At[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}},ue=class extends k{block(n){let t=this.raw(n),r=this.count-n*this.perBlock,i=Math.min(this.fanout,Math.ceil(r/this.perGroup))-1,[o,a]=le(t,0,i),s=[a];for(let l of o)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),o=i[n%this.fanout],a=[],s=new Uint8Array(0);for(let l=0;l<this.held(n);l+=1){let c=r[o],u=r[o+1];o+=2,u>127&&([u,o]=Te(r,o-1));let f=new Uint8Array(c+u);f.set(s.subarray(0,c)),f.set(r.subarray(o,o+u),c),o+=u,s=f,a.push(se.decode(f))}return a}at(n){if(!n)return"";let t=Math.floor((n-1)/this.perGroup);return this.groups.get(t)[(n-1)%this.perGroup]}},fe=class extends k{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]=Te(t,0),o=Math.ceil(r/this.perGroup),[a,s]=ae(t,i,o-1),l=[this.keys[n]];for(let T of a)l.push(l[l.length-1]+T);let[c,u]=le(t,s,o-1),f=[u];for(let T of c)f.push(f[f.length-1]+T);return[l,f,t]}values(n){let t=Math.floor(n/this.fanout),[r,i,o]=this.cache.get(t),a=this.held(n),s=r[n%this.fanout],[l,c]=this.big?ae(o,i[n%this.fanout],a-1):le(o,i[n%this.fanout],a-1);if(!this.big){let T=[Number(s)];for(let m of l)T.push(T[T.length-1]+m);return T}let u=[s>>BigInt(this.hostBits)];for(let T of l)u.push(u[u.length-1]+T);let[f]=ae(o,c,a);return u.map((T,m)=>T<<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=oe(this.keys,this.big?t:BigInt(t))-1;if(r<0)return null;let[i]=this.cache.get(r),o=r*this.fanout+oe(i,this.big?t:BigInt(t))-1,a=oe(this.groups.get(o),t)-1;return a<0?null:o*this.perGroup+a}holds(n){let t=this.row(n);return t!==null&&this.at(t)===n?t:null}},oe=(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},St={plain:[],text:[],degrees:[],coded:[],links:[]},L=class{head;sections={};reads={};tables={};families;rows={};located;answers=new C(n=>this.answer(n));constructor(n){let t=new DataView(n.buffer,n.byteOffset,n.byteLength);if(se.decode(n.subarray(0,G.length))!==G||n[G.length]!==je)throw new Error(`not a plevin ${je} database`);let i=t.getUint32(G.length+1,!0),o=G.length+5;this.head=JSON.parse(se.decode(n.subarray(o,o+i)));let a=o+i;for(let[s,l]of Object.entries(this.head.sections)){let c=a+l.offset,u=n.subarray(c,c+l.bytes),f=l.encoding==="index"?fe:l.encoding==="front"?ue:ce;this.sections[s]=new f(u,l)}Object.assign(this.reads,pt);for(let[s,l]of Object.entries(bt)){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 C(s=>this.locateIn(4,s)),6:new C(s=>this.locateIn(6,s))}}linked(n,t){return this.rows[n]??=new C(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,o,a]=r;this.tables[o]??={plain:[],text:[],degrees:[],coded:[],links:[]};let s=this.tables[o],l=this.reads[`${o}.${a}`];i==="link"?s.links.push([a,t]):l?s.coded.push([a,t,l]):t.read==="text"?s.text.push([a,t,this.sections.strings]):t.read?s.degrees.push([a,t]):s.plain.push([a,t])}}family(n){let t=`spine.v${n}`,r=`hosts.v${n}`;return{index:this.sections[t]??null,columns:ft.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]??St,i={};for(let[o,a]of r.plain)i[o]=a.at(t);for(let[o,a,s]of r.text)i[o]=s.at(a.at(t));for(let[o,a]of r.degrees)i[o]=a.at(t)/ct;for(let[o,a,s]of r.coded)i[o]=s(a.at(t));for(let[o,a]of r.links){let s=a.at(t);s&&(i[o]=this.linked(o,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%ie,o=(r-i)/ie,a={};for(let[s,l,c]of this.families[t].columns){let u=i&&s==="abuse"?i:l.at(o);Tt.has(s)?u&&(a[s]=this.linked(s,u-1)):(a[Je]??={},a[Je][s]=c?c(u):u)}return a}locateIn(n,t){let{index:r,hosts:i,records:o}=this.families[n],a=r===null?null:r.row(t);if(a===null)return null;if(i===null||o===null)return[n,a,0];let s=i.holds(t);return[n,a,s===null?0:o.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*ie+i)*2+(t===6?1:0))}};var Ye=1024,Bt=1n<<128n,b=e=>e?String(e):null,S=e=>e?Number(e):null,_=e=>e==null?null:Number(e),h=(e,n)=>e?.[n],Nt=e=>e?{code:S(e.code),label:b(e.label)}:null,Ut=e=>e?{id:S(e.id),code:b(e.code),name:b(e.name)}:null,wt=e=>e?{id:S(e.id),code:b(e.code),iso:b(e.iso),name:b(e.name),type:b(e.type)}:null,Qe=e=>{let n=new WeakMap;return(t,...r)=>{if(!t)return null;let i=r.join(`
625
- `),o=n.get(t);o||(o=new Map,n.set(t,o));let a=o.get(i);if(a!==void 0)return a;let s=e(t,...r);return o.set(i,s),s}},Xe=Qe(e=>{let n=String(e.type??"");return{id:S(e.id),name:b(e.name),ascii:b(e.ascii),country:b(e.country),population:S(e.population),elevation:S(e.elevation),postal:b(e.postal),postal_partial:b(e.postal_partial),timezone:b(e.timezone),type:b(n),capital:b(Le(n)),region:wt(h(e,"region")),district:Ut(h(e,"district")),metro:Nt(h(e,"metro"))}}),Gt=Qe((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(Ge(r,i)),website:b(r),category:b(e.category),tier:S(e.tier),peering:S(e.peering),scope:b(e.scope),rir:b(e.rir),since:S(e.since),street:b(e.street),state:b(e.state),postal:b(e.postal),country:b(e.country),abuse_email:b(i),city:Xe(h(e,"city"))}}),kt=(e,n)=>{if(!e&&!n)return null;let t=e??{};return{user_type:b(n),user_count:S(t.user_count),mcc:S(t.mcc),mnc:S(t.mnc),is_mobile:n==="cellular"}},Lt=(e,n,t)=>{if(!e&&!n)return null;let r=e??{},[i,o]=ke(String(r.service??""),t);return{name:b(r.name),service:b(i),evidence:b(String(r.evidence??"")||o),risk:_(r.risk),network_risk:n?_(n.risk):null,last_seen_days:S(r.last_seen_days),is_anycast:!!r.is_anycast,is_satellite:!!r.is_satellite,is_hosting_provider:De.has(t),is_proxy:Ie.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}},Pt=e=>{if(!e)return null;let n=Xe(h(e,"city")),t=n?.country??"",r=n?.timezone??"";return[{lat:_(e.lat),lon:_(e.lon),accuracy:S(e.accuracy),confidence:S(e.confidence),granularity:b(e.granularity),city:n,country:Fe(t)},r]},_t=(e,n)=>{if(!e)return null;let t=String(e.handle??"");return[{asn:S(e.asn),handle:b(t),rpki:b(e.rpki),roas:_(e.roas),operator:Gt(h(e,"operator"),t),carrier:kt(h(e,"carrier"),n)},S(e.prefix)]},Kt=(e,n)=>String(e?.user_type||n?.user_type||""),xt=e=>{let n=h(e,"network"),t=h(n,"abuse"),r=Kt(h(e,"abuse"),t);return[Pt(h(e,"place")),_t(n,r),Lt(h(e,"abuse"),t,r)]},vt=(e,n,t)=>{let[r,i]=e,[o,a,s]=i===null?[null,null,null]:Re(n,t,i);return{...r,prefix:i,cidr:o,start:a,end:s}},qe=(e,n,t,r)=>{let[i,o,a]=Z(e,n),s=Ce(e,n),[l,c]=ye(e,n),[u,f,T]=t??[null,null,null];return{ip:i,version:n?6:4,number:e,compressed:i,expanded:o,arpa:a,is_global:s===0,is_bogon:s!==0,is_private:(s&1)!==0,is_loopback:(s&2)!==0,is_multicast:(s&4)!==0,is_reserved:(s&8)!==0,is_link_local:(s&16)!==0,is_unique_local:(s&32)!==0,is_documentation:(s&64)!==0,is_shared:(s&128)!==0,is_benchmark:(s&256)!==0,is_ipv4_mapped:l===V,is_6to4:l===W,is_teredo:l===z,tunnel:l,embedded_ipv4:c,found:t!==null,place:u===null?null:{...u[0],time:Ve(u[1],r)},network:f===null?null:vt(f,e,n),abuse:T}},P=class{file;kept=new Map;results=new Map;second=0;constructor(n){this.file=new L(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>=Ye*16&&this.kept.clear();let i=xt(this.file.answerFor(n));return this.kept.set(t,i),i}lookup(n,t){let[r,i]=v(n);if(t){let u=this.file.locate(r,i);return qe(r,i,u&&this.storedFor(u),t)}let o=Math.floor(Date.now()/1e3);o!==this.second&&(this.second=o,this.results.clear());let a=i?r+Bt:BigInt(r),s=this.results.get(a);if(s!==void 0)return s;this.results.size>=Ye&&this.results.clear();let l=this.file.locate(r,i),c=qe(r,i,l&&this.storedFor(l));return this.results.set(a,c),c}row(n){let[t,r]=v(n);return this.file.rowFor(t,r)}},Qt=async e=>{if(e instanceof Uint8Array)return new P(e);if(e instanceof ArrayBuffer)return new P(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 P(new Uint8Array(await n.arrayBuffer()))};export{L as File,P as Plevin,te as decompress,re as loadDictionary,Qt as open};
624
+ `);var jn=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(" ")),Jn=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(" ")),D=864e5,Yn=7*D,ie=400*D,L=6e4,qn=new Map(te.map(e=>{let[n,t="",r=""]=e.slice(8).split("|");return[e.slice(0,2),[n,t,r,e.slice(2,5)]]})),Qn=new Map(te.map(e=>[e.slice(0,2),e.slice(5,8)])),je=e=>e||null,Xn=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=qn.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:Qn.get(e)??null,flag:Xn(e)||null,european_union:jn.has(e),driving_side:Jn.has(e)?"left":"right"};return Je.set(e,r),r},et=new Map(Ze.map(e=>{let[n,t,r=t]=e.split("|");return[n,[t,r]]})),Ye=new Map,nt=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 o of e.formatToParts(n))t[o.type]=o.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))},re=(e,n)=>Math.round((en(e,n)-n)/L),I=(e,n)=>{let t=re(e,n-D),r=re(e,n+D);if(t===r)return t;let i=[t,r].filter(o=>re(e,n-o*L)===o);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)),tt=(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},rt=(e,n)=>{let t=n+ie,r=[],i=n-ie,o=I(e,i);for(;i<t;){let a=i+Yn,s=I(e,a);s!==o&&r.push(tt(e,i,a,o)),o=s,i=a}return r},j=new Map,it=(e,n,t)=>{let r=Math.floor(t/D)*D+D/2,i=`${e}@${r}`,o=j.get(i);if(o!==void 0)return o;j.size>2048&&j.clear();let a=rt(n,r),s=[I(n,r-ie),...a.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<a.length;f+=1){let[d,p]=[a[f],a[f+1]];if(I(n,d)===c&&p>=r){u=[l,d,p];break}}return j.set(i,u),u},at=(e,n,t)=>{let r=et.get(e);if(r)return t?r[1]:r[0];let i=Math.abs(n),o=String(Math.floor(i/60)).padStart(2,"0"),a=i%60;return`${n<0?"-":"+"}${o}`+(a?String(a).padStart(2,"0"):"")},Qe=(e,n)=>{let t=nt(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),[o,a,s]=it(e,t,r);return{timezone:e,abbreviation:at(e,i,i!==o),local:new Date(r).toISOString().slice(0,19)+ae(i),utc_offset:ae(i),is_dst:i!==o,dst_start:a===null?null:qe(t,a),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 o=Qe(e,t*1e3);return J.set(r,o),o};var ot=["1.1.1.1","8.8.8.8","9.9.9.9"],st=["https://cloudflare-dns.com/dns-query","https://dns.google/dns-query"],oe=2e3,lt=4096,ct=36e5,ut=1232,ft=new Set([0,3]),U={A:1,CNAME:5,SOA:6,PTR:12,AAAA:28},dt=(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),o=new DataView(i.buffer);o.setUint16(0,Math.floor(Math.random()*65536)),o.setUint16(2,288),o.setUint16(4,1),o.setUint16(10,1);let a=12;for(let s of t){i[a]=s.length;for(let l=0;l<s.length;l+=1)i[a+1+l]=s.charCodeAt(l);a+=s.length+1}return a+=1,o.setUint16(a,U[n]),o.setUint16(a+2,1),o.setUint16(a+5,41),o.setUint16(a+7,ut),i},x=(e,n)=>{let t=[],r=n,i=-1;for(let o=0;o<128;o+=1){let a=e[r];if(a>=192){i<0&&(i=r+2),r=(a&63)<<8|e[r+1];continue}if(r+=1,!a)return[t.join("."),i<0?r:i];t.push(String.fromCharCode(...e.slice(r,r+a)).toLowerCase()),r+=a}throw new Error("name loops")},mt=(e,n,t)=>{if(t===U.A){let r=e.slice(n,n+4);return y((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 y(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""},Tt=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 a=0;a<r[0];a+=1)i=x(e,i)[1]+4;let o=[];for(let a of r.slice(1)){let s=[];for(let l=0;l<a;l+=1){let[c,u]=x(e,i),f=n.getUint16(u),d=n.getUint16(u+8);s.push({name:c,kind:f,data:mt(e,u+10,f)}),i=u+10+d}o.push(s)}return{code:t&15,authentic:(t&32)!==0,truncated:(t&512)!==0,answer:o[0],authority:o[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),se=e=>{try{let n=Tt(e);return ft.has(n.code)?n:null}catch{return null}},le=async e=>await import(e),pt=()=>typeof process<"u"&&!!process.versions?.node,tn=null,bt=async()=>(tn??=(async()=>{let e=[];try{let{getServers:t}=await le("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,...ot])]})(),tn),At=async(e,n)=>{let{connect:t}=await le("node:net");return new Promise(r=>{let i=t(53,e),o=[],a=0,s=l=>{i.destroy(),r(l)};i.setTimeout(oe,()=>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(o.push(l),a+=l.length,a<2)return;let c=new Uint8Array(a),u=0;for(let d of o)c.set(d,u),u+=d.length;let f=new DataView(c.buffer).getUint16(0);a>=f+2&&s(se(c.slice(2,f+2)))})})},St=async(e,n)=>{let{createSocket:t}=await le("node:dgram"),r=await bt();return new Promise(i=>{let o=r.map(d=>t(d.includes(":")?"udp6":"udp4")),a=null,s=o.length,l=!1,c=d=>{if(!l){l=!0,clearTimeout(u);for(let p of o)p.close();i(d)}},u=setTimeout(()=>c(a),oe),f=async(d,p)=>{s-=1;let T=se(d);if(T?.truncated&&(T=await At(p,e)),T&&(!n||K(T,n,"any").length))return c(T);a??=T,s||c(a)};o.forEach((d,p)=>{let T=r[p];d.on("error",()=>{s-=1,s||c(a)}),d.on("message",b=>{f(b,T)}),d.send(e,53,T)}),o.length||c(null)})},ht=async(e,n)=>{let t=st.map(async i=>{let o=await fetch(i,{method:"POST",headers:{"content-type":"application/dns-message"},body:e,signal:AbortSignal.timeout(oe)});if(!o.ok)throw new Error(`${o.status} from ${i}`);let a=se(new Uint8Array(await o.arrayBuffer()));if(!a)throw new Error(`nothing from ${i}`);return a}),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=dt(e,n);return pt()?St(r,t):ht(r,t)},Et=(e,n)=>{let t=K(e,"SOA","any");if(!t.length)return;let[r,i]=t[0].data.split(" "),o=i.indexOf(".");n.zone=t[0].name,n.zone_primary=r,n.zone_contact=o<0?i:`${i.slice(0,o)}@${i.slice(o+1)}`},gt=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?C(t):[e,n],[o,,a]=P(r,i),[s,l]=await Promise.all([v([a,"PTR",null]),v([a,"SOA","SOA"])]),c=gt(o);c.is_signed=!!s?.authentic,Et(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 p=[..._(f,"CNAME"),..._(d,"CNAME")];c.alias=p[0]??null;let T=[...c.ipv4_addresses,...c.ipv6_addresses];return c.is_confirmed=T.some(b=>BigInt(C(b)[0])===BigInt(r)),c},Y=new Map,ce=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>=lt&&Y.clear(),Y.set(t,[Date.now()+ct,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},fe=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]),de=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]),yt=sn(fe,0),Ct=sn(de,3),Rt=[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],Mt=[1,4,3,2,2,2,2,2,2,...Array(37).fill(1),...Array(7).fill(-1)],Dt=[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],h=e=>{throw new Error(`zstd: ${e}`)},w=e=>{let n=0;for(;1<<n<=e;)n+=1;return n-1},me=(e,n,t)=>{let r=1<<t,i={log:t,symbols:new Uint8Array(r),bits:new Uint8Array(r),next:new Uint16Array(r)},o=new Uint16Array(256),a=r;for(let c=0;c<n;c+=1)e[c]<0?(o[c]=1,a-=1,i.symbols[a]=c):o[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>=a)}l!==0&&h("the symbols do not spread over the table");for(let c=0;c<r;c+=1){let u=o[i.symbols[c]]++,f=t-w(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&&h("an entropy table is too accurate");let i=new Int16Array(256),o=(n<<3)+4,a=1<<r,s=-1;for(;s<255&&a>0;){let l=w(a+1),c=o>>3,u=(1<<l+1)-1,f=(e[c]|e[c+1]<<8|e[c+2]<<16)>>(o&7),d=f&(1<<l)-1,p=u-a-1,T=f&u;if(d<p?(o+=l,T=d):(o+=l+1,T>(1<<l)-1&&(T-=p)),T-=1,s+=1,i[s]=T,a-=T<0?-T:T,T!==0)continue;let b=3;for(;b===3;){let A=o>>3;b=(e[A]|e[A+1]<<8)>>(o&7)&3,o+=2,s+=b}}return(s>255||a!==0)&&h("the entropy counts do not add up"),[me(i,s+1,r),o+7>>3]},an=(e,n)=>{let t=0;for(let c=0;c<n;c+=1){let u=e[c];u>11&&h("a huffman weight is out of range"),t+=u?1<<u-1:0}let r=w(t)+1,i=1<<r,o=i-t;o&o-1&&h("the huffman weights do not add up"),e[n]=w(o)+1;let a=new Uint32Array(13);for(let c=0;c<=n;c+=1)e[c]=e[c]&&r+1-e[c],a[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+a[c]*(1<<r-c),s.bits.fill(c,u,l[c-1])}l[0]!==i&&h("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 b=t-127;for(let A=0;A<b;A+=2){let g=e[n+1+(A>>1)];r[A]=g>>4,r[A+1]=g&15}return[an(r,b),n+1+(b+1>>1)]}let[i,o]=O(e,n+1,6),a=n+1+t,s=e[a-1];s||h("a huffman bitstream ends on a zero byte");let l=o<<3,c=(a<<3)-8+w(s),u=0,f=0,d=0,p=i.log,T=i.log;for(;c-=p,!(c<l);){let b=c>>3;if(f+=(e[b]|e[b+1]<<8)>>(c&7)&(1<<p)-1,r[u]=i.symbols[f],u+=1,c-=T,c<l)break;b=c>>3,d+=(e[b]|e[b+1]<<8)>>(c&7)&(1<<T)-1,r[u]=i.symbols[d],u+=1,p=i.bits[f],f=i.next[f],T=i.bits[d],d=i.next[d]}return[an(r,u),a]},on=(e,n,t)=>{let r=e[e.length-1];r||h("a literal bitstream ends on a zero byte");let i=(1<<n.maxBits)-1,o=-n.maxBits,a=n.maxBits,s=(e.length<<3)-8+w(r)-a,l=0,c=0;for(;s>o&&c<t.length;){let u=s>>3,f=(e[u]|e[u+1]<<8|e[u+2]<<16)>>(s&7);l=(l<<a|f)&i,t[c]=n.symbols[l],c+=1,a=n.bits[l],s-=a}(s!==o||c!==t.length)&&h("a literal bitstream is the wrong length")},It=(e,n,t,r)=>{if(!r){on(e,n,t);return}let i=t.length+3>>2,o=6;for(let a=0;a<4;a+=1){let s=e[a<<1]|e[(a<<1)+1]<<8,l=a===3?e.length:o+s,c=i*a;on(e.subarray(o,l),n,t.subarray(c,c+i)),o=l}},Ut=()=>{let e=(n,t)=>{let r=new Int16Array(256);return r.set(n),me(r,n.length,t)};return{literal:e(Rt,6),match:e(Mt,6),offset:e(Dt,5)}},ue=Ut(),wt=e=>me(Int16Array.of(...Array(e).fill(0),1),e+1,0),Bt=(e,n,t)=>{let r=e[n],i=r&3,o=r>>2&3,a=r>>4,s=0,l=n;if(i<2)return o&1?(a|=e[l+1]<<4,l+=1,o&2&&(a|=e[l+1]<<12,l+=1)):a=r>>3,l+=1,i===0?[{data:e.subarray(l,l+a),size:a},l+a]:[{data:new Uint8Array(a).fill(e[l]),size:a},l+1];if(o<2?(a|=(e[n+1]&63)<<4,s=e[n+1]>>6|e[n+2]<<2,l=n+3):o===2?(a|=e[n+1]<<4|(e[n+2]&3)<<12,s=e[n+2]>>2|e[n+3]<<6,l=n+4):(a|=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??h("literals without a huffman table"),u=new Uint8Array(a);return It(e.subarray(l,l+s),c,u,o!==0),[{data:u,size:a},l+s]},Nt=(e,n,t)=>{let r=e[n];r&3&&h("a sequence header reserves bits that are set");let i=t.tables,o=[i?.match??null,i?.offset??null,i?.literal??null],s=[...[ue.match,ue.offset,ue.literal]],l=n+1;for(let u=2;u>-1;u-=1){let f=r>>(u<<1)+2&3;if(f===1)s[u]=wt(e[l]),l+=1;else if(f===2){let[d,p]=O(e,l,9-(u&1));s[u]=d,l=p}else f===3&&(s[u]=o[u]??h("a repeated table was never sent"))}let c={match:s[0],offset:s[1],literal:s[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]},Pt=(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},Gt=(e,n,t,r,i,o,a,s)=>{let[l]=Nt(e,n,o),c=e[t-1];c||h("a sequence bitstream ends on a zero byte");let u=(g,B)=>{let M=g>>3,N=(e[M]|e[M+1]<<8|e[M+2]<<16|e[M+3]<<24)>>>(g&7);return B===32?N:N&(1<<B)-1},f=(t<<3)-8+w(c)-l.literal.log,d=u(f,l.literal.log);f-=l.offset.log;let p=u(f,l.offset.log);f-=l.match.log;let T=u(f,l.match.log),b=0,A=s;for(let g=0;g<r;g+=1){let B=l.literal.symbols[d],M=l.literal.bits[d],N=l.match.symbols[T],Me=l.match.bits[T],q=l.offset.symbols[p],De=l.offset.bits[p];f-=q;let pn=(1<<q)+u(f,q);f-=de[N];let Ie=Ct[N]+u(f,de[N]);f-=fe[B];let $=yt[B]+u(f,fe[B]);f-=M,d=l.literal.next[d]+u(f,M),f-=Me,T=l.match.next[T]+u(f,Me),f-=De,p=l.offset.next[p]+u(f,De);let Ue=Pt(pn,$,o.offsets);a.set(i.data.subarray(b,b+$),A),b+=$,A+=$,Ue>A&&h("a match reaches before the window");for(let Z=0;Z<Ie;Z+=1)a[A+Z]=a[A+Z-Ue];A+=Ie}return a.set(i.data.subarray(b,i.size),A),A+i.size-b},Lt=(e,n,t,r,i,o)=>{let[a,s]=Bt(e,n,r),[l,c]=kt(e,s);return l===0?(i.set(a.data.subarray(0,a.size),o),o+a.size):Gt(e,c,t,l,a,r,i,o)},_t=e=>{((e[0]|e[1]<<8|e[2]<<16)!==3126568||e[3]!==253)&&h("not a zstd frame");let t=e[4],r=t>>5&1,i=t>>6,o=6-r+(t&3?(t&3)===3?4:t&3:0),a=i?1<<i:r,s=0;for(let l=0;l<a;l+=1)s+=e[o+l]*256**l;return[o+a,a?s+(i===1?256:0):0]},vt=(e,n)=>{if(n<=e.length)return e;let t=new Uint8Array(Math.max(n,e.length*2));return t.set(e),t},Te=(e,n)=>{let[t,r]=_t(e),i=n?n.content:new Uint8Array(0),o={huffman:n?.huffman??null,tables:n?.tables??null,offsets:Int32Array.from(n?n.offsets:[1,4,8])},a=new Uint8Array(i.length+(r||65536));a.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,a=vt(a,s+f+(1<<17)),u===0?(a.set(e.subarray(l,l+f),s),s+=f,l+=f):u===1?(a.fill(e[l],s,s+f),s+=f,l+=1):u===2?(s=Lt(e,l,l+f,o,a,s),l+=f):h("a block has no known type"),c&1)break}return a.subarray(i.length,s)},pe=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,o]=O(e,r,8),[a,s]=O(e,o,9),[l,c]=O(e,s,9);return{id:n.getUint32(4,!0),content:e.subarray(c+12),huffman:t,tables:{literal:l,match:a,offset:i},offsets:[0,1,2].map(u=>n.getUint32(c+u*4,!0))}};var F="PLEVIN\0",cn=1,xt=16384,Kt=1e4,Ot=255,be=16384,Ft=["place","network","abuse","prefix","rpki","roas"],Vt=new Set(["place","network","abuse"]),un="network",Ht={rpki:"rpki","place.granularity":"granularity","city.timezone":"timezones","city.type":"place_types","operator.category":"categories","abuse.user_type":"categories","abuse.service":"services","abuse.evidence":"evidence"},Wt=e=>e===Ot?null:e/100,zt={"abuse.risk":Wt,"abuse.is_anycast":Boolean,"abuse.is_satellite":Boolean},he=new TextDecoder,$t=new Uint8Array(Uint16Array.of(1).buffer)[0]===0,R=class{held=new Map;build;limit;constructor(n,t=xt){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}},Ee=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let[o,a]=Re(e,n);r.push(o),n=a}return[r,n]},Ae=(e,n,t)=>{let r=[];for(let i=0;i<t;i+=1){let o=0n,a=0n;for(;;){let s=e[n];if(n+=1,o|=BigInt(s&127)<<a,s<128)break;a+=7n}r.push(o)}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 a=0;a<=this.blocks;a+=1)this.offsets[a]=r.getUint32(12+a*4,!0);let o=12+4*(this.blocks+1);this.keys=[];for(let a=0;a<this.blocks;a+=1){let s=0n;for(let l=0;l<this.width;l+=1)s=s<<8n|BigInt(n[o+a*this.width+l]);this.keys.push(s)}o+=this.width*this.blocks,this.dictionary=i?pe(n.subarray(o,o+i)):null,this.data=n.subarray(o+i),this.cache=new R(a=>this.block(a)),this.groups=new R(a=>this.values(a))}raw(n){let t=this.data.subarray(this.offsets[n],this.offsets[n+1]);return Te(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}`)}},Zt={1:[Uint8Array,Int8Array],2:[Uint16Array,Int16Array],4:[Uint32Array,Int32Array],8:[BigUint64Array,BigInt64Array]},ge=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($t&&r>1)for(let o=0;o+r<=i.length;o+=r)i.subarray(o,o+r).reverse();return new Zt[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,[o,a]=Ee(t,0,i),s=[a];for(let l of o)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),o=i[n%this.fanout],a=[],s=new Uint8Array(0);for(let l=0;l<this.held(n);l+=1){let c=r[o],u=r[o+1];o+=2,u>127&&([u,o]=Re(r,o-1));let f=new Uint8Array(c+u);f.set(s.subarray(0,c)),f.set(r.subarray(o,o+u),c),o+=u,s=f,a.push(he.decode(f))}return a}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),o=Math.ceil(r/this.perGroup),[a,s]=Ae(t,i,o-1),l=[this.keys[n]];for(let d of a)l.push(l[l.length-1]+d);let[c,u]=Ee(t,s,o-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,o]=this.cache.get(t),a=this.held(n),s=r[n%this.fanout],[l,c]=this.big?Ae(o,i[n%this.fanout],a-1):Ee(o,i[n%this.fanout],a-1);if(!this.big){let d=[Number(s)];for(let p of l)d.push(d[d.length-1]+p);return d}let u=[s>>BigInt(this.hostBits)];for(let d of l)u.push(u[u.length-1]+d);let[f]=Ae(o,c,a);return u.map((d,p)=>d<<BigInt(this.hostBits)|f[p])}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=Se(this.keys,this.big?t:BigInt(t))-1;if(r<0)return null;let[i]=this.cache.get(r),o=r*this.fanout+Se(i,this.big?t:BigInt(t))-1,a=Se(this.groups.get(o),t)-1;return a<0?null:o*this.perGroup+a}holds(n){let t=this.row(n);return t!==null&&this.at(t)===n?t:null}},Se=(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},jt={plain:[],text:[],degrees:[],coded:[],links:[]},H=class{head;sections={};reads={};tables={};families;rows={};located;answers=new R(n=>this.answer(n));constructor(n){let t=new DataView(n.buffer,n.byteOffset,n.byteLength);if(he.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),o=F.length+5;this.head=JSON.parse(he.decode(n.subarray(o,o+i)));let a=o+i;for(let[s,l]of Object.entries(this.head.sections)){let c=a+l.offset,u=n.subarray(c,c+l.bytes),f=l.encoding==="index"?Ce:l.encoding==="front"?ye:ge;this.sections[s]=new f(u,l)}Object.assign(this.reads,zt);for(let[s,l]of Object.entries(Ht)){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 R(s=>this.locateIn(4,s)),6:new R(s=>this.locateIn(6,s))}}linked(n,t){return this.rows[n]??=new R(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,o,a]=r;this.tables[o]??={plain:[],text:[],degrees:[],coded:[],links:[]};let s=this.tables[o],l=this.reads[`${o}.${a}`];i==="link"?s.links.push([a,t]):l?s.coded.push([a,t,l]):t.read==="text"?s.text.push([a,t,this.sections.strings]):t.read?s.degrees.push([a,t]):s.plain.push([a,t])}}family(n){let t=`spine.v${n}`,r=`hosts.v${n}`;return{index:this.sections[t]??null,columns:Ft.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]??jt,i={};for(let[o,a]of r.plain)i[o]=a.at(t);for(let[o,a,s]of r.text)i[o]=s.at(a.at(t));for(let[o,a]of r.degrees)i[o]=a.at(t)/Kt;for(let[o,a,s]of r.coded)i[o]=s(a.at(t));for(let[o,a]of r.links){let s=a.at(t);s&&(i[o]=this.linked(o,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%be,o=(r-i)/be,a={};for(let[s,l,c]of this.families[t].columns){let u=i&&s==="abuse"?i:l.at(o);Vt.has(s)?u&&(a[s]=this.linked(s,u-1)):(a[un]??={},a[un][s]=c?c(u):u)}return a}locateIn(n,t){let{index:r,hosts:i,records:o}=this.families[n],a=r===null?null:r.row(t);if(a===null)return null;if(i===null||o===null)return[n,a,0];let s=i.holds(t);return[n,a,s===null?0:o.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*be+i)*2+(t===6?1:0))}};var fn=1024,ir=1n<<128n,m=e=>e?String(e):null,S=e=>e?Number(e):null,z=e=>e==null?null:Number(e),E=(e,n)=>e?.[n],ar=e=>e?{code:S(e.code),label:m(e.label)}:null,or=e=>e?{id:S(e.id),code:m(e.code),name:m(e.name)}:null,sr=e=>e?{id:S(e.id),code:m(e.code),iso:m(e.iso),name:m(e.name),type:m(e.type)}:null,mn=e=>{let n=new WeakMap;return(t,...r)=>{if(!t)return null;let i=r.join(`
625
+ `),o=n.get(t);o||(o=new Map,n.set(t,o));let a=o.get(i);if(a!==void 0)return a;let s=e(t,...r);return o.set(i,s),s}},Tn=mn(e=>{let n=String(e.type??"");return{id:S(e.id),name:m(e.name),ascii:m(e.ascii),country:m(e.country),population:S(e.population),elevation:S(e.elevation),postal:m(e.postal),postal_partial:m(e.postal_partial),timezone:m(e.timezone),type:m(n),capital:m($e(n)),region:sr(E(e,"region")),district:or(E(e,"district")),metro:ar(E(e,"metro"))}}),lr=mn((e,n)=>{let t=String(e.company??""),r=String(e.website??""),i=String(e.abuse_email??"");return{company:m(t),brand:m(He(n,t)),domain:m(We(r,i)),website:m(r),category:m(e.category),tier:S(e.tier),peering:S(e.peering),scope:m(e.scope),rir:m(e.rir),since:S(e.since),street:m(e.street),state:m(e.state),postal:m(e.postal),country:m(e.country),abuse_email:m(i),city:Tn(E(e,"city"))}}),cr=(e,n)=>{if(!e&&!n)return null;let t=e??{};return{user_type:m(n),user_count:S(t.user_count),mcc:S(t.mcc),mnc:S(t.mnc),is_mobile:n==="cellular"}},ur=(e,n,t)=>{if(!e&&!n)return null;let r=e??{},[i,o]=ze(String(r.service??""),t);return{name:m(r.name),service:m(i),evidence:m(String(r.evidence??"")||o),risk:z(r.risk),network_risk:n?z(n.risk):null,last_seen_days:S(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}},fr=e=>{if(!e)return null;let n=Tn(E(e,"city")),t=n?.country??"",r=n?.timezone??"";return[{lat:z(e.lat),lon:z(e.lon),accuracy:S(e.accuracy),confidence:S(e.confidence),granularity:m(e.granularity),city:n,country:Xe(t)},r]},dr=(e,n)=>{if(!e)return null;let t=String(e.handle??"");return[{asn:S(e.asn),handle:m(t),rpki:m(e.rpki),roas:z(e.roas),operator:lr(E(e,"operator"),t),carrier:cr(E(e,"carrier"),n)},S(e.prefix)]},mr=(e,n)=>String(e?.user_type||n?.user_type||""),Tr=e=>{let n=E(e,"network"),t=E(n,"abuse"),r=mr(E(e,"abuse"),t);return[fr(E(e,"place")),dr(n,r),ur(E(e,"abuse"),t,r)]},pr=(e,n,t)=>{let[r,i]=e,[o,a,s]=i===null?[null,null,null]:_e(n,t,i);return{...r,prefix:i,cidr:o,start:a,end:s}},dn=(e,n,t,r,i=null)=>{let[o,a,s]=P(e,n),l=Pe(e,n),[c,u]=G(e,n),[f,d,p]=Le(e,n),T=Ge(e,n),[b,A,g]=t??[null,null,null];return{ip:o,version:n?6:4,number:e,compressed:o,expanded:a,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===Q,is_6to4:c===X,is_teredo:c===ee,tunnel:c,embedded_ipv4:u,decimal_ipv4:T,as_ipv4_mapped:f,as_6to4:d,as_nat64:p,found:t!==null,place:b===null?null:{...b[0],time:nn(b[1],r)},network:A===null?null:pr(A,e,n),abuse:g,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=Tr(this.file.answerFor(n));return this.kept.set(t,i),i}lookup(n,t){let[r,i]=C(n);if(t){let u=this.file.locate(r,i);return dn(r,i,u&&this.storedFor(u),t)}let o=Math.floor(Date.now()/1e3);o!==this.second&&(this.second=o,this.results.clear());let a=i?r+ir:BigInt(r),s=this.results.get(a);if(s!==void 0)return s;this.results.size>=fn&&this.results.clear();let l=this.file.locate(r,i),c=dn(r,i,l&&this.storedFor(l));return this.results.set(a,c),c}async resolve(n,t){let r=this.lookup(n,t?.moment);if(!t?.dns)return r;let[i,o]=C(n);return{...r,dns:await ce(i,o)}}row(n){let[t,r]=C(n);return this.file.rowFor(t,r)}},Nr=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,Te as decompress,rn as facts,pe as loadDictionary,ce as named,Nr as open,K as records};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plevinjs",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Location, network and abuse information for any IP address in one offline file.",
5
5
  "keywords": [
6
6
  "ip",