From d79ab69d535b4247fb23165ed00a90116c12380b Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 11:27:25 -0400 Subject: [PATCH 01/17] update ws version --- indexer/pnpm-lock.yaml | 10 +++++----- indexer/services/socks/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/indexer/pnpm-lock.yaml b/indexer/pnpm-lock.yaml index 43589f5ac1..76b8e2c566 100644 --- a/indexer/pnpm-lock.yaml +++ b/indexer/pnpm-lock.yaml @@ -723,7 +723,7 @@ importers: tsconfig-paths: ^4.0.0 typescript: ^4.7.4 uuid: ^8.3.2 - ws: ^8.8.1 + ws: ^8.16.0 dependencies: '@dydxprotocol-indexer/base': link:../../packages/base '@dydxprotocol-indexer/compliance': link:../../packages/compliance @@ -742,7 +742,7 @@ importers: nocache: 3.0.4 response-time: 2.3.2 uuid: 8.3.2 - ws: 8.8.1 + ws: 8.16.0 devDependencies: '@dydxprotocol-indexer/dev': link:../../packages/dev '@types/body-parser': 1.19.2 @@ -13383,12 +13383,12 @@ packages: optional: true dev: false - /ws/8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} + /ws/8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true diff --git a/indexer/services/socks/package.json b/indexer/services/socks/package.json index 1e86abea75..7793d1f779 100644 --- a/indexer/services/socks/package.json +++ b/indexer/services/socks/package.json @@ -33,7 +33,7 @@ "nocache": "^3.0.4", "response-time": "^2.3.2", "uuid": "^8.3.2", - "ws": "^8.8.1" + "ws": "^8.16.0" }, "devDependencies": { "@dydxprotocol-indexer/dev": "workspace:^0.0.1", From 640ea2e6ce241b7e09e65d9fa2fe9ad9bd5ee1a6 Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 11:32:15 -0400 Subject: [PATCH 02/17] explicitly autoPong --- indexer/services/socks/__tests__/websocket/index.test.ts | 2 +- indexer/services/socks/src/helpers/wss.ts | 1 + indexer/services/socks/src/websocket/index.ts | 6 ++---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/indexer/services/socks/__tests__/websocket/index.test.ts b/indexer/services/socks/__tests__/websocket/index.test.ts index 8491fd306f..6bee101dad 100644 --- a/indexer/services/socks/__tests__/websocket/index.test.ts +++ b/indexer/services/socks/__tests__/websocket/index.test.ts @@ -264,7 +264,7 @@ describe('Index', () => { (v4 as unknown as jest.Mock).mockReturnValueOnce(connectionId); mockConnect(websocket, new IncomingMessage(new Socket())); websocket.emit(WebsocketEvents.PING); - expect(wsPongSpy).toHaveBeenCalledTimes(2); + expect(wsPongSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/indexer/services/socks/src/helpers/wss.ts b/indexer/services/socks/src/helpers/wss.ts index 708b3bf4fd..0b2cd13be4 100644 --- a/indexer/services/socks/src/helpers/wss.ts +++ b/indexer/services/socks/src/helpers/wss.ts @@ -19,6 +19,7 @@ export class Wss { this.closed = false; this.wss = new WebSocket.Server({ port: config.WS_PORT, + autoPong: true, }); } diff --git a/indexer/services/socks/src/websocket/index.ts b/indexer/services/socks/src/websocket/index.ts index 08c05bd39c..b386f83879 100644 --- a/indexer/services/socks/src/websocket/index.ts +++ b/indexer/services/socks/src/websocket/index.ts @@ -164,9 +164,7 @@ export class Index { } }); - this.connections[connectionId].ws.on(WebsocketEvents.PING, (data: Buffer) => { - ws.pong(data); - }); + // Do not attach handler for pings, as the ws library automatically responds to pings with pongs. // Attach handler for close events from the connection. this.connections[connectionId].ws.on(WebsocketEvents.CLOSE, (code: number, reason: Buffer) => { @@ -309,7 +307,7 @@ export class Index { ); break; } - // TODO: Consider custom ping messages as invalid after publishing updated documentation. + // Handle pings by doing nothing. The ws library automatically responds to pings with pongs. case IncomingMessageType.PING: { break; } From 93603ccb1df2c64da4e1c734d6389d1057a705b4 Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:09:48 -0400 Subject: [PATCH 03/17] update ws types --- indexer/pnpm-lock.yaml | 8 ++++---- indexer/services/socks/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indexer/pnpm-lock.yaml b/indexer/pnpm-lock.yaml index 76b8e2c566..28161cfe72 100644 --- a/indexer/pnpm-lock.yaml +++ b/indexer/pnpm-lock.yaml @@ -706,7 +706,7 @@ importers: '@types/node': ^18.0.3 '@types/response-time': ^2.3.5 '@types/uuid': ^8.3.4 - '@types/ws': ^8.5.3 + '@types/ws': ^8.5.10 axios: ^1.2.1 body-parser: ^1.20.0 cors: ^2.8.5 @@ -754,7 +754,7 @@ importers: '@types/node': 18.0.3 '@types/response-time': 2.3.5 '@types/uuid': 8.3.4 - '@types/ws': 8.5.3 + '@types/ws': 8.5.10 jest: 28.1.2_250642e41d506bccecc9f35ad915bcb5 ts-node: 10.8.2_2dd5d46eecda2aef953638919121af58 tsconfig-paths: 4.0.0 @@ -5845,8 +5845,8 @@ packages: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} dev: true - /@types/ws/8.5.3: - resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + /@types/ws/8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: '@types/node': 18.0.3 dev: true diff --git a/indexer/services/socks/package.json b/indexer/services/socks/package.json index 7793d1f779..74cbe47011 100644 --- a/indexer/services/socks/package.json +++ b/indexer/services/socks/package.json @@ -46,7 +46,7 @@ "@types/node": "^18.0.3", "@types/response-time": "^2.3.5", "@types/uuid": "^8.3.4", - "@types/ws": "^8.5.3", + "@types/ws": "^8.5.10", "jest": "^28.1.2", "ts-node": "^10.8.2", "tsconfig-paths": "^4.0.0", From df914c8c9fc36372d4be92e323582d39cca83ba7 Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:15:12 -0400 Subject: [PATCH 04/17] lint --- indexer/services/socks/src/websocket/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/services/socks/src/websocket/index.ts b/indexer/services/socks/src/websocket/index.ts index b386f83879..914e898299 100644 --- a/indexer/services/socks/src/websocket/index.ts +++ b/indexer/services/socks/src/websocket/index.ts @@ -164,7 +164,7 @@ export class Index { } }); - // Do not attach handler for pings, as the ws library automatically responds to pings with pongs. + // Do not attach handler for pings. The ws library automatically responds to pings with pongs. // Attach handler for close events from the connection. this.connections[connectionId].ws.on(WebsocketEvents.CLOSE, (code: number, reason: Buffer) => { From fca5c388e2bea74d5c4192aaecb2d1ff7ecc2b7e Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:19:34 -0400 Subject: [PATCH 05/17] bump node types --- indexer/pnpm-lock.yaml | 139 +++++++++++++++++++++++++++- indexer/services/socks/package.json | 2 +- 2 files changed, 135 insertions(+), 6 deletions(-) diff --git a/indexer/pnpm-lock.yaml b/indexer/pnpm-lock.yaml index 28161cfe72..225d92422d 100644 --- a/indexer/pnpm-lock.yaml +++ b/indexer/pnpm-lock.yaml @@ -703,7 +703,7 @@ importers: '@types/express-request-id': ^1.4.3 '@types/jest': ^28.1.4 '@types/lodash': ^4.14.182 - '@types/node': ^18.0.3 + '@types/node': ^18.19.31 '@types/response-time': ^2.3.5 '@types/uuid': ^8.3.4 '@types/ws': ^8.5.10 @@ -751,12 +751,12 @@ importers: '@types/express-request-id': 1.4.3 '@types/jest': 28.1.4 '@types/lodash': 4.14.182 - '@types/node': 18.0.3 + '@types/node': 18.19.31 '@types/response-time': 2.3.5 '@types/uuid': 8.3.4 '@types/ws': 8.5.10 - jest: 28.1.2_250642e41d506bccecc9f35ad915bcb5 - ts-node: 10.8.2_2dd5d46eecda2aef953638919121af58 + jest: 28.1.2_e1489a60da1bfeaddb37cf23d6a3b371 + ts-node: 10.8.2_4ea55324100c26d4019c6e6bcc89fac6 tsconfig-paths: 4.0.0 typescript: 4.7.4 @@ -5774,6 +5774,12 @@ packages: /@types/node/18.0.3: resolution: {integrity: sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==} + /@types/node/18.19.31: + resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/parse-package-name/0.1.0: resolution: {integrity: sha512-+vF4M3Cd3Ec22Uwb+OKhDrSAcXQ5I6evRx+1letx4KzfzycU+AOEDHnCifus8In11i8iYNFXPfzg9HWTcC1h+Q==} dev: true @@ -5848,7 +5854,7 @@ packages: /@types/ws/8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 18.0.3 + '@types/node': 18.19.31 dev: true /@types/yargs-parser/21.0.0: @@ -9779,6 +9785,34 @@ packages: - ts-node dev: true + /jest-cli/28.1.2_e1489a60da1bfeaddb37cf23d6a3b371: + resolution: {integrity: sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.2_ts-node@10.8.2 + '@jest/test-result': 28.1.1 + '@jest/types': 28.1.1 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + jest-config: 28.1.2_e1489a60da1bfeaddb37cf23d6a3b371 + jest-util: 28.1.1 + jest-validate: 28.1.1 + prompts: 2.4.2 + yargs: 17.5.1 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jest-config/28.1.2: resolution: {integrity: sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -9895,6 +9929,46 @@ packages: - supports-color dev: true + /jest-config/28.1.2_e1489a60da1bfeaddb37cf23d6a3b371: + resolution: {integrity: sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.18.6 + '@jest/test-sequencer': 28.1.1 + '@jest/types': 28.1.1 + '@types/node': 18.19.31 + babel-jest: 28.1.2_@babel+core@7.18.6 + chalk: 4.1.2 + ci-info: 3.3.2 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 28.1.2 + jest-environment-node: 28.1.2 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.1 + jest-runner: 28.1.2 + jest-util: 28.1.1 + jest-validate: 28.1.1 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 28.1.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.8.2_4ea55324100c26d4019c6e6bcc89fac6 + transitivePeerDependencies: + - supports-color + dev: true + /jest-diff/28.1.1: resolution: {integrity: sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -10268,6 +10342,26 @@ packages: - ts-node dev: true + /jest/28.1.2_e1489a60da1bfeaddb37cf23d6a3b371: + resolution: {integrity: sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.2_ts-node@10.8.2 + '@jest/types': 28.1.1 + import-local: 3.1.0 + jest-cli: 28.1.2_e1489a60da1bfeaddb37cf23d6a3b371 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jgexml/0.4.4: resolution: {integrity: sha512-j0AzSWT7LXy3s3i1cdv5NZxUtscocwiBxgOLiEBfitCehm8STdXVrcOlbAWsJFLCq1elZYpQlGqA9k8Z+n9iJA==} hasBin: true @@ -12912,6 +13006,37 @@ packages: yn: 3.1.1 dev: true + /ts-node/10.8.2_4ea55324100c26d4019c6e6bcc89fac6: + resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.19.31 + acorn: 8.7.1 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.7.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /tsconfig-paths/3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: @@ -13041,6 +13166,10 @@ packages: engines: {node: '>=0.10.0'} dev: false + /undici-types/5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /unicode-canonical-property-names-ecmascript/2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} diff --git a/indexer/services/socks/package.json b/indexer/services/socks/package.json index 74cbe47011..015cbfdb1a 100644 --- a/indexer/services/socks/package.json +++ b/indexer/services/socks/package.json @@ -43,7 +43,7 @@ "@types/express-request-id": "^1.4.3", "@types/jest": "^28.1.4", "@types/lodash": "^4.14.182", - "@types/node": "^18.0.3", + "@types/node": "^18.19.31", "@types/response-time": "^2.3.5", "@types/uuid": "^8.3.4", "@types/ws": "^8.5.10", From 764037894696f404acc8bf5f080259f056a9f5b3 Mon Sep 17 00:00:00 2001 From: Brendan Chou <3680392+BrendanChou@users.noreply.github.com> Date: Thu, 25 Apr 2024 13:27:37 -0400 Subject: [PATCH 06/17] allowSynchronousEvents false --- indexer/services/socks/src/helpers/wss.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/indexer/services/socks/src/helpers/wss.ts b/indexer/services/socks/src/helpers/wss.ts index 0b2cd13be4..4b24133b87 100644 --- a/indexer/services/socks/src/helpers/wss.ts +++ b/indexer/services/socks/src/helpers/wss.ts @@ -17,10 +17,13 @@ export class Wss { constructor() { this.started = false; this.closed = false; - this.wss = new WebSocket.Server({ + + const serverOptions: WebSocket.ServerOptions = { port: config.WS_PORT, + allowSynchronousEvents: false, autoPong: true, - }); + }; + this.wss = new WebSocket.Server(serverOptions); } public async start(): Promise { From f907d7a674e1fa3fa28f285cf03447841c96bcbb Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:11:28 -0400 Subject: [PATCH 07/17] fix build --- indexer/package.json | 11 +- indexer/patches/@types+ws+8.5.10.patch | 22 ++++ indexer/pnpm-lock.yaml | 136 ++++++++++++++++++++++++- 3 files changed, 164 insertions(+), 5 deletions(-) create mode 100644 indexer/patches/@types+ws+8.5.10.patch diff --git a/indexer/package.json b/indexer/package.json index ce29744048..30cab042a3 100644 --- a/indexer/package.json +++ b/indexer/package.json @@ -13,8 +13,15 @@ "lint:all": "pnpm run --parallel lint", "lint:fix:all": "pnpm run --parallel lint:fix", "coverage:all": "pnpm recursive run --workspace-concurrency=1 coverage", - "test:all": "pnpm recursive run --workspace-concurrency=1 test" + "test:all": "pnpm recursive run --workspace-concurrency=1 test", + "postinstall": "patch-package" }, "author": "", - "license": "AGPL-3.0" + "license": "AGPL-3.0", + "dependencies": { + "@milahu/patch-package": "6.4.14" + }, + "devDependencies": { + "@types/ws": "8.5.10" + } } diff --git a/indexer/patches/@types+ws+8.5.10.patch b/indexer/patches/@types+ws+8.5.10.patch new file mode 100644 index 0000000000..ca5d3f6847 --- /dev/null +++ b/indexer/patches/@types+ws+8.5.10.patch @@ -0,0 +1,22 @@ +# generated by patch-package 6.4.14 +# +# declared package: +# @types/ws: 8.5.10 +# +diff --git a/node_modules/@types/ws/index.d.ts b/node_modules/@types/ws/index.d.ts +index 94d1dca..d9abf0b 100644 +--- a/node_modules/@types/ws/index.d.ts ++++ b/node_modules/@types/ws/index.d.ts +@@ -318,7 +318,11 @@ declare namespace WebSocket { + host?: string | undefined; + port?: number | undefined; + backlog?: number | undefined; +- server?: HTTPServer | HTTPSServer | undefined; ++ // LOCAL DYDX PATCH ++ allowSynchronousEvents?: boolean; ++ autoPong?: boolean; ++ server?: HTTPServer | HTTPSServer | undefined; ++ // END LOCAL DYDX PATCH + verifyClient?: + | VerifyClientCallbackAsync> + | VerifyClientCallbackSync> diff --git a/indexer/pnpm-lock.yaml b/indexer/pnpm-lock.yaml index 225d92422d..f57ed585d4 100644 --- a/indexer/pnpm-lock.yaml +++ b/indexer/pnpm-lock.yaml @@ -3,7 +3,13 @@ lockfileVersion: 5.3 importers: .: - specifiers: {} + specifiers: + '@milahu/patch-package': ^6.4.14 + '@types/ws': 8.5.10 + dependencies: + '@milahu/patch-package': 6.4.14 + devDependencies: + '@types/ws': 8.5.10 packages/base: specifiers: @@ -5309,6 +5315,28 @@ packages: dev: false optional: true + /@milahu/patch-package/6.4.14: + resolution: {integrity: sha512-sfjl5rZPGu8T7Yl3oSnpwCLp7WGK1rKoSMkC2iZCI7M5y1lijF1GFAuJl2xKCGB4SubgChm+HGJ3YkWYLc3xVg==} + engines: {npm: '>5'} + hasBin: true + dependencies: + '@types/dashdash': 1.14.3 + '@yarnpkg/lockfile': 1.1.0 + chalk: 2.4.2 + cross-spawn: 7.0.3 + dashdash: 2.0.0 + find-yarn-workspace-root: 2.0.0 + fs-extra: 10.1.0 + is-ci: 3.0.1 + klaw-sync: 6.0.0 + open: 8.4.2 + rimraf: 3.0.2 + semver: 7.5.4 + shlex: 2.1.2 + slash: 2.0.0 + tmp: 0.2.3 + dev: false + /@noble/hashes/1.3.0: resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} dev: false @@ -5683,6 +5711,10 @@ packages: resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} dev: true + /@types/dashdash/1.14.3: + resolution: {integrity: sha512-1BKd5kepSM4R+92c1SV1V0tcCletn2RDHh7QnuI9pTUVpVPwGJPi/3JPdaXR9l7TmwRlV9Zn24hiwxybjWR3Lw==} + dev: false + /@types/eslint-visitor-keys/1.0.0: resolution: {integrity: sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==} dev: true @@ -6069,6 +6101,10 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@yarnpkg/lockfile/1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: false + /abbrev/1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false @@ -6325,7 +6361,6 @@ packages: /assert-plus/1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} - dev: true /assign-symbols/1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} @@ -6832,6 +6867,11 @@ packages: /ci-info/3.3.2: resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==} + /ci-info/3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: false + /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} @@ -7136,6 +7176,13 @@ packages: assert-plus: 1.0.0 dev: true + /dashdash/2.0.0: + resolution: {integrity: sha512-ElMoAPlrzmF4l0OscF5pPBZv8LhUJBnwh7rHKllUOrwabAr47R1aQIIwC53rc59ycCb7k5Sj1/es+A3Bep/x5w==} + engines: {node: '>=10.x'} + dependencies: + assert-plus: 1.0.0 + dev: false + /date-fns/2.29.3: resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} engines: {node: '>=0.11'} @@ -7248,6 +7295,11 @@ packages: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: false + /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -7574,6 +7626,10 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: false + /es-errors/1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + /es-get-iterator/1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -8523,6 +8579,12 @@ packages: locate-path: 5.0.0 path-exists: 4.0.0 + /find-yarn-workspace-root/2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + dependencies: + micromatch: 4.0.5 + dev: false + /findup-sync/3.0.0: resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} engines: {node: '>= 0.10'} @@ -8703,6 +8765,9 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind/1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /function.prototype.name/1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -8766,6 +8831,16 @@ packages: has: 1.0.3 has-symbols: 1.0.3 + /get-intrinsic/1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.2 + /get-own-enumerable-property-symbols/3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} dev: false @@ -8920,7 +8995,7 @@ packages: /gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.4 /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -9035,6 +9110,12 @@ packages: minimalistic-assert: 1.0.1 dev: false + /hasown/2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + /hexoid/1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} @@ -9366,6 +9447,13 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.9.0 + dev: false + /is-core-module/2.9.0: resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: @@ -9409,6 +9497,12 @@ packages: kind-of: 6.0.3 dev: false + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: false + /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -9578,6 +9672,13 @@ packages: engines: {node: '>=0.10.0'} dev: false + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: false + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: false @@ -10503,6 +10604,12 @@ packages: engines: {node: '>=0.10.0'} dev: false + /klaw-sync/6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + dependencies: + graceful-fs: 4.2.10 + dev: false + /kleur/3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -11395,6 +11502,15 @@ packages: dependencies: mimic-fn: 2.1.0 + /open/8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + /openapi-sampler/1.3.1: resolution: {integrity: sha512-Ert9mvc2tLPmmInwSyGZS+v4Ogu9/YoZuq9oP3EdUklg2cad6+IGndP9yqJJwbgdXwZibiq5fpv6vYujchdJFg==} dependencies: @@ -12320,6 +12436,10 @@ packages: rechoir: 0.6.2 dev: true + /shlex/2.1.2: + resolution: {integrity: sha512-Nz6gtibMVgYeMEhUjp2KuwAgqaJA1K155dU/HuDaEJUGgnmYfVtVZah+uerVWdH8UGnyahhDCgABbYTbs254+w==} + dev: false + /should-equal/2.0.0: resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} dependencies: @@ -12377,6 +12497,11 @@ packages: /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + /slash/2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + dev: false + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -12870,6 +12995,11 @@ packages: os-tmpdir: 1.0.2 dev: true + /tmp/0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: false + /tmpl/1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} From f4b31a7b8dccbe3a555b150a3e08e99e7255ea45 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:13:56 -0400 Subject: [PATCH 08/17] fix lockfile --- indexer/pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/pnpm-lock.yaml b/indexer/pnpm-lock.yaml index f57ed585d4..be3a42b09d 100644 --- a/indexer/pnpm-lock.yaml +++ b/indexer/pnpm-lock.yaml @@ -4,7 +4,7 @@ importers: .: specifiers: - '@milahu/patch-package': ^6.4.14 + '@milahu/patch-package': 6.4.14 '@types/ws': 8.5.10 dependencies: '@milahu/patch-package': 6.4.14 From 8565bc13ed3537f1e1815f0519966f325f8426ee Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:28:18 -0400 Subject: [PATCH 09/17] fix install to run postinstall --- indexer/Dockerfile.auxo.remote | 2 +- indexer/Dockerfile.bazooka.remote | 2 +- indexer/Dockerfile.postgres-package.local | 2 +- indexer/Dockerfile.service.local | 2 +- indexer/Dockerfile.service.remote | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indexer/Dockerfile.auxo.remote b/indexer/Dockerfile.auxo.remote index 1d43896fd6..c5ec010acf 100644 --- a/indexer/Dockerfile.auxo.remote +++ b/indexer/Dockerfile.auxo.remote @@ -19,7 +19,7 @@ COPY tsconfig.json ./ RUN npm install -g pnpm@6 # Install npm modules using pnpm -RUN pnpm install --loglevel warn --frozen-lockfile +RUN pnpm install --loglevel warn --frozen-lockfile --unsafe-perm RUN pnpm run build:prod:all FROM public.ecr.aws/lambda/nodejs:16 diff --git a/indexer/Dockerfile.bazooka.remote b/indexer/Dockerfile.bazooka.remote index f5867721c8..e55b17c1eb 100644 --- a/indexer/Dockerfile.bazooka.remote +++ b/indexer/Dockerfile.bazooka.remote @@ -22,7 +22,7 @@ COPY tsconfig.json ./ RUN npm install -g pnpm@6 # Install npm modules using pnpm -RUN pnpm install --loglevel warn --frozen-lockfile +RUN pnpm install --loglevel warn --frozen-lockfile --unsafe-perm RUN pnpm run build:prod:all FROM public.ecr.aws/lambda/nodejs:16 diff --git a/indexer/Dockerfile.postgres-package.local b/indexer/Dockerfile.postgres-package.local index 1d4f6fe0fe..d53697fc17 100644 --- a/indexer/Dockerfile.postgres-package.local +++ b/indexer/Dockerfile.postgres-package.local @@ -37,7 +37,7 @@ RUN chown dydx -R /home/dydx/app USER dydx # Install npm modules using pnpm -RUN pnpm i --loglevel warn --production --frozen-lockfile +RUN pnpm i --loglevel warn --production --frozen-lockfile --unsafe-perm WORKDIR /home/dydx/app/packages/postgres diff --git a/indexer/Dockerfile.service.local b/indexer/Dockerfile.service.local index 5237caba53..48e4adf75e 100644 --- a/indexer/Dockerfile.service.local +++ b/indexer/Dockerfile.service.local @@ -42,7 +42,7 @@ COPY ./scripts/container-run.sh /home/dydx/app/services/$service/scripts/ RUN chown dydx -R /home/dydx/app USER dydx -RUN pnpm i --loglevel warn --production --frozen-lockfile +RUN pnpm i --loglevel warn --production --frozen-lockfile --unsafe-perm WORKDIR /home/dydx/app/services/$service diff --git a/indexer/Dockerfile.service.remote b/indexer/Dockerfile.service.remote index 582273b32b..d7bb0c674d 100644 --- a/indexer/Dockerfile.service.remote +++ b/indexer/Dockerfile.service.remote @@ -42,7 +42,7 @@ COPY ./scripts/container-run.sh /home/dydx/app/services/$service/scripts/ RUN chown dydx -R /home/dydx/app # Install npm modules using pnpm -RUN pnpm i --loglevel warn --production --frozen-lockfile +RUN pnpm i --loglevel warn --production --frozen-lockfile --unsafe-perm USER dydx From 339d3760813f9c81585c25d7352a2ae86477f2a0 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:38:49 -0400 Subject: [PATCH 10/17] add patches to docker --- indexer/Dockerfile.auxo.remote | 2 +- indexer/Dockerfile.bazooka.remote | 2 +- indexer/Dockerfile.postgres-package.local | 2 +- indexer/Dockerfile.service.local | 2 +- indexer/Dockerfile.service.remote | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indexer/Dockerfile.auxo.remote b/indexer/Dockerfile.auxo.remote index c5ec010acf..6feeb622fe 100644 --- a/indexer/Dockerfile.auxo.remote +++ b/indexer/Dockerfile.auxo.remote @@ -4,7 +4,7 @@ FROM public.ecr.aws/lambda/nodejs:16 as builder WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ # Copy auxo and imported packages COPY ./packages/base/ ./packages/base/ diff --git a/indexer/Dockerfile.bazooka.remote b/indexer/Dockerfile.bazooka.remote index e55b17c1eb..388910eb3c 100644 --- a/indexer/Dockerfile.bazooka.remote +++ b/indexer/Dockerfile.bazooka.remote @@ -4,7 +4,7 @@ FROM public.ecr.aws/lambda/nodejs:16 as builder WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.jso ./patches ./ # Copy bazooka and imported packages COPY ./packages/base/ ./packages/base/ diff --git a/indexer/Dockerfile.postgres-package.local b/indexer/Dockerfile.postgres-package.local index d53697fc17..195dc7206d 100644 --- a/indexer/Dockerfile.postgres-package.local +++ b/indexer/Dockerfile.postgres-package.local @@ -9,7 +9,7 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ # Copy package.json from postgres and imported packages being run COPY ./packages/base/package.json ./packages/base/ diff --git a/indexer/Dockerfile.service.local b/indexer/Dockerfile.service.local index 48e4adf75e..5742b85548 100644 --- a/indexer/Dockerfile.service.local +++ b/indexer/Dockerfile.service.local @@ -11,7 +11,7 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ # Copy package.json from all packages being run COPY ./packages/base/package.json ./packages/base/ diff --git a/indexer/Dockerfile.service.remote b/indexer/Dockerfile.service.remote index d7bb0c674d..43788bbfa6 100644 --- a/indexer/Dockerfile.service.remote +++ b/indexer/Dockerfile.service.remote @@ -11,7 +11,7 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ # Copy package.json from all packages being run COPY ./packages/base/package.json ./packages/base/ From fe8e220d92d6e6a60ed183c7a53c97d5c5fb0087 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:42:10 -0400 Subject: [PATCH 11/17] fix --- indexer/Dockerfile.bazooka.remote | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/Dockerfile.bazooka.remote b/indexer/Dockerfile.bazooka.remote index 388910eb3c..2c7d573d20 100644 --- a/indexer/Dockerfile.bazooka.remote +++ b/indexer/Dockerfile.bazooka.remote @@ -4,7 +4,7 @@ FROM public.ecr.aws/lambda/nodejs:16 as builder WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.jso ./patches ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ # Copy bazooka and imported packages COPY ./packages/base/ ./packages/base/ From 3a3148eb22f90866e3cda0babaf32da790bfa9a9 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 13:56:33 -0400 Subject: [PATCH 12/17] test --- indexer/Dockerfile.bazooka.remote | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indexer/Dockerfile.bazooka.remote b/indexer/Dockerfile.bazooka.remote index 2c7d573d20..d7f9c33889 100644 --- a/indexer/Dockerfile.bazooka.remote +++ b/indexer/Dockerfile.bazooka.remote @@ -5,6 +5,8 @@ WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ +RUN ls +RUN ls patches # Copy bazooka and imported packages COPY ./packages/base/ ./packages/base/ From a661adcd905cabae20b83fe3b80b32d0bb4c133b Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 14:04:21 -0400 Subject: [PATCH 13/17] fix patches import --- indexer/Dockerfile.auxo.remote | 5 ++++- indexer/Dockerfile.bazooka.remote | 5 +++-- indexer/Dockerfile.postgres-package.local | 5 ++++- indexer/Dockerfile.service.local | 5 ++++- indexer/Dockerfile.service.remote | 5 ++++- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/indexer/Dockerfile.auxo.remote b/indexer/Dockerfile.auxo.remote index 6feeb622fe..5b2145a1dd 100644 --- a/indexer/Dockerfile.auxo.remote +++ b/indexer/Dockerfile.auxo.remote @@ -4,7 +4,10 @@ FROM public.ecr.aws/lambda/nodejs:16 as builder WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ + +# Copy patches +COPY ./patches ./patches # Copy auxo and imported packages COPY ./packages/base/ ./packages/base/ diff --git a/indexer/Dockerfile.bazooka.remote b/indexer/Dockerfile.bazooka.remote index d7f9c33889..0d7a711e06 100644 --- a/indexer/Dockerfile.bazooka.remote +++ b/indexer/Dockerfile.bazooka.remote @@ -5,8 +5,9 @@ WORKDIR /usr/app # Copy pnpm lock and workspace and package.json from base directory COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ -RUN ls -RUN ls patches + +# Copy patches +COPY ./patches ./patches # Copy bazooka and imported packages COPY ./packages/base/ ./packages/base/ diff --git a/indexer/Dockerfile.postgres-package.local b/indexer/Dockerfile.postgres-package.local index 195dc7206d..916b88467e 100644 --- a/indexer/Dockerfile.postgres-package.local +++ b/indexer/Dockerfile.postgres-package.local @@ -9,7 +9,10 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ + +# Copy patches +COPY ./patches ./patches # Copy package.json from postgres and imported packages being run COPY ./packages/base/package.json ./packages/base/ diff --git a/indexer/Dockerfile.service.local b/indexer/Dockerfile.service.local index 5742b85548..5a41b57dde 100644 --- a/indexer/Dockerfile.service.local +++ b/indexer/Dockerfile.service.local @@ -11,7 +11,10 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ + +# Copy patches +COPY ./patches ./patches # Copy package.json from all packages being run COPY ./packages/base/package.json ./packages/base/ diff --git a/indexer/Dockerfile.service.remote b/indexer/Dockerfile.service.remote index 43788bbfa6..c8eff5063a 100644 --- a/indexer/Dockerfile.service.remote +++ b/indexer/Dockerfile.service.remote @@ -11,7 +11,10 @@ RUN chown dydx -R /home/dydx/app WORKDIR /home/dydx/app # Copy pnpm lock and workspace and package.json from base directory -COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./patches ./ +COPY ./pnpm-lock.yaml ./pnpm-workspace.yaml ./package.json ./ + +# Copy patches +COPY ./patches ./patches # Copy package.json from all packages being run COPY ./packages/base/package.json ./packages/base/ From ff9aa92c842c86fb8d3eda8f85b9091ac3997bae Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 17 May 2024 14:12:50 -0400 Subject: [PATCH 14/17] allowSynchronousEvents: true --- indexer/services/socks/src/helpers/wss.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/services/socks/src/helpers/wss.ts b/indexer/services/socks/src/helpers/wss.ts index 4b24133b87..c835129598 100644 --- a/indexer/services/socks/src/helpers/wss.ts +++ b/indexer/services/socks/src/helpers/wss.ts @@ -20,7 +20,7 @@ export class Wss { const serverOptions: WebSocket.ServerOptions = { port: config.WS_PORT, - allowSynchronousEvents: false, + allowSynchronousEvents: true, autoPong: true, }; this.wss = new WebSocket.Server(serverOptions); From 87da7e3ce2acf460086217398dede4f6da4690b8 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 31 May 2024 14:36:56 -0400 Subject: [PATCH 15/17] try this --- indexer/services/socks/__tests__/websocket/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/services/socks/__tests__/websocket/index.test.ts b/indexer/services/socks/__tests__/websocket/index.test.ts index 6bee101dad..d0fc9cf5a1 100644 --- a/indexer/services/socks/__tests__/websocket/index.test.ts +++ b/indexer/services/socks/__tests__/websocket/index.test.ts @@ -49,7 +49,7 @@ describe('Index', () => { (Subscriptions as unknown as jest.Mock).mockClear(); (sendMessage as unknown as jest.Mock).mockClear(); mockWss = new Wss(); - websocket = new WebSocket(null); + websocket = new WebSocket(null, [], {}); wsOnSpy = jest.spyOn(websocket, 'on'); wsPingSpy = jest.spyOn(websocket, 'ping').mockImplementation(jest.fn()); wsPongSpy = jest.spyOn(websocket, 'pong').mockImplementation(jest.fn()); From 01b203cf72e78519c5ccc1e2859369b1f5fb2b48 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 31 May 2024 14:42:20 -0400 Subject: [PATCH 16/17] 2 more fixes --- .../socks/__tests__/websocket/index.test.ts | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/indexer/services/socks/__tests__/websocket/index.test.ts b/indexer/services/socks/__tests__/websocket/index.test.ts index d0fc9cf5a1..91aed78482 100644 --- a/indexer/services/socks/__tests__/websocket/index.test.ts +++ b/indexer/services/socks/__tests__/websocket/index.test.ts @@ -28,7 +28,6 @@ describe('Index', () => { let mockConnect: (ws: WebSocket, req: IncomingMessage) => void; let wsOnSpy: jest.SpyInstance; let wsPingSpy: jest.SpyInstance; - let wsPongSpy: jest.SpyInstance; let invalidMsgHandlerSpy: jest.SpyInstance; const connectionId: string = 'conId'; @@ -49,10 +48,9 @@ describe('Index', () => { (Subscriptions as unknown as jest.Mock).mockClear(); (sendMessage as unknown as jest.Mock).mockClear(); mockWss = new Wss(); - websocket = new WebSocket(null, [], {}); + websocket = new WebSocket(null, [], { autoPong: true } as any); wsOnSpy = jest.spyOn(websocket, 'on'); wsPingSpy = jest.spyOn(websocket, 'ping').mockImplementation(jest.fn()); - wsPongSpy = jest.spyOn(websocket, 'pong').mockImplementation(jest.fn()); mockWss.onConnection = jest.fn().mockImplementation( (cb: (ws: WebSocket, req: IncomingMessage) => void) => { mockConnect = cb; @@ -74,12 +72,11 @@ describe('Index', () => { expect(index.connections[connectionId].messageId).toEqual(0); // Test that handlers are attached. - expect(wsOnSpy).toHaveBeenCalledTimes(5); + expect(wsOnSpy).toHaveBeenCalledTimes(4); expect(wsOnSpy).toHaveBeenCalledWith(WebsocketEvents.MESSAGE, expect.anything()); expect(wsOnSpy).toHaveBeenCalledWith(WebsocketEvents.CLOSE, expect.anything()); expect(wsOnSpy).toHaveBeenCalledWith(WebsocketEvents.ERROR, expect.anything()); expect(wsOnSpy).toHaveBeenCalledWith(WebsocketEvents.PONG, expect.anything()); - expect(wsOnSpy).toHaveBeenCalledWith(WebsocketEvents.PING, expect.anything()); // Test that a connection messages is sent. expect(sendMessage).toHaveBeenCalledTimes(1); @@ -259,15 +256,6 @@ describe('Index', () => { }); }); - describe('ping', () => { - it('sends pong on receiving ping', () => { - (v4 as unknown as jest.Mock).mockReturnValueOnce(connectionId); - mockConnect(websocket, new IncomingMessage(new Socket())); - websocket.emit(WebsocketEvents.PING); - expect(wsPongSpy).toHaveBeenCalledTimes(1); - }); - }); - describe('pong', () => { it('removes delayed disconnect on pong', () => { // Run pending timers to start heartbeat to attach delayed disconnect. From 6a8939fe84f10e357e657970287fa1e510f9e5b5 Mon Sep 17 00:00:00 2001 From: jiajames Date: Fri, 31 May 2024 14:48:04 -0400 Subject: [PATCH 17/17] try one more thing --- indexer/services/socks/__tests__/websocket/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexer/services/socks/__tests__/websocket/index.test.ts b/indexer/services/socks/__tests__/websocket/index.test.ts index 91aed78482..22d510f7e4 100644 --- a/indexer/services/socks/__tests__/websocket/index.test.ts +++ b/indexer/services/socks/__tests__/websocket/index.test.ts @@ -48,7 +48,7 @@ describe('Index', () => { (Subscriptions as unknown as jest.Mock).mockClear(); (sendMessage as unknown as jest.Mock).mockClear(); mockWss = new Wss(); - websocket = new WebSocket(null, [], { autoPong: true } as any); + websocket = new WebSocket(null as any as string, [], { autoPong: true } as any); wsOnSpy = jest.spyOn(websocket, 'on'); wsPingSpy = jest.spyOn(websocket, 'ping').mockImplementation(jest.fn()); mockWss.onConnection = jest.fn().mockImplementation(