@resolveio/server-lib 1.0.0-rc14 → 1.0.0-rc15

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.
Files changed (3) hide show
  1. package/index.d.ts +456 -2
  2. package/index.js +37 -31
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -6,10 +6,464 @@ export declare class ResolveIOServer {
6
6
  private static _mainServer;
7
7
  private static _client;
8
8
  constructor(serverConfig: any, client: string);
9
- static connectAndRun(): Promise<void>;
9
+ static connectAndRun(): Promise<{}>;
10
10
  static getClientName(): string;
11
11
  static getMainServer(): ResolveIOMainServer;
12
12
  static getMainDB(): any;
13
13
  static getSupportDB(): any;
14
14
  }
15
- //# sourceMappingURL=index.d.ts.map
15
+ //# sourceMappingURL=index.d.ts.map
16
+ export declare function loadCloudConvertMethods(methodManager: MethodManager): void;
17
+ export declare function loadCollectionMethods(methodManager: MethodManager): void;
18
+ export declare function loadLogMethods(methodManager: MethodManager): void;
19
+ export declare function loadPDFMethods(methodManager: MethodManager): void;
20
+ export declare function loadCronJobMethods(methodManager: MethodManager): void;
21
+ export declare function loadAWSMethods(methodManager: MethodManager): void;
22
+ export declare function loadCounterMethods(methodManager: MethodManager): void;
23
+ export declare function loadAccountMethods(methodManager: MethodManager): void;
24
+ export declare function loadFlagMethods(methodManager: MethodManager): void;
25
+ export declare function deepCopy(obj: any): any;
26
+ export declare function dateReviver(key: any, value: any): any;
27
+ export declare function getMongoUpdates(currDoc: any, modifiedDoc: any, incVersion: any): any;
28
+ export declare function getMongoMergeUpdatedDoc(f_doc: any, currentDoc: any, oldDoc: any): any;
29
+ export declare function mergeUpdates(...updatesToMerge: any[]): {
30
+ $set: {};
31
+ $unset: {};
32
+ $inc: {};
33
+ $push: {};
34
+ $pull: {};
35
+ };
36
+ export declare function getDeepDiff(doc1: any, doc2: any): any;
37
+ export declare function applyMongoUpdate(uDoc: any, delta: any): any;
38
+ export declare function getBinarySize(string: any): number;
39
+ export declare function loadSuperAdminPublications(subscriptionManager: SubscriptionManager): void;
40
+ export declare function loadLogPublications(subscriptionManager: SubscriptionManager): void;
41
+ export declare function loadMethodResponsePublications(subscriptionManager: SubscriptionManager): void;
42
+ export declare function loadSupportTicketPublications(subscriptionManager: any): void;
43
+ export declare function loadFilePublications(subscriptionManager: SubscriptionManager): void;
44
+ export declare function loadAppStatusPublications(subscriptionManager: SubscriptionManager): void;
45
+ export declare function loadMethodCallsPublications(subscriptionManager: SubscriptionManager): void;
46
+ export declare function loadCronJobPublications(subscriptionManager: SubscriptionManager): void;
47
+ export declare function loadAppVersionPublications(subscriptionManager: SubscriptionManager): void;
48
+ export declare function loadFlagsPublications(subscriptionManager: SubscriptionManager): void;
49
+ export declare class CronManager {
50
+ private _cronManager;
51
+ private _mainServer;
52
+ constructor(mainServer: any);
53
+ private loadCronJobs;
54
+ private doesCronJobExist;
55
+ private doesCronJobNameExist;
56
+ private addCronJob;
57
+ private updateCronJob;
58
+ private removeCronJob;
59
+ private startCronJob;
60
+ private stopCronJob;
61
+ private stopAllCronJobs;
62
+ checkCronJobsForUpdates(): Promise<void>;
63
+ private runCronJob;
64
+ }
65
+ export declare class SubscriptionManager {
66
+ private _mainServer;
67
+ private _publications;
68
+ private _subscriptions;
69
+ private _wss;
70
+ private _sendQueue;
71
+ private _runningQueue;
72
+ private serverConfig;
73
+ constructor(mainServer: any, wss: WebSocket.Server, serverConfig: any);
74
+ publications(method: SubscriptionModel): void;
75
+ loggedInLatency(ws: WebSocket): Promise<void>;
76
+ subscribe(ws: WebSocket, messageId: number, publication: string, ...subscriptionData: any[]): Promise<void>;
77
+ unsubscribe(ws: WebSocket, messageId: number, publication: string, ...subscriptionData: any[]): Promise<void>;
78
+ unsubscribeAll(ws: WebSocket): Promise<void>;
79
+ private getPublicationCollections;
80
+ private tailOpLog;
81
+ private tailOpLogSupport;
82
+ private resendPubsForDelete;
83
+ private checkPubsForChanges;
84
+ private checkSupportPubsForChanges;
85
+ private sendPubDataOnce;
86
+ private sendPubData;
87
+ private sendWS;
88
+ }
89
+ export declare class SupportManager {
90
+ private _mainServer;
91
+ _supportMethods: SupportMethodModel;
92
+ private _mailer;
93
+ private _aws;
94
+ private serverConfig;
95
+ private _sendQueue;
96
+ private _runningQueue;
97
+ constructor(mainServer: any, serverConfig: any);
98
+ getMainServer(): ResolveIOMainServer;
99
+ supportMethods(supportMethod: SupportMethodModel): void;
100
+ callSupportMethod(ws: WebSocket, messageId: any, supportMethod: any, ...methodData: any[]): void;
101
+ private sendWS;
102
+ sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[]): void;
103
+ }
104
+ export declare class QueueMethodManager {
105
+ private _mainServer;
106
+ private _sendQueue;
107
+ private _runningQueue;
108
+ private _runningMethodResponse;
109
+ constructor(mainServer: any);
110
+ addMethodToQueue(id_ws: string, id_user: string, user: string, messageId: string, method: string, data: any[]): void;
111
+ runMethodQueue(count?: number): Promise<void>;
112
+ addMethodResponse(update: QueueMethodModel, response: ServerResponseModel): void;
113
+ runMethodResponse(): Promise<void>;
114
+ }
115
+ export declare class MethodManager {
116
+ private _mainServer;
117
+ _methods: MethodModel;
118
+ private _mailer;
119
+ private _imap;
120
+ private _aws;
121
+ private serverConfig;
122
+ private _sendQueue;
123
+ private _runningQueue;
124
+ constructor(mainServer: any, serverConfig: any);
125
+ getMainServer(): ResolveIOMainServer;
126
+ methods(method: MethodModel): void;
127
+ callMethodCron(method: string, ...methodData: any[]): void;
128
+ callMethodQueue(update: QueueMethodModel): void;
129
+ callMethod(ws: WebSocket, messageId: any, method: any, ...methodData: any[]): void;
130
+ callMethodInternal(method: any, ...methodData: any[]): Promise<any>;
131
+ private sendWS;
132
+ sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[]): void;
133
+ getAWS(): aws.S3;
134
+ readFile(fileName: any): Promise<{}>;
135
+ readImage(fileName: any): Promise<{}>;
136
+ }
137
+ export interface SelectDataLabelModel {
138
+ data: string;
139
+ label: string;
140
+ selected: boolean;
141
+ type: string;
142
+ subData: string;
143
+ subtype: string;
144
+ subLabel: string;
145
+ }
146
+ export interface ServerResponseModel {
147
+ messageId: number;
148
+ hasError: boolean;
149
+ data: any;
150
+ }
151
+ export interface CronJobModel extends CollectionDocument {
152
+ name: string;
153
+ repeat: boolean;
154
+ time_to_run: string;
155
+ method_run: string;
156
+ method_run_data?: Object;
157
+ method_complete?: string;
158
+ method_complete_data?: Object;
159
+ running: boolean;
160
+ timezone?: string;
161
+ next_run?: Date;
162
+ }
163
+ export interface PaginationOptions {
164
+ limit: number;
165
+ skip: number;
166
+ sort: {
167
+ [key: string]: number;
168
+ };
169
+ fields: {
170
+ [key: string]: number;
171
+ };
172
+ }
173
+ export declare const PaginationOptionsSchema: any;
174
+ export interface QueueMethodModel extends CollectionDocument {
175
+ method: string;
176
+ method_data: any[];
177
+ id_ws: string;
178
+ messageId: number;
179
+ id_user: string;
180
+ user: string;
181
+ }
182
+ export interface LogModel extends CollectionDocument {
183
+ date: Date;
184
+ type: string;
185
+ title: string;
186
+ message: string;
187
+ payload: any;
188
+ method: string;
189
+ user: string;
190
+ messageId: string;
191
+ }
192
+ export interface UserModel extends CollectionDocument {
193
+ attempts: number;
194
+ last: Date;
195
+ services?: any;
196
+ fullname: string;
197
+ username?: string;
198
+ email?: string;
199
+ roles?: string[];
200
+ active?: boolean;
201
+ readonly?: boolean;
202
+ phonenumber?: string;
203
+ other?: object;
204
+ }
205
+ export interface MethodResponseModel extends CollectionDocument {
206
+ id_user: string;
207
+ message_id: string;
208
+ method: string;
209
+ data: string;
210
+ response: any;
211
+ }
212
+ export interface LoggedInUserModel extends CollectionDocument {
213
+ date: Date;
214
+ id_user: string;
215
+ user: string;
216
+ id_ws: string;
217
+ app_version?: number;
218
+ latency?: number;
219
+ }
220
+ export interface CollectionDocument {
221
+ _id?: any;
222
+ __v?: number;
223
+ createdAt?: Date;
224
+ updatedAt?: Date;
225
+ }
226
+ export interface MethodModel {
227
+ [key: string]: MethodAllModel;
228
+ }
229
+ export interface MethodAllModel {
230
+ check?: SimpleSchema;
231
+ function: (...parameters: any[]) => Promise<any | any[]>;
232
+ skipValidation?: boolean;
233
+ skipQueue?: boolean;
234
+ }
235
+ export interface MethodCallModel extends CollectionDocument {
236
+ id_user: string;
237
+ message_id: string;
238
+ method: string;
239
+ data: string;
240
+ }
241
+ export interface CronJobHistoryModel extends CollectionDocument {
242
+ name: string;
243
+ reoccuring: boolean;
244
+ time_to_run: string;
245
+ method_name: string;
246
+ server_restart: boolean;
247
+ passed: boolean;
248
+ error: Object;
249
+ start_time: Date;
250
+ end_time: Date;
251
+ }
252
+ export interface SupportTicketModel extends CollectionDocument {
253
+ type: string;
254
+ priority: string;
255
+ issue: string;
256
+ support_ticket_number: number;
257
+ support_ticket_number_string: string;
258
+ status: SupportTicketStatus;
259
+ client: string;
260
+ id_client: string;
261
+ messages: SupportTicketMessageModel[];
262
+ date_created: Date;
263
+ date_created_string: string;
264
+ id_user_created: string;
265
+ user_created: string;
266
+ billable: boolean;
267
+ work_logs: SupportTicketWorkLogModel[];
268
+ date_investigation: Date;
269
+ date_closed: Date;
270
+ }
271
+ export interface SupportTicketMessageModel {
272
+ message: string;
273
+ id_user: string;
274
+ user: string;
275
+ date: Date;
276
+ type: SupportTicketMessageType;
277
+ }
278
+ export interface SupportTicketWorkLogModel {
279
+ note: string;
280
+ id_user: string;
281
+ user: string;
282
+ date_start: Date;
283
+ date_end?: Date;
284
+ time_spent?: number;
285
+ time_spent_string?: string;
286
+ }
287
+ export interface AppVersionModel extends CollectionDocument {
288
+ version: number;
289
+ }
290
+ export interface DialogInputFieldModel {
291
+ label: string;
292
+ form: string;
293
+ data: string | number | boolean;
294
+ validators: any[];
295
+ validatorErrors: string[];
296
+ validatorMsg: string[];
297
+ placeholder?: string;
298
+ required?: boolean;
299
+ disabled?: boolean;
300
+ type?: DialogInputFieldTypes;
301
+ options?: DialogInputFieldSelectOptions[];
302
+ }
303
+ export interface DialogInputFieldSelectOptions {
304
+ value: string | number;
305
+ text: string;
306
+ }
307
+ export interface DialogSelectWithButtonsOptionModel {
308
+ value: string | number;
309
+ text: string;
310
+ }
311
+ export interface AppStatusModel extends CollectionDocument {
312
+ message: string;
313
+ }
314
+ export interface QueueResponseModel extends CollectionDocument {
315
+ method: string;
316
+ method_data: any[];
317
+ id_ws: string;
318
+ messageId: number;
319
+ id_user: string;
320
+ user: string;
321
+ response: any;
322
+ }
323
+ export interface ModulePermissionModel {
324
+ name: string;
325
+ views: ModulePermissionViewModel[];
326
+ approval?: ModulePermissionApprovalModel;
327
+ }
328
+ export interface ModulePermissionViewModel {
329
+ link: string;
330
+ label: string;
331
+ }
332
+ export interface ModulePermissionApprovalModel {
333
+ type: string;
334
+ }
335
+ export interface FileModel extends CollectionDocument {
336
+ name: string;
337
+ size: number;
338
+ key: string;
339
+ type: string;
340
+ order: number;
341
+ status?: string;
342
+ }
343
+ export interface SubscriptionModel {
344
+ [key: string]: SubscriptionPubModel;
345
+ }
346
+ export interface SubscriptionPubModel {
347
+ check?: SimpleSchema;
348
+ preFunction?: (...parameters: any[]) => Promise<Object>;
349
+ function: (...parameters: any[]) => Promise<any | any[]>;
350
+ collections: string[];
351
+ fetchFunction?: (document: Object, ...parameters: any[]) => boolean;
352
+ ws_specific?: boolean;
353
+ }
354
+ export interface ActiveSubscriptionModel {
355
+ publication: string;
356
+ preSubscriptionData?: Object;
357
+ subscriptionData: any[];
358
+ collections: string[];
359
+ clients: ActiveSubscriptionClientModel[];
360
+ }
361
+ export interface ActiveSubscriptionClientModel {
362
+ id_user: string;
363
+ messageId: number;
364
+ id_socket: string;
365
+ }
366
+ export interface ActiveClientSubscriptionModel {
367
+ messageId: number;
368
+ subscription: string;
369
+ parameters: any[];
370
+ subject: any;
371
+ }
372
+ export interface SupportMethodModel {
373
+ [key: string]: SupportMethodAllModel;
374
+ }
375
+ export interface SupportMethodAllModel {
376
+ check?: SimpleSchema;
377
+ function: (...parameters: any[]) => Promise<any | any[]>;
378
+ skipValidation?: boolean;
379
+ }
380
+ export interface ActiveSubscriptionModel extends CollectionDocument {
381
+ date: Date;
382
+ publication: string;
383
+ subData: string | Object;
384
+ collections: string[];
385
+ clients: ActiveSubscriptionClientModel[];
386
+ }
387
+ export interface ActiveSubscriptionClientModel {
388
+ id_user: string;
389
+ messageId: number;
390
+ id_socket: string;
391
+ }
392
+ export interface CounterModel extends CollectionDocument {
393
+ count: number;
394
+ type: string;
395
+ }
396
+ export interface FlagModel extends CollectionDocument {
397
+ type: string;
398
+ value?: boolean;
399
+ }
400
+ export declare function setupHealthRoutes(app: any, serverConfig: any): void;
401
+ export declare function setupAuthRoutes(mainServer: ResolveIOMainServer, app: any, serverConfig: any): void;
402
+ export default class ResolveIOMainServer {
403
+ private _app;
404
+ private _server;
405
+ private _port;
406
+ private _wss;
407
+ private _serverConfig;
408
+ private _resolveioServer;
409
+ private _subscriptionManager;
410
+ private _methodManager;
411
+ private _queueManager;
412
+ private _cronManager;
413
+ private _supportManager;
414
+ constructor(mainServer: any, serverConfig: any);
415
+ getWS(id_ws: string): any;
416
+ getWSList(): any[];
417
+ getCronManager(): CronManager;
418
+ getMethodManager(): MethodManager;
419
+ getSubscriptionManager(): SubscriptionManager;
420
+ getQueueManager(): QueueMethodManager;
421
+ getSupportManager(): SupportManager;
422
+ private createServer;
423
+ private setUpMongoose;
424
+ private setUpPassport;
425
+ private listen;
426
+ unsubscribeWS(ws: WebSocket): void;
427
+ }
428
+ export declare function loadServerCronJobs(): Promise<void>;
429
+ export declare function loadServerInit(): Promise<void>;
430
+ export declare function loadSupportCollectionMethods(supportManager: SupportManager): void;
431
+ export declare function loadAWSMethods(supportManager: SupportManager): void;
432
+ export declare function loadSupportMethods(supportManager: SupportManager): void;
433
+ export declare function loadCounterMethods(supportManager: SupportManager): void;
434
+ export declare const Logs: Model<ResolveIOModel>;
435
+ export declare const LogVersions: Model<ResolveIOModel>;
436
+ export declare const LoggedInUsers: Model<ResolveIOModel>;
437
+ export declare const LoggedInUserVersions: Model<ResolveIOModel>;
438
+ export declare const QueueFlags: Model<ResolveIOModel>;
439
+ export declare const QueueFlagVersions: Model<ResolveIOModel>;
440
+ export declare const Users: PassportLocalModel<ResolveIOModel>;
441
+ export declare const UserVersions: Model<ResolveIOModel>;
442
+ export declare const ActiveSubscriptions: Model<ResolveIOModel>;
443
+ export declare const ActiveSubscriptionVersions: Model<ResolveIOModel>;
444
+ export declare const AppStatus: Model<ResolveIOModel>;
445
+ export declare const AppStatusVersions: Model<ResolveIOModel>;
446
+ export declare const MethodResponses: Model<ResolveIOModel>;
447
+ export declare const MethodCalls: Model<ResolveIOModel>;
448
+ export declare const CronJobHistory: Model<ResolveIOModel>;
449
+ export declare const CronJobHistoryVersions: Model<ResolveIOModel>;
450
+ export declare const QueueResponses: Model<ResolveIOModel>;
451
+ export declare const QueueResponseVersions: Model<ResolveIOModel>;
452
+ export declare const AppVersions: Model<ResolveIOModel>;
453
+ export declare const AppVersionVersions: Model<ResolveIOModel>;
454
+ export declare const Flags: Model<ResolveIOModel>;
455
+ export declare const FlagVersions: Model<ResolveIOModel>;
456
+ export declare const CronJobs: Model<ResolveIOModel>;
457
+ export declare const CronJobVersions: Model<ResolveIOModel>;
458
+ export declare let SupportTickets: Model<ResolveIOModel>;
459
+ export declare let SupportTicketVersions: Model<ResolveIOModel>;
460
+ export declare const QueueMethods: Model<ResolveIOModel>;
461
+ export declare const QueueMethodVersions: Model<ResolveIOModel>;
462
+ export declare const Counters: Model<ResolveIOModel>;
463
+ export declare let SupportCounters: Model<ResolveIOModel>;
464
+ export declare const CounterVersions: Model<ResolveIOModel>;
465
+ export declare let SupportCounterVersions: Model<ResolveIOModel>;
466
+ export declare const Files: Model<ResolveIOModel>;
467
+ export declare let SupportFiles: Model<ResolveIOModel>;
468
+ export declare const FileVersions: Model<ResolveIOModel>;
469
+ export declare let SupportFileVersions: Model<ResolveIOModel>;
package/index.js CHANGED
@@ -45,11 +45,39 @@ var ResolveIOServer = /** @class */ (function () {
45
45
  return __awaiter(this, void 0, void 0, function () {
46
46
  var _this = this;
47
47
  return __generator(this, function (_a) {
48
- if (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200') {
49
- mongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], { useNewUrlParser: true }).then(function (db) { return __awaiter(_this, void 0, void 0, function () {
50
- var _this = this;
51
- return __generator(this, function (_a) {
52
- ResolveIOServer._supportDB = db;
48
+ return [2 /*return*/, new Promise(function (resolve, reject) {
49
+ if (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200') {
50
+ mongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], { useNewUrlParser: true }).then(function (db) { return __awaiter(_this, void 0, void 0, function () {
51
+ var _this = this;
52
+ return __generator(this, function (_a) {
53
+ ResolveIOServer._supportDB = db;
54
+ mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
55
+ var serverApp;
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0:
59
+ ResolveIOServer._mainDB = dbMain;
60
+ return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
61
+ case 1:
62
+ serverApp = (_a.sent()).default;
63
+ ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig);
64
+ resolve();
65
+ return [2 /*return*/];
66
+ }
67
+ });
68
+ }); }, function (err) {
69
+ process.exit();
70
+ reject();
71
+ });
72
+ return [2 /*return*/];
73
+ });
74
+ }); }, function (err) {
75
+ process.exit();
76
+ reject();
77
+ });
78
+ }
79
+ else {
80
+ ResolveIOServer._supportDB = null;
53
81
  mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
54
82
  var serverApp;
55
83
  return __generator(this, function (_a) {
@@ -60,38 +88,16 @@ var ResolveIOServer = /** @class */ (function () {
60
88
  case 1:
61
89
  serverApp = (_a.sent()).default;
62
90
  ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig);
91
+ resolve();
63
92
  return [2 /*return*/];
64
93
  }
65
94
  });
66
95
  }); }, function (err) {
67
96
  process.exit();
97
+ reject();
68
98
  });
69
- return [2 /*return*/];
70
- });
71
- }); }, function (err) {
72
- process.exit();
73
- });
74
- }
75
- else {
76
- ResolveIOServer._supportDB = null;
77
- mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
78
- var serverApp;
79
- return __generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- ResolveIOServer._mainDB = dbMain;
83
- return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
84
- case 1:
85
- serverApp = (_a.sent()).default;
86
- ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig);
87
- return [2 /*return*/];
88
- }
89
- });
90
- }); }, function (err) {
91
- process.exit();
92
- });
93
- }
94
- return [2 /*return*/];
99
+ }
100
+ })];
95
101
  });
96
102
  });
97
103
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "1.0.0-rc14",
3
+ "version": "1.0.0-rc15",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {