@resolveio/server-lib 4.5.0-newrole → 4.5.1

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.
@@ -22,6 +22,13 @@ var schema = {
22
22
  type: Date,
23
23
  optional: true
24
24
  },
25
+ readonly: {
26
+ type: Boolean,
27
+ optional: true
28
+ },
29
+ active: {
30
+ type: Boolean
31
+ },
25
32
  attempts: {
26
33
  type: Number,
27
34
  optional: true
@@ -58,67 +65,53 @@ var schema = {
58
65
  type: String
59
66
  },
60
67
  roles: {
61
- type: Object
62
- },
63
- 'roles.super_admin': {
64
- type: Boolean
65
- },
66
- 'roles.approvals': {
67
68
  type: Array
68
69
  },
69
- 'roles.approvals.$': {
70
- type: Object
71
- },
72
- 'roles.approvals.$.name': {
70
+ 'roles.$': {
73
71
  type: String
74
72
  },
75
- 'roles.approvals.$.type': {
76
- type: String
73
+ phonenumber: {
74
+ type: String,
75
+ optional: true
77
76
  },
78
- 'roles.approvals.$.accounting_code': {
79
- type: String
77
+ other: {
78
+ type: Object,
79
+ blackbox: true,
80
+ optional: true
80
81
  },
81
- 'roles.groups': {
82
- type: Array
82
+ assets: {
83
+ type: Array,
84
+ optional: true
83
85
  },
84
- 'roles.groups.$': {
86
+ 'assets.$': {
85
87
  type: Object
86
88
  },
87
- 'roles.groups.$.name': {
89
+ 'assets.$.type': {
88
90
  type: String
89
91
  },
90
- 'roles.groups.$.views': {
91
- type: Array
92
- },
93
- 'roles.groups.$.views.$': {
92
+ 'assets.$.id_asset': {
94
93
  type: String
95
94
  },
96
- 'roles.groups.$.yard': {
97
- type: String,
98
- optional: true
95
+ 'assets.$.asset_number': {
96
+ type: String
99
97
  },
100
- 'roles.notifications': {
101
- type: Array
98
+ 'assets.$.ownership': {
99
+ type: String
102
100
  },
103
- 'roles.notifications.$': {
101
+ 'assets.$.ownership_driver': {
104
102
  type: String
105
103
  },
106
- 'roles.miscs': {
107
- type: Array
104
+ 'assets.$.date_start': {
105
+ type: Date
108
106
  },
109
- 'roles.miscs.$': {
110
- type: String
107
+ 'assets.$.date_end': {
108
+ type: Date,
109
+ optional: true
111
110
  },
112
- active: Boolean,
113
- phonenumber: {
111
+ id_function: {
114
112
  type: String,
115
113
  optional: true
116
114
  },
117
- other: {
118
- type: Object,
119
- optional: true,
120
- blackbox: true
121
- },
122
115
  customers: {
123
116
  type: Array,
124
117
  optional: true,
package/fixtures/init.js CHANGED
@@ -37,8 +37,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  var app_version_collection_1 = require("../collections/app-version.collection");
39
39
  var logged_in_users_collection_1 = require("../collections/logged-in-users.collection");
40
- var mongoose_1 = require("mongoose");
41
40
  var active_subscription_collection_1 = require("../collections/active-subscription.collection");
41
+ var mongoose_1 = require("mongoose");
42
42
  function loadServerInit() {
43
43
  return __awaiter(this, void 0, void 0, function () {
44
44
  var appVersion;
@@ -142,7 +142,7 @@ function loadCronJobMethods(methodManager) {
142
142
  function: function (data) {
143
143
  var _this = this;
144
144
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
145
- var report, fieldsObj_1, count_1, sortObj_1, rootOptions, filters_1, filterArrays_1;
145
+ var report, fieldsObj_1, count_1, sortObj_1, rootOptions, filters_1, filterArrayPaths_1, filterArrays_1;
146
146
  var _this = this;
147
147
  return __generator(this, function (_a) {
148
148
  switch (_a.label) {
@@ -292,10 +292,12 @@ function loadCronJobMethods(methodManager) {
292
292
  }
293
293
  }
294
294
  });
295
+ filterArrayPaths_1 = [];
295
296
  filterArrays_1 = [];
296
297
  report.fields_filter.filter(function (a) { return a.field.includes('.$.'); }).forEach(function (filter) {
297
298
  var _a, _b, _c, _d, _e, _f;
298
299
  if (filter.condition && filter.field && filter.value !== null) {
300
+ filterArrayPaths_1.push(filter.field);
299
301
  if (filter.condition === 'bw') {
300
302
  if (filter.fieldType === 'Date' && filter.is_rolling) {
301
303
  var startDate = null;
@@ -387,7 +389,7 @@ function loadCronJobMethods(methodManager) {
387
389
  }
388
390
  }
389
391
  });
390
- this.callMethodInternal.call(this, 'reportBuilderGetResults', report.type, report.collection_root, rootOptions, filters_1, filterArrays_1, report.fields_selected, report.groups_row, report.fields_total, report.fields_link, report.id_date_field || null, report.date_interval || null, function (err, res) {
392
+ this.callMethodInternal.call(this, 'reportBuilderGetResults', report.type, report.collection_root, rootOptions, filters_1, filterArrays_1, filterArrayPaths_1, report.fields_selected, report.groups_row, report.fields_total, report.fields_link, report.id_date_field || null, report.date_interval || null, function (err, res) {
391
393
  if (res && res[0]) {
392
394
  var fields_1 = [];
393
395
  var results_1 = res[0].results;
@@ -137,6 +137,14 @@ function loadReportBuilderMethods(methodManager) {
137
137
  blackbox: true,
138
138
  optional: true
139
139
  },
140
+ filterArrayPaths: {
141
+ type: Array,
142
+ optional: true
143
+ },
144
+ 'filterArrayPaths.$': {
145
+ type: String,
146
+ optional: true
147
+ },
140
148
  selectedFields: {
141
149
  type: Array,
142
150
  optional: true
@@ -176,10 +184,11 @@ function loadReportBuilderMethods(methodManager) {
176
184
  optional: true
177
185
  }
178
186
  }),
179
- function: function (reportType, rootCollectionName, rootOptions, filters, filterArrays, selectedFields, groupsRow, fieldsTotal, fieldsLink, date_field, date_interval) {
187
+ function: function (reportType, rootCollectionName, rootOptions, filters, filterArrays, filterArrayPaths, selectedFields, groupsRow, fieldsTotal, fieldsLink, date_field, date_interval) {
180
188
  var _this = this;
181
189
  if (filters === void 0) { filters = []; }
182
190
  if (filterArrays === void 0) { filterArrays = []; }
191
+ if (filterArrayPaths === void 0) { filterArrayPaths = []; }
183
192
  if (selectedFields === void 0) { selectedFields = []; }
184
193
  if (groupsRow === void 0) { groupsRow = []; }
185
194
  if (fieldsTotal === void 0) { fieldsTotal = []; }
@@ -187,10 +196,9 @@ function loadReportBuilderMethods(methodManager) {
187
196
  if (date_field === void 0) { date_field = ''; }
188
197
  if (date_interval === void 0) { date_interval = ''; }
189
198
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
190
- var _a, _b, uniqueSelectedFieldCollections, modelCollection, queryMatchCondition, queryLookups, queryGroupUnwindCollectionPaths, queryUnwindCollectionPaths, queryGroups, queryGroupUnwind, queryGroup_1, correctSort_1, _loop_1, i, queryProjection, queryTotals, query, queryMatchConditionLookup, tmpProj_1, tmpAnds_1, res, err_1;
191
- var _this = this;
192
- return __generator(this, function (_c) {
193
- switch (_c.label) {
199
+ var _a, uniqueSelectedFieldCollections, modelCollection, queryMatchCondition, queryLookups, queryGroupUnwindCollectionPaths, queryUnwindCollectionPaths, initialProjection, queryGroups, queryGroupUnwind, initialGroup, secondInitialGroup, zipLayers, cnt, _loop_1, correctSort_1, _loop_2, i, queryProjection, queryTotals, query, i, res, err_1;
200
+ return __generator(this, function (_b) {
201
+ switch (_b.label) {
194
202
  case 0:
195
203
  uniqueSelectedFieldCollections = selectedFields.map(function (a) { return a.collection_name; }).filter(function (elem, index, self) {
196
204
  return index === self.indexOf(elem);
@@ -219,6 +227,15 @@ function loadReportBuilderMethods(methodManager) {
219
227
  queryMatchCondition['$and'].push(filter);
220
228
  });
221
229
  }
230
+ if (filters.filter(function (a) { return (!a['$or'] && Object.keys(a).some(function (b) { return b.includes('(Lookup)'); })) || (a['$or'] && a['$or'].some(function (b) { return Object.keys(b).some(function (c) { return c.includes('(Lookup)'); }); })); }).length) {
231
+ filters.filter(function (a) { return (!a['$or'] && Object.keys(a).some(function (b) { return b.includes('(Lookup)'); })) || (a['$or'] && a['$or'].some(function (b) { return Object.keys(b).some(function (c) { return c.includes('(Lookup)'); }); })); }).forEach(function (filter) {
232
+ queryMatchCondition['$and'].push(filter);
233
+ });
234
+ }
235
+ filterArrays.forEach(function (filter) {
236
+ queryMatchCondition['$and'].push(filter);
237
+ // queryMatchConditionLookup['$and'].push(filter);
238
+ });
222
239
  queryLookups = [];
223
240
  // Lookup Groups
224
241
  groupsRow.filter(function (a) { return a.treeItem.collection_name !== rootCollectionName; }).forEach(function (group) {
@@ -266,87 +283,337 @@ function loadReportBuilderMethods(methodManager) {
266
283
  }
267
284
  }
268
285
  });
286
+ initialProjection = { _id: 1, count: { $sum: 1 } };
287
+ // Projection
288
+ groupsRow.filter(function (a) { return !a.treeItem.fieldPath.includes('$'); }).forEach(function (row) {
289
+ initialProjection[row.treeItem.fieldPath] = 1;
290
+ });
291
+ selectedFields.filter(function (a) { return !a.fieldPath.includes('$'); }).forEach(function (field) {
292
+ initialProjection[field.fieldPath] = 1;
293
+ });
294
+ selectedFields.filter(function (a) { return a.fieldPath.includes('$'); }).forEach(function (field) {
295
+ initialProjection[field.fieldPath.split('.$')[0]] = 1;
296
+ });
297
+ initialProjection['rb_arrays_0'] = {
298
+ $map: {
299
+ input: {
300
+ $zip: {
301
+ inputs: [
302
+ // '$chemicals',
303
+ // '$drivers',
304
+ // '$invoices'
305
+ ],
306
+ useLongestLength: true
307
+ }
308
+ },
309
+ as: 'zipped',
310
+ in: {
311
+ // chemicals: {
312
+ // $arrayElemAt: [
313
+ // '$$zipped',
314
+ // 0
315
+ // ]
316
+ // },
317
+ // drivers: {
318
+ // $arrayElemAt: [
319
+ // '$$zipped',
320
+ // 1
321
+ // ]
322
+ // },
323
+ // invoices: {
324
+ // $arrayElemAt: [
325
+ // '$$zipped',
326
+ // 2
327
+ // ]
328
+ // }
329
+ }
330
+ }
331
+ };
332
+ selectedFields.filter(function (a) { return a.fieldPath.includes('$'); }).forEach(function (field, index) {
333
+ if (!initialProjection['rb_arrays_0'].$map.input.$zip.inputs.some(function (a) { return a === '$' + field.fieldPath.split('.$')[0]; })) {
334
+ initialProjection['rb_arrays_0'].$map.input.$zip.inputs.push('$' + field.fieldPath.split('.$')[0]);
335
+ initialProjection['rb_arrays_0'].$map.in[field.fieldPath.split('.$')[0]] = {
336
+ $arrayElemAt: ['$$zipped', index]
337
+ };
338
+ }
339
+ });
269
340
  queryGroups = [];
270
341
  queryGroupUnwind = [];
271
- if (groupsRow.length) {
272
- queryGroup_1 = {
273
- _id: {}
274
- };
342
+ initialGroup = null;
343
+ secondInitialGroup = null;
344
+ zipLayers = [];
345
+ if (groupsRow.length && !groupsRow.some(function (a) { return a.treeItem.fieldPath.includes('$') || a.treeItem.collection_name !== rootCollectionName; })) {
346
+ initialGroup = { _id: {} };
275
347
  groupsRow.forEach(function (row) {
276
- if (row.field.includes('$')) {
277
- var fieldData = row.field.split('.$');
278
- var fieldPath = '';
279
- for (var i = 0; i < fieldData.length - 1; i++) {
280
- fieldPath += fieldData[i];
281
- queryGroupUnwind.push({ '$unwind': { path: '$' + fieldPath, preserveNullAndEmptyArrays: true } });
348
+ initialGroup._id[row.id] = '$' + row.field.replace(/\.\$/g, '');
349
+ initialGroup.rb_arrays_0 = { '$first': '$rb_arrays_0' };
350
+ initialGroup.count = { '$sum': '$count' };
351
+ selectedFields.filter(function (a) { return !a.fieldPath.includes('$') && a.collection_name === rootCollectionName; }).forEach(function (field) {
352
+ if (field.leafValueType === 'Average') {
353
+ initialGroup[field.id] = { '$avg': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
282
354
  }
283
- }
284
- queryGroup_1._id[row.id] = '$' + row.field.replace(/\.\$/g, '');
285
- if (date_field && date_interval) {
286
- if (date_interval === 'Daily') {
287
- queryGroup_1._id['day'] = { '$dayOfMonth': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
288
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
289
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
355
+ else if (field.leafValueType === 'Sum') {
356
+ initialGroup[field.id] = { '$sum': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
290
357
  }
291
- else if (date_interval === 'Weekly') {
292
- queryGroup_1._id['week'] = { '$week': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
293
- // queryGroup._id['month'] = {'$month' : '$' + date_field.replace(/\.\$/g, '')};
294
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
358
+ else if (field.leafValueType === 'Count') {
359
+ initialGroup[field.id] = { '$sum': 1 };
295
360
  }
296
- else if (date_interval === 'Monthly') {
297
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
298
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
361
+ else if (field.leafValueType === 'Minimum') {
362
+ initialGroup[field.id] = { '$min': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
299
363
  }
300
- else if (date_interval === 'Quarterly') {
301
- queryGroup_1._id['month'] = { '$month': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
302
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
364
+ else if (field.leafValueType === 'Maximum') {
365
+ initialGroup[field.id] = { '$max': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
303
366
  }
304
- else if (date_interval === 'Yearly') {
305
- queryGroup_1._id['year'] = { '$year': { 'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': _this.serverConfig['TIMEZONE'] } };
367
+ else if (field.leafValueType === 'First') {
368
+ initialGroup[field.id] = { '$first': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
306
369
  }
307
- }
370
+ else if (field.leafValueType === 'Last') {
371
+ initialGroup[field.id] = { '$last': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
372
+ }
373
+ else {
374
+ initialGroup[field.id] = { '$push': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
375
+ }
376
+ });
308
377
  });
309
- selectedFields.forEach(function (field) {
310
- if (field.leafValueType === 'Average') {
311
- queryGroup_1[field.id] = { '$avg': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
312
- }
313
- else if (field.leafValueType === 'Sum') {
314
- queryGroup_1[field.id] = { '$sum': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
315
- }
316
- else if (field.leafValueType === 'Count') {
317
- queryGroup_1[field.id] = { '$sum': 1 };
318
- }
319
- else if (field.leafValueType === 'Minimum') {
320
- queryGroup_1[field.id] = { '$min': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
321
- }
322
- else if (field.leafValueType === 'Maximum') {
323
- queryGroup_1[field.id] = { '$max': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
324
- }
325
- else if (field.leafValueType === 'First') {
326
- queryGroup_1[field.id] = { '$first': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
327
- }
328
- else if (field.leafValueType === 'Last') {
329
- queryGroup_1[field.id] = { '$last': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
330
- }
331
- else {
332
- queryGroup_1[field.id] = { '$push': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
333
- }
378
+ if (fieldsTotal.length) {
379
+ fieldsTotal.forEach(function (total) {
380
+ selectedFields.filter(function (a) { return a.fieldType === 'Number' && !a.fieldPath.includes('$'); }).forEach(function (field) {
381
+ var _a;
382
+ initialGroup[total.id + '_' + field.id] = (_a = {}, _a['$' + total.type] = '$' + field.fieldPath.replace(/\.\$/g, ''), _a);
383
+ });
384
+ });
385
+ }
386
+ }
387
+ else if (groupsRow.length) { //group has array or lookup
388
+ // project next layers
389
+ secondInitialGroup = { _id: {} };
390
+ groupsRow.forEach(function (row) {
391
+ secondInitialGroup._id[row.id] = '$' + row.field.replace(/\.\$/g, '');
392
+ selectedFields.filter(function (a) { return !a.fieldPath.includes('$') && a.collection_name !== rootCollectionName; }).forEach(function (field) {
393
+ if (field.leafValueType === 'Average') {
394
+ secondInitialGroup[field.id] = { '$avg': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
395
+ }
396
+ else if (field.leafValueType === 'Sum') {
397
+ secondInitialGroup[field.id] = { '$sum': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
398
+ }
399
+ else if (field.leafValueType === 'Count') {
400
+ secondInitialGroup[field.id] = { '$sum': 1 };
401
+ }
402
+ else if (field.leafValueType === 'Minimum') {
403
+ secondInitialGroup[field.id] = { '$min': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
404
+ }
405
+ else if (field.leafValueType === 'Maximum') {
406
+ secondInitialGroup[field.id] = { '$max': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
407
+ }
408
+ else if (field.leafValueType === 'First') {
409
+ secondInitialGroup[field.id] = { '$first': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
410
+ }
411
+ else if (field.leafValueType === 'Last') {
412
+ secondInitialGroup[field.id] = { '$last': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
413
+ }
414
+ else {
415
+ secondInitialGroup[field.id] = { '$push': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, '')) };
416
+ }
417
+ });
334
418
  });
335
- //Totals
336
419
  if (fieldsTotal.length) {
337
420
  fieldsTotal.forEach(function (total) {
338
- selectedFields.filter(function (a) { return a.fieldType === 'Number'; }).forEach(function (field) {
421
+ selectedFields.filter(function (a) { return a.fieldType === 'Number' && !a.fieldPath.includes('$'); }).forEach(function (field) {
339
422
  var _a;
340
- queryGroup_1[total.id + '_' + field.id] = (_a = {}, _a['$' + total.type] = '$' + field.fieldPath.replace(/\.\$/g, ''), _a);
423
+ secondInitialGroup[total.id + '_' + field.id] = (_a = {}, _a['$' + total.type] = '$' + field.fieldPath.replace(/\.\$/g, ''), _a);
341
424
  });
342
425
  });
343
426
  }
344
- //Links
345
- if (fieldsLink.length) {
346
- fieldsLink.filter(function (a) { return a.field_first && a.field_second; }).forEach(function (link) {
347
- queryGroup_1[link.id] = { $cmp: ['$' + link.field_first.replace(/\.\$/g, ''), '$' + link.field_second.replace(/\.\$/g, '')] };
427
+ }
428
+ cnt = 1;
429
+ _loop_1 = function () {
430
+ var group = { $group: { _id: {} } };
431
+ if (selectedFields.some(function (a) { return a.fieldPath.split('.$').length === cnt + 1 && (a.leafValueType === 'Average' || a.leafValueType === 'Sum'); })) {
432
+ groupsRow.forEach(function (row) {
433
+ group.$group._id[row.id] = '$_id.' + row.id;
434
+ });
435
+ group.$group['rb_arrays_' + (cnt - 1)] = { '$push': '$rb_arrays_' + (cnt - 1) };
436
+ selectedFields.filter(function (a) { return a.fieldPath.split('.$').length <= cnt; }).forEach(function (field) {
437
+ group.$group[field.id] = { $first: '$' + field.id };
438
+ });
439
+ selectedFields.filter(function (a) { return a.fieldPath.split('.$').length === cnt + 1; }).forEach(function (field) {
440
+ var tmpPath = field.fieldPath.split('.$.')[cnt - 1] + field.fieldPath.split('.$')[cnt];
441
+ if (field.leafValueType === 'Average') {
442
+ group.$group[field.id] = { '$avg': '$rb_arrays_' + (cnt - 1) + '.' + tmpPath };
443
+ }
444
+ else if (field.leafValueType === 'Sum') {
445
+ group.$group[field.id] = { '$sum': '$rb_arrays_' + (cnt - 1) + '.' + tmpPath };
446
+ }
447
+ });
448
+ if (fieldsTotal.length) {
449
+ fieldsTotal.forEach(function (total) {
450
+ selectedFields.filter(function (a) { return a.fieldType === 'Number' && a.fieldPath.split('.$').length === 1; }).forEach(function (field) {
451
+ group.$group[total.id + '_' + field.id] = { $first: '$' + field.fieldPath.replace(/\.\$/g, '') };
452
+ });
453
+ selectedFields.filter(function (a) { return a.fieldType === 'Number' && a.fieldPath.split('.$').length < cnt + 1 && a.fieldPath.split('.$').length > 1; }).forEach(function (field) {
454
+ var tmpPath = field.fieldPath.split('.$.')[cnt - 1] + field.fieldPath.split('.$')[cnt];
455
+ group.$group[total.id + '_' + field.id] = { $first: '$rb_arrays_' + (cnt - 1) + '.' + tmpPath };
456
+ });
457
+ selectedFields.filter(function (a) { return a.fieldType === 'Number' && a.fieldPath.split('.$').length === cnt + 1; }).forEach(function (field) {
458
+ var _a;
459
+ var tmpPath = field.fieldPath.split('.$.')[cnt - 1] + field.fieldPath.split('.$')[cnt];
460
+ group.$group[total.id + '_' + field.id] = (_a = {}, _a['$' + total.type] = '$rb_arrays_' + (cnt - 1) + '.' + tmpPath, _a);
461
+ });
462
+ });
463
+ }
464
+ zipLayers.push(group);
465
+ }
466
+ var proj = { $project: { _id: 1, count: 1 } };
467
+ selectedFields.filter(function (a) { return a.fieldPath.split('.$').length <= cnt + 1; }).forEach(function (field) {
468
+ proj.$project[field.id] = 1;
469
+ });
470
+ if (selectedFields.some(function (a) { return a.fieldPath.split('.$').length === cnt + 2; })) {
471
+ proj.$project['rb_arrays_' + cnt] = {
472
+ $map: {
473
+ input: {
474
+ $zip: {
475
+ inputs: [],
476
+ useLongestLength: true
477
+ }
478
+ },
479
+ as: 'zipped',
480
+ in: {}
481
+ }
482
+ };
483
+ selectedFields.filter(function (a) { return a.fieldPath.split('.$').length === cnt + 2; }).forEach(function (field, index) {
484
+ var fieldPath = field.fieldPath.split('.$')[0];
485
+ for (var i = 1; i < cnt + 1; i++) {
486
+ fieldPath += field.fieldPath.split('.$')[i];
487
+ }
488
+ if (!proj.$project['rb_arrays_' + cnt].$map.input.$zip.inputs.some(function (a) { return a === '$' + fieldPath; })) {
489
+ if (!proj.$project['rb_arrays_' + cnt].$map.input.$zip.inputs.some(function (a) { return a === '$rb_arrays_' + (cnt - 1) + '.' + fieldPath; })) {
490
+ proj.$project['rb_arrays_' + cnt].$map.input.$zip.inputs.push('$rb_arrays_' + (cnt - 1) + '.' + fieldPath);
491
+ proj.$project['rb_arrays_' + cnt].$map.in[field.fieldPath.split('.$.')[cnt]] = {
492
+ $arrayElemAt: ['$$zipped', index]
493
+ };
494
+ }
495
+ }
496
+ });
497
+ zipLayers.push(proj);
498
+ zipLayers.push({ $unwind: {
499
+ path: '$rb_arrays_' + cnt,
500
+ preserveNullAndEmptyArrays: true
501
+ } });
502
+ var tmpMatch = {
503
+ "$match": {
504
+ $and: []
505
+ }
506
+ };
507
+ var newfilterArrays_1 = [];
508
+ filterArrayPaths.forEach(function (filterPath, index) {
509
+ var _a;
510
+ var tmpOr = [];
511
+ if (filterPath.split('.$').length === cnt + 2) {
512
+ var filter = common_1.deepCopy(filterArrays[index]);
513
+ if (filter['$or']) {
514
+ filter['$or'].forEach(function (orVal) {
515
+ var _a;
516
+ var filterProp = '$rb_arrays_' + cnt + '.' + Object.keys(orVal)[0];
517
+ tmpOr.push((_a = {}, _a[filterProp] = orVal[Object.keys(orVal)[0]], _a));
518
+ });
519
+ }
520
+ else {
521
+ var filterProp = '$rb_arrays_' + cnt + '.' + Object.keys(filter)[0];
522
+ newfilterArrays_1.push((_a = {}, _a[filterProp] = filter[Object.keys(filter)[0]], _a));
523
+ }
524
+ }
525
+ if (tmpOr.length) {
526
+ newfilterArrays_1.push({ $or: tmpOr });
527
+ }
348
528
  });
529
+ tmpMatch.$match.$and = newfilterArrays_1;
530
+ if (tmpMatch.$match.$and.length) {
531
+ zipLayers.push(tmpMatch);
532
+ }
349
533
  }
534
+ cnt++;
535
+ };
536
+ while (selectedFields.some(function (a) { return a.fieldPath.split('.$').length > cnt; })) {
537
+ _loop_1();
538
+ }
539
+ if (groupsRow.length) {
540
+ // groupsRow.forEach(row => {
541
+ // if (row.field.includes('$')) {
542
+ // let fieldData = row.field.split('.$');
543
+ // let fieldPath = '';
544
+ // for (let i = 0; i < fieldData.length - 1; i++) {
545
+ // fieldPath += fieldData[i];
546
+ // queryGroupUnwind.push({'$unwind': {path: '$' + fieldPath, preserveNullAndEmptyArrays: true}});
547
+ // }
548
+ // }
549
+ // initialGroup._id[row.id] = '$' + row.field.replace(/\.\$/g, '');
550
+ // if (date_field && date_interval) {
551
+ // if (date_interval === 'Daily') {
552
+ // initialGroup._id['day'] = {'$dayOfMonth' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
553
+ // initialGroup._id['month'] = {'$month' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
554
+ // initialGroup._id['year'] = {'$year' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
555
+ // }
556
+ // else if (date_interval === 'Weekly') {
557
+ // initialGroup._id['week'] = {'$week' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
558
+ // // queryGroup._id['month'] = {'$month' : '$' + date_field.replace(/\.\$/g, '')};
559
+ // initialGroup._id['year'] = {'$year' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
560
+ // }
561
+ // else if (date_interval === 'Monthly') {
562
+ // initialGroup._id['month'] = {'$month' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
563
+ // initialGroup._id['year'] = {'$year' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
564
+ // }
565
+ // else if (date_interval === 'Quarterly') {
566
+ // initialGroup._id['month'] = {'$month' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
567
+ // initialGroup._id['year'] = {'$year' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
568
+ // }
569
+ // else if (date_interval === 'Yearly') {
570
+ // initialGroup._id['year'] = {'$year' : {'date': '$' + date_field.replace(/\.\$/g, ''), 'timezone': this.serverConfig['TIMEZONE']}};
571
+ // }
572
+ // }
573
+ // });
574
+ // selectedFields.filter(a => !a.fieldPath.includes('$')).forEach(field => {
575
+ // if (field.leafValueType === 'Average') {
576
+ // initialGroup[field.id] = {'$avg': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
577
+ // }
578
+ // else if (field.leafValueType === 'Sum') {
579
+ // initialGroup[field.id] = {'$sum': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
580
+ // }
581
+ // else if (field.leafValueType === 'Count') {
582
+ // initialGroup[field.id] = {'$sum': 1};
583
+ // }
584
+ // else if (field.leafValueType === 'Minimum') {
585
+ // initialGroup[field.id] = {'$min': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
586
+ // }
587
+ // else if (field.leafValueType === 'Maximum') {
588
+ // initialGroup[field.id] = {'$max': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
589
+ // }
590
+ // else if (field.leafValueType === 'First') {
591
+ // initialGroup[field.id] = {'$first': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
592
+ // }
593
+ // else if (field.leafValueType === 'Last') {
594
+ // initialGroup[field.id] = {'$last': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
595
+ // }
596
+ // else {
597
+ // initialGroup[field.id] = {'$push': '$' + (field.collection_name === rootCollectionName ? field.fieldPath.replace(/\.\$/g, '') : field.fieldPath.replace(/\.\$/g, ''))};
598
+ // }
599
+ // });
600
+ //Totals
601
+ // if (fieldsTotal.length) {
602
+ // fieldsTotal.forEach(total => {
603
+ // selectedFields.filter(a => a.fieldType === 'Number' && !a.fieldPath.includes('$')).forEach(field => {
604
+ // initialGroup[total.id + '_' + field.id] = {['$' + total.type]: '$' + field.fieldPath.replace(/\.\$/g, '')};
605
+ // });
606
+ // });
607
+ // }
608
+ //Arrays
609
+ // selectedFields.filter(a => a.fieldPath.includes('$')).forEach(field => {
610
+ // });
611
+ //Links
612
+ // if (fieldsLink.length) {
613
+ // fieldsLink.filter(a => a.field_first && a.field_second).forEach(link => {
614
+ // queryGroup[link.id] = {$cmp: ['$' + link.field_first.replace(/\.\$/g, ''), '$' + link.field_second.replace(/\.\$/g, '')]};
615
+ // });
616
+ // }
350
617
  if (rootOptions.sort && reportType === 'Tabular Group') {
351
618
  correctSort_1 = {};
352
619
  Object.keys(rootOptions.sort).forEach(function (key) {
@@ -356,9 +623,8 @@ function loadReportBuilderMethods(methodManager) {
356
623
  $sort: correctSort_1
357
624
  });
358
625
  }
359
- queryGroups.push({ $group: queryGroup_1 });
360
626
  if (reportType === 'Tabular Group') {
361
- _loop_1 = function (i) {
627
+ _loop_2 = function (i) {
362
628
  var _a, _b;
363
629
  queryGroups.push({ $sort: (_a = {}, _a['_id.' + groupsRow[i].id] = 1, _a) });
364
630
  var tmpQueryGroup = {
@@ -389,7 +655,7 @@ function loadReportBuilderMethods(methodManager) {
389
655
  queryGroups.push({ $group: tmpQueryGroup });
390
656
  };
391
657
  for (i = groupsRow.length - 1; i > 0; i--) {
392
- _loop_1(i);
658
+ _loop_2(i);
393
659
  }
394
660
  queryGroups.push({ $sort: (_a = {}, _a['_id.' + groupsRow[0].id] = 1, _a) });
395
661
  }
@@ -463,117 +729,145 @@ function loadReportBuilderMethods(methodManager) {
463
729
  $match: queryMatchCondition
464
730
  });
465
731
  }
466
- // Unwind Pre-Lookup Arrays
467
- queryUnwindCollectionPaths.filter(function (a) { return !a.includes('(Lookup)'); }).forEach(function (path) {
468
- query.push({
469
- $unwind: {
470
- path: path,
471
- preserveNullAndEmptyArrays: true
472
- }
473
- });
474
- });
475
- queryGroupUnwindCollectionPaths.filter(function (a) { return !a.includes('(Lookup)'); }).forEach(function (path) {
476
- query.push({
477
- $unwind: {
478
- path: path,
479
- preserveNullAndEmptyArrays: false
480
- }
481
- });
482
- });
483
- // Look Ups
484
- queryLookups.forEach(function (lookup) {
485
- query.push({
486
- $lookup: lookup
487
- });
488
- });
489
- // Unwind Lookups
490
- queryUnwindCollectionPaths.filter(function (a) { return a.includes('(Lookup)'); }).forEach(function (path) {
491
- if (!query.filter(function (a) { return a.$unwind && a.$unwind.path === path; }).length) {
492
- query.push({
493
- $unwind: {
494
- path: path,
495
- preserveNullAndEmptyArrays: true
496
- }
497
- });
498
- }
499
- });
500
- queryGroupUnwindCollectionPaths.filter(function (a) { return a.includes('(Lookup)'); }).forEach(function (path) {
501
- if (!query.filter(function (a) { return a.$unwind && a.$unwind.path === path; }).length) {
502
- query.push({
503
- $unwind: {
504
- path: path,
505
- preserveNullAndEmptyArrays: false
506
- }
507
- });
508
- }
509
- });
510
- // Group Unwinds
511
- if (groupsRow.length) {
512
- query = query.concat(queryGroupUnwind.filter(function (a) { return !query.some(function (b) { return b.$unwind && (b.$unwind.path === a.$unwind.path); }); }));
513
- }
514
- queryMatchConditionLookup = {
515
- $and: []
516
- };
517
- if (filters.filter(function (a) { return (!a['$or'] && Object.keys(a).some(function (b) { return b.includes('(Lookup)'); })) || (a['$or'] && a['$or'].some(function (b) { return Object.keys(b).some(function (c) { return c.includes('(Lookup)'); }); })); }).length) {
518
- filters.filter(function (a) { return (!a['$or'] && Object.keys(a).some(function (b) { return b.includes('(Lookup)'); })) || (a['$or'] && a['$or'].some(function (b) { return Object.keys(b).some(function (c) { return c.includes('(Lookup)'); }); })); }).forEach(function (filter) {
519
- queryMatchConditionLookup['$and'].push(filter);
520
- });
521
- }
522
- filterArrays.forEach(function (filter) {
523
- queryMatchConditionLookup['$and'].push(filter);
732
+ // Group w/ root properties & all arrays needed
733
+ query.push({
734
+ $project: initialProjection
524
735
  });
525
- if (queryMatchConditionLookup.$and.some(function (a) { return !a['$or'] || (a['$or'] && a['$or'].length); }) || queryMatchConditionLookup.$and.length) {
736
+ if (initialGroup) {
526
737
  query.push({
527
- $match: queryMatchConditionLookup
738
+ $group: initialGroup
528
739
  });
529
740
  }
530
- // Group Queries and Projection
531
- if (groupsRow.length) {
532
- queryGroups.forEach(function (group) {
533
- query.push(group);
534
- });
535
- if (reportType === 'Tabular Group') {
536
- tmpProj_1 = common_1.deepCopy(queryGroups[queryGroups.length - 2].$group);
537
- if (groupsRow.length === 1) {
538
- tmpProj_1._id.gr_1 = '$_id.gr_1';
539
- }
540
- Object.keys(tmpProj_1).filter(function (a) { return a !== '_id'; }).forEach(function (key) {
541
- tmpProj_1[key] = 1;
542
- });
543
- Object.assign(tmpProj_1, tmpProj_1['_id']);
544
- tmpProj_1['_id'] = 0;
545
- query.push({
546
- $project: tmpProj_1
547
- });
741
+ query.push({
742
+ $unwind: {
743
+ "path": "$rb_arrays_0",
744
+ "preserveNullAndEmptyArrays": true
548
745
  }
549
- }
550
- else {
746
+ });
747
+ if (secondInitialGroup) {
551
748
  query.push({
552
- $project: queryProjection
749
+ $group: secondInitialGroup
553
750
  });
554
751
  }
555
- // Links
556
- if (fieldsLink.length) {
557
- if (fieldsLink.length === 1 && fieldsLink[0].field_first && fieldsLink[0].field_second) {
558
- query.push({ $match: (_b = {}, _b[fieldsLink[0].id] = 0, _b) });
559
- }
560
- else {
561
- tmpAnds_1 = [];
562
- fieldsLink.filter(function (a) { return a.field_first && a.field_second; }).forEach(function (link) {
563
- var _a;
564
- tmpAnds_1.push((_a = {}, _a[link.id] = 0, _a));
565
- });
566
- if (tmpAnds_1.length) {
567
- query.push({ $match: { $and: tmpAnds_1 } });
568
- }
569
- }
570
- }
571
- // SORT
572
- if (rootOptions.sort && reportType !== 'Tabular Group') {
573
- query.push({
574
- $sort: rootOptions.sort
575
- });
752
+ for (i = 0; i < zipLayers.length; i++) {
753
+ query.push(zipLayers[i]);
576
754
  }
755
+ // START LOOP
756
+ // Project results and layer rb_arrays (for $sum)
757
+ // Unwind rb_arrays
758
+ // Group that layer's props ($sum) and keep next layer
759
+ // END LOOP
760
+ // Unwind Pre-Lookup Arrays
761
+ // queryUnwindCollectionPaths.filter(a => !a.includes('(Lookup)')).forEach(path => {
762
+ // query.push({
763
+ // $unwind: {
764
+ // path: path,
765
+ // preserveNullAndEmptyArrays: true
766
+ // }
767
+ // });
768
+ // });
769
+ // queryGroupUnwindCollectionPaths.filter(a => !a.includes('(Lookup)')).forEach(path => {
770
+ // query.push({
771
+ // $unwind: {
772
+ // path: path,
773
+ // preserveNullAndEmptyArrays: false
774
+ // }
775
+ // });
776
+ // });
777
+ // // Look Ups
778
+ // queryLookups.forEach(lookup => {
779
+ // query.push({
780
+ // $lookup: lookup
781
+ // });
782
+ // });
783
+ // // Unwind Lookups
784
+ // queryUnwindCollectionPaths.filter(a => a.includes('(Lookup)')).forEach(path => {
785
+ // if (!query.filter(a => a.$unwind && a.$unwind.path === path).length) {
786
+ // query.push({
787
+ // $unwind: {
788
+ // path: path,
789
+ // preserveNullAndEmptyArrays: true
790
+ // }
791
+ // });
792
+ // }
793
+ // });
794
+ // queryGroupUnwindCollectionPaths.filter(a => a.includes('(Lookup)')).forEach(path => {
795
+ // if (!query.filter(a => a.$unwind && a.$unwind.path === path).length) {
796
+ // query.push({
797
+ // $unwind: {
798
+ // path: path,
799
+ // preserveNullAndEmptyArrays: false
800
+ // }
801
+ // });
802
+ // }
803
+ // });
804
+ // // Group Unwinds
805
+ // if (groupsRow.length) {
806
+ // query = query.concat(queryGroupUnwind.filter(a => !query.some(b => b.$unwind && (b.$unwind.path === a.$unwind.path))));
807
+ // }
808
+ // // Array and Lookup Filters
809
+ // let queryMatchConditionLookup = {
810
+ // $and: []
811
+ // };
812
+ // if (filters.filter(a => (!a['$or'] && Object.keys(a).some(b => b.includes('(Lookup)'))) || (a['$or'] && a['$or'].some(b => Object.keys(b).some(c => c.includes('(Lookup)'))))).length) {
813
+ // filters.filter(a => (!a['$or'] && Object.keys(a).some(b => b.includes('(Lookup)'))) || (a['$or'] && a['$or'].some(b => Object.keys(b).some(c => c.includes('(Lookup)'))))).forEach(filter => {
814
+ // queryMatchConditionLookup['$and'].push(filter);
815
+ // });
816
+ // }
817
+ // filterArrays.forEach(filter => {
818
+ // queryMatchConditionLookup['$and'].push(filter);
819
+ // });
820
+ // if (queryMatchConditionLookup.$and.some(a => !a['$or'] || (a['$or'] && a['$or'].length)) || queryMatchConditionLookup.$and.length) {
821
+ // query.push({
822
+ // $match: queryMatchConditionLookup
823
+ // });
824
+ // }
825
+ // // Group Queries and Projection
826
+ // if (groupsRow.length) {
827
+ // queryGroups.forEach(group => {
828
+ // query.push(group);
829
+ // });
830
+ // if (reportType === 'Tabular Group') {
831
+ // let tmpProj = deepCopy(queryGroups[queryGroups.length - 2].$group);
832
+ // if (groupsRow.length === 1) {
833
+ // tmpProj._id.gr_1 = '$_id.gr_1';
834
+ // }
835
+ // Object.keys(tmpProj).filter(a => a !== '_id').forEach(key => {
836
+ // tmpProj[key] = 1;
837
+ // });
838
+ // Object.assign(tmpProj, tmpProj['_id']);
839
+ // tmpProj['_id'] = 0;
840
+ // query.push({
841
+ // $project: tmpProj
842
+ // });
843
+ // }
844
+ // }
845
+ // else {
846
+ // query.push({
847
+ // $project: queryProjection
848
+ // });
849
+ // }
850
+ // // Links
851
+ // if (fieldsLink.length) {
852
+ // if (fieldsLink.length === 1 && fieldsLink[0].field_first && fieldsLink[0].field_second) {
853
+ // query.push({$match: {[fieldsLink[0].id]: 0}});
854
+ // }
855
+ // else {
856
+ // let tmpAnds = [];
857
+ // fieldsLink.filter(a => a.field_first && a.field_second).forEach(link => {
858
+ // tmpAnds.push({[link.id]: 0});
859
+ // });
860
+ // if (tmpAnds.length) {
861
+ // query.push({$match: {$and: tmpAnds}});
862
+ // }
863
+ // }
864
+ // }
865
+ // // SORT
866
+ // if (rootOptions.sort && reportType !== 'Tabular Group') {
867
+ // query.push({
868
+ // $sort: rootOptions.sort
869
+ // });
870
+ // }
577
871
  // Dated Grouping
578
872
  // if (date_field && date_interval) {
579
873
  // if (date_interval === 'Daily') {
@@ -674,16 +968,19 @@ function loadReportBuilderMethods(methodManager) {
674
968
  }
675
969
  });
676
970
  }
971
+ console.log('_____________ query __________');
972
+ console.log(query);
973
+ console.log(JSON.stringify(query, null, 2));
677
974
  res = null;
678
- _c.label = 1;
975
+ _b.label = 1;
679
976
  case 1:
680
- _c.trys.push([1, 3, , 4]);
977
+ _b.trys.push([1, 3, , 4]);
681
978
  return [4 /*yield*/, modelCollection.aggregate(query).allowDiskUse(true)];
682
979
  case 2:
683
- res = _c.sent();
980
+ res = _b.sent();
684
981
  return [3 /*break*/, 4];
685
982
  case 3:
686
- err_1 = _c.sent();
983
+ err_1 = _b.sent();
687
984
  console.log(err_1);
688
985
  return [3 /*break*/, 4];
689
986
  case 4:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "4.5.0-newrole",
3
+ "version": "4.5.1",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {