ether / etherpad-lite

Etherpad: A modern really-real-time collaborative document editor.
http://docs.etherpad.org/
Apache License 2.0
16.46k stars 2.84k forks source link

Etherpad suddenly stopped to load and open server port #5716

Closed zentavr closed 1 year ago

zentavr commented 1 year ago

Describe the bug Etherpad suddenly stopped to load and open server port

To Reproduce I have the latest version for a lot of time and suddenly the nodejs server stopped to open the web port. I have a similar installation on other server and it still works. OS: Ubuntu 22.04 Node: v14.21.3 Log:

Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.183] [INFO] settings - #033[39mAll relative paths will be interpreted relative to the identified Etherpad base dir: /opt/etherpad/1.8.18
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.189] [INFO] settings - #033[39msettings loaded from: /opt/etherpad/1.8.18/settings.json
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.190] [INFO] settings - #033[39mNo credentials file found in /opt/etherpad/1.8.18/credentials.json. Ignoring.
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.193] [INFO] settings - #033[39mUsing skin "colibris" in dir: /opt/etherpad/1.8.18/src/static/skins/colibris
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.193] [INFO] settings - #033[39mSession key loaded from: /opt/etherpad/1.8.18/SESSIONKEY.txt
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.193] [INFO] settings - #033[39mRandom string used for versioning assets: 3fc8dc76
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.415] [INFO] server - #033[39mStarting Etherpad...
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.504] [INFO] plugins - #033[39mRunning npm to get a list of installed plugins...
Jun  4 04:42:33 pad etherpad[61370]: #033[32m[2023-06-04 04:42:33.592] [INFO] plugins - #033[39mnpm --version: 6.14.15
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.890] [INFO] plugins - #033[39mLoading plugin ep_adminpads2...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_align...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_comments_page...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_embedded_hyperlinks2...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_etherpad-lite...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_font_color...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.891] [INFO] plugins - #033[39mLoading plugin ep_font_family...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_font_size...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_hash_auth...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_headings2...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_image_upload...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_markdown...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_print...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_private_pad...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.892] [INFO] plugins - #033[39mLoading plugin ep_table_of_contents...
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.894] [INFO] plugins - #033[39mLoaded 15 plugins
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.961] [INFO] console - #033[39mNote: scrypt library could not be found. scrypt support will be disabled.
Jun  4 04:42:36 pad etherpad[61370]: #033[32m[2023-06-04 04:42:36.961] [INFO] console - #033[39mRun "npm install scrypt" to enable scrypt
Jun  4 04:42:37 pad etherpad[61370]: #033[32m[2023-06-04 04:42:37.831] [INFO] APIHandler - #033[39mApi key file read from: "/opt/etherpad/1.8.18/APIKEY.txt"
Jun  4 04:42:37 pad etherpad[61370]: #033[32m[2023-06-04 04:42:37.980] [INFO] server - #033[39mInstalled plugins: ep_adminpads2@2.1.57, ep_align@0.3.53, ep_embedded_hyperlinks2@1.2.4, ep_comments_page@1.0.5, ep_font_family@0.5.41, ep_font_size@0.4.44, ep_headings2@0.2.44, ep_font_color@0.0.63, ep_image_upload@1.0.101, ep_markdown@0.1.50, ep_private_pad@1.0.2, ep_table_of_contents@0.3.42, ep_print@0.1.9, ep_hash_auth@3.0.18
Jun  4 04:42:37 pad etherpad[61370]: #033[32m[2023-06-04 04:42:37.991] [INFO] console - #033[39mReport bugs at https://github.com/ether/etherpad-lite/issues
Jun  4 04:42:37 pad etherpad[61370]: #033[32m[2023-06-04 04:42:37.992] [INFO] console - #033[39mYour Etherpad version is 1.8.18 (4b96ff6)
Jun  4 04:42:38 pad etherpad[61370]: #033[31m[2023-06-04 04:42:38.922] [ERROR] console - #033[39m(node:61370) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.
Jun  4 04:42:38 pad etherpad[61370]: Please migrate your code to use AWS SDK for JavaScript (v3).
Jun  4 04:42:38 pad etherpad[61370]: For more information, check the migration guide at https://a.co/7PzMCcy
Jun  4 04:42:38 pad etherpad[61370]: (Use `node --trace-warnings ...` to show where the warning was created)

Config:

{
    "commitRateLimiting": {
        "duration": 1,
        "points": 10
    },
    "cookie": {
        "sameSite": "Lax"
    },
    "dbSettings": {
        "charset": "utf8mb4",
        "database": "paddb",
        "host": "localhost",
        "password": "PASSWORD123",
        "port": 3306,
        "user": "paduser"
    },
    "dbType": "mysql",
    "defaultPadText": "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!",
    "ep_hash_auth": {
        "displayname_ext": "/.displayname",
        "hash_adm": false,
        "hash_dig": "hex",
        "hash_dir": "/var/lib/etherpad/users",
        "hash_ext": "/.hash",
        "hash_typ": "sha512"
    },
    "ep_image_upload": {
        "fileTypes": [
            "jpeg",
            "jpg",
            "bmp",
            "gif",
            "png"
        ],
        "maxFileSize": 10000000
    },
    "ep_webrtc": {
        "audio": {
            "disabled": "soft"
        },
        "video": {
            "disabled": "soft"
        }
    },
    "exposeVersion": false,
    "favicon": "favicon.ico",
    "importExportRateLimiting": {
        "max": 10,
        "windowMs": 90000
    },
    "importMaxFileSize": 52428800,
    "ip": "127.0.0.1",
    "loadTest": false,
    "logconfig": {
        "appenders": [
            {
                "type": "console"
            }
        ]
    },
    "loglevel": "INFO",
    "minify": true,
    "port": 9001,
    "showSettingsInAdminPage": false,
    "skinName": "colibris",
    "skinVariants": "super-light-toolbar super-light-editor light-background",
    "socketIo": {
        "maxHttpBufferSize": 10000
    },
    "socketTransportProtocols": [
        "xhr-polling",
        "jsonp-polling",
        "htmlfile"
    ],
    "title": "ThePad",
    "trustProxy": true,
    "users": {
        "rsadm": {
            "hash": "$2a$12$7d2moZjzuBRTFewkPuv0luQDPOVwyompBwtEd4b2g1Zh.BFryKKa6",
            "is_admin": true
        }
    }
}
zentavr commented 1 year ago

I had copied the whole dir from my latest installation (with node_modules and so on). seems like if you currently install 1.8.18 from the repo - it won't start because of node dependencies.

zentavr commented 1 year ago

npm list hwich works:

/opt/etherpad/1.8.18
├─┬ argon2@0.30.3
│ ├─┬ @mapbox/node-pre-gyp@1.0.10
│ │ ├── detect-libc@2.0.1
│ │ ├─┬ https-proxy-agent@5.0.1
│ │ │ ├─┬ agent-base@6.0.2
│ │ │ │ └── debug@4.3.4 deduped
│ │ │ └─┬ debug@4.3.4
│ │ │   └── ms@2.1.2
│ │ ├─┬ make-dir@3.1.0
│ │ │ └── semver@6.3.0 extraneous
│ │ ├─┬ node-fetch@2.6.9
│ │ │ └─┬ whatwg-url@5.0.0
│ │ │   ├── tr46@0.0.3
│ │ │   └── webidl-conversions@3.0.1
│ │ ├─┬ nopt@5.0.0
│ │ │ └── abbrev@1.1.1
│ │ ├─┬ npmlog@5.0.1
│ │ │ ├─┬ are-we-there-yet@2.0.0
│ │ │ │ ├── delegates@1.0.0
│ │ │ │ └── readable-stream@3.6.2 deduped
│ │ │ ├── console-control-strings@1.1.0
│ │ │ ├─┬ gauge@3.0.2
│ │ │ │ ├── aproba@2.0.0
│ │ │ │ ├── color-support@1.1.3
│ │ │ │ ├── console-control-strings@1.1.0 deduped
│ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ ├── object-assign@4.1.1
│ │ │ │ ├── signal-exit@3.0.7
│ │ │ │ ├─┬ string-width@4.2.3
│ │ │ │ │ ├── emoji-regex@8.0.0
│ │ │ │ │ ├── is-fullwidth-code-point@3.0.0
│ │ │ │ │ └── strip-ansi@6.0.1 deduped
│ │ │ │ ├─┬ strip-ansi@6.0.1
│ │ │ │ │ └── ansi-regex@5.0.1
│ │ │ │ └─┬ wide-align@1.1.5
│ │ │ │   └── string-width@4.2.3 deduped
│ │ │ └── set-blocking@2.0.0
│ │ ├─┬ rimraf@3.0.2
│ │ │ └─┬ glob@7.2.3
│ │ │   ├── fs.realpath@1.0.0
│ │ │   ├─┬ inflight@1.0.6
│ │ │   │ ├── once@1.4.0 deduped
│ │ │   │ └── wrappy@1.0.2 deduped
│ │ │   ├── inherits@2.0.4 deduped
│ │ │   ├─┬ minimatch@3.1.2
│ │ │   │ └─┬ brace-expansion@1.1.11
│ │ │   │   ├── balanced-match@1.0.2
│ │ │   │   └── concat-map@0.0.1
│ │ │   ├── once@1.4.0 deduped
│ │ │   └── path-is-absolute@1.0.1
│ │ ├─┬ semver@7.5.0
│ │ │ └─┬ lru-cache@6.0.0
│ │ │   └── yallist@4.0.0 deduped
│ │ └─┬ tar@6.1.13
│ │   ├── chownr@2.0.0
│ │   ├─┬ fs-minipass@2.1.0
│ │   │ └── minipass@3.3.6 extraneous
│ │   ├── minipass@4.2.8
│ │   ├─┬ minizlib@2.1.2
│ │   │ ├── minipass@3.3.6 extraneous
│ │   │ └── yallist@4.0.0 deduped
│ │   ├── mkdirp@1.0.4
│ │   └── yallist@4.0.0
│ ├── @phc/format@1.0.0
│ └── node-addon-api@5.1.0
├─┬ bcrypt@5.1.0
│ ├── @mapbox/node-pre-gyp@1.0.10 deduped
│ └── node-addon-api@5.1.0 deduped
├─┬ ep_adminpads2@2.1.57
│ └─┬ cheerio@0.22.0
│   ├─┬ css-select@1.2.0
│   │ ├── boolbase@1.0.0
│   │ ├── css-what@2.1.3
│   │ ├─┬ domutils@1.5.1
│   │ │ ├── dom-serializer@0.1.1 deduped
│   │ │ └── domelementtype@1.3.1 deduped
│   │ └─┬ nth-check@1.0.2
│   │   └── boolbase@1.0.0 deduped
│   ├─┬ dom-serializer@0.1.1
│   │ ├── domelementtype@1.3.1
│   │ └── entities@1.1.2 deduped
│   ├── entities@1.1.2
│   ├─┬ htmlparser2@3.10.1
│   │ ├── domelementtype@1.3.1 deduped
│   │ ├─┬ domhandler@2.4.2
│   │ │ └── domelementtype@1.3.1 deduped
│   │ ├── domutils@1.5.1 deduped
│   │ ├── entities@1.1.2 deduped
│   │ ├── inherits@2.0.4
│   │ └─┬ readable-stream@3.6.2
│   │   ├── inherits@2.0.4 deduped
│   │   ├─┬ string_decoder@1.3.0
│   │   │ └── safe-buffer@5.2.1
│   │   └── util-deprecate@1.0.2
│   ├── lodash.assignin@4.2.0
│   ├── lodash.bind@4.2.1
│   ├── lodash.defaults@4.2.0
│   ├── lodash.filter@4.6.0
│   ├── lodash.flatten@4.4.0
│   ├── lodash.foreach@4.5.0
│   ├── lodash.map@4.6.0
│   ├── lodash.merge@4.6.2
│   ├── lodash.pick@4.4.0
│   ├── lodash.reduce@4.6.0
│   ├── lodash.reject@4.6.0
│   └── lodash.some@4.6.0
├── ep_align@0.3.53
├─┬ ep_comments_page@1.0.5
│ ├── cheerio@0.22.0 deduped
│ ├─┬ formidable@2.1.1
│ │ ├─┬ dezalgo@1.0.4
│ │ │ ├── asap@2.0.6
│ │ │ └── wrappy@1.0.2
│ │ ├── hexoid@1.0.0
│ │ ├─┬ once@1.4.0
│ │ │ └── wrappy@1.0.2 deduped
│ │ └─┬ qs@6.11.1
│ │   └─┬ side-channel@1.0.4
│ │     ├─┬ call-bind@1.0.2
│ │     │ ├── function-bind@1.1.1
│ │     │ └── get-intrinsic@1.2.0 deduped
│ │     ├─┬ get-intrinsic@1.2.0
│ │     │ ├── function-bind@1.1.1 deduped
│ │     │ ├─┬ has@1.0.3
│ │     │ │ └── function-bind@1.1.1 deduped
│ │     │ └── has-symbols@1.0.3
│ │     └── object-inspect@1.12.3
│ └── underscore@1.13.6
├── ep_embedded_hyperlinks2@1.2.4
├─┬ ep_etherpad-lite@1.8.18 -> /opt/etherpad/1.8.18/src
│ ├── async@3.2.1 extraneous
│ ├── clean-css@5.2.1 extraneous
│ ├── cookie-parser@1.4.5 extraneous
│ ├── cross-spawn@7.0.3 extraneous
│ ├── ejs@3.1.6 extraneous
│ ├── eslint@7.32.0 extraneous
│ ├── eslint-config-etherpad@2.0.0 extraneous
│ ├── eslint-plugin-cypress@2.11.3 extraneous
│ ├── eslint-plugin-eslint-comments@3.2.0 extraneous
│ ├── eslint-plugin-mocha@9.0.0 extraneous
│ ├── eslint-plugin-node@11.1.0 extraneous
│ ├── eslint-plugin-prefer-arrow@1.2.3 extraneous
│ ├── eslint-plugin-promise@5.1.0 extraneous
│ ├── eslint-plugin-you-dont-need-lodash-underscore@6.12.0 extraneous
│ ├── etherpad-cli-client@0.1.12 extraneous
│ ├── etherpad-require-kernel@1.0.15 extraneous
│ ├── etherpad-yajsml@0.0.12 extraneous
│ ├── express@4.17.1 extraneous
│ ├── express-rate-limit@5.5.0 extraneous
│ ├── express-session@1.17.2 extraneous
│ ├── fast-deep-equal@3.1.3 extraneous
│ ├── find-root@1.1.0 extraneous
│ ├── formidable@1.2.2 extraneous
│ ├── http-errors@1.8.0 extraneous
│ ├── js-cookie@3.0.1 extraneous
│ ├── jsdom@17.0.0 extraneous
│ ├── jsonminify@0.4.1 extraneous
│ ├── languages4translatewiki@0.1.3 extraneous
│ ├── lodash.clonedeep@4.5.0 extraneous
│ ├── log4js@0.6.38 extraneous
│ ├── measured-core@2.0.0 extraneous
│ ├── mime-types@2.1.33 extraneous
│ ├── mocha@9.1.1 extraneous
│ ├── mocha-froth@0.2.10 extraneous
│ ├── nodeify@1.0.1 extraneous
│ ├── npm@6.14.15 extraneous
│ ├── openapi-backend@4.2.0 extraneous
│ ├── openapi-schema-validation@0.4.2 extraneous
│ ├── proxy-addr@2.0.7 extraneous
│ ├── rate-limiter-flexible@2.3.1 extraneous
│ ├── rehype@11.0.0 extraneous
│ ├── rehype-minify-whitespace@4.0.5 extraneous
│ ├── request@2.88.2 extraneous
│ ├── resolve@1.20.0 extraneous
│ ├── security@1.0.0 extraneous
│ ├── selenium-webdriver@4.0.0-rc-1 extraneous
│ ├── semver@7.3.5 extraneous
│ ├── set-cookie-parser@2.4.8 extraneous
│ ├── sinon@11.1.2 extraneous
│ ├── socket.io@2.4.1 extraneous
│ ├── split-grid@1.0.11 extraneous
│ ├── supertest@6.1.6 extraneous
│ ├── terser@5.9.0 extraneous
│ ├── threads@1.7.0 extraneous
│ ├── tiny-worker@2.3.0 extraneous
│ ├── tinycon@0.6.8 extraneous
│ ├── ueberdb2@2.2.4 extraneous
│ ├── underscore@1.13.1 extraneous
│ ├── unorm@1.6.0 extraneous
│ └── wtfnode@0.9.1 extraneous
├── ep_font_color@0.0.63
├── ep_font_family@0.5.41
├── ep_font_size@0.4.44
├── ep_hash_auth@3.0.18
├── ep_headings2@0.2.44
├─┬ ep_image_upload@1.0.99
│ ├─┬ busboy@0.3.1
│ │ └─┬ dicer@0.3.0
│ │   └── streamsearch@0.1.2
│ ├── lodash@4.17.21
│ ├── mime-db@1.49.0
│ ├─┬ stream_upload@0.0.6
│ │ ├─┬ aws-sdk@2.1360.0
│ │ │ ├─┬ buffer@4.9.2
│ │ │ │ ├── base64-js@1.5.1
│ │ │ │ ├── ieee754@1.1.13 deduped
│ │ │ │ └── isarray@1.0.0
│ │ │ ├── events@1.1.1
│ │ │ ├── ieee754@1.1.13
│ │ │ ├── jmespath@0.16.0
│ │ │ ├── querystring@0.2.0
│ │ │ ├── sax@1.2.1
│ │ │ ├─┬ url@0.10.3
│ │ │ │ ├── punycode@1.3.2
│ │ │ │ └── querystring@0.2.0 deduped
│ │ │ ├─┬ util@0.12.5
│ │ │ │ ├── inherits@2.0.4 deduped
│ │ │ │ ├─┬ is-arguments@1.1.1
│ │ │ │ │ ├── call-bind@1.0.2 deduped
│ │ │ │ │ └─┬ has-tostringtag@1.0.0
│ │ │ │ │   └── has-symbols@1.0.3 deduped
│ │ │ │ ├─┬ is-generator-function@1.0.10
│ │ │ │ │ └── has-tostringtag@1.0.0 deduped
│ │ │ │ ├─┬ is-typed-array@1.1.10
│ │ │ │ │ ├── available-typed-arrays@1.0.5
│ │ │ │ │ ├── call-bind@1.0.2 deduped
│ │ │ │ │ ├─┬ for-each@0.3.3
│ │ │ │ │ │ └── is-callable@1.2.7
│ │ │ │ │ ├─┬ gopd@1.0.1
│ │ │ │ │ │ └── get-intrinsic@1.2.0 deduped
│ │ │ │ │ └── has-tostringtag@1.0.0 deduped
│ │ │ │ └─┬ which-typed-array@1.1.9
│ │ │ │   ├── available-typed-arrays@1.0.5 deduped
│ │ │ │   ├── call-bind@1.0.2 deduped
│ │ │ │   ├── for-each@0.3.3 deduped
│ │ │ │   ├── gopd@1.0.1 deduped
│ │ │ │   ├── has-tostringtag@1.0.0 deduped
│ │ │ │   └── is-typed-array@1.1.10 deduped
│ │ │ ├── uuid@8.0.0 extraneous
│ │ │ └─┬ xml2js@0.5.0
│ │ │   ├── sax@1.2.1 deduped
│ │ │   └── xmlbuilder@11.0.1
│ │ ├─┬ fs-extra@5.0.0
│ │ │ ├── graceful-fs@4.2.11
│ │ │ ├─┬ jsonfile@4.0.0
│ │ │ │ └── graceful-fs@4.2.11 deduped
│ │ │ └── universalify@0.1.2
│ │ ├─┬ mime-types@2.1.35
│ │ │ └── mime-db@1.52.0 extraneous
│ │ ├── underscore@1.13.6 deduped
│ │ └── uuid@3.4.0 extraneous
│ └── uuid@8.3.2
├─┬ ep_markdown@0.1.50
│ └─┬ showdown@2.1.0
│   └── commander@9.5.0
├── ep_print@0.1.9
└── ep_table_of_contents@0.3.42

npm ERR! extraneous: semver@6.3.0 /opt/etherpad/1.8.18/node_modules/make-dir/node_modules/semver
npm ERR! extraneous: minipass@3.3.6 /opt/etherpad/1.8.18/node_modules/fs-minipass/node_modules/minipass
npm ERR! extraneous: minipass@3.3.6 /opt/etherpad/1.8.18/node_modules/minizlib/node_modules/minipass
npm ERR! extraneous: eslint@7.32.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint
npm ERR! extraneous: eslint-config-etherpad@2.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-config-etherpad
npm ERR! extraneous: eslint-plugin-cypress@2.11.3 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-cypress
npm ERR! extraneous: eslint-plugin-eslint-comments@3.2.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-eslint-comments
npm ERR! extraneous: eslint-plugin-mocha@9.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-mocha
npm ERR! extraneous: eslint-plugin-node@11.1.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-node
npm ERR! extraneous: eslint-plugin-prefer-arrow@1.2.3 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-prefer-arrow
npm ERR! extraneous: eslint-plugin-promise@5.1.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-promise
npm ERR! extraneous: eslint-plugin-you-dont-need-lodash-underscore@6.12.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-you-dont-need-lodash-underscore
npm ERR! extraneous: etherpad-cli-client@0.1.12 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/etherpad-cli-client
npm ERR! extraneous: mocha@9.1.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/mocha
npm ERR! extraneous: mocha-froth@0.2.10 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/mocha-froth
npm ERR! extraneous: nodeify@1.0.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/nodeify
npm ERR! extraneous: openapi-schema-validation@0.4.2 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/openapi-schema-validation
npm ERR! extraneous: selenium-webdriver@4.0.0-rc-1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/selenium-webdriver
npm ERR! extraneous: set-cookie-parser@2.4.8 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/set-cookie-parser
npm ERR! extraneous: sinon@11.1.2 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/sinon
npm ERR! extraneous: split-grid@1.0.11 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/split-grid
npm ERR! extraneous: supertest@6.1.6 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/supertest
npm ERR! extraneous: async@3.2.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/async
npm ERR! extraneous: clean-css@5.2.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/clean-css
npm ERR! extraneous: cookie-parser@1.4.5 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/cookie-parser
npm ERR! extraneous: cross-spawn@7.0.3 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/cross-spawn
npm ERR! extraneous: ejs@3.1.6 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/ejs
npm ERR! extraneous: etherpad-require-kernel@1.0.15 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/etherpad-require-kernel
npm ERR! extraneous: etherpad-yajsml@0.0.12 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/etherpad-yajsml
npm ERR! extraneous: express@4.17.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/express
npm ERR! extraneous: express-rate-limit@5.5.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/express-rate-limit
npm ERR! extraneous: express-session@1.17.2 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/express-session
npm ERR! extraneous: fast-deep-equal@3.1.3 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/fast-deep-equal
npm ERR! extraneous: find-root@1.1.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/find-root
npm ERR! extraneous: formidable@1.2.2 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/formidable
npm ERR! extraneous: http-errors@1.8.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/http-errors
npm ERR! extraneous: js-cookie@3.0.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/js-cookie
npm ERR! extraneous: jsdom@17.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/jsdom
npm ERR! extraneous: jsonminify@0.4.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/jsonminify
npm ERR! extraneous: languages4translatewiki@0.1.3 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/languages4translatewiki
npm ERR! extraneous: lodash.clonedeep@4.5.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/lodash.clonedeep
npm ERR! extraneous: log4js@0.6.38 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/log4js
npm ERR! extraneous: measured-core@2.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/measured-core
npm ERR! extraneous: mime-types@2.1.33 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/mime-types
npm ERR! extraneous: npm@6.14.15 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/npm
npm ERR! extraneous: openapi-backend@4.2.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/openapi-backend
npm ERR! extraneous: proxy-addr@2.0.7 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/proxy-addr
npm ERR! extraneous: rate-limiter-flexible@2.3.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/rate-limiter-flexible
npm ERR! extraneous: rehype@11.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/rehype
npm ERR! extraneous: rehype-minify-whitespace@4.0.5 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/rehype-minify-whitespace
npm ERR! extraneous: request@2.88.2 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/request
npm ERR! extraneous: resolve@1.20.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/resolve
npm ERR! extraneous: security@1.0.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/security
npm ERR! extraneous: semver@7.3.5 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/semver
npm ERR! extraneous: socket.io@2.4.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/socket.io
npm ERR! extraneous: terser@5.9.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/terser
npm ERR! extraneous: threads@1.7.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/threads
npm ERR! extraneous: tiny-worker@2.3.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/tiny-worker
npm ERR! extraneous: tinycon@0.6.8 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/tinycon
npm ERR! extraneous: ueberdb2@2.2.4 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/ueberdb2
npm ERR! extraneous: underscore@1.13.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/underscore
npm ERR! extraneous: unorm@1.6.0 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/unorm
npm ERR! extraneous: wtfnode@0.9.1 /opt/etherpad/1.8.18/node_modules/ep_etherpad-lite/node_modules/wtfnode
npm ERR! extraneous: uuid@8.0.0 /opt/etherpad/1.8.18/node_modules/aws-sdk/node_modules/uuid
npm ERR! extraneous: mime-db@1.52.0 /opt/etherpad/1.8.18/node_modules/mime-types/node_modules/mime-db
npm ERR! extraneous: uuid@3.4.0 /opt/etherpad/1.8.18/node_modules/stream_upload/node_modules/uuid

npm list which not work:

/opt/etherpad/1.8.18.bak
├─┬ argon2@0.30.3
│ ├─┬ @mapbox/node-pre-gyp@1.0.10
│ │ ├── detect-libc@2.0.1
│ │ ├─┬ https-proxy-agent@5.0.1
│ │ │ ├─┬ agent-base@6.0.2
│ │ │ │ └── debug@4.3.4 deduped
│ │ │ └─┬ debug@4.3.4
│ │ │   └── ms@2.1.2
│ │ ├─┬ make-dir@3.1.0
│ │ │ └── semver@6.3.0 extraneous
│ │ ├─┬ node-fetch@2.6.11
│ │ │ └─┬ whatwg-url@5.0.0
│ │ │   ├── tr46@0.0.3
│ │ │   └── webidl-conversions@3.0.1
│ │ ├─┬ nopt@5.0.0
│ │ │ └── abbrev@1.1.1
│ │ ├─┬ npmlog@5.0.1
│ │ │ ├─┬ are-we-there-yet@2.0.0
│ │ │ │ ├── delegates@1.0.0
│ │ │ │ └── readable-stream@3.6.2 deduped
│ │ │ ├── console-control-strings@1.1.0
│ │ │ ├─┬ gauge@3.0.2
│ │ │ │ ├── aproba@2.0.0
│ │ │ │ ├── color-support@1.1.3
│ │ │ │ ├── console-control-strings@1.1.0 deduped
│ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ ├── object-assign@4.1.1
│ │ │ │ ├── signal-exit@3.0.7
│ │ │ │ ├─┬ string-width@4.2.3
│ │ │ │ │ ├── emoji-regex@8.0.0
│ │ │ │ │ ├── is-fullwidth-code-point@3.0.0
│ │ │ │ │ └── strip-ansi@6.0.1 deduped
│ │ │ │ ├─┬ strip-ansi@6.0.1
│ │ │ │ │ └── ansi-regex@5.0.1
│ │ │ │ └─┬ wide-align@1.1.5
│ │ │ │   └── string-width@4.2.3 deduped
│ │ │ └── set-blocking@2.0.0
│ │ ├─┬ rimraf@3.0.2
│ │ │ └── glob@7.2.3 deduped
│ │ ├─┬ semver@7.5.1
│ │ │ └─┬ lru-cache@6.0.0
│ │ │   └── yallist@4.0.0 deduped
│ │ └─┬ tar@6.1.15
│ │   ├── chownr@2.0.0
│ │   ├─┬ fs-minipass@2.1.0
│ │   │ └── minipass@3.3.6 extraneous
│ │   ├── minipass@5.0.0
│ │   ├─┬ minizlib@2.1.2
│ │   │ ├── minipass@3.3.6 extraneous
│ │   │ └── yallist@4.0.0 deduped
│ │   ├── mkdirp@1.0.4
│ │   └── yallist@4.0.0
│ ├── @phc/format@1.0.0
│ └── node-addon-api@5.1.0
├─┬ bcrypt@5.1.0
│ ├── @mapbox/node-pre-gyp@1.0.10 deduped
│ └── node-addon-api@5.1.0 deduped
├─┬ ep_adminpads2@2.1.57
│ └─┬ cheerio@0.22.0
│   ├─┬ css-select@1.2.0
│   │ ├── boolbase@1.0.0
│   │ ├── css-what@2.1.3
│   │ ├─┬ domutils@1.5.1
│   │ │ ├── dom-serializer@0.1.1 deduped
│   │ │ └── domelementtype@1.3.1 deduped
│   │ └─┬ nth-check@1.0.2
│   │   └── boolbase@1.0.0 deduped
│   ├─┬ dom-serializer@0.1.1
│   │ ├── domelementtype@1.3.1
│   │ └── entities@1.1.2 deduped
│   ├── entities@1.1.2
│   ├─┬ htmlparser2@3.10.1
│   │ ├── domelementtype@1.3.1 deduped
│   │ ├─┬ domhandler@2.4.2
│   │ │ └── domelementtype@1.3.1 deduped
│   │ ├── domutils@1.5.1 deduped
│   │ ├── entities@1.1.2 deduped
│   │ ├── inherits@2.0.4
│   │ └─┬ readable-stream@3.6.2
│   │   ├── inherits@2.0.4 deduped
│   │   ├─┬ string_decoder@1.3.0
│   │   │ └── safe-buffer@5.2.1 deduped
│   │   └── util-deprecate@1.0.2
│   ├── lodash.assignin@4.2.0
│   ├── lodash.bind@4.2.1
│   ├── lodash.defaults@4.2.0
│   ├── lodash.filter@4.6.0
│   ├── lodash.flatten@4.4.0
│   ├── lodash.foreach@4.5.0
│   ├── lodash.map@4.6.0
│   ├── lodash.merge@4.6.2
│   ├── lodash.pick@4.4.0
│   ├── lodash.reduce@4.6.0
│   ├── lodash.reject@4.6.0
│   └── lodash.some@4.6.0
├── ep_align@0.3.53
├─┬ ep_comments_page@1.0.5
│ ├── cheerio@0.22.0 deduped
│ ├─┬ formidable@2.1.1
│ │ ├─┬ dezalgo@1.0.4
│ │ │ ├── asap@2.0.6
│ │ │ └── wrappy@1.0.2
│ │ ├── hexoid@1.0.0
│ │ ├─┬ once@1.4.0
│ │ │ └── wrappy@1.0.2 deduped
│ │ └─┬ qs@6.11.2
│ │   └─┬ side-channel@1.0.4
│ │     ├─┬ call-bind@1.0.2
│ │     │ ├── function-bind@1.1.1
│ │     │ └── get-intrinsic@1.2.1 deduped
│ │     ├─┬ get-intrinsic@1.2.1
│ │     │ ├── function-bind@1.1.1 deduped
│ │     │ ├─┬ has@1.0.3
│ │     │ │ └── function-bind@1.1.1 deduped
│ │     │ ├── has-proto@1.0.1
│ │     │ └── has-symbols@1.0.3
│ │     └── object-inspect@1.12.3
│ └── underscore@1.13.6
├── ep_embedded_hyperlinks2@1.2.4
├─┬ ep_etherpad-lite@1.8.18 -> /opt/etherpad/1.8.18.bak/src
│ ├── async@3.2.1 extraneous
│ ├── clean-css@5.2.1 extraneous
│ ├── cookie-parser@1.4.5 extraneous
│ ├── cross-spawn@7.0.3 extraneous
│ ├── ejs@3.1.6 extraneous
│ ├── eslint@7.32.0 extraneous
│ ├── eslint-config-etherpad@2.0.0 extraneous
│ ├── eslint-plugin-cypress@2.11.3 extraneous
│ ├── eslint-plugin-eslint-comments@3.2.0 extraneous
│ ├── eslint-plugin-mocha@9.0.0 extraneous
│ ├── eslint-plugin-node@11.1.0 extraneous
│ ├── eslint-plugin-prefer-arrow@1.2.3 extraneous
│ ├── eslint-plugin-promise@5.1.0 extraneous
│ ├── eslint-plugin-you-dont-need-lodash-underscore@6.12.0 extraneous
│ ├── etherpad-cli-client@0.1.12 extraneous
│ ├── etherpad-require-kernel@1.0.15 extraneous
│ ├── etherpad-yajsml@0.0.12 extraneous
│ ├── express@4.17.1 extraneous
│ ├── express-rate-limit@5.5.0 extraneous
│ ├── express-session@1.17.2 extraneous
│ ├── fast-deep-equal@3.1.3 extraneous
│ ├── find-root@1.1.0 extraneous
│ ├── formidable@1.2.2 extraneous
│ ├── http-errors@1.8.0 extraneous
│ ├── js-cookie@3.0.1 extraneous
│ ├── jsdom@17.0.0 extraneous
│ ├── jsonminify@0.4.1 extraneous
│ ├── languages4translatewiki@0.1.3 extraneous
│ ├── lodash.clonedeep@4.5.0 extraneous
│ ├── log4js@0.6.38 extraneous
│ ├── measured-core@2.0.0 extraneous
│ ├── mime-types@2.1.33 extraneous
│ ├── mocha@9.1.1 extraneous
│ ├── mocha-froth@0.2.10 extraneous
│ ├── nodeify@1.0.1 extraneous
│ ├── npm@6.14.15 extraneous
│ ├── openapi-backend@4.2.0 extraneous
│ ├── openapi-schema-validation@0.4.2 extraneous
│ ├── proxy-addr@2.0.7 extraneous
│ ├── rate-limiter-flexible@2.3.1 extraneous
│ ├── rehype@11.0.0 extraneous
│ ├── rehype-minify-whitespace@4.0.5 extraneous
│ ├── request@2.88.2 extraneous
│ ├── resolve@1.20.0 extraneous
│ ├── security@1.0.0 extraneous
│ ├── selenium-webdriver@4.0.0-rc-1 extraneous
│ ├── semver@7.3.5 extraneous
│ ├── set-cookie-parser@2.4.8 extraneous
│ ├── sinon@11.1.2 extraneous
│ ├── socket.io@2.4.1 extraneous
│ ├── split-grid@1.0.11 extraneous
│ ├── supertest@6.1.6 extraneous
│ ├── terser@5.9.0 extraneous
│ ├── threads@1.7.0 extraneous
│ ├── tiny-worker@2.3.0 extraneous
│ ├── tinycon@0.6.8 extraneous
│ ├── ueberdb2@2.2.4 extraneous
│ ├── underscore@1.13.1 extraneous
│ ├── unorm@1.6.0 extraneous
│ └── wtfnode@0.9.1 extraneous
├── ep_font_color@0.0.63
├── ep_font_family@0.5.41
├── ep_font_size@0.4.44
├── ep_hash_auth@3.0.18
├── ep_headings2@0.2.44
├─┬ ep_image_upload@1.0.101
│ ├─┬ busboy@0.3.1
│ │ └─┬ dicer@0.3.0
│ │   └── streamsearch@0.1.2
│ ├── lodash@4.17.21
│ ├── mime-db@1.49.0
│ ├─┬ stream_upload@0.0.6
│ │ ├─┬ aws-sdk@2.1390.0
│ │ │ ├─┬ buffer@4.9.2
│ │ │ │ ├── base64-js@1.5.1
│ │ │ │ ├── ieee754@1.1.13 deduped
│ │ │ │ └── isarray@1.0.0
│ │ │ ├── events@1.1.1
│ │ │ ├── ieee754@1.1.13
│ │ │ ├── jmespath@0.16.0
│ │ │ ├── querystring@0.2.0
│ │ │ ├── sax@1.2.1
│ │ │ ├─┬ url@0.10.3
│ │ │ │ ├── punycode@1.3.2
│ │ │ │ └── querystring@0.2.0 deduped
│ │ │ ├─┬ util@0.12.5
│ │ │ │ ├── inherits@2.0.4 deduped
│ │ │ │ ├─┬ is-arguments@1.1.1
│ │ │ │ │ ├── call-bind@1.0.2 deduped
│ │ │ │ │ └─┬ has-tostringtag@1.0.0
│ │ │ │ │   └── has-symbols@1.0.3 deduped
│ │ │ │ ├─┬ is-generator-function@1.0.10
│ │ │ │ │ └── has-tostringtag@1.0.0 deduped
│ │ │ │ ├─┬ is-typed-array@1.1.10
│ │ │ │ │ ├── available-typed-arrays@1.0.5
│ │ │ │ │ ├── call-bind@1.0.2 deduped
│ │ │ │ │ ├─┬ for-each@0.3.3
│ │ │ │ │ │ └── is-callable@1.2.7
│ │ │ │ │ ├─┬ gopd@1.0.1
│ │ │ │ │ │ └── get-intrinsic@1.2.1 deduped
│ │ │ │ │ └── has-tostringtag@1.0.0 deduped
│ │ │ │ └─┬ which-typed-array@1.1.9
│ │ │ │   ├── available-typed-arrays@1.0.5 deduped
│ │ │ │   ├── call-bind@1.0.2 deduped
│ │ │ │   ├── for-each@0.3.3 deduped
│ │ │ │   ├── gopd@1.0.1 deduped
│ │ │ │   ├── has-tostringtag@1.0.0 deduped
│ │ │ │   └── is-typed-array@1.1.10 deduped
│ │ │ ├── uuid@8.0.0 extraneous
│ │ │ └─┬ xml2js@0.5.0
│ │ │   ├── sax@1.2.1 deduped
│ │ │   └── xmlbuilder@11.0.1
│ │ ├─┬ fs-extra@5.0.0
│ │ │ ├── graceful-fs@4.2.11 deduped
│ │ │ ├─┬ jsonfile@4.0.0
│ │ │ │ └── graceful-fs@4.2.11 deduped
│ │ │ └── universalify@0.1.2
│ │ ├─┬ mime-types@2.1.35
│ │ │ └── mime-db@1.52.0 extraneous
│ │ ├── underscore@1.13.6 deduped
│ │ └── uuid@3.4.0 extraneous
│ └── uuid@8.3.2
├─┬ ep_markdown@0.1.50
│ └─┬ showdown@2.1.0
│   └── commander@9.5.0
├── ep_print@0.1.9
├─┬ ep_private_pad@1.0.2
│ ├─┬ client-sessions@0.8.0
│ │ └─┬ cookies@0.7.3
│ │   ├── depd@1.1.2
│ │   └── keygrip@1.0.3
│ ├─┬ cookie-parser@1.4.6
│ │ ├── cookie@0.4.1
│ │ └── cookie-signature@1.0.6
│ ├── eejs@1.0.0
│ ├── ejs@1.0.0
│ ├─┬ etherpad-lite-client@0.8.0
│ │ └── underscore@1.3.3 extraneous
│ ├─┬ express@4.18.2
│ │ ├─┬ accepts@1.3.8
│ │ │ ├── mime-types@2.1.35 deduped
│ │ │ └── negotiator@0.6.3
│ │ ├── array-flatten@1.1.1
│ │ ├─┬ body-parser@1.20.1
│ │ │ ├── bytes@3.1.2
│ │ │ ├── content-type@1.0.5 deduped
│ │ │ ├── debug@2.6.9 extraneous
│ │ │ ├── depd@2.0.0 extraneous
│ │ │ ├── destroy@1.2.0
│ │ │ ├── http-errors@2.0.0 deduped
│ │ │ ├─┬ iconv-lite@0.4.24
│ │ │ │ └── safer-buffer@2.1.2
│ │ │ ├── on-finished@2.4.1 deduped
│ │ │ ├── qs@6.11.0 extraneous
│ │ │ ├─┬ raw-body@2.5.1
│ │ │ │ ├── bytes@3.1.2 deduped
│ │ │ │ ├── http-errors@2.0.0 deduped
│ │ │ │ ├── iconv-lite@0.4.24 deduped
│ │ │ │ └── unpipe@1.0.0 deduped
│ │ │ ├── type-is@1.6.18 deduped
│ │ │ └── unpipe@1.0.0
│ │ ├─┬ content-disposition@0.5.4
│ │ │ └── safe-buffer@5.2.1 deduped
│ │ ├── content-type@1.0.5
│ │ ├── cookie@0.5.0 extraneous
│ │ ├── cookie-signature@1.0.6 deduped
│ │ ├── debug@2.6.9 extraneous
│ │ ├── depd@2.0.0 extraneous
│ │ ├── encodeurl@1.0.2
│ │ ├── escape-html@1.0.3
│ │ ├── etag@1.8.1
│ │ ├─┬ finalhandler@1.2.0
│ │ │ ├── debug@2.6.9 extraneous
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── on-finished@2.4.1 deduped
│ │ │ ├── parseurl@1.3.3 deduped
│ │ │ ├── statuses@2.0.1 deduped
│ │ │ └── unpipe@1.0.0 deduped
│ │ ├── fresh@0.5.2
│ │ ├─┬ http-errors@2.0.0
│ │ │ ├── depd@2.0.0 extraneous
│ │ │ ├── inherits@2.0.4 deduped
│ │ │ ├── setprototypeof@1.2.0 deduped
│ │ │ ├── statuses@2.0.1 deduped
│ │ │ └── toidentifier@1.0.1
│ │ ├── merge-descriptors@1.0.1
│ │ ├── methods@1.1.2
│ │ ├─┬ on-finished@2.4.1
│ │ │ └── ee-first@1.1.1
│ │ ├── parseurl@1.3.3
│ │ ├── path-to-regexp@0.1.7
│ │ ├─┬ proxy-addr@2.0.7
│ │ │ ├── forwarded@0.2.0
│ │ │ └── ipaddr.js@1.9.1
│ │ ├── qs@6.11.0 extraneous
│ │ ├── range-parser@1.2.1
│ │ ├── safe-buffer@5.2.1
│ │ ├─┬ send@0.18.0
│ │ │ ├── debug@2.6.9 extraneous
│ │ │ ├── depd@2.0.0 extraneous
│ │ │ ├── destroy@1.2.0 deduped
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── etag@1.8.1 deduped
│ │ │ ├── fresh@0.5.2 deduped
│ │ │ ├── http-errors@2.0.0 deduped
│ │ │ ├── mime@1.6.0
│ │ │ ├── ms@2.1.3 extraneous
│ │ │ ├── on-finished@2.4.1 deduped
│ │ │ ├── range-parser@1.2.1 deduped
│ │ │ └── statuses@2.0.1 deduped
│ │ ├─┬ serve-static@1.15.0
│ │ │ ├── encodeurl@1.0.2 deduped
│ │ │ ├── escape-html@1.0.3 deduped
│ │ │ ├── parseurl@1.3.3 deduped
│ │ │ └── send@0.18.0 deduped
│ │ ├── setprototypeof@1.2.0
│ │ ├── statuses@2.0.1
│ │ ├─┬ type-is@1.6.18
│ │ │ ├── media-typer@0.3.0
│ │ │ └── mime-types@2.1.35 deduped
│ │ ├── utils-merge@1.0.1
│ │ └── vary@1.1.2
│ ├─┬ express-session@1.17.3
│ │ ├── cookie@0.4.2 extraneous
│ │ ├── cookie-signature@1.0.6 deduped
│ │ ├── debug@2.6.9 extraneous
│ │ ├── depd@2.0.0 extraneous
│ │ ├── on-headers@1.0.2
│ │ ├── parseurl@1.3.3 deduped
│ │ ├── safe-buffer@5.2.1 deduped
│ │ └─┬ uid-safe@2.1.5
│ │   └── random-bytes@1.0.0
│ ├─┬ mysql@2.18.1
│ │ ├── bignumber.js@9.0.0
│ │ ├── readable-stream@2.3.7 extraneous
│ │ ├── safe-buffer@5.1.2 extraneous
│ │ └── sqlstring@2.3.1
│ ├─┬ node-gyp@3.8.0
│ │ ├─┬ fstream@1.0.12
│ │ │ ├── graceful-fs@4.2.11 deduped
│ │ │ ├── inherits@2.0.4 deduped
│ │ │ ├── mkdirp@0.5.6 extraneous
│ │ │ └── rimraf@2.7.1 extraneous
│ │ ├─┬ glob@7.2.3
│ │ │ ├── fs.realpath@1.0.0
│ │ │ ├─┬ inflight@1.0.6
│ │ │ │ ├── once@1.4.0 deduped
│ │ │ │ └── wrappy@1.0.2 deduped
│ │ │ ├── inherits@2.0.4 deduped
│ │ │ ├─┬ minimatch@3.1.2
│ │ │ │ └─┬ brace-expansion@1.1.11
│ │ │ │   ├── balanced-match@1.0.2
│ │ │ │   └── concat-map@0.0.1
│ │ │ ├── once@1.4.0 deduped
│ │ │ └── path-is-absolute@1.0.1
│ │ ├── graceful-fs@4.2.11
│ │ ├── mkdirp@0.5.6 extraneous
│ │ ├── nopt@3.0.6 extraneous
│ │ ├── npmlog@4.1.2 extraneous
│ │ ├─┬ osenv@0.1.5
│ │ │ ├── os-homedir@1.0.2
│ │ │ └── os-tmpdir@1.0.2
│ │ ├─┬ request@2.88.2
│ │ │ ├── aws-sign2@0.7.0
│ │ │ ├── aws4@1.12.0
│ │ │ ├── caseless@0.12.0
│ │ │ ├─┬ combined-stream@1.0.8
│ │ │ │ └── delayed-stream@1.0.0
│ │ │ ├── extend@3.0.2
│ │ │ ├── forever-agent@0.6.1
│ │ │ ├─┬ form-data@2.3.3
│ │ │ │ ├── asynckit@0.4.0
│ │ │ │ ├── combined-stream@1.0.8 deduped
│ │ │ │ └── mime-types@2.1.35 deduped
│ │ │ ├─┬ har-validator@5.1.5
│ │ │ │ ├─┬ ajv@6.12.6
│ │ │ │ │ ├── fast-deep-equal@3.1.3
│ │ │ │ │ ├── fast-json-stable-stringify@2.1.0
│ │ │ │ │ ├── json-schema-traverse@0.4.1
│ │ │ │ │ └─┬ uri-js@4.4.1
│ │ │ │ │   └── punycode@2.3.0 extraneous
│ │ │ │ └── har-schema@2.0.0
│ │ │ ├─┬ http-signature@1.2.0
│ │ │ │ ├── assert-plus@1.0.0
│ │ │ │ ├─┬ jsprim@1.4.2
│ │ │ │ │ ├── assert-plus@1.0.0 deduped
│ │ │ │ │ ├── extsprintf@1.3.0
│ │ │ │ │ ├── json-schema@0.4.0
│ │ │ │ │ └─┬ verror@1.10.0
│ │ │ │ │   ├── assert-plus@1.0.0 deduped
│ │ │ │ │   ├── core-util-is@1.0.2 extraneous
│ │ │ │ │   └── extsprintf@1.3.0 deduped
│ │ │ │ └─┬ sshpk@1.17.0
│ │ │ │   ├─┬ asn1@0.2.6
│ │ │ │   │ └── safer-buffer@2.1.2 deduped
│ │ │ │   ├── assert-plus@1.0.0 deduped
│ │ │ │   ├─┬ bcrypt-pbkdf@1.0.2
│ │ │ │   │ └── tweetnacl@0.14.5 deduped
│ │ │ │   ├─┬ dashdash@1.14.1
│ │ │ │   │ └── assert-plus@1.0.0 deduped
│ │ │ │   ├─┬ ecc-jsbn@0.1.2
│ │ │ │   │ ├── jsbn@0.1.1 deduped
│ │ │ │   │ └── safer-buffer@2.1.2 deduped
│ │ │ │   ├─┬ getpass@0.1.7
│ │ │ │   │ └── assert-plus@1.0.0 deduped
│ │ │ │   ├── jsbn@0.1.1
│ │ │ │   ├── safer-buffer@2.1.2 deduped
│ │ │ │   └── tweetnacl@0.14.5
│ │ │ ├── is-typedarray@1.0.0
│ │ │ ├── isstream@0.1.2
│ │ │ ├── json-stringify-safe@5.0.1
│ │ │ ├── mime-types@2.1.35 deduped
│ │ │ ├── oauth-sign@0.9.0
│ │ │ ├── performance-now@2.1.0
│ │ │ ├── qs@6.5.3 extraneous
│ │ │ ├── safe-buffer@5.2.1 deduped
│ │ │ ├─┬ tough-cookie@2.5.0
│ │ │ │ ├── psl@1.9.0
│ │ │ │ └── punycode@2.3.0 extraneous
│ │ │ ├─┬ tunnel-agent@0.6.0
│ │ │ │ └── safe-buffer@5.2.1 deduped
│ │ │ └── uuid@3.4.0 extraneous
│ │ ├── rimraf@2.7.1 extraneous
│ │ ├── semver@5.3.0 extraneous
│ │ ├── tar@2.2.2 extraneous
│ │ └─┬ which@1.3.1
│ │   └── isexe@2.0.0
│ ├── password-hash@1.2.2
│ └─┬ utils@0.3.1
│   ├─┬ any@1.0.0
│   │ ├── for-own@0.1.5 deduped
│   │ └── make-iterator@0.1.1 extraneous
│   ├─┬ arr-diff@1.1.0
│   │ ├── arr-flatten@1.1.0 deduped
│   │ └── array-slice@0.2.3 deduped
│   ├── arr-flatten@1.1.0
│   ├─┬ arr-map@2.0.2
│   │ └── make-iterator@1.0.1 extraneous
│   ├── arr-union@3.1.0
│   ├── array-each@0.1.1
│   ├── array-slice@0.2.3
│   ├── array-unique@0.2.1
│   ├─┬ center-align@0.1.3
│   │ ├─┬ align-text@0.1.4
│   │ │ ├── kind-of@3.2.2 extraneous
│   │ │ ├── longest@1.0.1
│   │ │ └── repeat-string@1.6.1
│   │ └── lazy-cache@1.0.4
│   ├── export-dirs@0.2.4
│   ├─┬ export-files@2.1.1
│   │ └── lazy-cache@1.0.4 deduped
│   ├── for-in@0.1.8
│   ├─┬ for-own@0.1.5
│   │ └── for-in@1.0.2 extraneous
│   ├── has-values@0.1.4
│   ├─┬ is-number@2.1.0
│   │ └── kind-of@3.2.2 extraneous
│   ├─┬ is-plain-object@2.0.4
│   │ └── isobject@3.0.1
│   ├─┬ kind-of@2.0.1
│   │ └── is-buffer@1.1.6
│   ├─┬ make-iterator@0.2.1
│   │ └── kind-of@3.2.2 extraneous
│   ├─┬ object.defaults@0.3.0
│   │ ├── array-each@0.1.1 deduped
│   │ ├── array-slice@0.2.3 deduped
│   │ ├── for-own@0.1.5 deduped
│   │ └── isobject@1.0.2 extraneous
│   ├─┬ object.filter@0.3.0
│   │ ├── for-own@0.1.5 deduped
│   │ └── make-iterator@0.1.1 extraneous
│   ├─┬ object.omit@2.0.1
│   │ ├── for-own@0.1.5 deduped
│   │ └── is-extendable@0.1.1
│   ├─┬ object.pick@1.3.0
│   │ └── isobject@3.0.1 deduped
│   ├─┬ object.reduce@0.1.7
│   │ └── for-own@0.1.5 deduped
│   ├─┬ right-align@0.1.3
│   │ └── align-text@0.1.4 deduped
│   ├── striptags@2.2.1
│   └── word-wrap@1.2.3
└── ep_table_of_contents@0.3.42

npm ERR! extraneous: semver@6.3.0 /opt/etherpad/1.8.18.bak/node_modules/make-dir/node_modules/semver
npm ERR! extraneous: minipass@3.3.6 /opt/etherpad/1.8.18.bak/node_modules/fs-minipass/node_modules/minipass
npm ERR! extraneous: minipass@3.3.6 /opt/etherpad/1.8.18.bak/node_modules/minizlib/node_modules/minipass
npm ERR! extraneous: eslint@7.32.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint
npm ERR! extraneous: eslint-config-etherpad@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-config-etherpad
npm ERR! extraneous: eslint-plugin-cypress@2.11.3 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-cypress
npm ERR! extraneous: eslint-plugin-eslint-comments@3.2.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-eslint-comments
npm ERR! extraneous: eslint-plugin-mocha@9.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-mocha
npm ERR! extraneous: eslint-plugin-node@11.1.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-node
npm ERR! extraneous: eslint-plugin-prefer-arrow@1.2.3 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-prefer-arrow
npm ERR! extraneous: eslint-plugin-promise@5.1.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-promise
npm ERR! extraneous: eslint-plugin-you-dont-need-lodash-underscore@6.12.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/eslint-plugin-you-dont-need-lodash-underscore
npm ERR! extraneous: etherpad-cli-client@0.1.12 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/etherpad-cli-client
npm ERR! extraneous: mocha@9.1.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/mocha
npm ERR! extraneous: mocha-froth@0.2.10 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/mocha-froth
npm ERR! extraneous: nodeify@1.0.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/nodeify
npm ERR! extraneous: openapi-schema-validation@0.4.2 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/openapi-schema-validation
npm ERR! extraneous: selenium-webdriver@4.0.0-rc-1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/selenium-webdriver
npm ERR! extraneous: set-cookie-parser@2.4.8 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/set-cookie-parser
npm ERR! extraneous: sinon@11.1.2 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/sinon
npm ERR! extraneous: split-grid@1.0.11 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/split-grid
npm ERR! extraneous: supertest@6.1.6 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/supertest
npm ERR! extraneous: async@3.2.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/async
npm ERR! extraneous: clean-css@5.2.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/clean-css
npm ERR! extraneous: cookie-parser@1.4.5 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/cookie-parser
npm ERR! extraneous: cross-spawn@7.0.3 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/cross-spawn
npm ERR! extraneous: ejs@3.1.6 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/ejs
npm ERR! extraneous: etherpad-require-kernel@1.0.15 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/etherpad-require-kernel
npm ERR! extraneous: etherpad-yajsml@0.0.12 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/etherpad-yajsml
npm ERR! extraneous: express@4.17.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/express
npm ERR! extraneous: express-rate-limit@5.5.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/express-rate-limit
npm ERR! extraneous: express-session@1.17.2 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/express-session
npm ERR! extraneous: fast-deep-equal@3.1.3 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/fast-deep-equal
npm ERR! extraneous: find-root@1.1.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/find-root
npm ERR! extraneous: formidable@1.2.2 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/formidable
npm ERR! extraneous: http-errors@1.8.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/http-errors
npm ERR! extraneous: js-cookie@3.0.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/js-cookie
npm ERR! extraneous: jsdom@17.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/jsdom
npm ERR! extraneous: jsonminify@0.4.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/jsonminify
npm ERR! extraneous: languages4translatewiki@0.1.3 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/languages4translatewiki
npm ERR! extraneous: lodash.clonedeep@4.5.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/lodash.clonedeep
npm ERR! extraneous: log4js@0.6.38 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/log4js
npm ERR! extraneous: measured-core@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/measured-core
npm ERR! extraneous: mime-types@2.1.33 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/mime-types
npm ERR! extraneous: npm@6.14.15 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/npm
npm ERR! extraneous: openapi-backend@4.2.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/openapi-backend
npm ERR! extraneous: proxy-addr@2.0.7 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/proxy-addr
npm ERR! extraneous: rate-limiter-flexible@2.3.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/rate-limiter-flexible
npm ERR! extraneous: rehype@11.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/rehype
npm ERR! extraneous: rehype-minify-whitespace@4.0.5 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/rehype-minify-whitespace
npm ERR! extraneous: request@2.88.2 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/request
npm ERR! extraneous: resolve@1.20.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/resolve
npm ERR! extraneous: security@1.0.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/security
npm ERR! extraneous: semver@7.3.5 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/semver
npm ERR! extraneous: socket.io@2.4.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/socket.io
npm ERR! extraneous: terser@5.9.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/terser
npm ERR! extraneous: threads@1.7.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/threads
npm ERR! extraneous: tiny-worker@2.3.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/tiny-worker
npm ERR! extraneous: tinycon@0.6.8 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/tinycon
npm ERR! extraneous: ueberdb2@2.2.4 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/ueberdb2
npm ERR! extraneous: underscore@1.13.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/underscore
npm ERR! extraneous: unorm@1.6.0 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/unorm
npm ERR! extraneous: wtfnode@0.9.1 /opt/etherpad/1.8.18.bak/node_modules/ep_etherpad-lite/node_modules/wtfnode
npm ERR! extraneous: uuid@8.0.0 /opt/etherpad/1.8.18.bak/node_modules/aws-sdk/node_modules/uuid
npm ERR! extraneous: mime-db@1.52.0 /opt/etherpad/1.8.18.bak/node_modules/mime-types/node_modules/mime-db
npm ERR! extraneous: uuid@3.4.0 /opt/etherpad/1.8.18.bak/node_modules/stream_upload/node_modules/uuid
npm ERR! extraneous: underscore@1.3.3 /opt/etherpad/1.8.18.bak/node_modules/etherpad-lite-client/node_modules/underscore
npm ERR! extraneous: debug@2.6.9 /opt/etherpad/1.8.18.bak/node_modules/body-parser/node_modules/debug
npm ERR! extraneous: depd@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/body-parser/node_modules/depd
npm ERR! extraneous: qs@6.11.0 /opt/etherpad/1.8.18.bak/node_modules/body-parser/node_modules/qs
npm ERR! extraneous: cookie@0.5.0 /opt/etherpad/1.8.18.bak/node_modules/express/node_modules/cookie
npm ERR! extraneous: debug@2.6.9 /opt/etherpad/1.8.18.bak/node_modules/express/node_modules/debug
npm ERR! extraneous: depd@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/express/node_modules/depd
npm ERR! extraneous: qs@6.11.0 /opt/etherpad/1.8.18.bak/node_modules/express/node_modules/qs
npm ERR! extraneous: debug@2.6.9 /opt/etherpad/1.8.18.bak/node_modules/finalhandler/node_modules/debug
npm ERR! extraneous: depd@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/http-errors/node_modules/depd
npm ERR! extraneous: debug@2.6.9 /opt/etherpad/1.8.18.bak/node_modules/send/node_modules/debug
npm ERR! extraneous: depd@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/send/node_modules/depd
npm ERR! extraneous: ms@2.1.3 /opt/etherpad/1.8.18.bak/node_modules/send/node_modules/ms
npm ERR! extraneous: cookie@0.4.2 /opt/etherpad/1.8.18.bak/node_modules/express-session/node_modules/cookie
npm ERR! extraneous: debug@2.6.9 /opt/etherpad/1.8.18.bak/node_modules/express-session/node_modules/debug
npm ERR! extraneous: depd@2.0.0 /opt/etherpad/1.8.18.bak/node_modules/express-session/node_modules/depd
npm ERR! extraneous: readable-stream@2.3.7 /opt/etherpad/1.8.18.bak/node_modules/mysql/node_modules/readable-stream
npm ERR! extraneous: safe-buffer@5.1.2 /opt/etherpad/1.8.18.bak/node_modules/mysql/node_modules/safe-buffer
npm ERR! extraneous: mkdirp@0.5.6 /opt/etherpad/1.8.18.bak/node_modules/fstream/node_modules/mkdirp
npm ERR! extraneous: rimraf@2.7.1 /opt/etherpad/1.8.18.bak/node_modules/fstream/node_modules/rimraf
npm ERR! extraneous: mkdirp@0.5.6 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/mkdirp
npm ERR! extraneous: nopt@3.0.6 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/nopt
npm ERR! extraneous: npmlog@4.1.2 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/npmlog
npm ERR! extraneous: rimraf@2.7.1 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/rimraf
npm ERR! extraneous: semver@5.3.0 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/semver
npm ERR! extraneous: tar@2.2.2 /opt/etherpad/1.8.18.bak/node_modules/node-gyp/node_modules/tar
npm ERR! extraneous: punycode@2.3.0 /opt/etherpad/1.8.18.bak/node_modules/uri-js/node_modules/punycode
npm ERR! extraneous: core-util-is@1.0.2 /opt/etherpad/1.8.18.bak/node_modules/verror/node_modules/core-util-is
npm ERR! extraneous: qs@6.5.3 /opt/etherpad/1.8.18.bak/node_modules/request/node_modules/qs
npm ERR! extraneous: uuid@3.4.0 /opt/etherpad/1.8.18.bak/node_modules/request/node_modules/uuid
npm ERR! extraneous: punycode@2.3.0 /opt/etherpad/1.8.18.bak/node_modules/tough-cookie/node_modules/punycode
npm ERR! extraneous: make-iterator@0.1.1 /opt/etherpad/1.8.18.bak/node_modules/any/node_modules/make-iterator
npm ERR! extraneous: make-iterator@1.0.1 /opt/etherpad/1.8.18.bak/node_modules/arr-map/node_modules/make-iterator
npm ERR! extraneous: kind-of@3.2.2 /opt/etherpad/1.8.18.bak/node_modules/align-text/node_modules/kind-of
npm ERR! extraneous: for-in@1.0.2 /opt/etherpad/1.8.18.bak/node_modules/for-own/node_modules/for-in
npm ERR! extraneous: kind-of@3.2.2 /opt/etherpad/1.8.18.bak/node_modules/is-number/node_modules/kind-of
npm ERR! extraneous: kind-of@3.2.2 /opt/etherpad/1.8.18.bak/node_modules/make-iterator/node_modules/kind-of
npm ERR! extraneous: isobject@1.0.2 /opt/etherpad/1.8.18.bak/node_modules/object.defaults/node_modules/isobject
npm ERR! extraneous: make-iterator@0.1.1 /opt/etherpad/1.8.18.bak/node_modules/object.filter/node_modules/make-iterator
JohnMcLear commented 1 year ago

after updating you will need to update deps. bin/run.sh will update deps.