@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.
Files changed (46) hide show
  1. package/README.md +100 -381
  2. package/dist/api.d.ts +75 -96
  3. package/dist/api.js +202 -243
  4. package/dist/crypto-adapter.d.ts +37 -0
  5. package/dist/crypto-adapter.js +4 -0
  6. package/dist/index.d.ts +8 -15
  7. package/dist/index.js +5 -8
  8. package/dist/node-crypto-adapter.d.ts +35 -0
  9. package/dist/node-crypto-adapter.js +80 -0
  10. package/dist/rondevu-signaler.d.ts +14 -12
  11. package/dist/rondevu-signaler.js +111 -95
  12. package/dist/rondevu.d.ts +329 -0
  13. package/dist/rondevu.js +648 -0
  14. package/dist/rpc-batcher.d.ts +61 -0
  15. package/dist/rpc-batcher.js +111 -0
  16. package/dist/types.d.ts +8 -21
  17. package/dist/types.js +4 -6
  18. package/dist/web-crypto-adapter.d.ts +16 -0
  19. package/dist/web-crypto-adapter.js +52 -0
  20. package/package.json +1 -1
  21. package/dist/bin.d.ts +0 -35
  22. package/dist/bin.js +0 -35
  23. package/dist/connection-manager.d.ts +0 -104
  24. package/dist/connection-manager.js +0 -324
  25. package/dist/connection.d.ts +0 -112
  26. package/dist/connection.js +0 -194
  27. package/dist/durable-connection.d.ts +0 -120
  28. package/dist/durable-connection.js +0 -244
  29. package/dist/event-bus.d.ts +0 -52
  30. package/dist/event-bus.js +0 -84
  31. package/dist/noop-signaler.d.ts +0 -14
  32. package/dist/noop-signaler.js +0 -27
  33. package/dist/quick-start.d.ts +0 -29
  34. package/dist/quick-start.js +0 -44
  35. package/dist/rondevu-context.d.ts +0 -10
  36. package/dist/rondevu-context.js +0 -20
  37. package/dist/rondevu-service.d.ts +0 -87
  38. package/dist/rondevu-service.js +0 -170
  39. package/dist/service-client.d.ts +0 -77
  40. package/dist/service-client.js +0 -158
  41. package/dist/service-host.d.ts +0 -67
  42. package/dist/service-host.js +0 -120
  43. package/dist/signaler.d.ts +0 -25
  44. package/dist/signaler.js +0 -89
  45. package/dist/webrtc-context.d.ts +0 -5
  46. package/dist/webrtc-context.js +0 -35
package/dist/signaler.js DELETED
@@ -1,89 +0,0 @@
1
- /**
2
- * RondevuSignaler - Handles ICE candidate exchange via Rondevu API
3
- * Uses polling to retrieve remote candidates
4
- */
5
- export class RondevuSignaler {
6
- constructor(api, offerId) {
7
- this.api = api;
8
- this.offerId = offerId;
9
- }
10
- addOfferListener(callback) {
11
- throw new Error('Method not implemented.');
12
- }
13
- addAnswerListener(callback) {
14
- throw new Error('Method not implemented.');
15
- }
16
- setOffer(offer) {
17
- throw new Error('Method not implemented.');
18
- }
19
- setAnswer(answer) {
20
- throw new Error('Method not implemented.');
21
- }
22
- /**
23
- * Send a local ICE candidate to signaling server
24
- */
25
- async addIceCandidate(candidate) {
26
- const candidateData = candidate.toJSON();
27
- // Skip empty candidates
28
- if (!candidateData.candidate || candidateData.candidate === '') {
29
- return;
30
- }
31
- await this.api.addIceCandidates(this.offerId, [candidateData]);
32
- }
33
- /**
34
- * Poll for remote ICE candidates and call callback for each one
35
- * Returns cleanup function to stop polling
36
- */
37
- addListener(callback) {
38
- let lastTimestamp = 0;
39
- let polling = true;
40
- const poll = async () => {
41
- while (polling) {
42
- try {
43
- const candidates = await this.api.getIceCandidates(this.offerId, lastTimestamp);
44
- // Process each candidate
45
- for (const item of candidates) {
46
- if (item.candidate &&
47
- item.candidate.candidate &&
48
- item.candidate.candidate !== '') {
49
- try {
50
- const rtcCandidate = new RTCIceCandidate(item.candidate);
51
- callback(rtcCandidate);
52
- lastTimestamp = item.createdAt;
53
- }
54
- catch (err) {
55
- console.warn('Failed to process ICE candidate:', err);
56
- lastTimestamp = item.createdAt;
57
- }
58
- }
59
- else {
60
- lastTimestamp = item.createdAt;
61
- }
62
- }
63
- }
64
- catch (err) {
65
- // If offer not found or expired, stop polling
66
- if (err instanceof Error &&
67
- (err.message.includes('404') || err.message.includes('410'))) {
68
- console.warn('Offer not found or expired, stopping ICE polling');
69
- polling = false;
70
- break;
71
- }
72
- console.error('Error polling for ICE candidates:', err);
73
- }
74
- // Poll every second
75
- if (polling) {
76
- await new Promise(resolve => setTimeout(resolve, 1000));
77
- }
78
- }
79
- };
80
- // Start polling in the background
81
- poll().then(() => {
82
- console.log('ICE polling started');
83
- });
84
- // Return cleanup function
85
- return () => {
86
- polling = false;
87
- };
88
- }
89
- }
@@ -1,5 +0,0 @@
1
- export declare class WebRTCContext {
2
- private readonly config?;
3
- constructor(config?: RTCConfiguration | undefined);
4
- createPeerConnection(): RTCPeerConnection;
5
- }
@@ -1,35 +0,0 @@
1
- const DEFAULT_RTC_CONFIGURATION = {
2
- iceServers: [
3
- {
4
- urls: 'stun:stun.relay.metered.ca:80',
5
- },
6
- {
7
- urls: 'turn:standard.relay.metered.ca:80',
8
- username: 'c53a9c971da5e6f3bc959d8d',
9
- credential: 'QaccPqtPPaxyokXp',
10
- },
11
- {
12
- urls: 'turn:standard.relay.metered.ca:80?transport=tcp',
13
- username: 'c53a9c971da5e6f3bc959d8d',
14
- credential: 'QaccPqtPPaxyokXp',
15
- },
16
- {
17
- urls: 'turn:standard.relay.metered.ca:443',
18
- username: 'c53a9c971da5e6f3bc959d8d',
19
- credential: 'QaccPqtPPaxyokXp',
20
- },
21
- {
22
- urls: 'turns:standard.relay.metered.ca:443?transport=tcp',
23
- username: 'c53a9c971da5e6f3bc959d8d',
24
- credential: 'QaccPqtPPaxyokXp',
25
- },
26
- ],
27
- };
28
- export class WebRTCContext {
29
- constructor(config) {
30
- this.config = config;
31
- }
32
- createPeerConnection() {
33
- return new RTCPeerConnection(this.config || DEFAULT_RTC_CONFIGURATION);
34
- }
35
- }