@livekit/rtc-node 0.13.3 → 0.13.5
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/dist/data_streams/index.cjs +25 -0
- package/dist/data_streams/index.cjs.map +1 -0
- package/dist/data_streams/index.d.cts +11 -0
- package/dist/data_streams/index.d.ts +11 -0
- package/dist/data_streams/index.d.ts.map +1 -0
- package/dist/data_streams/index.js +3 -0
- package/dist/data_streams/index.js.map +1 -0
- package/dist/data_streams/stream_reader.cjs +141 -0
- package/dist/data_streams/stream_reader.cjs.map +1 -0
- package/dist/data_streams/stream_reader.d.cts +10 -0
- package/dist/data_streams/stream_reader.d.ts +10 -0
- package/dist/data_streams/stream_reader.d.ts.map +1 -0
- package/dist/data_streams/stream_reader.js +116 -0
- package/dist/data_streams/stream_reader.js.map +1 -0
- package/dist/data_streams/stream_writer.cjs +51 -0
- package/dist/data_streams/stream_writer.cjs.map +1 -0
- package/dist/data_streams/stream_writer.d.cts +26 -0
- package/dist/data_streams/stream_writer.d.ts +26 -0
- package/dist/data_streams/stream_writer.d.ts.map +1 -0
- package/dist/data_streams/stream_writer.js +26 -0
- package/dist/data_streams/stream_writer.js.map +1 -0
- package/dist/data_streams/types.cjs +17 -0
- package/dist/data_streams/types.cjs.map +1 -0
- package/dist/data_streams/types.d.cts +10 -0
- package/dist/data_streams/types.d.ts +10 -0
- package/dist/data_streams/types.d.ts.map +1 -0
- package/dist/data_streams/types.js +1 -0
- package/dist/data_streams/types.js.map +1 -0
- package/dist/index.cjs +7 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/log.cjs +42 -0
- package/dist/log.cjs.map +1 -0
- package/dist/log.d.cts +7 -0
- package/dist/log.d.ts +7 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +18 -0
- package/dist/log.js.map +1 -0
- package/dist/napi/native.d.cjs.map +1 -1
- package/dist/napi/native.d.ts +5 -5
- package/dist/native.d.ts +5 -5
- package/dist/participant.cjs +249 -16
- package/dist/participant.cjs.map +1 -1
- package/dist/participant.d.cts +40 -6
- package/dist/participant.d.ts +40 -6
- package/dist/participant.d.ts.map +1 -1
- package/dist/participant.js +252 -5
- package/dist/participant.js.map +1 -1
- package/dist/proto/ffi_pb.cjs +14 -3
- package/dist/proto/ffi_pb.cjs.map +1 -1
- package/dist/proto/ffi_pb.d.cts +81 -7
- package/dist/proto/ffi_pb.d.ts +81 -7
- package/dist/proto/ffi_pb.d.ts.map +1 -1
- package/dist/proto/ffi_pb.js +15 -4
- package/dist/proto/ffi_pb.js.map +1 -1
- package/dist/proto/room_pb.cjs +488 -30
- package/dist/proto/room_pb.cjs.map +1 -1
- package/dist/proto/room_pb.d.cts +412 -50
- package/dist/proto/room_pb.d.ts +412 -50
- package/dist/proto/room_pb.d.ts.map +1 -1
- package/dist/proto/room_pb.js +471 -29
- package/dist/proto/room_pb.js.map +1 -1
- package/dist/proto/video_frame_pb.cjs.map +1 -1
- package/dist/proto/video_frame_pb.d.cts +3 -0
- package/dist/proto/video_frame_pb.d.ts +3 -0
- package/dist/proto/video_frame_pb.d.ts.map +1 -1
- package/dist/proto/video_frame_pb.js.map +1 -1
- package/dist/room.cjs +121 -0
- package/dist/room.cjs.map +1 -1
- package/dist/room.d.cts +17 -2
- package/dist/room.d.ts +17 -2
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +122 -0
- package/dist/room.js.map +1 -1
- package/dist/types-B28ZM-Ci.d.cts +88 -0
- package/dist/types-BDnbvXeD.d.ts +88 -0
- package/dist/utils.cjs +61 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +7 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +35 -0
- package/dist/utils.js.map +1 -0
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/video_frame.cjs +2 -0
- package/dist/video_frame.cjs.map +1 -1
- package/dist/video_frame.d.ts.map +1 -1
- package/dist/video_frame.js +2 -0
- package/dist/video_frame.js.map +1 -1
- package/package.json +9 -7
- package/src/data_streams/index.ts +7 -0
- package/src/data_streams/stream_reader.ts +159 -0
- package/src/data_streams/stream_writer.ts +36 -0
- package/src/data_streams/types.ts +55 -0
- package/src/index.ts +1 -0
- package/src/log.ts +25 -0
- package/src/napi/native.d.ts +5 -5
- package/src/participant.ts +337 -29
- package/src/proto/ffi_pb.ts +86 -1
- package/src/proto/room_pb.ts +788 -68
- package/src/proto/video_frame_pb.ts +3 -0
- package/src/room.ts +141 -0
- package/src/utils.test.ts +51 -0
- package/src/utils.ts +42 -0
- package/src/version.ts +1 -1
- package/src/video_frame.ts +2 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var data_streams_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(data_streams_exports);
|
|
18
|
+
__reExport(data_streams_exports, require("./stream_reader.cjs"), module.exports);
|
|
19
|
+
__reExport(data_streams_exports, require("./stream_writer.cjs"), module.exports);
|
|
20
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
+
0 && (module.exports = {
|
|
22
|
+
...require("./stream_reader.cjs"),
|
|
23
|
+
...require("./stream_writer.cjs")
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport * from './stream_reader.js';\nexport * from './stream_writer.js';\nexport type * from './types.js';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAIA,iCAAc,+BAJd;AAKA,iCAAc,+BALd;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { a as BaseStreamInfo, f as ByteStreamHandler, b as ByteStreamInfo, e as ByteStreamOptions, B as ByteStreamReader, D as DataStreamOptions, S as StreamController, g as TextStreamHandler, c as TextStreamInfo, d as TextStreamOptions, T as TextStreamReader } from '../types-B28ZM-Ci.cjs';
|
|
2
|
+
export { ByteStreamWriter, TextStreamWriter } from './stream_writer.cjs';
|
|
3
|
+
import '../proto/room_pb.cjs';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.cjs';
|
|
6
|
+
import '../proto/handle_pb.cjs';
|
|
7
|
+
import '../proto/track_pb.cjs';
|
|
8
|
+
import '../proto/stats_pb.cjs';
|
|
9
|
+
import '../proto/e2ee_pb.cjs';
|
|
10
|
+
import '../proto/video_frame_pb.cjs';
|
|
11
|
+
import 'node:stream/web';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { a as BaseStreamInfo, f as ByteStreamHandler, b as ByteStreamInfo, e as ByteStreamOptions, B as ByteStreamReader, D as DataStreamOptions, S as StreamController, g as TextStreamHandler, c as TextStreamInfo, d as TextStreamOptions, T as TextStreamReader } from '../types-BDnbvXeD.js';
|
|
2
|
+
export { ByteStreamWriter, TextStreamWriter } from './stream_writer.js';
|
|
3
|
+
import '../proto/room_pb.js';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.js';
|
|
6
|
+
import '../proto/handle_pb.js';
|
|
7
|
+
import '../proto/track_pb.js';
|
|
8
|
+
import '../proto/stats_pb.js';
|
|
9
|
+
import '../proto/e2ee_pb.js';
|
|
10
|
+
import '../proto/video_frame_pb.js';
|
|
11
|
+
import 'node:stream/web';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data_streams/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport * from './stream_reader.js';\nexport * from './stream_writer.js';\nexport type * from './types.js';\n"],"mappings":"AAIA,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var stream_reader_exports = {};
|
|
20
|
+
__export(stream_reader_exports, {
|
|
21
|
+
ByteStreamReader: () => ByteStreamReader,
|
|
22
|
+
TextStreamReader: () => TextStreamReader
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(stream_reader_exports);
|
|
25
|
+
var import_log = require("../log.cjs");
|
|
26
|
+
var import_utils = require("../utils.cjs");
|
|
27
|
+
class BaseStreamReader {
|
|
28
|
+
get info() {
|
|
29
|
+
return this._info;
|
|
30
|
+
}
|
|
31
|
+
constructor(info, stream, totalByteSize) {
|
|
32
|
+
this.reader = stream;
|
|
33
|
+
this.totalByteSize = totalByteSize;
|
|
34
|
+
this._info = info;
|
|
35
|
+
this.bytesReceived = 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
class ByteStreamReader extends BaseStreamReader {
|
|
39
|
+
handleChunkReceived(chunk) {
|
|
40
|
+
var _a;
|
|
41
|
+
this.bytesReceived += chunk.content.byteLength;
|
|
42
|
+
const currentProgress = this.totalByteSize ? this.bytesReceived / this.totalByteSize : void 0;
|
|
43
|
+
(_a = this.onProgress) == null ? void 0 : _a.call(this, currentProgress);
|
|
44
|
+
}
|
|
45
|
+
[Symbol.asyncIterator]() {
|
|
46
|
+
const reader = this.reader.getReader();
|
|
47
|
+
return {
|
|
48
|
+
next: async () => {
|
|
49
|
+
try {
|
|
50
|
+
const { done, value } = await reader.read();
|
|
51
|
+
if (done) {
|
|
52
|
+
return { done: true, value: void 0 };
|
|
53
|
+
} else {
|
|
54
|
+
this.handleChunkReceived(value);
|
|
55
|
+
return { done: false, value: value.content };
|
|
56
|
+
}
|
|
57
|
+
} catch (error) {
|
|
58
|
+
import_log.log.error("error processing stream update", error);
|
|
59
|
+
return { done: true, value: void 0 };
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
return() {
|
|
63
|
+
reader.releaseLock();
|
|
64
|
+
return { done: true, value: void 0 };
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async readAll() {
|
|
69
|
+
const chunks = /* @__PURE__ */ new Set();
|
|
70
|
+
for await (const chunk of this) {
|
|
71
|
+
chunks.add(chunk);
|
|
72
|
+
}
|
|
73
|
+
return Array.from(chunks);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
class TextStreamReader extends BaseStreamReader {
|
|
77
|
+
/**
|
|
78
|
+
* A TextStreamReader instance can be used as an AsyncIterator that returns the entire string
|
|
79
|
+
* that has been received up to the current point in time.
|
|
80
|
+
*/
|
|
81
|
+
constructor(info, stream, totalChunkCount) {
|
|
82
|
+
super(info, stream, totalChunkCount);
|
|
83
|
+
this.receivedChunks = /* @__PURE__ */ new Map();
|
|
84
|
+
}
|
|
85
|
+
handleChunkReceived(chunk) {
|
|
86
|
+
var _a;
|
|
87
|
+
const index = (0, import_utils.bigIntToNumber)(chunk.chunkIndex);
|
|
88
|
+
const previousChunkAtIndex = this.receivedChunks.get(index);
|
|
89
|
+
if (previousChunkAtIndex && previousChunkAtIndex.version > chunk.version) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.receivedChunks.set(index, chunk);
|
|
93
|
+
const currentProgress = this.totalByteSize ? this.receivedChunks.size / this.totalByteSize : void 0;
|
|
94
|
+
(_a = this.onProgress) == null ? void 0 : _a.call(this, currentProgress);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Async iterator implementation to allow usage of `for await...of` syntax.
|
|
98
|
+
* Yields structured chunks from the stream.
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
[Symbol.asyncIterator]() {
|
|
102
|
+
const reader = this.reader.getReader();
|
|
103
|
+
const decoder = new TextDecoder();
|
|
104
|
+
return {
|
|
105
|
+
next: async () => {
|
|
106
|
+
try {
|
|
107
|
+
const { done, value } = await reader.read();
|
|
108
|
+
if (done) {
|
|
109
|
+
return { done: true, value: void 0 };
|
|
110
|
+
} else {
|
|
111
|
+
this.handleChunkReceived(value);
|
|
112
|
+
return {
|
|
113
|
+
done: false,
|
|
114
|
+
value: decoder.decode(value.content)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
} catch (error) {
|
|
118
|
+
import_log.log.error("error processing stream update", error);
|
|
119
|
+
return { done: true, value: void 0 };
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
return() {
|
|
123
|
+
reader.releaseLock();
|
|
124
|
+
return { done: true, value: void 0 };
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
async readAll() {
|
|
129
|
+
let finalString = "";
|
|
130
|
+
for await (const chunk of this) {
|
|
131
|
+
finalString += chunk;
|
|
132
|
+
}
|
|
133
|
+
return finalString;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
137
|
+
0 && (module.exports = {
|
|
138
|
+
ByteStreamReader,
|
|
139
|
+
TextStreamReader
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=stream_reader.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/stream_reader.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ReadableStream } from 'node:stream/web';\nimport { log } from '../log.js';\nimport type { DataStream_Chunk } from '../proto/room_pb.js';\nimport { bigIntToNumber } from '../utils.js';\nimport type { BaseStreamInfo, ByteStreamInfo, TextStreamInfo } from './types.js';\n\nabstract class BaseStreamReader<T extends BaseStreamInfo> {\n protected reader: ReadableStream<DataStream_Chunk>;\n\n protected totalByteSize?: number;\n\n protected _info: T;\n\n protected bytesReceived: number;\n\n get info() {\n return this._info;\n }\n\n constructor(info: T, stream: ReadableStream<DataStream_Chunk>, totalByteSize?: number) {\n this.reader = stream;\n this.totalByteSize = totalByteSize;\n this._info = info;\n this.bytesReceived = 0;\n }\n\n protected abstract handleChunkReceived(chunk: DataStream_Chunk): void;\n\n onProgress?: (progress: number | undefined) => void;\n\n abstract readAll(): Promise<string | Array<Uint8Array>>;\n}\n\n/**\n * A class to read chunks from a ReadableStream and provide them in a structured format.\n */\nexport class ByteStreamReader extends BaseStreamReader<ByteStreamInfo> {\n protected handleChunkReceived(chunk: DataStream_Chunk) {\n this.bytesReceived += chunk.content!.byteLength;\n const currentProgress = this.totalByteSize\n ? this.bytesReceived / this.totalByteSize\n : undefined;\n this.onProgress?.(currentProgress);\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.reader.getReader();\n\n return {\n next: async (): Promise<IteratorResult<Uint8Array>> => {\n try {\n const { done, value } = await reader.read();\n if (done) {\n return { done: true, value: undefined as any };\n } else {\n this.handleChunkReceived(value);\n return { done: false, value: value.content! };\n }\n } catch (error) {\n log.error('error processing stream update', error);\n return { done: true, value: undefined };\n }\n },\n\n return(): IteratorResult<Uint8Array> {\n reader.releaseLock();\n return { done: true, value: undefined };\n },\n };\n }\n\n async readAll(): Promise<Array<Uint8Array>> {\n const chunks: Set<Uint8Array> = new Set();\n for await (const chunk of this) {\n chunks.add(chunk);\n }\n return Array.from(chunks);\n }\n}\n\n/**\n * A class to read chunks from a ReadableStream and provide them in a structured format.\n */\nexport class TextStreamReader extends BaseStreamReader<TextStreamInfo> {\n private receivedChunks: Map<number, DataStream_Chunk>;\n\n /**\n * A TextStreamReader instance can be used as an AsyncIterator that returns the entire string\n * that has been received up to the current point in time.\n */\n constructor(\n info: TextStreamInfo,\n stream: ReadableStream<DataStream_Chunk>,\n totalChunkCount?: number,\n ) {\n super(info, stream, totalChunkCount);\n this.receivedChunks = new Map();\n }\n\n protected handleChunkReceived(chunk: DataStream_Chunk) {\n const index = bigIntToNumber(chunk.chunkIndex!);\n const previousChunkAtIndex = this.receivedChunks.get(index!);\n if (previousChunkAtIndex && previousChunkAtIndex.version! > chunk.version!) {\n // we have a newer version already, dropping the old one\n return;\n }\n this.receivedChunks.set(index, chunk);\n const currentProgress = this.totalByteSize\n ? this.receivedChunks.size / this.totalByteSize\n : undefined;\n this.onProgress?.(currentProgress);\n }\n\n /**\n * Async iterator implementation to allow usage of `for await...of` syntax.\n * Yields structured chunks from the stream.\n *\n */\n [Symbol.asyncIterator]() {\n const reader = this.reader.getReader();\n const decoder = new TextDecoder();\n\n return {\n next: async (): Promise<IteratorResult<string>> => {\n try {\n const { done, value } = await reader.read();\n if (done) {\n return { done: true, value: undefined };\n } else {\n this.handleChunkReceived(value);\n return {\n done: false,\n value: decoder.decode(value.content!),\n };\n }\n } catch (error) {\n log.error('error processing stream update', error);\n return { done: true, value: undefined };\n }\n },\n\n return(): IteratorResult<string> {\n reader.releaseLock();\n return { done: true, value: undefined };\n },\n };\n }\n\n async readAll(): Promise<string> {\n let finalString: string = '';\n for await (const chunk of this) {\n finalString += chunk;\n }\n return finalString;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import 'node:stream/web';
|
|
2
|
+
import '../proto/room_pb.cjs';
|
|
3
|
+
export { B as ByteStreamReader, T as TextStreamReader } from '../types-B28ZM-Ci.cjs';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.cjs';
|
|
6
|
+
import '../proto/handle_pb.cjs';
|
|
7
|
+
import '../proto/track_pb.cjs';
|
|
8
|
+
import '../proto/stats_pb.cjs';
|
|
9
|
+
import '../proto/e2ee_pb.cjs';
|
|
10
|
+
import '../proto/video_frame_pb.cjs';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import 'node:stream/web';
|
|
2
|
+
import '../proto/room_pb.js';
|
|
3
|
+
export { B as ByteStreamReader, T as TextStreamReader } from '../types-BDnbvXeD.js';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.js';
|
|
6
|
+
import '../proto/handle_pb.js';
|
|
7
|
+
import '../proto/track_pb.js';
|
|
8
|
+
import '../proto/stats_pb.js';
|
|
9
|
+
import '../proto/e2ee_pb.js';
|
|
10
|
+
import '../proto/video_frame_pb.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream_reader.d.ts","sourceRoot":"","sources":["../../src/data_streams/stream_reader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjF,uBAAe,gBAAgB,CAAC,CAAC,SAAS,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEnD,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC,IAAI,IAAI,MAEP;gBAEW,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAErE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IACpE,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;IAQrD,CAAC,MAAM,CAAC,aAAa,CAAC;oBAIF,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;kBAezC,cAAc,CAAC,UAAU,CAAC;;IAOlC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAO5C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IACpE,OAAO,CAAC,cAAc,CAAgC;IAEtD;;;OAGG;gBAED,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,EACxC,eAAe,CAAC,EAAE,MAAM;IAM1B,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;IAcrD;;;;OAIG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC;oBAKF,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;kBAkBrC,cAAc,CAAC,MAAM,CAAC;;IAO9B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAOjC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { log } from "../log.js";
|
|
2
|
+
import { bigIntToNumber } from "../utils.js";
|
|
3
|
+
class BaseStreamReader {
|
|
4
|
+
get info() {
|
|
5
|
+
return this._info;
|
|
6
|
+
}
|
|
7
|
+
constructor(info, stream, totalByteSize) {
|
|
8
|
+
this.reader = stream;
|
|
9
|
+
this.totalByteSize = totalByteSize;
|
|
10
|
+
this._info = info;
|
|
11
|
+
this.bytesReceived = 0;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
class ByteStreamReader extends BaseStreamReader {
|
|
15
|
+
handleChunkReceived(chunk) {
|
|
16
|
+
var _a;
|
|
17
|
+
this.bytesReceived += chunk.content.byteLength;
|
|
18
|
+
const currentProgress = this.totalByteSize ? this.bytesReceived / this.totalByteSize : void 0;
|
|
19
|
+
(_a = this.onProgress) == null ? void 0 : _a.call(this, currentProgress);
|
|
20
|
+
}
|
|
21
|
+
[Symbol.asyncIterator]() {
|
|
22
|
+
const reader = this.reader.getReader();
|
|
23
|
+
return {
|
|
24
|
+
next: async () => {
|
|
25
|
+
try {
|
|
26
|
+
const { done, value } = await reader.read();
|
|
27
|
+
if (done) {
|
|
28
|
+
return { done: true, value: void 0 };
|
|
29
|
+
} else {
|
|
30
|
+
this.handleChunkReceived(value);
|
|
31
|
+
return { done: false, value: value.content };
|
|
32
|
+
}
|
|
33
|
+
} catch (error) {
|
|
34
|
+
log.error("error processing stream update", error);
|
|
35
|
+
return { done: true, value: void 0 };
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
return() {
|
|
39
|
+
reader.releaseLock();
|
|
40
|
+
return { done: true, value: void 0 };
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async readAll() {
|
|
45
|
+
const chunks = /* @__PURE__ */ new Set();
|
|
46
|
+
for await (const chunk of this) {
|
|
47
|
+
chunks.add(chunk);
|
|
48
|
+
}
|
|
49
|
+
return Array.from(chunks);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
class TextStreamReader extends BaseStreamReader {
|
|
53
|
+
/**
|
|
54
|
+
* A TextStreamReader instance can be used as an AsyncIterator that returns the entire string
|
|
55
|
+
* that has been received up to the current point in time.
|
|
56
|
+
*/
|
|
57
|
+
constructor(info, stream, totalChunkCount) {
|
|
58
|
+
super(info, stream, totalChunkCount);
|
|
59
|
+
this.receivedChunks = /* @__PURE__ */ new Map();
|
|
60
|
+
}
|
|
61
|
+
handleChunkReceived(chunk) {
|
|
62
|
+
var _a;
|
|
63
|
+
const index = bigIntToNumber(chunk.chunkIndex);
|
|
64
|
+
const previousChunkAtIndex = this.receivedChunks.get(index);
|
|
65
|
+
if (previousChunkAtIndex && previousChunkAtIndex.version > chunk.version) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.receivedChunks.set(index, chunk);
|
|
69
|
+
const currentProgress = this.totalByteSize ? this.receivedChunks.size / this.totalByteSize : void 0;
|
|
70
|
+
(_a = this.onProgress) == null ? void 0 : _a.call(this, currentProgress);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Async iterator implementation to allow usage of `for await...of` syntax.
|
|
74
|
+
* Yields structured chunks from the stream.
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
[Symbol.asyncIterator]() {
|
|
78
|
+
const reader = this.reader.getReader();
|
|
79
|
+
const decoder = new TextDecoder();
|
|
80
|
+
return {
|
|
81
|
+
next: async () => {
|
|
82
|
+
try {
|
|
83
|
+
const { done, value } = await reader.read();
|
|
84
|
+
if (done) {
|
|
85
|
+
return { done: true, value: void 0 };
|
|
86
|
+
} else {
|
|
87
|
+
this.handleChunkReceived(value);
|
|
88
|
+
return {
|
|
89
|
+
done: false,
|
|
90
|
+
value: decoder.decode(value.content)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
} catch (error) {
|
|
94
|
+
log.error("error processing stream update", error);
|
|
95
|
+
return { done: true, value: void 0 };
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
return() {
|
|
99
|
+
reader.releaseLock();
|
|
100
|
+
return { done: true, value: void 0 };
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async readAll() {
|
|
105
|
+
let finalString = "";
|
|
106
|
+
for await (const chunk of this) {
|
|
107
|
+
finalString += chunk;
|
|
108
|
+
}
|
|
109
|
+
return finalString;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export {
|
|
113
|
+
ByteStreamReader,
|
|
114
|
+
TextStreamReader
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=stream_reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/stream_reader.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ReadableStream } from 'node:stream/web';\nimport { log } from '../log.js';\nimport type { DataStream_Chunk } from '../proto/room_pb.js';\nimport { bigIntToNumber } from '../utils.js';\nimport type { BaseStreamInfo, ByteStreamInfo, TextStreamInfo } from './types.js';\n\nabstract class BaseStreamReader<T extends BaseStreamInfo> {\n protected reader: ReadableStream<DataStream_Chunk>;\n\n protected totalByteSize?: number;\n\n protected _info: T;\n\n protected bytesReceived: number;\n\n get info() {\n return this._info;\n }\n\n constructor(info: T, stream: ReadableStream<DataStream_Chunk>, totalByteSize?: number) {\n this.reader = stream;\n this.totalByteSize = totalByteSize;\n this._info = info;\n this.bytesReceived = 0;\n }\n\n protected abstract handleChunkReceived(chunk: DataStream_Chunk): void;\n\n onProgress?: (progress: number | undefined) => void;\n\n abstract readAll(): Promise<string | Array<Uint8Array>>;\n}\n\n/**\n * A class to read chunks from a ReadableStream and provide them in a structured format.\n */\nexport class ByteStreamReader extends BaseStreamReader<ByteStreamInfo> {\n protected handleChunkReceived(chunk: DataStream_Chunk) {\n this.bytesReceived += chunk.content!.byteLength;\n const currentProgress = this.totalByteSize\n ? this.bytesReceived / this.totalByteSize\n : undefined;\n this.onProgress?.(currentProgress);\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.reader.getReader();\n\n return {\n next: async (): Promise<IteratorResult<Uint8Array>> => {\n try {\n const { done, value } = await reader.read();\n if (done) {\n return { done: true, value: undefined as any };\n } else {\n this.handleChunkReceived(value);\n return { done: false, value: value.content! };\n }\n } catch (error) {\n log.error('error processing stream update', error);\n return { done: true, value: undefined };\n }\n },\n\n return(): IteratorResult<Uint8Array> {\n reader.releaseLock();\n return { done: true, value: undefined };\n },\n };\n }\n\n async readAll(): Promise<Array<Uint8Array>> {\n const chunks: Set<Uint8Array> = new Set();\n for await (const chunk of this) {\n chunks.add(chunk);\n }\n return Array.from(chunks);\n }\n}\n\n/**\n * A class to read chunks from a ReadableStream and provide them in a structured format.\n */\nexport class TextStreamReader extends BaseStreamReader<TextStreamInfo> {\n private receivedChunks: Map<number, DataStream_Chunk>;\n\n /**\n * A TextStreamReader instance can be used as an AsyncIterator that returns the entire string\n * that has been received up to the current point in time.\n */\n constructor(\n info: TextStreamInfo,\n stream: ReadableStream<DataStream_Chunk>,\n totalChunkCount?: number,\n ) {\n super(info, stream, totalChunkCount);\n this.receivedChunks = new Map();\n }\n\n protected handleChunkReceived(chunk: DataStream_Chunk) {\n const index = bigIntToNumber(chunk.chunkIndex!);\n const previousChunkAtIndex = this.receivedChunks.get(index!);\n if (previousChunkAtIndex && previousChunkAtIndex.version! > chunk.version!) {\n // we have a newer version already, dropping the old one\n return;\n }\n this.receivedChunks.set(index, chunk);\n const currentProgress = this.totalByteSize\n ? this.receivedChunks.size / this.totalByteSize\n : undefined;\n this.onProgress?.(currentProgress);\n }\n\n /**\n * Async iterator implementation to allow usage of `for await...of` syntax.\n * Yields structured chunks from the stream.\n *\n */\n [Symbol.asyncIterator]() {\n const reader = this.reader.getReader();\n const decoder = new TextDecoder();\n\n return {\n next: async (): Promise<IteratorResult<string>> => {\n try {\n const { done, value } = await reader.read();\n if (done) {\n return { done: true, value: undefined };\n } else {\n this.handleChunkReceived(value);\n return {\n done: false,\n value: decoder.decode(value.content!),\n };\n }\n } catch (error) {\n log.error('error processing stream update', error);\n return { done: true, value: undefined };\n }\n },\n\n return(): IteratorResult<string> {\n reader.releaseLock();\n return { done: true, value: undefined };\n },\n };\n }\n\n async readAll(): Promise<string> {\n let finalString: string = '';\n for await (const chunk of this) {\n finalString += chunk;\n }\n return finalString;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var stream_writer_exports = {};
|
|
20
|
+
__export(stream_writer_exports, {
|
|
21
|
+
ByteStreamWriter: () => ByteStreamWriter,
|
|
22
|
+
TextStreamWriter: () => TextStreamWriter
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(stream_writer_exports);
|
|
25
|
+
class BaseStreamWriter {
|
|
26
|
+
constructor(writableStream, info, onClose) {
|
|
27
|
+
this.writableStream = writableStream;
|
|
28
|
+
this.defaultWriter = writableStream.getWriter();
|
|
29
|
+
this.onClose = onClose;
|
|
30
|
+
this.info = info;
|
|
31
|
+
}
|
|
32
|
+
write(chunk) {
|
|
33
|
+
return this.defaultWriter.write(chunk);
|
|
34
|
+
}
|
|
35
|
+
async close() {
|
|
36
|
+
var _a;
|
|
37
|
+
await this.defaultWriter.close();
|
|
38
|
+
this.defaultWriter.releaseLock();
|
|
39
|
+
(_a = this.onClose) == null ? void 0 : _a.call(this);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class TextStreamWriter extends BaseStreamWriter {
|
|
43
|
+
}
|
|
44
|
+
class ByteStreamWriter extends BaseStreamWriter {
|
|
45
|
+
}
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
ByteStreamWriter,
|
|
49
|
+
TextStreamWriter
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=stream_writer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/stream_writer.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { WritableStream } from 'node:stream/web';\nimport type { BaseStreamInfo, ByteStreamInfo, TextStreamInfo } from './types.js';\n\nclass BaseStreamWriter<T, InfoType extends BaseStreamInfo> {\n protected writableStream: WritableStream<T>;\n\n protected defaultWriter: WritableStreamDefaultWriter<T>;\n\n protected onClose?: () => void;\n\n readonly info: InfoType;\n\n constructor(writableStream: WritableStream<T>, info: InfoType, onClose?: () => void) {\n this.writableStream = writableStream;\n this.defaultWriter = writableStream.getWriter();\n this.onClose = onClose;\n this.info = info;\n }\n\n write(chunk: T): Promise<void> {\n return this.defaultWriter.write(chunk);\n }\n\n async close() {\n await this.defaultWriter.close();\n this.defaultWriter.releaseLock();\n this.onClose?.();\n }\n}\n\nexport class TextStreamWriter extends BaseStreamWriter<string, TextStreamInfo> {}\n\nexport class ByteStreamWriter extends BaseStreamWriter<Uint8Array, ByteStreamInfo> {}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,iBAAqD;AAAA,EASzD,YAAY,gBAAmC,MAAgB,SAAsB;AACnF,SAAK,iBAAiB;AACtB,SAAK,gBAAgB,eAAe,UAAU;AAC9C,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,OAAyB;AAC7B,WAAO,KAAK,cAAc,MAAM,KAAK;AAAA,EACvC;AAAA,EAEA,MAAM,QAAQ;AA1BhB;AA2BI,UAAM,KAAK,cAAc,MAAM;AAC/B,SAAK,cAAc,YAAY;AAC/B,eAAK,YAAL;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,iBAAyC;AAAC;AAEzE,MAAM,yBAAyB,iBAA6C;AAAC;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { a as BaseStreamInfo, c as TextStreamInfo, b as ByteStreamInfo } from '../types-B28ZM-Ci.cjs';
|
|
2
|
+
import { WritableStream } from 'node:stream/web';
|
|
3
|
+
import '../proto/room_pb.cjs';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.cjs';
|
|
6
|
+
import '../proto/handle_pb.cjs';
|
|
7
|
+
import '../proto/track_pb.cjs';
|
|
8
|
+
import '../proto/stats_pb.cjs';
|
|
9
|
+
import '../proto/e2ee_pb.cjs';
|
|
10
|
+
import '../proto/video_frame_pb.cjs';
|
|
11
|
+
|
|
12
|
+
declare class BaseStreamWriter<T, InfoType extends BaseStreamInfo> {
|
|
13
|
+
protected writableStream: WritableStream<T>;
|
|
14
|
+
protected defaultWriter: WritableStreamDefaultWriter<T>;
|
|
15
|
+
protected onClose?: () => void;
|
|
16
|
+
readonly info: InfoType;
|
|
17
|
+
constructor(writableStream: WritableStream<T>, info: InfoType, onClose?: () => void);
|
|
18
|
+
write(chunk: T): Promise<void>;
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
declare class TextStreamWriter extends BaseStreamWriter<string, TextStreamInfo> {
|
|
22
|
+
}
|
|
23
|
+
declare class ByteStreamWriter extends BaseStreamWriter<Uint8Array, ByteStreamInfo> {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { ByteStreamWriter, TextStreamWriter };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { a as BaseStreamInfo, c as TextStreamInfo, b as ByteStreamInfo } from '../types-BDnbvXeD.js';
|
|
2
|
+
import { WritableStream } from 'node:stream/web';
|
|
3
|
+
import '../proto/room_pb.js';
|
|
4
|
+
import '@bufbuild/protobuf';
|
|
5
|
+
import '../proto/participant_pb.js';
|
|
6
|
+
import '../proto/handle_pb.js';
|
|
7
|
+
import '../proto/track_pb.js';
|
|
8
|
+
import '../proto/stats_pb.js';
|
|
9
|
+
import '../proto/e2ee_pb.js';
|
|
10
|
+
import '../proto/video_frame_pb.js';
|
|
11
|
+
|
|
12
|
+
declare class BaseStreamWriter<T, InfoType extends BaseStreamInfo> {
|
|
13
|
+
protected writableStream: WritableStream<T>;
|
|
14
|
+
protected defaultWriter: WritableStreamDefaultWriter<T>;
|
|
15
|
+
protected onClose?: () => void;
|
|
16
|
+
readonly info: InfoType;
|
|
17
|
+
constructor(writableStream: WritableStream<T>, info: InfoType, onClose?: () => void);
|
|
18
|
+
write(chunk: T): Promise<void>;
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
declare class TextStreamWriter extends BaseStreamWriter<string, TextStreamInfo> {
|
|
22
|
+
}
|
|
23
|
+
declare class ByteStreamWriter extends BaseStreamWriter<Uint8Array, ByteStreamInfo> {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { ByteStreamWriter, TextStreamWriter };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream_writer.d.ts","sourceRoot":"","sources":["../../src/data_streams/stream_writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjF,cAAM,gBAAgB,CAAC,CAAC,EAAE,QAAQ,SAAS,cAAc;IACvD,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAExD,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAEZ,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI;IAOnF,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxB,KAAK;CAKZ;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;CAAG;AAEjF,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC;CAAG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class BaseStreamWriter {
|
|
2
|
+
constructor(writableStream, info, onClose) {
|
|
3
|
+
this.writableStream = writableStream;
|
|
4
|
+
this.defaultWriter = writableStream.getWriter();
|
|
5
|
+
this.onClose = onClose;
|
|
6
|
+
this.info = info;
|
|
7
|
+
}
|
|
8
|
+
write(chunk) {
|
|
9
|
+
return this.defaultWriter.write(chunk);
|
|
10
|
+
}
|
|
11
|
+
async close() {
|
|
12
|
+
var _a;
|
|
13
|
+
await this.defaultWriter.close();
|
|
14
|
+
this.defaultWriter.releaseLock();
|
|
15
|
+
(_a = this.onClose) == null ? void 0 : _a.call(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
class TextStreamWriter extends BaseStreamWriter {
|
|
19
|
+
}
|
|
20
|
+
class ByteStreamWriter extends BaseStreamWriter {
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
ByteStreamWriter,
|
|
24
|
+
TextStreamWriter
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=stream_writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/stream_writer.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { WritableStream } from 'node:stream/web';\nimport type { BaseStreamInfo, ByteStreamInfo, TextStreamInfo } from './types.js';\n\nclass BaseStreamWriter<T, InfoType extends BaseStreamInfo> {\n protected writableStream: WritableStream<T>;\n\n protected defaultWriter: WritableStreamDefaultWriter<T>;\n\n protected onClose?: () => void;\n\n readonly info: InfoType;\n\n constructor(writableStream: WritableStream<T>, info: InfoType, onClose?: () => void) {\n this.writableStream = writableStream;\n this.defaultWriter = writableStream.getWriter();\n this.onClose = onClose;\n this.info = info;\n }\n\n write(chunk: T): Promise<void> {\n return this.defaultWriter.write(chunk);\n }\n\n async close() {\n await this.defaultWriter.close();\n this.defaultWriter.releaseLock();\n this.onClose?.();\n }\n}\n\nexport class TextStreamWriter extends BaseStreamWriter<string, TextStreamInfo> {}\n\nexport class ByteStreamWriter extends BaseStreamWriter<Uint8Array, ByteStreamInfo> {}\n"],"mappings":"AAMA,MAAM,iBAAqD;AAAA,EASzD,YAAY,gBAAmC,MAAgB,SAAsB;AACnF,SAAK,iBAAiB;AACtB,SAAK,gBAAgB,eAAe,UAAU;AAC9C,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,OAAyB;AAC7B,WAAO,KAAK,cAAc,MAAM,KAAK;AAAA,EACvC;AAAA,EAEA,MAAM,QAAQ;AA1BhB;AA2BI,UAAM,KAAK,cAAc,MAAM;AAC/B,SAAK,cAAc,YAAY;AAC/B,eAAK,YAAL;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,iBAAyC;AAAC;AAEzE,MAAM,yBAAyB,iBAA6C;AAAC;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
17
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data_streams/types.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { DataStream_Chunk, DataStream_Header } from '../proto/room_pb.js';\nimport type { ByteStreamReader, TextStreamReader } from './stream_reader.js';\n\nexport interface StreamController<T extends DataStream_Chunk> {\n header: DataStream_Header;\n controller: ReadableStreamDefaultController<T>;\n startTime: number;\n endTime?: number;\n}\n\nexport interface BaseStreamInfo {\n streamId: string;\n mimeType: string;\n topic: string;\n timestamp: number;\n /** total size in bytes for finite streams and undefined for streams of unknown size */\n totalSize?: number;\n attributes?: Record<string, string>;\n}\n\nexport type ByteStreamInfo = BaseStreamInfo & {\n name: string;\n};\n\nexport type TextStreamInfo = BaseStreamInfo;\n\nexport interface DataStreamOptions {\n topic?: string;\n destinationIdentities?: Array<string>;\n attributes?: Record<string, string>;\n mimeType?: string;\n}\n\nexport interface TextStreamOptions extends DataStreamOptions {\n // replyToMessageId?: string;\n attachments?: [];\n}\n\nexport interface ByteStreamOptions extends DataStreamOptions {\n name?: string;\n onProgress?: (progress: number) => void;\n}\n\nexport type ByteStreamHandler = (\n reader: ByteStreamReader,\n participantInfo: { identity: string },\n) => void;\n\nexport type TextStreamHandler = (\n reader: TextStreamReader,\n participantInfo: { identity: string },\n) => void;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import '../proto/room_pb.cjs';
|
|
2
|
+
export { a as BaseStreamInfo, f as ByteStreamHandler, b as ByteStreamInfo, e as ByteStreamOptions, D as DataStreamOptions, S as StreamController, g as TextStreamHandler, c as TextStreamInfo, d as TextStreamOptions } from '../types-B28ZM-Ci.cjs';
|
|
3
|
+
import '@bufbuild/protobuf';
|
|
4
|
+
import '../proto/participant_pb.cjs';
|
|
5
|
+
import '../proto/handle_pb.cjs';
|
|
6
|
+
import '../proto/track_pb.cjs';
|
|
7
|
+
import '../proto/stats_pb.cjs';
|
|
8
|
+
import '../proto/e2ee_pb.cjs';
|
|
9
|
+
import '../proto/video_frame_pb.cjs';
|
|
10
|
+
import 'node:stream/web';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import '../proto/room_pb.js';
|
|
2
|
+
export { a as BaseStreamInfo, f as ByteStreamHandler, b as ByteStreamInfo, e as ByteStreamOptions, D as DataStreamOptions, S as StreamController, g as TextStreamHandler, c as TextStreamInfo, d as TextStreamOptions } from '../types-BDnbvXeD.js';
|
|
3
|
+
import '@bufbuild/protobuf';
|
|
4
|
+
import '../proto/participant_pb.js';
|
|
5
|
+
import '../proto/handle_pb.js';
|
|
6
|
+
import '../proto/track_pb.js';
|
|
7
|
+
import '../proto/stats_pb.js';
|
|
8
|
+
import '../proto/e2ee_pb.js';
|
|
9
|
+
import '../proto/video_frame_pb.js';
|
|
10
|
+
import 'node:stream/web';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data_streams/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,gBAAgB;IAC1D,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAE1D,WAAW,CAAC,EAAE,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAClC,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAClC,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -15,9 +15,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
}
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
__export(index_exports, {
|
|
21
22
|
AudioFrame: () => import_audio_frame.AudioFrame,
|
|
22
23
|
AudioResampler: () => import_audio_resampler.AudioResampler,
|
|
23
24
|
AudioResamplerQuality: () => import_audio_resampler.AudioResamplerQuality,
|
|
@@ -63,7 +64,7 @@ __export(src_exports, {
|
|
|
63
64
|
combineAudioFrames: () => import_audio_frame.combineAudioFrames,
|
|
64
65
|
dispose: () => import_ffi_client.dispose
|
|
65
66
|
});
|
|
66
|
-
module.exports = __toCommonJS(
|
|
67
|
+
module.exports = __toCommonJS(index_exports);
|
|
67
68
|
var import_room = require("./room.cjs");
|
|
68
69
|
var import_participant = require("./participant.cjs");
|
|
69
70
|
var import_track = require("./track.cjs");
|
|
@@ -76,6 +77,7 @@ var import_audio_source = require("./audio_source.cjs");
|
|
|
76
77
|
var import_video_source = require("./video_source.cjs");
|
|
77
78
|
var import_track_publication = require("./track_publication.cjs");
|
|
78
79
|
var import_e2ee = require("./e2ee.cjs");
|
|
80
|
+
__reExport(index_exports, require("./data_streams/index.cjs"), module.exports);
|
|
79
81
|
var import_room_pb = require("./proto/room_pb.cjs");
|
|
80
82
|
var import_rpc = require("./rpc.cjs");
|
|
81
83
|
var import_e2ee_pb = require("./proto/e2ee_pb.cjs");
|
|
@@ -128,6 +130,7 @@ var import_ffi_client = require("./ffi_client.cjs");
|
|
|
128
130
|
VideoSource,
|
|
129
131
|
VideoStream,
|
|
130
132
|
combineAudioFrames,
|
|
131
|
-
dispose
|
|
133
|
+
dispose,
|
|
134
|
+
...require("./data_streams/index.cjs")
|
|
132
135
|
});
|
|
133
136
|
//# sourceMappingURL=index.cjs.map
|