diff --git a/index.js b/index.js index 2f04997..83cbc9b 100644 --- a/index.js +++ b/index.js @@ -82,18 +82,21 @@ app.use(async (ctx) => { console.log(err); break; default: - console.error('Unexpected error:') + console.error('Unexpected error:'); console.error(err); break; } - }) + }); db.listen(ws, { docId, readOnly }); // docId and readOnly is passed to 'connect' middleware as ctx.req } else { ctx.body = { docId, readOnly }; } }); -app.listen(process.env.PORT || 8080); +const server = app.listen(process.env.PORT || 8080); +// Reference: https://github.com/b3nsn0w/koa-easy-ws/issues/36 +server.requestTimeout = 0; +server.headersTimeout = 0; function getSessionDetails(sessionId) { const sessionDetails = documents.get(sessionId); diff --git a/package.json b/package.json index 34713f8..e3c0bc8 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,11 @@ "@koa/cors": "^5.0.0", "@teamwork/websocket-json-stream": "^2.0.0", "koa": "^2.15.4", - "koa-bodyparser": "^4.3.0", - "koa-easy-ws": "^1.2.0", - "sharedb": "^1.4.1", - "uuid": "^8.3.0" + "koa-bodyparser": "^4.4.1", + "koa-easy-ws": "^2.1.0", + "sharedb": "^5.1.1", + "uuid": "^11.1.0", + "ws": "^8.18.0" }, "devDependencies": { "eslint": "^7.6.0", diff --git a/yarn.lock b/yarn.lock index eba9221..69ad46e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -115,22 +115,20 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arraydiff@^0.1.1: +arraydiff@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/arraydiff/-/arraydiff-0.1.3.tgz#86a5436d7b72f1bdda5fd6d74e8724e42f83ce4d" - integrity sha1-hqVDbXty8b3aX9bXTock5C+Dzk0= + integrity sha512-t0OgO06uolEcMUvV8+yHc9Pc9pazh8wi/Dtyok/sQwvcr8iFV+P86IfAzK7upUDhI4oavhVREMY7iSWtm38LeA== astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async@^2.6.3: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" +async@^3.2.4: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== balanced-match@^1.0.0: version "1.0.0" @@ -463,12 +461,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -736,13 +729,14 @@ keygrip@~1.1.0: dependencies: tsscmp "1.0.6" -koa-bodyparser@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" - integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== +koa-bodyparser@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz#a908d848e142cc57d9eece478e932bf00dce3029" + integrity sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w== dependencies: co-body "^6.0.0" copy-to "^2.0.1" + type-is "^1.6.18" koa-compose@^4.1.0: version "4.1.0" @@ -757,13 +751,12 @@ koa-convert@^2.0.0: co "^4.6.0" koa-compose "^4.1.0" -koa-easy-ws@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/koa-easy-ws/-/koa-easy-ws-1.3.0.tgz#dbf8eeb126ca11eed4c4e3af7904a47c25be2347" - integrity sha512-06lHAwm25HBdplTpwHiZqKcl39vS4KiVzRPneUExCHVvQ9TPHmFlUFO/gjQrUdLj3+kvqQpqdlIPNb91wn6EwA== +koa-easy-ws@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/koa-easy-ws/-/koa-easy-ws-2.1.0.tgz#31e1ee1072fd1a72ffdc59706a0e54bc023e20ee" + integrity sha512-SF6RHIuHttkt9RdACWPRFlSOHPcVS87otBfChLx83vmB1en8uODmE5G1thuKd0qUPRZU8FvFHJXWIxf7ib9J1w== dependencies: debug "^4.1.1" - ws "^7.3.1" koa@^2.15.4: version "2.15.4" @@ -901,7 +894,7 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ot-json0@^1.0.1: +ot-json0@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ot-json0/-/ot-json0-1.1.0.tgz#f5edeff162673b62f0f136bb64724c40ac5e590d" integrity sha512-wf5fci7GGpMYRDnbbdIFQymvhsbFACMHtxjivQo5KgvAHlxekyfJ9aPsRr6YfFQthQkk4bmsl5yESrZwC/oMYQ== @@ -1019,16 +1012,16 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sharedb@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sharedb/-/sharedb-1.4.1.tgz#f40c806a9713857efaefc7dc990b8f2de1a0c703" - integrity sha512-SwsEgVKMtHfJgWe6W8CoDRATg1auJNOal0XttvteylzNaJwM/jMycuQuB5vxFWLBRirWgQip6KuSOi+5s8ncgQ== +sharedb@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/sharedb/-/sharedb-5.1.1.tgz#d1013cbc25e11be8d5a5c0e469a4b7242eeccdf6" + integrity sha512-qNiO2nJdvnQYRvKMiZzbPyyXuBN0uulP4VaFrybJRLVSif8XPEnNO7Up/aHO3nwA5UejizzncOL8KVba4Rj4KA== dependencies: - arraydiff "^0.1.1" - async "^2.6.3" - fast-deep-equal "^2.0.1" + arraydiff "^0.1.3" + async "^3.2.4" + fast-deep-equal "^3.1.3" hat "0.0.3" - ot-json0 "^1.0.1" + ot-json0 "^1.1.0" shebang-command@^2.0.0: version "2.0.0" @@ -1149,7 +1142,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@^1.6.16: +type-is@^1.6.16, type-is@^1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -1169,10 +1162,10 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -uuid@^8.3.0: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== v8-compile-cache@^2.0.3: version "2.1.1" @@ -1208,10 +1201,10 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^7.3.1: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== yallist@^4.0.0: version "4.0.0"