@cleandns/whois-rdap 1.0.32 → 1.0.34

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/dist/index.js CHANGED
@@ -28,7 +28,7 @@ export async function whois(origDomain, options = { fetch: fetch, thinOnly: fals
28
28
  };
29
29
  if (url === null) {
30
30
  if (determinePort43Domain(domain)[2]) {
31
- return port43(domain);
31
+ return port43(domain, _fetch);
32
32
  }
33
33
  url = "https://rdap.org";
34
34
  }
package/dist/port43.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { WhoisResponse } from "../whois.js";
2
2
  export declare function determinePort43Domain(actor: string): any[];
3
- export declare function port43(actor: string): Promise<WhoisResponse>;
3
+ export declare function port43(actor: string, _fetch: typeof fetch): Promise<WhoisResponse>;
package/dist/port43.js CHANGED
@@ -20,7 +20,7 @@ export function determinePort43Domain(actor) {
20
20
  }
21
21
  return [actor, "", null];
22
22
  }
23
- export async function port43(actor) {
23
+ export async function port43(actor, _fetch) {
24
24
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
25
25
  const [domain, tld, whoisServer] = determinePort43Domain(actor);
26
26
  const opts = whoisServer;
@@ -45,20 +45,26 @@ export async function port43(actor) {
45
45
  let port43response = "";
46
46
  try {
47
47
  if (isWwww) {
48
- port43response = (await fetch(opts.url.replace('%%domain%%', domain)).then(r => r.text())).toString().replace(/^[ \t]+/gm, "");
48
+ port43response = (await _fetch(opts.url.replace('%%domain%%', domain)).then(r => r.text())).toString().replace(/^[ \t]+/gm, "");
49
49
  response.server = (_a = opts.url.match('//(.*?)/')) === null || _a === void 0 ? void 0 : _a[1];
50
50
  }
51
51
  else {
52
52
  response.server = server;
53
- const promiseSocket = new PromiseSocket(new Socket());
54
- promiseSocket.setTimeout(5 * 1000);
55
- await promiseSocket.connect(port, server);
56
- await promiseSocket.write(query);
57
- port43response = (await promiseSocket.readAll())
58
- .toString()
59
- .replace(/\r/g, "")
60
- .replace(/^[ \t]+/gm, "");
61
- await promiseSocket.end();
53
+ port43response = await _fetch(`https://www.whois.com/whois/${domain}`).then(r => r.text()).then((r) => {
54
+ var _a;
55
+ return ((_a = r.match(/<pre class="df-raw" id="registryData">(.*?)<\/pre>/s)) === null || _a === void 0 ? void 0 : _a[1]) || "";
56
+ });
57
+ if (port43response === '') {
58
+ const promiseSocket = new PromiseSocket(new Socket());
59
+ promiseSocket.setTimeout(5 * 1000);
60
+ await promiseSocket.connect(port, server);
61
+ await promiseSocket.write(query);
62
+ port43response = (await promiseSocket.readAll())
63
+ .toString()
64
+ .replace(/\r/g, "")
65
+ .replace(/^[ \t]+/gm, "");
66
+ await promiseSocket.end();
67
+ }
62
68
  }
63
69
  }
64
70
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleandns/whois-rdap",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -37,7 +37,7 @@ export async function whois(
37
37
 
38
38
  if (url === null) {
39
39
  if (determinePort43Domain(domain)[2]) {
40
- return port43(domain);
40
+ return port43(domain, _fetch);
41
41
  }
42
42
  url = "https://rdap.org";
43
43
  }
package/src/port43.ts CHANGED
@@ -26,7 +26,7 @@ export function determinePort43Domain(actor: string) {
26
26
  return [actor, "", null];
27
27
  }
28
28
 
29
- export async function port43(actor: string): Promise<WhoisResponse> {
29
+ export async function port43(actor: string, _fetch: typeof fetch): Promise<WhoisResponse> {
30
30
  const [domain, tld, whoisServer] = determinePort43Domain(actor);
31
31
  const opts = whoisServer;
32
32
  const isWwww = opts?.url;
@@ -55,20 +55,26 @@ export async function port43(actor: string): Promise<WhoisResponse> {
55
55
 
56
56
  try {
57
57
  if (isWwww) {
58
- port43response = (await fetch(opts.url.replace('%%domain%%', domain)).then(r => r.text())).toString().replace(/^[ \t]+/gm, "");
58
+ port43response = (await _fetch(opts.url.replace('%%domain%%', domain)).then(r => r.text())).toString().replace(/^[ \t]+/gm, "");
59
59
  response.server = opts.url.match('//(.*?)/')?.[1];
60
60
  }
61
61
  else {
62
62
  response.server = server;
63
- const promiseSocket = new PromiseSocket(new Socket());
64
- promiseSocket.setTimeout(5 * 1000);
65
- await promiseSocket.connect(port, server);
66
- await promiseSocket.write(query);
67
- port43response = (await promiseSocket.readAll())!
68
- .toString()
69
- .replace(/\r/g, "")
70
- .replace(/^[ \t]+/gm, "");
71
- await promiseSocket.end();
63
+ port43response = await _fetch(`https://www.whois.com/whois/${domain}`).then(r => r.text()).then((r) => {
64
+ return r.match(/<pre class="df-raw" id="registryData">(.*?)<\/pre>/s)?.[1] || "";
65
+ });
66
+
67
+ if (port43response === '') {
68
+ const promiseSocket = new PromiseSocket(new Socket());
69
+ promiseSocket.setTimeout(5 * 1000);
70
+ await promiseSocket.connect(port, server);
71
+ await promiseSocket.write(query);
72
+ port43response = (await promiseSocket.readAll())!
73
+ .toString()
74
+ .replace(/\r/g, "")
75
+ .replace(/^[ \t]+/gm, "");
76
+ await promiseSocket.end();
77
+ }
72
78
  }
73
79
  } catch (error: any) {
74
80
  console.warn(port, server, query);