From b4aceb7af3c2a5efd5c36d2649cf00addae1698e Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Thu, 9 May 2024 14:40:50 +0700 Subject: [PATCH] Move UWS into separate plugin with proper case usage. (#5556) Move UWS into separate plugin with proper case usage. Signed-off-by: Andrey Sobolev --- common/config/rush/pnpm-lock.yaml | 23 ++++++++++++++++------- rush.json | 5 +++++ server/uws/config/rig.json | 5 +++++ server/uws/package.json | 29 +++++++++++++++++++++++++++++ server/uws/uws.sh | 8 ++++++++ server/ws/package.json | 9 +++++---- server/ws/src/server_u.ts | 2 +- server/ws/uws.sh | 8 -------- 8 files changed, 69 insertions(+), 20 deletions(-) create mode 100644 server/uws/config/rig.json create mode 100644 server/uws/package.json create mode 100755 server/uws/uws.sh delete mode 100755 server/ws/uws.sh diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ecb47b766f..45e39ca828 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -737,6 +737,9 @@ dependencies: '@rush-temp/ui': specifier: file:./projects/ui.tgz version: file:projects/ui.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) + '@rush-temp/uws': + specifier: file:./projects/uws.tgz + version: file:projects/uws.tgz '@rush-temp/view': specifier: file:./projects/view.tgz version: file:projects/view.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) @@ -19465,7 +19468,7 @@ packages: dev: false file:projects/login.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): - resolution: {integrity: sha512-VYCM0fD7QjZglX1kp/CDjquuZvGDTwBFz9PmLsl3E347XTb465TANzyociaT619A6rTUQgFKPI7/rJ3575oOdA==, tarball: file:projects/login.tgz} + resolution: {integrity: sha512-D15IjHxENijzWEb3vfDRwT4UnLvNQ6OLXS1A4zDz7sESx1VTNqVugngYaiXlyiB39jvL6vgitbRerNdS5ZY+SQ==, tarball: file:projects/login.tgz} id: file:projects/login.tgz name: '@rush-temp/login' version: 0.0.0 @@ -20177,7 +20180,7 @@ packages: dev: false file:projects/model-server-lead.tgz: - resolution: {integrity: sha512-r6wm+ThuCo9qEUPFBf1+CUG9G6iFmSl3Azg0aRsBcudp3pGdPyih44ryGqZFKNMmlEr6Sp8k2vYq6Wzdmase5g==, tarball: file:projects/model-server-lead.tgz} + resolution: {integrity: sha512-kPDXfo9EMJDBdqL40UtgGuedn7iA3EFo4pAQGNBG2EPmhzl0khM432uTGS0qbkS42Pw+0+GtGWLN8Dmk0+LQFA==, tarball: file:projects/model-server-lead.tgz} name: '@rush-temp/model-server-lead' version: 0.0.0 dependencies: @@ -20386,7 +20389,7 @@ packages: dev: false file:projects/model-server-tracker.tgz: - resolution: {integrity: sha512-SqOOZxqJ6t5V35LVpzcQsMUnWB8seuLLHGy68XN8zBq/kE49oQ8+uPAw7UdMvP1gmw2jb1X0LdzE8iW1/T4vDQ==, tarball: file:projects/model-server-tracker.tgz} + resolution: {integrity: sha512-ARsXatu1A+oFcNAHxBHdmE0SknrsVKUVR0E/p+vPSZq10fgqBY4eX94GFb21IbZXcgXRpFte4YXrJstgb/fJUA==, tarball: file:projects/model-server-tracker.tgz} name: '@rush-temp/model-server-tracker' version: 0.0.0 dependencies: @@ -20500,7 +20503,7 @@ packages: dev: false file:projects/model-task.tgz: - resolution: {integrity: sha512-YZocNhXSv45yA2GYjG059U3vgSqE1U/8p0GmMxbCNVi+E/NYLib9tj+fCHNpqLkhw73iBYBgvYgx50SqqGSXBQ==, tarball: file:projects/model-task.tgz} + resolution: {integrity: sha512-E5o2lmz2SDx6psN2nz1FqyWiSN1Awe2adNfF1D+jJH4HMZ9Mg2Zbz6rlXOzh8nf30/X1MRXO6qRagpRet7WHBw==, tarball: file:projects/model-task.tgz} name: '@rush-temp/model-task' version: 0.0.0 dependencies: @@ -20595,7 +20598,7 @@ packages: dev: false file:projects/model-tracker.tgz: - resolution: {integrity: sha512-1yO1l+P72MnyqoZOk7ZdlC6piZLHTDHvdSzFniVsPrxQ7nbIVOCp0hmw+cjbYDQrhzJl8LMwUikfYPXP+auR7Q==, tarball: file:projects/model-tracker.tgz} + resolution: {integrity: sha512-7d48XWwnPlmsdBRqlswmRAIPegoB6Rh7t0Yqmx44gXMCYiexPkc0Tr38CecKGysMonJGP9453X+IP4SxUnQV/A==, tarball: file:projects/model-tracker.tgz} name: '@rush-temp/model-tracker' version: 0.0.0 dependencies: @@ -23254,7 +23257,7 @@ packages: dev: false file:projects/server-ws.tgz(esbuild@0.20.1)(ts-node@10.9.2): - resolution: {integrity: sha512-H+LX8du8Fflohly6Uv20gI7fhm+T6RRerOESTho9L1Dxgn0E8zXqD3XGrjEblNm94HR9/09uHrs2a7CWPaRAig==, tarball: file:projects/server-ws.tgz} + resolution: {integrity: sha512-TnxxDdcG9/0ee0e84vQ7EQuB/xcR5Pvn+Kduf40XlG7ruHsgB/swombYUMlcr+hruvZ0zAYXxeQKFby3v69RnQ==, tarball: file:projects/server-ws.tgz} id: file:projects/server-ws.tgz name: '@rush-temp/server-ws' version: 0.0.0 @@ -24357,7 +24360,7 @@ packages: dev: false file:projects/tool.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.3): - resolution: {integrity: sha512-FapBriQDbhOPHpCCh3hiJAY68tHjzbF6r94xISTJxwsOsJNijAV9v7RFhTUnLiLcCuBSj9eovI7Mljd3CDZrAw==, tarball: file:projects/tool.tgz} + resolution: {integrity: sha512-aCu871KUBezC10ng0g9MwVF4UdeqlKVlMvLH4r0eBFvZx/XkEPiP++bL5dDuYo9o4cU2bhj+7uTzLCePUQVDZQ==, tarball: file:projects/tool.tgz} id: file:projects/tool.tgz name: '@rush-temp/tool' version: 0.0.0 @@ -24604,6 +24607,12 @@ packages: - ts-node dev: false + file:projects/uws.tgz: + resolution: {integrity: sha512-cJKrvv/9a935gnsLADANzT1ZcSe9j47NxbDaYX93htNBgTZRhke5VQ9zJ+hViufzd4u0aZNHRkdtnES7cPEHGw==, tarball: file:projects/uws.tgz} + name: '@rush-temp/uws' + version: 0.0.0 + dev: false + file:projects/view-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-n1MVIlCSAY1sPPwfXhbGJLW2flWKXbbxAS3zne4t4ZsyqITQf4X+i7GUS4HZT7q8bIKzbTsV1VmPRPcUZBukdQ==, tarball: file:projects/view-assets.tgz} id: file:projects/view-assets.tgz diff --git a/rush.json b/rush.json index 1954023e7a..5f5329cf6c 100644 --- a/rush.json +++ b/rush.json @@ -476,6 +476,11 @@ "projectFolder": "server/ws", "shouldPublish": false }, + { + "packageName": "@hcengineering/uws", + "projectFolder": "server/uws", + "shouldPublish": false + }, { "packageName": "@hcengineering/dev-storage", "projectFolder": "dev/storage", diff --git a/server/uws/config/rig.json b/server/uws/config/rig.json new file mode 100644 index 0000000000..78cc5a1733 --- /dev/null +++ b/server/uws/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "node" +} diff --git a/server/uws/package.json b/server/uws/package.json new file mode 100644 index 0000000000..69c160b361 --- /dev/null +++ b/server/uws/package.json @@ -0,0 +1,29 @@ +{ + "name": "@hcengineering/uws", + "version": "0.6.0", + "main": "lib/uws.js", + "types": "lib/index.d.ts", + "author": "Anticrm Platform Contributors", + "template": "@hcengineering/node-package-uws", + "license": "EPL-2.0", + "exports": { + "import": "./lib/ESM_wrapper.mjs", + "require": "./lib/uws.js", + "types": "./lib/index.d.ts" + }, + "scripts": { + "build": "./uws.sh", + "build:watch": "./uws.sh", + "test": "echo 'test'", + "format": "echo 'format'", + "_phase:build": "rushx build", + "_phase:test": "echo 'test'", + "_phase:format": "echo 'format'", + "_phase:validate": "./uws.sh" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0" + }, + "dependencies": { + } +} diff --git a/server/uws/uws.sh b/server/uws/uws.sh new file mode 100755 index 0000000000..1982f2bb47 --- /dev/null +++ b/server/uws/uws.sh @@ -0,0 +1,8 @@ +mkdir -p ./.build +cd ./.build +if ! test -f ./v20.43.0.zip; then + wget --quiet https://github.com/uNetworking/uWebSockets.js/archive/refs/tags/v20.43.0.zip +fi +if ! test -f ../lib/uws.js; then + unzip -qq -j -o ./v20.43.0.zip -d ../lib +fi diff --git a/server/ws/package.json b/server/ws/package.json index 56d8ce8d44..bc61246a54 100644 --- a/server/ws/package.json +++ b/server/ws/package.json @@ -8,14 +8,14 @@ "template": "@hcengineering/node-package-ws", "license": "EPL-2.0", "scripts": { - "build": "./uws.sh && compile && cp ./src/uws/*.node ./lib/uws", - "build:watch": "./uws.sh && compile && cp ./src/uws/*.node ./lib/uws", + "build": "compile", + "build:watch": "compile", "test": "jest --passWithNoTests --silent --forceExit", "format": "format src", - "_phase:build": "./uws.sh && compile transpile src && cp ./src/uws/*.node ./lib/uws", + "_phase:build": "compile transpile src", "_phase:test": "jest --passWithNoTests --silent --forceExit", "_phase:format": "format src", - "_phase:validate": "./uws.sh && compile validate" + "_phase:validate": "compile validate" }, "devDependencies": { "@hcengineering/platform-rig": "^0.6.0", @@ -38,6 +38,7 @@ "typescript": "^5.3.3" }, "dependencies": { + "@hcengineering/uws": "^0.6.0", "@hcengineering/analytics": "^0.6.0", "@hcengineering/core": "^0.6.28", "@hcengineering/platform": "^0.6.9", diff --git a/server/ws/src/server_u.ts b/server/ws/src/server_u.ts index 0a8ae512c9..c86c11cd31 100644 --- a/server/ws/src/server_u.ts +++ b/server/ws/src/server_u.ts @@ -31,7 +31,7 @@ import { } from './types' import { doSessionOp, processRequest, type WebsocketData } from './utils' -import uWebSockets, { DISABLED, SHARED_COMPRESSOR, type HttpResponse, type WebSocket } from './uws' +import uWebSockets, { DISABLED, SHARED_COMPRESSOR, type HttpResponse, type WebSocket } from '@hcengineering/uws' interface WebsocketUserData extends WebsocketData { backPressure?: Promise diff --git a/server/ws/uws.sh b/server/ws/uws.sh deleted file mode 100755 index c8d7445199..0000000000 --- a/server/ws/uws.sh +++ /dev/null @@ -1,8 +0,0 @@ -if test -f ./src/server_u.ts; then - if ! test -f ./v20.43.0.zip; then - wget --quiet https://github.com/uNetworking/uWebSockets.js/archive/refs/tags/v20.43.0.zip - fi - if ! test -f ./src/uws/uws.js; then - unzip -qq -j ./v20.43.0.zip -d ./src/uws/ - fi -fi \ No newline at end of file