@cleandns/whois-rdap 1.0.2 → 1.0.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/dist/index.js CHANGED
@@ -112,10 +112,10 @@ export async function whois(domain, options = { fetch: fetch }) {
112
112
  // registrar
113
113
  const { events, ...registrar } = registrars.sort((a, b) => {
114
114
  var _a, _b;
115
- // console.warn({ a, b });
116
115
  const aDate = ((_a = a.events.find((ev) => ev.eventAction === "registration")) === null || _a === void 0 ? void 0 : _a.eventDate) || 0;
117
116
  const bDate = ((_b = b.events.find((ev) => ev.eventAction === "registration")) === null || _b === void 0 ? void 0 : _b.eventDate) || 0;
118
- return new Date(bDate).valueOf() - new Date(aDate).valueOf();
117
+ console.log({ aDate, bDate });
118
+ return new Date(bDate.replace(/\+0000Z$/, 'Z')).valueOf() - new Date(aDate.replace(/\+0000Z$/, 'Z')).valueOf();
119
119
  })[0] || { id: 0, name: "" };
120
120
  response.registrar = registrar;
121
121
  // reseller
@@ -168,11 +168,9 @@ function findTimestamps(values) {
168
168
  for (const [event, field] of eventMap) {
169
169
  const date = events.find((ev) => ev.eventAction === event);
170
170
  if (date === null || date === void 0 ? void 0 : date.eventDate) {
171
- ts[field] = new Date(date.eventDate);
171
+ ts[field] = new Date(date.eventDate.replace(/\+0000Z$/, 'Z'));
172
172
  }
173
173
  }
174
174
  return ts;
175
175
  }
176
- // await whois(process.argv[2]).then((r) =>
177
- // console.log(JSON.stringify(r, null, 2))
178
- // );
176
+ await whois(process.argv[2]).then((r) => console.log(JSON.stringify(r, null, 2)));
@@ -1,7 +1,7 @@
1
1
  import { normalizeWhoisStatus } from "./whoisStatus.js";
2
2
  export const port43parsers = {
3
3
  rs(response, record) {
4
- response = response.replace(/\r/g, '');
4
+ response = response.replace(/\r/g, "");
5
5
  let m;
6
6
  (m = response.match(/^Registrar:[ \t]*(\S[^\n]*)/m)) &&
7
7
  (record.registrar.name = m[1]);
@@ -21,6 +21,99 @@ export const port43parsers = {
21
21
  record.nameservers.push(m[1].toLowerCase());
22
22
  });
23
23
  },
24
+ nl(response, record) {
25
+ let m;
26
+ (m = response.match(/^Registrar:\s+(\S[^\n]*)/m)) &&
27
+ (record.registrar.name = m[1]);
28
+ (m = response.match(/^Reseller:\s+(\S[^\n]*)/m)) &&
29
+ (record.reseller = m[1]);
30
+ (m = response.match(/^Status:[ \t]*(\S[^\n]+)/m)) &&
31
+ (record.status = [m[1]]);
32
+ (m = response.match(/^Domain nameservers:[ \t]*\n((?:\S+\n)+)/m)) &&
33
+ (record.nameservers = m[1].trim().split(/\s+/));
34
+ (m = response.match(/^Creat\w* Date: (\d\d\d\d-\d\d-\d\d)/m)) &&
35
+ (record.ts.created = new Date(m[1]));
36
+ (m = response.match(/^Updat\w* Date: (\d\d\d\d-\d\d-\d\d)/m)) &&
37
+ (record.ts.updated = new Date(m[1]));
38
+ (m = response.match(/^Expir\w* Date: (\d\d\d\d-\d\d-\d\d)/m)) &&
39
+ (record.ts.expires = new Date(m[1]));
40
+ },
41
+ kr(response, record) {
42
+ let m;
43
+ (m = response.match(/^Authorized Agency\s*: (.*?)(?=\(http|$)/m)) &&
44
+ (record.registrar.name = m[1]);
45
+ // (m = response.match(/^Reseller:\s+(\S[^\n]*)/m)) && (record.reseller = m[1]);
46
+ (m = response.match(/^Domain Status\s*: [ \t]*(\S[^\n]+)/m)) &&
47
+ (record.status = m[1].trim().split(/\s+/));
48
+ (m = response.matchAll(/^Host Name\s*: (\S+)/gm)) &&
49
+ (record.nameservers = [...m].map((t) => t[1]));
50
+ (m = response.match(/^Registered Date\s*: (\d\d\d\d). (\d\d). (\d\d)/m)) &&
51
+ (record.ts.created = new Date(`${m[1]}-${m[2]}-${m[3]}`));
52
+ (m = response.match(/^Last Updated Date\s*: (\d\d\d\d). (\d\d). (\d\d)/m)) && (record.ts.updated = new Date(`${m[1]}-${m[2]}-${m[3]}`));
53
+ (m = response.match(/^Expiration Date\s*: (\d\d\d\d). (\d\d). (\d\d)/m)) &&
54
+ (record.ts.expires = new Date(`${m[1]}-${m[2]}-${m[3]}`));
55
+ },
56
+ tr(response, record) {
57
+ let m;
58
+ (m = response.match(/^Organization Name\s*: (.+)/m)) &&
59
+ (record.registrar.name = m[1]);
60
+ (m = response.match(/^NIC Handle\s*: (.+)/m)) &&
61
+ (record.registrar.id = m[1]);
62
+ // (m = response.match(/^Reseller:\s+(\S[^\n]*)/m)) && (record.reseller = m[1]);
63
+ (m = response.match(/^Domain Status\s*: (\S[^\n]+)/m)) &&
64
+ (record.status = m[1].trim().split(/\s+/));
65
+ (m = response.match(/^\*\* Domain Servers\s*:((?:\n\S+)+)/m)) &&
66
+ (record.nameservers = m[1].trim().split(/\s+/));
67
+ (m = response.match(/^Created on.+: (\d\d\d\d)-(\w\w\w)-(\d\d)/m)) &&
68
+ (record.ts.created = new Date(`${m[2]} ${m[3]}, ${m[1]}`));
69
+ (m = response.match(/^Expires on.+: (\d\d\d\d)-(\w\w\w)-(\d\d)/m)) &&
70
+ (record.ts.expires = new Date(`${m[2]} ${m[3]}, ${m[1]}`));
71
+ },
72
+ be(response, record) {
73
+ let m;
74
+ (m = response.match(/^Registrar:\s*Name:\s+(.+)/m)) &&
75
+ (record.registrar.name = m[1]);
76
+ (m = response.match(/^Status:\s+(.+)/m)) && (record.status = [m[1].trim()]);
77
+ (m = response.match(/^Nameservers\s*:((?:\n\S+)+)/m)) &&
78
+ (record.nameservers = m[1].trim().split(/\s+/));
79
+ (m = response.match(/^Registered:\s+\w\w\w (\w\w\w) (\d\d) (\d\d\d\d)/m)) &&
80
+ (record.ts.created = new Date(`${m[1]} ${m[2]}, ${m[3]}`));
81
+ },
82
+ it(response, record) {
83
+ let m;
84
+ (m = response.match(/^Registrar\s*Organization:\s*(.+)/m)) &&
85
+ (record.registrar.name = m[1]);
86
+ (m = response.match(/^Status:\s*(.+)/m)) &&
87
+ (record.status = m[1].trim().split(/\s+/));
88
+ (m = response.match(/^Created:\s*(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)/m)) &&
89
+ (record.ts.created = new Date(m[1]));
90
+ (m = response.match(/^Last Update:\s*(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)/m)) && (record.ts.updated = new Date(m[1]));
91
+ (m = response.match(/^Expire Date:\s*(\d\d\d\d-\d\d-\d\d)/m)) &&
92
+ (record.ts.expires = new Date(m[1]));
93
+ (m = response.match(/^Nameservers((?:\n\S+)+)/m)) &&
94
+ (record.nameservers = m[1].trim().split(/\s+/));
95
+ },
96
+ de(response, record) {
97
+ let m;
98
+ // (m = response.match(/^Registrar:\s*(.+)/m)) && (record.registrar.name = m[1]);
99
+ (m = response.match(/^Status:\s*(.+)/m)) &&
100
+ (record.status = m[1].trim().split(/\s+/));
101
+ (m = response.matchAll(/^Nserver: (\S+)/gm)) &&
102
+ (record.nameservers = [...m].map((t) => t[1]));
103
+ // (m = response.match(/^Creation Date:\s*(\d\d\d\d-\d\d-\d\d)/m)) && (record.ts.created = new Date (m[1]));
104
+ (m = response.match(/^Changed: (\d\d\d\d-\d\d-\d\d\S)/m)) &&
105
+ (record.ts.updated = new Date(m[1]));
106
+ // (m = response.match(/^Expiration Date:\s*(\d\d\d\d-\d\d-\d\d)/m)) && (record.ts.expires = new Date (m[1]));
107
+ },
108
+ eu(response, record) {
109
+ let m;
110
+ (m = response.match(/^Registrar:\s*Name:\s*(.+)/m)) &&
111
+ (record.registrar.name = m[1]);
112
+ (m = response.match(/^Reseller:\s*Organisation:\s*(.+)/m)) &&
113
+ (record.reseller = m[1]);
114
+ (m = response.match(/^Name servers:((?:\n\S+)+)/m)) &&
115
+ (record.nameservers = m[1].trim().split(/\s+/));
116
+ },
24
117
  };
25
118
  export const port43servers = {
26
119
  "br.com": "whois.centralnic.net",
@@ -489,7 +582,9 @@ export const port43servers = {
489
582
  be: "whois.dns.be",
490
583
  bf: null,
491
584
  bg: "whois.register.bg",
492
- bh: null,
585
+ bh: "whois.nic.bh",
586
+ "com.bh": "whois.nic.bh",
587
+ "org.bh": "whois.nic.bh",
493
588
  bi: "whois1.nic.bi",
494
589
  bj: "whois.nic.bj",
495
590
  bl: null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleandns/whois-rdap",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -155,14 +155,13 @@ export async function whois(domain: string, options: WhoisOptions = { fetch: fet
155
155
 
156
156
  // registrar
157
157
  const { events, ...registrar } = registrars.sort((a: any, b: any) => {
158
- // console.warn({ a, b });
159
158
  const aDate =
160
159
  a.events.find((ev: any) => ev.eventAction === "registration")
161
160
  ?.eventDate || 0;
162
161
  const bDate =
163
162
  b.events.find((ev: any) => ev.eventAction === "registration")
164
163
  ?.eventDate || 0;
165
- return new Date(bDate).valueOf() - new Date(aDate).valueOf();
164
+ return new Date(bDate.replace(/\+0000Z$/, 'Z')).valueOf() - new Date(aDate.replace(/\+0000Z$/, 'Z')).valueOf();
166
165
  })[0] || { id: 0, name: "" };
167
166
  response.registrar = registrar;
168
167
 
@@ -234,7 +233,7 @@ function findTimestamps(values: any[]) {
234
233
  for (const [event, field] of eventMap) {
235
234
  const date = events.find((ev: any) => ev.eventAction === event);
236
235
  if (date?.eventDate) {
237
- ts[field] = new Date(date.eventDate);
236
+ ts[field] = new Date(date.eventDate.replace(/\+0000Z$/, 'Z'));
238
237
  }
239
238
  }
240
239