@ajna-inc/webrtc 0.2.1 → 0.6.1
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/.npmvc/attestations.jsonld +32 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
- package/build/index.d.mts +11 -0
- package/build/index.mjs +12 -0
- package/build/webrtc/WebRTCApi.d.mts +131 -0
- package/build/webrtc/WebRTCApi.d.mts.map +1 -0
- package/build/webrtc/WebRTCApi.mjs +161 -0
- package/build/webrtc/WebRTCApi.mjs.map +1 -0
- package/build/webrtc/WebRTCEvents.d.mts +115 -0
- package/build/webrtc/WebRTCEvents.d.mts.map +1 -0
- package/build/webrtc/WebRTCEvents.mjs +20 -0
- package/build/webrtc/WebRTCEvents.mjs.map +1 -0
- package/build/webrtc/WebRTCModule.d.mts +63 -0
- package/build/webrtc/WebRTCModule.d.mts.map +1 -0
- package/build/webrtc/WebRTCModule.mjs +51 -0
- package/build/webrtc/WebRTCModule.mjs.map +1 -0
- package/build/webrtc/handlers/AnswerHandler.mjs +23 -0
- package/build/webrtc/handlers/AnswerHandler.mjs.map +1 -0
- package/build/webrtc/handlers/EndHandler.mjs +23 -0
- package/build/webrtc/handlers/EndHandler.mjs.map +1 -0
- package/build/webrtc/handlers/IceHandler.mjs +23 -0
- package/build/webrtc/handlers/IceHandler.mjs.map +1 -0
- package/build/webrtc/handlers/OfferHandler.mjs +23 -0
- package/build/webrtc/handlers/OfferHandler.mjs.map +1 -0
- package/build/webrtc/handlers/ProposeHandler.mjs +23 -0
- package/build/webrtc/handlers/ProposeHandler.mjs.map +1 -0
- package/build/webrtc/handlers/RenegotiateHandler.mjs +23 -0
- package/build/webrtc/handlers/RenegotiateHandler.mjs.map +1 -0
- package/build/webrtc/handlers/index.mjs +6 -0
- package/build/webrtc/messages/AnswerMessage.d.mts +29 -0
- package/build/webrtc/messages/AnswerMessage.d.mts.map +1 -0
- package/build/webrtc/messages/AnswerMessage.mjs +44 -0
- package/build/webrtc/messages/AnswerMessage.mjs.map +1 -0
- package/build/webrtc/messages/EndMessage.d.mts +19 -0
- package/build/webrtc/messages/EndMessage.d.mts.map +1 -0
- package/build/webrtc/messages/EndMessage.mjs +31 -0
- package/build/webrtc/messages/EndMessage.mjs.map +1 -0
- package/build/webrtc/messages/IceMessage.d.mts +21 -0
- package/build/webrtc/messages/IceMessage.d.mts.map +1 -0
- package/build/webrtc/messages/IceMessage.mjs +38 -0
- package/build/webrtc/messages/IceMessage.mjs.map +1 -0
- package/build/webrtc/messages/OfferMessage.d.mts +56 -0
- package/build/webrtc/messages/OfferMessage.d.mts.map +1 -0
- package/build/webrtc/messages/OfferMessage.mjs +86 -0
- package/build/webrtc/messages/OfferMessage.mjs.map +1 -0
- package/build/webrtc/messages/ProposeMessage.d.mts +70 -0
- package/build/webrtc/messages/ProposeMessage.d.mts.map +1 -0
- package/build/webrtc/messages/ProposeMessage.mjs +76 -0
- package/build/webrtc/messages/ProposeMessage.mjs.map +1 -0
- package/build/webrtc/messages/RenegotiateMessage.d.mts +59 -0
- package/build/webrtc/messages/RenegotiateMessage.d.mts.map +1 -0
- package/build/webrtc/messages/RenegotiateMessage.mjs +56 -0
- package/build/webrtc/messages/RenegotiateMessage.mjs.map +1 -0
- package/build/webrtc/messages/index.d.mts +6 -0
- package/build/webrtc/messages/index.mjs +6 -0
- package/build/webrtc/repository/WebRTCCallRecord.d.mts +32 -0
- package/build/webrtc/repository/WebRTCCallRecord.d.mts.map +1 -0
- package/build/webrtc/repository/WebRTCCallRecord.mjs +31 -0
- package/build/webrtc/repository/WebRTCCallRecord.mjs.map +1 -0
- package/build/webrtc/repository/WebRTCCallRepository.d.mts +10 -0
- package/build/webrtc/repository/WebRTCCallRepository.d.mts.map +1 -0
- package/build/webrtc/repository/WebRTCCallRepository.mjs +23 -0
- package/build/webrtc/repository/WebRTCCallRepository.mjs.map +1 -0
- package/build/webrtc/services/WebRTCService.d.mts +93 -0
- package/build/webrtc/services/WebRTCService.d.mts.map +1 -0
- package/build/webrtc/services/WebRTCService.mjs +244 -0
- package/build/webrtc/services/WebRTCService.mjs.map +1 -0
- package/package.json +19 -15
- package/README.md +0 -222
- package/build/index.d.ts +0 -8
- package/build/index.js +0 -29
- package/build/index.js.map +0 -1
- package/build/webrtc/WebRTCApi.d.ts +0 -125
- package/build/webrtc/WebRTCApi.js +0 -186
- package/build/webrtc/WebRTCApi.js.map +0 -1
- package/build/webrtc/WebRTCEvents.d.ts +0 -110
- package/build/webrtc/WebRTCEvents.js +0 -19
- package/build/webrtc/WebRTCEvents.js.map +0 -1
- package/build/webrtc/WebRTCModule.d.ts +0 -56
- package/build/webrtc/WebRTCModule.js +0 -40
- package/build/webrtc/WebRTCModule.js.map +0 -1
- package/build/webrtc/handlers/AnswerHandler.d.ts +0 -9
- package/build/webrtc/handlers/AnswerHandler.js +0 -31
- package/build/webrtc/handlers/AnswerHandler.js.map +0 -1
- package/build/webrtc/handlers/EndHandler.d.ts +0 -9
- package/build/webrtc/handlers/EndHandler.js +0 -31
- package/build/webrtc/handlers/EndHandler.js.map +0 -1
- package/build/webrtc/handlers/IceHandler.d.ts +0 -9
- package/build/webrtc/handlers/IceHandler.js +0 -31
- package/build/webrtc/handlers/IceHandler.js.map +0 -1
- package/build/webrtc/handlers/OfferHandler.d.ts +0 -9
- package/build/webrtc/handlers/OfferHandler.js +0 -31
- package/build/webrtc/handlers/OfferHandler.js.map +0 -1
- package/build/webrtc/handlers/ProposeHandler.d.ts +0 -9
- package/build/webrtc/handlers/ProposeHandler.js +0 -31
- package/build/webrtc/handlers/ProposeHandler.js.map +0 -1
- package/build/webrtc/handlers/RenegotiateHandler.d.ts +0 -9
- package/build/webrtc/handlers/RenegotiateHandler.js +0 -31
- package/build/webrtc/handlers/RenegotiateHandler.js.map +0 -1
- package/build/webrtc/handlers/index.d.ts +0 -6
- package/build/webrtc/handlers/index.js +0 -23
- package/build/webrtc/handlers/index.js.map +0 -1
- package/build/webrtc/messages/AnswerMessage.d.ts +0 -23
- package/build/webrtc/messages/AnswerMessage.js +0 -52
- package/build/webrtc/messages/AnswerMessage.js.map +0 -1
- package/build/webrtc/messages/EndMessage.d.ts +0 -13
- package/build/webrtc/messages/EndMessage.js +0 -37
- package/build/webrtc/messages/EndMessage.js.map +0 -1
- package/build/webrtc/messages/IceMessage.d.ts +0 -15
- package/build/webrtc/messages/IceMessage.js +0 -43
- package/build/webrtc/messages/IceMessage.js.map +0 -1
- package/build/webrtc/messages/OfferMessage.d.ts +0 -49
- package/build/webrtc/messages/OfferMessage.js +0 -102
- package/build/webrtc/messages/OfferMessage.js.map +0 -1
- package/build/webrtc/messages/ProposeMessage.d.ts +0 -63
- package/build/webrtc/messages/ProposeMessage.js +0 -84
- package/build/webrtc/messages/ProposeMessage.js.map +0 -1
- package/build/webrtc/messages/RenegotiateMessage.d.ts +0 -52
- package/build/webrtc/messages/RenegotiateMessage.js +0 -65
- package/build/webrtc/messages/RenegotiateMessage.js.map +0 -1
- package/build/webrtc/messages/index.d.ts +0 -6
- package/build/webrtc/messages/index.js +0 -23
- package/build/webrtc/messages/index.js.map +0 -1
- package/build/webrtc/repository/WebRTCCallRecord.d.ts +0 -29
- package/build/webrtc/repository/WebRTCCallRecord.js +0 -30
- package/build/webrtc/repository/WebRTCCallRecord.js.map +0 -1
- package/build/webrtc/repository/WebRTCCallRepository.d.ts +0 -5
- package/build/webrtc/repository/WebRTCCallRepository.js +0 -30
- package/build/webrtc/repository/WebRTCCallRepository.js.map +0 -1
- package/build/webrtc/services/WebRTCService.d.ts +0 -86
- package/build/webrtc/services/WebRTCService.js +0 -229
- package/build/webrtc/services/WebRTCService.js.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { ConnectionService, MessageSender, AgentContext } from '@credo-ts/core';
|
|
2
|
-
import { WebRTCService } from './services/WebRTCService';
|
|
3
|
-
import type { IcePolicy, IceServerConfig } from './messages/OfferMessage';
|
|
4
|
-
import type { MediaType } from './messages/ProposeMessage';
|
|
5
|
-
import type { RenegotiateReason } from './messages/RenegotiateMessage';
|
|
6
|
-
import { type WebRTCModuleConfig } from './WebRTCModule';
|
|
7
|
-
export declare class WebRTCApi {
|
|
8
|
-
private connectionService;
|
|
9
|
-
private messageSender;
|
|
10
|
-
private webrtcService;
|
|
11
|
-
private agentContext;
|
|
12
|
-
private config;
|
|
13
|
-
constructor(connectionService: ConnectionService, messageSender: MessageSender, webrtcService: WebRTCService, agentContext: AgentContext);
|
|
14
|
-
onAgentReady: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Get the configured default ICE servers
|
|
17
|
-
*/
|
|
18
|
-
getDefaultIceServers(): WebRTCModuleConfig['iceServers'];
|
|
19
|
-
/**
|
|
20
|
-
* Propose a call to a peer (before sending offer)
|
|
21
|
-
* This allows sharing ICE servers and negotiating capabilities before the SDP exchange
|
|
22
|
-
*/
|
|
23
|
-
proposeCall(options: {
|
|
24
|
-
connectionId: string;
|
|
25
|
-
threadId?: string;
|
|
26
|
-
parentThreadId?: string;
|
|
27
|
-
/** Requested media types */
|
|
28
|
-
media?: MediaType[];
|
|
29
|
-
/** Whether data channel is requested */
|
|
30
|
-
data?: boolean;
|
|
31
|
-
/** Topology: 'mesh' (P2P) or 'sfu' */
|
|
32
|
-
topology?: 'mesh' | 'sfu';
|
|
33
|
-
/** Whether trickle ICE is supported (defaults to module config) */
|
|
34
|
-
trickle?: boolean;
|
|
35
|
-
/** ICE policy (defaults to module config) */
|
|
36
|
-
policy?: IcePolicy;
|
|
37
|
-
/** ICE servers - uses module defaults if not provided */
|
|
38
|
-
iceServers?: IceServerConfig[];
|
|
39
|
-
/** Optional reason/context */
|
|
40
|
-
reason?: string;
|
|
41
|
-
}): Promise<{
|
|
42
|
-
threadId: string;
|
|
43
|
-
}>;
|
|
44
|
-
/**
|
|
45
|
-
* Start a call by sending an SDP offer
|
|
46
|
-
*/
|
|
47
|
-
startCall(options: {
|
|
48
|
-
connectionId: string;
|
|
49
|
-
threadId: string;
|
|
50
|
-
parentThreadId?: string;
|
|
51
|
-
sdp: string;
|
|
52
|
-
/** ICE servers - uses module defaults if not provided */
|
|
53
|
-
iceServers?: IceServerConfig[];
|
|
54
|
-
/** ICE policy (defaults to module config) */
|
|
55
|
-
policy?: IcePolicy;
|
|
56
|
-
/** Whether trickle ICE is enabled (defaults to module config) */
|
|
57
|
-
trickle?: boolean;
|
|
58
|
-
}): Promise<import("./repository/WebRTCCallRecord").WebRTCCallRecord>;
|
|
59
|
-
/**
|
|
60
|
-
* Accept a call by sending an SDP answer
|
|
61
|
-
*/
|
|
62
|
-
acceptCall(options: {
|
|
63
|
-
connectionId: string;
|
|
64
|
-
threadId: string;
|
|
65
|
-
parentThreadId?: string;
|
|
66
|
-
sdp: string;
|
|
67
|
-
/** Optional ICE servers from callee (if different from caller's) */
|
|
68
|
-
iceServers?: IceServerConfig[];
|
|
69
|
-
}): Promise<void>;
|
|
70
|
-
/**
|
|
71
|
-
* Send an ICE candidate
|
|
72
|
-
*/
|
|
73
|
-
sendIce(options: {
|
|
74
|
-
connectionId: string;
|
|
75
|
-
threadId: string;
|
|
76
|
-
parentThreadId?: string;
|
|
77
|
-
candidate?: Record<string, unknown>;
|
|
78
|
-
endOfCandidates?: boolean;
|
|
79
|
-
}): Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* Request renegotiation (for ICE restart, adding/removing tracks, etc.)
|
|
82
|
-
*
|
|
83
|
-
* Use this when:
|
|
84
|
-
* - ICE connection failed and needs restart
|
|
85
|
-
* - Adding screenshare or switching cameras
|
|
86
|
-
* - Network changed (WiFi to cellular)
|
|
87
|
-
* - Changing codec or bandwidth settings
|
|
88
|
-
*/
|
|
89
|
-
renegotiate(options: {
|
|
90
|
-
connectionId: string;
|
|
91
|
-
threadId: string;
|
|
92
|
-
parentThreadId?: string;
|
|
93
|
-
/** Reason for renegotiation */
|
|
94
|
-
reason: RenegotiateReason | string;
|
|
95
|
-
/** Whether to perform ICE restart (required for recovering failed connections) */
|
|
96
|
-
iceRestart?: boolean;
|
|
97
|
-
/** New ICE servers (useful when switching networks) */
|
|
98
|
-
iceServers?: IceServerConfig[];
|
|
99
|
-
/** Updated ICE policy */
|
|
100
|
-
policy?: IcePolicy;
|
|
101
|
-
}): Promise<void>;
|
|
102
|
-
/**
|
|
103
|
-
* Request ICE restart (convenience method for renegotiate with iceRestart=true)
|
|
104
|
-
*
|
|
105
|
-
* Use when the WebRTC connection has failed or disconnected
|
|
106
|
-
*/
|
|
107
|
-
restartIce(options: {
|
|
108
|
-
connectionId: string;
|
|
109
|
-
threadId: string;
|
|
110
|
-
parentThreadId?: string;
|
|
111
|
-
/** New ICE servers (optional, useful when original servers are unreachable) */
|
|
112
|
-
iceServers?: IceServerConfig[];
|
|
113
|
-
/** Updated ICE policy */
|
|
114
|
-
policy?: IcePolicy;
|
|
115
|
-
}): Promise<void>;
|
|
116
|
-
/**
|
|
117
|
-
* End a call
|
|
118
|
-
*/
|
|
119
|
-
endCall(options: {
|
|
120
|
-
connectionId: string;
|
|
121
|
-
threadId: string;
|
|
122
|
-
parentThreadId?: string;
|
|
123
|
-
reason?: string;
|
|
124
|
-
}): Promise<void>;
|
|
125
|
-
}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.WebRTCApi = void 0;
|
|
13
|
-
const core_1 = require("@credo-ts/core");
|
|
14
|
-
const tsyringe_1 = require("tsyringe");
|
|
15
|
-
const core_2 = require("@credo-ts/core");
|
|
16
|
-
const WebRTCService_1 = require("./services/WebRTCService");
|
|
17
|
-
const handlers_1 = require("./handlers");
|
|
18
|
-
const WebRTCModule_1 = require("./WebRTCModule");
|
|
19
|
-
let WebRTCApi = class WebRTCApi {
|
|
20
|
-
constructor(connectionService, messageSender, webrtcService, agentContext) {
|
|
21
|
-
this.connectionService = connectionService;
|
|
22
|
-
this.messageSender = messageSender;
|
|
23
|
-
this.webrtcService = webrtcService;
|
|
24
|
-
this.agentContext = agentContext;
|
|
25
|
-
// Register handlers at API construction time to ensure DI is ready
|
|
26
|
-
this.onAgentReady = (() => {
|
|
27
|
-
this.agentContext.dependencyManager.registerMessageHandlers([
|
|
28
|
-
new handlers_1.OfferHandler(this.webrtcService),
|
|
29
|
-
new handlers_1.AnswerHandler(this.webrtcService),
|
|
30
|
-
new handlers_1.IceHandler(this.webrtcService),
|
|
31
|
-
new handlers_1.RenegotiateHandler(this.webrtcService),
|
|
32
|
-
new handlers_1.EndHandler(this.webrtcService),
|
|
33
|
-
new handlers_1.ProposeHandler(this.webrtcService),
|
|
34
|
-
]);
|
|
35
|
-
return true;
|
|
36
|
-
})();
|
|
37
|
-
// Get config from dependency manager, with fallback defaults
|
|
38
|
-
try {
|
|
39
|
-
this.config = this.agentContext.dependencyManager.resolve(WebRTCModule_1.WebRTCModuleConfigToken);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
this.config = {
|
|
43
|
-
iceServers: [
|
|
44
|
-
{ urls: 'stun:stun.l.google.com:19302' },
|
|
45
|
-
{ urls: 'stun:stun1.l.google.com:19302' },
|
|
46
|
-
],
|
|
47
|
-
defaultPolicy: 'all',
|
|
48
|
-
defaultTrickle: true,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get the configured default ICE servers
|
|
54
|
-
*/
|
|
55
|
-
getDefaultIceServers() {
|
|
56
|
-
return this.config.iceServers;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Propose a call to a peer (before sending offer)
|
|
60
|
-
* This allows sharing ICE servers and negotiating capabilities before the SDP exchange
|
|
61
|
-
*/
|
|
62
|
-
async proposeCall(options) {
|
|
63
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
64
|
-
// Use module defaults for missing options
|
|
65
|
-
const iceServers = options.iceServers ?? this.config.iceServers;
|
|
66
|
-
const policy = options.policy ?? this.config.defaultPolicy;
|
|
67
|
-
const trickle = options.trickle ?? this.config.defaultTrickle;
|
|
68
|
-
const { message } = this.webrtcService.createPropose({
|
|
69
|
-
threadId: options.threadId,
|
|
70
|
-
parentThreadId: options.parentThreadId,
|
|
71
|
-
media: options.media,
|
|
72
|
-
data: options.data,
|
|
73
|
-
topology: options.topology ?? 'mesh',
|
|
74
|
-
trickle,
|
|
75
|
-
policy,
|
|
76
|
-
iceServers,
|
|
77
|
-
reason: options.reason,
|
|
78
|
-
});
|
|
79
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
80
|
-
message,
|
|
81
|
-
connectionRecord: connection,
|
|
82
|
-
});
|
|
83
|
-
await this.messageSender.sendMessage(outbound);
|
|
84
|
-
return { threadId: message.threadId ?? message.id };
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Start a call by sending an SDP offer
|
|
88
|
-
*/
|
|
89
|
-
async startCall(options) {
|
|
90
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
91
|
-
// Use module defaults for missing options
|
|
92
|
-
const iceServers = options.iceServers ?? this.config.iceServers;
|
|
93
|
-
const policy = options.policy ?? this.config.defaultPolicy;
|
|
94
|
-
const trickle = options.trickle ?? this.config.defaultTrickle;
|
|
95
|
-
const { message, record } = this.webrtcService.createOffer(this.agentContext, connection, options.threadId, options.parentThreadId, options.sdp, iceServers, policy, trickle);
|
|
96
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
97
|
-
message,
|
|
98
|
-
associatedRecord: record,
|
|
99
|
-
connectionRecord: connection,
|
|
100
|
-
});
|
|
101
|
-
await this.messageSender.sendMessage(outbound);
|
|
102
|
-
return record;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Accept a call by sending an SDP answer
|
|
106
|
-
*/
|
|
107
|
-
async acceptCall(options) {
|
|
108
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
109
|
-
const { message } = this.webrtcService.createAnswer(this.agentContext, connection, options.threadId, options.parentThreadId, options.sdp, options.iceServers);
|
|
110
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
111
|
-
message,
|
|
112
|
-
connectionRecord: connection,
|
|
113
|
-
});
|
|
114
|
-
await this.messageSender.sendMessage(outbound);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Send an ICE candidate
|
|
118
|
-
*/
|
|
119
|
-
async sendIce(options) {
|
|
120
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
121
|
-
const message = this.webrtcService.createIce(options.threadId, options.parentThreadId, options.candidate, options.endOfCandidates);
|
|
122
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
123
|
-
message,
|
|
124
|
-
connectionRecord: connection,
|
|
125
|
-
});
|
|
126
|
-
await this.messageSender.sendMessage(outbound);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Request renegotiation (for ICE restart, adding/removing tracks, etc.)
|
|
130
|
-
*
|
|
131
|
-
* Use this when:
|
|
132
|
-
* - ICE connection failed and needs restart
|
|
133
|
-
* - Adding screenshare or switching cameras
|
|
134
|
-
* - Network changed (WiFi to cellular)
|
|
135
|
-
* - Changing codec or bandwidth settings
|
|
136
|
-
*/
|
|
137
|
-
async renegotiate(options) {
|
|
138
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
139
|
-
const message = this.webrtcService.createRenegotiate({
|
|
140
|
-
threadId: options.threadId,
|
|
141
|
-
parentThreadId: options.parentThreadId,
|
|
142
|
-
reason: options.reason,
|
|
143
|
-
iceRestart: options.iceRestart,
|
|
144
|
-
iceServers: options.iceServers,
|
|
145
|
-
policy: options.policy,
|
|
146
|
-
});
|
|
147
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
148
|
-
message,
|
|
149
|
-
connectionRecord: connection,
|
|
150
|
-
});
|
|
151
|
-
await this.messageSender.sendMessage(outbound);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Request ICE restart (convenience method for renegotiate with iceRestart=true)
|
|
155
|
-
*
|
|
156
|
-
* Use when the WebRTC connection has failed or disconnected
|
|
157
|
-
*/
|
|
158
|
-
async restartIce(options) {
|
|
159
|
-
return this.renegotiate({
|
|
160
|
-
...options,
|
|
161
|
-
reason: 'ice-restart',
|
|
162
|
-
iceRestart: true,
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* End a call
|
|
167
|
-
*/
|
|
168
|
-
async endCall(options) {
|
|
169
|
-
const connection = await this.connectionService.getById(this.agentContext, options.connectionId);
|
|
170
|
-
const message = this.webrtcService.createEnd(options.threadId, options.parentThreadId, options.reason);
|
|
171
|
-
const outbound = await (0, core_2.getOutboundMessageContext)(this.agentContext, {
|
|
172
|
-
message,
|
|
173
|
-
connectionRecord: connection,
|
|
174
|
-
});
|
|
175
|
-
await this.messageSender.sendMessage(outbound);
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
exports.WebRTCApi = WebRTCApi;
|
|
179
|
-
exports.WebRTCApi = WebRTCApi = __decorate([
|
|
180
|
-
(0, tsyringe_1.injectable)(),
|
|
181
|
-
__metadata("design:paramtypes", [core_1.ConnectionService,
|
|
182
|
-
core_1.MessageSender,
|
|
183
|
-
WebRTCService_1.WebRTCService,
|
|
184
|
-
core_1.AgentContext])
|
|
185
|
-
], WebRTCApi);
|
|
186
|
-
//# sourceMappingURL=WebRTCApi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebRTCApi.js","sourceRoot":"","sources":["../../src/webrtc/WebRTCApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import type { InboundMessageContext } from '@credo-ts/core';
|
|
2
|
-
import type { IcePolicy } from './messages/OfferMessage';
|
|
3
|
-
import type { MediaType } from './messages/ProposeMessage';
|
|
4
|
-
import type { RenegotiateReason } from './messages/RenegotiateMessage';
|
|
5
|
-
export declare enum WebRTCEvents {
|
|
6
|
-
/** Incoming call proposal (before offer) */
|
|
7
|
-
IncomingPropose = "WebRTCEvents.IncomingPropose",
|
|
8
|
-
/** Incoming SDP offer */
|
|
9
|
-
IncomingOffer = "WebRTCEvents.IncomingOffer",
|
|
10
|
-
/** Incoming SDP answer */
|
|
11
|
-
IncomingAnswer = "WebRTCEvents.IncomingAnswer",
|
|
12
|
-
/** Incoming ICE candidate */
|
|
13
|
-
IncomingIce = "WebRTCEvents.IncomingIce",
|
|
14
|
-
/** Renegotiation requested (track changes, ICE restart) */
|
|
15
|
-
RenegotiateRequested = "WebRTCEvents.RenegotiateRequested",
|
|
16
|
-
/** Call ended */
|
|
17
|
-
CallEnded = "WebRTCEvents.CallEnded"
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* ICE server configuration in events
|
|
21
|
-
*/
|
|
22
|
-
export interface IceServerEventConfig {
|
|
23
|
-
urls: string | string[];
|
|
24
|
-
username?: string;
|
|
25
|
-
credential?: string;
|
|
26
|
-
credentialType?: 'password' | 'oauth';
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Event emitted when a call proposal is received
|
|
30
|
-
*/
|
|
31
|
-
export interface IncomingProposeEvent {
|
|
32
|
-
context: InboundMessageContext;
|
|
33
|
-
thid: string;
|
|
34
|
-
pthid?: string;
|
|
35
|
-
/** Requested media types */
|
|
36
|
-
media?: MediaType[];
|
|
37
|
-
/** Whether data channel is requested */
|
|
38
|
-
data?: boolean;
|
|
39
|
-
/** Topology: 'mesh' or 'sfu' */
|
|
40
|
-
topology?: 'mesh' | 'sfu';
|
|
41
|
-
/** Whether trickle ICE is supported */
|
|
42
|
-
trickle?: boolean;
|
|
43
|
-
/** ICE policy */
|
|
44
|
-
policy?: IcePolicy;
|
|
45
|
-
/** ICE servers for NAT traversal */
|
|
46
|
-
iceServers?: IceServerEventConfig[];
|
|
47
|
-
/** Optional reason/context */
|
|
48
|
-
reason?: string;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Event emitted when an SDP offer is received
|
|
52
|
-
*/
|
|
53
|
-
export interface IncomingOfferEvent {
|
|
54
|
-
context: InboundMessageContext;
|
|
55
|
-
thid: string;
|
|
56
|
-
pthid?: string;
|
|
57
|
-
sdp: string;
|
|
58
|
-
/** ICE servers for NAT traversal */
|
|
59
|
-
iceServers?: IceServerEventConfig[];
|
|
60
|
-
/** ICE policy */
|
|
61
|
-
policy?: IcePolicy;
|
|
62
|
-
/** Whether trickle ICE is enabled */
|
|
63
|
-
trickle?: boolean;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Event emitted when an SDP answer is received
|
|
67
|
-
*/
|
|
68
|
-
export interface IncomingAnswerEvent {
|
|
69
|
-
context: InboundMessageContext;
|
|
70
|
-
thid: string;
|
|
71
|
-
pthid?: string;
|
|
72
|
-
sdp: string;
|
|
73
|
-
/** Optional ICE servers from callee */
|
|
74
|
-
iceServers?: IceServerEventConfig[];
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Event emitted when an ICE candidate is received
|
|
78
|
-
*/
|
|
79
|
-
export interface IncomingIceEvent {
|
|
80
|
-
context: InboundMessageContext;
|
|
81
|
-
thid: string;
|
|
82
|
-
pthid?: string;
|
|
83
|
-
candidate: Record<string, unknown>;
|
|
84
|
-
endOfCandidates?: boolean;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Event emitted when renegotiation is requested
|
|
88
|
-
*/
|
|
89
|
-
export interface RenegotiateRequestedEvent {
|
|
90
|
-
context: InboundMessageContext;
|
|
91
|
-
thid: string;
|
|
92
|
-
pthid?: string;
|
|
93
|
-
/** Reason for renegotiation */
|
|
94
|
-
reason: RenegotiateReason | string;
|
|
95
|
-
/** Whether ICE restart is requested */
|
|
96
|
-
iceRestart?: boolean;
|
|
97
|
-
/** New ICE servers (if changed) */
|
|
98
|
-
iceServers?: IceServerEventConfig[];
|
|
99
|
-
/** Updated ICE policy */
|
|
100
|
-
policy?: IcePolicy;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Event emitted when a call ends
|
|
104
|
-
*/
|
|
105
|
-
export interface CallEndedEvent {
|
|
106
|
-
context: InboundMessageContext;
|
|
107
|
-
thid: string;
|
|
108
|
-
pthid?: string;
|
|
109
|
-
reason?: string;
|
|
110
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebRTCEvents = void 0;
|
|
4
|
-
var WebRTCEvents;
|
|
5
|
-
(function (WebRTCEvents) {
|
|
6
|
-
/** Incoming call proposal (before offer) */
|
|
7
|
-
WebRTCEvents["IncomingPropose"] = "WebRTCEvents.IncomingPropose";
|
|
8
|
-
/** Incoming SDP offer */
|
|
9
|
-
WebRTCEvents["IncomingOffer"] = "WebRTCEvents.IncomingOffer";
|
|
10
|
-
/** Incoming SDP answer */
|
|
11
|
-
WebRTCEvents["IncomingAnswer"] = "WebRTCEvents.IncomingAnswer";
|
|
12
|
-
/** Incoming ICE candidate */
|
|
13
|
-
WebRTCEvents["IncomingIce"] = "WebRTCEvents.IncomingIce";
|
|
14
|
-
/** Renegotiation requested (track changes, ICE restart) */
|
|
15
|
-
WebRTCEvents["RenegotiateRequested"] = "WebRTCEvents.RenegotiateRequested";
|
|
16
|
-
/** Call ended */
|
|
17
|
-
WebRTCEvents["CallEnded"] = "WebRTCEvents.CallEnded";
|
|
18
|
-
})(WebRTCEvents || (exports.WebRTCEvents = WebRTCEvents = {}));
|
|
19
|
-
//# sourceMappingURL=WebRTCEvents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebRTCEvents.js","sourceRoot":"","sources":["../../src/webrtc/WebRTCEvents.ts"],"names":[],"mappings":";;;AAKA,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB,4CAA4C;IAC5C,gEAAgD,CAAA;IAChD,yBAAyB;IACzB,4DAA4C,CAAA;IAC5C,0BAA0B;IAC1B,8DAA8C,CAAA;IAC9C,6BAA6B;IAC7B,wDAAwC,CAAA;IACxC,2DAA2D;IAC3D,0EAA0D,CAAA;IAC1D,iBAAiB;IACjB,oDAAoC,CAAA;AACtC,CAAC,EAbW,YAAY,4BAAZ,YAAY,QAavB"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { DependencyManager, FeatureRegistry, Module } from '@credo-ts/core';
|
|
2
|
-
import { WebRTCApi } from './WebRTCApi';
|
|
3
|
-
import type { IcePolicy } from './messages/OfferMessage';
|
|
4
|
-
/**
|
|
5
|
-
* ICE server configuration for module-level defaults
|
|
6
|
-
*/
|
|
7
|
-
export interface WebRTCIceServerConfig {
|
|
8
|
-
/** STUN/TURN server URL(s) */
|
|
9
|
-
urls: string | string[];
|
|
10
|
-
/** Username for TURN authentication */
|
|
11
|
-
username?: string;
|
|
12
|
-
/** Credential for TURN authentication */
|
|
13
|
-
credential?: string;
|
|
14
|
-
/** Credential type */
|
|
15
|
-
credentialType?: 'password' | 'oauth';
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Configuration options for WebRTCModule
|
|
19
|
-
*/
|
|
20
|
-
export interface WebRTCModuleConfig {
|
|
21
|
-
/**
|
|
22
|
-
* Default ICE servers (STUN/TURN) to use for all calls
|
|
23
|
-
* These are used when no iceServers are provided in API calls
|
|
24
|
-
*
|
|
25
|
-
* Example:
|
|
26
|
-
* ```ts
|
|
27
|
-
* iceServers: [
|
|
28
|
-
* { urls: 'stun:stun.l.google.com:19302' },
|
|
29
|
-
* { urls: 'turn:turn.example.org:3478', username: 'user', credential: 'pass' }
|
|
30
|
-
* ]
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
iceServers?: WebRTCIceServerConfig[];
|
|
34
|
-
/**
|
|
35
|
-
* Default ICE policy for NAT traversal
|
|
36
|
-
* - 'all': Use all available candidates (default)
|
|
37
|
-
* - 'relay-preferred': Prefer relay candidates but allow others
|
|
38
|
-
* - 'relay-only': Only use relay (TURN) candidates - best for strict NAT/firewall
|
|
39
|
-
*/
|
|
40
|
-
defaultPolicy?: IcePolicy;
|
|
41
|
-
/**
|
|
42
|
-
* Whether to enable trickle ICE by default
|
|
43
|
-
* @default true
|
|
44
|
-
*/
|
|
45
|
-
defaultTrickle?: boolean;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Injection token for WebRTC module configuration
|
|
49
|
-
*/
|
|
50
|
-
export declare const WebRTCModuleConfigToken: unique symbol;
|
|
51
|
-
export declare class WebRTCModule implements Module {
|
|
52
|
-
readonly api: typeof WebRTCApi;
|
|
53
|
-
readonly config: WebRTCModuleConfig;
|
|
54
|
-
constructor(config?: WebRTCModuleConfig);
|
|
55
|
-
register(dependencyManager: DependencyManager, featureRegistry: FeatureRegistry): void;
|
|
56
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebRTCModule = exports.WebRTCModuleConfigToken = void 0;
|
|
4
|
-
const core_1 = require("@credo-ts/core");
|
|
5
|
-
const WebRTCApi_1 = require("./WebRTCApi");
|
|
6
|
-
const WebRTCCallRepository_1 = require("./repository/WebRTCCallRepository");
|
|
7
|
-
const WebRTCService_1 = require("./services/WebRTCService");
|
|
8
|
-
/**
|
|
9
|
-
* Injection token for WebRTC module configuration
|
|
10
|
-
*/
|
|
11
|
-
exports.WebRTCModuleConfigToken = Symbol('WebRTCModuleConfig');
|
|
12
|
-
class WebRTCModule {
|
|
13
|
-
constructor(config = {}) {
|
|
14
|
-
this.api = WebRTCApi_1.WebRTCApi;
|
|
15
|
-
this.config = {
|
|
16
|
-
iceServers: config.iceServers ?? [
|
|
17
|
-
// Default public STUN servers
|
|
18
|
-
{ urls: 'stun:stun.l.google.com:19302' },
|
|
19
|
-
{ urls: 'stun:stun1.l.google.com:19302' },
|
|
20
|
-
],
|
|
21
|
-
defaultPolicy: config.defaultPolicy ?? 'all',
|
|
22
|
-
defaultTrickle: config.defaultTrickle ?? true,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
register(dependencyManager, featureRegistry) {
|
|
26
|
-
// Register config for injection
|
|
27
|
-
dependencyManager.registerInstance(exports.WebRTCModuleConfigToken, this.config);
|
|
28
|
-
// Services & Repo
|
|
29
|
-
dependencyManager.registerSingleton(WebRTCService_1.WebRTCService);
|
|
30
|
-
dependencyManager.registerSingleton(WebRTCCallRepository_1.WebRTCCallRepository);
|
|
31
|
-
// Handlers are registered by the API constructor (after agent init), similar to ActionMenu
|
|
32
|
-
// Feature Registry: advertise DIDComm protocol
|
|
33
|
-
featureRegistry.register(new core_1.Protocol({
|
|
34
|
-
id: 'https://didcomm.org/webrtc/1.0',
|
|
35
|
-
roles: ['caller', 'callee'],
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.WebRTCModule = WebRTCModule;
|
|
40
|
-
//# sourceMappingURL=WebRTCModule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebRTCModule.js","sourceRoot":"","sources":["../../src/webrtc/WebRTCModule.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAEzC,2CAAuC;AACvC,4EAAwE;AACxE,4DAAwD;AAmDxD;;GAEG;AACU,QAAA,uBAAuB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAEnE,MAAa,YAAY;IAIvB,YAAmB,SAA6B,EAAE;QAHlC,QAAG,GAAG,qBAAS,CAAA;QAI7B,IAAI,CAAC,MAAM,GAAG;YACZ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI;gBAC/B,8BAA8B;gBAC9B,EAAE,IAAI,EAAE,8BAA8B,EAAE;gBACxC,EAAE,IAAI,EAAE,+BAA+B,EAAE;aAC1C;YACD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK;YAC5C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;SAC9C,CAAA;IACH,CAAC;IAEM,QAAQ,CAAC,iBAAoC,EAAE,eAAgC;QACpF,gCAAgC;QAChC,iBAAiB,CAAC,gBAAgB,CAAC,+BAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAExE,kBAAkB;QAClB,iBAAiB,CAAC,iBAAiB,CAAC,6BAAa,CAAC,CAAA;QAClD,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,CAAA;QAEzD,2FAA2F;QAE3F,+CAA+C;QAC/C,eAAe,CAAC,QAAQ,CACtB,IAAI,eAAQ,CAAC;YACX,EAAE,EAAE,gCAAgC;YACpC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC5B,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAlCD,oCAkCC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { MessageHandler, MessageHandlerInboundMessage } from '@credo-ts/core';
|
|
2
|
-
import { AnswerMessage } from '../messages';
|
|
3
|
-
import { WebRTCService } from '../services/WebRTCService';
|
|
4
|
-
export declare class AnswerHandler implements MessageHandler {
|
|
5
|
-
supportedMessages: (typeof AnswerMessage)[];
|
|
6
|
-
private service;
|
|
7
|
-
constructor(service: WebRTCService);
|
|
8
|
-
handle(inbound: MessageHandlerInboundMessage<AnswerHandler>): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.AnswerHandler = void 0;
|
|
13
|
-
const messages_1 = require("../messages");
|
|
14
|
-
const tsyringe_1 = require("tsyringe");
|
|
15
|
-
const WebRTCService_1 = require("../services/WebRTCService");
|
|
16
|
-
let AnswerHandler = class AnswerHandler {
|
|
17
|
-
constructor(service) {
|
|
18
|
-
this.supportedMessages = [messages_1.AnswerMessage];
|
|
19
|
-
this.service = service;
|
|
20
|
-
}
|
|
21
|
-
async handle(inbound) {
|
|
22
|
-
await this.service.processAnswer(inbound);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
exports.AnswerHandler = AnswerHandler;
|
|
27
|
-
exports.AnswerHandler = AnswerHandler = __decorate([
|
|
28
|
-
(0, tsyringe_1.injectable)(),
|
|
29
|
-
__metadata("design:paramtypes", [WebRTCService_1.WebRTCService])
|
|
30
|
-
], AnswerHandler);
|
|
31
|
-
//# sourceMappingURL=AnswerHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnswerHandler.js","sourceRoot":"","sources":["../../../src/webrtc/handlers/AnswerHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,0CAA2C;AAC3C,uCAAqC;AACrC,6DAAyD;AAGlD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAIxB,YAAmB,OAAsB;QAHlC,sBAAiB,GAAG,CAAC,wBAAa,CAAC,CAAA;QAIxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAoD;QACtE,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzC,OAAM;IACR,CAAC;CACF,CAAA;AAZY,sCAAa;wBAAb,aAAa;IADzB,IAAA,qBAAU,GAAE;qCAKiB,6BAAa;GAJ9B,aAAa,CAYzB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { MessageHandler, MessageHandlerInboundMessage } from '@credo-ts/core';
|
|
2
|
-
import { EndMessage } from '../messages';
|
|
3
|
-
import { WebRTCService } from '../services/WebRTCService';
|
|
4
|
-
export declare class EndHandler implements MessageHandler {
|
|
5
|
-
supportedMessages: (typeof EndMessage)[];
|
|
6
|
-
private service;
|
|
7
|
-
constructor(service: WebRTCService);
|
|
8
|
-
handle(inbound: MessageHandlerInboundMessage<EndHandler>): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.EndHandler = void 0;
|
|
13
|
-
const messages_1 = require("../messages");
|
|
14
|
-
const tsyringe_1 = require("tsyringe");
|
|
15
|
-
const WebRTCService_1 = require("../services/WebRTCService");
|
|
16
|
-
let EndHandler = class EndHandler {
|
|
17
|
-
constructor(service) {
|
|
18
|
-
this.supportedMessages = [messages_1.EndMessage];
|
|
19
|
-
this.service = service;
|
|
20
|
-
}
|
|
21
|
-
async handle(inbound) {
|
|
22
|
-
await this.service.processEnd(inbound);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
exports.EndHandler = EndHandler;
|
|
27
|
-
exports.EndHandler = EndHandler = __decorate([
|
|
28
|
-
(0, tsyringe_1.injectable)(),
|
|
29
|
-
__metadata("design:paramtypes", [WebRTCService_1.WebRTCService])
|
|
30
|
-
], EndHandler);
|
|
31
|
-
//# sourceMappingURL=EndHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndHandler.js","sourceRoot":"","sources":["../../../src/webrtc/handlers/EndHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,0CAAwC;AACxC,uCAAqC;AACrC,6DAAyD;AAGlD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAIrB,YAAmB,OAAsB;QAHlC,sBAAiB,GAAG,CAAC,qBAAU,CAAC,CAAA;QAIrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAiD;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACtC,OAAM;IACR,CAAC;CACF,CAAA;AAZY,gCAAU;qBAAV,UAAU;IADtB,IAAA,qBAAU,GAAE;qCAKiB,6BAAa;GAJ9B,UAAU,CAYtB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { MessageHandler, MessageHandlerInboundMessage } from '@credo-ts/core';
|
|
2
|
-
import { IceMessage } from '../messages';
|
|
3
|
-
import { WebRTCService } from '../services/WebRTCService';
|
|
4
|
-
export declare class IceHandler implements MessageHandler {
|
|
5
|
-
supportedMessages: (typeof IceMessage)[];
|
|
6
|
-
private service;
|
|
7
|
-
constructor(service: WebRTCService);
|
|
8
|
-
handle(inbound: MessageHandlerInboundMessage<IceHandler>): Promise<void>;
|
|
9
|
-
}
|