recker 1.0.14 → 1.0.15-next.3794a15
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 +78 -100
- package/dist/ai/client.d.ts +2 -3
- package/dist/ai/client.d.ts.map +1 -1
- package/dist/ai/client.js +5 -6
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -1
- package/dist/cli/tui/ai-chat.js +2 -2
- package/dist/dns/index.d.ts +35 -0
- package/dist/dns/index.d.ts.map +1 -0
- package/dist/dns/index.js +124 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/recker.d.ts +47 -0
- package/dist/recker.d.ts.map +1 -0
- package/dist/recker.js +99 -0
- package/dist/transport/base-udp.d.ts.map +1 -1
- package/dist/transport/base-udp.js +1 -0
- package/dist/transport/udp-response.d.ts +2 -2
- package/dist/transport/udp-response.d.ts.map +1 -1
- package/dist/transport/udp-response.js +2 -2
- package/dist/transport/udp.d.ts +4 -3
- package/dist/transport/udp.d.ts.map +1 -1
- package/dist/transport/udp.js +16 -7
- package/dist/types/udp.d.ts +1 -0
- package/dist/types/udp.d.ts.map +1 -1
- package/dist/udp/index.d.ts +2 -2
- package/dist/udp/index.d.ts.map +1 -1
- package/dist/udp/index.js +2 -2
- package/dist/utils/whois.d.ts +18 -0
- package/dist/utils/whois.d.ts.map +1 -1
- package/dist/utils/whois.js +63 -0
- package/dist/webrtc/index.d.ts +80 -0
- package/dist/webrtc/index.d.ts.map +1 -0
- package/dist/webrtc/index.js +311 -0
- package/dist/websocket/client.d.ts +1 -1
- package/dist/websocket/client.d.ts.map +1 -1
- package/dist/websocket/client.js +1 -1
- package/package.json +1 -1
package/dist/recker.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createClient } from './core/client.js';
|
|
2
|
+
import { FetchTransport } from './transport/fetch.js';
|
|
3
|
+
import { createWebSocket } from './websocket/client.js';
|
|
4
|
+
import { whois as whoisLookup, isDomainAvailable, createWhois } from './utils/whois.js';
|
|
5
|
+
import { createDNS } from './dns/index.js';
|
|
6
|
+
import { createAI } from './ai/index.js';
|
|
7
|
+
let _defaultClient = null;
|
|
8
|
+
let _defaultDns = null;
|
|
9
|
+
let _defaultAi = null;
|
|
10
|
+
function getDefaultClient() {
|
|
11
|
+
if (!_defaultClient) {
|
|
12
|
+
_defaultClient = createClient({
|
|
13
|
+
transport: new FetchTransport(),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return _defaultClient;
|
|
17
|
+
}
|
|
18
|
+
function getDefaultDns() {
|
|
19
|
+
if (!_defaultDns) {
|
|
20
|
+
_defaultDns = createDNS();
|
|
21
|
+
}
|
|
22
|
+
return _defaultDns;
|
|
23
|
+
}
|
|
24
|
+
function getDefaultAi() {
|
|
25
|
+
if (!_defaultAi) {
|
|
26
|
+
_defaultAi = createAI();
|
|
27
|
+
}
|
|
28
|
+
return _defaultAi;
|
|
29
|
+
}
|
|
30
|
+
export function get(url, options) {
|
|
31
|
+
return getDefaultClient().get(url, options);
|
|
32
|
+
}
|
|
33
|
+
export function post(url, options) {
|
|
34
|
+
return getDefaultClient().post(url, options);
|
|
35
|
+
}
|
|
36
|
+
export function put(url, options) {
|
|
37
|
+
return getDefaultClient().put(url, options);
|
|
38
|
+
}
|
|
39
|
+
export function patch(url, options) {
|
|
40
|
+
return getDefaultClient().patch(url, options);
|
|
41
|
+
}
|
|
42
|
+
export function del(url, options) {
|
|
43
|
+
return getDefaultClient().delete(url, options);
|
|
44
|
+
}
|
|
45
|
+
export function head(url, options) {
|
|
46
|
+
return getDefaultClient().head(url, options);
|
|
47
|
+
}
|
|
48
|
+
export function options(url, options) {
|
|
49
|
+
return getDefaultClient().options(url, options);
|
|
50
|
+
}
|
|
51
|
+
export async function whois(query, options) {
|
|
52
|
+
return whoisLookup(query, options);
|
|
53
|
+
}
|
|
54
|
+
export async function whoisAvailable(domain) {
|
|
55
|
+
return isDomainAvailable(domain);
|
|
56
|
+
}
|
|
57
|
+
export async function dns(hostname, type = 'A') {
|
|
58
|
+
return getDefaultDns().resolve(hostname, type);
|
|
59
|
+
}
|
|
60
|
+
export async function dnsSecurity(domain) {
|
|
61
|
+
return getDefaultDns().getSecurityRecords(domain);
|
|
62
|
+
}
|
|
63
|
+
export function ws(url, options) {
|
|
64
|
+
return createWebSocket(url, options);
|
|
65
|
+
}
|
|
66
|
+
const aiNamespace = {
|
|
67
|
+
chat: (...args) => getDefaultAi().chat(...args),
|
|
68
|
+
stream: (...args) => getDefaultAi().stream(...args),
|
|
69
|
+
embed: (...args) => getDefaultAi().embed(...args),
|
|
70
|
+
extend: (...args) => getDefaultAi().extend(...args),
|
|
71
|
+
get metrics() {
|
|
72
|
+
return getDefaultAi().metrics;
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
export const recker = {
|
|
76
|
+
get,
|
|
77
|
+
post,
|
|
78
|
+
put,
|
|
79
|
+
patch,
|
|
80
|
+
delete: del,
|
|
81
|
+
head,
|
|
82
|
+
options,
|
|
83
|
+
whois,
|
|
84
|
+
whoisAvailable,
|
|
85
|
+
dns,
|
|
86
|
+
dnsSecurity,
|
|
87
|
+
ws,
|
|
88
|
+
ai: aiNamespace,
|
|
89
|
+
client: (options) => createClient(options),
|
|
90
|
+
dnsClient: (options) => createDNS(options),
|
|
91
|
+
whoisClient: createWhois,
|
|
92
|
+
aiClient: (options) => createAI(options),
|
|
93
|
+
reset: () => {
|
|
94
|
+
_defaultClient = null;
|
|
95
|
+
_defaultDns = null;
|
|
96
|
+
_defaultAi = null;
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
export default recker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-udp.d.ts","sourceRoot":"","sources":["../../src/transport/base-udp.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,aAAa,EACd,MAAM,iBAAiB,CAAC;AAMzB,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,iBAAiB,sCAA6C,CAAC;AAK5E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"base-udp.d.ts","sourceRoot":"","sources":["../../src/transport/base-udp.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,aAAa,EACd,MAAM,iBAAiB,CAAC;AAMzB,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,iBAAiB,sCAA6C,CAAC;AAK5E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAQjE,CAAC;AAKF,8BAAsB,gBAAgB;IACpC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;gBAEzC,OAAO,GAAE,uBAA4B;IAUjD,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAK9D,SAAS,CAAC,YAAY,CAAC,IAAI,GAAE,MAAM,GAAG,MAAe,GAAG,KAAK,CAAC,MAAM;cAiBpD,aAAa,CAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAsClB,SAAS,CAAC,QAAQ,CAChB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAmFlB,SAAS,CAAC,cAAc,IAAI,UAAU;IAwCtC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa;IAgBhE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAqB7E,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhD,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -5,7 +5,7 @@ export interface UDPResponseOptions {
|
|
|
5
5
|
connection?: UDPConnection;
|
|
6
6
|
url?: string;
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class UDPResponseWrapper implements UDPResponse {
|
|
9
9
|
private _buffer;
|
|
10
10
|
private _timings;
|
|
11
11
|
private _connection;
|
|
@@ -26,7 +26,7 @@ export declare class UDPResponseImpl implements UDPResponse {
|
|
|
26
26
|
cleanText(): Promise<string>;
|
|
27
27
|
blob(): Promise<Blob>;
|
|
28
28
|
read(): ReadableStream<Uint8Array> | null;
|
|
29
|
-
clone():
|
|
29
|
+
clone(): UDPResponseWrapper;
|
|
30
30
|
sse(): AsyncGenerator<SSEEvent>;
|
|
31
31
|
download(): AsyncGenerator<ProgressEvent>;
|
|
32
32
|
packets(): AsyncGenerator<Buffer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-response.d.ts","sourceRoot":"","sources":["../../src/transport/udp-response.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAkB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD,qBAAa,
|
|
1
|
+
{"version":3,"file":"udp-response.d.ts","sourceRoot":"","sources":["../../src/transport/udp-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export class
|
|
1
|
+
export class UDPResponseWrapper {
|
|
2
2
|
_buffer;
|
|
3
3
|
_timings;
|
|
4
4
|
_connection;
|
|
@@ -85,7 +85,7 @@ export class UDPResponseImpl {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
clone() {
|
|
88
|
-
return new
|
|
88
|
+
return new UDPResponseWrapper(Buffer.from(this._buffer), {
|
|
89
89
|
timings: { ...this._timings },
|
|
90
90
|
connection: { ...this._connection },
|
|
91
91
|
url: this._url,
|
package/dist/transport/udp.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { ReckerRequest, ReckerResponse } from '../types/index.js';
|
|
2
2
|
import type { UDPTransportOptions, SimpleUDPAPI } from '../types/udp.js';
|
|
3
3
|
import { BaseUDPTransport } from './base-udp.js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class UDPClient extends BaseUDPTransport {
|
|
5
5
|
private socket;
|
|
6
6
|
private baseUrl;
|
|
7
7
|
private udpOptions;
|
|
8
8
|
private multicastGroups;
|
|
9
9
|
constructor(baseUrl?: string, options?: UDPTransportOptions);
|
|
10
|
+
private log;
|
|
10
11
|
private getSocket;
|
|
11
12
|
private _socketBound;
|
|
12
13
|
dispatch(req: ReckerRequest): Promise<ReckerResponse>;
|
|
@@ -16,7 +17,7 @@ export declare class UDPTransportImpl extends BaseUDPTransport {
|
|
|
16
17
|
leaveMulticast(group: string): void;
|
|
17
18
|
close(): Promise<void>;
|
|
18
19
|
}
|
|
19
|
-
export declare function
|
|
20
|
+
export declare function createUDP(options?: UDPTransportOptions): UDPClient;
|
|
20
21
|
export declare const udp: SimpleUDPAPI;
|
|
21
|
-
export {
|
|
22
|
+
export { UDPClient as UDPTransport };
|
|
22
23
|
//# sourceMappingURL=udp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/transport/udp.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EAInB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAwC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/transport/udp.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EAInB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAwC,MAAM,eAAe,CAAC;AA2CvF,qBAAa,SAAU,SAAQ,gBAAgB;IAC7C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,eAAe,CAA0B;gBAErC,OAAO,GAAE,MAAW,EAAE,OAAO,GAAE,mBAAwB;IAuBnE,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,SAAS;IA0CjB,OAAO,CAAC,YAAY,CAAkB;IAKhC,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAwFrD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWlC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB7B;AAsBD,wBAAgB,SAAS,CAAC,OAAO,GAAE,mBAAwB,GAAG,SAAS,CAEtE;AAKD,eAAO,MAAM,GAAG,EAAE,YAuGjB,CAAC;AAGF,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC"}
|
package/dist/transport/udp.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import dgram from 'node:dgram';
|
|
2
2
|
import { BaseUDPTransport, udpRequestStorage } from './base-udp.js';
|
|
3
|
-
import {
|
|
3
|
+
import { UDPResponseWrapper } from './udp-response.js';
|
|
4
4
|
const DEFAULT_OPTIONS = {
|
|
5
5
|
timeout: 5000,
|
|
6
6
|
retransmissions: 3,
|
|
7
7
|
maxPacketSize: 65507,
|
|
8
8
|
observability: true,
|
|
9
|
+
debug: false,
|
|
9
10
|
broadcast: false,
|
|
10
11
|
multicastTTL: 1,
|
|
11
12
|
multicastLoopback: true,
|
|
12
13
|
type: 'udp4',
|
|
13
14
|
};
|
|
14
|
-
export class
|
|
15
|
+
export class UDPClient extends BaseUDPTransport {
|
|
15
16
|
socket = null;
|
|
16
17
|
baseUrl;
|
|
17
18
|
udpOptions;
|
|
@@ -26,6 +27,7 @@ export class UDPTransportImpl extends BaseUDPTransport {
|
|
|
26
27
|
retransmissions: options.retransmissions ?? DEFAULT_OPTIONS.retransmissions,
|
|
27
28
|
maxPacketSize: options.maxPacketSize ?? DEFAULT_OPTIONS.maxPacketSize,
|
|
28
29
|
observability: options.observability ?? DEFAULT_OPTIONS.observability,
|
|
30
|
+
debug: options.debug ?? DEFAULT_OPTIONS.debug,
|
|
29
31
|
localAddress: options.localAddress ?? '',
|
|
30
32
|
localPort: options.localPort ?? 0,
|
|
31
33
|
broadcast: options.broadcast ?? DEFAULT_OPTIONS.broadcast,
|
|
@@ -37,6 +39,11 @@ export class UDPTransportImpl extends BaseUDPTransport {
|
|
|
37
39
|
sendBufferSize: options.sendBufferSize,
|
|
38
40
|
};
|
|
39
41
|
}
|
|
42
|
+
log(message, ...args) {
|
|
43
|
+
if (this.udpOptions.debug) {
|
|
44
|
+
console.log(`[UDP] ${message}`, ...args);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
40
47
|
getSocket() {
|
|
41
48
|
if (!this.socket) {
|
|
42
49
|
this.socket = this.createSocket(this.udpOptions.type);
|
|
@@ -75,6 +82,7 @@ export class UDPTransportImpl extends BaseUDPTransport {
|
|
|
75
82
|
return udpRequestStorage.run(context, async () => {
|
|
76
83
|
const fullUrl = this.baseUrl ? `${this.baseUrl}${req.url}` : req.url;
|
|
77
84
|
const { host, port, path } = this.parseUrl(fullUrl);
|
|
85
|
+
this.log(`Dispatch to ${fullUrl}`);
|
|
78
86
|
if (!host || !port) {
|
|
79
87
|
throw new Error(`Invalid UDP URL: ${fullUrl}. Expected format: udp://host:port/path`);
|
|
80
88
|
}
|
|
@@ -114,7 +122,8 @@ export class UDPTransportImpl extends BaseUDPTransport {
|
|
|
114
122
|
const responseBuffer = await this.sendWithRetry(socket, body, targetPort, targetAddress, req.signal);
|
|
115
123
|
const timings = this.collectTimings();
|
|
116
124
|
const connection = this.collectConnection(socket);
|
|
117
|
-
|
|
125
|
+
this.log(`Response received in ${timings.total.toFixed(0)}ms (${responseBuffer.length} bytes)`);
|
|
126
|
+
return new UDPResponseWrapper(responseBuffer, {
|
|
118
127
|
timings,
|
|
119
128
|
connection,
|
|
120
129
|
url: fullUrl,
|
|
@@ -183,12 +192,12 @@ export class UDPTransportImpl extends BaseUDPTransport {
|
|
|
183
192
|
}
|
|
184
193
|
}
|
|
185
194
|
}
|
|
186
|
-
export function
|
|
187
|
-
return new
|
|
195
|
+
export function createUDP(options = {}) {
|
|
196
|
+
return new UDPClient('', options);
|
|
188
197
|
}
|
|
189
198
|
export const udp = {
|
|
190
199
|
async send(address, data, options = {}) {
|
|
191
|
-
const transport = new
|
|
200
|
+
const transport = new UDPClient('', options);
|
|
192
201
|
try {
|
|
193
202
|
const response = await transport.dispatch({
|
|
194
203
|
url: address.startsWith('udp://') ? address : `udp://${address}`,
|
|
@@ -257,4 +266,4 @@ export const udp = {
|
|
|
257
266
|
});
|
|
258
267
|
},
|
|
259
268
|
};
|
|
260
|
-
export {
|
|
269
|
+
export { UDPClient as UDPTransport };
|
package/dist/types/udp.d.ts
CHANGED
package/dist/types/udp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/types/udp.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS3E,MAAM,WAAW,UAAU;IAEzB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,eAAe,EAAE,MAAM,CAAC;IAExB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAE7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAE7C,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;CAClB;AASD,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,CAAC;IAElB,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAErC,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AASD,MAAM,WAAW,uBAAuB;IAKtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAMvB,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"udp.d.ts","sourceRoot":"","sources":["../../src/types/udp.ts"],"names":[],"mappings":"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"}
|
package/dist/udp/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { UDPClient, UDPTransport, createUDP, udp } from '../transport/udp.js';
|
|
2
|
+
export { UDPResponseWrapper, StreamingUDPResponse } from '../transport/udp-response.js';
|
|
3
3
|
export { BaseUDPTransport, udpRequestStorage } from '../transport/base-udp.js';
|
|
4
4
|
export type { UDPRequestContext } from '../transport/base-udp.js';
|
|
5
5
|
export type { UDPTimings, DTLSTimings, QUICTimings, UDPConnection, DTLSConnection, QUICConnection, BaseUDPTransportOptions, UDPTransportOptions, DTLSTransportOptions, QUICTransportOptions, UDPRequestOptions, UDPRequest, UDPResponse, UDPTransport as UDPTransportInterface, DTLSTransportInterface, QUICTransportInterface, UDPBatchResult, UDPDiscoveryResult, SimpleUDPAPI, } from '../types/udp.js';
|
package/dist/udp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/udp/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/udp/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGxF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,YAAY,EAEV,UAAU,EACV,WAAW,EACX,WAAW,EAEX,aAAa,EACb,cAAc,EACd,cAAc,EAEd,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EAEpB,iBAAiB,EACjB,UAAU,EACV,WAAW,EAEX,YAAY,IAAI,qBAAqB,EACrC,sBAAsB,EACtB,sBAAsB,EAEtB,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC"}
|
package/dist/udp/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { UDPClient, UDPTransport, createUDP, udp } from '../transport/udp.js';
|
|
2
|
+
export { UDPResponseWrapper, StreamingUDPResponse } from '../transport/udp-response.js';
|
|
3
3
|
export { BaseUDPTransport, udpRequestStorage } from '../transport/base-udp.js';
|
package/dist/utils/whois.d.ts
CHANGED
|
@@ -12,4 +12,22 @@ export interface WhoisResult {
|
|
|
12
12
|
}
|
|
13
13
|
export declare function whois(query: string, options?: WhoisOptions): Promise<WhoisResult>;
|
|
14
14
|
export declare function isDomainAvailable(domain: string, options?: WhoisOptions): Promise<boolean>;
|
|
15
|
+
export interface WhoisClientOptions {
|
|
16
|
+
server?: string;
|
|
17
|
+
port?: number;
|
|
18
|
+
timeout?: number;
|
|
19
|
+
follow?: boolean;
|
|
20
|
+
debug?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare class WhoisClient {
|
|
23
|
+
private options;
|
|
24
|
+
constructor(options?: WhoisClientOptions);
|
|
25
|
+
private log;
|
|
26
|
+
lookup(query: string, options?: WhoisOptions): Promise<WhoisResult>;
|
|
27
|
+
isAvailable(domain: string): Promise<boolean>;
|
|
28
|
+
getRegistrar(domain: string): Promise<string | null>;
|
|
29
|
+
getExpiration(domain: string): Promise<Date | null>;
|
|
30
|
+
getNameServers(domain: string): Promise<string[]>;
|
|
31
|
+
}
|
|
32
|
+
export declare function createWhois(options?: WhoisClientOptions): WhoisClient;
|
|
15
33
|
//# sourceMappingURL=whois.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whois.d.ts","sourceRoot":"","sources":["../../src/utils/whois.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAK3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAI1B,GAAG,EAAE,MAAM,CAAC;IAKZ,KAAK,EAAE,MAAM,CAAC;IAKd,MAAM,EAAE,MAAM,CAAC;IAKf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACzC;AAmND,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAmCtB;AAMD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
|
|
1
|
+
{"version":3,"file":"whois.d.ts","sourceRoot":"","sources":["../../src/utils/whois.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAK3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAI1B,GAAG,EAAE,MAAM,CAAC;IAKZ,KAAK,EAAE,MAAM,CAAC;IAKd,MAAM,EAAE,MAAM,CAAC;IAKf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACzC;AAmND,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAmCtB;AAMD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,OAAO,CAAC,CAoBlB;AASD,MAAM,WAAW,kBAAkB;IAIjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,MAAM,CAAC,EAAE,OAAO,CAAC;IAMjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA+B;gBAElC,OAAO,GAAE,kBAAuB;IAU5C,OAAO,CAAC,GAAG;IASL,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBnE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUpD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAgBnD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAKxD;AAoBD,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAErE"}
|
package/dist/utils/whois.js
CHANGED
|
@@ -181,3 +181,66 @@ export async function isDomainAvailable(domain, options) {
|
|
|
181
181
|
return false;
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
+
export class WhoisClient {
|
|
185
|
+
options;
|
|
186
|
+
constructor(options = {}) {
|
|
187
|
+
this.options = {
|
|
188
|
+
server: options.server ?? '',
|
|
189
|
+
port: options.port ?? 43,
|
|
190
|
+
timeout: options.timeout ?? 10000,
|
|
191
|
+
follow: options.follow ?? true,
|
|
192
|
+
debug: options.debug ?? false,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
log(message, ...args) {
|
|
196
|
+
if (this.options.debug) {
|
|
197
|
+
console.log(`[WHOIS] ${message}`, ...args);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async lookup(query, options) {
|
|
201
|
+
this.log(`Looking up: ${query}`);
|
|
202
|
+
const start = Date.now();
|
|
203
|
+
const result = await whois(query, {
|
|
204
|
+
server: options?.server ?? (this.options.server || undefined),
|
|
205
|
+
port: options?.port ?? this.options.port,
|
|
206
|
+
timeout: options?.timeout ?? this.options.timeout,
|
|
207
|
+
follow: options?.follow ?? this.options.follow,
|
|
208
|
+
});
|
|
209
|
+
this.log(`Lookup completed in ${Date.now() - start}ms from ${result.server}`);
|
|
210
|
+
return result;
|
|
211
|
+
}
|
|
212
|
+
async isAvailable(domain) {
|
|
213
|
+
this.log(`Checking availability: ${domain}`);
|
|
214
|
+
return isDomainAvailable(domain, {
|
|
215
|
+
server: this.options.server || undefined,
|
|
216
|
+
port: this.options.port,
|
|
217
|
+
timeout: this.options.timeout,
|
|
218
|
+
follow: this.options.follow,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
async getRegistrar(domain) {
|
|
222
|
+
const result = await this.lookup(domain);
|
|
223
|
+
return result.data['registrar'] ||
|
|
224
|
+
result.data['sponsoring registrar'] ||
|
|
225
|
+
null;
|
|
226
|
+
}
|
|
227
|
+
async getExpiration(domain) {
|
|
228
|
+
const result = await this.lookup(domain);
|
|
229
|
+
const expiry = result.data['registry expiry date'] ||
|
|
230
|
+
result.data['expiration date'] ||
|
|
231
|
+
result.data['expiry date'];
|
|
232
|
+
if (expiry) {
|
|
233
|
+
const date = new Date(expiry);
|
|
234
|
+
return isNaN(date.getTime()) ? null : date;
|
|
235
|
+
}
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
async getNameServers(domain) {
|
|
239
|
+
const result = await this.lookup(domain);
|
|
240
|
+
const ns = result.data['name server'] || result.data['nserver'] || [];
|
|
241
|
+
return Array.isArray(ns) ? ns : [ns];
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
export function createWhois(options) {
|
|
245
|
+
return new WhoisClient(options);
|
|
246
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
export interface IceServer {
|
|
3
|
+
urls: string | string[];
|
|
4
|
+
username?: string;
|
|
5
|
+
credential?: string;
|
|
6
|
+
}
|
|
7
|
+
export type SignalingMessageType = 'offer' | 'answer' | 'ice-candidate' | 'bye';
|
|
8
|
+
export interface SignalingMessage {
|
|
9
|
+
type: SignalingMessageType;
|
|
10
|
+
from: string;
|
|
11
|
+
to: string;
|
|
12
|
+
payload: RTCSessionDescriptionInit | RTCIceCandidateInit | null;
|
|
13
|
+
}
|
|
14
|
+
export interface SignalingChannelOptions {
|
|
15
|
+
send: (message: SignalingMessage) => void | Promise<void>;
|
|
16
|
+
onMessage: (handler: (message: SignalingMessage) => void) => void;
|
|
17
|
+
onClose?: (handler: () => void) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface WebRTCClientOptions {
|
|
20
|
+
peerId?: string;
|
|
21
|
+
signaling: SignalingChannelOptions;
|
|
22
|
+
iceServers?: IceServer[];
|
|
23
|
+
dataChannelOptions?: RTCDataChannelInit;
|
|
24
|
+
connectionTimeout?: number;
|
|
25
|
+
debug?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type ConnectionState = 'new' | 'connecting' | 'connected' | 'disconnected' | 'failed' | 'closed';
|
|
28
|
+
export interface PeerInfo {
|
|
29
|
+
peerId: string;
|
|
30
|
+
state: ConnectionState;
|
|
31
|
+
dataChannelState: RTCDataChannelState | 'none';
|
|
32
|
+
localCandidates: number;
|
|
33
|
+
remoteCandidates: number;
|
|
34
|
+
connectedAt?: Date;
|
|
35
|
+
}
|
|
36
|
+
export declare class SignalingChannel extends EventEmitter {
|
|
37
|
+
private options;
|
|
38
|
+
constructor(options: SignalingChannelOptions);
|
|
39
|
+
send(message: SignalingMessage): Promise<void>;
|
|
40
|
+
sendOffer(to: string, from: string, offer: RTCSessionDescriptionInit): Promise<void>;
|
|
41
|
+
sendAnswer(to: string, from: string, answer: RTCSessionDescriptionInit): Promise<void>;
|
|
42
|
+
sendIceCandidate(to: string, from: string, candidate: RTCIceCandidateInit): Promise<void>;
|
|
43
|
+
sendBye(to: string, from: string): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
export declare class WebRTCClient extends EventEmitter {
|
|
46
|
+
private peerId;
|
|
47
|
+
private signaling;
|
|
48
|
+
private iceServers;
|
|
49
|
+
private dataChannelOptions;
|
|
50
|
+
private connectionTimeout;
|
|
51
|
+
private debug;
|
|
52
|
+
private connections;
|
|
53
|
+
private dataChannels;
|
|
54
|
+
private pendingCandidates;
|
|
55
|
+
constructor(options: WebRTCClientOptions);
|
|
56
|
+
getPeerId(): string;
|
|
57
|
+
getPeerInfo(peerId: string): PeerInfo | null;
|
|
58
|
+
getConnectedPeers(): string[];
|
|
59
|
+
connect(remotePeerId: string): Promise<void>;
|
|
60
|
+
disconnect(remotePeerId: string): void;
|
|
61
|
+
disconnectAll(): void;
|
|
62
|
+
send(data: unknown, remotePeerId?: string): void;
|
|
63
|
+
sendBinary(data: ArrayBuffer | Uint8Array, remotePeerId?: string): void;
|
|
64
|
+
private generatePeerId;
|
|
65
|
+
private log;
|
|
66
|
+
private createPeerConnection;
|
|
67
|
+
private setupDataChannel;
|
|
68
|
+
private setupSignalingHandlers;
|
|
69
|
+
private addPendingCandidates;
|
|
70
|
+
private waitForConnection;
|
|
71
|
+
}
|
|
72
|
+
export declare const DEFAULT_ICE_SERVERS: IceServer[];
|
|
73
|
+
export declare function isWebRTCAvailable(): boolean;
|
|
74
|
+
export declare function getWebRTCSupport(): {
|
|
75
|
+
available: boolean;
|
|
76
|
+
dataChannels: boolean;
|
|
77
|
+
media: boolean;
|
|
78
|
+
environment: 'browser' | 'node' | 'unknown';
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webrtc/index.ts"],"names":[],"mappings":"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"}
|