Merge remote-tracking branch 'origin/develop' into feat/add_revision_cleanup

This commit is contained in:
Stefan Müller 2024-09-10 11:09:46 +02:00
commit 491d4af19e
15 changed files with 241 additions and 204 deletions

View file

@ -1,3 +1,11 @@
# 2.2.4
### Notable enhancements and fixes
- Switched to new SQLite backend
- Fixed rusty-store-kv module not found
# 2.2.3 # 2.2.3
### Notable enhancements and fixes ### Notable enhancements and fixes

View file

@ -1,7 +1,7 @@
{ {
"name": "admin", "name": "admin",
"private": true, "private": true,
"version": "2.2.3", "version": "2.2.4",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
@ -21,17 +21,17 @@
"@typescript-eslint/eslint-plugin": "^8.4.0", "@typescript-eslint/eslint-plugin": "^8.4.0",
"@typescript-eslint/parser": "^8.4.0", "@typescript-eslint/parser": "^8.4.0",
"@vitejs/plugin-react-swc": "^3.5.0", "@vitejs/plugin-react-swc": "^3.5.0",
"eslint": "^9.9.1", "eslint": "^9.10.0",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.11", "eslint-plugin-react-refresh": "^0.4.11",
"i18next": "^23.14.0", "i18next": "^23.15.0",
"i18next-browser-languagedetector": "^8.0.0", "i18next-browser-languagedetector": "^8.0.0",
"lucide-react": "^0.439.0", "lucide-react": "^0.439.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-hook-form": "^7.53.0", "react-hook-form": "^7.53.0",
"react-i18next": "^15.0.1", "react-i18next": "^15.0.1",
"react-router-dom": "^6.26.1", "react-router-dom": "^6.26.2",
"socket.io-client": "^4.7.5", "socket.io-client": "^4.7.5",
"typescript": "^5.5.4", "typescript": "^5.5.4",
"vite": "^5.4.3", "vite": "^5.4.3",

View file

@ -1,6 +1,6 @@
{ {
"name": "bin", "name": "bin",
"version": "2.2.3", "version": "2.2.4",
"description": "", "description": "",
"main": "checkAllPads.js", "main": "checkAllPads.js",
"directories": { "directories": {
@ -12,7 +12,7 @@
"log4js": "^6.9.1", "log4js": "^6.9.1",
"semver": "^7.6.3", "semver": "^7.6.3",
"tsx": "^4.19.0", "tsx": "^4.19.0",
"ueberdb2": "^4.2.103" "ueberdb2": "^5.0.2"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.5.4", "@types/node": "^22.5.4",

View file

@ -32,6 +32,7 @@ export default defineConfig({
{ text: 'Stats', link: '/stats.md' }, { text: 'Stats', link: '/stats.md' },
{text: 'Skins', link: '/skins.md' }, {text: 'Skins', link: '/skins.md' },
{text: 'Demo', link: '/demo.md' }, {text: 'Demo', link: '/demo.md' },
{text: 'CLI', link: '/cli.md'},
] ]
}, },
{ {

View file

@ -50,6 +50,6 @@
"type": "git", "type": "git",
"url": "https://github.com/ether/etherpad-lite.git" "url": "https://github.com/ether/etherpad-lite.git"
}, },
"version": "2.2.3", "version": "2.2.4",
"license": "Apache-2.0" "license": "Apache-2.0"
} }

346
pnpm-lock.yaml generated
View file

@ -42,25 +42,25 @@ importers:
version: 18.3.0 version: 18.3.0
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: ^8.4.0 specifier: ^8.4.0
version: 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) version: 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0)(typescript@5.5.4))(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: ^8.4.0 specifier: ^8.4.0
version: 8.4.0(eslint@9.9.1)(typescript@5.5.4) version: 8.4.0(eslint@9.10.0)(typescript@5.5.4)
'@vitejs/plugin-react-swc': '@vitejs/plugin-react-swc':
specifier: ^3.5.0 specifier: ^3.5.0
version: 3.7.0(vite@5.4.3(@types/node@22.5.4)) version: 3.7.0(vite@5.4.3(@types/node@22.5.4))
eslint: eslint:
specifier: ^9.9.1 specifier: ^9.10.0
version: 9.9.1 version: 9.10.0
eslint-plugin-react-hooks: eslint-plugin-react-hooks:
specifier: ^4.6.0 specifier: ^4.6.0
version: 4.6.2(eslint@9.9.1) version: 4.6.2(eslint@9.10.0)
eslint-plugin-react-refresh: eslint-plugin-react-refresh:
specifier: ^0.4.11 specifier: ^0.4.11
version: 0.4.11(eslint@9.9.1) version: 0.4.11(eslint@9.10.0)
i18next: i18next:
specifier: ^23.14.0 specifier: ^23.15.0
version: 23.14.0 version: 23.15.0
i18next-browser-languagedetector: i18next-browser-languagedetector:
specifier: ^8.0.0 specifier: ^8.0.0
version: 8.0.0 version: 8.0.0
@ -78,10 +78,10 @@ importers:
version: 7.53.0(react@18.3.1) version: 7.53.0(react@18.3.1)
react-i18next: react-i18next:
specifier: ^15.0.1 specifier: ^15.0.1
version: 15.0.1(i18next@23.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 15.0.1(i18next@23.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-router-dom: react-router-dom:
specifier: ^6.26.1 specifier: ^6.26.2
version: 6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
socket.io-client: socket.io-client:
specifier: ^4.7.5 specifier: ^4.7.5
version: 4.7.5 version: 4.7.5
@ -119,8 +119,8 @@ importers:
specifier: ^4.19.0 specifier: ^4.19.0
version: 4.19.0 version: 4.19.0
ueberdb2: ueberdb2:
specifier: ^4.2.103 specifier: ^5.0.2
version: 4.2.103 version: 5.0.2
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.5.4 specifier: ^22.5.4
@ -240,8 +240,8 @@ importers:
specifier: 1.22.8 specifier: 1.22.8
version: 1.22.8 version: 1.22.8
rusty-store-kv: rusty-store-kv:
specifier: ^1.2.0 specifier: ^1.3.1
version: 1.2.0 version: 1.3.1
security: security:
specifier: 1.0.0 specifier: 1.0.0
version: 1.0.0 version: 1.0.0
@ -264,8 +264,8 @@ importers:
specifier: 4.19.0 specifier: 4.19.0
version: 4.19.0 version: 4.19.0
ueberdb2: ueberdb2:
specifier: ^4.2.103 specifier: ^5.0.2
version: 4.2.103 version: 5.0.2
underscore: underscore:
specifier: 1.13.7 specifier: 1.13.7
version: 1.13.7 version: 1.13.7
@ -331,11 +331,11 @@ importers:
specifier: ^3.6.0 specifier: ^3.6.0
version: 3.6.0 version: 3.6.0
eslint: eslint:
specifier: ^9.9.1 specifier: ^9.10.0
version: 9.9.1 version: 9.10.0
eslint-config-etherpad: eslint-config-etherpad:
specifier: ^4.0.4 specifier: ^4.0.4
version: 4.0.4(eslint@9.9.1)(typescript@5.5.4) version: 4.0.4(eslint@9.10.0)(typescript@5.5.4)
etherpad-cli-client: etherpad-cli-client:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2 version: 3.0.2
@ -875,14 +875,18 @@ packages:
resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.9.1': '@eslint/js@9.10.0':
resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.4': '@eslint/object-schema@2.1.4':
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/plugin-kit@0.1.0':
resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@etherpad/express-session@1.18.4': '@etherpad/express-session@1.18.4':
resolution: {integrity: sha512-uiUtcfv0hyEA+Lur00V6yINaa/qe09HiFqmc+DzSXYChILFLgOV3G4p4XJkIRrUOGmqaJRiliB1BoQIiY3Tnjw==} resolution: {integrity: sha512-uiUtcfv0hyEA+Lur00V6yINaa/qe09HiFqmc+DzSXYChILFLgOV3G4p4XJkIRrUOGmqaJRiliB1BoQIiY3Tnjw==}
engines: {node: '>= 0.8.0'} engines: {node: '>= 0.8.0'}
@ -1173,8 +1177,8 @@ packages:
'@types/react-dom': '@types/react-dom':
optional: true optional: true
'@remix-run/router@1.19.1': '@remix-run/router@1.19.2':
resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==} resolution: {integrity: sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
'@rollup/pluginutils@5.1.0': '@rollup/pluginutils@5.1.0':
@ -2578,8 +2582,8 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.9.1: eslint@9.10.0:
resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -2991,8 +2995,8 @@ packages:
i18next-browser-languagedetector@8.0.0: i18next-browser-languagedetector@8.0.0:
resolution: {integrity: sha512-zhXdJXTTCoG39QsrOCiOabnWj2jecouOqbchu3EfhtSHxIB5Uugnm9JaizenOy39h7ne3+fLikIjeW88+rgszw==} resolution: {integrity: sha512-zhXdJXTTCoG39QsrOCiOabnWj2jecouOqbchu3EfhtSHxIB5Uugnm9JaizenOy39h7ne3+fLikIjeW88+rgszw==}
i18next@23.14.0: i18next@23.15.0:
resolution: {integrity: sha512-Y5GL4OdA8IU2geRrt2+Uc1iIhsjICdHZzT9tNwQ3TVqdNzgxHToGCKf/TPRP80vTCAP6svg2WbbJL+Gx5MFQVA==} resolution: {integrity: sha512-saeTb1tIQT+W/3xMivWSEVdpjyiEbj0IeK8eI/PB8jyr5gSQF5qxWLlGLEgRa5od3lvMfvW+ituhrf2VCNfTuw==}
iconv-lite@0.4.24: iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
@ -3854,15 +3858,15 @@ packages:
'@types/react': '@types/react':
optional: true optional: true
react-router-dom@6.26.1: react-router-dom@6.26.2:
resolution: {integrity: sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==} resolution: {integrity: sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
peerDependencies: peerDependencies:
react: '>=16.8' react: '>=16.8'
react-dom: '>=16.8' react-dom: '>=16.8'
react-router@6.26.1: react-router@6.26.2:
resolution: {integrity: sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==} resolution: {integrity: sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
peerDependencies: peerDependencies:
react: '>=16.8' react: '>=16.8'
@ -3954,68 +3958,68 @@ packages:
run-parallel@1.2.0: run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
rusty-store-kv-darwin-arm64@1.2.0: rusty-store-kv-darwin-arm64@1.3.1:
resolution: {integrity: sha512-3kj/Sgs1WH+6edE8l7Db5+gpROpelYFX8PNloX0y6KzvUQgO1ZDs0Wa8kYG8MEDWIJlmw+7UcwpMmskMleU3Vw==} resolution: {integrity: sha512-xJ4kZh22AcNkbl5yIxUFPEZ5xtgOfAn9fH1rcLf0pUHJKTh3FsdrggBqNBlBlJRQ9RWw92MYBSC318mn8mH14Q==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
rusty-store-kv-darwin-x64@1.2.0: rusty-store-kv-darwin-x64@1.3.1:
resolution: {integrity: sha512-svSiGraZRukY6m330epEnJdu2D54JPzQfMjPRg8LT6f70MELGNxWRirnM/ACIBpWUfh1Ojm9jyK8OoY5IeI4UA==} resolution: {integrity: sha512-glm0uEKaetb6QBtfe5G7tsXA+tnkBCMDaxb3XCe9oCx3Pr7gR/we6OS9lPJHplaQPp10hGxOn7kjAqLVDlcT3w==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
rusty-store-kv-freebsd-x64@1.2.0: rusty-store-kv-freebsd-x64@1.3.1:
resolution: {integrity: sha512-h2/r4PKrRY92z2Ku5I5ACc8yaKdCma0rqak1l5ue/LsR6Zl2oXmzYKXJnzwrqCSIWDRrs5RG2TXMKuPO4telfw==} resolution: {integrity: sha512-LWUD+JFvrUlo34XfEsTf29EPsktxqqbGlUHAN/6q5DUjg/s5sBFB2W+C1xlwkD+BumyIkN60ZCRVIoXS2UgJjg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
rusty-store-kv-linux-arm-gnueabihf@1.2.0: rusty-store-kv-linux-arm-gnueabihf@1.3.1:
resolution: {integrity: sha512-ivrCOriUYOc/nedCszyPHFATtnLaSaMfNM8h6Cjv4S0gzScpd9rOKVg2hrPh+zApzV/O3dvf6haDtLL1WViKUg==} resolution: {integrity: sha512-Stpor+kqRZg9ykYLjAJn0YrXfgH96WmTcS1AKeHs6gBhVMJ2RZmn1CyF06g5wVQ7sQGrZWMm8Hp3PGjhM5Z2Ew==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
rusty-store-kv-linux-arm64-gnu@1.2.0: rusty-store-kv-linux-arm64-gnu@1.3.1:
resolution: {integrity: sha512-dZ3ZWsltagzP3U1J6WqWBRoIakqBP7i7y9MDBnKIFFYALVkvY2q2AhrN5cTBxZHaZTbrjyZyhE/rNbyqLZjXLg==} resolution: {integrity: sha512-ZorAn0AumVbL/6kqswhB/vnLEwlSBMvnhDF6LApHhFTRIygq63dyRrwtM8hgEqL/cjOMotGft6INn429V0RWcw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
rusty-store-kv-linux-arm64-musl@1.2.0: rusty-store-kv-linux-arm64-musl@1.3.1:
resolution: {integrity: sha512-J0Zg+wYzy+03DTFZgMPiTaRTk8dfFJv7zQGpeGgeyma3k7SUmUYT2P1b+0NNjbVxr5xNdFJURyJVglUMP3SJRA==} resolution: {integrity: sha512-QMNbq7G1Zr2Yk82XqGbs7z2X2gs9mO5lxnHXeHLSy++56EUBTW/zj4JSjdYdetnFBkGwlPSQLAs1s0MXefxc0g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
rusty-store-kv-linux-x64-gnu@1.2.0: rusty-store-kv-linux-x64-gnu@1.3.1:
resolution: {integrity: sha512-8EK6nzC4o13v7zOtLucoQcSOPSsJe9Rw1cAWk7F5qYg/lfFAQNzOpp68rkCBnrHix8yswcafzcSktJHTKuO4yA==} resolution: {integrity: sha512-aD6Oj3PlRzLLcIMytTdzkh/mIu0pJjsug2tA8Gfd5lH2SdB6NFVrF/cjrFWgx5LSLcmI+vVpstqjLOIuc3tZ7g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
rusty-store-kv-linux-x64-musl@1.2.0: rusty-store-kv-linux-x64-musl@1.3.1:
resolution: {integrity: sha512-8Z6xAYWBFKfspSJ1XrRs8P5qYE/aDl6LGhX/5IXg/9mr54quH+pH6YXx88SD0lTgRh+mAD3brCNfr15fOKZftA==} resolution: {integrity: sha512-oSkE6X96muX0cbhE754s7shfzEzUTDQi5d3xrNlA/VskWRjDwKmrqiLHLsxO9lamNcDi5wvK8O6byI9qBXigRg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
rusty-store-kv-win32-arm64-msvc@1.2.0: rusty-store-kv-win32-arm64-msvc@1.3.1:
resolution: {integrity: sha512-YmhUBOzJc6yj1Im/WXcD20iuaZ2GWANG/heTk09enzwgza8i68sSlA39TPTyLE0tOZFdbT76GEuIXPHB0peRRg==} resolution: {integrity: sha512-HIJ2uJt5LzI/Flx73gnZX/tUfOH2EKS1UKMEzzMF8kqor3iSeGyr0NkLxdl0sZ31dZzRkW63bKxTESmIYjTgiQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
rusty-store-kv-win32-x64-msvc@1.2.0: rusty-store-kv-win32-x64-msvc@1.3.1:
resolution: {integrity: sha512-z0/Snn9bZwsT9YnnG18Ol+pkLQpBHkAISq99NhbVdYj5lAYED/n2qIJpP1ROLJlFMJQ4PvftjCmAHUHy0tnkxA==} resolution: {integrity: sha512-CY1pmACrPg1mgfWPk7/dtB24TGc0RWv34+8Eg2lXbD6V7ePSMOVeVcIH7ra/JIjxbJJV2ljWvhkgUnEnp1FSKA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
rusty-store-kv@1.2.0: rusty-store-kv@1.3.1:
resolution: {integrity: sha512-XlzClGSiIfOrpCUEh/eAAktFbsF4IPpDDeOEIP+cWmLkbVzWuqXVLIBouBH4ybKBlw+bQCyjOnZwBdyM9UVpUg==} resolution: {integrity: sha512-Kk+55VwQ5qLWcSD6R0RrxFOEF70SH7BjYj60MCskJvRkuY7MFlAPEn3hY4WzRodWXj5cCOJ4AsDr+4OvtaW/SQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
safe-array-concat@1.1.2: safe-array-concat@1.1.2:
@ -4373,8 +4377,8 @@ packages:
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
ueberdb2@4.2.103: ueberdb2@5.0.2:
resolution: {integrity: sha512-jp+G38Za9vCKGRIGNEr28b7HOE0Et9J/txNSUrGnCGwpkkPLvqkX4tbx8sO3AVOynRuNMYfGy4cS0aoYt/2ePw==} resolution: {integrity: sha512-dgrmxTxc/gkWuGK4UArTGwM6zBfG9hANBbhAxK+OUmZs3GatguyoBCp7LgNqenDMp3ElM/KyL6RBZ3OWpqTFKg==}
engines: {node: '>=16.20.1'} engines: {node: '>=16.20.1'}
uid-safe@2.1.5: uid-safe@2.1.5:
@ -5161,9 +5165,9 @@ snapshots:
'@esbuild/win32-x64@0.23.1': '@esbuild/win32-x64@0.23.1':
optional: true optional: true
'@eslint-community/eslint-utils@4.4.0(eslint@9.9.1)': '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)':
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.11.0': {} '@eslint-community/regexpp@4.11.0': {}
@ -5190,10 +5194,14 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@eslint/js@9.9.1': {} '@eslint/js@9.10.0': {}
'@eslint/object-schema@2.1.4': {} '@eslint/object-schema@2.1.4': {}
'@eslint/plugin-kit@0.1.0':
dependencies:
levn: 0.4.1
'@etherpad/express-session@1.18.4': '@etherpad/express-session@1.18.4':
dependencies: dependencies:
cookie: 0.4.2 cookie: 0.4.2
@ -5464,7 +5472,7 @@ snapshots:
'@types/react': 18.3.5 '@types/react': 18.3.5
'@types/react-dom': 18.3.0 '@types/react-dom': 18.3.0
'@remix-run/router@1.19.1': {} '@remix-run/router@1.19.2': {}
'@rollup/pluginutils@5.1.0(rollup@4.21.0)': '@rollup/pluginutils@5.1.0(rollup@4.21.0)':
dependencies: dependencies:
@ -5892,15 +5900,15 @@ snapshots:
'@types/web-bluetooth@0.0.20': {} '@types/web-bluetooth@0.0.20': {}
'@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.11.0 '@eslint-community/regexpp': 4.11.0
'@typescript-eslint/parser': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/scope-manager': 7.17.0
'@typescript-eslint/type-utils': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/type-utils': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/utils': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/utils': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0
eslint: 9.9.1 eslint: 9.10.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.1 ignore: 5.3.1
natural-compare: 1.4.0 natural-compare: 1.4.0
@ -5910,15 +5918,15 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0)(typescript@5.5.4))(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.11.0 '@eslint-community/regexpp': 4.11.0
'@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 8.4.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/scope-manager': 8.4.0
'@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/type-utils': 8.4.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/utils': 8.4.0(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0
eslint: 9.9.1 eslint: 9.10.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.1 ignore: 5.3.1
natural-compare: 1.4.0 natural-compare: 1.4.0
@ -5928,27 +5936,27 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/scope-manager': 7.17.0
'@typescript-eslint/types': 7.17.0 '@typescript-eslint/types': 7.17.0
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0
debug: 4.3.5(supports-color@8.1.1) debug: 4.3.5(supports-color@8.1.1)
eslint: 9.9.1 eslint: 9.10.0
optionalDependencies: optionalDependencies:
typescript: 5.5.4 typescript: 5.5.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/parser@8.4.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/scope-manager': 8.4.0
'@typescript-eslint/types': 8.4.0 '@typescript-eslint/types': 8.4.0
'@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0
debug: 4.3.5(supports-color@8.1.1) debug: 4.3.5(supports-color@8.1.1)
eslint: 9.9.1 eslint: 9.10.0
optionalDependencies: optionalDependencies:
typescript: 5.5.4 typescript: 5.5.4
transitivePeerDependencies: transitivePeerDependencies:
@ -5964,22 +5972,22 @@ snapshots:
'@typescript-eslint/types': 8.4.0 '@typescript-eslint/types': 8.4.0
'@typescript-eslint/visitor-keys': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0
'@typescript-eslint/type-utils@7.17.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/type-utils@7.17.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
'@typescript-eslint/utils': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/utils': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
debug: 4.3.5(supports-color@8.1.1) debug: 4.3.5(supports-color@8.1.1)
eslint: 9.9.1 eslint: 9.10.0
ts-api-utils: 1.3.0(typescript@5.5.4) ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies: optionalDependencies:
typescript: 5.5.4 typescript: 5.5.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/type-utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/type-utils@8.4.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4)
'@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/utils': 8.4.0(eslint@9.10.0)(typescript@5.5.4)
debug: 4.3.5(supports-color@8.1.1) debug: 4.3.5(supports-color@8.1.1)
ts-api-utils: 1.3.0(typescript@5.5.4) ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies: optionalDependencies:
@ -6022,24 +6030,24 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@7.17.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/utils@7.17.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
'@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/scope-manager': 7.17.0
'@typescript-eslint/types': 7.17.0 '@typescript-eslint/types': 7.17.0
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
eslint: 9.9.1 eslint: 9.10.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
'@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': '@typescript-eslint/utils@8.4.0(eslint@9.10.0)(typescript@5.5.4)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
'@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/scope-manager': 8.4.0
'@typescript-eslint/types': 8.4.0 '@typescript-eslint/types': 8.4.0
'@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4)
eslint: 9.9.1 eslint: 9.10.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
@ -6906,24 +6914,24 @@ snapshots:
optionalDependencies: optionalDependencies:
source-map: 0.6.1 source-map: 0.6.1
eslint-compat-utils@0.5.1(eslint@9.9.1): eslint-compat-utils@0.5.1(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
semver: 7.6.3 semver: 7.6.3
eslint-config-etherpad@4.0.4(eslint@9.9.1)(typescript@5.5.4): eslint-config-etherpad@4.0.4(eslint@9.10.0)(typescript@5.5.4):
dependencies: dependencies:
'@rushstack/eslint-patch': 1.10.3 '@rushstack/eslint-patch': 1.10.3
'@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint@9.10.0)(typescript@5.5.4)
'@typescript-eslint/parser': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0)
eslint-plugin-cypress: 2.15.2(eslint@9.9.1) eslint-plugin-cypress: 2.15.2(eslint@9.10.0)
eslint-plugin-eslint-comments: 3.2.0(eslint@9.9.1) eslint-plugin-eslint-comments: 3.2.0(eslint@9.10.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.9.1) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.10.0)
eslint-plugin-mocha: 10.4.3(eslint@9.9.1) eslint-plugin-mocha: 10.4.3(eslint@9.10.0)
eslint-plugin-n: 16.6.2(eslint@9.9.1) eslint-plugin-n: 16.6.2(eslint@9.10.0)
eslint-plugin-prefer-arrow: 1.2.3(eslint@9.9.1) eslint-plugin-prefer-arrow: 1.2.3(eslint@9.10.0)
eslint-plugin-promise: 6.6.0(eslint@9.9.1) eslint-plugin-promise: 6.6.0(eslint@9.10.0)
eslint-plugin-you-dont-need-lodash-underscore: 6.14.0 eslint-plugin-you-dont-need-lodash-underscore: 6.14.0
transitivePeerDependencies: transitivePeerDependencies:
- eslint - eslint
@ -6940,13 +6948,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1): eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0):
dependencies: dependencies:
debug: 4.3.5(supports-color@8.1.1) debug: 4.3.5(supports-color@8.1.1)
enhanced-resolve: 5.17.0 enhanced-resolve: 5.17.0
eslint: 9.9.1 eslint: 9.10.0
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1))(eslint@9.9.1) eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0))(eslint@9.10.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.9.1) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.10.0)
fast-glob: 3.3.2 fast-glob: 3.3.2
get-tsconfig: 4.7.6 get-tsconfig: 4.7.6
is-core-module: 2.15.0 is-core-module: 2.15.0
@ -6957,36 +6965,36 @@ snapshots:
- eslint-import-resolver-webpack - eslint-import-resolver-webpack
- supports-color - supports-color
eslint-module-utils@2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1))(eslint@9.9.1): eslint-module-utils@2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0))(eslint@9.10.0):
dependencies: dependencies:
debug: 3.2.7 debug: 3.2.7
optionalDependencies: optionalDependencies:
'@typescript-eslint/parser': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
eslint: 9.9.1 eslint: 9.10.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-cypress@2.15.2(eslint@9.9.1): eslint-plugin-cypress@2.15.2(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
globals: 13.24.0 globals: 13.24.0
eslint-plugin-es-x@7.8.0(eslint@9.9.1): eslint-plugin-es-x@7.8.0(eslint@9.10.0):
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
'@eslint-community/regexpp': 4.11.0 '@eslint-community/regexpp': 4.11.0
eslint: 9.9.1 eslint: 9.10.0
eslint-compat-utils: 0.5.1(eslint@9.9.1) eslint-compat-utils: 0.5.1(eslint@9.10.0)
eslint-plugin-eslint-comments@3.2.0(eslint@9.9.1): eslint-plugin-eslint-comments@3.2.0(eslint@9.10.0):
dependencies: dependencies:
escape-string-regexp: 1.0.5 escape-string-regexp: 1.0.5
eslint: 9.9.1 eslint: 9.10.0
ignore: 5.3.1 ignore: 5.3.1
eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.9.1): eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.10.0):
dependencies: dependencies:
array-includes: 3.1.8 array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5 array.prototype.findlastindex: 1.2.5
@ -6994,9 +7002,9 @@ snapshots:
array.prototype.flatmap: 1.3.2 array.prototype.flatmap: 1.3.2
debug: 3.2.7 debug: 3.2.7
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 9.9.1 eslint: 9.10.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.9.1))(eslint@9.9.1) eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@9.10.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.10.0))(eslint@9.10.0)
hasown: 2.0.2 hasown: 2.0.2
is-core-module: 2.15.0 is-core-module: 2.15.0
is-glob: 4.0.3 is-glob: 4.0.3
@ -7007,25 +7015,25 @@ snapshots:
semver: 6.3.1 semver: 6.3.1
tsconfig-paths: 3.15.0 tsconfig-paths: 3.15.0
optionalDependencies: optionalDependencies:
'@typescript-eslint/parser': 7.17.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 7.17.0(eslint@9.10.0)(typescript@5.5.4)
transitivePeerDependencies: transitivePeerDependencies:
- eslint-import-resolver-typescript - eslint-import-resolver-typescript
- eslint-import-resolver-webpack - eslint-import-resolver-webpack
- supports-color - supports-color
eslint-plugin-mocha@10.4.3(eslint@9.9.1): eslint-plugin-mocha@10.4.3(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-utils: 3.0.0(eslint@9.9.1) eslint-utils: 3.0.0(eslint@9.10.0)
globals: 13.24.0 globals: 13.24.0
rambda: 7.5.0 rambda: 7.5.0
eslint-plugin-n@16.6.2(eslint@9.9.1): eslint-plugin-n@16.6.2(eslint@9.10.0):
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
builtins: 5.1.0 builtins: 5.1.0
eslint: 9.9.1 eslint: 9.10.0
eslint-plugin-es-x: 7.8.0(eslint@9.9.1) eslint-plugin-es-x: 7.8.0(eslint@9.10.0)
get-tsconfig: 4.7.6 get-tsconfig: 4.7.6
globals: 13.24.0 globals: 13.24.0
ignore: 5.3.1 ignore: 5.3.1
@ -7035,21 +7043,21 @@ snapshots:
resolve: 1.22.8 resolve: 1.22.8
semver: 7.6.3 semver: 7.6.3
eslint-plugin-prefer-arrow@1.2.3(eslint@9.9.1): eslint-plugin-prefer-arrow@1.2.3(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-plugin-promise@6.6.0(eslint@9.9.1): eslint-plugin-promise@6.6.0(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-plugin-react-hooks@4.6.2(eslint@9.9.1): eslint-plugin-react-hooks@4.6.2(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-plugin-react-refresh@0.4.11(eslint@9.9.1): eslint-plugin-react-refresh@0.4.11(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-plugin-you-dont-need-lodash-underscore@6.14.0: eslint-plugin-you-dont-need-lodash-underscore@6.14.0:
dependencies: dependencies:
@ -7060,9 +7068,9 @@ snapshots:
esrecurse: 4.3.0 esrecurse: 4.3.0
estraverse: 5.3.0 estraverse: 5.3.0
eslint-utils@3.0.0(eslint@9.9.1): eslint-utils@3.0.0(eslint@9.10.0):
dependencies: dependencies:
eslint: 9.9.1 eslint: 9.10.0
eslint-visitor-keys: 2.1.0 eslint-visitor-keys: 2.1.0
eslint-visitor-keys@2.1.0: {} eslint-visitor-keys@2.1.0: {}
@ -7071,13 +7079,14 @@ snapshots:
eslint-visitor-keys@4.0.0: {} eslint-visitor-keys@4.0.0: {}
eslint@9.9.1: eslint@9.10.0:
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0)
'@eslint-community/regexpp': 4.11.0 '@eslint-community/regexpp': 4.11.0
'@eslint/config-array': 0.18.0 '@eslint/config-array': 0.18.0
'@eslint/eslintrc': 3.1.0 '@eslint/eslintrc': 3.1.0
'@eslint/js': 9.9.1 '@eslint/js': 9.10.0
'@eslint/plugin-kit': 0.1.0
'@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.3.0 '@humanwhocodes/retry': 0.3.0
'@nodelib/fs.walk': 1.2.8 '@nodelib/fs.walk': 1.2.8
@ -7100,7 +7109,6 @@ snapshots:
is-glob: 4.0.3 is-glob: 4.0.3
is-path-inside: 3.0.3 is-path-inside: 3.0.3
json-stable-stringify-without-jsonify: 1.0.1 json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2 lodash.merge: 4.6.2
minimatch: 3.1.2 minimatch: 3.1.2
natural-compare: 1.4.0 natural-compare: 1.4.0
@ -7626,7 +7634,7 @@ snapshots:
dependencies: dependencies:
'@babel/runtime': 7.24.7 '@babel/runtime': 7.24.7
i18next@23.14.0: i18next@23.15.0:
dependencies: dependencies:
'@babel/runtime': 7.24.8 '@babel/runtime': 7.24.8
@ -8489,11 +8497,11 @@ snapshots:
dependencies: dependencies:
react: 18.3.1 react: 18.3.1
react-i18next@15.0.1(i18next@23.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): react-i18next@15.0.1(i18next@23.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies: dependencies:
'@babel/runtime': 7.24.8 '@babel/runtime': 7.24.8
html-parse-stringify: 3.0.1 html-parse-stringify: 3.0.1
i18next: 23.14.0 i18next: 23.15.0
react: 18.3.1 react: 18.3.1
optionalDependencies: optionalDependencies:
react-dom: 18.3.1(react@18.3.1) react-dom: 18.3.1(react@18.3.1)
@ -8517,16 +8525,16 @@ snapshots:
optionalDependencies: optionalDependencies:
'@types/react': 18.3.5 '@types/react': 18.3.5
react-router-dom@6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies: dependencies:
'@remix-run/router': 1.19.1 '@remix-run/router': 1.19.2
react: 18.3.1 react: 18.3.1
react-dom: 18.3.1(react@18.3.1) react-dom: 18.3.1(react@18.3.1)
react-router: 6.26.1(react@18.3.1) react-router: 6.26.2(react@18.3.1)
react-router@6.26.1(react@18.3.1): react-router@6.26.2(react@18.3.1):
dependencies: dependencies:
'@remix-run/router': 1.19.1 '@remix-run/router': 1.19.2
react: 18.3.1 react: 18.3.1
react-style-singleton@2.2.1(@types/react@18.3.5)(react@18.3.1): react-style-singleton@2.2.1(@types/react@18.3.5)(react@18.3.1):
@ -8638,48 +8646,48 @@ snapshots:
dependencies: dependencies:
queue-microtask: 1.2.3 queue-microtask: 1.2.3
rusty-store-kv-darwin-arm64@1.2.0: rusty-store-kv-darwin-arm64@1.3.1:
optional: true optional: true
rusty-store-kv-darwin-x64@1.2.0: rusty-store-kv-darwin-x64@1.3.1:
optional: true optional: true
rusty-store-kv-freebsd-x64@1.2.0: rusty-store-kv-freebsd-x64@1.3.1:
optional: true optional: true
rusty-store-kv-linux-arm-gnueabihf@1.2.0: rusty-store-kv-linux-arm-gnueabihf@1.3.1:
optional: true optional: true
rusty-store-kv-linux-arm64-gnu@1.2.0: rusty-store-kv-linux-arm64-gnu@1.3.1:
optional: true optional: true
rusty-store-kv-linux-arm64-musl@1.2.0: rusty-store-kv-linux-arm64-musl@1.3.1:
optional: true optional: true
rusty-store-kv-linux-x64-gnu@1.2.0: rusty-store-kv-linux-x64-gnu@1.3.1:
optional: true optional: true
rusty-store-kv-linux-x64-musl@1.2.0: rusty-store-kv-linux-x64-musl@1.3.1:
optional: true optional: true
rusty-store-kv-win32-arm64-msvc@1.2.0: rusty-store-kv-win32-arm64-msvc@1.3.1:
optional: true optional: true
rusty-store-kv-win32-x64-msvc@1.2.0: rusty-store-kv-win32-x64-msvc@1.3.1:
optional: true optional: true
rusty-store-kv@1.2.0: rusty-store-kv@1.3.1:
optionalDependencies: optionalDependencies:
rusty-store-kv-darwin-arm64: 1.2.0 rusty-store-kv-darwin-arm64: 1.3.1
rusty-store-kv-darwin-x64: 1.2.0 rusty-store-kv-darwin-x64: 1.3.1
rusty-store-kv-freebsd-x64: 1.2.0 rusty-store-kv-freebsd-x64: 1.3.1
rusty-store-kv-linux-arm-gnueabihf: 1.2.0 rusty-store-kv-linux-arm-gnueabihf: 1.3.1
rusty-store-kv-linux-arm64-gnu: 1.2.0 rusty-store-kv-linux-arm64-gnu: 1.3.1
rusty-store-kv-linux-arm64-musl: 1.2.0 rusty-store-kv-linux-arm64-musl: 1.3.1
rusty-store-kv-linux-x64-gnu: 1.2.0 rusty-store-kv-linux-x64-gnu: 1.3.1
rusty-store-kv-linux-x64-musl: 1.2.0 rusty-store-kv-linux-x64-musl: 1.3.1
rusty-store-kv-win32-arm64-msvc: 1.2.0 rusty-store-kv-win32-arm64-msvc: 1.3.1
rusty-store-kv-win32-x64-msvc: 1.2.0 rusty-store-kv-win32-x64-msvc: 1.3.1
safe-array-concat@1.1.2: safe-array-concat@1.1.2:
dependencies: dependencies:
@ -9119,7 +9127,7 @@ snapshots:
typescript@5.5.4: {} typescript@5.5.4: {}
ueberdb2@4.2.103: {} ueberdb2@5.0.2: {}
uid-safe@2.1.5: uid-safe@2.1.5:
dependencies: dependencies:

View file

@ -194,6 +194,15 @@
}, },
*/ */
/*
* Enables the use of a different server. We have a different one that syncs changes from the original server.
* It is hosted on GitHub and should not be blocked by many firewalls.
* https://etherpad.org/ep_infos
*/
"updateServer": "https://etherpad.org/ep_infos",
/* /*
* The type of the database. * The type of the database.
* *

View file

@ -271,6 +271,14 @@
"pageDown": true "pageDown": true
}, },
/*
* Enables the use of a different server. We have a different one that syncs changes from the original server.
* It is hosted on GitHub and should not be blocked by many firewalls.
* https://etherpad.org/ep_infos
*/
"updateServer": "https://etherpad.org/ep_infos",
/* /*
* Should we suppress errors from being visible in the default Pad Text? * Should we suppress errors from being visible in the default Pad Text?
*/ */

View file

@ -107,6 +107,7 @@ exports.ttl = {
RefreshToken: 1 * 24 * 60 * 60, // 1 day in seconds RefreshToken: 1 * 24 * 60 * 60, // 1 day in seconds
} }
exports.updateServer = "https://static.etherpad.org"
/* /*
@ -941,11 +942,12 @@ exports.reloadSettings = () => {
logger.warn(`${dirtyWarning} File location: ${exports.dbSettings.filename}`); logger.warn(`${dirtyWarning} File location: ${exports.dbSettings.filename}`);
} }
if (exports.dbType === 'rustydb') { if (exports.dbType === 'rustydb' || exports.dbType === "sqlite") {
exports.dbSettings.filename = absolutePaths.makeAbsolute(exports.dbSettings.filename); exports.dbSettings.filename = absolutePaths.makeAbsolute(exports.dbSettings.filename);
logger.warn(`File location: ${exports.dbSettings.filename}`); logger.warn(`File location: ${exports.dbSettings.filename}`);
} }
if (exports.ip === '') { if (exports.ip === '') {
// using Unix socket for connectivity // using Unix socket for connectivity
logger.warn('The settings file contains an empty string ("") for the "ip" parameter. The ' + logger.warn('The settings file contains an empty string ("") for the "ip" parameter. The ' +

View file

@ -20,7 +20,7 @@ const loadEtherpadInformations = () => {
return infos; return infos;
} }
return axios.get('https://static.etherpad.org/info.json', {headers: headers}) return axios.get(`${settings.updateServer}/info.json`, {headers: headers})
.then(async (resp: any) => { .then(async (resp: any) => {
infos = await resp.data; infos = await resp.data;
if (infos === undefined || infos === null) { if (infos === undefined || infos === null) {

View file

@ -70,11 +70,11 @@
"superagent": "10.1.0", "superagent": "10.1.0",
"tinycon": "0.6.8", "tinycon": "0.6.8",
"tsx": "4.19.0", "tsx": "4.19.0",
"ueberdb2": "^4.2.103", "ueberdb2": "^5.0.2",
"underscore": "1.13.7", "underscore": "1.13.7",
"unorm": "1.6.0", "unorm": "1.6.0",
"wtfnode": "^0.9.3", "wtfnode": "^0.9.3",
"rusty-store-kv": "^1.2.0" "rusty-store-kv": "^1.3.1"
}, },
"bin": { "bin": {
"etherpad-healthcheck": "../bin/etherpad-healthcheck", "etherpad-healthcheck": "../bin/etherpad-healthcheck",
@ -99,7 +99,7 @@
"@types/supertest": "^6.0.2", "@types/supertest": "^6.0.2",
"@types/underscore": "^1.11.15", "@types/underscore": "^1.11.15",
"chokidar": "^3.6.0", "chokidar": "^3.6.0",
"eslint": "^9.9.1", "eslint": "^9.10.0",
"eslint-config-etherpad": "^4.0.4", "eslint-config-etherpad": "^4.0.4",
"etherpad-cli-client": "^3.0.2", "etherpad-cli-client": "^3.0.2",
"mocha": "^10.7.3", "mocha": "^10.7.3",
@ -138,6 +138,6 @@
"debug:socketio": "cross-env DEBUG=socket.io* node --require tsx/cjs node/server.ts", "debug:socketio": "cross-env DEBUG=socket.io* node --require tsx/cjs node/server.ts",
"test:vitest": "vitest" "test:vitest": "vitest"
}, },
"version": "2.2.3", "version": "2.2.4",
"license": "Apache-2.0" "license": "Apache-2.0"
} }

View file

@ -167,7 +167,7 @@ function Ace2Inner(editorInfo, cssManagers) {
for (const name of names) console[name] = noop; for (const name of names) console[name] = noop;
} }
const scheduler = parent; // hack for opera required const scheduler = window; // hack for opera required
const performDocumentReplaceRange = (start, end, newText) => { const performDocumentReplaceRange = (start, end, newText) => {
if (start === undefined) start = rep.selStart; if (start === undefined) start = rep.selStart;
@ -240,7 +240,7 @@ function Ace2Inner(editorInfo, cssManagers) {
bgcolor = fadeColor(bgcolor, info.fade); bgcolor = fadeColor(bgcolor, info.fade);
} }
const textColor = const textColor =
colorutils.textColorFromBackgroundColor(bgcolor, parent.parent.clientVars.skinName); colorutils.textColorFromBackgroundColor(bgcolor, window.clientVars.skinName);
const styles = [ const styles = [
cssManagers.inner.selectorStyle(authorSelector), cssManagers.inner.selectorStyle(authorSelector),
cssManagers.parent.selectorStyle(authorSelector), cssManagers.parent.selectorStyle(authorSelector),
@ -1270,7 +1270,7 @@ function Ace2Inner(editorInfo, cssManagers) {
const prevLine = rep.lines.prev(thisLine); const prevLine = rep.lines.prev(thisLine);
const prevLineText = prevLine.text; const prevLineText = prevLine.text;
let theIndent = /^ *(?:)/.exec(prevLineText)[0]; let theIndent = /^ *(?:)/.exec(prevLineText)[0];
const shouldIndent = parent.parent.clientVars.indentationOnNewLine; const shouldIndent = window.clientVars.indentationOnNewLine;
if (shouldIndent && /[[(:{]\s*$/.exec(prevLineText)) { if (shouldIndent && /[[(:{]\s*$/.exec(prevLineText)) {
theIndent += THE_TAB; theIndent += THE_TAB;
} }
@ -2023,7 +2023,7 @@ function Ace2Inner(editorInfo, cssManagers) {
const isPadLoading = (t) => t === 'setup' || t === 'setBaseText' || t === 'importText'; const isPadLoading = (t) => t === 'setup' || t === 'setBaseText' || t === 'importText';
const updateStyleButtonState = (attribName, hasStyleOnRepSelection) => { const updateStyleButtonState = (attribName, hasStyleOnRepSelection) => {
const $formattingButton = parent.parent.$(`[data-key="${attribName}"]`).find('a'); const $formattingButton = window.$(`[data-key="${attribName}"]`).find('a');
$formattingButton.toggleClass(SELECT_BUTTON_CLASS, hasStyleOnRepSelection); $formattingButton.toggleClass(SELECT_BUTTON_CLASS, hasStyleOnRepSelection);
}; };
@ -2277,7 +2277,7 @@ function Ace2Inner(editorInfo, cssManagers) {
}; };
const hideEditBarDropdowns = () => { const hideEditBarDropdowns = () => {
window.parent.parent.padeditbar.toggleDropDown('none'); window.padeditbar.toggleDropDown('none');
}; };
const renumberList = (lineNum) => { const renumberList = (lineNum) => {
@ -2582,7 +2582,7 @@ function Ace2Inner(editorInfo, cssManagers) {
specialHandled = specialHandledInHook.indexOf(true) !== -1; specialHandled = specialHandledInHook.indexOf(true) !== -1;
} }
const padShortcutEnabled = parent.parent.clientVars.padShortcutEnabled; const padShortcutEnabled = window.clientVars.padShortcutEnabled;
if (!specialHandled && isTypeForSpecialKey && if (!specialHandled && isTypeForSpecialKey &&
altKey && keyCode === 120 && altKey && keyCode === 120 &&
padShortcutEnabled.altF9) { padShortcutEnabled.altF9) {
@ -2591,7 +2591,7 @@ function Ace2Inner(editorInfo, cssManagers) {
// As ubuntu cannot use Alt F10.... // As ubuntu cannot use Alt F10....
// Focus on the editbar. // Focus on the editbar.
// -- TODO: Move Focus back to previous state (we know it so we can use it) // -- TODO: Move Focus back to previous state (we know it so we can use it)
const firstEditbarElement = parent.parent.$('#editbar') const firstEditbarElement = window.$('#editbar')
.children('ul').first().children().first() .children('ul').first().children().first()
.children().first().children().first(); .children().first().children().first();
$(this).trigger('blur'); $(this).trigger('blur');
@ -2603,8 +2603,8 @@ function Ace2Inner(editorInfo, cssManagers) {
padShortcutEnabled.altC) { padShortcutEnabled.altC) {
// Alt c focuses on the Chat window // Alt c focuses on the Chat window
$(this).trigger('blur'); $(this).trigger('blur');
parent.parent.chat.show(); window.chat.show();
parent.parent.$('#chatinput').trigger('focus'); window.$('#chatinput').trigger('focus');
evt.preventDefault(); evt.preventDefault();
} }
if (!specialHandled && type === 'keydown' && if (!specialHandled && type === 'keydown' &&
@ -2626,12 +2626,12 @@ function Ace2Inner(editorInfo, cssManagers) {
if (authorId) authorIds.add(authorId); if (authorId) authorIds.add(authorId);
} }
} }
const idToName = new Map(parent.parent.pad.userList().map((a) => [a.userId, a.name])); const idToName = new Map(window.pad.userList().map((a) => [a.userId, a.name]));
const myId = parent.parent.clientVars.userId; const myId = window.clientVars.userId;
const authors = const authors =
[...authorIds].map((id) => id === myId ? 'me' : idToName.get(id) || 'unknown'); [...authorIds].map((id) => id === myId ? 'me' : idToName.get(id) || 'unknown');
parent.parent.$.gritter.add({ window.$.gritter.add({
title: 'Line Authors', title: 'Line Authors',
text: text:
authors.length === 0 ? 'No author information is available' authors.length === 0 ? 'No author information is available'
@ -2680,7 +2680,7 @@ function Ace2Inner(editorInfo, cssManagers) {
specialHandled = true; specialHandled = true;
// close all gritters when the user hits escape key // close all gritters when the user hits escape key
parent.parent.$.gritter.removeAll(); window.$.gritter.removeAll();
} }
if (!specialHandled && isTypeForCmdKey && if (!specialHandled && isTypeForCmdKey &&
/* Do a saved revision on ctrl S */ /* Do a saved revision on ctrl S */
@ -2688,13 +2688,13 @@ function Ace2Inner(editorInfo, cssManagers) {
!evt.altKey && !evt.altKey &&
padShortcutEnabled.cmdS) { padShortcutEnabled.cmdS) {
evt.preventDefault(); evt.preventDefault();
const originalBackground = parent.parent.$('#revisionlink').css('background'); const originalBackground = window.$('#revisionlink').css('background');
parent.parent.$('#revisionlink').css({background: 'lightyellow'}); window.$('#revisionlink').css({background: 'lightyellow'});
scheduler.setTimeout(() => { scheduler.setTimeout(() => {
parent.parent.$('#revisionlink').css({background: originalBackground}); window.$('#revisionlink').css({background: originalBackground});
}, 1000); }, 1000);
/* The parent.parent part of this is BAD and I feel bad.. It may break something */
parent.parent.pad.collabClient.sendMessage({type: 'SAVE_REVISION'}); window.pad.collabClient.sendMessage({type: 'SAVE_REVISION'});
specialHandled = true; specialHandled = true;
} }
if (!specialHandled && isTypeForSpecialKey && if (!specialHandled && isTypeForSpecialKey &&

View file

@ -140,7 +140,7 @@ const makeChangesetTracker = (scheduler, apool, aceCallbacksProvider) => {
toSubmit = compose(submittedChangeset, userChangeset, apool); toSubmit = compose(submittedChangeset, userChangeset, apool);
} else { } else {
// Get my authorID // Get my authorID
const authorId = parent.parent.pad.myUserInfo.userId; const authorId = window.pad.myUserInfo.userId;
// Sanitize authorship: Replace all author attributes with this user's author ID in case the // Sanitize authorship: Replace all author attributes with this user's author ID in case the
// text was copied from another author. // text was copied from another author.

View file

@ -171,7 +171,7 @@ export const getAvailablePlugins = (maxCacheAge: number|false) => {
return resolve(availablePlugins); return resolve(availablePlugins);
} }
await axios.get('https://static.etherpad.org/plugins.json', {headers}) await axios.get(`${settings.updateServer}/plugins.json`, {headers})
.then((pluginsLoaded:AxiosResponse<MapArrayType<PackageInfo>>) => { .then((pluginsLoaded:AxiosResponse<MapArrayType<PackageInfo>>) => {
availablePlugins = pluginsLoaded.data; availablePlugins = pluginsLoaded.data;
cacheTimestamp = nowTimestamp; cacheTimestamp = nowTimestamp;

View file

@ -15,7 +15,8 @@ class Scroll {
// DOM reference // DOM reference
this.outerWin = outerWin; this.outerWin = outerWin;
this.doc = this.outerWin.contentDocument!; this.doc = this.outerWin.contentDocument!;
this.rootDocument = parent.parent.document; this.rootDocument = document;
console.log(this.rootDocument)
} }
scrollWhenCaretIsInTheLastLineOfViewportWhenNecessary(rep: RepModel, isScrollableEvent: boolean, innerHeight: number) { scrollWhenCaretIsInTheLastLineOfViewportWhenNecessary(rep: RepModel, isScrollableEvent: boolean, innerHeight: number) {
@ -112,7 +113,7 @@ class Scroll {
}; };
_getEditorPositionTop() { _getEditorPositionTop() {
const editor = parent.document.getElementsByTagName('iframe'); const editor = document.getElementsByTagName('iframe');
const editorPositionTop = editor[0].offsetTop; const editorPositionTop = editor[0].offsetTop;
return editorPositionTop; return editorPositionTop;
}; };