@xtr-dev/rondevu-client 0.12.4 → 0.17.0
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 +100 -381
- package/dist/api.d.ts +75 -96
- package/dist/api.js +202 -243
- package/dist/crypto-adapter.d.ts +37 -0
- package/dist/crypto-adapter.js +4 -0
- package/dist/index.d.ts +8 -15
- package/dist/index.js +5 -8
- package/dist/node-crypto-adapter.d.ts +35 -0
- package/dist/node-crypto-adapter.js +80 -0
- package/dist/rondevu-signaler.d.ts +14 -12
- package/dist/rondevu-signaler.js +111 -95
- package/dist/rondevu.d.ts +329 -0
- package/dist/rondevu.js +648 -0
- package/dist/rpc-batcher.d.ts +61 -0
- package/dist/rpc-batcher.js +111 -0
- package/dist/types.d.ts +8 -21
- package/dist/types.js +4 -6
- package/dist/web-crypto-adapter.d.ts +16 -0
- package/dist/web-crypto-adapter.js +52 -0
- package/package.json +1 -1
- package/dist/bin.d.ts +0 -35
- package/dist/bin.js +0 -35
- package/dist/connection-manager.d.ts +0 -104
- package/dist/connection-manager.js +0 -324
- package/dist/connection.d.ts +0 -112
- package/dist/connection.js +0 -194
- package/dist/durable-connection.d.ts +0 -120
- package/dist/durable-connection.js +0 -244
- package/dist/event-bus.d.ts +0 -52
- package/dist/event-bus.js +0 -84
- package/dist/noop-signaler.d.ts +0 -14
- package/dist/noop-signaler.js +0 -27
- package/dist/quick-start.d.ts +0 -29
- package/dist/quick-start.js +0 -44
- package/dist/rondevu-context.d.ts +0 -10
- package/dist/rondevu-context.js +0 -20
- package/dist/rondevu-service.d.ts +0 -87
- package/dist/rondevu-service.js +0 -170
- package/dist/service-client.d.ts +0 -77
- package/dist/service-client.js +0 -158
- package/dist/service-host.d.ts +0 -67
- package/dist/service-host.js +0 -120
- package/dist/signaler.d.ts +0 -25
- package/dist/signaler.js +0 -89
- package/dist/webrtc-context.d.ts +0 -5
- package/dist/webrtc-context.js +0 -35
package/dist/api.d.ts
CHANGED
|
@@ -1,40 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rondevu API Client -
|
|
2
|
+
* Rondevu API Client - RPC interface
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
export interface Keypair {
|
|
9
|
-
publicKey: string;
|
|
10
|
-
privateKey: string;
|
|
11
|
-
}
|
|
12
|
-
export interface OfferRequest {
|
|
13
|
-
sdp: string;
|
|
14
|
-
topics?: string[];
|
|
15
|
-
ttl?: number;
|
|
16
|
-
secret?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface Offer {
|
|
19
|
-
id: string;
|
|
20
|
-
peerId: string;
|
|
21
|
-
sdp: string;
|
|
22
|
-
topics: string[];
|
|
23
|
-
ttl: number;
|
|
24
|
-
createdAt: number;
|
|
25
|
-
expiresAt: number;
|
|
26
|
-
answererPeerId?: string;
|
|
27
|
-
}
|
|
4
|
+
import { CryptoAdapter, Keypair } from './crypto-adapter.js';
|
|
5
|
+
import { BatcherOptions } from './rpc-batcher.js';
|
|
6
|
+
export type { Keypair } from './crypto-adapter.js';
|
|
7
|
+
export type { BatcherOptions } from './rpc-batcher.js';
|
|
28
8
|
export interface OfferRequest {
|
|
29
9
|
sdp: string;
|
|
30
10
|
}
|
|
31
11
|
export interface ServiceRequest {
|
|
32
|
-
username: string;
|
|
33
12
|
serviceFqn: string;
|
|
34
13
|
offers: OfferRequest[];
|
|
35
14
|
ttl?: number;
|
|
36
|
-
isPublic?: boolean;
|
|
37
|
-
metadata?: Record<string, any>;
|
|
38
15
|
signature: string;
|
|
39
16
|
message: string;
|
|
40
17
|
}
|
|
@@ -46,121 +23,123 @@ export interface ServiceOffer {
|
|
|
46
23
|
}
|
|
47
24
|
export interface Service {
|
|
48
25
|
serviceId: string;
|
|
49
|
-
uuid: string;
|
|
50
26
|
offers: ServiceOffer[];
|
|
51
27
|
username: string;
|
|
52
28
|
serviceFqn: string;
|
|
53
|
-
isPublic: boolean;
|
|
54
|
-
metadata?: Record<string, any>;
|
|
55
29
|
createdAt: number;
|
|
56
30
|
expiresAt: number;
|
|
57
31
|
}
|
|
58
32
|
export interface IceCandidate {
|
|
59
|
-
candidate: RTCIceCandidateInit;
|
|
33
|
+
candidate: RTCIceCandidateInit | null;
|
|
60
34
|
createdAt: number;
|
|
61
35
|
}
|
|
62
36
|
/**
|
|
63
|
-
* RondevuAPI -
|
|
37
|
+
* RondevuAPI - RPC-based API client for Rondevu signaling server
|
|
64
38
|
*/
|
|
65
39
|
export declare class RondevuAPI {
|
|
66
40
|
private baseUrl;
|
|
67
|
-
private
|
|
68
|
-
|
|
41
|
+
private username;
|
|
42
|
+
private keypair;
|
|
43
|
+
private crypto;
|
|
44
|
+
private batcher;
|
|
45
|
+
constructor(baseUrl: string, username: string, keypair: Keypair, cryptoAdapter?: CryptoAdapter, batcherOptions?: BatcherOptions | false);
|
|
69
46
|
/**
|
|
70
|
-
*
|
|
47
|
+
* Generate authentication parameters for RPC calls
|
|
71
48
|
*/
|
|
72
|
-
|
|
49
|
+
private generateAuth;
|
|
73
50
|
/**
|
|
74
|
-
*
|
|
51
|
+
* Execute RPC call with optional batching
|
|
75
52
|
*/
|
|
76
|
-
private
|
|
53
|
+
private rpc;
|
|
77
54
|
/**
|
|
78
|
-
*
|
|
55
|
+
* Execute single RPC call directly (bypasses batcher)
|
|
79
56
|
*/
|
|
80
|
-
|
|
57
|
+
private rpcDirect;
|
|
81
58
|
/**
|
|
82
|
-
*
|
|
59
|
+
* Execute batch RPC calls directly (bypasses batcher)
|
|
83
60
|
*/
|
|
84
|
-
|
|
61
|
+
private rpcBatchDirect;
|
|
85
62
|
/**
|
|
86
|
-
*
|
|
87
|
-
|
|
88
|
-
static verifySignature(message: string, signatureBase64: string, publicKeyBase64: string): Promise<boolean>;
|
|
89
|
-
/**
|
|
90
|
-
* Register a new peer and get credentials
|
|
63
|
+
* Generate an Ed25519 keypair for username claiming and service publishing
|
|
64
|
+
* @param cryptoAdapter - Optional crypto adapter (defaults to WebCryptoAdapter)
|
|
91
65
|
*/
|
|
92
|
-
|
|
66
|
+
static generateKeypair(cryptoAdapter?: CryptoAdapter): Promise<Keypair>;
|
|
93
67
|
/**
|
|
94
|
-
*
|
|
68
|
+
* Sign a message with an Ed25519 private key
|
|
69
|
+
* @param cryptoAdapter - Optional crypto adapter (defaults to WebCryptoAdapter)
|
|
95
70
|
*/
|
|
96
|
-
|
|
71
|
+
static signMessage(message: string, privateKeyBase64: string, cryptoAdapter?: CryptoAdapter): Promise<string>;
|
|
97
72
|
/**
|
|
98
|
-
*
|
|
73
|
+
* Verify an Ed25519 signature
|
|
74
|
+
* @param cryptoAdapter - Optional crypto adapter (defaults to WebCryptoAdapter)
|
|
99
75
|
*/
|
|
100
|
-
|
|
76
|
+
static verifySignature(message: string, signatureBase64: string, publicKeyBase64: string, cryptoAdapter?: CryptoAdapter): Promise<boolean>;
|
|
101
77
|
/**
|
|
102
|
-
*
|
|
78
|
+
* Check if a username is available
|
|
103
79
|
*/
|
|
104
|
-
|
|
105
|
-
offerId: string;
|
|
106
|
-
}>;
|
|
80
|
+
isUsernameAvailable(username: string): Promise<boolean>;
|
|
107
81
|
/**
|
|
108
|
-
*
|
|
82
|
+
* Check if current username is claimed
|
|
109
83
|
*/
|
|
110
|
-
|
|
111
|
-
sdp: string;
|
|
112
|
-
offerId: string;
|
|
113
|
-
} | null>;
|
|
84
|
+
isUsernameClaimed(): Promise<boolean>;
|
|
114
85
|
/**
|
|
115
|
-
*
|
|
86
|
+
* Publish a service
|
|
116
87
|
*/
|
|
117
|
-
|
|
88
|
+
publishService(service: ServiceRequest): Promise<Service>;
|
|
118
89
|
/**
|
|
119
|
-
*
|
|
90
|
+
* Get service by FQN (direct lookup, random, or paginated)
|
|
120
91
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
92
|
+
getService(serviceFqn: string, options?: {
|
|
93
|
+
limit?: number;
|
|
94
|
+
offset?: number;
|
|
95
|
+
}): Promise<any>;
|
|
124
96
|
/**
|
|
125
|
-
*
|
|
97
|
+
* Delete a service
|
|
126
98
|
*/
|
|
127
|
-
|
|
128
|
-
candidates: IceCandidate[];
|
|
129
|
-
offerId: string;
|
|
130
|
-
}>;
|
|
99
|
+
deleteService(serviceFqn: string): Promise<void>;
|
|
131
100
|
/**
|
|
132
|
-
*
|
|
101
|
+
* Answer an offer
|
|
133
102
|
*/
|
|
134
|
-
|
|
103
|
+
answerOffer(serviceFqn: string, offerId: string, sdp: string): Promise<void>;
|
|
135
104
|
/**
|
|
136
|
-
* Get
|
|
105
|
+
* Get answer for a specific offer (offerer polls this)
|
|
137
106
|
*/
|
|
138
|
-
|
|
139
|
-
offerId: string;
|
|
107
|
+
getOfferAnswer(serviceFqn: string, offerId: string): Promise<{
|
|
140
108
|
sdp: string;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
searchServicesByUsername(username: string): Promise<Service[]>;
|
|
109
|
+
offerId: string;
|
|
110
|
+
answererId: string;
|
|
111
|
+
answeredAt: number;
|
|
112
|
+
} | null>;
|
|
146
113
|
/**
|
|
147
|
-
*
|
|
148
|
-
*/
|
|
149
|
-
|
|
114
|
+
* Combined polling for answers and ICE candidates
|
|
115
|
+
*/
|
|
116
|
+
poll(since?: number): Promise<{
|
|
117
|
+
answers: Array<{
|
|
118
|
+
offerId: string;
|
|
119
|
+
serviceId?: string;
|
|
120
|
+
answererId: string;
|
|
121
|
+
sdp: string;
|
|
122
|
+
answeredAt: number;
|
|
123
|
+
}>;
|
|
124
|
+
iceCandidates: Record<string, Array<{
|
|
125
|
+
candidate: RTCIceCandidateInit | null;
|
|
126
|
+
role: 'offerer' | 'answerer';
|
|
127
|
+
peerId: string;
|
|
128
|
+
createdAt: number;
|
|
129
|
+
}>>;
|
|
130
|
+
}>;
|
|
150
131
|
/**
|
|
151
|
-
*
|
|
132
|
+
* Add ICE candidates to a specific offer
|
|
152
133
|
*/
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
claimedAt?: number;
|
|
157
|
-
expiresAt?: number;
|
|
134
|
+
addOfferIceCandidates(serviceFqn: string, offerId: string, candidates: RTCIceCandidateInit[]): Promise<{
|
|
135
|
+
count: number;
|
|
136
|
+
offerId: string;
|
|
158
137
|
}>;
|
|
159
138
|
/**
|
|
160
|
-
*
|
|
139
|
+
* Get ICE candidates for a specific offer
|
|
161
140
|
*/
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
141
|
+
getOfferIceCandidates(serviceFqn: string, offerId: string, since?: number): Promise<{
|
|
142
|
+
candidates: IceCandidate[];
|
|
143
|
+
offerId: string;
|
|
165
144
|
}>;
|
|
166
145
|
}
|