mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-06-14 10:14:45 -04:00
fix: express5
This commit is contained in:
parent
6208a04556
commit
6db14baee7
26 changed files with 200 additions and 207 deletions
|
@ -17,7 +17,7 @@ const performCheck = async () => {
|
||||||
await db.init();
|
await db.init();
|
||||||
console.log("Checking if " + padId + " exists")
|
console.log("Checking if " + padId + " exists")
|
||||||
const padManager = require('ep_etherpad-lite/node/db/PadManager');
|
const padManager = require('ep_etherpad-lite/node/db/PadManager');
|
||||||
if (!await padManager.doesPadExists(padId)) throw new Error('Pad does not exist');
|
if (!(await padManager.doesPadExists(padId))) throw new Error('Pad does not exist');
|
||||||
const pad = await padManager.getPad(padId);
|
const pad = await padManager.getPad(padId);
|
||||||
await pad.check();
|
await pad.check();
|
||||||
console.log('Finished checking pad.');
|
console.log('Finished checking pad.');
|
||||||
|
|
279
pnpm-lock.yaml
generated
279
pnpm-lock.yaml
generated
|
@ -165,11 +165,11 @@ importers:
|
||||||
specifier: ^0.25.2
|
specifier: ^0.25.2
|
||||||
version: 0.25.2
|
version: 0.25.2
|
||||||
express:
|
express:
|
||||||
specifier: 4.21.2
|
specifier: 5.1.0
|
||||||
version: 4.21.2
|
version: 5.1.0
|
||||||
express-rate-limit:
|
express-rate-limit:
|
||||||
specifier: ^7.5.0
|
specifier: ^7.5.0
|
||||||
version: 7.5.0(express@4.21.2)
|
version: 7.5.0(express@5.1.0)
|
||||||
fast-deep-equal:
|
fast-deep-equal:
|
||||||
specifier: ^3.1.3
|
specifier: ^3.1.3
|
||||||
version: 3.1.3
|
version: 3.1.3
|
||||||
|
@ -262,7 +262,7 @@ importers:
|
||||||
version: 10.2.0
|
version: 10.2.0
|
||||||
swagger-ui-express:
|
swagger-ui-express:
|
||||||
specifier: ^5.0.1
|
specifier: ^5.0.1
|
||||||
version: 5.0.1(express@4.21.2)
|
version: 5.0.1(express@5.1.0)
|
||||||
tinycon:
|
tinycon:
|
||||||
specifier: 0.6.8
|
specifier: 0.6.8
|
||||||
version: 0.6.8
|
version: 0.6.8
|
||||||
|
@ -2074,6 +2074,10 @@ packages:
|
||||||
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
|
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
accepts@2.0.0:
|
||||||
|
resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
acorn-jsx@5.3.2:
|
acorn-jsx@5.3.2:
|
||||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -2141,9 +2145,6 @@ packages:
|
||||||
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
|
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
array-flatten@1.1.1:
|
|
||||||
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
|
||||||
|
|
||||||
array-includes@3.1.8:
|
array-includes@3.1.8:
|
||||||
resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
|
resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
@ -2223,9 +2224,9 @@ packages:
|
||||||
birpc@0.2.19:
|
birpc@0.2.19:
|
||||||
resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==}
|
resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==}
|
||||||
|
|
||||||
body-parser@1.20.3:
|
body-parser@2.2.0:
|
||||||
resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
|
resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==}
|
||||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
brace-expansion@1.1.11:
|
brace-expansion@1.1.11:
|
||||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||||
|
@ -2363,6 +2364,10 @@ packages:
|
||||||
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
content-disposition@1.0.0:
|
||||||
|
resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
content-type@1.0.5:
|
content-type@1.0.5:
|
||||||
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
|
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
@ -2377,14 +2382,14 @@ packages:
|
||||||
cookie-signature@1.0.6:
|
cookie-signature@1.0.6:
|
||||||
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
||||||
|
|
||||||
|
cookie-signature@1.2.2:
|
||||||
|
resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
|
||||||
|
engines: {node: '>=6.6.0'}
|
||||||
|
|
||||||
cookie@0.4.2:
|
cookie@0.4.2:
|
||||||
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
|
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
cookie@0.7.1:
|
|
||||||
resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
|
|
||||||
engines: {node: '>= 0.6'}
|
|
||||||
|
|
||||||
cookie@0.7.2:
|
cookie@0.7.2:
|
||||||
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
|
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
@ -2457,14 +2462,6 @@ packages:
|
||||||
resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
|
resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
|
|
||||||
debug@2.6.9:
|
|
||||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
|
||||||
peerDependencies:
|
|
||||||
supports-color: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
supports-color:
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
debug@3.2.7:
|
debug@3.2.7:
|
||||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -2897,9 +2894,9 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
express: ^4.11 || 5 || ^5.0.0-beta.1
|
express: ^4.11 || 5 || ^5.0.0-beta.1
|
||||||
|
|
||||||
express@4.21.2:
|
express@5.1.0:
|
||||||
resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
|
resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
|
||||||
engines: {node: '>= 0.10.0'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
extend@3.0.2:
|
extend@3.0.2:
|
||||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||||
|
@ -2953,8 +2950,8 @@ packages:
|
||||||
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
|
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
finalhandler@1.3.1:
|
finalhandler@2.1.0:
|
||||||
resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
|
resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
find-root@1.1.0:
|
find-root@1.1.0:
|
||||||
|
@ -3021,6 +3018,10 @@ packages:
|
||||||
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
fresh@2.0.0:
|
||||||
|
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
|
||||||
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
fs-extra@10.1.0:
|
fs-extra@10.1.0:
|
||||||
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
|
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
@ -3255,10 +3256,6 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
iconv-lite@0.4.24:
|
|
||||||
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
|
|
||||||
iconv-lite@0.6.3:
|
iconv-lite@0.6.3:
|
||||||
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
@ -3382,6 +3379,9 @@ packages:
|
||||||
is-promise@1.0.1:
|
is-promise@1.0.1:
|
||||||
resolution: {integrity: sha512-mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg==}
|
resolution: {integrity: sha512-mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg==}
|
||||||
|
|
||||||
|
is-promise@4.0.0:
|
||||||
|
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
|
||||||
|
|
||||||
is-regex@1.2.1:
|
is-regex@1.2.1:
|
||||||
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
|
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
@ -3658,8 +3658,13 @@ packages:
|
||||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
merge-descriptors@1.0.3:
|
media-typer@1.1.0:
|
||||||
resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
|
resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
|
||||||
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
|
merge-descriptors@2.0.0:
|
||||||
|
resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
merge2@1.4.1:
|
merge2@1.4.1:
|
||||||
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
|
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
|
||||||
|
@ -3704,11 +3709,6 @@ packages:
|
||||||
resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
|
resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
mime@1.6.0:
|
|
||||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
mime@2.6.0:
|
mime@2.6.0:
|
||||||
resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
|
resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
|
||||||
engines: {node: '>=4.0.0'}
|
engines: {node: '>=4.0.0'}
|
||||||
|
@ -3778,9 +3778,6 @@ packages:
|
||||||
mock-json-schema@1.1.1:
|
mock-json-schema@1.1.1:
|
||||||
resolution: {integrity: sha512-YV23vlsLP1EEOy0EviUvZTluXjLR+rhMzeayP2rcDiezj3RW01MhOSQkbQskdtg0K2fnGas5LKbSXgNjAOSX4A==}
|
resolution: {integrity: sha512-YV23vlsLP1EEOy0EviUvZTluXjLR+rhMzeayP2rcDiezj3RW01MhOSQkbQskdtg0K2fnGas5LKbSXgNjAOSX4A==}
|
||||||
|
|
||||||
ms@2.0.0:
|
|
||||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
|
||||||
|
|
||||||
ms@2.1.3:
|
ms@2.1.3:
|
||||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||||
|
|
||||||
|
@ -3801,6 +3798,10 @@ packages:
|
||||||
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
negotiator@1.0.0:
|
||||||
|
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
netmask@2.0.2:
|
netmask@2.0.2:
|
||||||
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
|
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
|
||||||
engines: {node: '>= 0.4.0'}
|
engines: {node: '>= 0.4.0'}
|
||||||
|
@ -3811,6 +3812,7 @@ packages:
|
||||||
node-domexception@1.0.0:
|
node-domexception@1.0.0:
|
||||||
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
||||||
engines: {node: '>=10.5.0'}
|
engines: {node: '>=10.5.0'}
|
||||||
|
deprecated: Use your platform's native DOMException instead
|
||||||
|
|
||||||
node-fetch-commonjs@3.3.2:
|
node-fetch-commonjs@3.3.2:
|
||||||
resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==}
|
resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==}
|
||||||
|
@ -3970,12 +3972,13 @@ packages:
|
||||||
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
||||||
engines: {node: '>=16 || 14 >=14.18'}
|
engines: {node: '>=16 || 14 >=14.18'}
|
||||||
|
|
||||||
path-to-regexp@0.1.12:
|
|
||||||
resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
|
|
||||||
|
|
||||||
path-to-regexp@6.3.0:
|
path-to-regexp@6.3.0:
|
||||||
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
|
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
|
||||||
|
|
||||||
|
path-to-regexp@8.2.0:
|
||||||
|
resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
|
||||||
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
path-type@4.0.0:
|
path-type@4.0.0:
|
||||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -4047,10 +4050,6 @@ packages:
|
||||||
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
qs@6.13.0:
|
|
||||||
resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
|
|
||||||
engines: {node: '>=0.6'}
|
|
||||||
|
|
||||||
qs@6.14.0:
|
qs@6.14.0:
|
||||||
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
|
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
|
||||||
engines: {node: '>=0.6'}
|
engines: {node: '>=0.6'}
|
||||||
|
@ -4083,10 +4082,6 @@ packages:
|
||||||
rate-limiter-flexible@7.0.0:
|
rate-limiter-flexible@7.0.0:
|
||||||
resolution: {integrity: sha512-K1Y7WTh6m/MpgifDkBzexI0PfPYd+LaXRl+Aqq+LkKKIb68KLJxd/cp+Fw3iU1T0h3oQ9TwbR0m2/ksU70ML+g==}
|
resolution: {integrity: sha512-K1Y7WTh6m/MpgifDkBzexI0PfPYd+LaXRl+Aqq+LkKKIb68KLJxd/cp+Fw3iU1T0h3oQ9TwbR0m2/ksU70ML+g==}
|
||||||
|
|
||||||
raw-body@2.5.2:
|
|
||||||
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
|
|
||||||
engines: {node: '>= 0.8'}
|
|
||||||
|
|
||||||
raw-body@3.0.0:
|
raw-body@3.0.0:
|
||||||
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
|
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
@ -4245,6 +4240,10 @@ packages:
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
router@2.2.0:
|
||||||
|
resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
|
||||||
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
rrweb-cssom@0.8.0:
|
rrweb-cssom@0.8.0:
|
||||||
resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
|
resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
|
||||||
|
|
||||||
|
@ -4352,16 +4351,16 @@ packages:
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
send@0.19.0:
|
send@1.2.0:
|
||||||
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
|
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
serialize-javascript@6.0.2:
|
serialize-javascript@6.0.2:
|
||||||
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
|
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
|
||||||
|
|
||||||
serve-static@1.16.2:
|
serve-static@2.2.0:
|
||||||
resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
|
resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
set-cookie-parser@2.7.1:
|
set-cookie-parser@2.7.1:
|
||||||
resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
|
resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
|
||||||
|
@ -4698,6 +4697,10 @@ packages:
|
||||||
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
type-is@2.0.1:
|
||||||
|
resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
typed-array-buffer@1.0.3:
|
typed-array-buffer@1.0.3:
|
||||||
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
|
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
@ -4806,10 +4809,6 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
utils-merge@1.0.1:
|
|
||||||
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
|
||||||
engines: {node: '>= 0.4.0'}
|
|
||||||
|
|
||||||
vary@1.1.2:
|
vary@1.1.2:
|
||||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
@ -6751,6 +6750,11 @@ snapshots:
|
||||||
mime-types: 2.1.35
|
mime-types: 2.1.35
|
||||||
negotiator: 0.6.3
|
negotiator: 0.6.3
|
||||||
|
|
||||||
|
accepts@2.0.0:
|
||||||
|
dependencies:
|
||||||
|
mime-types: 3.0.1
|
||||||
|
negotiator: 1.0.0
|
||||||
|
|
||||||
acorn-jsx@5.3.2(acorn@8.14.1):
|
acorn-jsx@5.3.2(acorn@8.14.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.14.1
|
acorn: 8.14.1
|
||||||
|
@ -6821,8 +6825,6 @@ snapshots:
|
||||||
call-bound: 1.0.4
|
call-bound: 1.0.4
|
||||||
is-array-buffer: 3.0.5
|
is-array-buffer: 3.0.5
|
||||||
|
|
||||||
array-flatten@1.1.1: {}
|
|
||||||
|
|
||||||
array-includes@3.1.8:
|
array-includes@3.1.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind: 1.0.8
|
call-bind: 1.0.8
|
||||||
|
@ -6910,20 +6912,17 @@ snapshots:
|
||||||
|
|
||||||
birpc@0.2.19: {}
|
birpc@0.2.19: {}
|
||||||
|
|
||||||
body-parser@1.20.3:
|
body-parser@2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
bytes: 3.1.2
|
bytes: 3.1.2
|
||||||
content-type: 1.0.5
|
content-type: 1.0.5
|
||||||
debug: 2.6.9
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
depd: 2.0.0
|
|
||||||
destroy: 1.2.0
|
|
||||||
http-errors: 2.0.0
|
http-errors: 2.0.0
|
||||||
iconv-lite: 0.4.24
|
iconv-lite: 0.6.3
|
||||||
on-finished: 2.4.1
|
on-finished: 2.4.1
|
||||||
qs: 6.13.0
|
qs: 6.14.0
|
||||||
raw-body: 2.5.2
|
raw-body: 3.0.0
|
||||||
type-is: 1.6.18
|
type-is: 2.0.1
|
||||||
unpipe: 1.0.0
|
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -7068,6 +7067,10 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer: 5.2.1
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
|
content-disposition@1.0.0:
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
content-type@1.0.5: {}
|
content-type@1.0.5: {}
|
||||||
|
|
||||||
convert-source-map@2.0.0: {}
|
convert-source-map@2.0.0: {}
|
||||||
|
@ -7079,9 +7082,9 @@ snapshots:
|
||||||
|
|
||||||
cookie-signature@1.0.6: {}
|
cookie-signature@1.0.6: {}
|
||||||
|
|
||||||
cookie@0.4.2: {}
|
cookie-signature@1.2.2: {}
|
||||||
|
|
||||||
cookie@0.7.1: {}
|
cookie@0.4.2: {}
|
||||||
|
|
||||||
cookie@0.7.2: {}
|
cookie@0.7.2: {}
|
||||||
|
|
||||||
|
@ -7156,10 +7159,6 @@ snapshots:
|
||||||
|
|
||||||
date-format@4.0.14: {}
|
date-format@4.0.14: {}
|
||||||
|
|
||||||
debug@2.6.9:
|
|
||||||
dependencies:
|
|
||||||
ms: 2.0.0
|
|
||||||
|
|
||||||
debug@3.2.7:
|
debug@3.2.7:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.3
|
ms: 2.1.3
|
||||||
|
@ -7516,7 +7515,7 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.24.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0):
|
eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.24.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.24.0))(eslint@9.24.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7
|
debug: 3.2.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
@ -7556,7 +7555,7 @@ snapshots:
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
eslint: 9.24.0
|
eslint: 9.24.0
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.24.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0)
|
eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.24.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.24.0))(eslint@9.24.0)
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
is-core-module: 2.16.1
|
is-core-module: 2.16.1
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
|
@ -7714,42 +7713,38 @@ snapshots:
|
||||||
|
|
||||||
expect-type@1.2.1: {}
|
expect-type@1.2.1: {}
|
||||||
|
|
||||||
express-rate-limit@7.5.0(express@4.21.2):
|
express-rate-limit@7.5.0(express@5.1.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
express: 4.21.2
|
express: 5.1.0
|
||||||
|
|
||||||
express@4.21.2:
|
express@5.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
accepts: 1.3.8
|
accepts: 2.0.0
|
||||||
array-flatten: 1.1.1
|
body-parser: 2.2.0
|
||||||
body-parser: 1.20.3
|
content-disposition: 1.0.0
|
||||||
content-disposition: 0.5.4
|
|
||||||
content-type: 1.0.5
|
content-type: 1.0.5
|
||||||
cookie: 0.7.1
|
cookie: 0.7.2
|
||||||
cookie-signature: 1.0.6
|
cookie-signature: 1.2.2
|
||||||
debug: 2.6.9
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
depd: 2.0.0
|
|
||||||
encodeurl: 2.0.0
|
encodeurl: 2.0.0
|
||||||
escape-html: 1.0.3
|
escape-html: 1.0.3
|
||||||
etag: 1.8.1
|
etag: 1.8.1
|
||||||
finalhandler: 1.3.1
|
finalhandler: 2.1.0
|
||||||
fresh: 0.5.2
|
fresh: 2.0.0
|
||||||
http-errors: 2.0.0
|
http-errors: 2.0.0
|
||||||
merge-descriptors: 1.0.3
|
merge-descriptors: 2.0.0
|
||||||
methods: 1.1.2
|
mime-types: 3.0.1
|
||||||
on-finished: 2.4.1
|
on-finished: 2.4.1
|
||||||
|
once: 1.4.0
|
||||||
parseurl: 1.3.3
|
parseurl: 1.3.3
|
||||||
path-to-regexp: 0.1.12
|
|
||||||
proxy-addr: 2.0.7
|
proxy-addr: 2.0.7
|
||||||
qs: 6.13.0
|
qs: 6.14.0
|
||||||
range-parser: 1.2.1
|
range-parser: 1.2.1
|
||||||
safe-buffer: 5.2.1
|
router: 2.2.0
|
||||||
send: 0.19.0
|
send: 1.2.0
|
||||||
serve-static: 1.16.2
|
serve-static: 2.2.0
|
||||||
setprototypeof: 1.2.0
|
|
||||||
statuses: 2.0.1
|
statuses: 2.0.1
|
||||||
type-is: 1.6.18
|
type-is: 2.0.1
|
||||||
utils-merge: 1.0.1
|
|
||||||
vary: 1.1.2
|
vary: 1.1.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -7803,15 +7798,14 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range: 5.0.1
|
to-regex-range: 5.0.1
|
||||||
|
|
||||||
finalhandler@1.3.1:
|
finalhandler@2.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 2.6.9
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
encodeurl: 2.0.0
|
encodeurl: 2.0.0
|
||||||
escape-html: 1.0.3
|
escape-html: 1.0.3
|
||||||
on-finished: 2.4.1
|
on-finished: 2.4.1
|
||||||
parseurl: 1.3.3
|
parseurl: 1.3.3
|
||||||
statuses: 2.0.1
|
statuses: 2.0.1
|
||||||
unpipe: 1.0.0
|
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -7876,6 +7870,8 @@ snapshots:
|
||||||
|
|
||||||
fresh@0.5.2: {}
|
fresh@0.5.2: {}
|
||||||
|
|
||||||
|
fresh@2.0.0: {}
|
||||||
|
|
||||||
fs-extra@10.1.0:
|
fs-extra@10.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
|
@ -8179,10 +8175,6 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
|
|
||||||
iconv-lite@0.4.24:
|
|
||||||
dependencies:
|
|
||||||
safer-buffer: 2.1.2
|
|
||||||
|
|
||||||
iconv-lite@0.6.3:
|
iconv-lite@0.6.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
safer-buffer: 2.1.2
|
safer-buffer: 2.1.2
|
||||||
|
@ -8301,6 +8293,8 @@ snapshots:
|
||||||
|
|
||||||
is-promise@1.0.1: {}
|
is-promise@1.0.1: {}
|
||||||
|
|
||||||
|
is-promise@4.0.0: {}
|
||||||
|
|
||||||
is-regex@1.2.1:
|
is-regex@1.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bound: 1.0.4
|
call-bound: 1.0.4
|
||||||
|
@ -8631,7 +8625,9 @@ snapshots:
|
||||||
|
|
||||||
media-typer@0.3.0: {}
|
media-typer@0.3.0: {}
|
||||||
|
|
||||||
merge-descriptors@1.0.3: {}
|
media-typer@1.1.0: {}
|
||||||
|
|
||||||
|
merge-descriptors@2.0.0: {}
|
||||||
|
|
||||||
merge2@1.4.1: {}
|
merge2@1.4.1: {}
|
||||||
|
|
||||||
|
@ -8671,8 +8667,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
mime-db: 1.54.0
|
mime-db: 1.54.0
|
||||||
|
|
||||||
mime@1.6.0: {}
|
|
||||||
|
|
||||||
mime@2.6.0: {}
|
mime@2.6.0: {}
|
||||||
|
|
||||||
mimic-response@3.1.0: {}
|
mimic-response@3.1.0: {}
|
||||||
|
@ -8743,8 +8737,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
|
|
||||||
ms@2.0.0: {}
|
|
||||||
|
|
||||||
ms@2.1.3: {}
|
ms@2.1.3: {}
|
||||||
|
|
||||||
nanoid@3.3.11: {}
|
nanoid@3.3.11: {}
|
||||||
|
@ -8755,6 +8747,8 @@ snapshots:
|
||||||
|
|
||||||
negotiator@0.6.3: {}
|
negotiator@0.6.3: {}
|
||||||
|
|
||||||
|
negotiator@1.0.0: {}
|
||||||
|
|
||||||
netmask@2.0.2: {}
|
netmask@2.0.2: {}
|
||||||
|
|
||||||
no-case@3.0.4:
|
no-case@3.0.4:
|
||||||
|
@ -8962,10 +8956,10 @@ snapshots:
|
||||||
lru-cache: 10.4.3
|
lru-cache: 10.4.3
|
||||||
minipass: 7.1.2
|
minipass: 7.1.2
|
||||||
|
|
||||||
path-to-regexp@0.1.12: {}
|
|
||||||
|
|
||||||
path-to-regexp@6.3.0: {}
|
path-to-regexp@6.3.0: {}
|
||||||
|
|
||||||
|
path-to-regexp@8.2.0: {}
|
||||||
|
|
||||||
path-type@4.0.0: {}
|
path-type@4.0.0: {}
|
||||||
|
|
||||||
pathe@2.0.3: {}
|
pathe@2.0.3: {}
|
||||||
|
@ -9028,10 +9022,6 @@ snapshots:
|
||||||
|
|
||||||
punycode@2.3.1: {}
|
punycode@2.3.1: {}
|
||||||
|
|
||||||
qs@6.13.0:
|
|
||||||
dependencies:
|
|
||||||
side-channel: 1.1.0
|
|
||||||
|
|
||||||
qs@6.14.0:
|
qs@6.14.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
side-channel: 1.1.0
|
side-channel: 1.1.0
|
||||||
|
@ -9054,13 +9044,6 @@ snapshots:
|
||||||
|
|
||||||
rate-limiter-flexible@7.0.0: {}
|
rate-limiter-flexible@7.0.0: {}
|
||||||
|
|
||||||
raw-body@2.5.2:
|
|
||||||
dependencies:
|
|
||||||
bytes: 3.1.2
|
|
||||||
http-errors: 2.0.0
|
|
||||||
iconv-lite: 0.4.24
|
|
||||||
unpipe: 1.0.0
|
|
||||||
|
|
||||||
raw-body@3.0.0:
|
raw-body@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
bytes: 3.1.2
|
bytes: 3.1.2
|
||||||
|
@ -9242,6 +9225,16 @@ snapshots:
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.40.0
|
'@rollup/rollup-win32-x64-msvc': 4.40.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
|
router@2.2.0:
|
||||||
|
dependencies:
|
||||||
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
|
depd: 2.0.0
|
||||||
|
is-promise: 4.0.0
|
||||||
|
parseurl: 1.3.3
|
||||||
|
path-to-regexp: 8.2.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
rrweb-cssom@0.8.0: {}
|
rrweb-cssom@0.8.0: {}
|
||||||
|
|
||||||
run-parallel@1.2.0:
|
run-parallel@1.2.0:
|
||||||
|
@ -9326,17 +9319,15 @@ snapshots:
|
||||||
|
|
||||||
semver@7.7.1: {}
|
semver@7.7.1: {}
|
||||||
|
|
||||||
send@0.19.0:
|
send@1.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 2.6.9
|
debug: 4.4.0(supports-color@8.1.1)
|
||||||
depd: 2.0.0
|
encodeurl: 2.0.0
|
||||||
destroy: 1.2.0
|
|
||||||
encodeurl: 1.0.2
|
|
||||||
escape-html: 1.0.3
|
escape-html: 1.0.3
|
||||||
etag: 1.8.1
|
etag: 1.8.1
|
||||||
fresh: 0.5.2
|
fresh: 2.0.0
|
||||||
http-errors: 2.0.0
|
http-errors: 2.0.0
|
||||||
mime: 1.6.0
|
mime-types: 3.0.1
|
||||||
ms: 2.1.3
|
ms: 2.1.3
|
||||||
on-finished: 2.4.1
|
on-finished: 2.4.1
|
||||||
range-parser: 1.2.1
|
range-parser: 1.2.1
|
||||||
|
@ -9348,12 +9339,12 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
randombytes: 2.1.0
|
randombytes: 2.1.0
|
||||||
|
|
||||||
serve-static@1.16.2:
|
serve-static@2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
encodeurl: 2.0.0
|
encodeurl: 2.0.0
|
||||||
escape-html: 1.0.3
|
escape-html: 1.0.3
|
||||||
parseurl: 1.3.3
|
parseurl: 1.3.3
|
||||||
send: 0.19.0
|
send: 1.2.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -9660,9 +9651,9 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@scarf/scarf': 1.4.0
|
'@scarf/scarf': 1.4.0
|
||||||
|
|
||||||
swagger-ui-express@5.0.1(express@4.21.2):
|
swagger-ui-express@5.0.1(express@5.1.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
express: 4.21.2
|
express: 5.1.0
|
||||||
swagger-ui-dist: 5.20.6
|
swagger-ui-dist: 5.20.6
|
||||||
|
|
||||||
symbol-tree@3.2.4: {}
|
symbol-tree@3.2.4: {}
|
||||||
|
@ -9762,6 +9753,12 @@ snapshots:
|
||||||
media-typer: 0.3.0
|
media-typer: 0.3.0
|
||||||
mime-types: 2.1.35
|
mime-types: 2.1.35
|
||||||
|
|
||||||
|
type-is@2.0.1:
|
||||||
|
dependencies:
|
||||||
|
content-type: 1.0.5
|
||||||
|
media-typer: 1.1.0
|
||||||
|
mime-types: 3.0.1
|
||||||
|
|
||||||
typed-array-buffer@1.0.3:
|
typed-array-buffer@1.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bound: 1.0.4
|
call-bound: 1.0.4
|
||||||
|
@ -9900,8 +9897,6 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.1.2
|
'@types/react': 19.1.2
|
||||||
|
|
||||||
utils-merge@1.0.1: {}
|
|
||||||
|
|
||||||
vary@1.1.2: {}
|
vary@1.1.2: {}
|
||||||
|
|
||||||
vfile-location@5.0.3:
|
vfile-location@5.0.3:
|
||||||
|
|
|
@ -59,7 +59,7 @@ exports.deleteGroup = async (groupID: string): Promise<void> => {
|
||||||
|
|
||||||
// Delete associated sessions in parallel. This should be done before deleting the group2sessions
|
// Delete associated sessions in parallel. This should be done before deleting the group2sessions
|
||||||
// record because deleting a session updates the group2sessions record.
|
// record because deleting a session updates the group2sessions record.
|
||||||
const {sessionIDs = {}} = await db.get(`group2sessions:${groupID}`) || {};
|
const {sessionIDs = {}} = (await db.get(`group2sessions:${groupID}`)) || {};
|
||||||
await Promise.all(Object.keys(sessionIDs).map(async (sessionId) => {
|
await Promise.all(Object.keys(sessionIDs).map(async (sessionId) => {
|
||||||
await sessionManager.deleteSession(sessionId);
|
await sessionManager.deleteSession(sessionId);
|
||||||
}));
|
}));
|
||||||
|
@ -113,7 +113,7 @@ exports.createGroupIfNotExistsFor = async (groupMapper: string|object) => {
|
||||||
throw new CustomError('groupMapper is not a string', 'apierror');
|
throw new CustomError('groupMapper is not a string', 'apierror');
|
||||||
}
|
}
|
||||||
const groupID = await db.get(`mapper2group:${groupMapper}`);
|
const groupID = await db.get(`mapper2group:${groupMapper}`);
|
||||||
if (groupID && await exports.doesGroupExist(groupID)) return {groupID};
|
if (groupID && (await exports.doesGroupExist(groupID))) return {groupID};
|
||||||
const result = await exports.createGroup();
|
const result = await exports.createGroup();
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
db.set(`mapper2group:${groupMapper}`, result.groupID),
|
db.set(`mapper2group:${groupMapper}`, result.groupID),
|
||||||
|
|
|
@ -116,10 +116,10 @@ class Pad {
|
||||||
meta: {
|
meta: {
|
||||||
author: authorId,
|
author: authorId,
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
...newRev === this.getKeyRevisionNumber(newRev) ? {
|
...(newRev === this.getKeyRevisionNumber(newRev) ? {
|
||||||
pool: this.pool,
|
pool: this.pool,
|
||||||
atext: this.atext,
|
atext: this.atext,
|
||||||
} : {},
|
} : {}),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
this.saveToDatabase(),
|
this.saveToDatabase(),
|
||||||
|
@ -135,10 +135,10 @@ class Pad {
|
||||||
pad_utils.warnDeprecated(`${hook} hook author context is deprecated; use authorId instead`);
|
pad_utils.warnDeprecated(`${hook} hook author context is deprecated; use authorId instead`);
|
||||||
this.authorId = authorId;
|
this.authorId = authorId;
|
||||||
},
|
},
|
||||||
...this.head === 0 ? {} : {
|
...(this.head === 0 ? {} : {
|
||||||
revs: newRev,
|
revs: newRev,
|
||||||
changeset: aChangeset,
|
changeset: aChangeset,
|
||||||
},
|
}),
|
||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
return newRev;
|
return newRev;
|
||||||
|
|
|
@ -57,7 +57,7 @@ const globalPads:MapArrayType<any> = {
|
||||||
*
|
*
|
||||||
* Updated without db access as new pads are created/old ones removed.
|
* Updated without db access as new pads are created/old ones removed.
|
||||||
*/
|
*/
|
||||||
const padList = new class {
|
const padList = new (class {
|
||||||
private _cachedList: string[] | null;
|
private _cachedList: string[] | null;
|
||||||
private _list: Set<string>;
|
private _list: Set<string>;
|
||||||
private _loaded: Promise<void> | null;
|
private _loaded: Promise<void> | null;
|
||||||
|
@ -95,7 +95,7 @@ const padList = new class {
|
||||||
this._list.delete(name);
|
this._list.delete(name);
|
||||||
this._cachedList = null;
|
this._cachedList = null;
|
||||||
}
|
}
|
||||||
}();
|
})();
|
||||||
|
|
||||||
// initialises the all-knowing data structure
|
// initialises the all-knowing data structure
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,7 @@ exports.checkAccess = async (padID:string, sessionCookie:string, token:string, u
|
||||||
|
|
||||||
const grant = {
|
const grant = {
|
||||||
accessStatus: 'grant',
|
accessStatus: 'grant',
|
||||||
authorID: sessionAuthorID || await authorManager.getAuthorId(token, userSettings),
|
authorID: sessionAuthorID || (await authorManager.getAuthorId(token, userSettings)),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!padID.includes('$')) {
|
if (!padID.includes('$')) {
|
||||||
|
|
|
@ -327,7 +327,7 @@ exports.handleMessage = async (socket:any, message: ClientVarMessage) => {
|
||||||
`IP:${settings.disableIPlogging ? 'ANONYMOUS' : socket.request.ip}`,
|
`IP:${settings.disableIPlogging ? 'ANONYMOUS' : socket.request.ip}`,
|
||||||
`originalAuthorID:${thisSession.author}`,
|
`originalAuthorID:${thisSession.author}`,
|
||||||
`newAuthorID:${authorID}`,
|
`newAuthorID:${authorID}`,
|
||||||
...(user && user.username) ? [`username:${user.username}`] : [],
|
...((user && user.username) ? [`username:${user.username}`] : []),
|
||||||
`message:${message}`,
|
`message:${message}`,
|
||||||
].join(' '));
|
].join(' '));
|
||||||
}
|
}
|
||||||
|
@ -1097,7 +1097,7 @@ const handleClientReady = async (socket:any, message: ClientReadyMessage) => {
|
||||||
if (authorId == null) return;
|
if (authorId == null) return;
|
||||||
|
|
||||||
// reuse previously created cache of author's data
|
// reuse previously created cache of author's data
|
||||||
const authorInfo = historicalAuthorData[authorId] || await authorManager.getAuthor(authorId);
|
const authorInfo = historicalAuthorData[authorId] || (await authorManager.getAuthor(authorId));
|
||||||
if (authorInfo == null) {
|
if (authorInfo == null) {
|
||||||
messageLogger.error(
|
messageLogger.error(
|
||||||
`Author ${authorId} connected via socket.io session ${roomSocket.id} is missing from ` +
|
`Author ${authorId} connected via socket.io session ${roomSocket.id} is missing from ` +
|
||||||
|
|
|
@ -173,7 +173,7 @@ export class SecretRotator {
|
||||||
// TODO: This is racy. If two instances start up at the same time and there are no existing
|
// TODO: This is racy. If two instances start up at the same time and there are no existing
|
||||||
// matching publications, each will generate and publish their own paramters. In practice this
|
// matching publications, each will generate and publish their own paramters. In practice this
|
||||||
// is unlikely to happen, and if it does it can be fixed by restarting both Etherpad instances.
|
// is unlikely to happen, and if it does it can be fixed by restarting both Etherpad instances.
|
||||||
const dbKeys:string[] = await db.findKeys(`${this._dbPrefix}:*`, null) || [];
|
const dbKeys:string[] = (await db.findKeys(`${this._dbPrefix}:*`, null)) || [];
|
||||||
let currentParams:any = null;
|
let currentParams:any = null;
|
||||||
let currentId = null;
|
let currentId = null;
|
||||||
const dbWrites:any[] = [];
|
const dbWrites:any[] = [];
|
||||||
|
@ -245,7 +245,7 @@ export class SecretRotator {
|
||||||
// The secrets derived from currentParams MUST be the first secrets.
|
// The secrets derived from currentParams MUST be the first secrets.
|
||||||
const secrets = await this._deriveSecrets(currentParams, now);
|
const secrets = await this._deriveSecrets(currentParams, now);
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
allParams.map(async (p) => secrets.push(...await this._deriveSecrets(p, now))));
|
allParams.map(async (p) => secrets.push(...(await this._deriveSecrets(p, now)))));
|
||||||
// Update this.secrets all at once to avoid race conditions.
|
// Update this.secrets all at once to avoid race conditions.
|
||||||
this.secrets.length = 0;
|
this.secrets.length = 0;
|
||||||
this.secrets.push(...secrets);
|
this.secrets.push(...secrets);
|
||||||
|
|
|
@ -31,10 +31,10 @@ const createRevision = async (aChangeset: AChangeSet, timestamp: number, isKeyRe
|
||||||
meta: {
|
meta: {
|
||||||
author: authorId,
|
author: authorId,
|
||||||
timestamp: timestamp,
|
timestamp: timestamp,
|
||||||
...isKeyRev ? {
|
...(isKeyRev ? {
|
||||||
pool: pool,
|
pool: pool,
|
||||||
atext: atext,
|
atext: atext,
|
||||||
} : {},
|
} : {}),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ exports.setPadRaw = async (padId: string, r: string, authorId = '') => {
|
||||||
// DB key prefixes for pad records. Each key is expected to have the form `${prefix}:${padId}` or
|
// DB key prefixes for pad records. Each key is expected to have the form `${prefix}:${padId}` or
|
||||||
// `${prefix}:${padId}:${otherstuff}`.
|
// `${prefix}:${padId}:${otherstuff}`.
|
||||||
const padKeyPrefixes = [
|
const padKeyPrefixes = [
|
||||||
...await hooks.aCallAll('exportEtherpadAdditionalContent'),
|
...(await hooks.aCallAll('exportEtherpadAdditionalContent')),
|
||||||
'pad',
|
'pad',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
"cross-spawn": "^7.0.6",
|
"cross-spawn": "^7.0.6",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "^3.1.10",
|
||||||
"esbuild": "^0.25.2",
|
"esbuild": "^0.25.2",
|
||||||
"express": "4.21.2",
|
"express": "5.1.0",
|
||||||
"express-rate-limit": "^7.5.0",
|
"express-rate-limit": "^7.5.0",
|
||||||
"fast-deep-equal": "^3.1.3",
|
"fast-deep-equal": "^3.1.3",
|
||||||
"find-root": "1.1.0",
|
"find-root": "1.1.0",
|
||||||
|
|
|
@ -94,11 +94,11 @@ const Ace2Editor = function () {
|
||||||
|
|
||||||
let actionsPendingInit = [];
|
let actionsPendingInit = [];
|
||||||
|
|
||||||
const pendingInit = (func) => function (...args) {
|
const pendingInit = (func) => (function(...args) {
|
||||||
const action = () => func.apply(this, args);
|
const action = () => func.apply(this, args);
|
||||||
if (loaded) return action();
|
if (loaded) return action();
|
||||||
actionsPendingInit.push(action);
|
actionsPendingInit.push(action);
|
||||||
};
|
});
|
||||||
|
|
||||||
const doActionsPendingInit = () => {
|
const doActionsPendingInit = () => {
|
||||||
for (const fn of actionsPendingInit) fn();
|
for (const fn of actionsPendingInit) fn();
|
||||||
|
|
|
@ -2554,7 +2554,7 @@ function Ace2Inner(editorInfo, cssManagers) {
|
||||||
let stopped = false;
|
let stopped = false;
|
||||||
|
|
||||||
inCallStackIfNecessary('handleKeyEvent', function () {
|
inCallStackIfNecessary('handleKeyEvent', function () {
|
||||||
if (type === 'keypress' || (isTypeForSpecialKey && keyCode === 13 /* return*/)) {
|
if (type === 'keypress' || ((isTypeForSpecialKey && keyCode === 13) /* return*/)) {
|
||||||
// in IE, special keys don't send keypress, the keydown does the action
|
// in IE, special keys don't send keypress, the keydown does the action
|
||||||
if (!outsideKeyPress(evt)) {
|
if (!outsideKeyPress(evt)) {
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
|
|
|
@ -165,7 +165,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const serverMessageTaskQueue = new class {
|
const serverMessageTaskQueue = new (class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._promiseChain = Promise.resolve();
|
this._promiseChain = Promise.resolve();
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
// fn() throws/rejects (due to the .catch() added above).
|
// fn() throws/rejects (due to the .catch() added above).
|
||||||
return await taskPromise;
|
return await taskPromise;
|
||||||
}
|
}
|
||||||
}();
|
})();
|
||||||
|
|
||||||
const handleMessageFromServer = (evt) => {
|
const handleMessageFromServer = (evt) => {
|
||||||
if (!getSocket()) return;
|
if (!getSocket()) return;
|
||||||
|
@ -371,7 +371,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
// is connected for the first time.
|
// is connected for the first time.
|
||||||
let deferredActions = [];
|
let deferredActions = [];
|
||||||
|
|
||||||
const defer = (func, tag) => function (...args) {
|
const defer = (func, tag) => (function(...args) {
|
||||||
const action = () => {
|
const action = () => {
|
||||||
func.call(this, ...args);
|
func.call(this, ...args);
|
||||||
};
|
};
|
||||||
|
@ -381,7 +381,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
} else {
|
} else {
|
||||||
action();
|
action();
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
const doDeferredActions = (tag) => {
|
const doDeferredActions = (tag) => {
|
||||||
const newArray = [];
|
const newArray = [];
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
import {Cookies} from "./pad_utils";
|
import {Cookies} from "./pad_utils";
|
||||||
|
|
||||||
exports.padcookie = new class {
|
exports.padcookie = new (class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.cookieName_ = window.location.protocol === 'https:' ? 'prefs' : 'prefsHttp';
|
this.cookieName_ = window.location.protocol === 'https:' ? 'prefs' : 'prefsHttp';
|
||||||
}
|
}
|
||||||
|
@ -68,4 +68,4 @@ exports.padcookie = new class {
|
||||||
clear() {
|
clear() {
|
||||||
this.writePrefs_({});
|
this.writePrefs_({});
|
||||||
}
|
}
|
||||||
}();
|
})();
|
||||||
|
|
|
@ -124,7 +124,7 @@ const syncAnimation = (() => {
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
exports.padeditbar = new class {
|
exports.padeditbar = new (class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._editbarPosition = 0;
|
this._editbarPosition = 0;
|
||||||
this.commands = {};
|
this.commands = {};
|
||||||
|
@ -479,4 +479,4 @@ exports.padeditbar = new class {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}();
|
})();
|
||||||
|
|
4
src/static/js/vendors/jquery.ts
vendored
4
src/static/js/vendors/jquery.ts
vendored
|
@ -595,9 +595,7 @@
|
||||||
|
|
||||||
// Support: IE 9 - 11+
|
// Support: IE 9 - 11+
|
||||||
// IE doesn't have `contains` on SVG.
|
// IE doesn't have `contains` on SVG.
|
||||||
a.contains ?
|
(a.contains ? a.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16)
|
||||||
a.contains( bup ) :
|
|
||||||
a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
|
|
||||||
) );
|
) );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
padId = common.randomString();
|
padId = common.randomString();
|
||||||
assert(!await padManager.doesPadExist(padId));
|
assert(!(await padManager.doesPadExist(padId)));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('exportEtherpadAdditionalContent', function () {
|
describe('exportEtherpadAdditionalContent', function () {
|
||||||
|
|
|
@ -53,7 +53,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
padId = randomString(10);
|
padId = randomString(10);
|
||||||
assert(!await padManager.doesPadExist(padId));
|
assert(!(await padManager.doesPadExist(padId)));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('unknown db records are ignored', async function () {
|
it('unknown db records are ignored', async function () {
|
||||||
|
@ -62,7 +62,7 @@ describe(__filename, function () {
|
||||||
[badKey]: 'value',
|
[badKey]: 'value',
|
||||||
...makeExport(makeAuthorId()),
|
...makeExport(makeAuthorId()),
|
||||||
}));
|
}));
|
||||||
assert(await db.get(badKey) == null);
|
assert((await db.get(badKey)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('changes are all or nothing', async function () {
|
it('changes are all or nothing', async function () {
|
||||||
|
@ -71,8 +71,8 @@ describe(__filename, function () {
|
||||||
data['pad:differentPadId:revs:0'] = data['pad:testing:revs:0'];
|
data['pad:differentPadId:revs:0'] = data['pad:testing:revs:0'];
|
||||||
delete data['pad:testing:revs:0'];
|
delete data['pad:testing:revs:0'];
|
||||||
assert.rejects(importEtherpad.setPadRaw(padId, JSON.stringify(data)), /unexpected pad ID/);
|
assert.rejects(importEtherpad.setPadRaw(padId, JSON.stringify(data)), /unexpected pad ID/);
|
||||||
assert(!await authorManager.doesAuthorExist(authorId));
|
assert(!(await authorManager.doesAuthorExist(authorId)));
|
||||||
assert(!await padManager.doesPadExist(padId));
|
assert(!(await padManager.doesPadExist(padId)));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('author pad IDs', function () {
|
describe('author pad IDs', function () {
|
||||||
|
@ -85,7 +85,7 @@ describe(__filename, function () {
|
||||||
assert.deepEqual((await authorManager.listPadsOfAuthor(existingAuthorId)).padIDs, []);
|
assert.deepEqual((await authorManager.listPadsOfAuthor(existingAuthorId)).padIDs, []);
|
||||||
newAuthorId = makeAuthorId();
|
newAuthorId = makeAuthorId();
|
||||||
assert.notEqual(newAuthorId, existingAuthorId);
|
assert.notEqual(newAuthorId, existingAuthorId);
|
||||||
assert(!await authorManager.doesAuthorExist(newAuthorId));
|
assert(!(await authorManager.doesAuthorExist(newAuthorId)));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('author does not yet exist', async function () {
|
it('author does not yet exist', async function () {
|
||||||
|
@ -199,12 +199,12 @@ describe(__filename, function () {
|
||||||
...makeExport(makeAuthorId()),
|
...makeExport(makeAuthorId()),
|
||||||
'custom:testingx': 'x',
|
'custom:testingx': 'x',
|
||||||
})), /unexpected pad ID/);
|
})), /unexpected pad ID/);
|
||||||
assert(await db.get(`custom:${padId}x`) == null);
|
assert((await db.get(`custom:${padId}x`)) == null);
|
||||||
await assert.rejects(importEtherpad.setPadRaw(padId, JSON.stringify({
|
await assert.rejects(importEtherpad.setPadRaw(padId, JSON.stringify({
|
||||||
...makeExport(makeAuthorId()),
|
...makeExport(makeAuthorId()),
|
||||||
'custom:testingx:foo': 'x',
|
'custom:testingx:foo': 'x',
|
||||||
})), /unexpected pad ID/);
|
})), /unexpected pad ID/);
|
||||||
assert(await db.get(`custom:${padId}x:foo`) == null);
|
assert((await db.get(`custom:${padId}x:foo`)) == null);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -44,7 +44,7 @@ describe(__filename, function () {
|
||||||
describe('set', function () {
|
describe('set', function () {
|
||||||
it('set of null is a no-op', async function () {
|
it('set of null is a no-op', async function () {
|
||||||
await set(null);
|
await set(null);
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('set of non-expiring session', async function () {
|
it('set of non-expiring session', async function () {
|
||||||
|
@ -59,14 +59,14 @@ describe(__filename, function () {
|
||||||
assert.equal(JSON.stringify(await db.get(`sessionstorage:${sid}`)), JSON.stringify(sess));
|
assert.equal(JSON.stringify(await db.get(`sessionstorage:${sid}`)), JSON.stringify(sess));
|
||||||
await new Promise((resolve) => setTimeout(resolve, 110));
|
await new Promise((resolve) => setTimeout(resolve, 110));
|
||||||
// Writing should start a timeout.
|
// Writing should start a timeout.
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('set of already expired session', async function () {
|
it('set of already expired session', async function () {
|
||||||
const sess:any = {foo: 'bar', cookie: {expires: new Date(1)}};
|
const sess:any = {foo: 'bar', cookie: {expires: new Date(1)}};
|
||||||
await set(sess);
|
await set(sess);
|
||||||
// No record should have been created.
|
// No record should have been created.
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('switch from non-expiring to expiring', async function () {
|
it('switch from non-expiring to expiring', async function () {
|
||||||
|
@ -75,7 +75,7 @@ describe(__filename, function () {
|
||||||
const sess2:any = {foo: 'bar', cookie: {expires: new Date(Date.now() + 100)}};
|
const sess2:any = {foo: 'bar', cookie: {expires: new Date(Date.now() + 100)}};
|
||||||
await set(sess2);
|
await set(sess2);
|
||||||
await new Promise((resolve) => setTimeout(resolve, 110));
|
await new Promise((resolve) => setTimeout(resolve, 110));
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('switch from expiring to non-expiring', async function () {
|
it('switch from expiring to non-expiring', async function () {
|
||||||
|
@ -90,7 +90,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
describe('get', function () {
|
describe('get', function () {
|
||||||
it('get of non-existent entry', async function () {
|
it('get of non-existent entry', async function () {
|
||||||
assert(await get() == null);
|
assert((await get()) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('set+get round trip', async function () {
|
it('set+get round trip', async function () {
|
||||||
|
@ -111,14 +111,14 @@ describe(__filename, function () {
|
||||||
assert.equal(JSON.stringify(await get()), JSON.stringify(sess));
|
assert.equal(JSON.stringify(await get()), JSON.stringify(sess));
|
||||||
await new Promise((resolve) => setTimeout(resolve, 110));
|
await new Promise((resolve) => setTimeout(resolve, 110));
|
||||||
// Reading should start a timeout.
|
// Reading should start a timeout.
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('get of record from previous run (already expired)', async function () {
|
it('get of record from previous run (already expired)', async function () {
|
||||||
const sess = {foo: 'bar', cookie: {expires: new Date(1)}};
|
const sess = {foo: 'bar', cookie: {expires: new Date(1)}};
|
||||||
await db.set(`sessionstorage:${sid}`, sess);
|
await db.set(`sessionstorage:${sid}`, sess);
|
||||||
assert(await get() == null);
|
assert((await get()) == null);
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('external expiration update is picked up', async function () {
|
it('external expiration update is picked up', async function () {
|
||||||
|
@ -151,7 +151,7 @@ describe(__filename, function () {
|
||||||
const sess:any = {cookie: {expires: new Date(Date.now() + 100)}};
|
const sess:any = {cookie: {expires: new Date(Date.now() + 100)}};
|
||||||
await set(sess);
|
await set(sess);
|
||||||
await destroy();
|
await destroy();
|
||||||
assert(await db.get(`sessionstorage:${sid}`) == null);
|
assert((await db.get(`sessionstorage:${sid}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('destroy cancels the timeout', async function () {
|
it('destroy cancels the timeout', async function () {
|
||||||
|
|
|
@ -131,7 +131,7 @@ describe(__filename, function () {
|
||||||
.expect((res:any) => {
|
.expect((res:any) => {
|
||||||
assert.equal(res.body.code, 0);
|
assert.equal(res.body.code, 0);
|
||||||
});
|
});
|
||||||
assert(await db.get(`mapper2group:${mapper}`) == null);
|
assert((await db.get(`mapper2group:${mapper}`)) == null);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Test coverage for https://github.com/ether/etherpad-lite/issues/4227
|
// Test coverage for https://github.com/ether/etherpad-lite/issues/4227
|
||||||
|
|
|
@ -27,7 +27,7 @@ describe(__filename, function () {
|
||||||
backups.hooks = {handleMessageSecurity: plugins.hooks.handleMessageSecurity};
|
backups.hooks = {handleMessageSecurity: plugins.hooks.handleMessageSecurity};
|
||||||
plugins.hooks.handleMessageSecurity = [];
|
plugins.hooks.handleMessageSecurity = [];
|
||||||
padId = common.randomString();
|
padId = common.randomString();
|
||||||
assert(!await padManager.doesPadExist(padId));
|
assert(!(await padManager.doesPadExist(padId)));
|
||||||
pad = await padManager.getPad(padId, 'dummy text\n');
|
pad = await padManager.getPad(padId, 'dummy text\n');
|
||||||
await pad!.setText('\n'); // Make sure the pad is created.
|
await pad!.setText('\n'); // Make sure the pad is created.
|
||||||
assert.equal(pad!.text(), '\n');
|
assert.equal(pad!.text(), '\n');
|
||||||
|
@ -57,7 +57,7 @@ describe(__filename, function () {
|
||||||
describe('CHANGESET_REQ', function () {
|
describe('CHANGESET_REQ', function () {
|
||||||
it('users are unable to read changesets from other pads', async function () {
|
it('users are unable to read changesets from other pads', async function () {
|
||||||
const otherPadId = `${padId}other`;
|
const otherPadId = `${padId}other`;
|
||||||
assert(!await padManager.doesPadExist(otherPadId));
|
assert(!(await padManager.doesPadExist(otherPadId)));
|
||||||
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
||||||
try {
|
try {
|
||||||
await otherPad.setText('other text\n');
|
await otherPad.setText('other text\n');
|
||||||
|
@ -84,7 +84,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
it('CHANGESET_REQ: verify revNum is a number (regression)', async function () {
|
it('CHANGESET_REQ: verify revNum is a number (regression)', async function () {
|
||||||
const otherPadId = `${padId}other`;
|
const otherPadId = `${padId}other`;
|
||||||
assert(!await padManager.doesPadExist(otherPadId));
|
assert(!(await padManager.doesPadExist(otherPadId)));
|
||||||
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
||||||
let errorCatched = 0;
|
let errorCatched = 0;
|
||||||
try {
|
try {
|
||||||
|
@ -113,7 +113,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
it('CHANGESET_REQ: revNum is converted to number if possible (regression)', async function () {
|
it('CHANGESET_REQ: revNum is converted to number if possible (regression)', async function () {
|
||||||
const otherPadId = `${padId}other`;
|
const otherPadId = `${padId}other`;
|
||||||
assert(!await padManager.doesPadExist(otherPadId));
|
assert(!(await padManager.doesPadExist(otherPadId)));
|
||||||
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
||||||
try {
|
try {
|
||||||
await otherPad.setText('other text\n');
|
await otherPad.setText('other text\n');
|
||||||
|
@ -140,7 +140,7 @@ describe(__filename, function () {
|
||||||
|
|
||||||
it('CHANGESET_REQ: revNum 2 is converted to head rev 1 (regression)', async function () {
|
it('CHANGESET_REQ: revNum 2 is converted to head rev 1 (regression)', async function () {
|
||||||
const otherPadId = `${padId}other`;
|
const otherPadId = `${padId}other`;
|
||||||
assert(!await padManager.doesPadExist(otherPadId));
|
assert(!(await padManager.doesPadExist(otherPadId)));
|
||||||
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
const otherPad = await padManager.getPad(otherPadId, 'other text\n');
|
||||||
try {
|
try {
|
||||||
await otherPad.setText('other text\n');
|
await otherPad.setText('other text\n');
|
||||||
|
|
|
@ -358,7 +358,7 @@ describe(__filename, function () {
|
||||||
const connected = new Promise((resolve) => resolveConnected = resolve);
|
const connected = new Promise((resolve) => resolveConnected = resolve);
|
||||||
let resolveDisconnected: (value: void | PromiseLike<void>) => void ;
|
let resolveDisconnected: (value: void | PromiseLike<void>) => void ;
|
||||||
const disconnected = new Promise<void>((resolve) => resolveDisconnected = resolve);
|
const disconnected = new Promise<void>((resolve) => resolveDisconnected = resolve);
|
||||||
socketIoRouter.addComponent(this.test!.fullTitle(), new class extends Module {
|
socketIoRouter.addComponent(this.test!.fullTitle(), new (class extends Module {
|
||||||
private _socket: any;
|
private _socket: any;
|
||||||
handleConnect(socket:any) {
|
handleConnect(socket:any) {
|
||||||
this._socket = socket;
|
this._socket = socket;
|
||||||
|
@ -371,7 +371,7 @@ describe(__filename, function () {
|
||||||
assert.equal(socket, this._socket);
|
assert.equal(socket, this._socket);
|
||||||
resolveDisconnected();
|
resolveDisconnected();
|
||||||
}
|
}
|
||||||
}());
|
})());
|
||||||
socket = await common.connect();
|
socket = await common.connect();
|
||||||
await connected;
|
await connected;
|
||||||
socket.close();
|
socket.close();
|
||||||
|
@ -387,13 +387,13 @@ describe(__filename, function () {
|
||||||
};
|
};
|
||||||
let rx:Function;
|
let rx:Function;
|
||||||
const got = new Promise((resolve) => { rx = resolve; });
|
const got = new Promise((resolve) => { rx = resolve; });
|
||||||
socketIoRouter.addComponent(this.test!.fullTitle(), new class extends Module {
|
socketIoRouter.addComponent(this.test!.fullTitle(), new (class extends Module {
|
||||||
handleConnect(socket:any) { serverSocket = socket; }
|
handleConnect(socket:any) { serverSocket = socket; }
|
||||||
handleMessage(socket:any, message:string) { assert.equal(socket, serverSocket); rx(message); }
|
handleMessage(socket:any, message:string) { assert.equal(socket, serverSocket); rx(message); }
|
||||||
}());
|
})());
|
||||||
socketIoRouter.addComponent(`${this.test!.fullTitle()} #2`, new class extends Module {
|
socketIoRouter.addComponent(`${this.test!.fullTitle()} #2`, new (class extends Module {
|
||||||
handleMessage(socket:any, message:any) { assert.fail('wrong handler called'); }
|
handleMessage(socket:any, message:any) { assert.fail('wrong handler called'); }
|
||||||
}());
|
})());
|
||||||
socket = await common.connect();
|
socket = await common.connect();
|
||||||
socket.emit('message', want);
|
socket.emit('message', want);
|
||||||
assert.deepEqual(await got, want);
|
assert.deepEqual(await got, want);
|
||||||
|
|
|
@ -85,7 +85,7 @@ export const isChatBoxSticky = async (page: Page):Promise<boolean> => {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const hideChat = async (page: Page) => {
|
export const hideChat = async (page: Page) => {
|
||||||
if(!await isChatBoxShown(page)|| await isChatBoxSticky(page)) return
|
if(!(await isChatBoxShown(page))|| (await isChatBoxSticky(page))) return
|
||||||
await page.locator('#titlecross').click()
|
await page.locator('#titlecross').click()
|
||||||
await page.waitForFunction(`!document.querySelector('#chatbox').classList.contains('stickyChat')`)
|
await page.waitForFunction(`!document.querySelector('#chatbox').classList.contains('stickyChat')`)
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ export const enableStickyChatviaIcon = async (page: Page) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const disableStickyChatviaIcon = async (page: Page) => {
|
export const disableStickyChatviaIcon = async (page: Page) => {
|
||||||
if(!await isChatBoxSticky(page)) return
|
if(!(await isChatBoxSticky(page))) return
|
||||||
await page.locator('#titlecross').click()
|
await page.locator('#titlecross').click()
|
||||||
await page.waitForFunction(`!document.querySelector('#chatbox').classList.contains('stickyChat')`)
|
await page.waitForFunction(`!document.querySelector('#chatbox').classList.contains('stickyChat')`)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ export const showSettings = async (page: Page) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const hideSettings = async (page: Page) => {
|
export const hideSettings = async (page: Page) => {
|
||||||
if(!await isSettingsShown(page)) return
|
if(!(await isSettingsShown(page))) return
|
||||||
await page.locator("button[data-l10n-id='pad.toolbar.settings.title']").click()
|
await page.locator("button[data-l10n-id='pad.toolbar.settings.title']").click()
|
||||||
await page.waitForFunction(`!document.querySelector('#settings').classList.contains('popup-show')`)
|
await page.waitForFunction(`!document.querySelector('#settings').classList.contains('popup-show')`)
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,7 +218,7 @@ const helper = {};
|
||||||
|
|
||||||
const check = async () => {
|
const check = async () => {
|
||||||
try {
|
try {
|
||||||
if (!await conditionFunc()) return;
|
if (!(await conditionFunc())) return;
|
||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
deferred.reject(err);
|
deferred.reject(err);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue