@venturialstd/workflow 0.1.154 → 0.1.155

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-core.module.d.ts","sourceRoot":"","sources":["../src/workflow-core.module.ts"],"names":[],"mappings":"AAmCA,qBAuDa,kBAAkB;CAAG"}
1
+ {"version":3,"file":"workflow-core.module.d.ts","sourceRoot":"","sources":["../src/workflow-core.module.ts"],"names":[],"mappings":"AAkCA,qBAsDa,kBAAkB;CAAG"}
@@ -39,7 +39,6 @@ const workflow_session_service_1 = require("./services/workflow-session.service"
39
39
  const workflow_sse_service_1 = require("./services/workflow-sse.service");
40
40
  const workflow_user_service_1 = require("./services/workflow-user.service");
41
41
  const workflow_webhook_service_1 = require("./services/workflow-webhook.service");
42
- const workflow_realtime_gateway_1 = require("./gateways/workflow-realtime.gateway");
43
42
  let WorkflowCoreModule = class WorkflowCoreModule {
44
43
  };
45
44
  exports.WorkflowCoreModule = WorkflowCoreModule;
@@ -69,7 +68,6 @@ exports.WorkflowCoreModule = WorkflowCoreModule = __decorate([
69
68
  workflow_sse_controller_1.WorkflowSSEController,
70
69
  ],
71
70
  providers: [
72
- workflow_realtime_gateway_1.WorkflowRealtimeGateway,
73
71
  workflow_bulk_credential_service_1.WorkflowBulkCredentialService,
74
72
  workflow_service_1.WorkflowService,
75
73
  workflow_node_service_1.WorkflowNodeService,
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-core.module.js","sourceRoot":"","sources":["../src/workflow-core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,2GAAqG;AACrG,2FAAsF;AACtF,+GAAyG;AACzG,qFAAgF;AAChF,yGAAmG;AACnG,mFAA8E;AAC9E,gEAAsD;AACtD,0EAA+D;AAC/D,oFAAyE;AACzE,gFAAqE;AACrE,8EAA2F;AAC3F,oGAAwF;AACxF,0EAA+D;AAC/D,8FAAkF;AAClF,gFAAqE;AACrE,0EAA+D;AAC/D,gFAAqE;AACrE,kEAA8D;AAC9D,4EAAuE;AACvE,sFAAiF;AACjF,kGAA4F;AAC5F,kFAA6E;AAC7E,gFAA2E;AAC3E,sGAAgG;AAChG,4EAAuE;AACvE,gGAA0F;AAC1F,kFAA6E;AAC7E,0EAAqE;AACrE,4EAAuE;AACvE,kFAA6E;AAC7E,oFAA+E;AAyDxE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAvD9B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,0BAAQ;gBACR,mCAAY;gBACZ,mCAAY;gBACZ,6CAAiB;gBACjB,sDAAqB;gBACrB,yCAAe;gBACf,4DAAwB;gBACxB,uCAAoB;gBACpB,mCAAY;gBACZ,yCAAe;gBACf,yCAAe;aAChB,CAAC;SACH;QACD,WAAW,EAAE;YACX,sEAAgC;YAChC,uDAAyB;YACzB,iDAAsB;YACtB,oEAA+B;YAC/B,0EAAkC;YAClC,+CAAqB;SACtB;QACD,SAAS,EAAE;YACT,mDAAuB;YACvB,gEAA6B;YAC7B,kCAAe;YACf,2CAAmB;YACnB,8DAA4B;YAC5B,2CAAmB;YACnB,qDAAwB;YACxB,iDAAsB;YACtB,iDAAsB;YACtB,oEAA+B;YAC/B,+CAAqB;YACrB,2CAAmB;YACnB,iDAAsB;YACtB,yCAAkB;SACnB;QACD,OAAO,EAAE;YACP,kCAAe;YACf,2CAAmB;YACnB,8DAA4B;YAC5B,2CAAmB;YACnB,qDAAwB;YACxB,iDAAsB;YACtB,iDAAsB;YACtB,oEAA+B;YAC/B,+CAAqB;YACrB,2CAAmB;YACnB,iDAAsB;YACtB,yCAAkB;SACnB;KACF,CAAC;GACW,kBAAkB,CAAG"}
1
+ {"version":3,"file":"workflow-core.module.js","sourceRoot":"","sources":["../src/workflow-core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,2GAAqG;AACrG,2FAAsF;AACtF,+GAAyG;AACzG,qFAAgF;AAChF,yGAAmG;AACnG,mFAA8E;AAC9E,gEAAsD;AACtD,0EAA+D;AAC/D,oFAAyE;AACzE,gFAAqE;AACrE,8EAA2F;AAC3F,oGAAwF;AACxF,0EAA+D;AAC/D,8FAAkF;AAClF,gFAAqE;AACrE,0EAA+D;AAC/D,gFAAqE;AACrE,kEAA8D;AAC9D,4EAAuE;AACvE,sFAAiF;AACjF,kGAA4F;AAC5F,kFAA6E;AAC7E,gFAA2E;AAC3E,sGAAgG;AAChG,4EAAuE;AACvE,gGAA0F;AAC1F,kFAA6E;AAC7E,0EAAqE;AACrE,4EAAuE;AACvE,kFAA6E;AAwDtE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAtD9B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,0BAAQ;gBACR,mCAAY;gBACZ,mCAAY;gBACZ,6CAAiB;gBACjB,sDAAqB;gBACrB,yCAAe;gBACf,4DAAwB;gBACxB,uCAAoB;gBACpB,mCAAY;gBACZ,yCAAe;gBACf,yCAAe;aAChB,CAAC;SACH;QACD,WAAW,EAAE;YACX,sEAAgC;YAChC,uDAAyB;YACzB,iDAAsB;YACtB,oEAA+B;YAC/B,0EAAkC;YAClC,+CAAqB;SACtB;QACD,SAAS,EAAE;YACT,gEAA6B;YAC7B,kCAAe;YACf,2CAAmB;YACnB,8DAA4B;YAC5B,2CAAmB;YACnB,qDAAwB;YACxB,iDAAsB;YACtB,iDAAsB;YACtB,oEAA+B;YAC/B,+CAAqB;YACrB,2CAAmB;YACnB,iDAAsB;YACtB,yCAAkB;SACnB;QACD,OAAO,EAAE;YACP,kCAAe;YACf,2CAAmB;YACnB,8DAA4B;YAC5B,2CAAmB;YACnB,qDAAwB;YACxB,iDAAsB;YACtB,iDAAsB;YACtB,oEAA+B;YAC/B,+CAAqB;YACrB,2CAAmB;YACnB,iDAAsB;YACtB,yCAAkB;SACnB;KACF,CAAC;GACW,kBAAkB,CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venturialstd/workflow",
3
- "version": "0.1.154",
3
+ "version": "0.1.155",
4
4
  "description": "Workflow Module for Venturial",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -63,8 +63,6 @@
63
63
  "winston": "^3.17.0"
64
64
  },
65
65
  "peerDependencies": {
66
- "@nestjs/platform-socket.io": "^11.0.0",
67
- "@nestjs/websockets": "^11.0.0",
68
66
  "@dataui/crud": "^5.3.4",
69
67
  "@dataui/crud-request": "^5.3.4",
70
68
  "@dataui/crud-typeorm": "^5.3.4",
@@ -1,59 +0,0 @@
1
- import { OnGatewayDisconnect } from '@nestjs/websockets';
2
- import { Server } from 'socket.io';
3
- import { WorkflowUserService } from '../services/workflow-user.service';
4
- export interface SocketUser {
5
- id: string;
6
- email?: string;
7
- name?: string;
8
- }
9
- export interface WorkflowJoinPayload {
10
- workflowId: string;
11
- }
12
- export interface WorkflowNodePositionPayload {
13
- nodeId: string;
14
- position: {
15
- x: number;
16
- y: number;
17
- };
18
- }
19
- export interface WorkflowNodeDataPayload {
20
- nodeId: string;
21
- data: Record<string, unknown>;
22
- }
23
- export interface WorkflowCursorPayload {
24
- x: number;
25
- y: number;
26
- nodeId?: string | null;
27
- viewport?: {
28
- x: number;
29
- y: number;
30
- zoom: number;
31
- } | null;
32
- }
33
- export declare class WorkflowRealtimeGateway implements OnGatewayDisconnect {
34
- private readonly workflowUserService;
35
- private readonly logger;
36
- server: Server;
37
- constructor(workflowUserService: WorkflowUserService);
38
- private getUser;
39
- private getRoomMeta;
40
- handleJoin(payload: WorkflowJoinPayload, socket: any): Promise<{
41
- event: string;
42
- data: {
43
- workflowId: string;
44
- canEdit: boolean;
45
- } | {
46
- error: string;
47
- };
48
- }>;
49
- handleNodePosition(payload: WorkflowNodePositionPayload, socket: any): Promise<void>;
50
- handleNodeData(payload: WorkflowNodeDataPayload, socket: any): Promise<void>;
51
- handleCursor(payload: WorkflowCursorPayload, socket: any): Promise<void>;
52
- handleViewport(payload: {
53
- x: number;
54
- y: number;
55
- zoom: number;
56
- }, socket: any): Promise<void>;
57
- handleDisconnect(socket: any): void;
58
- }
59
- //# sourceMappingURL=workflow-realtime.gateway.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-realtime.gateway.d.ts","sourceRoot":"","sources":["../../src/gateways/workflow-realtime.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAKxE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAGD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAGD,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1D;AAQD,qBAIa,uBAAwB,YAAW,mBAAmB;IAMrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IALhD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IAGnE,MAAM,EAAG,MAAM,CAAC;gBAEa,mBAAmB,EAAE,mBAAmB;IAGrE,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,WAAW;IAKb,UAAU,CACC,OAAO,EAAE,mBAAmB,EAC3C,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IA4C3F,kBAAkB,CACP,OAAO,EAAE,2BAA2B,EACnD,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC;IAoBV,cAAc,CACH,OAAO,EAAE,uBAAuB,EAC/C,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC;IAoBV,YAAY,CACD,OAAO,EAAE,qBAAqB,EAC7C,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC;IAeV,cAAc,CACH,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAC9D,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC;IAYhB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;CAQpC"}
@@ -1,189 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var WorkflowRealtimeGateway_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.WorkflowRealtimeGateway = void 0;
17
- const websockets_1 = require("@nestjs/websockets");
18
- const socket_io_1 = require("socket.io");
19
- const common_1 = require("@nestjs/common");
20
- const workflow_user_service_1 = require("../services/workflow-user.service");
21
- const ROOM_PREFIX = 'workflow:';
22
- let WorkflowRealtimeGateway = WorkflowRealtimeGateway_1 = class WorkflowRealtimeGateway {
23
- workflowUserService;
24
- logger = new common_1.Logger(WorkflowRealtimeGateway_1.name);
25
- server;
26
- constructor(workflowUserService) {
27
- this.workflowUserService = workflowUserService;
28
- }
29
- getUser(socket) {
30
- return socket.data?.user ?? null;
31
- }
32
- getRoomMeta(socket) {
33
- return socket.data?.workflowRoom ?? null;
34
- }
35
- async handleJoin(payload, socket) {
36
- const user = this.getUser(socket);
37
- if (!user?.id) {
38
- this.logger.warn('workflow:join without user');
39
- return { event: 'workflow:join:error', data: { error: 'Unauthorized' } };
40
- }
41
- const { workflowId } = payload || {};
42
- if (!workflowId || typeof workflowId !== 'string') {
43
- return { event: 'workflow:join:error', data: { error: 'workflowId required' } };
44
- }
45
- try {
46
- const canView = await this.workflowUserService.canView(workflowId, user.id);
47
- if (!canView) {
48
- return { event: 'workflow:join:error', data: { error: 'Forbidden' } };
49
- }
50
- const canEdit = await this.workflowUserService.canEdit(workflowId, user.id);
51
- const room = ROOM_PREFIX + workflowId;
52
- await socket.join(room);
53
- socket.data.workflowRoom = { workflowId, canEdit };
54
- this.logger.debug(`User ${user.id} joined workflow ${workflowId} (canEdit: ${canEdit})`);
55
- socket.to(room).emit('workflow:user:joined', {
56
- userId: user.id,
57
- email: user.email,
58
- name: user.name,
59
- canEdit,
60
- });
61
- return {
62
- event: 'workflow:joined',
63
- data: { workflowId, canEdit },
64
- };
65
- }
66
- catch (err) {
67
- this.logger.error('workflow:join error', err);
68
- return { event: 'workflow:join:error', data: { error: 'Server error' } };
69
- }
70
- }
71
- async handleNodePosition(payload, socket) {
72
- const roomMeta = this.getRoomMeta(socket);
73
- const user = this.getUser(socket);
74
- if (!roomMeta || !user)
75
- return;
76
- if (!roomMeta.canEdit)
77
- return;
78
- const { nodeId, position } = payload || {};
79
- if (!nodeId || !position || typeof position.x !== 'number' || typeof position.y !== 'number')
80
- return;
81
- const room = ROOM_PREFIX + roomMeta.workflowId;
82
- socket.to(room).emit('workflow:node:position', {
83
- nodeId,
84
- position,
85
- userId: user.id,
86
- userEmail: user.email,
87
- userName: user.name,
88
- });
89
- }
90
- async handleNodeData(payload, socket) {
91
- const roomMeta = this.getRoomMeta(socket);
92
- const user = this.getUser(socket);
93
- if (!roomMeta || !user)
94
- return;
95
- if (!roomMeta.canEdit)
96
- return;
97
- const { nodeId, data } = payload || {};
98
- if (!nodeId || !data || typeof data !== 'object')
99
- return;
100
- const room = ROOM_PREFIX + roomMeta.workflowId;
101
- socket.to(room).emit('workflow:node:data', {
102
- nodeId,
103
- data,
104
- userId: user.id,
105
- userEmail: user.email,
106
- userName: user.name,
107
- });
108
- }
109
- async handleCursor(payload, socket) {
110
- const roomMeta = this.getRoomMeta(socket);
111
- const user = this.getUser(socket);
112
- if (!roomMeta || !user)
113
- return;
114
- const room = ROOM_PREFIX + roomMeta.workflowId;
115
- socket.to(room).emit('workflow:cursor', {
116
- userId: user.id,
117
- userEmail: user.email,
118
- userName: user.name,
119
- ...payload,
120
- });
121
- }
122
- async handleViewport(payload, socket) {
123
- const roomMeta = this.getRoomMeta(socket);
124
- const user = this.getUser(socket);
125
- if (!roomMeta || !user)
126
- return;
127
- const room = ROOM_PREFIX + roomMeta.workflowId;
128
- socket.to(room).emit('workflow:viewport', {
129
- userId: user.id,
130
- ...payload,
131
- });
132
- }
133
- handleDisconnect(socket) {
134
- const roomMeta = this.getRoomMeta(socket);
135
- const user = this.getUser(socket);
136
- if (roomMeta && user) {
137
- const room = ROOM_PREFIX + roomMeta.workflowId;
138
- socket.to(room).emit('workflow:user:left', { userId: user.id });
139
- }
140
- }
141
- };
142
- exports.WorkflowRealtimeGateway = WorkflowRealtimeGateway;
143
- __decorate([
144
- (0, websockets_1.WebSocketServer)(),
145
- __metadata("design:type", socket_io_1.Server)
146
- ], WorkflowRealtimeGateway.prototype, "server", void 0);
147
- __decorate([
148
- (0, websockets_1.SubscribeMessage)('workflow:join'),
149
- __param(0, (0, websockets_1.MessageBody)()),
150
- __metadata("design:type", Function),
151
- __metadata("design:paramtypes", [Object, Object]),
152
- __metadata("design:returntype", Promise)
153
- ], WorkflowRealtimeGateway.prototype, "handleJoin", null);
154
- __decorate([
155
- (0, websockets_1.SubscribeMessage)('workflow:node:position'),
156
- __param(0, (0, websockets_1.MessageBody)()),
157
- __metadata("design:type", Function),
158
- __metadata("design:paramtypes", [Object, Object]),
159
- __metadata("design:returntype", Promise)
160
- ], WorkflowRealtimeGateway.prototype, "handleNodePosition", null);
161
- __decorate([
162
- (0, websockets_1.SubscribeMessage)('workflow:node:data'),
163
- __param(0, (0, websockets_1.MessageBody)()),
164
- __metadata("design:type", Function),
165
- __metadata("design:paramtypes", [Object, Object]),
166
- __metadata("design:returntype", Promise)
167
- ], WorkflowRealtimeGateway.prototype, "handleNodeData", null);
168
- __decorate([
169
- (0, websockets_1.SubscribeMessage)('workflow:cursor'),
170
- __param(0, (0, websockets_1.MessageBody)()),
171
- __metadata("design:type", Function),
172
- __metadata("design:paramtypes", [Object, Object]),
173
- __metadata("design:returntype", Promise)
174
- ], WorkflowRealtimeGateway.prototype, "handleCursor", null);
175
- __decorate([
176
- (0, websockets_1.SubscribeMessage)('workflow:viewport'),
177
- __param(0, (0, websockets_1.MessageBody)()),
178
- __metadata("design:type", Function),
179
- __metadata("design:paramtypes", [Object, Object]),
180
- __metadata("design:returntype", Promise)
181
- ], WorkflowRealtimeGateway.prototype, "handleViewport", null);
182
- exports.WorkflowRealtimeGateway = WorkflowRealtimeGateway = WorkflowRealtimeGateway_1 = __decorate([
183
- (0, websockets_1.WebSocketGateway)({
184
- cors: { origin: true },
185
- namespace: '/workflow-realtime',
186
- }),
187
- __metadata("design:paramtypes", [workflow_user_service_1.WorkflowUserService])
188
- ], WorkflowRealtimeGateway);
189
- //# sourceMappingURL=workflow-realtime.gateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-realtime.gateway.js","sourceRoot":"","sources":["../../src/gateways/workflow-realtime.gateway.ts"],"names":[],"mappings":"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"}