livekit-server-sdk 0.5.7 → 0.5.10
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/.gitmodules +3 -0
- package/README.md +5 -1
- package/dist/AccessToken.d.ts +5 -0
- package/dist/AccessToken.js +6 -0
- package/dist/AccessToken.js.map +1 -1
- package/dist/AccessToken.test.js +4 -0
- package/dist/AccessToken.test.js.map +1 -1
- package/dist/EgressClient.d.ts +45 -0
- package/dist/EgressClient.js +132 -0
- package/dist/EgressClient.js.map +1 -0
- package/dist/RoomServiceClient.d.ts +8 -3
- package/dist/RoomServiceClient.js +9 -2
- package/dist/RoomServiceClient.js.map +1 -1
- package/dist/WebhookReceiver.d.ts +7 -0
- package/dist/WebhookReceiver.js +7 -0
- package/dist/WebhookReceiver.js.map +1 -1
- package/dist/grants.d.ts +4 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/proto/google/protobuf/empty.d.ts +6 -2
- package/dist/proto/google/protobuf/empty.js +31 -11
- package/dist/proto/google/protobuf/empty.js.map +1 -1
- package/dist/proto/google/protobuf/timestamp.d.ts +132 -0
- package/dist/proto/google/protobuf/timestamp.js +108 -0
- package/dist/proto/google/protobuf/timestamp.js.map +1 -0
- package/dist/proto/livekit_egress.d.ts +1948 -0
- package/dist/proto/livekit_egress.js +1834 -0
- package/dist/proto/livekit_egress.js.map +1 -0
- package/dist/proto/livekit_models.d.ts +697 -11
- package/dist/proto/livekit_models.js +1507 -573
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_recording.d.ts +200 -16
- package/dist/proto/livekit_recording.js +272 -502
- package/dist/proto/livekit_recording.js.map +1 -1
- package/dist/proto/livekit_room.d.ts +565 -37
- package/dist/proto/livekit_room.js +334 -603
- package/dist/proto/livekit_room.js.map +1 -1
- package/dist/proto/livekit_webhook.d.ts +930 -5
- package/dist/proto/livekit_webhook.js +133 -59
- package/dist/proto/livekit_webhook.js.map +1 -1
- package/package.json +4 -4
package/.gitmodules
ADDED
package/README.md
CHANGED
|
@@ -118,7 +118,11 @@ The JS SDK also provides helper functions to decode and verify webhook callbacks
|
|
|
118
118
|
import { WebhookReceiver } from 'livekit-server-sdk';
|
|
119
119
|
|
|
120
120
|
const receiver = new WebhookReceiver('apikey', 'apisecret');
|
|
121
|
-
|
|
121
|
+
|
|
122
|
+
// In order to use the validator, WebhookReceiver must have access to the raw POSTed string (instead of a parsed JSON object)
|
|
123
|
+
// if you are using express middleware, ensure that `express.raw` is used for the webhook endpoint
|
|
124
|
+
// router.use('/webhook/path', express.raw());
|
|
125
|
+
|
|
122
126
|
app.post('/webhook-endpoint', (req, res) => {
|
|
123
127
|
// event is a WebhookEvent object
|
|
124
128
|
const event = receiver.receive(req.body, req.get('Authorization'))
|
package/dist/AccessToken.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export interface AccessTokenOptions {
|
|
|
6
6
|
* eg: '2 days', '10h', or seconds as numeric value
|
|
7
7
|
*/
|
|
8
8
|
ttl?: number | string;
|
|
9
|
+
/**
|
|
10
|
+
* display name for the participant, available as `Participant.name`
|
|
11
|
+
*/
|
|
12
|
+
name?: string;
|
|
9
13
|
/**
|
|
10
14
|
* identity of the user, required for room join tokens
|
|
11
15
|
*/
|
|
@@ -36,6 +40,7 @@ export declare class AccessToken {
|
|
|
36
40
|
* Set metadata to be passed to the Participant, used only when joining the room
|
|
37
41
|
*/
|
|
38
42
|
set metadata(md: string);
|
|
43
|
+
set name(name: string);
|
|
39
44
|
get sha256(): string | undefined;
|
|
40
45
|
set sha256(sha: string | undefined);
|
|
41
46
|
/**
|
package/dist/AccessToken.js
CHANGED
|
@@ -47,6 +47,9 @@ class AccessToken {
|
|
|
47
47
|
if (options === null || options === void 0 ? void 0 : options.metadata) {
|
|
48
48
|
this.metadata = options.metadata;
|
|
49
49
|
}
|
|
50
|
+
if (options === null || options === void 0 ? void 0 : options.name) {
|
|
51
|
+
this.name = options.name;
|
|
52
|
+
}
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Adds a video grant to this token.
|
|
@@ -61,6 +64,9 @@ class AccessToken {
|
|
|
61
64
|
set metadata(md) {
|
|
62
65
|
this.grants.metadata = md;
|
|
63
66
|
}
|
|
67
|
+
set name(name) {
|
|
68
|
+
this.grants.name = name;
|
|
69
|
+
}
|
|
64
70
|
get sha256() {
|
|
65
71
|
return this.grants.sha256;
|
|
66
72
|
}
|
package/dist/AccessToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessToken.js","sourceRoot":"","sources":["../src/AccessToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AAGpC,UAAU;AACV,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AccessToken.js","sourceRoot":"","sources":["../src/AccessToken.ts"],"names":[],"mappings":"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"}
|
package/dist/AccessToken.test.js
CHANGED
|
@@ -26,6 +26,7 @@ const testSecret = 'abababa';
|
|
|
26
26
|
describe('encoded tokens are valid', () => {
|
|
27
27
|
const t = new AccessToken_1.AccessToken(testApiKey, testSecret, {
|
|
28
28
|
identity: 'me',
|
|
29
|
+
name: 'myname',
|
|
29
30
|
});
|
|
30
31
|
t.addGrant({ room: 'myroom' });
|
|
31
32
|
const token = t.toJwt();
|
|
@@ -33,6 +34,9 @@ describe('encoded tokens are valid', () => {
|
|
|
33
34
|
it('can be decoded', () => {
|
|
34
35
|
expect(decoded).not.toBe(undefined);
|
|
35
36
|
});
|
|
37
|
+
it('has name set', () => {
|
|
38
|
+
expect(decoded.name).toBe('myname');
|
|
39
|
+
});
|
|
36
40
|
it('has video grants set', () => {
|
|
37
41
|
expect(decoded.video).toBeTruthy();
|
|
38
42
|
expect(decoded.video.room).toEqual('myroom');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessToken.test.js","sourceRoot":"","sources":["../src/AccessToken.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,+CAA2D;AAE3D,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,CAAC,GAAG,IAAI,yBAAW,CAAC,UAAU,EAAE,UAAU,EAAE;QAChD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAExB,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,IAAI,yBAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,GAAG,IAAI,yBAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/B,MAAM,CAAC,GAAG,EAAE;YACV,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;;QAClC,MAAM,CAAC,GAAG,IAAI,yBAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjC,MAAM,CAAC,GAAG,IAAI,2BAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"AccessToken.test.js","sourceRoot":"","sources":["../src/AccessToken.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EgressInfo, EncodedFileOutput, EncodingOptions, EncodingOptionsPreset, StreamOutput } from './proto/livekit_egress';
|
|
2
|
+
/**
|
|
3
|
+
* Client to access Egress APIs
|
|
4
|
+
*/
|
|
5
|
+
export default class EgressClient {
|
|
6
|
+
private readonly rpc;
|
|
7
|
+
private readonly apiKey?;
|
|
8
|
+
private readonly secret?;
|
|
9
|
+
/**
|
|
10
|
+
* @param host hostname including protocol. i.e. 'https://cluster.livekit.io'
|
|
11
|
+
* @param apiKey API Key, can be set in env var LIVEKIT_API_KEY
|
|
12
|
+
* @param secret API Secret, can be set in env var LIVEKIT_API_SECRET
|
|
13
|
+
*/
|
|
14
|
+
constructor(host: string, apiKey?: string, secret?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @param roomName room name
|
|
17
|
+
* @param layout egress layout
|
|
18
|
+
* @param output output filepath or RtmpOutput
|
|
19
|
+
* @param options egress options or preset
|
|
20
|
+
* @param audioOnly record audio only
|
|
21
|
+
* @param videoOnly record video only
|
|
22
|
+
* @param customBaseUrl custom template url
|
|
23
|
+
*/
|
|
24
|
+
startWebCompositeEgress(roomName: string, layout: string, output: EncodedFileOutput | StreamOutput, options?: EncodingOptionsPreset | EncodingOptions, audioOnly?: boolean, videoOnly?: boolean, customBaseUrl?: string): Promise<EgressInfo>;
|
|
25
|
+
/**
|
|
26
|
+
* @param egressId
|
|
27
|
+
* @param layout
|
|
28
|
+
*/
|
|
29
|
+
updateLayout(egressId: string, layout: string): Promise<EgressInfo>;
|
|
30
|
+
/**
|
|
31
|
+
* @param egressId
|
|
32
|
+
* @param addOutputUrls
|
|
33
|
+
* @param removeOutputUrls
|
|
34
|
+
*/
|
|
35
|
+
updateStream(egressId: string, addOutputUrls?: string[], removeOutputUrls?: string[]): Promise<EgressInfo>;
|
|
36
|
+
/**
|
|
37
|
+
* @param roomName list egress for one room only
|
|
38
|
+
*/
|
|
39
|
+
listEgress(roomName?: string): Promise<EgressInfo>;
|
|
40
|
+
/**
|
|
41
|
+
* @param egressId
|
|
42
|
+
*/
|
|
43
|
+
stopEgress(egressId: string): Promise<EgressInfo>;
|
|
44
|
+
private authHeader;
|
|
45
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const AccessToken_1 = require("./AccessToken");
|
|
13
|
+
const livekit_egress_1 = require("./proto/livekit_egress");
|
|
14
|
+
const TwirpRPC_1 = require("./TwirpRPC");
|
|
15
|
+
const svc = 'Egress';
|
|
16
|
+
/**
|
|
17
|
+
* Client to access Egress APIs
|
|
18
|
+
*/
|
|
19
|
+
class EgressClient {
|
|
20
|
+
/**
|
|
21
|
+
* @param host hostname including protocol. i.e. 'https://cluster.livekit.io'
|
|
22
|
+
* @param apiKey API Key, can be set in env var LIVEKIT_API_KEY
|
|
23
|
+
* @param secret API Secret, can be set in env var LIVEKIT_API_SECRET
|
|
24
|
+
*/
|
|
25
|
+
constructor(host, apiKey, secret) {
|
|
26
|
+
this.rpc = new TwirpRPC_1.TwirpRpc(host, TwirpRPC_1.livekitPackage);
|
|
27
|
+
this.apiKey = apiKey;
|
|
28
|
+
this.secret = secret;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @param roomName room name
|
|
32
|
+
* @param layout egress layout
|
|
33
|
+
* @param output output filepath or RtmpOutput
|
|
34
|
+
* @param options egress options or preset
|
|
35
|
+
* @param audioOnly record audio only
|
|
36
|
+
* @param videoOnly record video only
|
|
37
|
+
* @param customBaseUrl custom template url
|
|
38
|
+
*/
|
|
39
|
+
startWebCompositeEgress(roomName, layout, output, options, audioOnly, videoOnly, customBaseUrl) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
let file;
|
|
42
|
+
let stream;
|
|
43
|
+
let preset;
|
|
44
|
+
let advanced;
|
|
45
|
+
if (!audioOnly) {
|
|
46
|
+
audioOnly = false;
|
|
47
|
+
}
|
|
48
|
+
if (!videoOnly) {
|
|
49
|
+
videoOnly = false;
|
|
50
|
+
}
|
|
51
|
+
if (!customBaseUrl) {
|
|
52
|
+
customBaseUrl = '';
|
|
53
|
+
}
|
|
54
|
+
if (output.filepath !== undefined) {
|
|
55
|
+
file = output;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
stream = output;
|
|
59
|
+
}
|
|
60
|
+
if (options) {
|
|
61
|
+
if (typeof options === 'number') {
|
|
62
|
+
preset = options;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
advanced = options;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const req = livekit_egress_1.WebCompositeEgressRequest.toJSON({
|
|
69
|
+
roomName, layout, audioOnly, videoOnly, file, stream, preset, advanced, customBaseUrl,
|
|
70
|
+
});
|
|
71
|
+
const data = yield this.rpc.request(svc, 'StartWebCompositeEgress', req, this.authHeader({ roomRecord: true }));
|
|
72
|
+
return livekit_egress_1.EgressInfo.fromJSON(data);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @param egressId
|
|
77
|
+
* @param layout
|
|
78
|
+
*/
|
|
79
|
+
updateLayout(egressId, layout) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const data = yield this.rpc.request(svc, 'UpdateLayout', livekit_egress_1.UpdateLayoutRequest.toJSON({ egressId, layout }), this.authHeader({ roomRecord: true }));
|
|
82
|
+
return livekit_egress_1.EgressInfo.fromJSON(data);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @param egressId
|
|
87
|
+
* @param addOutputUrls
|
|
88
|
+
* @param removeOutputUrls
|
|
89
|
+
*/
|
|
90
|
+
updateStream(egressId, addOutputUrls, removeOutputUrls) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
if (!addOutputUrls) {
|
|
93
|
+
addOutputUrls = [];
|
|
94
|
+
}
|
|
95
|
+
if (!removeOutputUrls) {
|
|
96
|
+
removeOutputUrls = [];
|
|
97
|
+
}
|
|
98
|
+
const data = yield this.rpc.request(svc, 'UpdateStream', livekit_egress_1.UpdateStreamRequest.toJSON({ egressId, addOutputUrls, removeOutputUrls }), this.authHeader({ roomRecord: true }));
|
|
99
|
+
return livekit_egress_1.EgressInfo.fromJSON(data);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @param roomName list egress for one room only
|
|
104
|
+
*/
|
|
105
|
+
listEgress(roomName) {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
if (!roomName) {
|
|
108
|
+
roomName = '';
|
|
109
|
+
}
|
|
110
|
+
const data = yield this.rpc.request(svc, 'ListEgress', livekit_egress_1.ListEgressRequest.toJSON({ roomName }), this.authHeader({ roomRecord: true }));
|
|
111
|
+
return livekit_egress_1.EgressInfo.fromJSON(data);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @param egressId
|
|
116
|
+
*/
|
|
117
|
+
stopEgress(egressId) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
const data = yield this.rpc.request(svc, 'StopEgress', livekit_egress_1.StopEgressRequest.toJSON({ egressId }), this.authHeader({ roomRecord: true }));
|
|
120
|
+
return livekit_egress_1.EgressInfo.fromJSON(data);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
authHeader(grant) {
|
|
124
|
+
const at = new AccessToken_1.AccessToken(this.apiKey, this.secret, { ttl: '10m' });
|
|
125
|
+
at.addGrant(grant);
|
|
126
|
+
return {
|
|
127
|
+
Authorization: `Bearer ${at.toJwt()}`,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.default = EgressClient;
|
|
132
|
+
//# sourceMappingURL=EgressClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EgressClient.js","sourceRoot":"","sources":["../src/EgressClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DataPacket_Kind, ParticipantInfo, Room, TrackInfo } from './proto/livekit_models';
|
|
2
|
-
import { ParticipantPermission } from './proto/livekit_room';
|
|
1
|
+
import { DataPacket_Kind, ParticipantInfo, ParticipantPermission, Room, TrackInfo } from './proto/livekit_models';
|
|
3
2
|
/**
|
|
4
3
|
* Options for when creating a room
|
|
5
4
|
*/
|
|
@@ -42,7 +41,13 @@ export declare class RoomServiceClient {
|
|
|
42
41
|
* @param options
|
|
43
42
|
*/
|
|
44
43
|
createRoom(options: CreateOptions): Promise<Room>;
|
|
45
|
-
|
|
44
|
+
/**
|
|
45
|
+
* List active rooms
|
|
46
|
+
* @param names when undefined or empty, list all rooms.
|
|
47
|
+
* otherwise returns rooms with matching names
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
listRooms(names?: string[]): Promise<Room[]>;
|
|
46
51
|
deleteRoom(room: string): Promise<void>;
|
|
47
52
|
/**
|
|
48
53
|
* Update metadata of a room
|
|
@@ -42,9 +42,15 @@ class RoomServiceClient {
|
|
|
42
42
|
return livekit_models_1.Room.fromJSON(data);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* List active rooms
|
|
47
|
+
* @param names when undefined or empty, list all rooms.
|
|
48
|
+
* otherwise returns rooms with matching names
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
listRooms(names) {
|
|
46
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const data = yield this.rpc.request(svc, 'ListRooms', livekit_room_1.ListRoomsRequest.toJSON({}), this.authHeader({ roomList: true }));
|
|
53
|
+
const data = yield this.rpc.request(svc, 'ListRooms', livekit_room_1.ListRoomsRequest.toJSON({ names: names !== null && names !== void 0 ? names : [] }), this.authHeader({ roomList: true }));
|
|
48
54
|
const res = livekit_room_1.ListRoomsResponse.fromJSON(data);
|
|
49
55
|
return res.rooms;
|
|
50
56
|
});
|
|
@@ -153,6 +159,7 @@ class RoomServiceClient {
|
|
|
153
159
|
identity,
|
|
154
160
|
trackSids,
|
|
155
161
|
subscribe,
|
|
162
|
+
participantTracks: [],
|
|
156
163
|
});
|
|
157
164
|
yield this.rpc.request(svc, 'UpdateSubscriptions', req, this.authHeader({ roomAdmin: true, room }));
|
|
158
165
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomServiceClient.js","sourceRoot":"","sources":["../src/RoomServiceClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA4C;AAE5C,2DAEgC;AAChC,
|
|
1
|
+
{"version":3,"file":"RoomServiceClient.js","sourceRoot":"","sources":["../src/RoomServiceClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,12 @@ export declare const authorizeHeader = "Authorize";
|
|
|
3
3
|
export declare class WebhookReceiver {
|
|
4
4
|
private verifier;
|
|
5
5
|
constructor(apiKey: string, apiSecret: string);
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @param body string of the posted body
|
|
9
|
+
* @param authHeader `Authorization` header from the request
|
|
10
|
+
* @param skipAuth true to skip auth validation
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
6
13
|
receive(body: string, authHeader?: string, skipAuth?: boolean): WebhookEvent;
|
|
7
14
|
}
|
package/dist/WebhookReceiver.js
CHANGED
|
@@ -12,6 +12,13 @@ class WebhookReceiver {
|
|
|
12
12
|
constructor(apiKey, apiSecret) {
|
|
13
13
|
this.verifier = new AccessToken_1.TokenVerifier(apiKey, apiSecret);
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param body string of the posted body
|
|
18
|
+
* @param authHeader `Authorization` header from the request
|
|
19
|
+
* @param skipAuth true to skip auth validation
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
15
22
|
receive(body, authHeader, skipAuth = false) {
|
|
16
23
|
// verify token
|
|
17
24
|
if (!skipAuth) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookReceiver.js","sourceRoot":"","sources":["../src/WebhookReceiver.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,+CAA8C;AAC9C,6DAAuD;AAE1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAa,eAAe;IAG1B,YAAY,MAAc,EAAE,SAAiB;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,UAAmB,EAAE,WAAoB,KAAK;QAClE,eAAe;QACf,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAClD;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChD,cAAc;YACd,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,8BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"WebhookReceiver.js","sourceRoot":"","sources":["../src/WebhookReceiver.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,+CAA8C;AAC9C,6DAAuD;AAE1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAa,eAAe;IAG1B,YAAY,MAAc,EAAE,SAAiB;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAY,EAAE,UAAmB,EAAE,WAAoB,KAAK;QAClE,eAAe;QACf,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAClD;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChD,cAAc;YACd,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,8BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AAhCD,0CAgCC"}
|
package/dist/grants.d.ts
CHANGED
|
@@ -22,11 +22,14 @@ export interface VideoGrant {
|
|
|
22
22
|
* allow participants to publish data, defaults to true if not set
|
|
23
23
|
*/
|
|
24
24
|
canPublishData?: boolean;
|
|
25
|
-
/**
|
|
25
|
+
/** participant isn't visible to others */
|
|
26
26
|
hidden?: boolean;
|
|
27
|
+
/** participant is recording the room, when set, allows room to indicate it's being recorded */
|
|
28
|
+
recorder?: boolean;
|
|
27
29
|
}
|
|
28
30
|
/** @internal */
|
|
29
31
|
export interface ClaimGrants {
|
|
32
|
+
name?: string;
|
|
30
33
|
video?: VideoGrant;
|
|
31
34
|
metadata?: string;
|
|
32
35
|
sha256?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './AccessToken';
|
|
2
|
+
export { default as EgressClient } from './EgressClient';
|
|
2
3
|
export * from './grants';
|
|
3
|
-
export { DataPacket_Kind, ParticipantInfo, ParticipantInfo_State, Room, TrackInfo, TrackType, } from './proto/livekit_models';
|
|
4
|
-
export { default } from './RecordingServiceClient';
|
|
4
|
+
export { DataPacket_Kind, ParticipantInfo, ParticipantInfo_State, ParticipantPermission, Room, TrackInfo, TrackType, } from './proto/livekit_models';
|
|
5
|
+
export { default as RecordingServiceClient } from './RecordingServiceClient';
|
|
5
6
|
export * from './RoomServiceClient';
|
|
6
7
|
export * from './WebhookReceiver';
|
package/dist/index.js
CHANGED
|
@@ -13,18 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.
|
|
16
|
+
exports.RecordingServiceClient = exports.TrackType = exports.TrackInfo = exports.Room = exports.ParticipantPermission = exports.ParticipantInfo_State = exports.ParticipantInfo = exports.DataPacket_Kind = exports.EgressClient = void 0;
|
|
17
17
|
__exportStar(require("./AccessToken"), exports);
|
|
18
|
+
var EgressClient_1 = require("./EgressClient");
|
|
19
|
+
Object.defineProperty(exports, "EgressClient", { enumerable: true, get: function () { return __importDefault(EgressClient_1).default; } });
|
|
18
20
|
__exportStar(require("./grants"), exports);
|
|
19
21
|
var livekit_models_1 = require("./proto/livekit_models");
|
|
20
22
|
Object.defineProperty(exports, "DataPacket_Kind", { enumerable: true, get: function () { return livekit_models_1.DataPacket_Kind; } });
|
|
21
23
|
Object.defineProperty(exports, "ParticipantInfo", { enumerable: true, get: function () { return livekit_models_1.ParticipantInfo; } });
|
|
22
24
|
Object.defineProperty(exports, "ParticipantInfo_State", { enumerable: true, get: function () { return livekit_models_1.ParticipantInfo_State; } });
|
|
25
|
+
Object.defineProperty(exports, "ParticipantPermission", { enumerable: true, get: function () { return livekit_models_1.ParticipantPermission; } });
|
|
23
26
|
Object.defineProperty(exports, "Room", { enumerable: true, get: function () { return livekit_models_1.Room; } });
|
|
24
27
|
Object.defineProperty(exports, "TrackInfo", { enumerable: true, get: function () { return livekit_models_1.TrackInfo; } });
|
|
25
28
|
Object.defineProperty(exports, "TrackType", { enumerable: true, get: function () { return livekit_models_1.TrackType; } });
|
|
26
29
|
var RecordingServiceClient_1 = require("./RecordingServiceClient");
|
|
27
|
-
Object.defineProperty(exports, "
|
|
30
|
+
Object.defineProperty(exports, "RecordingServiceClient", { enumerable: true, get: function () { return __importDefault(RecordingServiceClient_1).default; } });
|
|
28
31
|
__exportStar(require("./RoomServiceClient"), exports);
|
|
29
32
|
__exportStar(require("./WebhookReceiver"), exports);
|
|
30
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,2CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,2CAAyB;AACzB,yDAMgC;AAL9B,iHAAA,eAAe,OAAA;AACf,iHAAA,eAAe,OAAA;AACf,uHAAA,qBAAqB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAAE,sGAAA,IAAI,OAAA;AAClD,2GAAA,SAAS,OAAA;AACT,2GAAA,SAAS,OAAA;AAEX,mEAA6E;AAApE,iJAAA,OAAO,OAA0B;AAC1C,sDAAoC;AACpC,oDAAkC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import _m0 from "protobufjs/minimal";
|
|
1
|
+
import * as _m0 from "protobufjs/minimal";
|
|
2
2
|
export declare const protobufPackage = "google.protobuf";
|
|
3
3
|
/**
|
|
4
4
|
* A generic empty message that you can re-use to avoid defining duplicated
|
|
@@ -18,10 +18,14 @@ export declare const Empty: {
|
|
|
18
18
|
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Empty;
|
|
19
19
|
fromJSON(_: any): Empty;
|
|
20
20
|
toJSON(_: Empty): unknown;
|
|
21
|
-
fromPartial(_:
|
|
21
|
+
fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): Empty;
|
|
22
22
|
};
|
|
23
23
|
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
24
24
|
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
25
25
|
[K in keyof T]?: DeepPartial<T[K]>;
|
|
26
26
|
} : Partial<T>;
|
|
27
|
+
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
28
|
+
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
29
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
30
|
+
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
|
|
27
31
|
export {};
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
@@ -6,17 +25,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
25
|
exports.Empty = exports.protobufPackage = void 0;
|
|
7
26
|
/* eslint-disable */
|
|
8
27
|
const long_1 = __importDefault(require("long"));
|
|
9
|
-
const
|
|
28
|
+
const _m0 = __importStar(require("protobufjs/minimal"));
|
|
10
29
|
exports.protobufPackage = "google.protobuf";
|
|
11
|
-
|
|
30
|
+
function createBaseEmpty() {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
12
33
|
exports.Empty = {
|
|
13
|
-
encode(_, writer =
|
|
34
|
+
encode(_, writer = _m0.Writer.create()) {
|
|
14
35
|
return writer;
|
|
15
36
|
},
|
|
16
37
|
decode(input, length) {
|
|
17
|
-
const reader = input instanceof
|
|
38
|
+
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
|
|
18
39
|
let end = length === undefined ? reader.len : reader.pos + length;
|
|
19
|
-
const message =
|
|
40
|
+
const message = createBaseEmpty();
|
|
20
41
|
while (reader.pos < end) {
|
|
21
42
|
const tag = reader.uint32();
|
|
22
43
|
switch (tag >>> 3) {
|
|
@@ -28,20 +49,19 @@ exports.Empty = {
|
|
|
28
49
|
return message;
|
|
29
50
|
},
|
|
30
51
|
fromJSON(_) {
|
|
31
|
-
|
|
32
|
-
return message;
|
|
52
|
+
return {};
|
|
33
53
|
},
|
|
34
54
|
toJSON(_) {
|
|
35
55
|
const obj = {};
|
|
36
56
|
return obj;
|
|
37
57
|
},
|
|
38
58
|
fromPartial(_) {
|
|
39
|
-
const message =
|
|
59
|
+
const message = createBaseEmpty();
|
|
40
60
|
return message;
|
|
41
61
|
},
|
|
42
62
|
};
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
|
|
63
|
+
if (_m0.util.Long !== long_1.default) {
|
|
64
|
+
_m0.util.Long = long_1.default;
|
|
65
|
+
_m0.configure();
|
|
46
66
|
}
|
|
47
67
|
//# sourceMappingURL=empty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../../src/proto/google/protobuf/empty.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../../src/proto/google/protobuf/empty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAAwB;AACxB,wDAA0C;AAE7B,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAejD,SAAS,eAAe;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,CAAQ,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,CAAM;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,CAAQ;QACb,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAyC,CAAI;QACtD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AA6BF,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,EAAE;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,cAAW,CAAC;IAC5B,GAAG,CAAC,SAAS,EAAE,CAAC;CACjB"}
|