From 3d30be3472a39ac9dc9732e908c4f763c06ef144 Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Sat, 2 Nov 2019 08:48:00 -0700 Subject: [PATCH 1/3] update ws dependency --- package.json | 8 ++++---- src/api.ts | 6 ++++++ yarn.lock | 43 ++++++++++++++++++------------------------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 7ac1de36..174db024 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@types/lodash": "^4.14.136", - "@types/ws": "^3.2.0", + "@types/ws": "^6.0.3", "bignumber.js": "^9.0.0", "https-proxy-agent": "^3.0.0", "jsonschema": "1.2.2", @@ -28,18 +28,18 @@ "ripple-binary-codec": "^0.2.4", "ripple-keypairs": "^0.11.0", "ripple-lib-transactionparser": "0.8.0", - "ws": "^3.3.1" + "ws": "^7.2.0" }, "devDependencies": { "@types/mocha": "^5.2.7", - "@types/node": "11.13.0", + "@types/node": "^12.12.5", "@typescript-eslint/eslint-plugin": "^2.3.3", "@typescript-eslint/parser": "^2.3.3", "assert-diff": "^2.0.3", "doctoc": "^0.15.0", "ejs": "^2.3.4", "eslint": "^6.5.1", - "eventemitter2": "^0.4.14", + "eventemitter2": "^5.0.1", "gulp": "^4.0.2", "json-loader": "^0.5.2", "json-schema-to-markdown-table": "^0.4.0", diff --git a/src/api.ts b/src/api.ts index f4e8943c..d2057cac 100644 --- a/src/api.ts +++ b/src/api.ts @@ -140,6 +140,12 @@ class RippleAPI extends EventEmitter { this.emit('connected') }) this.connection.on('disconnected', code => { + // This is a backwards-compatible fix for this change in the ws library: + // https://github.com/websockets/ws/issues/1257 + // TODO: Remove in next major, breaking version + if (code === 1005) { + code = 1000; + } this.emit('disconnected', code) }) } else { diff --git a/yarn.lock b/yarn.lock index 8b7ff920..2dbdc734 100644 --- a/yarn.lock +++ b/yarn.lock @@ -121,15 +121,15 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.12.tgz#7c6c571cc2f3f3ac4a59a5f2bd48f5bdbc8653cc" integrity sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ== -"@types/node@11.13.0": - version "11.13.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.0.tgz#b0df8d6ef9b5001b2be3a94d909ce3c29a80f9e1" - integrity sha512-rx29MMkRdVmzunmiA4lzBYJNnXsW/PhG4kMBy2ATsYaDjGGR75dCFEVVROKpNwlVdcUX3xxlghKQOeDPBJobng== +"@types/node@^12.12.5": + version "12.12.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.5.tgz#66103d2eddc543d44a04394abb7be52506d7f290" + integrity sha512-KEjODidV4XYUlJBF3XdjSH5FWoMCtO0utnhtdLf1AgeuZLOrRbvmU/gaRCVg7ZaQDjVf3l84egiY0mRNe5xE4A== -"@types/ws@^3.2.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-3.2.1.tgz#b0c1579e58e686f83ce0a97bb9463d29705827fb" - integrity sha512-t5n0/iHoavnX1MqeYmKJgWc1W6yX4BXsNxQg7M5862RWrfN9S5k8yaWbDMGJSTCzbH7+q5QS8chjymd+ND9gMw== +"@types/ws@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.3.tgz#b772375ba59d79066561c8d87500144d674ba6b3" + integrity sha512-yBTM0P05Tx9iXGq00BbJPo37ox68R5vaGTXivs6RGh/BQ6QP5zqZDGWdAO6JbRE/iR1l80xeGAwCQS2nMV9S/w== dependencies: "@types/node" "*" @@ -469,7 +469,7 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@~1.0.0: +async-limiter@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -1711,10 +1711,10 @@ event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" -eventemitter2@^0.4.14: - version "0.4.14" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" - integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas= +eventemitter2@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" + integrity sha1-YZegldX7a1folC9v1+qtY6CclFI= events@^3.0.0: version "3.0.0" @@ -5147,11 +5147,6 @@ uglifyjs-webpack-plugin@^1.1.4: webpack-sources "^1.1.0" worker-farm "^1.5.2" -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -5493,14 +5488,12 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== +ws@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" + integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" + async-limiter "^1.0.0" x-address-codec@^0.7.0: version "0.7.2" From e7afd3ec769060ec8668467e739a76a3083c500b Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Mon, 4 Nov 2019 19:32:44 -0800 Subject: [PATCH 2/3] respond to comments --- src/api.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/api.ts b/src/api.ts index d2057cac..8197d0c4 100644 --- a/src/api.ts +++ b/src/api.ts @@ -140,13 +140,14 @@ class RippleAPI extends EventEmitter { this.emit('connected') }) this.connection.on('disconnected', code => { + let finalCode = code; // This is a backwards-compatible fix for this change in the ws library: // https://github.com/websockets/ws/issues/1257 // TODO: Remove in next major, breaking version - if (code === 1005) { - code = 1000; + if (finalCode === 1005) { + finalCode = 1000; } - this.emit('disconnected', code) + this.emit('disconnected', finalCode) }) } else { // use null object pattern to provide better error message if user From c09bceb66a16f456332f408922327f539bf48657 Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Mon, 4 Nov 2019 19:36:34 -0800 Subject: [PATCH 3/3] fix type --- test/mock-rippled.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/mock-rippled.ts b/test/mock-rippled.ts index b988ab1b..381a0e12 100644 --- a/test/mock-rippled.ts +++ b/test/mock-rippled.ts @@ -76,7 +76,7 @@ export function createMockRippled(port) { mock.expectedRequests = expectedRequests; }; - mock.on('connection', function (this: CustomWebSocketServer, conn: any) { + mock.on('connection', function (this: MockedWebSocketServer, conn: any) { if (mock.config.breakNextConnection) { mock.config.breakNextConnection = false; conn.terminate(); @@ -97,7 +97,7 @@ export function createMockRippled(port) { mock.config = {}; - mock.onAny(function (this: CustomWebSocketServer) { + mock.onAny(function (this: MockedWebSocketServer) { if (this.event.indexOf('request_') !== 0) { return; }