Try snappy compression (#7603)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev 2025-01-10 22:55:15 +07:00 committed by GitHub
parent 7511a87df2
commit 71ce4018eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 348 additions and 155 deletions

View File

@ -61,10 +61,10 @@ dependencies:
version: 1.49.1
'@rush-temp/account':
specifier: file:./projects/account.tgz
version: file:projects/account.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
version: file:projects/account.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2)
'@rush-temp/account-service':
specifier: file:./projects/account-service.tgz
version: file:projects/account-service.tgz
version: file:projects/account-service.tgz(snappy@7.2.2)
'@rush-temp/activity':
specifier: file:./projects/activity.tgz
version: file:projects/activity.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
@ -109,7 +109,7 @@ dependencies:
version: file:projects/attachment-resources.tgz(@types/node@20.11.19)(esbuild@0.24.2)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2)
'@rush-temp/auth-providers':
specifier: file:./projects/auth-providers.tgz
version: file:projects/auth-providers.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
version: file:projects/auth-providers.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2)
'@rush-temp/backup-service':
specifier: file:./projects/backup-service.tgz
version: file:projects/backup-service.tgz(esbuild@0.24.2)(ts-node@10.9.2)
@ -166,7 +166,7 @@ dependencies:
version: file:projects/collaboration.tgz(esbuild@0.24.2)(ts-node@10.9.2)
'@rush-temp/collaborator':
specifier: file:./projects/collaborator.tgz
version: file:projects/collaborator.tgz(@tiptap/pm@2.6.6)(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-protocols@1.0.6)
version: file:projects/collaborator.tgz(@tiptap/pm@2.6.6)(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(y-protocols@1.0.6)
'@rush-temp/collaborator-client':
specifier: file:./projects/collaborator-client.tgz
version: file:projects/collaborator-client.tgz(ts-node@10.9.2)
@ -580,7 +580,7 @@ dependencies:
version: file:projects/model-workbench.tgz
'@rush-temp/mongo':
specifier: file:./projects/mongo.tgz
version: file:projects/mongo.tgz(esbuild@0.24.2)(ts-node@10.9.2)
version: file:projects/mongo.tgz(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2)
'@rush-temp/notification':
specifier: file:./projects/notification.tgz
version: file:projects/notification.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
@ -613,19 +613,19 @@ dependencies:
version: file:projects/platform-rig.tgz(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(svelte@4.2.19)
'@rush-temp/pod-account':
specifier: file:./projects/pod-account.tgz
version: file:projects/pod-account.tgz
version: file:projects/pod-account.tgz(snappy@7.2.2)
'@rush-temp/pod-ai-bot':
specifier: file:./projects/pod-ai-bot.tgz
version: file:projects/pod-ai-bot.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(zod@3.23.8)
version: file:projects/pod-ai-bot.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(zod@3.23.8)
'@rush-temp/pod-analytics-collector':
specifier: file:./projects/pod-analytics-collector.tgz
version: file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)
version: file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)
'@rush-temp/pod-backup':
specifier: file:./projects/pod-backup.tgz
version: file:projects/pod-backup.tgz
'@rush-temp/pod-calendar':
specifier: file:./projects/pod-calendar.tgz
version: file:projects/pod-calendar.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4)
version: file:projects/pod-calendar.tgz(bufferutil@4.0.8)(snappy@7.2.2)(ts-node@10.9.2)(utf-8-validate@6.0.4)
'@rush-temp/pod-collaborator':
specifier: file:./projects/pod-collaborator.tgz
version: file:projects/pod-collaborator.tgz
@ -637,10 +637,10 @@ dependencies:
version: file:projects/pod-fulltext.tgz
'@rush-temp/pod-github':
specifier: file:./projects/pod-github.tgz
version: file:projects/pod-github.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-prosemirror@1.2.12)
version: file:projects/pod-github.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(y-prosemirror@1.2.12)
'@rush-temp/pod-gmail':
specifier: file:./projects/pod-gmail.tgz
version: file:projects/pod-gmail.tgz(ts-node@10.9.2)
version: file:projects/pod-gmail.tgz(snappy@7.2.2)(ts-node@10.9.2)
'@rush-temp/pod-love':
specifier: file:./projects/pod-love.tgz
version: file:projects/pod-love.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)
@ -655,19 +655,19 @@ dependencies:
version: file:projects/pod-ses.tgz
'@rush-temp/pod-sign':
specifier: file:./projects/pod-sign.tgz
version: file:projects/pod-sign.tgz
version: file:projects/pod-sign.tgz(snappy@7.2.2)
'@rush-temp/pod-stats':
specifier: file:./projects/pod-stats.tgz
version: file:projects/pod-stats.tgz
'@rush-temp/pod-telegram':
specifier: file:./projects/pod-telegram.tgz
version: file:projects/pod-telegram.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4)
version: file:projects/pod-telegram.tgz(bufferutil@4.0.8)(snappy@7.2.2)(ts-node@10.9.2)(utf-8-validate@6.0.4)
'@rush-temp/pod-telegram-bot':
specifier: file:./projects/pod-telegram-bot.tgz
version: file:projects/pod-telegram-bot.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)
version: file:projects/pod-telegram-bot.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)
'@rush-temp/pod-workspace':
specifier: file:./projects/pod-workspace.tgz
version: file:projects/pod-workspace.tgz
version: file:projects/pod-workspace.tgz(snappy@7.2.2)
'@rush-temp/postgres':
specifier: file:./projects/postgres.tgz
version: file:projects/postgres.tgz(esbuild@0.24.2)(ts-node@10.9.2)
@ -958,7 +958,7 @@ dependencies:
version: file:projects/server-token.tgz(esbuild@0.24.2)(ts-node@10.9.2)
'@rush-temp/server-tool':
specifier: file:./projects/server-tool.tgz
version: file:projects/server-tool.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
version: file:projects/server-tool.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2)
'@rush-temp/server-tracker':
specifier: file:./projects/server-tracker.tgz
version: file:projects/server-tracker.tgz(esbuild@0.24.2)(ts-node@10.9.2)
@ -1090,7 +1090,7 @@ dependencies:
version: file:projects/time-resources.tgz(@tiptap/core@2.6.6)(@tiptap/pm@2.6.6)(@types/node@20.11.19)(esbuild@0.24.2)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2)
'@rush-temp/tool':
specifier: file:./projects/tool.tgz
version: file:projects/tool.tgz
version: file:projects/tool.tgz(snappy@7.2.2)
'@rush-temp/tracker':
specifier: file:./projects/tracker.tgz
version: file:projects/tracker.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2)
@ -1235,6 +1235,9 @@ dependencies:
'@tiptap/extension-text-align':
specifier: ~2.11.0
version: 2.11.0(@tiptap/core@2.6.6)
'@tiptap/extension-text-style':
specifier: ~2.11.0
version: 2.11.0(@tiptap/core@2.6.6)
'@tiptap/extension-typography':
specifier: ^2.6.6
version: 2.6.6(@tiptap/core@2.6.6)
@ -1373,6 +1376,9 @@ dependencies:
'@types/sharp':
specifier: ~0.32.0
version: 0.32.0
'@types/snappyjs':
specifier: ^0.7.1
version: 0.7.1
'@types/tar-stream':
specifier: ^3.1.3
version: 3.1.3
@ -1735,7 +1741,7 @@ dependencies:
version: 8.0.0
mongodb:
specifier: ^6.12.0
version: 6.12.0
version: 6.12.0(snappy@7.2.2)
morgan:
specifier: ^1.10.0
version: 1.10.0
@ -1844,6 +1850,12 @@ dependencies:
smee-client:
specifier: ^1.2.3
version: 1.2.5
snappy:
specifier: ^7.2.2
version: 7.2.2
snappyjs:
specifier: ^0.7.0
version: 0.7.0
style-loader:
specifier: ^3.3.1
version: 3.3.4(webpack@5.97.1)
@ -4921,6 +4933,123 @@ packages:
dev: false
optional: true
/@napi-rs/snappy-android-arm-eabi@7.2.2:
resolution: {integrity: sha512-H7DuVkPCK5BlAr1NfSU8bDEN7gYs+R78pSHhDng83QxRnCLmVIZk33ymmIwurmoA1HrdTxbkbuNl+lMvNqnytw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-android-arm64@7.2.2:
resolution: {integrity: sha512-2R/A3qok+nGtpVK8oUMcrIi5OMDckGYNoBLFyli3zp8w6IArPRfg1yOfVUcHvpUDTo9T7LOS1fXgMOoC796eQw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-darwin-arm64@7.2.2:
resolution: {integrity: sha512-USgArHbfrmdbuq33bD5ssbkPIoT7YCXCRLmZpDS6dMDrx+iM7eD2BecNbOOo7/v1eu6TRmQ0xOzeQ6I/9FIi5g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-darwin-x64@7.2.2:
resolution: {integrity: sha512-0APDu8iO5iT0IJKblk2lH0VpWSl9zOZndZKnBYIc+ei1npw2L5QvuErFOTeTdHBtzvUHASB+9bvgaWnQo4PvTQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-freebsd-x64@7.2.2:
resolution: {integrity: sha512-mRTCJsuzy0o/B0Hnp9CwNB5V6cOJ4wedDTWEthsdKHSsQlO7WU9W1yP7H3Qv3Ccp/ZfMyrmG98Ad7u7lG58WXA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-linux-arm-gnueabihf@7.2.2:
resolution: {integrity: sha512-v1uzm8+6uYjasBPcFkv90VLZ+WhLzr/tnfkZ/iD9mHYiULqkqpRuC8zvc3FZaJy5wLQE9zTDkTJN1IvUcZ+Vcg==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-linux-arm64-gnu@7.2.2:
resolution: {integrity: sha512-LrEMa5pBScs4GXWOn6ZYXfQ72IzoolZw5txqUHVGs8eK4g1HR9HTHhb2oY5ySNaKakG5sOgMsb1rwaEnjhChmQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-linux-arm64-musl@7.2.2:
resolution: {integrity: sha512-3orWZo9hUpGQcB+3aTLW7UFDqNCQfbr0+MvV67x8nMNYj5eAeUtMmUE/HxLznHO4eZ1qSqiTwLbVx05/Socdlw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-linux-x64-gnu@7.2.2:
resolution: {integrity: sha512-jZt8Jit/HHDcavt80zxEkDpH+R1Ic0ssiVCoueASzMXa7vwPJeF4ZxZyqUw4qeSy7n8UUExomu8G8ZbP6VKhgw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-linux-x64-musl@7.2.2:
resolution: {integrity: sha512-Dh96IXgcZrV39a+Tej/owcd9vr5ihiZ3KRix11rr1v0MWtVb61+H1GXXlz6+Zcx9y8jM1NmOuiIuJwkV4vZ4WA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-win32-arm64-msvc@7.2.2:
resolution: {integrity: sha512-9No0b3xGbHSWv2wtLEn3MO76Yopn1U2TdemZpCaEgOGccz1V+a/1d16Piz3ofSmnA13HGFz3h9NwZH9EOaIgYA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-win32-ia32-msvc@7.2.2:
resolution: {integrity: sha512-QiGe+0G86J74Qz1JcHtBwM3OYdTni1hX1PFyLRo3HhQUSpmi13Bzc1En7APn+6Pvo7gkrcy81dObGLDSxFAkQQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@napi-rs/snappy-win32-x64-msvc@7.2.2:
resolution: {integrity: sha512-a43cyx1nK0daw6BZxVcvDEXxKMFLSBSDTAhsFD0VqSKcC7MGUBMaqyoWUcMiI7LBSz4bxUmxDWKfCYzpEmeb3w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@ -6920,13 +7049,6 @@ packages:
'@types/koa': 2.15.0
dev: false
/@types/koa-morgan@1.0.8:
resolution: {integrity: sha512-2GredUi+iA3V0XrbzdsOAYgwj4F6+FnN+f5YjoKjessIE2lrMkqnc06YQQnzbMG75hRsXjyD+p6d5vlI70s1vg==}
dependencies:
'@types/koa': 2.14.0
'@types/morgan': 1.9.9
dev: false
/@types/koa-passport@6.0.3:
resolution: {integrity: sha512-9iV8aiSICfBZpqkkzUshqxN2wTuoj4HGRRH0Idv3lHhXV9rZRCOyDdJSg+vZ6RHSQg0ZeBeAdIL4r/l8bR4SPA==}
dependencies:
@ -6947,19 +7069,6 @@ packages:
'@types/koa': 2.15.0
dev: false
/@types/koa@2.14.0:
resolution: {integrity: sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==}
dependencies:
'@types/accepts': 1.3.7
'@types/content-disposition': 0.5.8
'@types/cookies': 0.9.0
'@types/http-assert': 1.5.5
'@types/http-errors': 2.0.4
'@types/keygrip': 1.0.6
'@types/koa-compose': 3.2.8
'@types/node': 20.11.19
dev: false
/@types/koa@2.15.0:
resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==}
dependencies:
@ -7194,6 +7303,10 @@ packages:
sharp: 0.32.6
dev: false
/@types/snappyjs@0.7.1:
resolution: {integrity: sha512-OxjzJ6cQZstysMh6PEwZWmK9qlKZyezHJKOkcUkZDooSFuog2votUEKkxMaTq51UQF3cJkXKQ+XGlj4FSl8JQQ==}
dev: false
/@types/sockjs@0.3.36:
resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
dependencies:
@ -15095,12 +15208,6 @@ packages:
koa-compose: 4.1.0
dev: false
/koa-morgan@1.0.1:
resolution: {integrity: sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==}
dependencies:
morgan: 1.10.0
dev: false
/koa-passport@6.0.0:
resolution: {integrity: sha512-bgcrQN7Ylfgi1PVr5l6hHYkr38RHUzx+ty3m7e/xoTte8MR0zbDt6+pvP3/nuF/yXL6Ba7IzX1rSqmCy6OrrIw==}
engines: {node: '>= 4'}
@ -16207,7 +16314,7 @@ packages:
whatwg-url: 13.0.0
dev: false
/mongodb@6.12.0:
/mongodb@6.12.0(snappy@7.2.2):
resolution: {integrity: sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==}
engines: {node: '>=16.20.1'}
peerDependencies:
@ -16237,6 +16344,7 @@ packages:
'@mongodb-js/saslprep': 1.1.9
bson: 6.10.1
mongodb-connection-string-url: 3.0.0
snappy: 7.2.2
dev: false
/mongodb@6.3.0:
@ -19009,6 +19117,29 @@ packages:
- supports-color
dev: false
/snappy@7.2.2:
resolution: {integrity: sha512-iADMq1kY0v3vJmGTuKcFWSXt15qYUz7wFkArOrsSg0IFfI3nJqIJvK2/ZbEIndg7erIJLtAVX2nSOqPz7DcwbA==}
engines: {node: '>= 10'}
optionalDependencies:
'@napi-rs/snappy-android-arm-eabi': 7.2.2
'@napi-rs/snappy-android-arm64': 7.2.2
'@napi-rs/snappy-darwin-arm64': 7.2.2
'@napi-rs/snappy-darwin-x64': 7.2.2
'@napi-rs/snappy-freebsd-x64': 7.2.2
'@napi-rs/snappy-linux-arm-gnueabihf': 7.2.2
'@napi-rs/snappy-linux-arm64-gnu': 7.2.2
'@napi-rs/snappy-linux-arm64-musl': 7.2.2
'@napi-rs/snappy-linux-x64-gnu': 7.2.2
'@napi-rs/snappy-linux-x64-musl': 7.2.2
'@napi-rs/snappy-win32-arm64-msvc': 7.2.2
'@napi-rs/snappy-win32-ia32-msvc': 7.2.2
'@napi-rs/snappy-win32-x64-msvc': 7.2.2
dev: false
/snappyjs@0.7.0:
resolution: {integrity: sha512-u5iEEXkMe2EInQio6Wv9LWHOQYRDbD2O9hzS27GpT/lwfIQhTCnHCTqedqHIHe9ZcvQo+9au6vngQayipz1NYw==}
dev: false
/sockjs@0.3.24:
resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
dependencies:
@ -21793,8 +21924,9 @@ packages:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
dev: false
file:projects/account-service.tgz:
file:projects/account-service.tgz(snappy@7.2.2):
resolution: {integrity: sha512-oAW0UD+ThGbtuXdyaoWJoe93XY7bLO0K2uZneePiHsI3KZM3z9st9fjxSbJE4wmC9iE2wmzNYTN6AHrcFxvRrQ==, tarball: file:projects/account-service.tgz}
id: file:projects/account-service.tgz
name: '@rush-temp/account-service'
version: 0.0.0
dependencies:
@ -21802,7 +21934,6 @@ packages:
'@types/jest': 29.5.12
'@types/koa': 2.15.0
'@types/koa-bodyparser': 4.3.12
'@types/koa-morgan': 1.0.8
'@types/koa-router': 7.4.8
'@types/koa__cors': 5.0.0
'@types/node': 20.11.19
@ -21818,9 +21949,8 @@ packages:
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
koa: 2.15.3
koa-bodyparser: 4.4.1
koa-morgan: 1.0.1
koa-router: 12.0.1
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
@ -21843,7 +21973,7 @@ packages:
- supports-color
dev: false
file:projects/account.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2):
file:projects/account.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2):
resolution: {integrity: sha512-aFUxA1twR0m+7sDVFXyKoeVQtVLMrr973LpLK6LHrRa+PD010X6+AyoOkkyVJKFN0Q6zu2Oqz88PsEt50Z2Mjg==, tarball: file:projects/account.tgz}
id: file:projects/account.tgz
name: '@rush-temp/account'
@ -21859,7 +21989,7 @@ packages:
eslint-plugin-n: 15.7.0(eslint@8.56.0)
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
otp-generator: 4.0.1
postgres: 3.4.5
prettier: 3.2.5
@ -22383,7 +22513,7 @@ packages:
- ts-node
dev: false
file:projects/auth-providers.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2):
file:projects/auth-providers.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2):
resolution: {integrity: sha512-jUJhz8FiPT3x0ybVjdPysK9HBA/E1UzU+QraBxLurUXjwKzqnob4Jw112MUJzyHjAiAmYQGYq7jEePiav6nnMQ==, tarball: file:projects/auth-providers.tgz}
id: file:projects/auth-providers.tgz
name: '@rush-temp/auth-providers'
@ -22410,7 +22540,7 @@ packages:
koa-passport: 6.0.0
koa-router: 12.0.1
koa-session: 6.4.0
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
openid-client: 5.7.0
passport-custom: 1.1.1
passport-github2: 0.1.12
@ -22904,12 +23034,13 @@ packages:
dev: false
file:projects/client-resources.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2):
resolution: {integrity: sha512-zqTNrWtf8+kFkWdM9yok0EgXP9QsxCFomNW1HWyBp0arKXDQMjgA6UJ5qviDhYPjFzQzJil5DRax82wZfvVSkw==, tarball: file:projects/client-resources.tgz}
resolution: {integrity: sha512-s2VP7YDaXR6VMITb2/kgWe69RxM1XaTdNHQJfliJfFaV88egZSK6JNmB40FoA/QY0Vvf7SmJH/Ld+bvjZqGpWA==, tarball: file:projects/client-resources.tgz}
id: file:projects/client-resources.tgz
name: '@rush-temp/client-resources'
version: 0.0.0
dependencies:
'@types/jest': 29.5.12
'@types/snappyjs': 0.7.1
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
eslint: 8.56.0
@ -22919,6 +23050,7 @@ packages:
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
prettier: 3.2.5
snappyjs: 0.7.0
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
@ -22999,13 +23131,14 @@ packages:
dev: false
file:projects/cloud-transactor.tgz(@types/node@20.11.19)(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4):
resolution: {integrity: sha512-6kBv/3KfTsOvsDrfVXQvQwtLM72ltx4oPHc3cJ9xtG82XLeQLLpeJmCy6CNDVOtXaqnagwF5TKm/zCw4sc/dFQ==, tarball: file:projects/cloud-transactor.tgz}
resolution: {integrity: sha512-sLn0+hzDxI1PlNcx3XiLzwU9xU+mui2QodGtjpn7oS5NWnGWM42fbnwfVP35akfki8kKOZ3pE5CcMKQ6ffjUzg==, tarball: file:projects/cloud-transactor.tgz}
id: file:projects/cloud-transactor.tgz
name: '@rush-temp/cloud-transactor'
version: 0.0.0
dependencies:
'@cloudflare/workers-types': 4.20241022.0
'@types/jest': 29.5.12
'@types/snappyjs': 0.7.1
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.6.2)
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2)
esbuild: 0.24.2
@ -23017,6 +23150,7 @@ packages:
itty-router: 5.0.18
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
prettier: 3.2.5
snappyjs: 0.7.0
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.6.2)
typescript: 5.6.2
wrangler: 3.97.0(@cloudflare/workers-types@4.20241022.0)(bufferutil@4.0.8)(utf-8-validate@6.0.4)
@ -23097,7 +23231,7 @@ packages:
- ts-node
dev: false
file:projects/collaborator.tgz(@tiptap/pm@2.6.6)(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-protocols@1.0.6):
file:projects/collaborator.tgz(@tiptap/pm@2.6.6)(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(y-protocols@1.0.6):
resolution: {integrity: sha512-5wz+fFNfftwF7QP2u/dvfT2DYB7xFgplfhalPFYz8sLmXJ0NPVsXcr7qve637Vw8tjwjf4zzk3MJpfeJRcWLXQ==, tarball: file:projects/collaborator.tgz}
id: file:projects/collaborator.tgz
name: '@rush-temp/collaborator'
@ -23127,7 +23261,7 @@ packages:
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
express: 4.21.2
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
@ -26821,7 +26955,7 @@ packages:
- ts-node
dev: false
file:projects/mongo.tgz(esbuild@0.24.2)(ts-node@10.9.2):
file:projects/mongo.tgz(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2):
resolution: {integrity: sha512-aqU57iG6awiTX9qWSrzXMKyHSbt0V8mKAutQjE3uCx9FdPpnGiZjJflWsMS5PaZ4MdNazv2vUg4XPDHKCc4A/A==, tarball: file:projects/mongo.tgz}
id: file:projects/mongo.tgz
name: '@rush-temp/mongo'
@ -26838,7 +26972,7 @@ packages:
eslint-plugin-n: 15.7.0(eslint@8.56.0)
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
typescript: 5.3.3
@ -27209,8 +27343,9 @@ packages:
- ts-node
dev: false
file:projects/pod-account.tgz:
file:projects/pod-account.tgz(snappy@7.2.2):
resolution: {integrity: sha512-DCZlxY22Z2TNo08v2hcwz+2yg0HfoH2psDkdlVGlzX5KwZt6knEzAUZeb+MiOb7KpGSQoKp4jJDcydUcC+QsVQ==, tarball: file:projects/pod-account.tgz}
id: file:projects/pod-account.tgz
name: '@rush-temp/pod-account'
version: 0.0.0
dependencies:
@ -27234,9 +27369,8 @@ packages:
koa: 2.15.3
koa-bodyparser: 4.4.1
koa-router: 12.0.1
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
prettier-plugin-svelte: 3.2.1(prettier@3.2.5)(svelte@4.2.11)
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
typescript: 5.3.3
@ -27258,7 +27392,7 @@ packages:
- supports-color
dev: false
file:projects/pod-ai-bot.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(zod@3.23.8):
file:projects/pod-ai-bot.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(zod@3.23.8):
resolution: {integrity: sha512-R2ByQWsnvxxBGk/Ql7z8CK8NRb4XXREC0rndthdpfqw1dhwofuHiHpU2sb7L+OTHiz0do16L5gOLb7R1CbMecw==, tarball: file:projects/pod-ai-bot.tgz}
id: file:projects/pod-ai-bot.tgz
name: '@rush-temp/pod-ai-bot'
@ -27269,7 +27403,6 @@ packages:
'@types/express': 4.17.21
'@types/jest': 29.5.12
'@types/node': 20.11.19
'@types/node-fetch': 2.6.11
'@types/uuid': 8.3.4
'@types/ws': 8.5.11
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
@ -27288,8 +27421,7 @@ packages:
form-data: 4.0.0
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
js-tiktoken: 1.0.14
mongodb: 6.12.0
node-fetch: 2.7.0
mongodb: 6.12.0(snappy@7.2.2)
openai: 4.56.0(zod@3.23.8)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
@ -27319,7 +27451,7 @@ packages:
- zod
dev: false
file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4):
file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4):
resolution: {integrity: sha512-KuE4/ZuLMoEOqY2QyXv7AD0uPt5J7Uwt6jP70iWXcR2oET1+BhD2QTm/9MNsgOsnfiqp0Tdv06pfu7fb2A2Gcw==, tarball: file:projects/pod-analytics-collector.tgz}
id: file:projects/pod-analytics-collector.tgz
name: '@rush-temp/pod-analytics-collector'
@ -27330,7 +27462,6 @@ packages:
'@types/express': 4.17.21
'@types/jest': 29.5.12
'@types/node': 20.11.19
'@types/ws': 8.5.11
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
cors: 2.8.5
@ -27344,13 +27475,12 @@ packages:
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
express: 4.21.2
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
puppeteer: 22.14.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@6.0.4)
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
typescript: 5.3.3
ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
transitivePeerDependencies:
- '@aws-sdk/credential-providers'
- '@babel/core'
@ -27407,7 +27537,7 @@ packages:
- supports-color
dev: false
file:projects/pod-calendar.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4):
file:projects/pod-calendar.tgz(bufferutil@4.0.8)(snappy@7.2.2)(ts-node@10.9.2)(utf-8-validate@6.0.4):
resolution: {integrity: sha512-THWVQC4htKDjD5lYArV/wgfiwaIoY+a82QlSzT2zRDoJwCzs0ivWxnl+eeCGMgTwb3YA5sbhu9afg3P1MWjNpQ==, tarball: file:projects/pod-calendar.tgz}
id: file:projects/pod-calendar.tgz
name: '@rush-temp/pod-calendar'
@ -27437,7 +27567,7 @@ packages:
googleapis: 122.0.0
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
jwt-simple: 0.5.6
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3)
@ -27586,7 +27716,7 @@ packages:
- supports-color
dev: false
file:projects/pod-github.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-prosemirror@1.2.12):
file:projects/pod-github.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4)(y-prosemirror@1.2.12):
resolution: {integrity: sha512-VO1ipLvo8rWOvJVHMLOW5Xl6JkxWOw7wKEpGWweoJDdrYUIK+od4eVqaGDy2YgyXfQOxmJFTGOZ0l84+PcS3hw==, tarball: file:projects/pod-github.tgz}
id: file:projects/pod-github.tgz
name: '@rush-temp/pod-github'
@ -27646,7 +27776,7 @@ packages:
graphql-binding: 2.5.2
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
markdown-it: 14.0.0
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
octokit: 3.2.1
prettier: 3.2.5
smee-client: 1.2.5
@ -27675,7 +27805,7 @@ packages:
- y-prosemirror
dev: false
file:projects/pod-gmail.tgz(ts-node@10.9.2):
file:projects/pod-gmail.tgz(snappy@7.2.2)(ts-node@10.9.2):
resolution: {integrity: sha512-/NcwrUow5fptRQxcxnzc5ZT/wtBBdlWQRT+IglOudqZbVoN/aSwAXaKd4BoPTyGOPW0D0M2SLYFXZlPvhV4BjQ==, tarball: file:projects/pod-gmail.tgz}
id: file:projects/pod-gmail.tgz
name: '@rush-temp/pod-gmail'
@ -27687,7 +27817,6 @@ packages:
'@types/jest': 29.5.12
'@types/node': 20.11.19
'@types/uuid': 8.3.4
'@types/ws': 8.5.11
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
cors: 2.8.5
@ -27707,7 +27836,7 @@ packages:
googleapis: 122.0.0
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
jwt-simple: 0.5.6
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3)
@ -27826,7 +27955,7 @@ packages:
dev: false
file:projects/pod-server.tgz(utf-8-validate@6.0.4):
resolution: {integrity: sha512-4gQfkwfde44+kJ+YPimPEoDHtgdMRy0+J2xk/Uum9wWjKHCe8tQsQZUJxp6S5BU3DPBMaVsC0h9N0jxHpWK49A==, tarball: file:projects/pod-server.tgz}
resolution: {integrity: sha512-U7wNYw+h8a6hEV6fwXYJFStTk5noW4LAsL1G4JCJjyQ7PVzlmXZqGncFe+bq5EqgYgbOewZ2tR+T8rB8HWi9Cw==, tarball: file:projects/pod-server.tgz}
id: file:projects/pod-server.tgz
name: '@rush-temp/pod-server'
version: 0.0.0
@ -27849,6 +27978,8 @@ packages:
msgpackr: 1.11.2
msgpackr-extract: 3.0.3
prettier: 3.2.5
snappy: 7.2.2
snappyjs: 0.7.0
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
typescript: 5.3.3
@ -27907,8 +28038,9 @@ packages:
- supports-color
dev: false
file:projects/pod-sign.tgz:
file:projects/pod-sign.tgz(snappy@7.2.2):
resolution: {integrity: sha512-2CvZ6MihYZ/0DXWllTffUrvNyRjLJvvUkcT36EpVmgydo2F4guxAhrnsyaivxNPNwP8NuSy7JJ4uXXOYNeXCQg==, tarball: file:projects/pod-sign.tgz}
id: file:projects/pod-sign.tgz
name: '@rush-temp/pod-sign'
version: 0.0.0
dependencies:
@ -27921,7 +28053,6 @@ packages:
'@types/express': 4.17.21
'@types/jest': 29.5.12
'@types/node': 20.11.19
'@types/ws': 8.5.11
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
cors: 2.8.5
@ -27935,7 +28066,7 @@ packages:
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
express: 4.21.2
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
node-forge: 1.3.1
pdf-lib: 1.17.1
prettier: 3.2.5
@ -28000,7 +28131,7 @@ packages:
- supports-color
dev: false
file:projects/pod-telegram-bot.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4):
file:projects/pod-telegram-bot.tgz(bufferutil@4.0.8)(snappy@7.2.2)(utf-8-validate@6.0.4):
resolution: {integrity: sha512-QcNX6QCVKgZ6cV4ZkPBzdPH0Nu1F1sQ7yIMYQ4ikoR/BWWBB2U4E/YWd10I3c34QV3DUbKo3CID8EtkzrXadYQ==, tarball: file:projects/pod-telegram-bot.tgz}
id: file:projects/pod-telegram-bot.tgz
name: '@rush-temp/pod-telegram-bot'
@ -28012,7 +28143,6 @@ packages:
'@types/express': 4.17.21
'@types/jest': 29.5.12
'@types/node': 20.11.19
'@types/node-fetch': 2.6.11
'@types/otp-generator': 4.0.2
'@types/ws': 8.5.11
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
@ -28029,8 +28159,7 @@ packages:
express: 4.21.2
htmlparser2: 9.1.0
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
node-fetch: 2.7.0
mongodb: 6.12.0(snappy@7.2.2)
otp-generator: 4.0.1
prettier: 3.2.5
telegraf: 4.16.3
@ -28059,7 +28188,7 @@ packages:
- utf-8-validate
dev: false
file:projects/pod-telegram.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4):
file:projects/pod-telegram.tgz(bufferutil@4.0.8)(snappy@7.2.2)(ts-node@10.9.2)(utf-8-validate@6.0.4):
resolution: {integrity: sha512-FAYbl5GmRCS3fOR5eUXKNS8KmwnwB+7ZZ68vDi5lfeH4hkJky/VdR5yq4dX5SzOB35e7hz9JWriDGxfjUcx6Wg==, tarball: file:projects/pod-telegram.tgz}
id: file:projects/pod-telegram.tgz
name: '@rush-temp/pod-telegram'
@ -28090,7 +28219,7 @@ packages:
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
jwt-simple: 0.5.6
mime: 3.0.0
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
telegram: 2.22.2
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
@ -28120,8 +28249,9 @@ packages:
- utf-8-validate
dev: false
file:projects/pod-workspace.tgz:
file:projects/pod-workspace.tgz(snappy@7.2.2):
resolution: {integrity: sha512-6wRqrWl0oZUzQ2CZBpPK09doQpYepraNAwCO3OcPDaRnDfQo0WBwLvfWOdDVW3REunCCh/DHMxGpuiLnaQX4KQ==, tarball: file:projects/pod-workspace.tgz}
id: file:projects/pod-workspace.tgz
name: '@rush-temp/pod-workspace'
version: 0.0.0
dependencies:
@ -28137,7 +28267,7 @@ packages:
eslint-plugin-n: 15.7.0(eslint@8.56.0)
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3)
@ -31217,7 +31347,7 @@ packages:
- ts-node
dev: false
file:projects/server-tool.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2):
file:projects/server-tool.tgz(@types/node@20.11.19)(esbuild@0.24.2)(snappy@7.2.2)(ts-node@10.9.2):
resolution: {integrity: sha512-G/gF05AF5jsncB4bMGt9HXus2GLzKjAwYPYPlanY7M4tavCE8gOstoBPgW8I/ETxaRI3oztLV7G5UoCHEGON3g==, tarball: file:projects/server-tool.tgz}
id: file:projects/server-tool.tgz
name: '@rush-temp/server-tool'
@ -31237,7 +31367,7 @@ packages:
fast-equals: 5.0.1
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
js-yaml: 4.1.0
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
prettier: 3.2.5
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
typescript: 5.3.3
@ -31444,7 +31574,7 @@ packages:
dev: false
file:projects/server-ws.tgz(esbuild@0.24.2)(ts-node@10.9.2):
resolution: {integrity: sha512-Uw0sIkrmlc+pFs1pavpPYPTUS/SvzBIzXygFUw9PGViypnUo54AYq9QLGEXs1dg2HU8TNcPbgtdRx+4S8fTUMA==, tarball: file:projects/server-ws.tgz}
resolution: {integrity: sha512-9PP7kE8LXoZ+7r6OwLp26KT+JFAQtSwg5QP/awwXjcsV2t3yphDYKbdAJuVG5xlLfHW52Xn4NRbr0wFhfwS0sg==, tarball: file:projects/server-ws.tgz}
id: file:projects/server-ws.tgz
name: '@rush-temp/server-ws'
version: 0.0.0
@ -31469,6 +31599,7 @@ packages:
express: 4.21.2
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
prettier: 3.2.5
snappy: 7.2.2
ts-jest: 29.1.2(esbuild@0.24.2)(jest@29.7.0)(typescript@5.3.3)
typescript: 5.3.3
utf-8-validate: 6.0.4
@ -32503,7 +32634,6 @@ packages:
'@tiptap/extension-table-header': 2.6.6(@tiptap/core@2.6.6)
'@tiptap/extension-table-row': 2.6.6(@tiptap/core@2.6.6)
'@tiptap/extension-text-align': 2.11.0(@tiptap/core@2.6.6)
'@tiptap/extension-text-style': 2.11.0(@tiptap/core@2.6.6)
'@tiptap/extension-typography': 2.6.6(@tiptap/core@2.6.6)
'@tiptap/extension-underline': 2.6.6(@tiptap/core@2.6.6)
'@tiptap/pm': 2.6.6
@ -32867,8 +32997,9 @@ packages:
- ts-node
dev: false
file:projects/tool.tgz:
file:projects/tool.tgz(snappy@7.2.2):
resolution: {integrity: sha512-Cw36G6uROkPkNIJDl7WeHjhHKmbQth6wmjMu4vBQGz+DfuPf9Eg63SFKq29rOssZ4LlJB1d22Y7XnxilCuXK5g==, tarball: file:projects/tool.tgz}
id: file:projects/tool.tgz
name: '@rush-temp/tool'
version: 0.0.0
dependencies:
@ -32893,11 +33024,10 @@ packages:
eslint-plugin-n: 15.7.0(eslint@8.56.0)
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
fast-equals: 5.0.1
got: 11.8.6
jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2)
libphonenumber-js: 1.10.56
mime-types: 2.1.35
mongodb: 6.12.0
mongodb: 6.12.0(snappy@7.2.2)
msgpackr: 1.11.2
msgpackr-extract: 3.0.3
postgres: 3.4.5

View File

@ -13,7 +13,7 @@ const defaultConfig = {
keepNames: false,
sourcemap: false,
logLevel: 'error',
external: [],
external: ['snappy'],
define: {},
};

View File

@ -14,7 +14,7 @@
"_phase:bundle": "rushx bundle",
"_phase:docker-build": "rushx docker:build",
"_phase:docker-staging": "rushx docker:staging",
"bundle": "node ../../common/scripts/esbuild.js --entry=src/__start.ts --keep-names=true --sourcemap=external --define:MODEL_VERSION --define:GIT_REVISION",
"bundle": "node ../../common/scripts/esbuild.js --entry=src/__start.ts --keep-names=true --external=snappy --sourcemap=external --define:MODEL_VERSION --define:GIT_REVISION",
"docker:build": "../../common/scripts/docker_build.sh hardcoreeng/tool",
"docker:tbuild": "docker build -t hardcoreeng/tool . --platform=linux/amd64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/tool",
"docker:abuild": "docker build -t hardcoreeng/tool . --platform=linux/arm64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/tool",

View File

@ -0,0 +1,4 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
"rigPackageName": "@hcengineering/platform-rig"
}

View File

@ -34,14 +34,16 @@
"typescript": "^5.3.3",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"@types/jest": "^29.5.5"
"@types/jest": "^29.5.5",
"@types/snappyjs": "^0.7.1"
},
"dependencies": {
"@hcengineering/analytics": "^0.6.0",
"@hcengineering/platform": "^0.6.11",
"@hcengineering/core": "^0.6.32",
"@hcengineering/client": "^0.6.18",
"@hcengineering/rpc": "^0.6.5"
"@hcengineering/rpc": "^0.6.5",
"snappyjs": "^0.7.0"
},
"repository": "https://github.com/hcengineering/platform",
"publishConfig": {

View File

@ -57,6 +57,7 @@ import platform, {
broadcastEvent,
getMetadata
} from '@hcengineering/platform'
import { uncompress } from 'snappyjs'
import { HelloRequest, HelloResponse, RPCHandler, ReqId, type Response } from '@hcengineering/rpc'
@ -89,6 +90,7 @@ class RequestPromise {
class Connection implements ClientConnection {
private websocket: ClientSocket | null = null
binaryMode = false
compressionMode = false
private readonly requests = new Map<ReqId, RequestPromise>()
private lastId = 0
private interval: number | undefined
@ -107,7 +109,7 @@ class Connection implements ClientConnection {
private pingResponse: number = Date.now()
private helloRecieved: boolean = false
private helloReceived: boolean = false
private account: Account | undefined
@ -205,7 +207,7 @@ class Connection implements ClientConnection {
}
isConnected (): boolean {
return this.websocket != null && this.websocket.readyState === ClientSocketReadyState.OPEN && this.helloRecieved
return this.websocket != null && this.websocket.readyState === ClientSocketReadyState.OPEN && this.helloReceived
}
delay = 0
@ -289,9 +291,8 @@ class Connection implements ClientConnection {
}
if (resp.result === 'hello') {
const helloResp = resp as HelloResponse
if (helloResp.binary) {
this.binaryMode = true
}
this.binaryMode = helloResp.binary
this.compressionMode = helloResp.useCompression ?? false
// We need to clear dial timer, since we recieve hello response.
clearTimeout(this.dialTimer)
@ -307,7 +308,7 @@ class Connection implements ClientConnection {
return
}
this.account = helloResp.account
this.helloRecieved = true
this.helloReceived = true
if (this.upgrading) {
// We need to call upgrade since connection is upgraded
this.opt?.onUpgrade?.()
@ -439,6 +440,7 @@ class Connection implements ClientConnection {
private openConnection (ctx: MeasureContext, socketId: number): void {
this.binaryMode = false
this.helloReceived = false
// Use defined factory or browser default one.
const clientSocketFactory =
this.opt?.socketFactory ??
@ -503,11 +505,28 @@ class Connection implements ClientConnection {
}
if (event.data instanceof Blob) {
void event.data.arrayBuffer().then((data) => {
if (this.compressionMode && this.helloReceived) {
try {
data = uncompress(data)
} catch (err: any) {
// Ignore
console.error(err)
}
}
const resp = this.rpcHandler.readResponse<any>(data, this.binaryMode)
this.handleMsg(socketId, resp)
})
} else {
const resp = this.rpcHandler.readResponse<any>(event.data, this.binaryMode)
let data = event.data
if (this.compressionMode && this.helloReceived) {
try {
data = uncompress(data)
} catch (err: any) {
// Ignore
console.error(err)
}
}
const resp = this.rpcHandler.readResponse<any>(data, this.binaryMode)
this.handleMsg(socketId, resp)
}
}
@ -525,15 +544,14 @@ class Connection implements ClientConnection {
return
}
const useBinary = this.opt?.useBinaryProtocol ?? getMetadata(client.metadata.UseBinaryProtocol) ?? true
const useCompression =
this.compressionMode =
this.opt?.useProtocolCompression ?? getMetadata(client.metadata.UseProtocolCompression) ?? false
this.helloRecieved = false
const helloRequest: HelloRequest = {
method: 'hello',
params: [],
id: -1,
binary: useBinary,
compression: useCompression
compression: this.compressionMode
}
ctx.withSync('send-hello', {}, () => this.websocket?.send(this.rpcHandler.serialize(helloRequest, false)))
}

View File

@ -15,7 +15,7 @@
"_phase:docker-build": "rushx docker:build",
"_phase:docker-staging": "rushx docker:staging",
"get-model": "node ../../common/scripts/esbuild.js --entry=src/get-model.ts --keep-names=true --bundle=true --define=MODEL_VERSION --define=VERSION --define=GIT_REVISION && node ./bundle/bundle.js > ./bundle/model.json",
"bundle": "rushx get-model && node ../../common/scripts/esbuild.js --keep-names=true --bundle=true --external=*.node --sourcemap=external",
"bundle": "rushx get-model && node ../../common/scripts/esbuild.js --keep-names=true --bundle=true --external=*.node --external=snappy --sourcemap=external",
"docker:build": "../../common/scripts/docker_build.sh hardcoreeng/fulltext",
"docker:tbuild": "docker build -t hardcoreeng/fulltext . --platform=linux/amd64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/fulltext",
"docker:abuild": "docker build -t hardcoreeng/fulltext . --platform=linux/arm64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/fulltext",

View File

@ -17,7 +17,7 @@
"_phase:docker-build": "rushx docker:build",
"_phase:docker-staging": "rushx docker:staging",
"get-model": "node ../../common/scripts/esbuild.js --entry=src/get-model.ts -keep-names=true --define=MODEL_VERSION --define=VERSION --define=GIT_REVISION --bundle=true && node ./bundle/bundle.js > ./bundle/model.json",
"bundle": "rushx get-model && node ../../common/scripts/esbuild.js --entry=src/__start.ts --keep-names=true --bundle=true --sourcemap=external --external=*.node --external=*.node --external=bufferutil --external=snappy --define=MODEL_VERSION --define=VERSION --define=GIT_REVISION --external=utf-8-validate --external=msgpackr-extract",
"bundle": "rushx get-model && node ../../common/scripts/esbuild.js --entry=src/__start.ts --keep-names=true --bundle=true --sourcemap=external --external=*.node --external=bufferutil --external=snappy --define=MODEL_VERSION --define=VERSION --define=GIT_REVISION --external=utf-8-validate --external=msgpackr-extract",
"docker:build": "../../common/scripts/docker_build.sh hardcoreeng/transactor",
"docker:tbuild": "docker build -t hardcoreeng/transactor . --platform=linux/amd64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/transactor",
"docker:abuild": "docker build -t hardcoreeng/transactor . --platform=linux/arm64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/transactor",
@ -51,7 +51,8 @@
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"@types/jest": "^29.5.5",
"@hcengineering/model-all": "^0.6.0"
"@hcengineering/model-all": "^0.6.0",
"snappyjs": "^0.7.0"
},
"dependencies": {
"@hcengineering/core": "^0.6.32",
@ -77,6 +78,8 @@
"bufferutil": "^4.0.8",
"msgpackr": "^1.11.2",
"msgpackr-extract": "^3.0.3",
"@hcengineering/postgres": "^0.6.0"
"@hcengineering/postgres": "^0.6.0",
"snappy": "^7.2.2",
"@hcengineering/rpc": "^0.6.5"
}
}

View File

@ -0,0 +1,23 @@
import { readFile } from 'fs/promises'
import { compress } from 'snappy'
import { RPCHandler } from '@hcengineering/rpc'
describe('compression-tests', () => {
it('check-snappy', async () => {
const modelJSON = (await readFile('./bundle/model.json')).toString()
const txes = JSON.parse(modelJSON)
const compressed = await compress(modelJSON)
console.log(modelJSON.length, compressed.length, compressed.length / modelJSON.length)
expect(compressed.length).toBeLessThan(modelJSON.length)
const rpc = new RPCHandler()
const jsonData = rpc.serialize(txes, true)
const compressed2 = await compress(jsonData)
console.log(jsonData.length, compressed2.length, compressed2.length / jsonData.length)
expect(compressed2.length).toBeLessThan(jsonData.length)
})
})

View File

@ -709,7 +709,6 @@ export type ServerFactory = (
ctx: MeasureContext,
pipelineFactory: PipelineFactory,
port: number,
enableCompression: boolean,
accountsUrl: string,
externalStorage: StorageAdapter
) => () => Promise<void>

View File

@ -50,6 +50,7 @@ export interface HelloResponse extends Response<any> {
lastTx?: string
lastHash?: string // Last model hash
account: Account
useCompression?: boolean
}
function replacer (key: string, value: any): any {

View File

@ -117,7 +117,8 @@ class TSessionManager implements SessionManager {
stop: () => Promise<string | undefined>
}
| undefined,
readonly accountsUrl: string
readonly accountsUrl: string,
readonly enableCompression: boolean
) {
this.checkInterval = setInterval(() => {
this.handleTick()
@ -1082,7 +1083,7 @@ class TSessionManager implements SessionManager {
): Promise<void> {
const hello = request as HelloRequest
service.binaryMode = hello.binary ?? false
service.useCompression = hello.compression ?? false
service.useCompression = this.enableCompression ? hello.compression ?? false : false
if (LOGGING_ENABLED) {
ctx.info('hello happen', {
@ -1109,7 +1110,8 @@ class TSessionManager implements SessionManager {
serverVersion: this.serverVersion,
lastTx: pipeline.context.lastTx,
lastHash: pipeline.context.lastHash,
account: service.getRawAccount(pipeline)
account: service.getRawAccount(pipeline),
useCompression: service.useCompression
}
ws.send(requestCtx, helloResponse, false, false)
}
@ -1126,9 +1128,18 @@ export function createSessionManager (
stop: () => Promise<string | undefined>
}
| undefined,
accountsUrl: string
accountsUrl: string,
enableCompression: boolean
): SessionManager {
return new TSessionManager(ctx, sessionFactory, timeouts, brandingMap ?? null, profiling, accountsUrl)
return new TSessionManager(
ctx,
sessionFactory,
timeouts,
brandingMap ?? null,
profiling,
accountsUrl,
enableCompression
)
}
/**
@ -1160,7 +1171,8 @@ export function startSessionManager (
reconnectTimeout: 500
},
opt.profiling,
opt.accountsUrl
opt.accountsUrl,
opt.enableCompression ?? false
)
return {
shutdown: opt.serverFactory(
@ -1171,7 +1183,6 @@ export function startSessionManager (
ctx,
opt.pipelineFactory,
opt.port,
opt.enableCompression ?? false,
opt.accountsUrl,
opt.externalStorage
),

View File

@ -51,6 +51,7 @@
"express": "^4.21.2",
"utf-8-validate": "^6.0.4",
"ws": "^8.18.0",
"body-parser": "^1.20.2"
"body-parser": "^1.20.2",
"snappy": "^7.2.2"
}
}

View File

@ -45,7 +45,9 @@ import os from 'os'
import { WebSocketServer, type RawData, type WebSocket } from 'ws'
import 'bufferutil'
import { compress } from 'snappy'
import 'utf-8-validate'
let profiling = false
const rpcHandler = new RPCHandler()
/**
@ -60,14 +62,12 @@ export function startHttpServer (
ctx: MeasureContext,
pipelineFactory: PipelineFactory,
port: number,
enableCompression: boolean,
accountsUrl: string,
externalStorage: StorageAdapter
): () => Promise<void> {
if (LOGGING_ENABLED) {
ctx.info('starting server on', {
port,
enableCompression,
accountsUrl,
parallel: os.availableParallelism()
})
@ -324,27 +324,7 @@ export function startHttpServer (
const httpServer = http.createServer(app)
const wss = new WebSocketServer({
noServer: true,
perMessageDeflate: enableCompression
? {
zlibDeflateOptions: {
// See zlib defaults.
chunkSize: 32 * 1024,
memLevel: 1,
level: 1
},
zlibInflateOptions: {
chunkSize: 32 * 1024,
level: 1,
memLevel: 1
},
serverNoContextTakeover: true,
clientNoContextTakeover: true,
// Below options specified as default values.
concurrencyLimit: Math.max(10, os.availableParallelism()), // Limits zlib concurrency for perf.
threshold: 1024 // Size (in bytes) below which messages
// should not be compressed if context takeover is disabled.
}
: false,
perMessageDeflate: false,
skipUTF8Validation: true,
maxPayload: 250 * 1024 * 1024,
clientTracking: false // We do not need to track clients inside clients.
@ -566,7 +546,7 @@ function createWebsocketClientSocket (
}
ws.send(pongConst)
},
send: (ctx: MeasureContext, msg, binary, compression) => {
send: (ctx: MeasureContext, msg, binary, _compression) => {
const smsg = rpcHandler.serialize(msg, binary)
ctx.measure('send-data', smsg.length)
@ -574,15 +554,24 @@ function createWebsocketClientSocket (
if (ws.readyState !== ws.OPEN || cs.isClosed) {
return
}
ws.send(smsg, { binary: true, compress: compression }, (err) => {
const handleErr = (err?: Error): void => {
ctx.measure('msg-send-delta', Date.now() - st)
if (err != null) {
if (!`${err.message}`.includes('WebSocket is not open')) {
ctx.error('send error', { err })
Analytics.handleError(err)
}
}
ctx.measure('msg-send-delta', Date.now() - st)
})
}
if (_compression) {
void compress(smsg).then((msg: any) => {
ws.send(msg, { binary: true }, handleErr)
})
} else {
ws.send(smsg, { binary: true }, handleErr)
}
}
}
return cs

View File

@ -139,6 +139,7 @@ services:
- BRANDING_PATH=/var/cfg/branding.json
- FULLTEXT_URL=http://fulltext:4710
- STATS_URL=http://stats:4901
- ENABLE_COMPRESSION=true
collaborator:
image: hardcoreeng/collaborator
links:

View File

@ -39,7 +39,8 @@
"ts-jest": "^29.1.1",
"typescript": "^5.3.3",
"wrangler": "^3.97.0",
"esbuild": "^0.24.2"
"esbuild": "^0.24.2",
"@types/snappyjs": "^0.7.1"
},
"dependencies": {
"@hcengineering/core": "^0.6.32",
@ -54,6 +55,7 @@
"@hcengineering/server-pipeline": "^0.6.0",
"@hcengineering/server-token": "^0.6.11",
"@hcengineering/storage": "^0.6.0",
"itty-router": "^5.0.18"
"itty-router": "^5.0.18",
"snappyjs": "^0.7.0"
}
}

View File

@ -29,6 +29,7 @@ import serverPlugin, { decodeToken, type Token } from '@hcengineering/server-tok
import { DurableObject } from 'cloudflare:workers'
import { promisify } from 'util'
import { gzip } from 'zlib'
import { compress } from 'snappyjs'
// Approach usefull only for separate build, after model-all bundle phase is executed.
import { createPostgreeDestroyAdapter, createPostgresAdapter, createPostgresTxAdapter } from '@hcengineering/postgres'
@ -111,7 +112,8 @@ export class Transactor extends DurableObject<Env> {
reconnectTimeout: 3000
},
undefined,
this.accountsUrl
this.accountsUrl,
env.ENABLE_COMPRESSION === 'true'
)
})
}
@ -269,13 +271,18 @@ export class Transactor extends DurableObject<Env> {
return rpcHandler.readRequest(buffer, binary)
},
data: () => data,
send: (ctx: MeasureContext, msg, binary, compression) => {
const smsg = rpcHandler.serialize(msg, binary)
send: (ctx: MeasureContext, msg, binary, _compression) => {
let smsg = rpcHandler.serialize(msg, binary)
ctx.measure('send-data', smsg.length)
if (ws.readyState !== WebSocket.OPEN || cs.isClosed) {
return
}
if (_compression) {
smsg = compress(smsg)
}
ws.send(smsg)
},
sendPong: () => {

View File

@ -12,4 +12,6 @@ interface Env {
DB_URL: string | undefined
STATS_URL: string | undefined
ENABLE_COMPRESSION: string | undefined
}