@fishjam-cloud/react-client 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/Client.d.ts +210 -0
  2. package/dist/Client.d.ts.map +1 -0
  3. package/dist/Client.js +589 -0
  4. package/dist/DeviceManager.d.ts +49 -0
  5. package/dist/DeviceManager.d.ts.map +1 -0
  6. package/dist/DeviceManager.js +157 -0
  7. package/dist/ScreenShareManager.d.ts +57 -0
  8. package/dist/ScreenShareManager.d.ts.map +1 -0
  9. package/dist/ScreenShareManager.js +135 -0
  10. package/dist/constraints.d.ts +26 -0
  11. package/dist/constraints.d.ts.map +1 -0
  12. package/dist/constraints.js +47 -0
  13. package/dist/create.d.ts +11 -0
  14. package/dist/create.d.ts.map +1 -0
  15. package/dist/create.js +228 -0
  16. package/dist/index.d.ts +10 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +4 -0
  19. package/dist/mediaInitializer.d.ts +11 -0
  20. package/dist/mediaInitializer.d.ts.map +1 -0
  21. package/dist/mediaInitializer.js +48 -0
  22. package/dist/state.types.d.ts +60 -0
  23. package/dist/state.types.d.ts.map +1 -0
  24. package/dist/state.types.js +1 -0
  25. package/dist/trackManager.d.ts +24 -0
  26. package/dist/trackManager.d.ts.map +1 -0
  27. package/dist/trackManager.js +99 -0
  28. package/dist/types.d.ts +213 -0
  29. package/dist/types.d.ts.map +1 -0
  30. package/dist/types.js +1 -0
  31. package/dist/useSetupMedia.d.ts +3 -0
  32. package/dist/useSetupMedia.d.ts.map +1 -0
  33. package/dist/useSetupMedia.js +262 -0
  34. package/dist/utils/errors.d.ts +7 -0
  35. package/dist/utils/errors.d.ts.map +1 -0
  36. package/dist/utils/errors.js +22 -0
  37. package/dist/utils/localStorage.d.ts +5 -0
  38. package/dist/utils/localStorage.d.ts.map +1 -0
  39. package/dist/utils/localStorage.js +21 -0
  40. package/dist/utils/media.d.ts +12 -0
  41. package/dist/utils/media.d.ts.map +1 -0
  42. package/dist/utils/media.js +64 -0
  43. package/package.json +65 -0
  44. package/readme.md +151 -0
@@ -0,0 +1,210 @@
1
+ import type TypedEmitter from "typed-emitter";
2
+ import type { AuthErrorReason, BandwidthLimit, Component, ConnectConfig, CreateConfig, MessageEvents, Peer, ReconnectionStatus, SimulcastConfig, TrackBandwidthLimit, TrackContext, Encoding } from "@fishjam-cloud/ts-client";
3
+ import type { PeerId, PeerState, PeerStatus, TrackId, TrackWithOrigin } from "./state.types";
4
+ import type { MediaDeviceType, ScreenShareManagerConfig, TrackType } from "./ScreenShareManager";
5
+ import { ScreenShareManager } from "./ScreenShareManager";
6
+ import type { DeviceManagerConfig, DeviceManagerInitConfig, DeviceManagerStartConfig, Devices, DeviceState, MediaState } from "./types";
7
+ import type { DeviceManagerEvents } from "./DeviceManager";
8
+ import { DeviceManager } from "./DeviceManager";
9
+ import { TrackManager } from "./trackManager";
10
+ export type ClientApi<PeerMetadata, TrackMetadata> = {
11
+ local: PeerState<PeerMetadata, TrackMetadata> | null;
12
+ peers: Record<PeerId, PeerState<PeerMetadata, TrackMetadata>>;
13
+ peersTracks: Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
14
+ components: Record<PeerId, PeerState<PeerMetadata, TrackMetadata>>;
15
+ componentsTracks: Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
16
+ bandwidthEstimation: bigint;
17
+ status: PeerStatus;
18
+ media: MediaState | null;
19
+ devices: Devices<TrackMetadata>;
20
+ videoTrackManager: TrackManager<PeerMetadata, TrackMetadata>;
21
+ audioTrackManager: TrackManager<PeerMetadata, TrackMetadata>;
22
+ screenShareManager: ScreenShareManager;
23
+ isReconnecting: () => boolean;
24
+ };
25
+ type DeviceTypeInfo = {
26
+ mediaDeviceType: MediaDeviceType;
27
+ trackType: TrackType;
28
+ };
29
+ export interface ClientEvents<PeerMetadata, TrackMetadata> {
30
+ /**
31
+ * Emitted when the websocket connection is closed
32
+ *
33
+ * @param {CloseEvent} event - Close event object from the websocket
34
+ */
35
+ socketClose: (event: CloseEvent, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
36
+ /**
37
+ * Emitted when occurs an error in the websocket connection
38
+ *
39
+ * @param {Event} event - Event object from the websocket
40
+ */
41
+ socketError: (event: Event, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
42
+ /**
43
+ * Emitted when the websocket connection is opened
44
+ *
45
+ * @param {Event} event - Event object from the websocket
46
+ */
47
+ socketOpen: (event: Event, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
48
+ /** Emitted when authentication is successful */
49
+ authSuccess: (client: ClientApi<PeerMetadata, TrackMetadata>) => void;
50
+ /** Emitted when authentication fails */
51
+ authError: (reason: AuthErrorReason, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
52
+ /** Emitted when the connection is closed */
53
+ disconnected: (client: ClientApi<PeerMetadata, TrackMetadata>) => void;
54
+ /** Emitted on successful reconnection */
55
+ reconnected: (client: ClientApi<PeerMetadata, TrackMetadata>) => void;
56
+ /** Emitted when the process of reconnection starts */
57
+ reconnectionStarted: (client: ClientApi<PeerMetadata, TrackMetadata>) => void;
58
+ /** Emitted when the maximum number of reconnection retries is reached */
59
+ reconnectionRetriesLimitReached: (client: ClientApi<PeerMetadata, TrackMetadata>) => void;
60
+ /**
61
+ * Called when peer was accepted.
62
+ */
63
+ joined: (event: {
64
+ peerId: string;
65
+ peers: Peer<PeerMetadata, TrackMetadata>[];
66
+ components: Component<PeerMetadata, TrackMetadata>[];
67
+ }, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
68
+ /**
69
+ * Called when peer was not accepted
70
+ * @param metadata - Pass through for client application to communicate further actions to frontend
71
+ */
72
+ joinError: (metadata: any, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
73
+ /**
74
+ * Called when data in a new track arrives.
75
+ *
76
+ * This callback is always called after {@link MessageEvents.trackAdded}.
77
+ * It informs user that data related to the given track arrives and can be played or displayed.
78
+ */
79
+ trackReady: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
80
+ /**
81
+ * Called each time the peer which was already in the room, adds new track. Fields track and stream will be set to null.
82
+ * These fields will be set to non-null value in {@link MessageEvents.trackReady}
83
+ */
84
+ trackAdded: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
85
+ /**
86
+ * Called when some track will no longer be sent.
87
+ *
88
+ * It will also be called before {@link MessageEvents.peerLeft} for each track of this peer.
89
+ */
90
+ trackRemoved: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
91
+ /**
92
+ * Called each time peer has its track metadata updated.
93
+ */
94
+ trackUpdated: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
95
+ /**
96
+ * Called each time new peer joins the room.
97
+ */
98
+ peerJoined: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
99
+ /**
100
+ * Called each time peer leaves the room.
101
+ */
102
+ peerLeft: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
103
+ /**
104
+ * Called each time peer has its metadata updated.
105
+ */
106
+ peerUpdated: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
107
+ /**
108
+ * Called each time new Component is added to the room.
109
+ */
110
+ componentAdded: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
111
+ /**
112
+ * Called each time Component is removed from the room.
113
+ */
114
+ componentRemoved: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
115
+ /**
116
+ * Called each time Component has its metadata updated.
117
+ */
118
+ componentUpdated: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
119
+ /**
120
+ * Called in case of errors related to multimedia session e.g. ICE connection.
121
+ */
122
+ connectionError: (error: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["connectionError"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
123
+ /**
124
+ * Called every time the server estimates client's bandiwdth.
125
+ *
126
+ * @param {bigint} estimation - client's available incoming bitrate estimated
127
+ * by the server. It's measured in bits per second.
128
+ */
129
+ bandwidthEstimationChanged: (estimation: bigint, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
130
+ encodingChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
131
+ /**
132
+ * Emitted every time an update about voice activity is received from the server.
133
+ */
134
+ voiceActivityChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
135
+ managerStarted: (event: Parameters<DeviceManagerEvents["managerInitialized"]>[0] & DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
136
+ managerInitialized: (event: {
137
+ audio?: DeviceState;
138
+ video?: DeviceState;
139
+ }, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
140
+ deviceReady: (event: Parameters<DeviceManagerEvents["deviceReady"]>[0] & DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
141
+ devicesStarted: (event: Parameters<DeviceManagerEvents["devicesStarted"]>[0] & DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
142
+ devicesReady: (event: Parameters<DeviceManagerEvents["devicesReady"]>[0] & DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
143
+ deviceStopped: (event: DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
144
+ deviceEnabled: (event: DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
145
+ deviceDisabled: (event: DeviceTypeInfo, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
146
+ error: (arg: any, client: ClientApi<PeerMetadata, TrackMetadata>) => void;
147
+ targetTrackEncodingRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["targetTrackEncodingRequested"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
148
+ localTrackAdded: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackAdded"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
149
+ localTrackRemoved: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackRemoved"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
150
+ localTrackReplaced: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackReplaced"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
151
+ localTrackMuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMuted"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
152
+ localTrackUnmuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackUnmuted"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
153
+ localTrackBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackBandwidthSet"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
154
+ localTrackEncodingBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingBandwidthSet"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
155
+ localTrackEncodingEnabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingEnabled"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
156
+ localTrackEncodingDisabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingDisabled"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
157
+ localPeerMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localPeerMetadataChanged"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
158
+ localTrackMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMetadataChanged"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
159
+ disconnectRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["disconnectRequested"]>[0], client: ClientApi<PeerMetadata, TrackMetadata>) => void;
160
+ }
161
+ export type ReactClientCreteConfig<PeerMetadata, TrackMetadata> = {
162
+ clientConfig?: CreateConfig<PeerMetadata, TrackMetadata>;
163
+ deviceManagerDefaultConfig?: DeviceManagerConfig;
164
+ screenShareManagerDefaultConfig?: ScreenShareManagerConfig;
165
+ };
166
+ declare const Client_base: new <PeerMetadata_1, TrackMetadata_1>() => TypedEmitter<Required<ClientEvents<PeerMetadata_1, TrackMetadata_1>>>;
167
+ export declare class Client<PeerMetadata, TrackMetadata> extends Client_base<PeerMetadata, TrackMetadata> {
168
+ private readonly tsClient;
169
+ readonly screenShareManager: ScreenShareManager;
170
+ local: PeerState<PeerMetadata, TrackMetadata> | null;
171
+ peers: Record<PeerId, PeerState<PeerMetadata, TrackMetadata>>;
172
+ components: Record<PeerId, PeerState<PeerMetadata, TrackMetadata>>;
173
+ peersTracks: Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
174
+ componentsTracks: Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
175
+ bandwidthEstimation: bigint;
176
+ status: PeerStatus;
177
+ media: MediaState | null;
178
+ devices: Devices<TrackMetadata>;
179
+ reconnectionStatus: ReconnectionStatus;
180
+ private currentScreenShareTrackId;
181
+ videoDeviceManager: DeviceManager;
182
+ audioDeviceManager: DeviceManager;
183
+ videoTrackManager: TrackManager<PeerMetadata, TrackMetadata>;
184
+ audioTrackManager: TrackManager<PeerMetadata, TrackMetadata>;
185
+ constructor(config?: ReactClientCreteConfig<PeerMetadata, TrackMetadata>);
186
+ setScreenManagerConfig(config: ScreenShareManagerConfig): void;
187
+ setDeviceManagerConfig(config: DeviceManagerConfig): void;
188
+ private trackContextToTrack;
189
+ connect(config: ConnectConfig<PeerMetadata>): void;
190
+ disconnect(): void;
191
+ addTrack(track: MediaStreamTrack, trackMetadata?: TrackMetadata, simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit): Promise<string>;
192
+ removeTrack(trackId: string): Promise<void>;
193
+ replaceTrack(trackId: string, newTrack: MediaStreamTrack | null, newTrackMetadata?: TrackMetadata): Promise<void>;
194
+ getStatistics(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
195
+ getBandwidthEstimation(): bigint;
196
+ setTrackBandwidth(trackId: string, bandwidth: BandwidthLimit): Promise<boolean>;
197
+ setEncodingBandwidth(trackId: string, rid: string, bandwidth: BandwidthLimit): Promise<boolean>;
198
+ setTargetTrackEncoding(trackId: string, encoding: Encoding): void;
199
+ enableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
200
+ disableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
201
+ updatePeerMetadata: (peerMetadata: PeerMetadata) => void;
202
+ updateTrackMetadata: (trackId: string, trackMetadata: TrackMetadata) => void;
203
+ isReconnecting: () => boolean;
204
+ initializeDevices: (config?: DeviceManagerInitConfig) => Promise<void>;
205
+ startDevices: (config: DeviceManagerStartConfig) => Promise<void>;
206
+ private getRemoteTrack;
207
+ private stateToSnapshot;
208
+ }
209
+ export {};
210
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAS,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,OAAO,EACP,WAAW,EACX,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,MAAM,SAAS,CAAC,YAAY,EAAE,aAAa,IAAI;IACnD,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAErD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IACnE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC,iBAAiB,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC7D,iBAAiB,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAE7D,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,cAAc,EAAE,MAAM,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,YAAY,CAAC,YAAY,EAAE,aAAa;IACvD;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEzF;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEpF;;;;OAIG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEnF,gDAAgD;IAChD,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEtE,wCAAwC;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE7F,4CAA4C;IAC5C,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEvE,yCAAyC;IACzC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEtE,sDAAsD;IACtD,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE9E,yEAAyE;IACzE,+BAA+B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE1F;;OAEG;IACH,MAAM,EAAE,CACN,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;QAC3C,UAAU,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;KACtD,EACD,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;;OAGG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEnF;;;;;OAKG;IACH,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAErH;;;OAGG;IACH,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAErH;;;;OAIG;IACH,YAAY,EAAE,CACZ,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAC9C,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,YAAY,EAAE,CACZ,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAC9C,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE9G;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE5G;;OAEG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE/G;;OAEG;IACH,cAAc,EAAE,CACd,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,EAC5C,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,EAC5C,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,EAC5C,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,eAAe,EAAE,CACf,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACnF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;;;;OAKG;IACH,0BAA0B,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAGzG,eAAe,EAAE,CACf,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAClD,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAEV;;OAEG;IACH,oBAAoB,EAAE,CACpB,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAClD,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IAGV,cAAc,EAAE,CACd,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAChF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,kBAAkB,EAAE,CAClB,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,EACnD,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,WAAW,EAAE,CACX,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EACzE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,cAAc,EAAE,CACd,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAC5E,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,YAAY,EAAE,CACZ,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAC1E,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/F,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/F,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAEhG,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;IAE1E,4BAA4B,EAAE,CAC5B,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,EAChG,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,eAAe,EAAE,CACf,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACnF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,iBAAiB,EAAE,CACjB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EACrF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,kBAAkB,EAAE,CAClB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EACtF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,eAAe,EAAE,CACf,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACnF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,iBAAiB,EAAE,CACjB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EACrF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,sBAAsB,EAAE,CACtB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,8BAA8B,EAAE,CAC9B,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClG,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,yBAAyB,EAAE,CACzB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,0BAA0B,EAAE,CAC1B,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9F,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,wBAAwB,EAAE,CACxB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,yBAAyB,EAAE,CACzB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,EACvF,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,KAC3C,IAAI,CAAC;CACX;AAED,MAAM,MAAM,sBAAsB,CAAC,YAAY,EAAE,aAAa,IAAI;IAChE,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACzD,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;IACjD,+BAA+B,CAAC,EAAE,wBAAwB,CAAC;CAC5D,CAAC;sEAGqC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAY,EAAE,eAAa,CAAC,CAAC,CAAC;AADxG,qBAAa,MAAM,CAAC,YAAY,EAAE,aAAa,CAAE,SAAQ,YAEtD,YAAY,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,SAAgB,kBAAkB,EAAE,kBAAkB,CAAC;IAEhD,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,IAAI,CAAQ;IAE5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAM;IACnE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAM;IAExE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAM;IAChF,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAM;IAErF,mBAAmB,EAAE,MAAM,CAAa;IACxC,MAAM,EAAE,UAAU,CAAQ;IAC1B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAQ;IAChC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC,kBAAkB,EAAE,kBAAkB,CAAU;IAEvD,OAAO,CAAC,yBAAyB,CAAuB;IAEjD,kBAAkB,EAAE,aAAa,CAAC;IAClC,kBAAkB,EAAE,aAAa,CAAC;IAElC,iBAAiB,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC7D,iBAAiB,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;gBAExD,MAAM,CAAC,EAAE,sBAAsB,CAAC,YAAY,EAAE,aAAa,CAAC;IA0ajE,sBAAsB,CAAC,MAAM,EAAE,wBAAwB;IAIvD,sBAAsB,CAAC,MAAM,EAAE,mBAAmB;IAKzD,OAAO,CAAC,mBAAmB;IAcpB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI;IAKlD,UAAU;IAKV,QAAQ,CACb,KAAK,EAAE,gBAAgB,EACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,eAAe,GAAE,eAAgF,EACjG,YAAY,GAAE,mBAAuB,GACpC,OAAO,CAAC,MAAM,CAAC;IAIX,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,gBAAgB,CAAC,EAAE,aAAa,GAC/B,OAAO,CAAC,IAAI,CAAC;IAIT,aAAa,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1E,sBAAsB,IAAI,MAAM;IAIhC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/E,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/F,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAI1D,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAIvD,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAIxD,kBAAkB,iBAAkB,YAAY,KAAG,IAAI,CAE5D;IAEK,mBAAmB,YAAa,MAAM,iBAAiB,aAAa,KAAG,IAAI,CAEhF;IAEK,cAAc,gBAEnB;IAEK,iBAAiB,YAAmB,uBAAuB,mBAyChE;IAEK,YAAY,WAAkB,wBAAwB,mBAG3D;IAUF,OAAO,CAAC,cAAc,CAWpB;IAEF,OAAO,CAAC,eAAe;CAqKxB"}