Merge branch 'main' into sessions

This commit is contained in:
Philipinho
2026-03-26 17:29:28 +00:00
6 changed files with 69 additions and 55 deletions
@@ -1,4 +1,5 @@
import { IsNotEmpty, IsString, IsUUID } from 'class-validator';
import { IsEnum, IsNotEmpty, IsUUID } from 'class-validator';
import { UserRole } from '../../../common/helpers/types/permission';
export class UpdateWorkspaceUserRoleDto {
@IsNotEmpty()
@@ -6,6 +7,6 @@ export class UpdateWorkspaceUserRoleDto {
userId: string;
@IsNotEmpty()
@IsString()
@IsEnum(UserRole)
role: string;
}
+2 -3
View File
@@ -65,12 +65,10 @@ export class WsGateway
async handleMessage(client: Socket, data: any): Promise<void> {
if (this.wsService.isTreeEvent(data)) {
await this.wsService.handleTreeEvent(client, data);
return;
}
client.broadcast.emit('message', data);
}
/*
@SubscribeMessage('join-room')
handleJoinRoom(client: Socket, @MessageBody() roomName: string): void {
// if room is a space, check if user has permissions
@@ -81,6 +79,7 @@ export class WsGateway
handleLeaveRoom(client: Socket, @MessageBody() roomName: string): void {
client.leave(roomName);
}
*/
onModuleDestroy() {
if (this.server) {
+9
View File
@@ -27,6 +27,15 @@ export class WsService {
async handleTreeEvent(client: Socket, data: any): Promise<void> {
const room = getSpaceRoomName(data.spaceId);
if (!client.rooms.has(room)) {
return;
}
if (data.operation === 'refetchRootTreeNodeEvent') {
client.broadcast.to(room).emit('message', data);
return;
}
const hasRestrictions = await this.spaceHasRestrictions(data.spaceId);
if (!hasRestrictions) {
client.broadcast.to(room).emit('message', data);
+1
View File
@@ -14,4 +14,5 @@ export const TREE_EVENTS = new Set([
'addTreeNode',
'moveTreeNode',
'deleteTreeNode',
'refetchRootTreeNodeEvent',
]);
+6 -1
View File
@@ -119,7 +119,12 @@
"express-rate-limit": "8.2.2",
"minimatch@^3": "3.1.5",
"minimatch@^5": "5.1.8",
"flatted": "3.4.2"
"flatted": "3.4.2",
"picomatch@<2.3.2": "2.3.2",
"picomatch@>=4.0.0 <4.0.4": "4.0.4",
"fastify": "5.8.3",
"yaml@>=1.0.0 <1.10.3": "1.10.3",
"yaml@>=2.0.0 <2.8.3": "2.8.3"
},
"neverBuiltDependencies": []
}
+48 -49
View File
@@ -27,6 +27,11 @@ overrides:
minimatch@^3: 3.1.5
minimatch@^5: 5.1.8
flatted: 3.4.2
picomatch@<2.3.2: 2.3.2
picomatch@>=4.0.0 <4.0.4: 4.0.4
fastify: 5.8.3
yaml@>=1.0.0 <1.10.3: 1.10.3
yaml@>=2.0.0 <2.8.3: 2.8.3
patchedDependencies:
'@tiptap/core':
@@ -401,7 +406,7 @@ importers:
version: 18.3.1
'@vitejs/plugin-react':
specifier: ^6.0.0
version: 6.0.1(vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0))
version: 6.0.1(vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3))
eslint:
specifier: ^9.28.0
version: 9.39.4(jiti@2.4.2)
@@ -440,7 +445,7 @@ importers:
version: 8.57.1(eslint@9.39.4(jiti@2.4.2))(typescript@5.9.3)
vite:
specifier: ^8.0.1
version: 8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0)
version: 8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3)
apps/server:
dependencies:
@@ -7006,8 +7011,8 @@ packages:
fastify-plugin@5.1.0:
resolution: {integrity: sha512-FAIDA8eovSt5qcDgcBvDuX/v0Cjz0ohGhENZ/wpc3y+oZCY2afZ9Baqql3g/lC+OHRnciQol4ww7tuthOb9idw==}
fastify@5.8.2:
resolution: {integrity: sha512-lZmt3navvZG915IE+f7/TIVamxIwmBd+OMB+O9WBzcpIwOo6F0LTh0sluoMFk5VkrKTvvrwIaoJPkir4Z+jtAg==}
fastify@5.8.3:
resolution: {integrity: sha512-XJXpRQ41+rsJ/GLeP9vyDC+fBXilcTlEXokMSexkdEkla4uf7ZQNaI5xl3el+kW5TZQulqYxLr659ey/KX7XmQ==}
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -7019,7 +7024,7 @@ packages:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
picomatch: 4.0.4
peerDependenciesMeta:
picomatch:
optional: true
@@ -8978,16 +8983,12 @@ packages:
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
picomatch@2.3.2:
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
engines: {node: '>=8.6'}
picomatch@4.0.2:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
picomatch@4.0.3:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
picomatch@4.0.4:
resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'}
pify@4.0.1:
@@ -10456,7 +10457,7 @@ packages:
sugarss: ^5.0.0
terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
yaml: 2.8.3
peerDependenciesMeta:
'@types/node':
optional: true
@@ -10736,13 +10737,13 @@ packages:
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
yaml@1.10.3:
resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==}
engines: {node: '>= 6'}
yaml@2.7.0:
resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
engines: {node: '>= 14'}
yaml@2.8.3:
resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@18.1.3:
@@ -10869,7 +10870,7 @@ snapshots:
ajv: 8.18.0
ajv-formats: 3.0.1(ajv@8.18.0)
jsonc-parser: 3.3.1
picomatch: 4.0.2
picomatch: 4.0.4
rxjs: 7.8.1
source-map: 0.7.4
optionalDependencies:
@@ -10880,7 +10881,7 @@ snapshots:
ajv: 8.18.0
ajv-formats: 3.0.1(ajv@8.18.0)
jsonc-parser: 3.3.1
picomatch: 4.0.2
picomatch: 4.0.4
rxjs: 7.8.1
source-map: 0.7.4
optionalDependencies:
@@ -13577,7 +13578,7 @@ snapshots:
'@nestjs/common': 11.1.17(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
'@nestjs/core': 11.1.17(@nestjs/common@11.1.17(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/websockets@11.1.17)(reflect-metadata@0.2.2)(rxjs@7.8.2)
fast-querystring: 1.1.2
fastify: 5.8.2
fastify: 5.8.3
fastify-plugin: 5.1.0
find-my-way: 9.5.0
light-my-request: 6.6.0
@@ -13713,7 +13714,7 @@ snapshots:
jsonc-parser: 3.2.0
npm-run-path: 4.0.1
picocolors: 1.1.1
picomatch: 4.0.2
picomatch: 4.0.4
semver: 7.7.4
source-map-support: 0.5.19
tinyglobby: 0.2.15
@@ -13763,7 +13764,7 @@ snapshots:
chalk: 4.1.2
enquirer: 2.3.6
nx: 22.6.1
picomatch: 4.0.2
picomatch: 4.0.4
semver: 7.7.4
tslib: 2.8.1
yargs-parser: 21.1.1
@@ -16150,10 +16151,10 @@ snapshots:
'@vercel/oidc@3.1.0': {}
'@vitejs/plugin-react@6.0.1(vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0))':
'@vitejs/plugin-react@6.0.1(vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-rc.7
vite: 8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0)
vite: 8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3)
'@webassemblyjs/ast@1.14.1':
dependencies:
@@ -16362,7 +16363,7 @@ snapshots:
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
picomatch: 2.3.2
arg@4.1.3: {}
@@ -17010,7 +17011,7 @@ snapshots:
import-fresh: 3.3.0
parse-json: 5.2.0
path-type: 4.0.0
yaml: 1.10.2
yaml: 1.10.3
cosmiconfig@8.3.6(typescript@5.9.3):
dependencies:
@@ -18060,7 +18061,7 @@ snapshots:
fastify-plugin@5.1.0: {}
fastify@5.8.2:
fastify@5.8.3:
dependencies:
'@fastify/ajv-compiler': 4.0.5
'@fastify/error': 4.0.0
@@ -18086,9 +18087,9 @@ snapshots:
dependencies:
bser: 2.1.1
fdir@6.5.0(picomatch@4.0.3):
fdir@6.5.0(picomatch@4.0.4):
optionalDependencies:
picomatch: 4.0.3
picomatch: 4.0.4
fflate@0.4.8: {}
@@ -18952,7 +18953,7 @@ snapshots:
jest-regex-util: 30.0.1
jest-util: 30.3.0
jest-worker: 30.3.0
picomatch: 4.0.3
picomatch: 4.0.4
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3
@@ -18995,7 +18996,7 @@ snapshots:
'@types/stack-utils': 2.0.3
chalk: 4.1.2
graceful-fs: 4.2.11
picomatch: 4.0.3
picomatch: 4.0.4
pretty-format: 30.3.0
slash: 3.0.0
stack-utils: 2.0.6
@@ -19123,7 +19124,7 @@ snapshots:
chalk: 4.1.2
ci-info: 4.4.0
graceful-fs: 4.2.11
picomatch: 4.0.3
picomatch: 4.0.4
jest-util@30.3.0:
dependencies:
@@ -19132,7 +19133,7 @@ snapshots:
chalk: 4.1.2
ci-info: 4.4.0
graceful-fs: 4.2.11
picomatch: 4.0.3
picomatch: 4.0.4
jest-validate@30.3.0:
dependencies:
@@ -19700,7 +19701,7 @@ snapshots:
micromatch@4.0.8:
dependencies:
braces: 3.0.3
picomatch: 2.3.1
picomatch: 2.3.2
mime-db@1.52.0: {}
@@ -19903,7 +19904,7 @@ snapshots:
tree-kill: 1.2.2
tsconfig-paths: 4.2.0
tslib: 2.8.1
yaml: 2.7.0
yaml: 2.8.3
yargs: 17.7.2
yargs-parser: 21.1.1
optionalDependencies:
@@ -20268,11 +20269,9 @@ snapshots:
picocolors@1.1.1: {}
picomatch@2.3.1: {}
picomatch@2.3.2: {}
picomatch@4.0.2: {}
picomatch@4.0.3: {}
picomatch@4.0.4: {}
pify@4.0.1:
optional: true
@@ -20903,7 +20902,7 @@ snapshots:
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
picomatch: 2.3.2
readdirp@4.0.2: {}
@@ -21605,8 +21604,8 @@ snapshots:
tinyglobby@0.2.15:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
tiptap-extension-global-drag-handle@0.1.18: {}
@@ -21997,10 +21996,10 @@ snapshots:
vary@1.1.2: {}
vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0):
vite@8.0.1(@types/node@22.19.1)(esbuild@0.27.4)(jiti@2.4.2)(less@4.2.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.3
picomatch: 4.0.4
postcss: 8.5.8
rolldown: 1.0.0-rc.10
tinyglobby: 0.2.15
@@ -22013,7 +22012,7 @@ snapshots:
sugarss: 5.0.1(postcss@8.5.8)
terser: 5.39.0
tsx: 4.21.0
yaml: 2.7.0
yaml: 2.8.3
void-elements@3.1.0: {}
@@ -22290,9 +22289,9 @@ snapshots:
yallist@3.1.1: {}
yaml@1.10.2: {}
yaml@1.10.3: {}
yaml@2.7.0: {}
yaml@2.8.3: {}
yargs-parser@18.1.3:
dependencies: