[mirotalk] - improve login and waiting room UI

This commit is contained in:
Miroslav Pejic
2026-03-18 15:27:19 +01:00
parent 74b58f6f19
commit 6a7d3f28f0
14 changed files with 524 additions and 263 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
# ====================================================
# MiroTalk P2P v.1.7.53 - Environment Configuration
# MiroTalk P2P v.1.7.54 - Environment Configuration
# ====================================================
# App environment
+4 -1
View File
@@ -2,7 +2,7 @@
/**
* ==============================================
* MiroTalk P2P v.1.7.53 - Configuration File
* MiroTalk P2P v.1.7.54 - Configuration File
* ==============================================
*
* This file is the central configuration source.
@@ -300,6 +300,9 @@ module.exports = {
waitingRoomWaiting: 'Waiting for host to start the meeting...',
waitingRoomHostLink: 'Are you the host?',
waitingRoomLoginLink: 'Login here',
waitingRoomElapsedJust: 'Just started waiting',
waitingRoomElapsedMinutes: 'Waiting for {minutes}',
waitingRoomSongUrl: '../sounds/waiting-music.mp3',
},
html: {
topSponsors: true,
+1 -1
View File
@@ -45,7 +45,7 @@ dependencies: {
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.7.53
* @version 1.7.54
*
*/
+219 -237
View File
@@ -1,17 +1,17 @@
{
"name": "mirotalk",
"version": "1.7.53",
"version": "1.7.54",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "mirotalk",
"version": "1.7.53",
"version": "1.7.54",
"license": "AGPL-3.0",
"dependencies": {
"@mattermost/client": "11.4.0",
"@ngrok/ngrok": "1.7.0",
"@sentry/node": "^10.43.0",
"@sentry/node": "^10.44.0",
"axios": "^1.13.6",
"chokidar": "^5.0.0",
"colors": "^1.4.0",
@@ -29,8 +29,8 @@
"js-yaml": "^4.1.1",
"jsdom": "^29.0.0",
"jsonwebtoken": "^9.0.3",
"nodemailer": "^8.0.2",
"openai": "^6.31.0",
"nodemailer": "^8.0.3",
"openai": "^6.32.0",
"qs": "^6.15.0",
"socket.io": "^4.8.3",
"swagger-ui-express": "^5.0.1",
@@ -266,9 +266,9 @@
}
},
"node_modules/@fastify/otel": {
"version": "0.16.0",
"resolved": "https://registry.npmjs.org/@fastify/otel/-/otel-0.16.0.tgz",
"integrity": "sha512-2304BdM5Q/kUvQC9qJO1KZq3Zn1WWsw+WWkVmFEaj1UE2hEIiuFqrPeglQOwEtw/ftngisqfQ3v70TWMmwhhHA==",
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/@fastify/otel/-/otel-0.17.1.tgz",
"integrity": "sha512-K4wyxfUZx2ux5o+b6BtTqouYFVILohLZmSbA2tKUueJstNcBnoGPVhllCaOvbQ3ZrXdUxUC/fyrSWSCqHhdOPg==",
"funding": [
{
"type": "github",
@@ -282,18 +282,18 @@
"license": "MIT",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.208.0",
"@opentelemetry/instrumentation": "^0.212.0",
"@opentelemetry/semantic-conventions": "^1.28.0",
"minimatch": "^10.0.3"
"minimatch": "^10.2.4"
},
"peerDependencies": {
"@opentelemetry/api": "^1.9.0"
}
},
"node_modules/@fastify/otel/node_modules/@opentelemetry/api-logs": {
"version": "0.208.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.208.0.tgz",
"integrity": "sha512-CjruKY9V6NMssL/T1kAFgzosF1v9o6oeN+aX5JB/C/xPNtmgIJqcXHG7fA82Ou1zCpWGl4lROQUKwUNE1pMCyg==",
"version": "0.212.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.212.0.tgz",
"integrity": "sha512-TEEVrLbNROUkYY51sBJGk7lO/OLjuepch8+hmpM6ffMJQ2z/KVCjdHuCFX6fJj8OkJP2zckPjrJzQtXU3IAsFg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api": "^1.3.0"
@@ -303,13 +303,13 @@
}
},
"node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation": {
"version": "0.208.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.208.0.tgz",
"integrity": "sha512-Eju0L4qWcQS+oXxi6pgh7zvE2byogAkcsVv0OjHF/97iOz1N/aKE6etSGowYkie+YA1uo6DNwdSxaaNnLvcRlA==",
"version": "0.212.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.212.0.tgz",
"integrity": "sha512-IyXmpNnifNouMOe0I/gX7ENfv2ZCNdYTF0FpCsoBcpbIHzk81Ww9rQTYTnvghszCg7qGrIhNvWC8dhEifgX9Jg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api-logs": "0.208.0",
"import-in-the-middle": "^2.0.0",
"@opentelemetry/api-logs": "0.212.0",
"import-in-the-middle": "^2.0.6",
"require-in-the-middle": "^8.0.0"
},
"engines": {
@@ -329,9 +329,9 @@
}
},
"node_modules/@fastify/otel/node_modules/brace-expansion": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
"integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
@@ -340,6 +340,18 @@
"node": "18 || 20 || >=22"
}
},
"node_modules/@fastify/otel/node_modules/import-in-the-middle": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz",
"integrity": "sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==",
"license": "Apache-2.0",
"dependencies": {
"acorn": "^8.15.0",
"acorn-import-attributes": "^1.9.5",
"cjs-module-lexer": "^2.2.0",
"module-details-from-path": "^1.0.4"
}
},
"node_modules/@fastify/otel/node_modules/minimatch": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
@@ -657,9 +669,9 @@
}
},
"node_modules/@opentelemetry/api-logs": {
"version": "0.211.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.211.0.tgz",
"integrity": "sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==",
"version": "0.213.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.213.0.tgz",
"integrity": "sha512-zRM5/Qj6G84Ej3F1yt33xBVY/3tnMxtL1fiDIxYbDWYaZ/eudVw3/PBiZ8G7JwUxXxjW8gU4g6LnOyfGKYHYgw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api": "^1.3.0"
@@ -681,9 +693,9 @@
}
},
"node_modules/@opentelemetry/core": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.5.0.tgz",
"integrity": "sha512-ka4H8OM6+DlUhSAZpONu0cPBtPPTQKxbxVzC4CzVx5+K4JnroJVBtDzLAMx4/3CDTJXRvVFhpFjtl4SaiTNoyQ==",
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.6.0.tgz",
"integrity": "sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/semantic-conventions": "^1.29.0"
@@ -696,13 +708,13 @@
}
},
"node_modules/@opentelemetry/instrumentation": {
"version": "0.211.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.211.0.tgz",
"integrity": "sha512-h0nrZEC/zvI994nhg7EgQ8URIHt0uDTwN90r3qQUdZORS455bbx+YebnGeEuFghUT0HlJSrLF4iHw67f+odY+Q==",
"version": "0.213.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.213.0.tgz",
"integrity": "sha512-3i9NdkET/KvQomeh7UaR/F4r9P25Rx6ooALlWXPIjypcEOUxksCmVu0zA70NBJWlrMW1rPr/LRidFAflLI+s/w==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api-logs": "0.211.0",
"import-in-the-middle": "^2.0.0",
"@opentelemetry/api-logs": "0.213.0",
"import-in-the-middle": "^3.0.0",
"require-in-the-middle": "^8.0.0"
},
"engines": {
@@ -713,13 +725,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-amqplib": {
"version": "0.58.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.58.0.tgz",
"integrity": "sha512-fjpQtH18J6GxzUZ+cwNhWUpb71u+DzT7rFkg5pLssDGaEber91Y2WNGdpVpwGivfEluMlNMZumzjEqfg8DeKXQ==",
"version": "0.60.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.60.0.tgz",
"integrity": "sha512-q/B2IvoVXRm1M00MvhnzpMN6rKYOszPXVsALi6u0ss4AYHe+TidZEtLW9N1ZhrobI1dSriHnBqqtAOZVAv07sg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0"
},
"engines": {
@@ -730,13 +742,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-connect": {
"version": "0.54.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.54.0.tgz",
"integrity": "sha512-43RmbhUhqt3uuPnc16cX6NsxEASEtn8z/cYV8Zpt6EP4p2h9s4FNuJ4Q9BbEQ2C0YlCCB/2crO1ruVz/hWt8fA==",
"version": "0.56.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.56.0.tgz",
"integrity": "sha512-PKp+sSZ7AfzMvGgO3VCyo1inwNu+q7A1k9X88WK4PQ+S6Hp7eFk8pie+sWHDTaARovmqq5V2osav3lQej2B0nw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.27.0",
"@types/connect": "3.4.38"
},
@@ -748,12 +760,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-dataloader": {
"version": "0.28.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.28.0.tgz",
"integrity": "sha512-ExXGBp0sUj8yhm6Znhf9jmuOaGDsYfDES3gswZnKr4MCqoBWQdEFn6EoDdt5u+RdbxQER+t43FoUihEfTSqsjA==",
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.30.0.tgz",
"integrity": "sha512-MXHP2Q38cd2OhzEBKAIXUi9uBlPEYzF6BNJbyjUXBQ6kLaf93kRC41vNMIz0Nl5mnuwK7fDvKT+/lpx7BXRwdg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0"
"@opentelemetry/instrumentation": "^0.213.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -763,13 +775,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-express": {
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.59.0.tgz",
"integrity": "sha512-pMKV/qnHiW/Q6pmbKkxt0eIhuNEtvJ7sUAyee192HErlr+a1Jx+FZ3WjfmzhQL1geewyGEiPGkmjjAgNY8TgDA==",
"version": "0.61.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.61.0.tgz",
"integrity": "sha512-Xdmqo9RZuZlL29Flg8QdwrrX7eW1CZ7wFQPKHyXljNymgKhN1MCsYuqQ/7uxavhSKwAl7WxkTzKhnqpUApLMvQ==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
@@ -780,13 +792,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-fs": {
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.30.0.tgz",
"integrity": "sha512-n3Cf8YhG7reaj5dncGlRIU7iT40bxPOjsBEA5Bc1a1g6e9Qvb+JFJ7SEiMlPbUw4PBmxE3h40ltE8LZ3zVt6OA==",
"version": "0.32.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.32.0.tgz",
"integrity": "sha512-koR6apx0g0wX6RRiPpjA4AFQUQUbXrK16kq4/SZjVp7u5cffJhNkY4TnITxcGA4acGSPYAfx3NHRIv4Khn1axQ==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0"
"@opentelemetry/instrumentation": "^0.213.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -796,12 +808,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-generic-pool": {
"version": "0.54.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.54.0.tgz",
"integrity": "sha512-8dXMBzzmEdXfH/wjuRvcJnUFeWzZHUnExkmFJ2uPfa31wmpyBCMxO59yr8f/OXXgSogNgi/uPo9KW9H7LMIZ+g==",
"version": "0.56.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.56.0.tgz",
"integrity": "sha512-fg+Jffs6fqrf0uQS0hom7qBFKsbtpBiBl8+Vkc63Gx8xh6pVh+FhagmiO6oM0m3vyb683t1lP7yGYq22SiDnqg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0"
"@opentelemetry/instrumentation": "^0.213.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -811,12 +823,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-graphql": {
"version": "0.58.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.58.0.tgz",
"integrity": "sha512-+yWVVY7fxOs3j2RixCbvue8vUuJ1inHxN2q1sduqDB0Wnkr4vOzVKRYl/Zy7B31/dcPS72D9lo/kltdOTBM3bQ==",
"version": "0.61.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.61.0.tgz",
"integrity": "sha512-pUiVASv6nh2XrerTvlbVHh7vKFzscpgwiQ/xvnZuAIzQ5lRjWVdRPUuXbvZJ/Yq79QsE81TZdJ7z9YsXiss1ew==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0"
"@opentelemetry/instrumentation": "^0.213.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -826,13 +838,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-hapi": {
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.57.0.tgz",
"integrity": "sha512-Os4THbvls8cTQTVA8ApLfZZztuuqGEeqog0XUnyRW7QVF0d/vOVBEcBCk1pazPFmllXGEdNbbat8e2fYIWdFbw==",
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.59.0.tgz",
"integrity": "sha512-33wa4mEr+9+ztwdgLor1SeBu4Opz4IsmpcLETXAd3VmBrOjez8uQtrsOhPCa5Vhbm5gzDlMYTgFRLQzf8/YHFA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
@@ -843,13 +855,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-http": {
"version": "0.211.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.211.0.tgz",
"integrity": "sha512-n0IaQ6oVll9PP84SjbOCwDjaJasWRHi6BLsbMLiT6tNj7QbVOkuA5sk/EfZczwI0j5uTKl1awQPivO/ldVtsqA==",
"version": "0.213.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.213.0.tgz",
"integrity": "sha512-B978Xsm5XEPGhm1P07grDoaOFLHapJPkOG9h016cJsyWWxmiLnPu2M/4Nrm7UCkHSiLnkXgC+zVGUAIahy8EEA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "2.5.0",
"@opentelemetry/instrumentation": "0.211.0",
"@opentelemetry/core": "2.6.0",
"@opentelemetry/instrumentation": "0.213.0",
"@opentelemetry/semantic-conventions": "^1.29.0",
"forwarded-parse": "2.1.2"
},
@@ -861,12 +873,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-ioredis": {
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.59.0.tgz",
"integrity": "sha512-875UxzBHWkW+P4Y45SoFM2AR8f8TzBMD8eO7QXGCyFSCUMP5s9vtt/BS8b/r2kqLyaRPK6mLbdnZznK3XzQWvw==",
"version": "0.61.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.61.0.tgz",
"integrity": "sha512-hsHDadUtAFbws1YSDc1XW0svGFKiUbqv2td1Cby+UAiwvojm1NyBo/taifH0t8CuFZ0x/2SDm0iuTwrM5pnVOg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/redis-common": "^0.38.2",
"@opentelemetry/semantic-conventions": "^1.33.0"
},
@@ -878,12 +890,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-kafkajs": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.20.0.tgz",
"integrity": "sha512-yJXOuWZROzj7WmYCUiyT27tIfqBrVtl1/TwVbQyWPz7rL0r1Lu7kWjD0PiVeTCIL6CrIZ7M2s8eBxsTAOxbNvw==",
"version": "0.22.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.22.0.tgz",
"integrity": "sha512-wJU4IBQMUikdJAcTChLFqK5lo+flo7pahqd8DSLv7uMxsdOdAHj6RzKYAm8pPfUS6ItKYutYyuicwKaFwQKsoA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.30.0"
},
"engines": {
@@ -894,12 +906,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-knex": {
"version": "0.55.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.55.0.tgz",
"integrity": "sha512-FtTL5DUx5Ka/8VK6P1VwnlUXPa3nrb7REvm5ddLUIeXXq4tb9pKd+/ThB1xM/IjefkRSN3z8a5t7epYw1JLBJQ==",
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.57.0.tgz",
"integrity": "sha512-vMCSh8kolEm5rRsc+FZeTZymWmIJwc40hjIKnXH4O0Dv/gAkJJIRXCsPX5cPbe0c0j/34+PsENd0HqKruwhVYw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.1"
},
"engines": {
@@ -910,13 +922,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-koa": {
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.59.0.tgz",
"integrity": "sha512-K9o2skADV20Skdu5tG2bogPKiSpXh4KxfLjz6FuqIVvDJNibwSdu5UvyyBzRVp1rQMV6UmoIk6d3PyPtJbaGSg==",
"version": "0.61.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.61.0.tgz",
"integrity": "sha512-lvrfWe9ShK/D2X4brmx8ZqqeWPfRl8xekU0FCn7C1dHm5k6+rTOOi36+4fnaHAP8lig9Ux6XQ1D4RNIpPCt1WQ==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.36.0"
},
"engines": {
@@ -927,12 +939,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-lru-memoizer": {
"version": "0.55.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.55.0.tgz",
"integrity": "sha512-FDBfT7yDGcspN0Cxbu/k8A0Pp1Jhv/m7BMTzXGpcb8ENl3tDj/51U65R5lWzUH15GaZA15HQ5A5wtafklxYj7g==",
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.57.0.tgz",
"integrity": "sha512-cEqpUocSKJfwDtLYTTJehRLWzkZ2eoePCxfVIgGkGkb83fMB71O+y4MvRHJPbeV2bdoWdOVrl8uO0+EynWhTEA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0"
"@opentelemetry/instrumentation": "^0.213.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -942,12 +954,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-mongodb": {
"version": "0.64.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.64.0.tgz",
"integrity": "sha512-pFlCJjweTqVp7B220mCvCld1c1eYKZfQt1p3bxSbcReypKLJTwat+wbL2YZoX9jPi5X2O8tTKFEOahO5ehQGsA==",
"version": "0.66.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.66.0.tgz",
"integrity": "sha512-d7m9QnAY+4TCWI4q1QRkfrc6fo/92VwssaB1DzQfXNRvu51b78P+HJlWP7Qg6N6nkwdb9faMZNBCZJfftmszkw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0"
},
"engines": {
@@ -958,13 +970,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-mongoose": {
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.57.0.tgz",
"integrity": "sha512-MthiekrU/BAJc5JZoZeJmo0OTX6ycJMiP6sMOSRTkvz5BrPMYDqaJos0OgsLPL/HpcgHP7eo5pduETuLguOqcg==",
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.59.0.tgz",
"integrity": "sha512-6/jWU+c1NgznkVLDU/2y0bXV2nJo3o9FWZ9mZ9nN6T/JBNRoMnVXZl2FdBmgH+a5MwaWLs5kmRJTP5oUVGIkPw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0"
},
"engines": {
@@ -975,12 +987,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-mysql": {
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.57.0.tgz",
"integrity": "sha512-HFS/+FcZ6Q7piM7Il7CzQ4VHhJvGMJWjx7EgCkP5AnTntSN5rb5Xi3TkYJHBKeR27A0QqPlGaCITi93fUDs++Q==",
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.59.0.tgz",
"integrity": "sha512-r+V/Fh0sm7Ga8/zk/TI5H5FQRAjwr0RrpfPf8kNIehlsKf12XnvIaZi8ViZkpX0gyPEpLXqzqWD6QHlgObgzZw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0",
"@types/mysql": "2.15.27"
},
@@ -992,12 +1004,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-mysql2": {
"version": "0.57.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.57.0.tgz",
"integrity": "sha512-nHSrYAwF7+aV1E1V9yOOP9TchOodb6fjn4gFvdrdQXiRE7cMuffyLLbCZlZd4wsspBzVwOXX8mpURdRserAhNA==",
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.59.0.tgz",
"integrity": "sha512-n9/xrVCRBfG9egVbffnlU1uhr+HX0vF4GgtAB/Bvm48wpFgRidqD8msBMiym1kRYzmpWvJqTxNT47u1MkgBEdw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0",
"@opentelemetry/sql-common": "^0.41.2"
},
@@ -1009,13 +1021,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-pg": {
"version": "0.63.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.63.0.tgz",
"integrity": "sha512-dKm/ODNN3GgIQVlbD6ZPxwRc3kleLf95hrRWXM+l8wYo+vSeXtEpQPT53afEf6VFWDVzJK55VGn8KMLtSve/cg==",
"version": "0.65.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.65.0.tgz",
"integrity": "sha512-W0zpHEIEuyZ8zvb3njaX9AAbHgPYOsSWVOoWmv1sjVRSF6ZpBqtlxBWbU+6hhq1TFWBeWJOXZ8nZS/PUFpLJYQ==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.34.0",
"@opentelemetry/sql-common": "^0.41.2",
"@types/pg": "8.15.6",
@@ -1029,12 +1041,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-redis": {
"version": "0.59.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.59.0.tgz",
"integrity": "sha512-JKv1KDDYA2chJ1PC3pLP+Q9ISMQk6h5ey+99mB57/ARk0vQPGZTTEb4h4/JlcEpy7AYT8HIGv7X6l+br03Neeg==",
"version": "0.61.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.61.0.tgz",
"integrity": "sha512-JnPexA034/0UJRsvH96B0erQoNOqKJZjE2ZRSw9hiTSC23LzE0nJE/u6D+xqOhgUhRnhhcPHq4MdYtmUdYTF+Q==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/redis-common": "^0.38.2",
"@opentelemetry/semantic-conventions": "^1.27.0"
},
@@ -1046,12 +1058,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-tedious": {
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.30.0.tgz",
"integrity": "sha512-bZy9Q8jFdycKQ2pAsyuHYUHNmCxCOGdG6eg1Mn75RvQDccq832sU5OWOBnc12EFUELI6icJkhR7+EQKMBam2GA==",
"version": "0.32.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.32.0.tgz",
"integrity": "sha512-BQS6gG8RJ1foEqfEZ+wxoqlwfCAzb1ZVG0ad8Gfe4x8T658HJCLGLd4E4NaoQd8EvPfLqOXgzGaE/2U4ytDSWA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.33.0",
"@types/tedious": "^4.0.14"
},
@@ -1063,13 +1075,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-undici": {
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.21.0.tgz",
"integrity": "sha512-gok0LPUOTz2FQ1YJMZzaHcOzDFyT64XJ8M9rNkugk923/p6lDGms/cRW1cqgqp6N6qcd6K6YdVHwPEhnx9BWbw==",
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.23.0.tgz",
"integrity": "sha512-LL0VySzKVR2cJSFVZaTYpZl1XTpBGnfzoQPe2W7McS2267ldsaEIqtQY6VXs2KCXN0poFjze5110PIpxHDaDGg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/semantic-conventions": "^1.24.0"
},
"engines": {
@@ -1104,21 +1116,6 @@
"@opentelemetry/api": ">=1.3.0 <1.10.0"
}
},
"node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.6.0.tgz",
"integrity": "sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
"node_modules/@opentelemetry/sdk-trace-base": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.6.0.tgz",
@@ -1136,25 +1133,10 @@
"@opentelemetry/api": ">=1.3.0 <1.10.0"
}
},
"node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.6.0.tgz",
"integrity": "sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
"node_modules/@opentelemetry/semantic-conventions": {
"version": "1.39.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz",
"integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==",
"version": "1.40.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz",
"integrity": "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==",
"license": "Apache-2.0",
"engines": {
"node": ">=14"
@@ -1196,9 +1178,9 @@
}
},
"node_modules/@prisma/instrumentation": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-7.2.0.tgz",
"integrity": "sha512-Rh9Z4x5kEj1OdARd7U18AtVrnL6rmLSI0qYShaB4W7Wx5BKbgzndWF+QnuzMb7GLfVdlT5aYCXoPQVYuYtVu0g==",
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-7.4.2.tgz",
"integrity": "sha512-r9JfchJF1Ae6yAxcaLu/V1TGqBhAuSDe3mRNOssBfx1rMzfZ4fdNvrgUBwyb/TNTGXFxlH9AZix5P257x07nrg==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/instrumentation": "^0.207.0"
@@ -1236,6 +1218,18 @@
"@opentelemetry/api": "^1.3.0"
}
},
"node_modules/@prisma/instrumentation/node_modules/import-in-the-middle": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz",
"integrity": "sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==",
"license": "Apache-2.0",
"dependencies": {
"acorn": "^8.15.0",
"acorn-import-attributes": "^1.9.5",
"cjs-module-lexer": "^2.2.0",
"module-details-from-path": "^1.0.4"
}
},
"node_modules/@scarf/scarf": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz",
@@ -1244,69 +1238,69 @@
"license": "Apache-2.0"
},
"node_modules/@sentry/core": {
"version": "10.43.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.43.0.tgz",
"integrity": "sha512-l0SszQAPiQGWl/ferw8GP3ALyHXiGiRKJaOvNmhGO+PrTQyZTZ6OYyPnGijAFRg58dE1V3RCH/zw5d2xSUIiNg==",
"version": "10.44.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.44.0.tgz",
"integrity": "sha512-aa7CiDaNFZvHpqd97LJhuskolfJ/4IH5xyuVVLnv7l6B0v9KTwskPUxb0tH1ej3FxuzfH+i8iTiTFuqpfHS3QA==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/node": {
"version": "10.43.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.43.0.tgz",
"integrity": "sha512-oNwXcuZUc4uTTr0WbHZBBIKsKwAKvNMTgbXwxfB37CfzV18wbTirbQABZ/Ir3WNxSgi6ZcnC6UE013jF5XWPqw==",
"version": "10.44.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.44.0.tgz",
"integrity": "sha512-q+/WR9ZeF9Af8uyehOj2tQQOa7LH07mJfOuDus5X6G6cLuugdRUGUBB5Qhw+J/ULSxbzGADBZv6AYOyoGaNx7w==",
"license": "MIT",
"dependencies": {
"@fastify/otel": "0.16.0",
"@fastify/otel": "0.17.1",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/context-async-hooks": "^2.5.1",
"@opentelemetry/core": "^2.5.1",
"@opentelemetry/instrumentation": "^0.211.0",
"@opentelemetry/instrumentation-amqplib": "0.58.0",
"@opentelemetry/instrumentation-connect": "0.54.0",
"@opentelemetry/instrumentation-dataloader": "0.28.0",
"@opentelemetry/instrumentation-express": "0.59.0",
"@opentelemetry/instrumentation-fs": "0.30.0",
"@opentelemetry/instrumentation-generic-pool": "0.54.0",
"@opentelemetry/instrumentation-graphql": "0.58.0",
"@opentelemetry/instrumentation-hapi": "0.57.0",
"@opentelemetry/instrumentation-http": "0.211.0",
"@opentelemetry/instrumentation-ioredis": "0.59.0",
"@opentelemetry/instrumentation-kafkajs": "0.20.0",
"@opentelemetry/instrumentation-knex": "0.55.0",
"@opentelemetry/instrumentation-koa": "0.59.0",
"@opentelemetry/instrumentation-lru-memoizer": "0.55.0",
"@opentelemetry/instrumentation-mongodb": "0.64.0",
"@opentelemetry/instrumentation-mongoose": "0.57.0",
"@opentelemetry/instrumentation-mysql": "0.57.0",
"@opentelemetry/instrumentation-mysql2": "0.57.0",
"@opentelemetry/instrumentation-pg": "0.63.0",
"@opentelemetry/instrumentation-redis": "0.59.0",
"@opentelemetry/instrumentation-tedious": "0.30.0",
"@opentelemetry/instrumentation-undici": "0.21.0",
"@opentelemetry/resources": "^2.5.1",
"@opentelemetry/sdk-trace-base": "^2.5.1",
"@opentelemetry/semantic-conventions": "^1.39.0",
"@prisma/instrumentation": "7.2.0",
"@sentry/core": "10.43.0",
"@sentry/node-core": "10.43.0",
"@sentry/opentelemetry": "10.43.0",
"import-in-the-middle": "^2.0.6"
"@opentelemetry/context-async-hooks": "^2.6.0",
"@opentelemetry/core": "^2.6.0",
"@opentelemetry/instrumentation": "^0.213.0",
"@opentelemetry/instrumentation-amqplib": "0.60.0",
"@opentelemetry/instrumentation-connect": "0.56.0",
"@opentelemetry/instrumentation-dataloader": "0.30.0",
"@opentelemetry/instrumentation-express": "0.61.0",
"@opentelemetry/instrumentation-fs": "0.32.0",
"@opentelemetry/instrumentation-generic-pool": "0.56.0",
"@opentelemetry/instrumentation-graphql": "0.61.0",
"@opentelemetry/instrumentation-hapi": "0.59.0",
"@opentelemetry/instrumentation-http": "0.213.0",
"@opentelemetry/instrumentation-ioredis": "0.61.0",
"@opentelemetry/instrumentation-kafkajs": "0.22.0",
"@opentelemetry/instrumentation-knex": "0.57.0",
"@opentelemetry/instrumentation-koa": "0.61.0",
"@opentelemetry/instrumentation-lru-memoizer": "0.57.0",
"@opentelemetry/instrumentation-mongodb": "0.66.0",
"@opentelemetry/instrumentation-mongoose": "0.59.0",
"@opentelemetry/instrumentation-mysql": "0.59.0",
"@opentelemetry/instrumentation-mysql2": "0.59.0",
"@opentelemetry/instrumentation-pg": "0.65.0",
"@opentelemetry/instrumentation-redis": "0.61.0",
"@opentelemetry/instrumentation-tedious": "0.32.0",
"@opentelemetry/instrumentation-undici": "0.23.0",
"@opentelemetry/resources": "^2.6.0",
"@opentelemetry/sdk-trace-base": "^2.6.0",
"@opentelemetry/semantic-conventions": "^1.40.0",
"@prisma/instrumentation": "7.4.2",
"@sentry/core": "10.44.0",
"@sentry/node-core": "10.44.0",
"@sentry/opentelemetry": "10.44.0",
"import-in-the-middle": "^3.0.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/node-core": {
"version": "10.43.0",
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.43.0.tgz",
"integrity": "sha512-w2H3NSkNMoYOS7o7mR55BM7+xL++dPxMSv1/XDfsra9FYHGppO+Mxk667Ee5k+uDi+wNIioICIh+5XOvZh4+HQ==",
"version": "10.44.0",
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.44.0.tgz",
"integrity": "sha512-jUGsadMrvZ08UMbqJBfjFFMk1k3VbyxfUypf0iDGGgyLmuHotYQPo/5aND+o2KxMDXR60LwcQrMoZFpanK6jXQ==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.43.0",
"@sentry/opentelemetry": "10.43.0",
"import-in-the-middle": "^2.0.6"
"@sentry/core": "10.44.0",
"@sentry/opentelemetry": "10.44.0",
"import-in-the-middle": "^3.0.0"
},
"engines": {
"node": ">=18"
@@ -1344,28 +1338,13 @@
}
}
},
"node_modules/@sentry/node/node_modules/@opentelemetry/core": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.5.1.tgz",
"integrity": "sha512-Dwlc+3HAZqpgTYq0MUyZABjFkcrKTePwuiFVLjahGD8cx3enqihmpAmdgNFO1R4m/sIe5afjJrA25Prqy4NXlA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
"node_modules/@sentry/opentelemetry": {
"version": "10.43.0",
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.43.0.tgz",
"integrity": "sha512-+fIcnnLdvBHdq4nKq23t9v/B9D4L97fPWEDksXbpGs11o6BsqY4Tlzmce6cP95iiQhPckCEag3FthSND+BYtYQ==",
"version": "10.44.0",
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.44.0.tgz",
"integrity": "sha512-zP4vP8tBxjlmxQ4VcWOwZ0b3lPUxlYPg9FqJwANm9SRJN+7V5psm8TIaAtu9uqtIcJMRHdXkOM4cAggNiLk0KA==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.43.0"
"@sentry/core": "10.44.0"
},
"engines": {
"node": ">=18"
@@ -1601,9 +1580,9 @@
}
},
"node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
@@ -3781,15 +3760,18 @@
"license": "ISC"
},
"node_modules/import-in-the-middle": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz",
"integrity": "sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-3.0.0.tgz",
"integrity": "sha512-OnGy+eYT7wVejH2XWgLRgbmzujhhVIATQH0ztIeRilwHBjTeG3pD+XnH3PKX0r9gJ0BuJmJ68q/oh9qgXnNDQg==",
"license": "Apache-2.0",
"dependencies": {
"acorn": "^8.15.0",
"acorn-import-attributes": "^1.9.5",
"cjs-module-lexer": "^2.2.0",
"module-details-from-path": "^1.0.4"
},
"engines": {
"node": ">=18"
}
},
"node_modules/indent-string": {
@@ -4811,9 +4793,9 @@
}
},
"node_modules/nodemailer": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.2.tgz",
"integrity": "sha512-zbj002pZAIkWQFxyAaqoxvn+zoIwRnS40hgjqTXudKOOJkiFFgBeNqjgD3/YCR12sZnrghWYBY+yP1ZucdDRpw==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.3.tgz",
"integrity": "sha512-JQNBqvK+bj3NMhUFR3wmCl3SYcOeMotDiwDBvIoCuQdF0PvlIY0BH+FJ2CG7u4cXKPChplE78oowlH/Otsc4ZQ==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
@@ -5115,9 +5097,9 @@
}
},
"node_modules/openai": {
"version": "6.31.0",
"resolved": "https://registry.npmjs.org/openai/-/openai-6.31.0.tgz",
"integrity": "sha512-iqEn3QY1NnVrDOynUWA2Fjs04gzZ0m7fbwR9xZVFmcN1cqQwslMQM2sjQBNkTVFK/rrSvV78SXiBgU+Pyqz1Aw==",
"version": "6.32.0",
"resolved": "https://registry.npmjs.org/openai/-/openai-6.32.0.tgz",
"integrity": "sha512-j3k+BjydAf8yQlcOI7WUQMQTbbF5GEIMAE2iZYCOzwwB3S2pCheaWYp+XZRNAch4jWVc52PMDGRRjutao3lLCg==",
"license": "Apache-2.0",
"bin": {
"openai": "bin/cli"
@@ -5284,9 +5266,9 @@
}
},
"node_modules/pg-protocol": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.11.0.tgz",
"integrity": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==",
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz",
"integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==",
"license": "MIT"
},
"node_modules/pg-types": {
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "mirotalk",
"version": "1.7.53",
"version": "1.7.54",
"description": "A free WebRTC browser-based video call",
"main": "server.js",
"scripts": {
@@ -44,7 +44,7 @@
"dependencies": {
"@mattermost/client": "11.4.0",
"@ngrok/ngrok": "1.7.0",
"@sentry/node": "^10.43.0",
"@sentry/node": "^10.44.0",
"axios": "^1.13.6",
"chokidar": "^5.0.0",
"colors": "^1.4.0",
@@ -62,8 +62,8 @@
"js-yaml": "^4.1.1",
"jsdom": "^29.0.0",
"jsonwebtoken": "^9.0.3",
"nodemailer": "^8.0.2",
"openai": "^6.31.0",
"nodemailer": "^8.0.3",
"openai": "^6.32.0",
"qs": "^6.15.0",
"socket.io": "^4.8.3",
"swagger-ui-express": "^5.0.1",
+34 -3
View File
@@ -54,10 +54,11 @@
/* Description */
.login-description {
color: #9ca9b3;
font-size: 15px;
line-height: 1.6;
margin: 0 0 28px;
color: rgba(255, 255, 255, 0.65);
line-height: 1.7;
margin-bottom: 32px;
max-width: 400px;
}
/* Form inputs inside card */
@@ -240,3 +241,33 @@
min-height: 492px;
}
}
/* Input error highlight */
.form-input.input-error {
border-color: #f5365c !important;
box-shadow: 0 0 0 3px rgba(245, 54, 92, 0.18) !important;
}
/* Inline login error message */
.login-error {
color: #f5365c;
font-size: 13px;
margin: 0 0 8px;
text-align: center;
}
/* Select inputs */
.login-input-group select.form-input {
appearance: none;
-webkit-appearance: none;
background: rgba(255, 255, 255, 0.06)
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff50' d='M6 8L1 3h10z'/%3E%3C/svg%3E")
no-repeat right 4px center;
padding-right: 24px;
cursor: pointer;
color: #fff;
}
.login-input-group select.form-input option {
background: #1a1a2e;
color: #fff;
}
+66 -3
View File
@@ -52,10 +52,11 @@
/* Description */
.waiting-description {
color: #9ca9b3;
font-size: 15px;
line-height: 1.6;
margin: 0 0 28px;
color: rgba(255, 255, 255, 0.65);
line-height: 1.7;
margin-bottom: 32px;
max-width: 400px;
}
/* Spinner */
@@ -102,6 +103,68 @@
.waiting-status.ready {
color: #2dce89;
}
.waiting-status.checking {
color: #ffc107;
}
/* Room name */
.waiting-room-name {
color: rgba(255, 255, 255, 0.55);
font-size: 13px;
margin: 0 0 20px;
}
.waiting-room-name i {
margin-right: 6px;
}
/* Elapsed */
.waiting-elapsed {
color: rgba(255, 255, 255, 0.35);
font-size: 12px;
margin: 4px 0 0;
}
.waiting-elapsed i {
margin-right: 5px;
}
/* Audio player */
.waiting-audio-player {
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 10px;
padding: 8px 14px;
margin: 0 0 20px;
}
.waiting-audio-btn {
background: none;
border: none;
color: #4678f9;
font-size: 16px;
cursor: pointer;
padding: 4px;
transition: color 0.2s ease;
flex-shrink: 0;
}
.waiting-audio-btn:hover {
color: #5a8aff;
}
.waiting-audio-bar {
flex: 1;
height: 4px;
background: rgba(255, 255, 255, 0.1);
border-radius: 2px;
overflow: hidden;
}
.waiting-audio-progress {
height: 100%;
width: 0;
background: #4678f9;
border-radius: 2px;
transition: width 0.3s linear;
}
/* Divider */
.waiting-divider {
+4 -1
View File
@@ -89,6 +89,9 @@ let brand = {
waitingRoomWaiting: 'Waiting for host to start the meeting...',
waitingRoomHostLink: 'Are you the host?',
waitingRoomLoginLink: 'Login here',
waitingRoomElapsedJust: 'Just started waiting',
waitingRoomElapsedMinutes: 'Waiting for {minutes}',
waitingRoomSongUrl: '',
},
html: {
topSponsors: true,
@@ -104,7 +107,7 @@ let brand = {
},
about: {
imageUrl: '../images/mirotalk-logo.gif',
title: 'WebRTC P2P v1.7.53',
title: 'WebRTC P2P v1.7.54',
html: `
<button
id="support-button"
+2 -2
View File
@@ -15,7 +15,7 @@
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.7.53
* @version 1.7.54
*
*/
@@ -13738,7 +13738,7 @@ function showAbout() {
Swal.fire({
background: swBg,
position: 'center',
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.53',
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.54',
imageUrl: brand.about?.imageUrl && brand.about.imageUrl.trim() !== '' ? brand.about.imageUrl : images.about,
customClass: { image: 'img-about' },
html: `
+40 -5
View File
@@ -84,27 +84,62 @@ function login() {
const status = error.response ? error.response.status : 0;
const serverMsg = error.response && error.response.data ? error.response.data.message : '';
if (status === 429 && serverMsg) {
popup('warning', serverMsg);
showLoginError(serverMsg);
} else {
popup('warning', 'Invalid credentials. Please try again.');
showLoginError('Invalid credentials. Please try again.');
}
});
return;
}
if (!username && !password) {
popup('warning', 'Username and Password required');
highlightEmpty(usernameInput);
highlightEmpty(passwordInput);
showLoginError('Username and Password required');
return;
}
if (!username) {
popup('warning', 'Username required');
highlightEmpty(usernameInput);
showLoginError('Username required');
return;
}
if (!password) {
popup('warning', 'Password required');
highlightEmpty(passwordInput);
showLoginError('Password required');
return;
}
}
function highlightEmpty(input) {
if (!input) return;
input.classList.add('input-error');
input.addEventListener(
'input',
function () {
input.classList.remove('input-error');
hideLoginError();
},
{ once: true }
);
}
function showLoginError(msg) {
let el = document.getElementById('loginError');
if (!el) {
el = document.createElement('p');
el.id = 'loginError';
el.className = 'login-error';
const loginBtn = document.getElementById('loginButton');
if (loginBtn) loginBtn.parentNode.insertBefore(el, loginBtn);
}
el.textContent = msg;
el.style.display = 'block';
}
function hideLoginError() {
const el = document.getElementById('loginError');
if (el) el.style.display = 'none';
}
function showJoinRoomForm() {
const loginForm = document.getElementById('loginForm');
if (loginForm) loginForm.style.display = 'none';
+111 -2
View File
@@ -4,8 +4,39 @@ const pathParts = window.location.pathname.split('/');
const roomId = pathParts[pathParts.length - 1];
const statusEl = document.getElementById('waitingStatus');
const loginLink = document.getElementById('loginLink');
const waitingRoomNameEl = document.getElementById('waitingRoomName');
const waitingRoomNameText = document.getElementById('waitingRoomNameText');
const waitingElapsedText = document.getElementById('waitingElapsedText');
const pollInterval = 5000;
// Store the room in the session for auto-join from the landing page after successful login
window.sessionStorage.roomID = roomId;
let intervalId = null;
let roomActive = false;
const waitStartTime = Date.now();
let elapsedTimerId = null;
if (roomId && roomId !== 'join') {
waitingRoomNameText.textContent = roomId;
waitingRoomNameEl.style.display = '';
}
function updateElapsedTime() {
const seconds = Math.floor((Date.now() - waitStartTime) / 1000);
if (seconds < 60) {
waitingElapsedText.textContent = getWaitingRoomBrand('waitingRoomElapsedJust', 'Just started waiting');
} else {
const minutes = Math.floor(seconds / 60);
const template = getWaitingRoomBrand('waitingRoomElapsedMinutes', 'Waiting for {minutes}');
waitingElapsedText.textContent = template.replace(
'{minutes}',
minutes + (minutes === 1 ? ' minute' : ' minutes')
);
}
}
elapsedTimerId = setInterval(updateElapsedTime, 10000);
// Brand text (overridden by Brand.js if configured)
function getWaitingRoomBrand(key, fallback) {
try {
@@ -20,13 +51,27 @@ if (roomId && roomId !== 'join') {
loginLink.href = '/login?room=' + encodeURIComponent(roomId);
}
function flashCheckingState() {
statusEl.textContent = getWaitingRoomBrand('waitingRoomStatus', 'Checking room status...');
statusEl.classList.remove('ready');
statusEl.classList.add('checking');
setTimeout(() => statusEl.classList.remove('checking'), 600);
}
function checkRoom() {
flashCheckingState();
if (!roomId || roomId === 'join') return;
axios
.post('/isRoomActive', { roomId: roomId })
.then(function (response) {
if (response.data && response.data.message === true) {
roomActive = true;
if (waitingAudio) {
waitingAudio.pause();
waitingAudio = null;
}
statusEl.textContent = getWaitingRoomBrand('waitingRoomReady', 'Room is ready! Joining...');
statusEl.classList.add('ready');
setTimeout(function () {
@@ -37,7 +82,7 @@ function checkRoom() {
'waitingRoomWaiting',
'Waiting for host to start the meeting...'
);
setTimeout(checkRoom, pollInterval);
scheduleCheck();
}
})
.catch(function () {
@@ -45,8 +90,72 @@ function checkRoom() {
'waitingRoomWaiting',
'Waiting for host to start the meeting...'
);
setTimeout(checkRoom, pollInterval);
scheduleCheck();
});
}
function scheduleCheck() {
if (document.hidden) {
document.addEventListener('visibilitychange', function onVisible() {
if (!document.hidden) {
document.removeEventListener('visibilitychange', onVisible);
checkRoom();
}
});
} else {
setTimeout(checkRoom, pollInterval);
}
}
checkRoom();
// Waiting room audio player
const audioPlayerEl = document.getElementById('waitingAudioPlayer');
const audioBtn = document.getElementById('waitingAudioBtn');
const audioIcon = document.getElementById('waitingAudioIcon');
const audioMuteBtn = document.getElementById('waitingAudioMute');
const audioMuteIcon = document.getElementById('waitingAudioMuteIcon');
const audioProgress = document.getElementById('waitingAudioProgress');
let waitingAudio = null;
let audioPlaying = false;
function initAudioPlayer() {
const songUrl = getWaitingRoomBrand('waitingRoomSongUrl', '');
if (!songUrl) return;
audioPlayerEl.style.display = '';
waitingAudio = new Audio(songUrl);
waitingAudio.loop = true;
waitingAudio.volume = 0.5;
waitingAudio.addEventListener('timeupdate', function () {
if (waitingAudio && waitingAudio.duration) {
const pct = (waitingAudio.currentTime / waitingAudio.duration) * 100;
audioProgress.style.width = pct + '%';
}
});
audioBtn.onclick = function () {
if (audioPlaying) {
waitingAudio.pause();
audioIcon.className = 'fa-solid fa-play';
audioBtn.title = 'Play music';
} else {
waitingAudio.play().catch(function () {});
audioIcon.className = 'fa-solid fa-pause';
audioBtn.title = 'Pause music';
}
audioPlaying = !audioPlaying;
};
audioMuteBtn.onclick = function () {
waitingAudio.muted = !waitingAudio.muted;
audioMuteIcon.className = waitingAudio.muted ? 'fa-solid fa-volume-xmark' : 'fa-solid fa-volume-high';
audioMuteBtn.title = waitingAudio.muted ? 'Unmute' : 'Mute';
};
}
// Initialize audio player after brand is loaded
setTimeout(initAudioPlayer, 1000);
Binary file not shown.
+2
View File
@@ -80,6 +80,8 @@
id="loginForm"
class="login-card reveal-from-bottom"
data-reveal-delay="150"
role="form"
aria-label="Login"
>
<div class="login-icon">
<i class="fa-solid fa-lock"></i>
+36 -3
View File
@@ -68,7 +68,12 @@
<div class="split-wrap invert-mobile">
<div class="split-item">
<div class="hero-content split-item-content center-content-mobile">
<div class="waiting-card reveal-from-bottom" data-reveal-delay="150">
<div
class="waiting-card reveal-from-bottom"
data-reveal-delay="150"
role="status"
aria-live="polite"
>
<div class="waiting-icon">
<i class="fa-solid fa-users"></i>
</div>
@@ -77,13 +82,42 @@
The meeting hasn't started yet.<br />
You'll join automatically when the host opens the room.
</p>
<div id="waitingRoomName" class="waiting-room-name" style="display: none">
<i class="fa-solid fa-door-open"></i>
<span id="waitingRoomNameText"></span>
</div>
<div class="waiting-spinner">
<div class="waiting-spinner-dot"></div>
<div class="waiting-spinner-dot"></div>
<div class="waiting-spinner-dot"></div>
</div>
<p class="waiting-status" id="waitingStatus">Checking room status...</p>
<p class="waiting-status" id="waitingStatus" aria-live="assertive">
Checking room status...
</p>
<p class="waiting-elapsed" id="waitingElapsed">
<i class="fa-regular fa-clock"></i>
<span id="waitingElapsedText">Just started waiting</span>
</p>
<hr class="waiting-divider" />
<div
id="waitingAudioPlayer"
class="waiting-audio-player"
style="display: none"
>
<button
id="waitingAudioBtn"
class="waiting-audio-btn"
title="Play music"
>
<i id="waitingAudioIcon" class="fa-solid fa-play"></i>
</button>
<div class="waiting-audio-bar">
<div id="waitingAudioProgress" class="waiting-audio-progress"></div>
</div>
<button id="waitingAudioMute" class="waiting-audio-btn" title="Mute">
<i id="waitingAudioMuteIcon" class="fa-solid fa-volume-high"></i>
</button>
</div>
<p class="host-login-link" id="hostLoginLink">
<span id="waitingRoomHostLink">Are you the host?</span>
<a id="loginLink" href="/login"
@@ -103,7 +137,6 @@
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
<script defer src="../js/landing.js"></script>
<script defer src="../js/waitingRoom.js"></script>
<script defer src="../js/Brand.js"></script>
<script async src="../js/Translate.js"></script>
</body>
</html>