Merge branch 'develop'

This commit is contained in:
SamTV12345 2023-09-23 14:58:46 +02:00
commit 293bd64522
28 changed files with 817 additions and 2565 deletions

View file

@ -22,7 +22,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -59,7 +59,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -120,7 +120,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -153,7 +153,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:

View file

@ -23,7 +23,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
# We must fetch at least the immediate parents so that if this is # We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head. # a pull request then we can checkout the head.

View file

@ -15,6 +15,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: 'Checkout Repository' - name: 'Checkout Repository'
uses: actions/checkout@v3 uses: actions/checkout@v4
- name: 'Dependency Review' - name: 'Dependency Review'
uses: actions/dependency-review-action@v3 uses: actions/dependency-review-action@v3

View file

@ -17,17 +17,17 @@ jobs:
steps: steps:
- -
name: Check out name: Check out
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
name: Set up QEMU name: Set up QEMU
if: github.event_name == 'push' if: github.event_name == 'push'
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
- -
name: Set up Docker Buildx name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- -
name: Build and export to Docker name: Build and export to Docker
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: . context: .
load: true load: true
@ -64,7 +64,7 @@ jobs:
name: Docker meta name: Docker meta
if: github.event_name == 'push' if: github.event_name == 'push'
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: etherpad/etherpad images: etherpad/etherpad
tags: | tags: |
@ -75,14 +75,14 @@ jobs:
- -
name: Log in to Docker Hub name: Log in to Docker Hub
if: github.event_name == 'push' if: github.event_name == 'push'
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- -
name: Build and push name: Build and push
if: github.event_name == 'push' if: github.event_name == 'push'
uses: docker/build-push-action@v4 uses: docker/build-push-action@v5
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64

View file

@ -12,10 +12,11 @@ jobs:
name: with plugins name: with plugins
runs-on: ubuntu-latest runs-on: ubuntu-latest
# node: [16, 19, 20] >> Disabled node 16 and 18 because they do not work
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
node: [16, 18, 20] node: [19, 20]
steps: steps:
- -
@ -26,7 +27,7 @@ jobs:
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}-node${{ matrix.node }}' printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}-node${{ matrix.node }}'
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -69,6 +70,10 @@ jobs:
- -
name: increase maxHttpBufferSize name: increase maxHttpBufferSize
run: "sed -i 's/\"maxHttpBufferSize\": 10000/\"maxHttpBufferSize\": 100000/' settings.json" run: "sed -i 's/\"maxHttpBufferSize\": 10000/\"maxHttpBufferSize\": 100000/' settings.json"
-
name: Disable import/export rate limiting
run: |
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 1000000/' -i settings.json
- -
name: Remove standard frontend test files, so only admin tests are run name: Remove standard frontend test files, so only admin tests are run
run: mv src/tests/frontend/specs/* /tmp && mv /tmp/admin*.js src/tests/frontend/specs run: mv src/tests/frontend/specs/* /tmp && mv /tmp/admin*.js src/tests/frontend/specs

View file

@ -21,7 +21,7 @@ jobs:
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}' printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -43,7 +43,7 @@ jobs:
- -
name: Disable import/export rate limiting name: Disable import/export rate limiting
run: | run: |
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 100000000/' -i settings.json
- -
uses: saucelabs/sauce-connect-action@v2.3.4 uses: saucelabs/sauce-connect-action@v2.3.4
with: with:
@ -76,7 +76,7 @@ jobs:
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}' printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -127,7 +127,7 @@ jobs:
- -
name: Disable import/export rate limiting name: Disable import/export rate limiting
run: | run: |
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 1000000/' -i settings.json
# XXX we should probably run all tests, because plugins could effect their results # XXX we should probably run all tests, because plugins could effect their results
- -
name: Remove standard frontend test files, so only plugin tests are run name: Remove standard frontend test files, so only plugin tests are run

View file

@ -18,7 +18,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:

View file

@ -18,7 +18,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -48,7 +48,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -105,7 +105,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:

View file

@ -18,7 +18,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:

View file

@ -22,7 +22,7 @@ jobs:
steps: steps:
- -
name: Check out latest release name: Check out latest release
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
ref: master ref: master
- -
@ -67,7 +67,7 @@ jobs:
- -
name: Run the backend tests name: Run the backend tests
run: cd src && npm test run: cd src && npm test
# Because actions/checkout@v3 is called with "ref: master" and without # Because actions/checkout@v4 is called with "ref: master" and without
# "fetch-depth: 0", the local clone does not have the ${GITHUB_SHA} # "fetch-depth: 0", the local clone does not have the ${GITHUB_SHA}
# commit. Fetch ${GITHUB_REF} to get the ${GITHUB_SHA} commit. Note that a # commit. Fetch ${GITHUB_REF} to get the ${GITHUB_SHA} commit. Note that a
# plain "git fetch" only fetches "normal" references (refs/heads/* and # plain "git fetch" only fetches "normal" references (refs/heads/* and

View file

@ -15,22 +15,16 @@ jobs:
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id) || (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
name: Build .zip name: Build .zip
runs-on: windows-latest runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps: steps:
- -
uses: msys2/setup-msys2@v2 uses: msys2/setup-msys2@v2
with: with:
release: false
update: false
path-type: inherit path-type: inherit
install: >- install: >-
zip zip
rsync
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
@ -41,17 +35,16 @@ jobs:
src/bin/doc/package-lock.json src/bin/doc/package-lock.json
- -
name: Install all dependencies and symlink for ep_etherpad-lite name: Install all dependencies and symlink for ep_etherpad-lite
run: | shell: msys2 {0}
set MSYSTEM=winsymlinks:lnk run: src/bin/installDeps.sh
src/bin/installDeps.sh
- -
name: Run the backend tests name: Run the backend tests
shell: msys2 {0}
run: cd src && npm test run: cd src && npm test
- -
name: Build the .zip name: Build the .zip
run: | shell: msys2 {0}
set MSYSTEM=winsymlinks:lnk run: src/bin/buildForWindows.sh
src/bin/buildForWindows.sh
- -
name: Archive production artifacts name: Archive production artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@ -69,7 +62,7 @@ jobs:
steps: steps:
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
- -
name: Download .zip name: Download .zip
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
@ -96,7 +89,7 @@ jobs:
# run on pushes to any branch # run on pushes to any branch
# run on PRs from external forks # run on PRs from external forks
permissions: permissions:
contents: none contents: write
if: | if: |
(github.event_name != 'pull_request') (github.event_name != 'pull_request')
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id) || (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
@ -130,3 +123,13 @@ jobs:
node node_modules\ep_etherpad-lite\node\server.js & node node_modules\ep_etherpad-lite\node\server.js &
curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9001/p/test curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9001/p/test
src\node_modules\cypress\bin\cypress run --config-file src\tests\frontendcypress\cypress.config.js src\node_modules\cypress\bin\cypress run --config-file src\tests\frontendcypress\cypress.config.js
# On release, upload windows zip to GitHub release tab
-
name: Rename to etherpad-lite-win.zip
shell: powershell
run: mv etherpad-win.zip etherpad-lite-win.zip
- name: upload binaries to release
uses: softprops/action-gh-release@v1
if: ${{startsWith(github.ref, 'refs/tags/') }}
with:
files: etherpad-lite-win.zip

View file

@ -1,3 +1,20 @@
# 1.9.3
### Compability changes
* express-rate-limit has been bumped to 7.0.0: This involves the breaking change that "max: 0"
in the importExportRateLimiting is set to always trigger. So set it to your desired value.
If you haven't changed that value in the settings.json you are all set.
### Notable enhancements and fixes
* Bugfixes
* Fix etherpad crashing with mongodb database
* Enhancements
* Add surrealdb database support. You can find out more about this database [here](https://surrealdb.com).
* Make sqlite faster: The sqlite library has been switched to better-sqlite3. This should lead to better performance.
# 1.9.2 # 1.9.2
### Notable enhancements and fixes ### Notable enhancements and fixes

View file

@ -17,6 +17,9 @@ RUN \
} }
ENV TIMEZONE=${TIMEZONE} ENV TIMEZONE=${TIMEZONE}
# Control the configuration file to be copied into the container.
ARG SETTINGS=./settings.json.docker
# plugins to install while building the container. By default no plugins are # plugins to install while building the container. By default no plugins are
# installed. # installed.
# If given a value, it has to be a space-separated, quoted list of plugin names. # If given a value, it has to be a space-separated, quoted list of plugin names.
@ -78,7 +81,7 @@ RUN \
apk add \ apk add \
ca-certificates \ ca-certificates \
git \ git \
${INSTALL_ABIWORD:+abiword} \ ${INSTALL_ABIWORD:+abiword abiword-plugin-command} \
${INSTALL_SOFFICE:+libreoffice openjdk8-jre libreoffice-common} ${INSTALL_SOFFICE:+libreoffice openjdk8-jre libreoffice-common}
USER etherpad USER etherpad
@ -101,7 +104,7 @@ RUN { [ -z "${ETHERPAD_PLUGINS}" ] || \
rm -rf ~/.npm rm -rf ~/.npm
# Copy the configuration file. # Copy the configuration file.
COPY --chown=etherpad:etherpad ./settings.json.docker "${EP_DIR}"/settings.json COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
# Fix group permissions # Fix group permissions
RUN chmod -R g=u . RUN chmod -R g=u .

View file

@ -116,7 +116,7 @@ following:
### Docker container ### Docker container
Find [here](doc/docker.md) information on running Etherpad in a container. Find [here](doc/docker.adoc) information on running Etherpad in a container.
## Plugins ## Plugins

View file

View file

@ -5,9 +5,9 @@
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"marked": { "marked": {
"version": "7.0.3", "version": "9.0.3",
"resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz", "resolved": "https://registry.npmjs.org/marked/-/marked-9.0.3.tgz",
"integrity": "sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw==" "integrity": "sha512-pI/k4nzBG1PEq1J3XFEHxVvjicfjl8rgaMaqclouGSMPhk7Q3Ejb2ZRxx/ZQOcQ1909HzVoWCFYq6oLgtL4BpQ=="
} }
} }
} }

View file

@ -7,7 +7,7 @@
"node": ">=12.17.0" "node": ">=12.17.0"
}, },
"dependencies": { "dependencies": {
"marked": "^7.0.3" "marked": "^9.0.3"
}, },
"devDependencies": {}, "devDependencies": {},
"optionalDependencies": {}, "optionalDependencies": {},

View file

@ -182,8 +182,8 @@ try {
console.log('Updating ether.github.com master branch...'); console.log('Updating ether.github.com master branch...');
run('git pull --ff-only', {cwd: '../ether.github.com/'}); run('git pull --ff-only', {cwd: '../ether.github.com/'});
console.log('Committing documentation...'); console.log('Committing documentation...');
run(`cp -R out/doc/ ../ether.github.com/doc/v'${newVersion}'`); run(`cp -R out/doc/ ../ether.github.com/public/doc/v'${newVersion}'`);
run(`rm -f latest && ln -s 'v${newVersion}' latest`, {cwd: '../ether.github.com/doc/'}); run(`npm version ${newVersion}`, {cwd:'../ether.github.com'})
run('git add .', {cwd: '../ether.github.com/'}); run('git add .', {cwd: '../ether.github.com/'});
run(`git commit -m '${newVersion} docs'`, {cwd: '../ether.github.com/'}); run(`git commit -m '${newVersion} docs'`, {cwd: '../ether.github.com/'});
} catch (err) { } catch (err) {
@ -203,12 +203,9 @@ console.log(' (cd ../ether.github.com && git show)');
console.log('If everything looks good then push:'); console.log('If everything looks good then push:');
console.log(` git push origin master develop '${newVersion}'`); console.log(` git push origin master develop '${newVersion}'`);
console.log(' (cd ../ether.github.com && git push)'); console.log(' (cd ../ether.github.com && git push)');
console.log('Create a Windows build:'); console.log('Creating a Windows build is not necessary anymore and will be created by GitHub action');
console.log(' bin/buildForWindows.sh');
console.log('Visit https://github.com/ether/etherpad-lite/releases/new and create a new release ' + console.log('Visit https://github.com/ether/etherpad-lite/releases/new and create a new release ' +
`with 'master' as the target and the version is ${newVersion}. Include the windows ` + `with 'master' as the target and the version is ${newVersion}. `);
'zip as an asset'); console.log('The docs are updated automatically with the new version. While the windows build' +
console.log('Once the new docs are uploaded then modify the download links (replace ' + ' is generated people can still download the older versions.');
`${currentVersion} with ${newVersion} on etherpad.org and then pull master onto ` +
'develop)');
console.log('Finally go public with an announcement via our comms channels :)'); console.log('Finally go public with an announcement via our comms channels :)');

View file

@ -2,13 +2,29 @@
"@metadata": { "@metadata": {
"authors": [ "authors": [
"Baloch Afghanistan", "Baloch Afghanistan",
"Moshtank",
"Sultanselim baloch" "Sultanselim baloch"
] ]
}, },
"admin.page-title": "کارمسترءِ کُرسی - اترپَد",
"admin_plugins": "گݔشانکانءِ کار ءُ بار",
"admin_plugins.available": "دسترسݔن گݔشانک",
"admin_plugins.available_not-found": "گݔشانکے نݔست اَت۔",
"admin_plugins.available_install.value": "پِررݔنَگ",
"admin_plugins.available_search.placeholder": "گݔشانکان شۏھاز پہ پِررݔنَگا",
"admin_plugins.description": "سرۏشتادی",
"admin_plugins.installed": "گݔشانک پِررݔنگ بیت",
"admin_plugins.installed_fetching": "پِررݔنتَگݔن گݔشانکانءِ پچ کنگ",
"admin_plugins.installed_nothing": "شما ھنگت ھچ گݔشانکے نہ پِررݔنتَگ۔",
"admin_plugins.installed_uninstall.value": "پِررݔنتَگݔنءِ بند کنگ",
"admin_plugins.last-update": "گُڈی پہ رۏچان",
"admin_plugins.name": "نام",
"admin_plugins.page-title": "گݔشانکءِ کارمستری - اترپد",
"admin_plugins.version": "ورژن",
"index.newPad": "دفترچه یادداشت تازه", "index.newPad": "دفترچه یادداشت تازه",
"index.createOpenPad": "یا ایجاد/بازکردن یک دفترچه یادداشت با نام:", "index.createOpenPad": "یا ایجاد/بازکردن یک دفترچه یادداشت با نام:",
"pad.toolbar.bold.title": "پررنگ (Ctrl-B)", "pad.toolbar.bold.title": "پررنگ (Ctrl-B)",
"pad.toolbar.italic.title": "کج (Ctrl-I)", "pad.toolbar.italic.title": َش (Ctrl-I)",
"pad.toolbar.underline.title": "زیرخط (Ctrl-U)", "pad.toolbar.underline.title": "زیرخط (Ctrl-U)",
"pad.toolbar.strikethrough.title": "خط خورده", "pad.toolbar.strikethrough.title": "خط خورده",
"pad.toolbar.ol.title": "فهرست مرتب شده", "pad.toolbar.ol.title": "فهرست مرتب شده",
@ -21,12 +37,12 @@
"pad.toolbar.import_export.title": "درون‌ریزی/برون‌ریزی از/به قالب‌های مختلف", "pad.toolbar.import_export.title": "درون‌ریزی/برون‌ریزی از/به قالب‌های مختلف",
"pad.toolbar.timeslider.title": "لغزندهٔ زمان", "pad.toolbar.timeslider.title": "لغزندهٔ زمان",
"pad.toolbar.savedRevision.title": "ذخیره‌سازی نسخه", "pad.toolbar.savedRevision.title": "ذخیره‌سازی نسخه",
"pad.toolbar.settings.title": "تنظیمات", "pad.toolbar.settings.title": "ردانکان",
"pad.toolbar.embed.title": "اشتراک و جاسازی این دفترچه یادداشت", "pad.toolbar.embed.title": "اشتراک و جاسازی این دفترچه یادداشت",
"pad.toolbar.showusers.title": "نمایش کاربران در این دفترچه یادداشت", "pad.toolbar.showusers.title": "نمایش کاربران در این دفترچه یادداشت",
"pad.colorpicker.save": "زاپاس کورتین", "pad.colorpicker.save": "سَپت",
"pad.colorpicker.cancel": "کنسیل", "pad.colorpicker.cancel": "بجَگ",
"pad.loading": "...بار بیت", "pad.loading": "بییگئن...",
"pad.permissionDenied": "شرمنده، شما را اجازت په دسترسی ای صفحه نیست.", "pad.permissionDenied": "شرمنده، شما را اجازت په دسترسی ای صفحه نیست.",
"pad.settings.padSettings": "تنظیمات دفترچه یادداشت", "pad.settings.padSettings": "تنظیمات دفترچه یادداشت",
"pad.settings.myView": "منی سۏج", "pad.settings.myView": "منی سۏج",
@ -39,7 +55,7 @@
"pad.settings.language": "زبان:", "pad.settings.language": "زبان:",
"pad.importExport.import_export": "درون‌ریزی/برون‌ریزی", "pad.importExport.import_export": "درون‌ریزی/برون‌ریزی",
"pad.importExport.import": "بارگذاری پرونده‌ی متنی یا سند", "pad.importExport.import": "بارگذاری پرونده‌ی متنی یا سند",
"pad.importExport.importSuccessful": "موفقیت آمیز بود!", "pad.importExport.importSuccessful": "سۏبݔن بیت!",
"pad.importExport.export": "برون‌ریزی این دفترچه یادداشت با قالب:", "pad.importExport.export": "برون‌ریزی این دفترچه یادداشت با قالب:",
"pad.importExport.exporthtml": "HTML", "pad.importExport.exporthtml": "HTML",
"pad.importExport.exportplain": "سادگین متن", "pad.importExport.exportplain": "سادگین متن",
@ -66,21 +82,21 @@
"pad.modals.badChangeset.cause": "این می‌تواند به دلیل پیکربندی اشتباه یا سایر رفتارهای غیرمنتظره باشد. اگر فکر می‌کنید این یک خطا است لطفاً با مدیر خدمت تماس بگیرید. برای ادامهٔ ویرایش سعی کنید که دوباره متصل شوید.", "pad.modals.badChangeset.cause": "این می‌تواند به دلیل پیکربندی اشتباه یا سایر رفتارهای غیرمنتظره باشد. اگر فکر می‌کنید این یک خطا است لطفاً با مدیر خدمت تماس بگیرید. برای ادامهٔ ویرایش سعی کنید که دوباره متصل شوید.",
"pad.modals.corruptPad.explanation": "پدی که شما سعی دارید دسترسی پیدا کنید خراب است.", "pad.modals.corruptPad.explanation": "پدی که شما سعی دارید دسترسی پیدا کنید خراب است.",
"pad.modals.corruptPad.cause": "این احتمالاً به دلیل تنظیمات اشتباه کارساز یا سایر رفتارهای غیرمنتظره است. لطفاً با مدیر خدمت تماس حاصل کنید.", "pad.modals.corruptPad.cause": "این احتمالاً به دلیل تنظیمات اشتباه کارساز یا سایر رفتارهای غیرمنتظره است. لطفاً با مدیر خدمت تماس حاصل کنید.",
"pad.modals.deleted": "پاک کورتین", "pad.modals.deleted": "گار بیت۔",
"pad.modals.deleted.explanation": "این دفترچه یادداشت پاک شده‌است.", "pad.modals.deleted.explanation": "اے یادداشت پاک کنگ بیتگ۔",
"pad.modals.disconnected": "شمئی سکّی کھت اِنت۔", "pad.modals.disconnected": "شمئی سکّی کھت اِنت۔",
"pad.modals.disconnected.explanation": "اتصال به سرور قطع شده‌است.", "pad.modals.disconnected.explanation": "اتصال به سرور قطع شده‌است.",
"pad.modals.disconnected.cause": "ممکن است سرور در دسترس نباشد. اگر این مشکل باز هم رخ داد مدیر حدمت را آگاه کنید.", "pad.modals.disconnected.cause": "ممکن است سرور در دسترس نباشد. اگر این مشکل باز هم رخ داد مدیر حدمت را آگاه کنید.",
"pad.share": "به اشتراک‌گذاری این دفترچه یادداشت", "pad.share": "به اشتراک‌گذاری این دفترچه یادداشت",
"pad.share.readonly": "فقط خواندنی", "pad.share.readonly": "فقط خواندنی",
"pad.share.link": "پیوند", "pad.share.link": "لینک",
"pad.share.emebdcode": "جاسازی نشانی", "pad.share.emebdcode": "جاسازی نشانی",
"pad.chat": "گفتگو", "pad.chat": "گفتگو",
"pad.chat.title": "بازکردن گفتگو برای این دفترچه یادداشت", "pad.chat.title": "بازکردن گفتگو برای این دفترچه یادداشت",
"pad.chat.loadmessages": "گݔشترݔں پیگامء چارگ", "pad.chat.loadmessages": "گݔشترݔں پیگامء چارگ",
"timeslider.pageTitle": "لغزندهٔ زمان {{appTitle}}", "timeslider.pageTitle": "لغزندهٔ زمان {{appTitle}}",
"timeslider.toolbar.returnbutton": "بازگشت به دفترچه یادداشت", "timeslider.toolbar.returnbutton": "چَھر کنگ پہ یاددپترا",
"timeslider.toolbar.authors": "نویسوک:", "timeslider.toolbar.authors": "لککۏک:",
"timeslider.toolbar.authorsList": "بدون نویسنده", "timeslider.toolbar.authorsList": "بدون نویسنده",
"timeslider.toolbar.exportlink.title": "درگیزگ", "timeslider.toolbar.exportlink.title": "درگیزگ",
"timeslider.exportCurrent": "برون‌ریزی نگارش کنونی به عنوان:", "timeslider.exportCurrent": "برون‌ریزی نگارش کنونی به عنوان:",

View file

@ -2,6 +2,7 @@
"@metadata": { "@metadata": {
"authors": [ "authors": [
"Armando-Martin", "Armando-Martin",
"Atzerritik",
"DDPAT", "DDPAT",
"Dgstranz", "Dgstranz",
"Fitoschido", "Fitoschido",
@ -74,7 +75,7 @@
"pad.colorpicker.save": "Guardar", "pad.colorpicker.save": "Guardar",
"pad.colorpicker.cancel": "Cancelar", "pad.colorpicker.cancel": "Cancelar",
"pad.loading": "Cargando...", "pad.loading": "Cargando...",
"pad.noCookie": "No se pudo encontrar la «cookie». Permite la utilización de «cookies» en el navegador.", "pad.noCookie": "No se pudo encontrar la galleta. ¡Por favor, permita las cookies en su navegador! Su sesión y configuración no se guardarán entre las visitas. Esto puede deberse a que Etherpad está incluido en un iFrame en algunos navegadores. Por favor asegúrese de que Etherpad está en el mismo subdominio/dominio que el iFrame padre",
"pad.permissionDenied": "No tienes permiso para acceder a este pad", "pad.permissionDenied": "No tienes permiso para acceder a este pad",
"pad.settings.padSettings": "Configuración del pad", "pad.settings.padSettings": "Configuración del pad",
"pad.settings.myView": "Preferencias personales", "pad.settings.myView": "Preferencias personales",
@ -98,7 +99,7 @@
"pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportword": "Microsoft Word",
"pad.importExport.exportpdf": "PDF", "pad.importExport.exportpdf": "PDF",
"pad.importExport.exportopen": "ODF (Open Document Format)", "pad.importExport.exportopen": "ODF (Open Document Format)",
"pad.importExport.abiword.innerHTML": "Solo es posible importar texto sin formato o en HTML. Para obtener funciones de importación más avanzadas es necesario <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-with-AbiWord\">instalar AbiWord</a>.", "pad.importExport.abiword.innerHTML": "Solo se puede importar desde texto plano o formatos HTML. Para obtener funciones de importación más avanzadas, <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-with-AbiWord\">instale AbiWord o LibreOffice</a>.",
"pad.modals.connected": "Conectado.", "pad.modals.connected": "Conectado.",
"pad.modals.reconnecting": "Reconectando a tu pad...", "pad.modals.reconnecting": "Reconectando a tu pad...",
"pad.modals.forcereconnect": "Forzar reconexión", "pad.modals.forcereconnect": "Forzar reconexión",

View file

@ -10,7 +10,7 @@
"Xabier Armendaritz" "Xabier Armendaritz"
] ]
}, },
"admin.page-title": "Admin Aginte-panela - Etherpad", "admin.page-title": "Kudeaketa panela - Etherpad",
"admin_plugins": "Plugin-en kudeaketa", "admin_plugins": "Plugin-en kudeaketa",
"admin_plugins.available": "Eskuragarri dauden plugin-ak", "admin_plugins.available": "Eskuragarri dauden plugin-ak",
"admin_plugins.available_not-found": "Ez da plugin-ik aurkitu", "admin_plugins.available_not-found": "Ez da plugin-ik aurkitu",

View file

@ -68,7 +68,7 @@
"pad.settings.chatandusers": "Ammustra sa tzarrada e is utentes", "pad.settings.chatandusers": "Ammustra sa tzarrada e is utentes",
"pad.settings.colorcheck": "Colores de autoria", "pad.settings.colorcheck": "Colores de autoria",
"pad.settings.linenocheck": "Nùmeros de lìnia", "pad.settings.linenocheck": "Nùmeros de lìnia",
"pad.settings.rtlcheck": "Cuntenutu dae manca a dereta", "pad.settings.rtlcheck": "Boles lèghere su cuntenutu dae dereta a manca?",
"pad.settings.fontType": "Tipu de caràtere:", "pad.settings.fontType": "Tipu de caràtere:",
"pad.settings.fontType.normal": "Normale", "pad.settings.fontType.normal": "Normale",
"pad.settings.language": "Lìngua:", "pad.settings.language": "Lìngua:",

View file

@ -9,7 +9,8 @@
"Shangkuanlc", "Shangkuanlc",
"Shirayuki", "Shirayuki",
"Simon Shek", "Simon Shek",
"Wehwei" "Wehwei",
"Winston Sung"
] ]
}, },
"admin.page-title": "管理員面板 - Etherpad", "admin.page-title": "管理員面板 - Etherpad",
@ -134,7 +135,7 @@
"pad.chat.writeMessage.placeholder": "在此編寫您的訊息", "pad.chat.writeMessage.placeholder": "在此編寫您的訊息",
"timeslider.followContents": "關注記事本內容更新", "timeslider.followContents": "關注記事本內容更新",
"timeslider.pageTitle": "{{appTitle}}時間軸", "timeslider.pageTitle": "{{appTitle}}時間軸",
"timeslider.toolbar.returnbutton": "返回記事本", "timeslider.toolbar.returnbutton": "返回記事本",
"timeslider.toolbar.authors": "協作者:", "timeslider.toolbar.authors": "協作者:",
"timeslider.toolbar.authorsList": "無協作者", "timeslider.toolbar.authorsList": "無協作者",
"timeslider.toolbar.exportlink.title": "匯出", "timeslider.toolbar.exportlink.title": "匯出",

3151
src/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -31,7 +31,7 @@
], ],
"dependencies": { "dependencies": {
"async": "^3.2.4", "async": "^3.2.4",
"axios": "^1.4.0", "axios": "^1.5.0",
"clean-css": "^5.3.2", "clean-css": "^5.3.2",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"cross-spawn": "^7.0.3", "cross-spawn": "^7.0.3",
@ -39,11 +39,11 @@
"etherpad-require-kernel": "^1.0.15", "etherpad-require-kernel": "^1.0.15",
"etherpad-yajsml": "0.0.12", "etherpad-yajsml": "0.0.12",
"express": "4.18.2", "express": "4.18.2",
"express-rate-limit": "^6.9.0", "express-rate-limit": "^7.0.1",
"express-session": "npm:@etherpad/express-session@^1.18.2", "express-session": "npm:@etherpad/express-session@^1.18.2",
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"find-root": "1.1.0", "find-root": "1.1.0",
"formidable": "^3.5.0", "formidable": "^3.5.1",
"http-errors": "^2.0.0", "http-errors": "^2.0.0",
"js-cookie": "^3.0.5", "js-cookie": "^3.0.5",
"jsdom": "^20.0.0", "jsdom": "^20.0.0",
@ -56,18 +56,18 @@
"npm": "^6.14.18", "npm": "^6.14.18",
"openapi-backend": "^5.9.2", "openapi-backend": "^5.9.2",
"proxy-addr": "^2.0.7", "proxy-addr": "^2.0.7",
"rate-limiter-flexible": "^2.4.2", "rate-limiter-flexible": "^3.0.0",
"rehype": "^12.0.1", "rehype": "^13.0.1",
"rehype-minify-whitespace": "^5.0.1", "rehype-minify-whitespace": "^6.0.0",
"resolve": "1.22.4", "resolve": "1.22.6",
"security": "1.0.0", "security": "1.0.0",
"semver": "^7.5.4", "semver": "^7.5.4",
"socket.io": "^2.5.0", "socket.io": "^2.5.0",
"superagent": "^8.1.1", "superagent": "^8.1.2",
"terser": "^5.19.2", "terser": "^5.20.0",
"threads": "^1.7.0", "threads": "^1.7.0",
"tinycon": "0.6.8", "tinycon": "0.6.8",
"ueberdb2": "^4.1.20", "ueberdb2": "^4.2.11",
"underscore": "1.13.6", "underscore": "1.13.6",
"unorm": "1.6.0", "unorm": "1.6.0",
"wtfnode": "^0.9.1" "wtfnode": "^0.9.1"
@ -78,16 +78,16 @@
"etherpad-lite": "node/server.js" "etherpad-lite": "node/server.js"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^8.47.0", "eslint": "^8.49.0",
"eslint-config-etherpad": "^3.0.21", "eslint-config-etherpad": "^3.0.22",
"etherpad-cli-client": "^2.0.2", "etherpad-cli-client": "^2.0.2",
"mocha": "^10.0.0", "mocha": "^10.0.0",
"mocha-froth": "^0.2.10", "mocha-froth": "^0.2.10",
"nodeify": "^1.0.1", "nodeify": "^1.0.1",
"openapi-schema-validation": "^0.4.2", "openapi-schema-validation": "^0.4.2",
"selenium-webdriver": "^4.11.1", "selenium-webdriver": "^4.12.0",
"set-cookie-parser": "^2.6.0", "set-cookie-parser": "^2.6.0",
"sinon": "^15.2.0", "sinon": "^16.0.0",
"split-grid": "^1.0.11", "split-grid": "^1.0.11",
"supertest": "^6.3.3", "supertest": "^6.3.3",
"typescript": "^4.9.5" "typescript": "^4.9.5"
@ -106,6 +106,6 @@
"test-container": "mocha --timeout 5000 tests/container/specs/api", "test-container": "mocha --timeout 5000 tests/container/specs/api",
"dev": "bash ./bin/run.sh" "dev": "bash ./bin/run.sh"
}, },
"version": "1.9.2", "version": "1.9.3",
"license": "Apache-2.0" "license": "Apache-2.0"
} }

View file

@ -318,7 +318,7 @@ exports.padeditbar = new class {
} }
} else { } else {
// Focus on the editbar :) // Focus on the editbar :)
const firstEditbarElement = parent.parent.$('#editbar button').first(); const firstEditbarElement = $('#editbar button').first();
$(evt.currentTarget).trigger('blur'); $(evt.currentTarget).trigger('blur');
firstEditbarElement.trigger('focus'); firstEditbarElement.trigger('focus');

View file

@ -51,7 +51,7 @@ exports.init = async function () {
// Start the Etherpad server on a random unused port. // Start the Etherpad server on a random unused port.
settings.port = 0; settings.port = 0;
settings.ip = 'localhost'; settings.ip = 'localhost';
settings.importExportRateLimiting = {max: 0}; settings.importExportRateLimiting = {max: 999999};
settings.commitRateLimiting = {duration: 0.001, points: 1e6}; settings.commitRateLimiting = {duration: 0.001, points: 1e6};
exports.httpServer = await server.start(); exports.httpServer = await server.start();
exports.baseUrl = `http://localhost:${exports.httpServer.address().port}`; exports.baseUrl = `http://localhost:${exports.httpServer.address().port}`;

View file

@ -15,6 +15,8 @@ try() { "$@" || fatal "'$@' failed"; }
MY_DIR=$(try cd "${0%/*}" && try pwd -P) || exit 1 MY_DIR=$(try cd "${0%/*}" && try pwd -P) || exit 1
try cd "${MY_DIR}/../../../.." try cd "${MY_DIR}/../../../.."
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 100000000/' -i settings.json.template
try sed -e ' try sed -e '
s!"loadTest":[^,]*!"loadTest": true! s!"loadTest":[^,]*!"loadTest": true!
# Reduce rate limit aggressiveness # Reduce rate limit aggressiveness