@rapidmx/meet-plugin 0.4.0 → 0.4.1

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 (1) hide show
  1. package/package.json +181 -181
package/package.json CHANGED
@@ -1,181 +1,181 @@
1
- {
2
- "name": "@rapidmx/meet-plugin",
3
- "version": "0.4.0",
4
- "description": "RapidMX plugin that provides WebRTC video conferencing, joinable from a calendar invite or a shared link.",
5
- "repository": "https://github.com/RapidMX/meet-plugin.git",
6
- "author": "RapidREST <rapidrests@gmail.com>",
7
- "license": "MPL-2.0",
8
- "contributors": [
9
- "Jean-Philippe Steinmetz"
10
- ],
11
- "scripts": {
12
- "build": "yarn lint && rimraf dist && tsc && tsc -p tsconfig.apps.json",
13
- "lint": "eslint ./src ./apps ./test",
14
- "local-audit": "yarn install && yarn npm audit -A -R \"$@\"",
15
- "checkup": "yarn dlx @yarnpkg/doctor \"$@\"",
16
- "dependency-check": "yarn dlx depcheck \"$@\"",
17
- "report-coverage": "cat ./coverage/lcov.info | coveralls",
18
- "test": "vitest run",
19
- "test:prod": "npm run lint && vitest run --coverage",
20
- "test:watch": "vitest",
21
- "release": "npx @rapidrest/cli release",
22
- "prepublish": "yarn build"
23
- },
24
- "peerDependencies": {
25
- "@rapidmx/react-shared": ">=0.14.0 <1",
26
- "@rapidmx/restapi": ">=0.19.0 <1",
27
- "@rapidmx/web-client": ">=0.11.0 <1",
28
- "@rapidrest/core": "5.x",
29
- "@rapidrest/service-core": "2.x",
30
- "react": "19.x",
31
- "react-dom": "19.x"
32
- },
33
- "devDependencies": {
34
- "@rapidmx/react-shared": "^0.15.0",
35
- "@rapidmx/restapi": "^0.20.1",
36
- "@rapidmx/web-client": "^0.14.1",
37
- "@rapidrest/core": "^6.0.0",
38
- "@rapidrest/service-core": "^2.3.0",
39
- "@swc/core": "^1.16.2",
40
- "@testing-library/dom": "^10.4.1",
41
- "@testing-library/jest-dom": "^7.0.1",
42
- "@testing-library/react": "^16.3.3",
43
- "@testing-library/user-event": "^14.6.7",
44
- "@types/nconf": "^0.10.7",
45
- "@types/node": "^26.5.0",
46
- "@types/react": "^19.2.18",
47
- "@types/react-dom": "^19.2.7",
48
- "@typescript-eslint/eslint-plugin": "^8.70.0",
49
- "@typescript-eslint/parser": "^8.70.0",
50
- "@vitest/coverage-v8": "^5.0.0",
51
- "better-sqlite3": "^13.0.3",
52
- "eslint": "^10.10.0",
53
- "eslint-config-prettier": "^10.1.8",
54
- "eslint-plugin-import": "^2.32.0",
55
- "eslint-plugin-jsdoc": "^64.3.6",
56
- "globals": "^17.12.0",
57
- "jsdom": "^30.0.1",
58
- "lodash-es": "^4.18.1",
59
- "mongodb": "^7.6.0",
60
- "mongodb-memory-server": "^11.2.0",
61
- "nconf": "^0.13.0",
62
- "openapi3-ts": "^4.6.1",
63
- "prom-client": "^15.1.3",
64
- "react": "^19.2.8",
65
- "react-dom": "^19.2.8",
66
- "redis": "^6.2.1",
67
- "reflect-metadata": "^0.2.2",
68
- "rimraf": "^6.1.3",
69
- "ts-node": "^10.9.2",
70
- "tsx": "^4.23.13",
71
- "typeorm": "^1.1.1",
72
- "typescript": "^6.0.3",
73
- "unplugin-swc": "^1.6.0",
74
- "uuid": "^14.0.2",
75
- "vite": "^8.2.2",
76
- "vitest": "^5.0.0",
77
- "winston": "^3.19.0"
78
- },
79
- "resolutions": {
80
- "@rapidmx/react-shared": "^0.14.0",
81
- "@rapidmx/restapi": "^0.19.0",
82
- "@rapidmx/web-client": "^0.11.0"
83
- },
84
- "packageManager": "yarn@4.5.3",
85
- "engines": {
86
- "node": ">=24.0.0"
87
- },
88
- "publishConfig": {
89
- "registry": "https://registry.npmjs.org/"
90
- },
91
- "type": "module",
92
- "main": "dist/lib/index.js",
93
- "exports": {
94
- ".": {
95
- "import": "./dist/lib/index.js",
96
- "types": "./dist/types/index.d.ts"
97
- },
98
- "./mongo": {
99
- "import": "./dist/lib/mongo.js",
100
- "types": "./dist/types/mongo.d.ts"
101
- },
102
- "./sql": {
103
- "import": "./dist/lib/sql.js",
104
- "types": "./dist/types/sql.d.ts"
105
- }
106
- },
107
- "typings": "dist/types/index.d.ts",
108
- "files": [
109
- "apps",
110
- "dist"
111
- ],
112
- "rapidmx": {
113
- "plugin": {
114
- "apiVersion": 1,
115
- "displayName": "Video Conferencing",
116
- "description": "Private and public WebRTC video meetings. A private meeting mints one link per invitee for a calendar invite's location and body; a public meeting shares a single link. Joining needs no account - a guest picks a name, checks their camera and microphone, and enters.",
117
- "mailboxScopedData": true,
118
- "settings": [
119
- {
120
- "key": "mail:videoconf:public_url",
121
- "label": "Public join page URL",
122
- "type": "string",
123
- "default": "https://<host>/meet",
124
- "help": "The address of the public join pages. Filled in with this server's address when the plugin is installed. Calendar invites include a join link only when this is set."
125
- },
126
- {
127
- "key": "mail:videoconf:turn:url",
128
- "label": "TURN server URL",
129
- "type": "string",
130
- "default": "",
131
- "help": "A turn: or turns: URL (e.g. turns:turn.example.com:5349), or several separated by commas (turn:turn.example.com:3478,turns:turn.example.com:5349), relaying media for a participant behind a restrictive NAT or firewall, for whom a direct peer-to-peer connection fails. Public STUN servers are used for everyone else and need no configuration. Leave empty to serve calls with STUN only - most calls will still connect, but some participants may not."
132
- },
133
- {
134
- "key": "mail:videoconf:turn:username",
135
- "label": "TURN server username",
136
- "type": "string",
137
- "default": "",
138
- "help": "Used as-is unless a shared secret is also set below, in which case it is combined with a per-join expiring credential instead (coturn's time-limited REST credential mechanism) and this value is ignored."
139
- },
140
- {
141
- "key": "mail:videoconf:turn:credential",
142
- "label": "TURN server credential (static)",
143
- "type": "string",
144
- "default": "",
145
- "help": "The TURN server's password for the username above. Ignored when a shared secret is set below."
146
- },
147
- {
148
- "key": "mail:videoconf:turn:shared_secret",
149
- "label": "TURN server shared secret (for expiring credentials)",
150
- "type": "string",
151
- "default": "",
152
- "help": "coturn's static-auth-secret, if configured. When set, every join mints its own short-lived username/credential pair (an HMAC-SHA1 of a timestamp with this secret) instead of handing out one permanent password to every participant - the recommended setup. Leave empty to use the static username/credential above instead."
153
- }
154
- ],
155
- "ui": {
156
- "apps": [
157
- {
158
- "id": "meet",
159
- "host": "public",
160
- "mount": "/meet",
161
- "dir": "apps/meet"
162
- },
163
- {
164
- "id": "video-conferencing",
165
- "host": "www",
166
- "mount": "/settings/video-conferencing",
167
- "dir": "apps/settings-video-conferencing"
168
- }
169
- ],
170
- "settingsSections": [
171
- {
172
- "id": "video-conferencing",
173
- "label": "Video Conferencing",
174
- "href": "/settings/video-conferencing",
175
- "icon": "HiOutlineVideoCamera"
176
- }
177
- ]
178
- }
179
- }
180
- }
181
- }
1
+ {
2
+ "name": "@rapidmx/meet-plugin",
3
+ "version": "0.4.1",
4
+ "description": "RapidMX plugin that provides WebRTC video conferencing, joinable from a calendar invite or a shared link.",
5
+ "repository": "https://github.com/RapidMX/meet-plugin.git",
6
+ "author": "RapidREST <rapidrests@gmail.com>",
7
+ "license": "MPL-2.0",
8
+ "contributors": [
9
+ "Jean-Philippe Steinmetz"
10
+ ],
11
+ "scripts": {
12
+ "build": "yarn lint && rimraf dist && tsc && tsc -p tsconfig.apps.json",
13
+ "lint": "eslint ./src ./apps ./test",
14
+ "local-audit": "yarn install && yarn npm audit -A -R \"$@\"",
15
+ "checkup": "yarn dlx @yarnpkg/doctor \"$@\"",
16
+ "dependency-check": "yarn dlx depcheck \"$@\"",
17
+ "report-coverage": "cat ./coverage/lcov.info | coveralls",
18
+ "test": "vitest run",
19
+ "test:prod": "npm run lint && vitest run --coverage",
20
+ "test:watch": "vitest",
21
+ "release": "npx @rapidrest/cli release",
22
+ "prepublish": "yarn build"
23
+ },
24
+ "peerDependencies": {
25
+ "@rapidmx/react-shared": ">=0.16.0 <1",
26
+ "@rapidmx/restapi": ">=0.21.1 <1",
27
+ "@rapidmx/web-client": ">=0.15.1 <1",
28
+ "@rapidrest/core": "5.x",
29
+ "@rapidrest/service-core": "2.x",
30
+ "react": "19.x",
31
+ "react-dom": "19.x"
32
+ },
33
+ "devDependencies": {
34
+ "@rapidmx/react-shared": "^0.16.0",
35
+ "@rapidmx/restapi": "^0.21.1",
36
+ "@rapidmx/web-client": "^0.15.1",
37
+ "@rapidrest/core": "^6.0.0",
38
+ "@rapidrest/service-core": "^2.3.0",
39
+ "@swc/core": "^1.16.2",
40
+ "@testing-library/dom": "^10.4.1",
41
+ "@testing-library/jest-dom": "^7.0.1",
42
+ "@testing-library/react": "^16.3.3",
43
+ "@testing-library/user-event": "^14.6.7",
44
+ "@types/nconf": "^0.10.7",
45
+ "@types/node": "^26.5.0",
46
+ "@types/react": "^19.2.18",
47
+ "@types/react-dom": "^19.2.7",
48
+ "@typescript-eslint/eslint-plugin": "^8.70.0",
49
+ "@typescript-eslint/parser": "^8.70.0",
50
+ "@vitest/coverage-v8": "^5.0.0",
51
+ "better-sqlite3": "^13.0.3",
52
+ "eslint": "^10.10.0",
53
+ "eslint-config-prettier": "^10.1.8",
54
+ "eslint-plugin-import": "^2.32.0",
55
+ "eslint-plugin-jsdoc": "^64.3.6",
56
+ "globals": "^17.12.0",
57
+ "jsdom": "^30.0.1",
58
+ "lodash-es": "^4.18.1",
59
+ "mongodb": "^7.6.0",
60
+ "mongodb-memory-server": "^11.2.0",
61
+ "nconf": "^0.13.0",
62
+ "openapi3-ts": "^4.6.1",
63
+ "prom-client": "^15.1.3",
64
+ "react": "^19.2.8",
65
+ "react-dom": "^19.2.8",
66
+ "redis": "^6.2.1",
67
+ "reflect-metadata": "^0.2.2",
68
+ "rimraf": "^6.1.3",
69
+ "ts-node": "^10.9.2",
70
+ "tsx": "^4.23.13",
71
+ "typeorm": "^1.1.1",
72
+ "typescript": "^6.0.3",
73
+ "unplugin-swc": "^1.6.0",
74
+ "uuid": "^14.0.2",
75
+ "vite": "^8.2.2",
76
+ "vitest": "^5.0.0",
77
+ "winston": "^3.19.0"
78
+ },
79
+ "resolutions": {
80
+ "@rapidmx/react-shared": "^0.16.0",
81
+ "@rapidmx/restapi": "^0.21.1",
82
+ "@rapidmx/web-client": "^0.15.1"
83
+ },
84
+ "packageManager": "yarn@4.5.3",
85
+ "engines": {
86
+ "node": ">=24.0.0"
87
+ },
88
+ "publishConfig": {
89
+ "registry": "https://registry.npmjs.org/"
90
+ },
91
+ "type": "module",
92
+ "main": "dist/lib/index.js",
93
+ "exports": {
94
+ ".": {
95
+ "import": "./dist/lib/index.js",
96
+ "types": "./dist/types/index.d.ts"
97
+ },
98
+ "./mongo": {
99
+ "import": "./dist/lib/mongo.js",
100
+ "types": "./dist/types/mongo.d.ts"
101
+ },
102
+ "./sql": {
103
+ "import": "./dist/lib/sql.js",
104
+ "types": "./dist/types/sql.d.ts"
105
+ }
106
+ },
107
+ "typings": "dist/types/index.d.ts",
108
+ "files": [
109
+ "apps",
110
+ "dist"
111
+ ],
112
+ "rapidmx": {
113
+ "plugin": {
114
+ "apiVersion": 1,
115
+ "displayName": "Video Conferencing",
116
+ "description": "Private and public WebRTC video meetings. A private meeting mints one link per invitee for a calendar invite's location and body; a public meeting shares a single link. Joining needs no account - a guest picks a name, checks their camera and microphone, and enters.",
117
+ "mailboxScopedData": true,
118
+ "settings": [
119
+ {
120
+ "key": "mail:videoconf:public_url",
121
+ "label": "Public join page URL",
122
+ "type": "string",
123
+ "default": "https://<host>/meet",
124
+ "help": "The address of the public join pages. Filled in with this server's address when the plugin is installed. Calendar invites include a join link only when this is set."
125
+ },
126
+ {
127
+ "key": "mail:videoconf:turn:url",
128
+ "label": "TURN server URL",
129
+ "type": "string",
130
+ "default": "",
131
+ "help": "A turn: or turns: URL (e.g. turns:turn.example.com:5349), or several separated by commas (turn:turn.example.com:3478,turns:turn.example.com:5349), relaying media for a participant behind a restrictive NAT or firewall, for whom a direct peer-to-peer connection fails. Public STUN servers are used for everyone else and need no configuration. Leave empty to serve calls with STUN only - most calls will still connect, but some participants may not."
132
+ },
133
+ {
134
+ "key": "mail:videoconf:turn:username",
135
+ "label": "TURN server username",
136
+ "type": "string",
137
+ "default": "",
138
+ "help": "Used as-is unless a shared secret is also set below, in which case it is combined with a per-join expiring credential instead (coturn's time-limited REST credential mechanism) and this value is ignored."
139
+ },
140
+ {
141
+ "key": "mail:videoconf:turn:credential",
142
+ "label": "TURN server credential (static)",
143
+ "type": "string",
144
+ "default": "",
145
+ "help": "The TURN server's password for the username above. Ignored when a shared secret is set below."
146
+ },
147
+ {
148
+ "key": "mail:videoconf:turn:shared_secret",
149
+ "label": "TURN server shared secret (for expiring credentials)",
150
+ "type": "string",
151
+ "default": "",
152
+ "help": "coturn's static-auth-secret, if configured. When set, every join mints its own short-lived username/credential pair (an HMAC-SHA1 of a timestamp with this secret) instead of handing out one permanent password to every participant - the recommended setup. Leave empty to use the static username/credential above instead."
153
+ }
154
+ ],
155
+ "ui": {
156
+ "apps": [
157
+ {
158
+ "id": "meet",
159
+ "host": "public",
160
+ "mount": "/meet",
161
+ "dir": "apps/meet"
162
+ },
163
+ {
164
+ "id": "video-conferencing",
165
+ "host": "www",
166
+ "mount": "/settings/video-conferencing",
167
+ "dir": "apps/settings-video-conferencing"
168
+ }
169
+ ],
170
+ "settingsSections": [
171
+ {
172
+ "id": "video-conferencing",
173
+ "label": "Video Conferencing",
174
+ "href": "/settings/video-conferencing",
175
+ "icon": "HiOutlineVideoCamera"
176
+ }
177
+ ]
178
+ }
179
+ }
180
+ }
181
+ }