fcr-core 3.8.1 → 3.9.0-alpha
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/lib/chat-connector/type.d.ts +40 -0
- package/lib/{chat-connection → chat-connector}/type.js +1 -1
- package/lib/engine/index.d.ts +10 -11
- package/lib/engine/index.js +63 -72
- package/lib/engine/type.d.ts +96 -0
- package/lib/engine/type.js +5 -0
- package/lib/imports.d.ts +7 -4
- package/lib/imports.js +30 -4
- package/lib/index.d.ts +3 -2
- package/lib/index.js +21 -2
- package/lib/media-control/desktop.js +12 -12
- package/lib/media-control/mobile.js +4 -0
- package/lib/media-control/type.d.ts +32 -33
- package/lib/monitor-control/index.js +3 -3
- package/lib/peer-session/index.js +14 -14
- package/lib/peer-session/type.d.ts +1 -1
- package/lib/plugins/chat/chatroom.js +417 -0
- package/lib/{chat-connection → plugins/chat}/config.d.ts +1 -0
- package/lib/{room-control/chatroom-control → plugins/chat}/config.js +2 -1
- package/lib/plugins/chat/connector.d.ts +38 -0
- package/lib/{chat-connection/index.js → plugins/chat/connector.js} +181 -61
- package/lib/room-control/ability-control/index.js +5 -4
- package/lib/room-control/ability-control/type.d.ts +5 -1
- package/lib/room-control/ability-control/type.js +4 -0
- package/lib/room-control/chatroom-control/type.d.ts +44 -35
- package/lib/room-control/group-control/index.js +9 -9
- package/lib/room-control/index.js +37 -22
- package/lib/room-control/interpreter-control/index.js +7 -4
- package/lib/room-control/interpreter-control/room.js +3 -3
- package/lib/room-control/interpreter-control/types.d.ts +2 -2
- package/lib/room-control/join-before-host-waitingroom-control/index.js +3 -3
- package/lib/room-control/mainroom-control/index.js +15 -13
- package/lib/room-control/privilege-control/index.js +39 -24
- package/lib/room-control/privilege-control/type.d.ts +15 -15
- package/lib/room-control/room-connector-control/index.js +7 -5
- package/lib/room-control/room-connector-control/type.d.ts +1 -1
- package/lib/room-control/room-control-factory.d.ts +3 -3
- package/lib/room-control/room-control-factory.js +7 -7
- package/lib/room-control/room-session/index.js +17 -15
- package/lib/room-control/room-session/type.d.ts +3 -3
- package/lib/room-control/sharing-control/index.js +13 -7
- package/lib/room-control/stream-control/index.js +18 -16
- package/lib/room-control/stream-control/type.d.ts +5 -5
- package/lib/room-control/stt-control/index.js +38 -31
- package/lib/room-control/type.d.ts +19 -19
- package/lib/room-control/user-control/index.js +20 -22
- package/lib/room-control/user-control/type.d.ts +1 -1
- package/lib/room-control/waitingroom-control/index.js +11 -11
- package/lib/room-control/whiteboard-control-v1/board-window.d.ts +21 -20
- package/lib/room-control/whiteboard-control-v1/board-window.js +27 -8
- package/lib/room-control/whiteboard-control-v1/factory.js +1 -1
- package/lib/room-control/whiteboard-control-v1/index.js +26 -18
- package/lib/room-control/whiteboard-control-v1/type.d.ts +26 -25
- package/lib/room-control/whiteboard-control-v1/type.js +1 -0
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +15 -6
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +39 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +4 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +6 -5
- package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +7 -1
- package/lib/room-control/whiteboard-control-v2/base/index.d.ts +9 -8
- package/lib/room-control/whiteboard-control-v2/base/index.js +84 -42
- package/lib/room-control/whiteboard-control-v2/base/main-window.d.ts +16 -15
- package/lib/room-control/whiteboard-control-v2/base/main-window.js +23 -4
- package/lib/room-control/whiteboard-control-v2/type.d.ts +17 -17
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +12 -6
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +64 -18
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +2 -2
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +10 -10
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +1 -1
- package/lib/room-router/index.js +10 -7
- package/lib/room-router/type.d.ts +1 -1
- package/lib/schema.d.ts +24 -46
- package/lib/schema.js +1 -2
- package/lib/service/api.d.ts +5 -3
- package/lib/service/api.js +17 -12
- package/lib/type.d.ts +64 -45
- package/lib/type.js +76 -11
- package/lib/utilities/abortable-retry.d.ts +38 -0
- package/lib/utilities/abortable-retry.js +61 -0
- package/lib/utilities/dual-video-stream-config.d.ts +6 -0
- package/lib/utilities/dual-video-stream-config.js +25 -0
- package/lib/utilities/error-helpers.d.ts +10 -9
- package/lib/utilities/error-helpers.js +12 -11
- package/lib/utilities/error.d.ts +4 -40
- package/lib/utilities/error.js +20 -77
- package/lib/utilities/join-helper.js +2 -2
- package/lib/utilities/logger.d.ts +2 -2
- package/lib/utilities/logger.js +6 -25
- package/lib/utilities/package-info.d.ts +1 -2
- package/lib/utilities/package-info.js +4 -8
- package/lib/utilities/parameters.js +88 -15
- package/lib/utilities/validate-params.js +1 -1
- package/lib/utilities/video-encoder-config.d.ts +9 -0
- package/lib/utilities/video-encoder-config.js +109 -0
- package/lib-es/base-session.js +1 -0
- package/lib-es/chat-connector/type.js +6 -0
- package/lib-es/engine/index.js +412 -0
- package/lib-es/engine/type.js +1 -0
- package/lib-es/imports.js +59 -0
- package/lib-es/index.js +8 -0
- package/lib-es/media-control/desktop.js +172 -0
- package/lib-es/media-control/mobile.js +198 -0
- package/lib-es/media-control/type.js +6 -0
- package/lib-es/monitor-control/index.js +46 -0
- package/lib-es/monitor-control/type.js +1 -0
- package/lib-es/peer-session/index.js +279 -0
- package/lib-es/peer-session/type.js +1 -0
- package/lib-es/plugins/chat/chatroom.js +409 -0
- package/{lib/chat-connection → lib-es/plugins/chat}/config.js +5 -9
- package/lib-es/plugins/chat/connector.js +269 -0
- package/lib-es/plugins/electron-rtc-plugin.js +1 -0
- package/lib-es/plugins/rtm-plugin.js +1 -0
- package/lib-es/plugins/web-rtc-plugin.js +1 -0
- package/lib-es/room-control/ability-control/index.js +58 -0
- package/lib-es/room-control/ability-control/type.js +15 -0
- package/lib-es/room-control/chatroom-control/type.js +12 -0
- package/lib-es/room-control/group-control/index.js +256 -0
- package/lib-es/room-control/helpers/constants.js +92 -0
- package/lib-es/room-control/helpers/index.js +20 -0
- package/lib-es/room-control/helpers/validation-helper.js +46 -0
- package/lib-es/room-control/index.js +623 -0
- package/lib-es/room-control/interpreter-control/index.js +172 -0
- package/lib-es/room-control/interpreter-control/room.js +28 -0
- package/lib-es/room-control/interpreter-control/types.js +26 -0
- package/lib-es/room-control/join-before-host-waitingroom-control/index.js +29 -0
- package/lib-es/room-control/mainroom-control/index.js +248 -0
- package/lib-es/room-control/privilege-control/helper.js +97 -0
- package/lib-es/room-control/privilege-control/index.js +339 -0
- package/lib-es/room-control/privilege-control/type.js +159 -0
- package/lib-es/room-control/room-connector-control/index.js +182 -0
- package/lib-es/room-control/room-connector-control/type.js +28 -0
- package/lib-es/room-control/room-control-factory.js +77 -0
- package/lib-es/room-control/room-session/index.js +292 -0
- package/lib-es/room-control/room-session/type.js +1 -0
- package/lib-es/room-control/shared-cache.js +47 -0
- package/lib-es/room-control/sharing-control/index.js +307 -0
- package/lib-es/room-control/sharing-control/type.js +16 -0
- package/lib-es/room-control/stream-control/index.js +536 -0
- package/lib-es/room-control/stream-control/type.js +1 -0
- package/lib-es/room-control/stt-control/de-compress-gzip.js +33 -0
- package/lib-es/room-control/stt-control/index.js +350 -0
- package/lib-es/room-control/stt-control/type.js +10 -0
- package/lib-es/room-control/type.js +30 -0
- package/lib-es/room-control/user-control/index.js +344 -0
- package/lib-es/room-control/user-control/type.js +21 -0
- package/lib-es/room-control/waitingroom-control/index.js +68 -0
- package/lib-es/room-control/whiteboard-control/enum.js +18 -0
- package/lib-es/room-control/whiteboard-control/type.js +10 -0
- package/lib-es/room-control/whiteboard-control/utils.js +13 -0
- package/lib-es/room-control/whiteboard-control-v1/board-subwindow.js +18 -0
- package/lib-es/room-control/whiteboard-control-v1/board-window.js +573 -0
- package/lib-es/room-control/whiteboard-control-v1/enum.js +157 -0
- package/lib-es/room-control/whiteboard-control-v1/factory.js +12 -0
- package/lib-es/room-control/whiteboard-control-v1/index.js +427 -0
- package/lib-es/room-control/whiteboard-control-v1/mount-manager.js +6 -0
- package/lib-es/room-control/whiteboard-control-v1/type.js +8 -0
- package/lib-es/room-control/whiteboard-control-v1/utils.js +273 -0
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +76 -0
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +37 -0
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/type.js +1 -0
- package/lib-es/room-control/whiteboard-control-v2/base/index.js +347 -0
- package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +269 -0
- package/lib-es/room-control/whiteboard-control-v2/constant.js +9 -0
- package/lib-es/room-control/whiteboard-control-v2/enum.js +28 -0
- package/lib-es/room-control/whiteboard-control-v2/type.js +1 -0
- package/lib-es/room-control/whiteboard-control-v2/utils.js +92 -0
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +204 -0
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +61 -0
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/type.js +1 -0
- package/lib-es/room-router/index.js +263 -0
- package/lib-es/room-router/type.js +5 -0
- package/lib-es/schema.js +231 -0
- package/lib-es/service/api.js +1211 -0
- package/lib-es/service/type.js +1 -0
- package/lib-es/type.js +222 -0
- package/lib-es/utilities/abortable-retry.js +54 -0
- package/lib-es/utilities/cmd.js +1 -0
- package/lib-es/utilities/collection.js +64 -0
- package/lib-es/utilities/dual-video-stream-config.js +19 -0
- package/lib-es/utilities/error-helpers.js +224 -0
- package/lib-es/utilities/error.js +43 -0
- package/lib-es/utilities/join-helper.js +219 -0
- package/lib-es/utilities/logger.js +7 -0
- package/lib-es/utilities/package-info.js +5 -0
- package/lib-es/utilities/parameters.js +106 -0
- package/lib-es/utilities/retry-helpers.js +66 -0
- package/lib-es/utilities/shared-storage.js +31 -0
- package/lib-es/utilities/stream.js +18 -0
- package/lib-es/utilities/user.js +30 -0
- package/lib-es/utilities/validate-params.js +8 -0
- package/lib-es/utilities/video-encoder-config.js +103 -0
- package/package.json +11 -10
- package/lib/chat-connection/index.d.ts +0 -24
- package/lib/chat-connection/type.d.ts +0 -17
- package/lib/plugins/chatroom.js +0 -454
- package/lib/room-control/chatroom-control/config.d.ts +0 -51
- package/lib/utilities/storage.d.ts +0 -8
- package/lib/utilities/storage.js +0 -33
- /package/lib/plugins/{chatroom.d.ts → chat/chatroom.d.ts} +0 -0
package/lib-es/schema.js
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
|
2
|
+
import "core-js/modules/esnext.iterator.some.js";
|
|
3
|
+
import { FcrLanguage } from './room-control/interpreter-control/types';
|
|
4
|
+
import { FcrPermissionAction, FcrPrivilegeUserRole, FcrSecurityAction } from './room-control/privilege-control/type';
|
|
5
|
+
import { FcrIPConnectorSessionType } from './room-control/room-connector-control/type';
|
|
6
|
+
import { FcrUserKickedOutType, FcrUserRole } from './room-control/user-control/type';
|
|
7
|
+
import { FcrBoardToolType } from './room-control/whiteboard-control-v2/enum';
|
|
8
|
+
import { FcrChatRoomMessageType } from './room-control/chatroom-control/type';
|
|
9
|
+
import { AgoraRtcAudioSourceType, AgoraRtcCapability, AgoraRtcEncryptionMode, AgoraRtcLatencyLevelType, AgoraRtcMediaSourceState, AgoraRtcRenderMode, AgoraRtcVideoStreamType, AgoraRteMediaStreamType, AgoraRteVideoSourceType, anySchema, booleanSchema, createRecordSchemaWithKey, numberSchema, stringSchema, unknownSchema, createUnionSchema, createArraySchema, z, objectSchema, AgoraRteStreamPrivilegeOperation, AgoraRteStreamPrivilegeAudioSourceType, AgoraRteStreamPrivilegeVideoSourceType, FcrScreenScenarioType } from './imports';
|
|
10
|
+
import { FcrDeviceType } from './media-control/type';
|
|
11
|
+
import { FcrLineType } from './room-control/type';
|
|
12
|
+
export { anySchema, booleanSchema, createRecordSchemaWithKey, numberSchema, stringSchema, unknownSchema, fcrRenderViewSchema, createUnionSchema, createArraySchema, z } from './imports';
|
|
13
|
+
export const stringOrObjectSchema = createUnionSchema([stringSchema, objectSchema]);
|
|
14
|
+
export const stringArraySchema = createArraySchema(stringSchema);
|
|
15
|
+
export const unknownArraySchema = createArraySchema(unknownSchema);
|
|
16
|
+
export const stringKeyUnknownValueSchema = createRecordSchemaWithKey(stringSchema, unknownSchema);
|
|
17
|
+
export const stringKeyNumberValueSchema = createRecordSchemaWithKey(stringSchema, numberSchema);
|
|
18
|
+
export const fcrStreamPrivilegeOperation = z.nativeEnum(AgoraRteStreamPrivilegeOperation);
|
|
19
|
+
export const fcrSecurityActionSchema = z.nativeEnum(FcrSecurityAction);
|
|
20
|
+
export const fcrPermissionActionSchema = z.nativeEnum(FcrPermissionAction);
|
|
21
|
+
export const fcrPrivilegeUserRoleSchema = z.nativeEnum(FcrPrivilegeUserRole);
|
|
22
|
+
export const fcrLineTypeSchema = z.nativeEnum(FcrLineType);
|
|
23
|
+
export const fcrUserRoleSchema = z.nativeEnum(FcrUserRole);
|
|
24
|
+
export const fcrUserKickedOutTypeSchema = z.nativeEnum(FcrUserKickedOutType);
|
|
25
|
+
export const fcrBoardToolTypeSchema = z.nativeEnum(FcrBoardToolType);
|
|
26
|
+
export const fcrLanguageSchema = z.nativeEnum(FcrLanguage);
|
|
27
|
+
export const fcrIPConnectorSessionTypeSchema = z.nativeEnum(FcrIPConnectorSessionType);
|
|
28
|
+
export const fcrDeviceTypeSchema = z.nativeEnum(FcrDeviceType);
|
|
29
|
+
export const fcrChatRoomMessageTypeSchema = z.nativeEnum(FcrChatRoomMessageType);
|
|
30
|
+
// Native Enum Schemas
|
|
31
|
+
export const fcrMediaStreamTypeSchema = z.nativeEnum(AgoraRteMediaStreamType);
|
|
32
|
+
export const fcrVideoSourceTypeSchema = z.nativeEnum(AgoraRteVideoSourceType);
|
|
33
|
+
export const fcrMediaSourceStateSchema = z.nativeEnum(AgoraRtcMediaSourceState);
|
|
34
|
+
export const fcrCapabilitySchema = z.nativeEnum(AgoraRtcCapability);
|
|
35
|
+
export const fcrRenderModeSchema = z.nativeEnum(AgoraRtcRenderMode);
|
|
36
|
+
export const fcrEncryptionModeSchema = z.nativeEnum(AgoraRtcEncryptionMode);
|
|
37
|
+
export const fcrLatencyLevelTypeSchema = z.nativeEnum(AgoraRtcLatencyLevelType);
|
|
38
|
+
export const fcrAudioSourceTypeSchema = z.nativeEnum(AgoraRtcAudioSourceType);
|
|
39
|
+
export const fcrVideoStreamTypeSchema = z.nativeEnum(AgoraRtcVideoStreamType);
|
|
40
|
+
export const fcrStreamPrivilegeAudioSourceTypeSchema = z.nativeEnum(AgoraRteStreamPrivilegeAudioSourceType);
|
|
41
|
+
export const fcrScreenScenarioTypeSchema = z.nativeEnum(FcrScreenScenarioType);
|
|
42
|
+
export const fcrStreamPrivilegeVideoSourceTypeSchema = z.nativeEnum(AgoraRteStreamPrivilegeVideoSourceType);
|
|
43
|
+
// Array Schemas
|
|
44
|
+
export const fcrUserRolesSchema = z.array(fcrUserRoleSchema);
|
|
45
|
+
export const fcrPrivilegeUserRoleArraySchema = z.array(fcrPrivilegeUserRoleSchema);
|
|
46
|
+
// Object Schemas
|
|
47
|
+
|
|
48
|
+
export const fcrLanguageConfigSchema = z.object({
|
|
49
|
+
sourceLanguage: fcrLanguageSchema,
|
|
50
|
+
targetLanguage: fcrLanguageSchema.optional()
|
|
51
|
+
});
|
|
52
|
+
export const fcrSessionBaseSchema = z.object({
|
|
53
|
+
sessionId: stringSchema,
|
|
54
|
+
sessionKey: stringSchema,
|
|
55
|
+
timestamp: numberSchema,
|
|
56
|
+
duration: numberSchema,
|
|
57
|
+
payload: stringKeyUnknownValueSchema,
|
|
58
|
+
senderId: stringSchema,
|
|
59
|
+
interval: numberSchema
|
|
60
|
+
});
|
|
61
|
+
export const fcrInterpreterUsersParamsSchema = z.object({
|
|
62
|
+
userId: stringSchema,
|
|
63
|
+
sourceLanguage: fcrLanguageSchema,
|
|
64
|
+
targetLanguage: fcrLanguageSchema
|
|
65
|
+
});
|
|
66
|
+
export const fcrSecurityPrivateChatConfigSchema = z.object({
|
|
67
|
+
host: booleanSchema,
|
|
68
|
+
cohost: booleanSchema,
|
|
69
|
+
participant: booleanSchema
|
|
70
|
+
});
|
|
71
|
+
export const fcrSecuritySendChatPayloadSchema = z.object({
|
|
72
|
+
public: booleanSchema,
|
|
73
|
+
private: fcrSecurityPrivateChatConfigSchema
|
|
74
|
+
});
|
|
75
|
+
export const fcrPhoneConnectorSessionParamsSchema = z.object({
|
|
76
|
+
phoneNumber: stringSchema,
|
|
77
|
+
userName: stringSchema,
|
|
78
|
+
phoneUserId: stringSchema.optional()
|
|
79
|
+
});
|
|
80
|
+
export const fcrIPConnectorSessionParamsSchema = z.object({
|
|
81
|
+
address: stringSchema,
|
|
82
|
+
type: fcrIPConnectorSessionTypeSchema
|
|
83
|
+
});
|
|
84
|
+
export const fcrRoomSessionParamsSchema = z.object({
|
|
85
|
+
sessionKey: stringSchema,
|
|
86
|
+
duration: numberSchema,
|
|
87
|
+
payload: stringKeyUnknownValueSchema
|
|
88
|
+
});
|
|
89
|
+
export const colorSchema = z.object({
|
|
90
|
+
r: numberSchema,
|
|
91
|
+
g: numberSchema,
|
|
92
|
+
b: numberSchema,
|
|
93
|
+
a: numberSchema.optional()
|
|
94
|
+
});
|
|
95
|
+
export const fcrPeerSessionParamsSchema = z.object({
|
|
96
|
+
sessionKey: stringSchema,
|
|
97
|
+
receiverId: stringSchema,
|
|
98
|
+
duration: numberSchema,
|
|
99
|
+
payload: stringKeyUnknownValueSchema
|
|
100
|
+
});
|
|
101
|
+
export const fcrGroupCreateConfigSchema = z.object({
|
|
102
|
+
groupName: stringSchema,
|
|
103
|
+
userList: stringArraySchema
|
|
104
|
+
});
|
|
105
|
+
// Chat Room Schemas
|
|
106
|
+
export const fcrChatRoomSendBaseMessageSchema = z.object({
|
|
107
|
+
type: fcrChatRoomMessageTypeSchema,
|
|
108
|
+
properties: stringKeyUnknownValueSchema.optional(),
|
|
109
|
+
to: stringArraySchema.optional()
|
|
110
|
+
});
|
|
111
|
+
export const fcrChatRoomSendTextMessageSchema = z.object({
|
|
112
|
+
content: stringSchema
|
|
113
|
+
}).merge(fcrChatRoomSendBaseMessageSchema);
|
|
114
|
+
export const fcrChatRoomFileSchema = z.object({
|
|
115
|
+
fileName: stringSchema,
|
|
116
|
+
fileType: stringSchema,
|
|
117
|
+
filePath: stringSchema.optional(),
|
|
118
|
+
data: anySchema.optional()
|
|
119
|
+
});
|
|
120
|
+
export const fcrChatRoomSendImageMessageSchema = z.object({
|
|
121
|
+
file: fcrChatRoomFileSchema
|
|
122
|
+
}).merge(fcrChatRoomSendBaseMessageSchema);
|
|
123
|
+
export const messageSchema = z.union([fcrChatRoomSendTextMessageSchema, fcrChatRoomSendImageMessageSchema]);
|
|
124
|
+
export const progressSchema = z.function().args(z.number()) // 定义参数类型
|
|
125
|
+
.returns(z.void()) // 定义返回值类型
|
|
126
|
+
.describe('A callback function that takes a progress and returns void');
|
|
127
|
+
|
|
128
|
+
// RTC Schemas
|
|
129
|
+
export const agoraRtcEncryptionConfig = z.object({
|
|
130
|
+
encryptionKey: stringSchema,
|
|
131
|
+
encryptionMode: fcrEncryptionModeSchema
|
|
132
|
+
});
|
|
133
|
+
export const AgoraRtcDimensions = z.object({
|
|
134
|
+
width: numberSchema,
|
|
135
|
+
height: numberSchema
|
|
136
|
+
});
|
|
137
|
+
export const agoraRtcVideoEncoderConfigurationSchema = z.object({
|
|
138
|
+
dimensions: AgoraRtcDimensions,
|
|
139
|
+
frameRate: numberSchema,
|
|
140
|
+
bitrate: numberSchema
|
|
141
|
+
});
|
|
142
|
+
// Stream Config Schemas
|
|
143
|
+
export const fcrStreamJoinConfig = z.object({
|
|
144
|
+
videoEncoderConfig: agoraRtcVideoEncoderConfigurationSchema.optional(),
|
|
145
|
+
videoSourceId: stringSchema.optional(),
|
|
146
|
+
audioSourceId: stringSchema.optional(),
|
|
147
|
+
streamName: stringSchema.optional(),
|
|
148
|
+
streamType: fcrMediaStreamTypeSchema,
|
|
149
|
+
videoSourceType: fcrVideoSourceTypeSchema,
|
|
150
|
+
audioSourceType: fcrAudioSourceTypeSchema,
|
|
151
|
+
audioSourceState: fcrMediaSourceStateSchema.optional(),
|
|
152
|
+
videoSourceState: fcrMediaSourceStateSchema.optional()
|
|
153
|
+
});
|
|
154
|
+
export const fcrRoomJoinOptionsSchema = z.object({
|
|
155
|
+
userName: stringSchema,
|
|
156
|
+
userRole: fcrUserRoleSchema,
|
|
157
|
+
userProperties: stringKeyUnknownValueSchema.optional(),
|
|
158
|
+
roomToken: stringSchema,
|
|
159
|
+
streamLatency: fcrLatencyLevelTypeSchema,
|
|
160
|
+
streamEncryptionConfig: agoraRtcEncryptionConfig.optional(),
|
|
161
|
+
createStreamConfigs: z.array(fcrStreamJoinConfig),
|
|
162
|
+
password: stringSchema.optional(),
|
|
163
|
+
platform: numberSchema.optional(),
|
|
164
|
+
avatar: stringSchema.optional()
|
|
165
|
+
});
|
|
166
|
+
// Other Schemas
|
|
167
|
+
export const fcrRenderConfigSchema = z.object({
|
|
168
|
+
renderMode: fcrRenderModeSchema,
|
|
169
|
+
isMirror: booleanSchema
|
|
170
|
+
});
|
|
171
|
+
export const fcrGroupUpdateOptionsSchema = z.object({
|
|
172
|
+
groupId: stringSchema,
|
|
173
|
+
groupName: stringSchema
|
|
174
|
+
});
|
|
175
|
+
export const fcrRoomJoinOptionsWithTicketSchema = z.object({
|
|
176
|
+
ticket: stringSchema.optional()
|
|
177
|
+
}).merge(fcrRoomJoinOptionsSchema);
|
|
178
|
+
export const fcrMediaStreamCreateConfigSchema = z.object({
|
|
179
|
+
streamName: stringSchema,
|
|
180
|
+
streamType: fcrMediaStreamTypeSchema,
|
|
181
|
+
videoSourceType: fcrVideoSourceTypeSchema,
|
|
182
|
+
audioSourceType: fcrAudioSourceTypeSchema,
|
|
183
|
+
ownerId: stringSchema,
|
|
184
|
+
videoSourceId: stringSchema,
|
|
185
|
+
audioSourceId: stringSchema,
|
|
186
|
+
generateToken: booleanSchema.optional()
|
|
187
|
+
});
|
|
188
|
+
export const fcrStreamBindConfigSchema = z.object({
|
|
189
|
+
streamId: stringSchema,
|
|
190
|
+
videoSourceId: stringSchema.optional(),
|
|
191
|
+
audioSourceId: stringSchema.optional()
|
|
192
|
+
});
|
|
193
|
+
// Array Collection Schemas
|
|
194
|
+
export const fcrScreenStreamCreateConfigSchema = z.object({
|
|
195
|
+
streamType: fcrMediaStreamTypeSchema,
|
|
196
|
+
audioDeviceName: stringSchema.optional(),
|
|
197
|
+
videoSourceId: stringSchema.optional(),
|
|
198
|
+
audioSourceId: stringSchema.optional()
|
|
199
|
+
});
|
|
200
|
+
export const fcrScreenStreamCreateConfigSize = z.object({
|
|
201
|
+
width: numberSchema,
|
|
202
|
+
height: numberSchema
|
|
203
|
+
});
|
|
204
|
+
export const fcrSizeSchema = z.object({
|
|
205
|
+
width: numberSchema,
|
|
206
|
+
height: numberSchema
|
|
207
|
+
}).optional();
|
|
208
|
+
export const fcrGroupCreateConfigArraySchema = z.array(fcrGroupCreateConfigSchema);
|
|
209
|
+
export const fcrGroupUpdateOptionsArraySchema = z.array(fcrGroupUpdateOptionsSchema);
|
|
210
|
+
export const fcrLocalStreamCreateArrayConfigSchema = z.array(fcrMediaStreamCreateConfigSchema);
|
|
211
|
+
export const fcrInterpreterUsersParamsArraySchema = z.array(fcrInterpreterUsersParamsSchema);
|
|
212
|
+
export const fcrStreamBindConfigArrySchema = z.array(fcrStreamBindConfigSchema);
|
|
213
|
+
export const fcrUpdateStreamPrivilegeScopeSchema = z.object({
|
|
214
|
+
videoSourceType: fcrStreamPrivilegeVideoSourceTypeSchema.optional(),
|
|
215
|
+
audioSourceType: fcrStreamPrivilegeAudioSourceTypeSchema.optional(),
|
|
216
|
+
targetRoleType: z.array(fcrUserRoleSchema),
|
|
217
|
+
targetRoleTypeIsInclude: booleanSchema
|
|
218
|
+
});
|
|
219
|
+
export const fcrUpdateStreamCustomSchema = z.custom(obj => {
|
|
220
|
+
const hasBothInSelf = Object.keys(obj).includes('videoPrivilege') && Object.keys(obj).includes('audioPrivilege');
|
|
221
|
+
if (hasBothInSelf) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
return Object.values(obj).some(value => {
|
|
225
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
226
|
+
return Object.keys(value).includes('videoPrivilege') && Object.keys(value).includes('audioPrivilege');
|
|
227
|
+
}
|
|
228
|
+
return false;
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
export const fcrMobileDeviceIdOrNameSchema = z.string().optional();
|