ep_webrtc 2.3.18 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
- name: "Backend tests"
1
+ name: Backend Tests
2
2
 
3
3
  # any branch is useful for testing before a PR is submitted
4
- on: [push, pull_request]
4
+ on:
5
+ workflow_call:
5
6
 
6
7
  jobs:
7
8
  withplugins:
@@ -12,66 +13,80 @@ jobs:
12
13
  || (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
13
14
  name: with Plugins
14
15
  runs-on: ubuntu-latest
15
-
16
16
  steps:
17
17
  -
18
18
  name: Install libreoffice
19
- run: |
20
- sudo add-apt-repository -y ppa:libreoffice/ppa
21
- sudo apt update
22
- sudo apt install -y --no-install-recommends libreoffice libreoffice-pdfimport
19
+ uses: awalsh128/cache-apt-pkgs-action@v1.4.2
20
+ with:
21
+ packages: libreoffice libreoffice-pdfimport
22
+ version: 1.0
23
23
  -
24
24
  name: Install etherpad core
25
25
  uses: actions/checkout@v3
26
26
  with:
27
27
  repository: ether/etherpad-lite
28
+ path: etherpad-lite
29
+ - uses: pnpm/action-setup@v4
30
+ name: Install pnpm
31
+ with:
32
+ version: 8
33
+ run_install: false
34
+ - name: Get pnpm store directory
35
+ shell: bash
36
+ run: |
37
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
38
+ - uses: actions/cache@v4
39
+ name: Setup pnpm cache
40
+ with:
41
+ path: ${{ env.STORE_PATH }}
42
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
43
+ restore-keys: |
44
+ ${{ runner.os }}-pnpm-store-
28
45
  -
29
46
  name: Checkout plugin repository
30
47
  uses: actions/checkout@v3
31
48
  with:
32
- path: ./node_modules/__tmp
49
+ path: plugin
33
50
  -
34
51
  name: Determine plugin name
35
52
  id: plugin_name
53
+ working-directory: ./plugin
36
54
  run: |
37
- cd ./node_modules/__tmp
38
55
  npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
39
56
  -
40
- name: Rename plugin directory
57
+ name: Link plugin directory
58
+ working-directory: ./plugin
41
59
  run: |
42
- mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
43
- env:
44
- PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
60
+ pnpm link --global
61
+ - name: Remove tests
62
+ working-directory: ./etherpad-lite
63
+ run: rm -rf ./src/tests/backend/specs
45
64
  -
46
- uses: actions/setup-node@v3
47
- with:
48
- node-version: 20
49
- cache: 'npm'
50
- cache-dependency-path: |
51
- src/package-lock.json
52
- src/bin/doc/package-lock.json
53
- node_modules/${{ steps.plugin_name.outputs.plugin_name }}/package-lock.json
54
- - run: npm install npm@6.14.18 -g
55
- name: Install legacy npm for correct dependency resolution
56
- -
57
- name: Install plugin dependencies
65
+ name: Install Etherpad core dependencies
66
+ working-directory: ./etherpad-lite
67
+ run: bin/installDeps.sh
68
+ - name: Link plugin to etherpad-lite
69
+ working-directory: ./etherpad-lite
58
70
  run: |
59
- cd ./node_modules/"${PLUGIN_NAME}"
60
- npm ci
71
+ pnpm link --global $PLUGIN_NAME
72
+ pnpm run install-plugins --path ../../plugin
61
73
  env:
62
74
  PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
63
- # Etherpad core dependencies must be installed after installing the
64
- # plugin's dependencies, otherwise npm will try to hoist common
65
- # dependencies by removing them from src/node_modules and installing them
66
- # in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
67
- # to be buggy, because it sometimes removes dependencies from
68
- # src/node_modules but fails to add them to the top-level node_modules.
69
- # Even if npm correctly hoists the dependencies, the hoisting seems to
70
- # confuse tools such as `npm outdated`, `npm update`, and some ESLint
71
- # rules.
72
- -
73
- name: Install Etherpad core dependencies
74
- run: src/bin/installDeps.sh
75
+ - name: Link ep_etherpad-lite
76
+ working-directory: ./etherpad-lite/src
77
+ run: |
78
+ pnpm link --global
79
+ - name: Link etherpad to plugin
80
+ working-directory: ./plugin
81
+ run: |
82
+ pnpm link --global ep_etherpad-lite
75
83
  -
76
84
  name: Run the backend tests
77
- run: cd src && npm test
85
+ working-directory: ./etherpad-lite
86
+ run: |
87
+ res=$(find .. -path "./node_modules/ep_*/static/tests/backend/specs/**" | wc -l)
88
+ if [ $res -eq 0 ]; then
89
+ echo "No backend tests found"
90
+ else
91
+ pnpm run test
92
+ fi
@@ -27,15 +27,15 @@ jobs:
27
27
  uses: actions/checkout@v3
28
28
 
29
29
  - name: Initialize CodeQL
30
- uses: github/codeql-action/init@v2
30
+ uses: github/codeql-action/init@v3
31
31
  with:
32
32
  languages: ${{ matrix.language }}
33
33
  queries: +security-and-quality
34
34
 
35
35
  - name: Autobuild
36
- uses: github/codeql-action/autobuild@v2
36
+ uses: github/codeql-action/autobuild@v3
37
37
 
38
38
  - name: Perform CodeQL Analysis
39
- uses: github/codeql-action/analyze@v2
39
+ uses: github/codeql-action/analyze@v3
40
40
  with:
41
41
  category: "/language:${{ matrix.language }}"
@@ -1,35 +1,36 @@
1
1
  # Publicly credit Sauce Labs because they generously support open source
2
2
  # projects.
3
- name: "frontend tests powered by Sauce Labs"
3
+ name: Frontend Tests
4
4
 
5
- on: [push]
5
+ on:
6
+ workflow_call:
6
7
 
7
8
  jobs:
8
- test:
9
+ test-frontend:
9
10
  runs-on: ubuntu-latest
10
- if: ${{ github.actor != 'dependabot[bot]' }}
11
+
11
12
  steps:
12
- -
13
- name: Generate Sauce Labs strings
14
- id: sauce_strings
15
- run: |
16
- printf %s\\n '::set-output name=name::${{github.event.repository.name}} ${{ github.workflow }} - ${{ github.job }}'
17
- printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
18
13
  -
19
14
  name: Check out Etherpad core
20
15
  uses: actions/checkout@v3
21
16
  with:
22
17
  repository: ether/etherpad-lite
23
- -
24
- uses: actions/setup-node@v3
18
+ - uses: pnpm/action-setup@v4
19
+ name: Install pnpm
25
20
  with:
26
- node-version: 20
27
- cache: 'npm'
28
- cache-dependency-path: |
29
- src/package-lock.json
30
- src/bin/doc/package-lock.json
31
- - run: npm install npm@6.14.18 -g
32
- name: Install legacy npm for correct dependency resolution
21
+ version: 8
22
+ run_install: false
23
+ - name: Get pnpm store directory
24
+ shell: bash
25
+ run: |
26
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
27
+ - uses: actions/cache@v4
28
+ name: Setup pnpm cache
29
+ with:
30
+ path: ${{ env.STORE_PATH }}
31
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
32
+ restore-keys: |
33
+ ${{ runner.os }}-pnpm-store-
33
34
  -
34
35
  name: Check out the plugin
35
36
  uses: actions/checkout@v3
@@ -59,7 +60,7 @@ jobs:
59
60
  PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
60
61
  run: |
61
62
  cd ./node_modules/"${PLUGIN_NAME}"
62
- npm ci
63
+ pnpm i
63
64
  # Etherpad core dependencies must be installed after installing the
64
65
  # plugin's dependencies, otherwise npm will try to hoist common
65
66
  # dependencies by removing them from src/node_modules and installing them
@@ -71,31 +72,23 @@ jobs:
71
72
  # rules.
72
73
  -
73
74
  name: Install Etherpad core dependencies
74
- run: src/bin/installDeps.sh
75
- -
76
- name: Create settings.json
77
- run: cp settings.json.template settings.json
78
- -
79
- name: Disable import/export rate limiting
80
- run: |
81
- sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
82
- -
83
- name: Remove standard frontend test files
84
- run: rm -rf src/tests/frontend/specs
85
- -
86
- uses: saucelabs/sauce-connect-action@v2.1.1
87
- with:
88
- username: ${{ secrets.SAUCE_USERNAME }}
89
- accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
90
- tunnelIdentifier: ${{ steps.sauce_strings.outputs.tunnel_id }}
91
- -
92
- name: Run the frontend tests
75
+ run: bin/installDeps.sh
76
+ - name: Create settings.json
77
+ run: cp ./src/tests/settings.json settings.json
78
+ - name: Run the frontend tests
93
79
  shell: bash
94
- env:
95
- SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
96
- SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
97
- SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
98
- TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
99
- GIT_HASH: ${{ steps.environment.outputs.sha_short }}
100
80
  run: |
101
- src/tests/frontend/travis/runner.sh
81
+ pnpm run dev &
82
+ connected=false
83
+ can_connect() {
84
+ curl -sSfo /dev/null http://localhost:9001/ || return 1
85
+ connected=true
86
+ }
87
+ now() { date +%s; }
88
+ start=$(now)
89
+ while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
90
+ sleep 1
91
+ done
92
+ cd src
93
+ pnpm exec playwright install chromium --with-deps
94
+ pnpm run test-ui --project=chromium
@@ -4,92 +4,40 @@
4
4
  name: Node.js Package
5
5
 
6
6
  on:
7
- pull_request:
8
- push:
9
- branches:
10
- - main
11
- - master
7
+ workflow_call:
12
8
 
13
9
  jobs:
14
- test:
10
+ publish-npm:
15
11
  runs-on: ubuntu-latest
16
12
  steps:
17
- # Clone ether/etherpad-lite to ../etherpad-lite so that ep_etherpad-lite
18
- # can be "installed" in this plugin's node_modules. The checkout v2 action
19
- # doesn't support cloning outside of $GITHUB_WORKSPACE (see
20
- # https://github.com/actions/checkout/issues/197), so the repo is first
21
- # cloned to etherpad-lite then moved to ../etherpad-lite. To avoid
22
- # conflicts with this plugin's clone, etherpad-lite must be cloned and
23
- # moved out before this plugin's repo is cloned to $GITHUB_WORKSPACE.
24
- -
13
+ - uses: actions/setup-node@v4
14
+ with:
15
+ node-version: 20
16
+ registry-url: https://registry.npmjs.org/
17
+ - name: Check out Etherpad core
25
18
  uses: actions/checkout@v3
26
19
  with:
27
20
  repository: ether/etherpad-lite
28
- path: etherpad-lite
29
- -
30
- run: mv etherpad-lite ..
31
- # etherpad-lite has been moved outside of $GITHUB_WORKSPACE, so it is now
32
- # safe to clone this plugin's repo to $GITHUB_WORKSPACE.
33
- -
34
- uses: actions/checkout@v3
35
- # This is necessary for actions/setup-node because '..' can't be used in
36
- # cache-dependency-path.
37
- -
38
- name: Create ep_etherpad-lite symlink
21
+ - uses: pnpm/action-setup@v4
22
+ name: Install pnpm
23
+ with:
24
+ version: 8
25
+ run_install: false
26
+ - name: Get pnpm store directory
27
+ shell: bash
39
28
  run: |
40
- mkdir -p node_modules
41
- ln -s ../../etherpad-lite/src node_modules/ep_etherpad-lite
42
- -
43
- uses: actions/setup-node@v3
29
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
30
+ - uses: actions/cache@v4
31
+ name: Setup pnpm cache
44
32
  with:
45
- node-version: 20
46
- cache: 'npm'
47
- cache-dependency-path: |
48
- node_modules/ep_etherpad-lite/package-lock.json
49
- node_modules/ep_etherpad-lite/bin/doc/package-lock.json
50
- package-lock.json
51
- - run: npm install npm@6.14.18 -g
52
- name: Install legacy npm for correct dependency resolution
53
- # All of ep_etherpad-lite's devDependencies are installed because the
54
- # plugin might do `require('ep_etherpad-lite/node_modules/${devDep}')`.
55
- # Eventually it would be nice to create an ESLint plugin that prohibits
56
- # Etherpad plugins from piggybacking off of ep_etherpad-lite's
57
- # devDependencies. If we had that, we could change this line to only
58
- # install production dependencies.
59
- -
60
- run: cd ../etherpad-lite/src && npm ci
61
- -
62
- run: npm ci
63
- # This runs some sanity checks and creates a symlink at
64
- # node_modules/ep_etherpad-lite that points to ../../etherpad-lite/src.
65
- # This step must be done after `npm ci` installs the plugin's dependencies
66
- # because npm "helpfully" cleans up such symlinks. :( Installing
67
- # ep_etherpad-lite in the plugin's node_modules prevents lint errors and
68
- # unit test failures if the plugin does `require('ep_etherpad-lite/foo')`.
69
- -
70
- run: npm install --no-save ep_etherpad-lite@file:../etherpad-lite/src
71
- -
72
- run: npm test
73
- -
74
- run: npm run lint
75
-
76
- publish-npm:
77
- if: github.event_name == 'push'
78
- needs: test
79
- runs-on: ubuntu-latest
80
- steps:
33
+ path: ${{ env.STORE_PATH }}
34
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
35
+ restore-keys: |
36
+ ${{ runner.os }}-pnpm-store-
81
37
  -
82
38
  uses: actions/checkout@v3
83
39
  with:
84
40
  fetch-depth: 0
85
- -
86
- uses: actions/setup-node@v3
87
- with:
88
- node-version: 20
89
- registry-url: https://registry.npmjs.org/
90
- cache: 'npm'
91
- - run: npm install npm@6.14.18 -g
92
- name: Install legacy npm for correct dependency resolution
93
41
  -
94
42
  name: Bump version (patch)
95
43
  run: |
@@ -98,13 +46,13 @@ jobs:
98
46
  [ "${NEW_COMMITS}" -gt 0 ] || exit 0
99
47
  git config user.name 'github-actions[bot]'
100
48
  git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
101
- npm ci
102
- npm version patch
49
+ pnpm i
50
+ pnpm version patch
103
51
  git push --follow-tags
104
52
  # This is required if the package has a prepare script that uses something
105
53
  # in dependencies or devDependencies.
106
54
  -
107
- run: npm ci
55
+ run: pnpm i
108
56
  # `npm publish` must come after `git push` otherwise there is a race
109
57
  # condition: If two PRs are merged back-to-back then master/main will be
110
58
  # updated with the commits from the second PR before the first PR's
@@ -116,11 +64,11 @@ jobs:
116
64
  # back-to-back merges will cause the first merge's workflow to fail but
117
65
  # the second's will succeed.
118
66
  -
119
- run: npm publish
120
- env:
121
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
122
- -
123
- name: Add package to etherpad organization
124
- run: npm access grant read-write etherpad:developers
67
+ run: pnpm publish
125
68
  env:
126
69
  NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
70
+ #-
71
+ # name: Add package to etherpad organization
72
+ # run: pnpm access grant read-write etherpad:developers
73
+ # env:
74
+ # NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
@@ -0,0 +1,18 @@
1
+ name: Node.js Package
2
+ on: [push]
3
+
4
+
5
+ jobs:
6
+ backend:
7
+ uses: ./.github/workflows/backend-tests.yml
8
+ secrets: inherit
9
+ frontend:
10
+ uses: ./.github/workflows/frontend-tests.yml
11
+ secrets: inherit
12
+ release:
13
+ if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
14
+ needs:
15
+ - backend
16
+ - frontend
17
+ uses: ./.github/workflows/npmpublish.yml
18
+ secrets: inherit
package/index.js CHANGED
@@ -66,15 +66,18 @@ const addContextToError = (err, pfx) => {
66
66
 
67
67
  // Copied from:
68
68
  // https://github.com/ether/etherpad-lite/blob/f95b09e0b6752a0d226d58d8b246831164dc9533/src/node/handler/PadMessageHandler.js#L1411-L1420
69
- const _getRoomSockets = (padId) => {
69
+ const _getRoomSockets = (padID) => {
70
70
  const ns = socketio.sockets; // Default namespace.
71
- const adapter = ns.adapter;
72
71
  // We could call adapter.clients(), but that method is unnecessarily asynchronous. Replicate what
73
72
  // it does here, but synchronously to avoid a race condition. This code will have to change when
74
73
  // we update to socket.io v3.
75
- const room = adapter.rooms[padId];
74
+ const room = ns.adapter.rooms?.get(padID);
75
+
76
76
  if (!room) return [];
77
- return Object.keys(room.sockets).map((id) => ns.connected[id]).filter((s) => s);
77
+
78
+ return Array.from(room)
79
+ .map((socketId) => ns.sockets.get(socketId))
80
+ .filter((socket) => socket);
78
81
  };
79
82
 
80
83
  /**
@@ -98,12 +101,12 @@ const handleRTCMessage = (socket, payload) => {
98
101
  },
99
102
  };
100
103
  if (payload.to == null) {
101
- socket.to(padId).json.send(msg);
104
+ socket.to(padId).emit('message', msg);
102
105
  } else {
103
106
  for (const socket of _getRoomSockets(padId)) {
104
107
  const session = sessioninfos[socket.id];
105
108
  if (session && session.author === payload.to) {
106
- socket.json.send(msg);
109
+ socket.emit('message', msg);
107
110
  break;
108
111
  }
109
112
  }
package/locales/diq.json CHANGED
@@ -1,11 +1,20 @@
1
1
  {
2
2
  "@metadata": {
3
3
  "authors": [
4
- "1917 Ekim Devrimi"
4
+ "1917 Ekim Devrimi",
5
+ "GolyatGeri"
5
6
  ]
6
7
  },
7
8
  "ep_webrtc_settings_enablertc": "Vengın/Videoyın mewbeti aktiv ke",
8
9
  "ep_webrtc_error_ssl": "Malesef , misalê Etherpad de karnayışê WebRTC'yi re sertifikay SSL barkerdış ganiyo.",
10
+ "ep_webrtc_error_permission_cam": "Mısade resayışê kameray nêgeriyao.",
11
+ "ep_webrtc_error_permission_mic": "Mısade resayışê mikrofoni nêgeriyao.",
12
+ "ep_webrtc_error_permission_cammic": "Mısade resayışê kameray u mikrofoni nêgeriyao.",
13
+ "ep_webrtc_error_permission_screen": "Mısade resayışê ekrani nêgeriyao.",
14
+ "ep_webrtc_error_notFound_cam": "Nêreseyao kamera",
15
+ "ep_webrtc_error_notFound_mic": "Nêreseyao mikrofoni",
16
+ "ep_webrtc_error_notFound_cammic": "Nêreseyao kamera u mikrofoni",
17
+ "ep_webrtc_error_notFound_screen": "Nêreseyao ekran",
9
18
  "ep_webrtc_error_notReadable": "Malesef, kamera u/yana mikrofoni resayışi vındarnen yew xetay hardwarey veciyê:",
10
19
  "ep_webrtc_error_otherCantAccess": "Malesef, resayışê browseri ra kamera u mikrofoni rê çıniyo. Kerem kerê eyaranê browserê ho de mısadeyan kontrol kerê. Gerek ke xetay hardwarey nêbo:",
11
20
  "ep_webrtc_settings_audioenabledonstart": "Sıftekerdış de veng AKERDE",
@@ -0,0 +1,21 @@
1
+ {
2
+ "@metadata": {
3
+ "authors": [
4
+ "Atriwidada"
5
+ ]
6
+ },
7
+ "ep_webrtc_settings_enablertc": "Fungsikan Obrolan Audio/Video",
8
+ "ep_webrtc_error_ssl": "TLS (https) diperlukan untuk memakai WebRTC.",
9
+ "ep_webrtc_error_permission_cam": "Gagal mendapatkan izin untuk mengakses kamera Anda.",
10
+ "ep_webrtc_error_permission_mic": "Gagal mendapatkan izin untuk mengakses mikrofon Anda.",
11
+ "ep_webrtc_error_permission_cammic": "Gagal mendapat izin untuk mengakses kamera dan mikrofon Anda.",
12
+ "ep_webrtc_error_permission_screen": "Gagal mendapatkan izin untuk mengakses layar Anda.",
13
+ "ep_webrtc_error_notFound_cam": "Gagal mengakses kamera Anda.",
14
+ "ep_webrtc_error_notFound_mic": "Gagal mengakses mikrofon Anda.",
15
+ "ep_webrtc_error_notFound_cammic": "Gagal mengakses kamera dan mikrofon Anda.",
16
+ "ep_webrtc_error_notFound_screen": "Gagal mengakses layar Anda.",
17
+ "ep_webrtc_error_notReadable": "Maaf, suatu galat perangkat keras terjadi yang mencegah akses ke kamera dan/atau mikrofon Anda.",
18
+ "ep_webrtc_error_otherCantAccess": "Maaf, peramban tidak memiliki akses ke kamera dan/atau mikrofon Anda. Harap periksa izin dalam pengaturan peramban Anda. Ini sangat boleh jadi bukan suatu galat perangkat keras.",
19
+ "ep_webrtc_settings_audioenabledonstart": "Audio HIDUP saat Start",
20
+ "ep_webrtc_settings_videoenabledonstart": "Video HIDUP saat Start"
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "@metadata": {
3
+ "authors": [
4
+ "Nokeoo"
5
+ ]
6
+ },
7
+ "ep_webrtc_settings_enablertc": "Įgalinti garso / vaizdo pokalbius",
8
+ "ep_webrtc_error_ssl": "Norint naudoti WebRTC, reikalingas TLS (https).",
9
+ "ep_webrtc_error_permission_cam": "Nepavyko gauti leidimo pasiekti jūsų kamerą.",
10
+ "ep_webrtc_error_permission_mic": "Nepavyko gauti leidimo pasiekti jūsų mikrofoną.",
11
+ "ep_webrtc_error_permission_cammic": "Nepavyko gauti leidimo pasiekti jūsų kamerą ir mikrofoną.",
12
+ "ep_webrtc_error_permission_screen": "Nepavyko gauti leidimo pasiekti jūsų ekraną.",
13
+ "ep_webrtc_error_notFound_cam": "Nepavyko pasiekti jūsų kameros.",
14
+ "ep_webrtc_error_notFound_mic": "Nepavyko pasiekti jūsų mikrofono.",
15
+ "ep_webrtc_error_notFound_cammic": "Nepavyko pasiekti jūsų kameros ir mikrofono.",
16
+ "ep_webrtc_error_notFound_screen": "Nepavyko pasiekti jūsų ekrano.",
17
+ "ep_webrtc_error_notReadable": "Atsiprašau, įvyko techninė klaida, dėl kurios nepavyko pasiekti jūsų kameros ir (ar) mikrofono:",
18
+ "ep_webrtc_error_otherCantAccess": "Atsiprašome, naršyklė neturi prieigos prie jūsų kameros ir (ar) mikrofono. Patikrinkite leidimus naršyklės nustatymuose. Greičiausiai tai nėra įrangos klaida:",
19
+ "ep_webrtc_settings_audioenabledonstart": "Garsas ĮJUNGTAS pradžioje",
20
+ "ep_webrtc_settings_videoenabledonstart": "Vaizdas ĮJUNGTAS pradžioje"
21
+ }
package/locales/pt.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "@metadata": {
3
3
  "authors": [
4
- "Guilha"
4
+ "Guilha",
5
+ "Hamilton Abreu"
5
6
  ]
6
7
  },
7
8
  "ep_webrtc_settings_enablertc": "Ativar videochamada",
8
9
  "ep_webrtc_error_ssl": "Aviso, é necessária a instalação de certificados SSL para o Etherpad usar o WebRTC.",
9
10
  "ep_webrtc_error_notReadable": "Lamentamos, mas ocorreu um erro de hardware que impediu o acesso à câmara e/ou microfone:",
10
- "ep_webrtc_error_otherCantAccess": "O navegador não tem acesso à câmera e/ou microfone. Verifica as permissões nas configurações do teu navegador. Provavelmente não é um erro de hardware:",
11
+ "ep_webrtc_error_otherCantAccess": "O navegador não tem acesso à câmara e/ou microfone. Verifica as permissões nas configurações do teu navegador. Provavelmente não é um erro de hardware:",
11
12
  "ep_webrtc_settings_audioenabledonstart": "Ligar áudio ao iníciar",
12
13
  "ep_webrtc_settings_videoenabledonstart": "Ligar vídeo ao iníciar"
13
14
  }
@@ -3,11 +3,12 @@
3
3
  "authors": [
4
4
  "Crowley666",
5
5
  "GuoPC",
6
+ "HellojoeAoPS",
6
7
  "Zhang8569"
7
8
  ]
8
9
  },
9
10
  "ep_webrtc_settings_enablertc": "启用音频/视频聊天",
10
- "ep_webrtc_error_ssl": "TLShttps)要求使用WebRTC。",
11
+ "ep_webrtc_error_ssl": "使用 WebRTC 需要 TLS (https)。",
11
12
  "ep_webrtc_error_permission_cam": "无法获取访问摄像头的权限。",
12
13
  "ep_webrtc_error_permission_mic": "无法获取访问麦克风的权限。",
13
14
  "ep_webrtc_error_permission_cammic": "无法获取访问摄像头和麦克风的权限。",
package/package.json CHANGED
@@ -5,34 +5,31 @@
5
5
  "url": "git@github.com:ether/ep_webrtc.git",
6
6
  "type": "git"
7
7
  },
8
- "version": "2.3.18",
8
+ "version": "2.5.1",
9
9
  "description": "WebRTC based audio/video chat to Etherpad",
10
10
  "author": "John McLear <john@mclear.co.uk>",
11
11
  "contributors": [],
12
12
  "engines": {
13
- "node": ">=12.17.0"
13
+ "node": ">=18.0.0"
14
14
  },
15
15
  "dependencies": {
16
16
  "abort-controller": "^3.0.0",
17
17
  "lodash": "^4.17.21",
18
- "node-fetch": "^3.2.3"
18
+ "node-fetch": "^3.3.2"
19
19
  },
20
20
  "funding": {
21
21
  "type": "individual",
22
22
  "url": "https://etherpad.org/"
23
23
  },
24
24
  "devDependencies": {
25
- "eslint": "^8.11.0",
26
- "eslint-config-etherpad": "^3.0.9",
27
- "mocha": "^9.2.2",
28
- "typescript": "^4.6.2"
25
+ "eslint": "^8.57.0",
26
+ "eslint-config-etherpad": "^4.0.4",
27
+ "mocha": "^10.2.0",
28
+ "typescript": "^5.4.5"
29
29
  },
30
30
  "scripts": {
31
31
  "lint": "eslint .",
32
32
  "lint:fix": "eslint --fix .",
33
33
  "test": "mocha --recursive static/tests/backend/specs"
34
- },
35
- "peerDependencies": {
36
- "ep_etherpad-lite": ">=1.8.7"
37
34
  }
38
- }
35
+ }
@@ -1208,7 +1208,7 @@ exports.rtc = new class {
1208
1208
  type: 'STATS',
1209
1209
  data: {statName, type: 'RTC_MESSAGE'},
1210
1210
  };
1211
- this._pad.socket.json.send(msg);
1211
+ this._pad.socket.emit('message', msg);
1212
1212
  }
1213
1213
 
1214
1214
  sendMessage(to, data) {