reactor-effect-browser 0.7.0 → 0.8.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 +26 -21
- package/dist/BrowserMedia.d.ts +28 -0
- package/dist/BrowserMedia.d.ts.map +1 -0
- package/dist/BrowserMedia.js +56 -0
- package/dist/BrowserMedia.js.map +1 -0
- package/dist/BrowserPeer.d.ts +23 -0
- package/dist/BrowserPeer.d.ts.map +1 -0
- package/dist/BrowserPeer.js +298 -0
- package/dist/BrowserPeer.js.map +1 -0
- package/dist/index.d.ts +2 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -21
- package/dist/index.js.map +1 -1
- package/package.json +12 -11
- package/dist/_internal/audio-packet.d.ts +0 -13
- package/dist/_internal/audio-packet.d.ts.map +0 -1
- package/dist/_internal/audio-packet.js +0 -43
- package/dist/_internal/audio-packet.js.map +0 -1
- package/dist/_internal/audio.d.ts +0 -48
- package/dist/_internal/audio.d.ts.map +0 -1
- package/dist/_internal/audio.js +0 -242
- package/dist/_internal/audio.js.map +0 -1
- package/dist/_internal/media.d.ts +0 -78
- package/dist/_internal/media.d.ts.map +0 -1
- package/dist/_internal/media.js +0 -414
- package/dist/_internal/media.js.map +0 -1
- package/dist/_internal/pcm-worklet.d.ts +0 -2
- package/dist/_internal/pcm-worklet.d.ts.map +0 -1
- package/dist/_internal/pcm-worklet.js +0 -51
- package/dist/_internal/pcm-worklet.js.map +0 -1
- package/dist/_internal/peer.d.ts +0 -30
- package/dist/_internal/peer.d.ts.map +0 -1
- package/dist/_internal/peer.js +0 -294
- package/dist/_internal/peer.js.map +0 -1
- package/dist/_internal/recording.d.ts +0 -15
- package/dist/_internal/recording.d.ts.map +0 -1
- package/dist/_internal/recording.js +0 -9
- package/dist/_internal/recording.js.map +0 -1
package/dist/_internal/peer.js
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import { ReactorError } from "reactor-effect-client";
|
|
3
|
-
import { errorOf } from "reactor-effect-client/host";
|
|
4
|
-
const attempt = (body) => Effect.try({ try: body, catch: (e) => errorOf(e, "InvalidState") });
|
|
5
|
-
export const requireBrowserPeer = () => {
|
|
6
|
-
if (typeof RTCPeerConnection !== "function" || typeof MediaStream !== "function")
|
|
7
|
-
throw ReactorError.fromCode("UnsupportedHost", "Browser transport requires RTCPeerConnection and MediaStream; choose the native peer layer explicitly on a supported server runtime.", { outcome: "not-submitted" });
|
|
8
|
-
};
|
|
9
|
-
export class BrowserPeer {
|
|
10
|
-
bufferedLimit;
|
|
11
|
-
nativeTracks = true;
|
|
12
|
-
pc;
|
|
13
|
-
channels;
|
|
14
|
-
transceivers = new Map();
|
|
15
|
-
received = new Map();
|
|
16
|
-
leases = new Set();
|
|
17
|
-
messageLimit = 262_144;
|
|
18
|
-
constructor(bufferedLimit = 1_048_576) {
|
|
19
|
-
this.bufferedLimit = bufferedLimit;
|
|
20
|
-
}
|
|
21
|
-
prepare(servers, tracks, emit) {
|
|
22
|
-
const self = this;
|
|
23
|
-
return Effect.gen(function* () {
|
|
24
|
-
const pc = yield* attempt(() => {
|
|
25
|
-
requireBrowserPeer();
|
|
26
|
-
self.close();
|
|
27
|
-
const pc = new RTCPeerConnection({ iceServers: [...servers] });
|
|
28
|
-
self.pc = pc;
|
|
29
|
-
// Reliable, ordered defaults; preserve the source's control-before-data ordering.
|
|
30
|
-
const control = pc.createDataChannel("control"), data = pc.createDataChannel("data");
|
|
31
|
-
self.channels = { control, data };
|
|
32
|
-
const live = () => self.pc === pc;
|
|
33
|
-
const wire = (channel, kind) => {
|
|
34
|
-
channel.binaryType = "arraybuffer";
|
|
35
|
-
channel.onopen = () => {
|
|
36
|
-
if (live())
|
|
37
|
-
emit({ type: "channel", channel: kind, open: true });
|
|
38
|
-
};
|
|
39
|
-
channel.onclose = () => {
|
|
40
|
-
if (live())
|
|
41
|
-
emit({ type: "channel", channel: kind, open: false });
|
|
42
|
-
};
|
|
43
|
-
channel.onerror = () => {
|
|
44
|
-
if (live())
|
|
45
|
-
emit({
|
|
46
|
-
type: "error",
|
|
47
|
-
error: ReactorError.fromCode("Disconnected", `${kind} channel error`),
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
channel.onmessage = (event) => {
|
|
51
|
-
if (!live())
|
|
52
|
-
return;
|
|
53
|
-
if (!(event.data instanceof ArrayBuffer)) {
|
|
54
|
-
emit({
|
|
55
|
-
type: "error",
|
|
56
|
-
error: ReactorError.fromCode("Protocol", "nonbinary channel message"),
|
|
57
|
-
});
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (event.data.byteLength > self.messageLimit) {
|
|
61
|
-
emit({
|
|
62
|
-
type: "error",
|
|
63
|
-
error: ReactorError.fromCode("Overflow", "received message exceeds negotiated/local bound"),
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
emit({ type: "message", channel: kind, bytes: new Uint8Array(event.data) });
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
wire(control, "control");
|
|
71
|
-
wire(data, "data");
|
|
72
|
-
for (const declared of tracks)
|
|
73
|
-
self.transceivers.set(declared.name, {
|
|
74
|
-
declared,
|
|
75
|
-
transceiver: pc.addTransceiver(declared.kind, { direction: declared.direction }),
|
|
76
|
-
});
|
|
77
|
-
pc.onconnectionstatechange = () => {
|
|
78
|
-
if (live())
|
|
79
|
-
emit({ type: "state", state: pc.connectionState });
|
|
80
|
-
};
|
|
81
|
-
pc.onicecandidate = (event) => {
|
|
82
|
-
if (!live())
|
|
83
|
-
return;
|
|
84
|
-
if (event.candidate === null) {
|
|
85
|
-
emit({ type: "ice" });
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const c = event.candidate;
|
|
89
|
-
emit({
|
|
90
|
-
type: "ice",
|
|
91
|
-
candidate: {
|
|
92
|
-
candidate: c.candidate,
|
|
93
|
-
...(c.sdpMid === null ? {} : { sdp_mid: c.sdpMid }),
|
|
94
|
-
...(c.sdpMLineIndex === null ? {} : { sdp_mline_index: c.sdpMLineIndex }),
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
pc.ontrack = (event) => {
|
|
99
|
-
if (!live()) {
|
|
100
|
-
event.track.stop();
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const entry = [...self.transceivers.entries()].find(([, item]) => item.transceiver === event.transceiver);
|
|
104
|
-
if (entry === undefined || event.transceiver.mid === null) {
|
|
105
|
-
event.track.stop();
|
|
106
|
-
emit({
|
|
107
|
-
type: "error",
|
|
108
|
-
error: ReactorError.fromCode("Protocol", "received track has no declared mapping"),
|
|
109
|
-
});
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const [name] = entry;
|
|
113
|
-
self.received.get(name)?.stop();
|
|
114
|
-
self.received.set(name, event.track);
|
|
115
|
-
emit({ type: "track", name, mid: event.transceiver.mid });
|
|
116
|
-
};
|
|
117
|
-
return pc;
|
|
118
|
-
});
|
|
119
|
-
return yield* Effect.tryPromise({
|
|
120
|
-
try: async (signal) => {
|
|
121
|
-
const abort = () => {
|
|
122
|
-
if (self.pc === pc)
|
|
123
|
-
self.close();
|
|
124
|
-
};
|
|
125
|
-
signal.addEventListener("abort", abort, { once: true });
|
|
126
|
-
try {
|
|
127
|
-
const offer = await pc.createOffer();
|
|
128
|
-
if (signal.aborted || self.pc !== pc)
|
|
129
|
-
throw ReactorError.fromCode("Aborted", "peer preparation interrupted");
|
|
130
|
-
if (offer.sdp === undefined || offer.sdp.length === 0)
|
|
131
|
-
throw ReactorError.fromCode("Protocol", "createOffer returned no SDP");
|
|
132
|
-
await pc.setLocalDescription(offer);
|
|
133
|
-
if (signal.aborted || self.pc !== pc)
|
|
134
|
-
throw ReactorError.fromCode("Aborted", "peer preparation interrupted");
|
|
135
|
-
const mapping = tracks.map((track) => {
|
|
136
|
-
const mid = self.transceivers.get(track.name)?.transceiver.mid;
|
|
137
|
-
if (mid == null)
|
|
138
|
-
throw ReactorError.fromCode("Protocol", `missing mid after setLocalDescription: ${track.name}`);
|
|
139
|
-
return Object.freeze({ ...track, mid });
|
|
140
|
-
});
|
|
141
|
-
return { sdp: offer.sdp, mapping: Object.freeze(mapping) };
|
|
142
|
-
}
|
|
143
|
-
finally {
|
|
144
|
-
signal.removeEventListener("abort", abort);
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
catch: (e) => errorOf(e, "Disconnected", "prepare peer"),
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
answer(sdp) {
|
|
152
|
-
return Effect.tryPromise({
|
|
153
|
-
try: async () => {
|
|
154
|
-
const pc = this.require();
|
|
155
|
-
await pc.setRemoteDescription({ type: "answer", sdp });
|
|
156
|
-
if (this.pc !== pc)
|
|
157
|
-
throw ReactorError.fromCode("Disconnected", "peer closed while applying SDP answer");
|
|
158
|
-
const negotiated = pc.sctp?.maxMessageSize;
|
|
159
|
-
this.messageLimit =
|
|
160
|
-
typeof negotiated === "number" && Number.isFinite(negotiated) && negotiated >= 1
|
|
161
|
-
? Math.min(Math.floor(negotiated), 262_144)
|
|
162
|
-
: 262_144;
|
|
163
|
-
},
|
|
164
|
-
catch: (e) => errorOf(e, "Disconnected", "apply SDP answer"),
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
require() {
|
|
168
|
-
if (this.pc === undefined)
|
|
169
|
-
throw ReactorError.fromCode("InvalidState", "peer is closed");
|
|
170
|
-
return this.pc;
|
|
171
|
-
}
|
|
172
|
-
named(name) {
|
|
173
|
-
this.require();
|
|
174
|
-
const entry = this.transceivers.get(name);
|
|
175
|
-
if (entry === undefined)
|
|
176
|
-
throw ReactorError.fromCode("InvalidState", `unknown track: ${name}`);
|
|
177
|
-
return entry;
|
|
178
|
-
}
|
|
179
|
-
send(kind, bytes) {
|
|
180
|
-
return attempt(() => {
|
|
181
|
-
const channel = this.channels?.[kind];
|
|
182
|
-
if (channel?.readyState !== "open")
|
|
183
|
-
throw ReactorError.fromCode("Disconnected", `${kind} channel is not open`, {
|
|
184
|
-
outcome: "not-submitted",
|
|
185
|
-
});
|
|
186
|
-
if (bytes.byteLength > this.messageLimit ||
|
|
187
|
-
channel.bufferedAmount + bytes.byteLength > this.bufferedLimit)
|
|
188
|
-
throw ReactorError.fromCode("Overflow", `${kind} message/send buffer bound exceeded`, {
|
|
189
|
-
outcome: "not-submitted",
|
|
190
|
-
});
|
|
191
|
-
try {
|
|
192
|
-
channel.send(bytes);
|
|
193
|
-
}
|
|
194
|
-
catch (e) {
|
|
195
|
-
throw errorOf(e, "Disconnected", `send ${kind}`);
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
lease(name) {
|
|
200
|
-
this.require();
|
|
201
|
-
const track = this.received.get(name);
|
|
202
|
-
if (track?.readyState !== "live")
|
|
203
|
-
throw ReactorError.fromCode("InvalidState", `no live received track: ${name}`);
|
|
204
|
-
const clone = track.clone();
|
|
205
|
-
this.leases.add(clone);
|
|
206
|
-
return clone;
|
|
207
|
-
}
|
|
208
|
-
release(track) {
|
|
209
|
-
this.leases.delete(track);
|
|
210
|
-
track.stop();
|
|
211
|
-
}
|
|
212
|
-
direction(name, active) {
|
|
213
|
-
return attempt(() => {
|
|
214
|
-
const entry = this.named(name);
|
|
215
|
-
entry.transceiver.direction = active ? entry.declared.direction : "inactive";
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
replace(name, track) {
|
|
219
|
-
return Effect.tryPromise({
|
|
220
|
-
try: async () => {
|
|
221
|
-
const entry = this.named(name), pc = this.require();
|
|
222
|
-
if (entry.declared.direction !== "sendonly")
|
|
223
|
-
throw ReactorError.fromCode("InvalidState", `${name} is not an outgoing track`);
|
|
224
|
-
if (track !== null && (track.kind !== entry.declared.kind || track.readyState !== "live"))
|
|
225
|
-
throw ReactorError.fromCode("InvalidState", "outgoing track kind/liveness mismatch");
|
|
226
|
-
await entry.transceiver.sender.replaceTrack(track);
|
|
227
|
-
if (this.pc !== pc)
|
|
228
|
-
throw ReactorError.fromCode("Disconnected", "peer closed during replaceTrack");
|
|
229
|
-
},
|
|
230
|
-
catch: (e) => errorOf(e, "InvalidState", "replace track"),
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
maxBitrate(name, bitsPerSecond) {
|
|
234
|
-
return Effect.tryPromise({
|
|
235
|
-
try: async () => {
|
|
236
|
-
const entry = this.named(name);
|
|
237
|
-
if (entry.declared.direction !== "sendonly" ||
|
|
238
|
-
!Number.isSafeInteger(bitsPerSecond) ||
|
|
239
|
-
bitsPerSecond < 1)
|
|
240
|
-
throw ReactorError.fromCode("InvalidState", "maxBitrate requires an outgoing track and positive integral bits/sec");
|
|
241
|
-
const sender = entry.transceiver.sender, parameters = sender.getParameters();
|
|
242
|
-
if (parameters.encodings.length === 0)
|
|
243
|
-
throw ReactorError.fromCode("UnsupportedCapability", "sender has no mutable encodings yet");
|
|
244
|
-
for (const encoding of parameters.encodings)
|
|
245
|
-
encoding.maxBitrate = bitsPerSecond;
|
|
246
|
-
await sender.setParameters(parameters);
|
|
247
|
-
},
|
|
248
|
-
catch: (e) => errorOf(e, "UnsupportedCapability", "sender bitrate"),
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
get stats() {
|
|
252
|
-
return Effect.tryPromise({
|
|
253
|
-
try: async () => {
|
|
254
|
-
const pc = this.require(), report = await pc.getStats();
|
|
255
|
-
if (this.pc !== pc)
|
|
256
|
-
throw ReactorError.fromCode("Disconnected", "stale stats generation");
|
|
257
|
-
const entries = [];
|
|
258
|
-
report.forEach((entry) => {
|
|
259
|
-
entries.push(entry);
|
|
260
|
-
});
|
|
261
|
-
return entries;
|
|
262
|
-
},
|
|
263
|
-
catch: (e) => errorOf(e, "UnsupportedCapability", "WebRTC statistics"),
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
close() {
|
|
267
|
-
const pc = this.pc, channels = this.channels;
|
|
268
|
-
this.pc = undefined;
|
|
269
|
-
this.channels = undefined;
|
|
270
|
-
if (channels !== undefined)
|
|
271
|
-
for (const channel of [channels.control, channels.data]) {
|
|
272
|
-
channel.onopen = null;
|
|
273
|
-
channel.onclose = null;
|
|
274
|
-
channel.onerror = null;
|
|
275
|
-
channel.onmessage = null;
|
|
276
|
-
channel.close();
|
|
277
|
-
}
|
|
278
|
-
if (pc !== undefined) {
|
|
279
|
-
pc.onconnectionstatechange = null;
|
|
280
|
-
pc.onicecandidate = null;
|
|
281
|
-
pc.ontrack = null;
|
|
282
|
-
pc.close();
|
|
283
|
-
}
|
|
284
|
-
for (const track of this.received.values())
|
|
285
|
-
track.stop();
|
|
286
|
-
for (const track of this.leases)
|
|
287
|
-
track.stop();
|
|
288
|
-
this.received.clear();
|
|
289
|
-
this.leases.clear();
|
|
290
|
-
this.transceivers.clear();
|
|
291
|
-
this.messageLimit = 262_144;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
//# sourceMappingURL=peer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/_internal/peer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,MAAM,OAAO,GAAG,CAAI,IAAa,EAAkC,EAAE,CACnE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAS,EAAE;IAC3C,IAAI,OAAO,iBAAiB,KAAK,UAAU,IAAI,OAAO,WAAW,KAAK,UAAU;QAC9E,MAAM,YAAY,CAAC,QAAQ,CACzB,iBAAiB,EACjB,sIAAsI,EACtI,EAAE,OAAO,EAAE,eAAe,EAAE,CAC7B,CAAC;AACN,CAAC,CAAC;AACF,MAAM,OAAO,WAAW;IAWO,aAAa;IAVjC,YAAY,GAAG,IAAI,CAAC;IACrB,EAAE,CAAgC;IAClC,QAAQ,CAAgE;IAC/D,YAAY,GAAG,IAAI,GAAG,EAGpC,CAAC;IACa,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC/C,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,YAAY,GAAG,OAAO,CAAC;IAC/B,YAA6B,aAAa,GAAG,SAAS;6BAAzB,aAAa;IAAe,CAAC;IAC1D,OAAO,CACL,OAAgC,EAChC,MAAwB,EACxB,IAAgC;QAEhC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC7B,kBAAkB,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,EAAE,GAAG,IAAI,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,kFAAkF;gBAClF,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC7C,IAAI,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,CAAC,OAAuB,EAAE,IAAa,EAAQ,EAAE;oBAC5D,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC;oBACnC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;wBACpB,IAAI,IAAI,EAAE;4BAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnE,CAAC,CAAC;oBACF,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;wBACrB,IAAI,IAAI,EAAE;4BAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACpE,CAAC,CAAC;oBACF,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;wBACrB,IAAI,IAAI,EAAE;4BACR,IAAI,CAAC;gCACH,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,gBAAgB,CAAC;6BACtE,CAAC,CAAC;oBACP,CAAC,CAAC;oBACF,OAAO,CAAC,SAAS,GAAG,CAAC,KAA4B,EAAE,EAAE;wBACnD,IAAI,CAAC,IAAI,EAAE;4BAAE,OAAO;wBACpB,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC;4BACzC,IAAI,CAAC;gCACH,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;6BACtE,CAAC,CAAC;4BACH,OAAO;wBACT,CAAC;wBACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC9C,IAAI,CAAC;gCACH,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,YAAY,CAAC,QAAQ,CAC1B,UAAU,EACV,iDAAiD,CAClD;6BACF,CAAC,CAAC;4BACH,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9E,CAAC,CAAC;gBACJ,CAAC,CAAC;gBACF,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnB,KAAK,MAAM,QAAQ,IAAI,MAAM;oBAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;wBACnC,QAAQ;wBACR,WAAW,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;qBACjF,CAAC,CAAC;gBACL,EAAE,CAAC,uBAAuB,GAAG,GAAG,EAAE;oBAChC,IAAI,IAAI,EAAE;wBAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;gBACjE,CAAC,CAAC;gBACF,EAAE,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,IAAI,EAAE;wBAAE,OAAO;oBACpB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;wBAC7B,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;wBACtB,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;oBAC1B,IAAI,CAAC;wBACH,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE;4BACT,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;4BACnD,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;yBAC1E;qBACF,CAAC,CAAC;gBACL,CAAC,CAAC;gBACF,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBACZ,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CACrD,CAAC;oBACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;wBAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC;4BACH,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,wCAAwC,CAAC;yBACnF,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC5D,CAAC,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACpB,MAAM,KAAK,GAAG,GAAS,EAAE;wBACvB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;4BAAE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,CAAC,CAAC;oBACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;wBACrC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;4BAClC,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;wBACzE,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;4BACnD,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;wBACzE,MAAM,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBACpC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;4BAClC,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;wBACzE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BACnC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;4BAC/D,IAAI,GAAG,IAAI,IAAI;gCACb,MAAM,YAAY,CAAC,QAAQ,CACzB,UAAU,EACV,0CAA0C,KAAK,CAAC,IAAI,EAAE,CACvD,CAAC;4BACJ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC1C,CAAC,CAAC,CAAC;wBACH,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7D,CAAC;4BAAS,CAAC;wBACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC;aACzD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,OAAO,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;oBAChB,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;gBACvF,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;gBAC3C,IAAI,CAAC,YAAY;oBACf,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;wBAC9E,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;wBAC3C,CAAC,CAAC,OAAO,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IACO,OAAO;QACb,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;YAAE,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACO,KAAK,CAAC,IAAY;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,IAAa,EAAE,KAA8B;QAChD,OAAO,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,OAAO,EAAE,UAAU,KAAK,MAAM;gBAChC,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,sBAAsB,EAAE;oBACzE,OAAO,EAAE,eAAe;iBACzB,CAAC,CAAC;YACL,IACE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;gBACpC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;gBAE9D,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,qCAAqC,EAAE;oBACpF,OAAO,EAAE,eAAe;iBACzB,CAAC,CAAC;YACL,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,UAAU,KAAK,MAAM;YAC9B,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,2BAA2B,IAAI,EAAE,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAuB;QAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,MAAe;QACrC,OAAO,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,KAA8B;QAClD,OAAO,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU;oBACzC,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,2BAA2B,CAAC,CAAC;gBAClF,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;oBACvF,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;gBACvF,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;oBAChB,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;YACnF,CAAC;YACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,IAAY,EAAE,aAAqB;QAC5C,OAAO,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IACE,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU;oBACvC,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;oBACpC,aAAa,GAAG,CAAC;oBAEjB,MAAM,YAAY,CAAC,QAAQ,CACzB,cAAc,EACd,sEAAsE,CACvE,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EACrC,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;oBACnC,MAAM,YAAY,CAAC,QAAQ,CACzB,uBAAuB,EACvB,qCAAqC,CACtC,CAAC;gBACJ,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS;oBAAE,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;gBACjF,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,uBAAuB,EAAE,gBAAgB,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EACvB,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;oBAAE,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;gBAC1F,MAAM,OAAO,GAAc,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAE;oBAChC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,uBAAuB,EAAE,mBAAmB,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IACD,KAAK;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAChB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS;YACxB,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,CAAC,uBAAuB,GAAG,IAAI,CAAC;YAClC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;YACzB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;YAClB,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type * as Effect from "effect/Effect";
|
|
2
|
-
import { Coordinator } from "reactor-effect-client";
|
|
3
|
-
import type { ReactorError } from "reactor-effect-client";
|
|
4
|
-
import type { ClipReady } from "reactor-effect-client/wire";
|
|
5
|
-
export type Segment = Coordinator.Segment;
|
|
6
|
-
export type DownloadOptions = Coordinator.DownloadOptions;
|
|
7
|
-
export type DownloadedClip = Coordinator.DownloadedClip;
|
|
8
|
-
/** Parse a clip's HLS media playlist into the segments to concatenate. */
|
|
9
|
-
export declare const parsePlaylist: (text: string, baseUrl: string, maxSegments?: number) => readonly Coordinator.Segment[];
|
|
10
|
-
/**
|
|
11
|
-
* Bounded transport of a prepared recording, through the portable coordinator
|
|
12
|
-
* client (`Coordinator.make()`); see `Coordinator.Client.downloadClip`.
|
|
13
|
-
*/
|
|
14
|
-
export declare const downloadClip: (coordinator: Coordinator.Client, clip: ClipReady, options?: DownloadOptions) => Effect.Effect<DownloadedClip, ReactorError>;
|
|
15
|
-
//# sourceMappingURL=recording.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/_internal/recording.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAC1C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;AAExD,0EAA0E;AAC1E,eAAO,MAAM,aAAa,yFAA4B,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,YAAY,gBACV,WAAW,CAAC,MAAM,QACzB,SAAS,YACL,eAAe,KACxB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAA4C,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Coordinator } from "reactor-effect-client";
|
|
2
|
-
/** Parse a clip's HLS media playlist into the segments to concatenate. */
|
|
3
|
-
export const parsePlaylist = Coordinator.parsePlaylist;
|
|
4
|
-
/**
|
|
5
|
-
* Bounded transport of a prepared recording, through the portable coordinator
|
|
6
|
-
* client (`Coordinator.make()`); see `Coordinator.Client.downloadClip`.
|
|
7
|
-
*/
|
|
8
|
-
export const downloadClip = (coordinator, clip, options) => coordinator.downloadClip(clip, options);
|
|
9
|
-
//# sourceMappingURL=recording.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/_internal/recording.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAA+B,EAC/B,IAAe,EACf,OAAyB,EACoB,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC"}
|