@rapidmx/meet-plugin 0.14.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -55
- package/apps/meet/[token].tsx +341 -341
- package/apps/meet/_CallControls.tsx +508 -463
- package/apps/meet/_CallView.tsx +1060 -891
- package/apps/meet/_ChatPanel.tsx +194 -0
- package/apps/meet/_ColorWheel.tsx +136 -0
- package/apps/meet/_DiagnosticsPanel.tsx +65 -7
- package/apps/meet/_MeetLobby.tsx +224 -224
- package/apps/meet/_ParticipantTile.tsx +243 -169
- package/apps/meet/_ParticipantsDrawer.tsx +10 -7
- package/apps/meet/_Whiteboard.tsx +577 -0
- package/apps/meet/_icons.tsx +135 -80
- package/apps/meet/_meetApi.ts +213 -212
- package/apps/shared/collab/CollabSession.ts +675 -0
- package/apps/shared/collab/WhiteboardModel.ts +216 -0
- package/apps/shared/collab/chatMarkdown.tsx +375 -0
- package/apps/shared/collab/color.ts +67 -0
- package/apps/shared/collab/protocol.ts +321 -0
- package/apps/shared/collab/whiteboardRender.ts +311 -0
- package/apps/shared/media/filters/VideoFilterProcessor.ts +408 -408
- package/apps/shared/media/filters/mlModels.ts +174 -174
- package/apps/shared/relay/AudioPlayer.ts +29 -0
- package/apps/shared/relay/AudioSender.ts +23 -0
- package/apps/shared/relay/RelayClient.ts +54 -2
- package/apps/shared/relay/RelayReceiver.ts +43 -2
- package/apps/shared/relay/RelaySender.ts +23 -1
- package/apps/shared/relay/RelayTransport.ts +21 -1
- package/apps/shared/relay/SilenceMeter.ts +59 -0
- package/apps/shared/relay/relayEnv.ts +1 -1
- package/apps/shared/signaling/SignalingClient.ts +335 -0
- package/apps/shared/webrtc/MeshConnectionManager.ts +971 -949
- package/apps/shared/webrtc/types.ts +335 -247
- package/dist/apps/meet/[token].js +1 -1
- package/dist/apps/meet/_CallControls.d.ts +21 -6
- package/dist/apps/meet/_CallControls.js +14 -8
- package/dist/apps/meet/_CallView.d.ts +36 -7
- package/dist/apps/meet/_CallView.js +132 -16
- package/dist/apps/meet/_ChatPanel.d.ts +24 -0
- package/dist/apps/meet/_ChatPanel.js +116 -0
- package/dist/apps/meet/_ColorWheel.d.ts +14 -0
- package/dist/apps/meet/_ColorWheel.js +82 -0
- package/dist/apps/meet/_DiagnosticsPanel.d.ts +5 -3
- package/dist/apps/meet/_DiagnosticsPanel.js +17 -1
- package/dist/apps/meet/_ParticipantTile.d.ts +11 -3
- package/dist/apps/meet/_ParticipantTile.js +36 -5
- package/dist/apps/meet/_ParticipantsDrawer.js +3 -3
- package/dist/apps/meet/_Whiteboard.d.ts +64 -0
- package/dist/apps/meet/_Whiteboard.js +312 -0
- package/dist/apps/meet/_icons.d.ts +16 -0
- package/dist/apps/meet/_icons.js +16 -0
- package/dist/apps/meet/_meetApi.d.ts +8 -7
- package/dist/apps/meet/_meetApi.js +2 -2
- package/dist/apps/shared/collab/CollabSession.d.ts +208 -0
- package/dist/apps/shared/collab/CollabSession.js +559 -0
- package/dist/apps/shared/collab/WhiteboardModel.d.ts +54 -0
- package/dist/apps/shared/collab/WhiteboardModel.js +197 -0
- package/dist/apps/shared/collab/chatMarkdown.d.ts +65 -0
- package/dist/apps/shared/collab/chatMarkdown.js +311 -0
- package/dist/apps/shared/collab/color.d.ts +18 -0
- package/dist/apps/shared/collab/color.js +59 -0
- package/dist/apps/shared/collab/protocol.d.ts +157 -0
- package/dist/apps/shared/collab/protocol.js +222 -0
- package/dist/apps/shared/collab/whiteboardRender.d.ts +31 -0
- package/dist/apps/shared/collab/whiteboardRender.js +268 -0
- package/dist/apps/shared/relay/AudioPlayer.d.ts +9 -0
- package/dist/apps/shared/relay/AudioPlayer.js +24 -4
- package/dist/apps/shared/relay/AudioSender.d.ts +8 -0
- package/dist/apps/shared/relay/AudioSender.js +20 -4
- package/dist/apps/shared/relay/RelayClient.d.ts +16 -0
- package/dist/apps/shared/relay/RelayClient.js +46 -2
- package/dist/apps/shared/relay/RelayReceiver.d.ts +5 -0
- package/dist/apps/shared/relay/RelayReceiver.js +38 -6
- package/dist/apps/shared/relay/RelaySender.d.ts +7 -0
- package/dist/apps/shared/relay/RelaySender.js +20 -5
- package/dist/apps/shared/relay/RelayTransport.d.ts +6 -1
- package/dist/apps/shared/relay/RelayTransport.js +16 -1
- package/dist/apps/shared/relay/SilenceMeter.d.ts +25 -0
- package/dist/apps/shared/relay/SilenceMeter.js +55 -0
- package/dist/apps/shared/relay/relayEnv.d.ts +1 -1
- package/dist/apps/shared/signaling/SignalingClient.d.ts +95 -0
- package/dist/apps/shared/signaling/SignalingClient.js +278 -0
- package/dist/apps/shared/webrtc/MeshConnectionManager.d.ts +7 -7
- package/dist/apps/shared/webrtc/MeshConnectionManager.js +28 -9
- package/dist/apps/shared/webrtc/types.d.ts +104 -26
- package/dist/apps/shared/webrtc/types.js +3 -4
- package/dist/lib/routes/BaseVideoMeetingRoute.js +171 -69
- package/dist/lib/routes/BaseVideoMeetingRoute.js.map +1 -1
- package/dist/lib/util/RelayHub.js +15 -2
- package/dist/lib/util/RelayHub.js.map +1 -1
- package/dist/lib/util/SignalingHub.js +339 -0
- package/dist/lib/util/SignalingHub.js.map +1 -0
- package/dist/types/routes/BaseVideoMeetingRoute.d.ts +68 -46
- package/dist/types/util/RelayHub.d.ts +5 -2
- package/dist/types/util/SignalingHub.d.ts +112 -0
- package/package.json +208 -208
- package/apps/shared/push/GuestSignalingClient.ts +0 -359
- package/dist/apps/shared/push/GuestSignalingClient.d.ts +0 -98
- package/dist/apps/shared/push/GuestSignalingClient.js +0 -312
package/README.md
CHANGED
|
@@ -1,55 +1,35 @@
|
|
|
1
|
-
# RapidMX:
|
|
2
|
-
|
|
3
|
-
[](https://github.com/RapidMX/meet-plugin/actions/workflows/build.yml)
|
|
4
|
-
[](https://coveralls.io/github/RapidMX/meet-plugin?branch=main)
|
|
5
|
-
[](https://www.npmjs.com/package/@rapidmx/meet-plugin)
|
|
6
|
-
|
|
7
|
-
Private and public WebRTC video meetings for a [RapidMX server](https://github.com/RapidMX/server). A mailbox owner
|
|
8
|
-
turns on video conferencing for a calendar event; a private meeting mints one link per invitee (inserted into the
|
|
9
|
-
invite's location and body), a public meeting shares a single link. Joining needs no account: a guest picks a name
|
|
10
|
-
(auto-filled from their RapidMX profile when signed in), checks their camera and microphone, and enters. Calls are
|
|
11
|
-
peer-to-peer WebRTC (no media server). Each pair of participants uses the best path that works, tried in order:
|
|
12
|
-
|
|
13
|
-
1. **Direct peer-to-peer**, the preferred path.
|
|
14
|
-
2. **Relayed through a configured TURN server**, for a participant a direct connection can't reach. A plain `turn:`
|
|
15
|
-
address is offered over both UDP and TCP, so a network that blocks UDP can still reach it.
|
|
16
|
-
3. **Proxied by the RapidMX server itself over a WebSocket**, the last resort for a participant whose network lets
|
|
17
|
-
nothing but ordinary HTTPS out. Video is lower quality and sound may lag; it needs a browser with WebCodecs, and
|
|
18
|
-
can be turned off with the `mail:videoconf:relay:enabled` setting. A tile says when a participant is on the TURN
|
|
19
|
-
relay or the server relay.
|
|
20
|
-
|
|
21
|
-
Participants can put **video filters** on their camera from the lobby or during the call: a blurred or custom
|
|
22
|
-
background, black and white / sepia / night vision / pixelate looks, and face accessories. They run entirely in the
|
|
23
|
-
browser (MediaPipe, loaded only when a filter needs it - from public CDNs by default, or from your own server with
|
|
24
|
-
`mail:videoconf:effects:assets_url`), and the devices, on/off state and filters a participant chose are remembered in
|
|
25
|
-
their browser's `localStorage` for next time.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_(Filled in as each phase lands - see `.claude/NOTES.md` for the running detail, and `RELEASE_NOTES.md` for the
|
|
37
|
-
full changelog.)_
|
|
38
|
-
|
|
39
|
-
**Phase 1 (backend data model, routes, signaling) - done.** A mailbox owner creates a `VideoMeeting` through
|
|
40
|
-
`/api/mail/video-meetings` - `private` (one join link minted per invitee) or `public` (one shared link) - and an
|
|
41
|
-
anonymous participant joins through `GET .../join/:token`, which hands back the meeting's public details, an ICE
|
|
42
|
-
server list (public STUN always, TURN when configured) and a short-lived guest token already authorized to
|
|
43
|
-
exchange WebRTC signaling on that one meeting's channel over the server's existing `/push` route. No new realtime
|
|
44
|
-
infrastructure and no UI yet - see `.claude/NOTES.md`'s dated entry for the full design.
|
|
45
|
-
|
|
46
|
-
## Development
|
|
47
|
-
|
|
48
|
-
Same layout and tooling as this project's other plugins (`@rapidmx/booking-plugin`, `@rapidmx/mapi-plugin`,
|
|
49
|
-
`@rapidmx/autodiscover-plugin`): `yarn install`, `yarn test:prod`, `yarn build`. `@rapidmx/restapi` and
|
|
50
|
-
`@rapidmx/web-client` are portal-linked in `package.json`'s `resolutions` during local development against a
|
|
51
|
-
matching working tree of those repos.
|
|
52
|
-
|
|
53
|
-
## License
|
|
54
|
-
|
|
55
|
-
MPL-2.0 - see `LICENSE`.
|
|
1
|
+
# RapidMX: Meet Plugin
|
|
2
|
+
|
|
3
|
+
[](https://github.com/RapidMX/meet-plugin/actions/workflows/build.yml)
|
|
4
|
+
[](https://coveralls.io/github/RapidMX/meet-plugin?branch=main)
|
|
5
|
+
[](https://www.npmjs.com/package/@rapidmx/meet-plugin)
|
|
6
|
+
|
|
7
|
+
Private and public WebRTC video meetings for a [RapidMX server](https://github.com/RapidMX/server). A mailbox owner
|
|
8
|
+
turns on video conferencing for a calendar event; a private meeting mints one link per invitee (inserted into the
|
|
9
|
+
invite's location and body), a public meeting shares a single link. Joining needs no account: a guest picks a name
|
|
10
|
+
(auto-filled from their RapidMX profile when signed in), checks their camera and microphone, and enters. Calls are
|
|
11
|
+
peer-to-peer WebRTC (no media server). Each pair of participants uses the best path that works, tried in order:
|
|
12
|
+
|
|
13
|
+
1. **Direct peer-to-peer**, the preferred path.
|
|
14
|
+
2. **Relayed through a configured TURN server**, for a participant a direct connection can't reach. A plain `turn:`
|
|
15
|
+
address is offered over both UDP and TCP, so a network that blocks UDP can still reach it.
|
|
16
|
+
3. **Proxied by the RapidMX server itself over a WebSocket**, the last resort for a participant whose network lets
|
|
17
|
+
nothing but ordinary HTTPS out. Video is lower quality and sound may lag; it needs a browser with WebCodecs, and
|
|
18
|
+
can be turned off with the `mail:videoconf:relay:enabled` setting. A tile says when a participant is on the TURN
|
|
19
|
+
relay or the server relay.
|
|
20
|
+
|
|
21
|
+
Participants can put **video filters** on their camera from the lobby or during the call: a blurred or custom
|
|
22
|
+
background, black and white / sepia / night vision / pixelate looks, and face accessories. They run entirely in the
|
|
23
|
+
browser (MediaPipe, loaded only when a filter needs it - from public CDNs by default, or from your own server with
|
|
24
|
+
`mail:videoconf:effects:assets_url`), and the devices, on/off state and filters a participant chose are remembered in
|
|
25
|
+
their browser's `localStorage` for next time.
|
|
26
|
+
|
|
27
|
+
During a call, participants can **chat** (Markdown, emoji, GIFs from the server's Giphy proxy, and image links shown
|
|
28
|
+
as images) and draw together on a **shared whiteboard** (five pen types, a stencil for shapes, stamps, swatches and a
|
|
29
|
+
color wheel). Both travel over the call's own signaling WebSocket (`/api/mail/video-meetings/signal/<meeting>`) and
|
|
30
|
+
last only as long as the call - a late joiner gets them from a participant already there, and nothing is stored on
|
|
31
|
+
the server.
|
|
32
|
+
|
|
33
|
+
## License
|
|
34
|
+
|
|
35
|
+
MPL-2.0 - see `LICENSE`.
|