@resolveio/server-lib 20.0.27 → 20.0.28

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 (201) hide show
  1. package/client-server-app.js +1 -47
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +1 -50
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/counter.collection.js +1 -53
  6. package/collections/counter.collection.js.map +1 -1
  7. package/collections/cron-job-history.collection.js +1 -88
  8. package/collections/cron-job-history.collection.js.map +1 -1
  9. package/collections/cron-job.collection.js +1 -84
  10. package/collections/cron-job.collection.js.map +1 -1
  11. package/collections/email-history.collection.js +1 -65
  12. package/collections/email-history.collection.js.map +1 -1
  13. package/collections/email-verified.collection.js +1 -60
  14. package/collections/email-verified.collection.js.map +1 -1
  15. package/collections/file.collection.js +1 -72
  16. package/collections/file.collection.js.map +1 -1
  17. package/collections/flag.collection.js +1 -55
  18. package/collections/flag.collection.js.map +1 -1
  19. package/collections/log-method-latency.collection.js +1 -63
  20. package/collections/log-method-latency.collection.js.map +1 -1
  21. package/collections/log-subscription.collection.js +1 -67
  22. package/collections/log-subscription.collection.js.map +1 -1
  23. package/collections/log-ts.collection.js +1 -77
  24. package/collections/log-ts.collection.js.map +1 -1
  25. package/collections/log.collection.js +1 -76
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +1 -64
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-response.collection.js +1 -65
  30. package/collections/method-response.collection.js.map +1 -1
  31. package/collections/monitor-cpu.collection.js +1 -62
  32. package/collections/monitor-cpu.collection.js.map +1 -1
  33. package/collections/monitor-memory.collection.js +1 -74
  34. package/collections/monitor-memory.collection.js.map +1 -1
  35. package/collections/monitor-mongo.collection.js +1 -68
  36. package/collections/monitor-mongo.collection.js.map +1 -1
  37. package/collections/notification.collection.js +1 -55
  38. package/collections/notification.collection.js.map +1 -1
  39. package/collections/report-builder-dashboard-builder.collection.js +1 -108
  40. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  41. package/collections/report-builder-library.collection.js +1 -86
  42. package/collections/report-builder-library.collection.js.map +1 -1
  43. package/collections/report-builder-report.collection.js +1 -148
  44. package/collections/report-builder-report.collection.js.map +1 -1
  45. package/collections/user-group.collection.js +1 -93
  46. package/collections/user-group.collection.js.map +1 -1
  47. package/collections/user-guide.collection.js +1 -56
  48. package/collections/user-guide.collection.js.map +1 -1
  49. package/collections/user.collection.js +1 -265
  50. package/collections/user.collection.js.map +1 -1
  51. package/cron/cron.js +1 -101
  52. package/cron/cron.js.map +1 -1
  53. package/fixtures/cron-jobs.js +1 -87
  54. package/fixtures/cron-jobs.js.map +1 -1
  55. package/fixtures/init.js +1 -58
  56. package/fixtures/init.js.map +1 -1
  57. package/http/auth.js +1 -763
  58. package/http/auth.js.map +1 -1
  59. package/http/health.js +1 -11
  60. package/http/health.js.map +1 -1
  61. package/http/home.js +1 -65
  62. package/http/home.js.map +1 -1
  63. package/index.js +1 -126
  64. package/index.js.map +1 -1
  65. package/managers/cron.manager.js +1 -322
  66. package/managers/cron.manager.js.map +1 -1
  67. package/managers/method.manager.js +1 -593
  68. package/managers/method.manager.js.map +1 -1
  69. package/managers/mongo.manager.js +1 -2259
  70. package/managers/mongo.manager.js.map +1 -1
  71. package/managers/monitor.manager.js +1 -350
  72. package/managers/monitor.manager.js.map +1 -1
  73. package/managers/subscription.manager.js +1 -1110
  74. package/managers/subscription.manager.js.map +1 -1
  75. package/managers/subscription.performance.js +1 -102
  76. package/managers/subscription.performance.js.map +1 -1
  77. package/methods/accounts.js +1 -291
  78. package/methods/accounts.js.map +1 -1
  79. package/methods/aws.js +1 -634
  80. package/methods/aws.js.map +1 -1
  81. package/methods/collections.js +1 -499
  82. package/methods/collections.js.map +1 -1
  83. package/methods/counters.js +1 -121
  84. package/methods/counters.js.map +1 -1
  85. package/methods/cron-jobs.js +1 -1337
  86. package/methods/cron-jobs.js.map +1 -1
  87. package/methods/flags.js +1 -8
  88. package/methods/flags.js.map +1 -1
  89. package/methods/logs.js +1 -370
  90. package/methods/logs.js.map +1 -1
  91. package/methods/monitor.js +1 -564
  92. package/methods/monitor.js.map +1 -1
  93. package/methods/pdf.js +1 -731
  94. package/methods/pdf.js.map +1 -1
  95. package/methods/report-builder.js +1 -859
  96. package/methods/report-builder.js.map +1 -1
  97. package/methods/support.js +1 -245
  98. package/methods/support.js.map +1 -1
  99. package/models/app-status.model.js +1 -3
  100. package/models/app-status.model.js.map +1 -1
  101. package/models/billing-logged-in-users.model.js +1 -3
  102. package/models/billing-logged-in-users.model.js.map +1 -1
  103. package/models/collection-document.model.js +1 -3
  104. package/models/collection-document.model.js.map +1 -1
  105. package/models/counter.model.js +1 -3
  106. package/models/counter.model.js.map +1 -1
  107. package/models/cron-job-history.model.js +1 -3
  108. package/models/cron-job-history.model.js.map +1 -1
  109. package/models/cron-job.model.js +1 -3
  110. package/models/cron-job.model.js.map +1 -1
  111. package/models/dialog.model.js +1 -3
  112. package/models/dialog.model.js.map +1 -1
  113. package/models/email-history.model.js +1 -3
  114. package/models/email-history.model.js.map +1 -1
  115. package/models/email-verified.model.js +1 -3
  116. package/models/email-verified.model.js.map +1 -1
  117. package/models/file.model.js +1 -3
  118. package/models/file.model.js.map +1 -1
  119. package/models/flag.model.js +1 -3
  120. package/models/flag.model.js.map +1 -1
  121. package/models/log-method-latency.model.js +1 -3
  122. package/models/log-method-latency.model.js.map +1 -1
  123. package/models/log-subscription.model.js +1 -3
  124. package/models/log-subscription.model.js.map +1 -1
  125. package/models/log.model.js +1 -3
  126. package/models/log.model.js.map +1 -1
  127. package/models/logged-in-users.model.js +1 -3
  128. package/models/logged-in-users.model.js.map +1 -1
  129. package/models/method-response.model.js +1 -3
  130. package/models/method-response.model.js.map +1 -1
  131. package/models/method.model.js +1 -3
  132. package/models/method.model.js.map +1 -1
  133. package/models/monitor-cpu.model.js +1 -3
  134. package/models/monitor-cpu.model.js.map +1 -1
  135. package/models/monitor-memory.model.js +1 -3
  136. package/models/monitor-memory.model.js.map +1 -1
  137. package/models/monitor-mongo.model.js +1 -3
  138. package/models/monitor-mongo.model.js.map +1 -1
  139. package/models/notification.model.js +1 -3
  140. package/models/notification.model.js.map +1 -1
  141. package/models/pagination.model.js +1 -23
  142. package/models/pagination.model.js.map +1 -1
  143. package/models/permission.model.js +1 -3
  144. package/models/permission.model.js.map +1 -1
  145. package/models/report-builder-dashboard-builder.model.js +1 -3
  146. package/models/report-builder-dashboard-builder.model.js.map +1 -1
  147. package/models/report-builder-library.model.js +1 -3
  148. package/models/report-builder-library.model.js.map +1 -1
  149. package/models/report-builder-report.model.js +1 -3
  150. package/models/report-builder-report.model.js.map +1 -1
  151. package/models/report-builder.model.js +1 -3
  152. package/models/report-builder.model.js.map +1 -1
  153. package/models/select-data-label.model.js +1 -3
  154. package/models/select-data-label.model.js.map +1 -1
  155. package/models/server-response.model.js +1 -3
  156. package/models/server-response.model.js.map +1 -1
  157. package/models/subscription.model.js +1 -3
  158. package/models/subscription.model.js.map +1 -1
  159. package/models/support-ticket.model.js +1 -3
  160. package/models/support-ticket.model.js.map +1 -1
  161. package/models/user-group.model.js +1 -3
  162. package/models/user-group.model.js.map +1 -1
  163. package/models/user-guide.model.js +1 -3
  164. package/models/user-guide.model.js.map +1 -1
  165. package/models/user.model.js +1 -3
  166. package/models/user.model.js.map +1 -1
  167. package/package.json +6 -4
  168. package/public_api.js +1 -74
  169. package/public_api.js.map +1 -1
  170. package/publications/app-status.js +1 -16
  171. package/publications/app-status.js.map +1 -1
  172. package/publications/cron-jobs.js +1 -32
  173. package/publications/cron-jobs.js.map +1 -1
  174. package/publications/files.js +1 -36
  175. package/publications/files.js.map +1 -1
  176. package/publications/flags.js +1 -22
  177. package/publications/flags.js.map +1 -1
  178. package/publications/logs.js +1 -164
  179. package/publications/logs.js.map +1 -1
  180. package/publications/method-responses.js +1 -16
  181. package/publications/method-responses.js.map +1 -1
  182. package/publications/notifications.js +1 -16
  183. package/publications/notifications.js.map +1 -1
  184. package/publications/report-builder-dashboard-builders.js +1 -42
  185. package/publications/report-builder-dashboard-builders.js.map +1 -1
  186. package/publications/report-builder-libraries.js +1 -89
  187. package/publications/report-builder-libraries.js.map +1 -1
  188. package/publications/report-builder-reports.js +1 -50
  189. package/publications/report-builder-reports.js.map +1 -1
  190. package/publications/super-admin.js +1 -16
  191. package/publications/super-admin.js.map +1 -1
  192. package/publications/user-groups.js +1 -16
  193. package/publications/user-groups.js.map +1 -1
  194. package/publications/user-guides.js +1 -16
  195. package/publications/user-guides.js.map +1 -1
  196. package/server-app.js +1 -770
  197. package/server-app.js.map +1 -1
  198. package/util/common.js +1 -546
  199. package/util/common.js.map +1 -1
  200. package/util/schema-report-builder.js +1 -452
  201. package/util/schema-report-builder.js.map +1 -1
package/util/common.js CHANGED
@@ -1,547 +1,2 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.mergeDeep = exports.isObject = exports.toTitleCase = exports.randomString = exports.pad = exports.getBinarySize = exports.deepDiffDetails = exports.applyMongoUpdate = exports.getDeepDiff = exports.mergeUpdates = exports.getMongoMergeUpdatedDoc = exports.getMongoUpdates = exports.dateReviver = exports.deepCopy = exports.floorPrecision = exports.roundPrecision = exports.throwErr = exports.buildRbLookups = exports.buildRbSchema = void 0;
24
- var rusDiff = require('rus-diff');
25
- var deepDiff = require('deep-diff').diff;
26
- var deep_object_diff_1 = require("deep-object-diff");
27
- var clone = require('clone');
28
- var moment = require("moment-timezone");
29
- function buildRbSchema(rbSchema) {
30
- Object.keys(rbSchema).forEach(function (key) {
31
- if (rbSchema[key].type === Object) {
32
- rbSchema[key].type = 'Object';
33
- rbSchema[key].rbType = 'Object';
34
- }
35
- else if (rbSchema[key].type === Array) {
36
- rbSchema[key].type = 'Array';
37
- rbSchema[key].rbType = 'Array';
38
- }
39
- else if (rbSchema[key].type === String) {
40
- rbSchema[key].type = 'String';
41
- rbSchema[key].rbType = 'String';
42
- }
43
- else if (rbSchema[key].type === Date) {
44
- rbSchema[key].type = 'Date';
45
- rbSchema[key].rbType = 'Date';
46
- }
47
- else if (rbSchema[key].type === Number) {
48
- rbSchema[key].type = 'Number';
49
- rbSchema[key].rbType = 'Number';
50
- }
51
- else if (rbSchema[key].type === Boolean) {
52
- rbSchema[key].rbType = 'Boolean';
53
- rbSchema[key].type = 'Boolean';
54
- }
55
- });
56
- Object.keys(rbSchema).forEach(function (key) {
57
- delete rbSchema[key].type;
58
- });
59
- return rbSchema;
60
- }
61
- exports.buildRbSchema = buildRbSchema;
62
- function buildRbLookups(rbLookups, defaultSchema, default_checked_array) {
63
- // Remember: lkp.local_key will be removed later on, because it has 'id_'
64
- if (default_checked_array === void 0) { default_checked_array = []; }
65
- rbLookups.forEach(function (lkp) {
66
- var errString = '';
67
- var localKey, newPropertyName;
68
- var localKeyDir = '';
69
- var localKeyDirDot = '';
70
- var collectionAlias = toTitleCase(lkp.lookup.replace(/\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\_/g, ' ').replace(/\.\$\./g, ' -> ').replace(/\./g, ' -> ')) + ') (Lookup)';
71
- if (lkp.local_key.match(/\./)) {
72
- localKey = lkp.local_key.replace(/\.\$/g, '');
73
- localKeyDirDot = lkp.local_key.replace(/^(.+\.).*$/, '$1');
74
- localKeyDir = localKeyDirDot.replace(/\.$/, '');
75
- }
76
- else {
77
- // local_key is a root leaf node.
78
- localKey = lkp.local_key;
79
- }
80
- newPropertyName = localKeyDirDot + collectionAlias;
81
- if (!defaultSchema[lkp.local_key]) {
82
- errString += '--local_key: \'' + lkp.local_key + '\' MUST be a valid schema path! ';
83
- }
84
- else if (defaultSchema[lkp.local_key].type !== String) {
85
- errString += '--local_key: \'' + lkp.local_key + '\' MUST be a String! ';
86
- }
87
- var lookupNode = {
88
- lookup_collection: lkp.lookup,
89
- lookup_collection_alias: collectionAlias,
90
- local_key: localKey,
91
- field_path: localKeyDir,
92
- lookup_as: newPropertyName,
93
- lookup_key: '_id',
94
- type: 'Object',
95
- };
96
- defaultSchema[newPropertyName] = lookupNode;
97
- if (errString) {
98
- throwErr(errString, lkp, lookupNode, newPropertyName);
99
- }
100
- });
101
- for (var ii = 0; ii < default_checked_array.length; ii++) {
102
- defaultSchema[default_checked_array[ii]] = {};
103
- defaultSchema[default_checked_array[ii]]['default_checked'] = true;
104
- Object.assign(defaultSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);
105
- }
106
- return defaultSchema;
107
- }
108
- exports.buildRbLookups = buildRbLookups;
109
- function throwErr(err, lkp, lookupNode, newPropertyName) {
110
- if (newPropertyName === void 0) { newPropertyName = ''; }
111
- // err could be from a try/throw/catch
112
- console.log('------- ERROR thrown by rbLookups: ');
113
- console.log(err);
114
- console.log('---item: ');
115
- console.log(lkp);
116
- console.log('---Attempted to create rbSchema[\'' + newPropertyName + '\']: ');
117
- console.log(lookupNode);
118
- process.exit(1);
119
- }
120
- exports.throwErr = throwErr;
121
- function roundPrecision(value, precision) {
122
- if (precision === void 0) { precision = 0; }
123
- var stringValue = value.toString();
124
- if (stringValue.includes('.')) {
125
- if (stringValue[0] === '0') {
126
- precision += 1;
127
- }
128
- precision -= stringValue.indexOf('.');
129
- }
130
- var exponent = Math.pow(10, precision);
131
- return Math.round(parseFloat(stringValue) * exponent) / exponent;
132
- }
133
- exports.roundPrecision = roundPrecision;
134
- function floorPrecision(value, precision) {
135
- if (precision === void 0) { precision = 0; }
136
- var stringValue = value.toString();
137
- if (stringValue.includes('.')) {
138
- if (stringValue[0] === '0') {
139
- precision += 1;
140
- }
141
- precision -= stringValue.indexOf('.');
142
- }
143
- var exponent = Math.pow(10, precision);
144
- return Math.floor(parseFloat(stringValue) * exponent) / exponent;
145
- }
146
- exports.floorPrecision = floorPrecision;
147
- function deepCopy(value) {
148
- return clone(value);
149
- }
150
- exports.deepCopy = deepCopy;
151
- function dateReviver(key, value) {
152
- if (typeof value === 'string') {
153
- var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
154
- if (a) {
155
- return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));
156
- }
157
- }
158
- return value;
159
- }
160
- exports.dateReviver = dateReviver;
161
- function getMongoUpdates(currDoc, modifiedDoc, incVersion) {
162
- if (currDoc.createdAt) {
163
- modifiedDoc.createdAt = currDoc.createdAt;
164
- }
165
- if (currDoc.updatedAt) {
166
- modifiedDoc.updatedAt = currDoc.updatedAt;
167
- }
168
- var updates = rusDiff.diff(currDoc, modifiedDoc);
169
- if (updates) {
170
- if (updates.$set && !Object.keys(updates.$set).length) {
171
- delete updates.$set;
172
- }
173
- if (incVersion) {
174
- updates.$inc = { __v: 1 };
175
- }
176
- }
177
- else {
178
- if (incVersion) {
179
- updates = {
180
- $inc: { __v: 1 }
181
- };
182
- }
183
- }
184
- return updates;
185
- }
186
- exports.getMongoUpdates = getMongoUpdates;
187
- function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {
188
- var upDoc = deepCopy(oldDoc);
189
- upDoc.__v = currentDoc.__v;
190
- var diff_1 = getDeepDiff(oldDoc, currentDoc);
191
- var diff_2 = getDeepDiff(oldDoc, f_doc);
192
- var updates = mergeUpdates(diff_2, diff_1);
193
- applyMongoUpdate(upDoc, updates);
194
- return upDoc;
195
- }
196
- exports.getMongoMergeUpdatedDoc = getMongoMergeUpdatedDoc;
197
- function mergeUpdates() {
198
- var updatesToMerge = [];
199
- for (var _i = 0; _i < arguments.length; _i++) {
200
- updatesToMerge[_i] = arguments[_i];
201
- }
202
- var merged = {
203
- $set: {},
204
- $unset: {},
205
- $inc: {},
206
- $push: {},
207
- $pull: {}
208
- };
209
- updatesToMerge.filter(Boolean).forEach(function (anUpdate) {
210
- anUpdate.forEach(function (change) {
211
- var path = change.path.join('.');
212
- switch (change.kind) {
213
- case 'E':
214
- handleEditedChange(merged, path, change);
215
- break;
216
- case 'A':
217
- handleArrayChange(merged, path, change);
218
- break;
219
- default:
220
- break;
221
- }
222
- });
223
- });
224
- return merged;
225
- }
226
- exports.mergeUpdates = mergeUpdates;
227
- function handleEditedChange(merged, path, change) {
228
- if (typeof (change.rhs) === 'number' && (path.includes('quantity') || path.includes('qty'))) {
229
- merged.$inc[path] = (merged.$inc[path] || 0) + change.rhs - change.lhs;
230
- }
231
- else {
232
- merged.$set[path] = change.rhs;
233
- }
234
- }
235
- function handleArrayChange(merged, path, change) {
236
- if (change.item.kind === 'N') {
237
- merged.$push[path] = merged.$push[path] || [];
238
- if (!merged.$push[path].some(function (a) { return JSON.stringify(a) === JSON.stringify(change.item.rhs); })) {
239
- merged.$push[path].push(change.item.rhs);
240
- }
241
- }
242
- else if (change.item.kind === 'D') {
243
- merged.$pull[path] = merged.$pull[path] || [];
244
- if (!merged.$pull[path].some(function (a) { return JSON.stringify(a) === JSON.stringify(change.item.lhs); })) {
245
- merged.$pull[path].push(change.item.lhs);
246
- }
247
- }
248
- }
249
- function getDeepDiff(doc1, doc2) {
250
- delete doc1._id;
251
- delete doc1.__v;
252
- if (doc1.updatedAt) {
253
- delete doc1.updatedAt;
254
- }
255
- if (doc1.createdAt) {
256
- delete doc1.createdAt;
257
- }
258
- delete doc2._id;
259
- delete doc2.__v;
260
- if (doc2.updatedAt) {
261
- delete doc2.updatedAt;
262
- }
263
- if (doc2.createdAt) {
264
- delete doc2.createdAt;
265
- }
266
- return deepDiff(doc1, doc2);
267
- }
268
- exports.getDeepDiff = getDeepDiff;
269
- function applyMongoUpdate(uDoc, delta) {
270
- var orig = deepCopy(uDoc);
271
- if (delta) {
272
- if (delta.$rename)
273
- handleRename(uDoc, delta.$rename);
274
- if (delta.$set)
275
- handleSet(uDoc, delta.$set);
276
- if (delta.$inc)
277
- handleInc(uDoc, delta.$inc);
278
- if (delta.$unset)
279
- handleUnset(uDoc, delta.$unset);
280
- if (delta.$pull)
281
- handlePull(uDoc, orig, delta.$pull);
282
- if (delta.$push)
283
- handlePush(uDoc, delta.$push);
284
- }
285
- return uDoc;
286
- }
287
- exports.applyMongoUpdate = applyMongoUpdate;
288
- function handleRename(uDoc, renameMap) {
289
- for (var k in renameMap) {
290
- var v = renameMap[k];
291
- var _a = resolve(uDoc, k), o1 = _a[0], n1 = _a[1];
292
- var _b = resolve(uDoc, v), o2 = _b[0], n2 = _b[1];
293
- if (o1 && n1.length === 1) {
294
- if (o2 && n2.length === 1) {
295
- o2[n2[0]] = o1[n1[0]];
296
- delete o1[n1[0]];
297
- }
298
- else {
299
- logError(o2, n2, uDoc, v);
300
- }
301
- }
302
- else {
303
- logError(o1, n1, uDoc, k);
304
- }
305
- }
306
- }
307
- function handleSet(uDoc, setMap) {
308
- for (var k in setMap) {
309
- var v = setMap[k];
310
- var _a = resolve(uDoc, k, { force: true }), o = _a[0], n = _a[1];
311
- if (o && n.length === 1) {
312
- o[n[0]] = v;
313
- }
314
- else {
315
- logError(o, n, uDoc, k);
316
- }
317
- }
318
- }
319
- function handleInc(uDoc, incMap) {
320
- for (var k in incMap) {
321
- var v = incMap[k];
322
- var _a = resolve(uDoc, k, { force: true }), o = _a[0], n = _a[1];
323
- if (o && n.length === 1) {
324
- o[n[0]] = (o[n[0]] || 0) + v;
325
- }
326
- else {
327
- logError(o, n, uDoc, k);
328
- }
329
- }
330
- }
331
- function handleUnset(uDoc, unsetMap) {
332
- for (var k in unsetMap) {
333
- var _a = resolve(uDoc, k), o = _a[0], n = _a[1];
334
- if (o && n.length === 1) {
335
- delete o[n[0]];
336
- }
337
- else {
338
- logError(o, n, uDoc, k);
339
- }
340
- }
341
- }
342
- function handlePull(uDoc, orig, pullMap) {
343
- for (var pathk in pullMap) {
344
- var pullValues = pullMap[pathk];
345
- var _loop_1 = function (vk) {
346
- var _a = resolve(uDoc, pathk), o = _a[0], n = _a[1];
347
- var _b = resolve(orig, pathk), o2 = _b[0], n2 = _b[1];
348
- if (o && n.length === 1) {
349
- o[n[0]].splice(o2[n2[0]].findIndex(function (z) { return JSON.stringify(z) === JSON.stringify(vk); }), 1);
350
- }
351
- else {
352
- logError(o, n, uDoc, pathk);
353
- }
354
- };
355
- for (var _i = 0, pullValues_1 = pullValues; _i < pullValues_1.length; _i++) {
356
- var vk = pullValues_1[_i];
357
- _loop_1(vk);
358
- }
359
- }
360
- }
361
- function handlePush(uDoc, pushMap) {
362
- for (var pathk in pushMap) {
363
- var pushValues = pushMap[pathk];
364
- for (var _i = 0, pushValues_1 = pushValues; _i < pushValues_1.length; _i++) {
365
- var vk = pushValues_1[_i];
366
- var _a = resolve(uDoc, pathk), o = _a[0], n = _a[1];
367
- if (o && n.length === 1) {
368
- o[n[0]].push(vk);
369
- }
370
- else {
371
- logError(o, n, uDoc, pathk);
372
- }
373
- }
374
- }
375
- }
376
- function logError(o, n, uDoc, key) {
377
- console.log('Error', o + '/' + n + ' - couldn\'t resolve for ' + JSON.stringify(uDoc) + ' ' + key);
378
- }
379
- function resolve(a, path, options) {
380
- if (options === void 0) { options = {}; }
381
- var stack = arrize(path);
382
- var last = [];
383
- if (stack.length > 0) {
384
- last.unshift(stack.pop());
385
- }
386
- var e = a;
387
- while (stack.length > 0) {
388
- var k = stack.shift();
389
- if (e[k] !== void 0) {
390
- e = e[k];
391
- }
392
- else {
393
- if (!options.force) {
394
- last.unshift(k);
395
- last = stack.concat(last);
396
- break;
397
- }
398
- var isNextNum = typeof stack[0] === 'number';
399
- var isLastNum = stack.length === 0 && typeof last[0] === 'number';
400
- e[k] = isNextNum || isLastNum ? [] : {};
401
- e = e[k];
402
- }
403
- }
404
- return [e, last];
405
- }
406
- function arrize(path, glue) {
407
- if (glue === void 0) { glue = '.'; }
408
- if (Array.isArray(path)) {
409
- return path.slice();
410
- }
411
- if (path === void 0 || path === null || path === false || path === '') {
412
- return [];
413
- }
414
- return path.toString().split(glue)
415
- .map(function (e) {
416
- if ([void 0, null, false, ''].includes(e)) {
417
- return null;
418
- }
419
- return e.toString();
420
- })
421
- .filter(function (e) { return e !== null; });
422
- }
423
- function deepDiffDetails(object1, object2) {
424
- var obj1 = deepCopy(object1);
425
- var obj2 = deepCopy(object2);
426
- var diff = (0, deep_object_diff_1.detailedDiff)(obj1, obj2);
427
- var diffString = '';
428
- var formatValue = function (value) {
429
- if (value instanceof Date) {
430
- return moment(value).format('llll');
431
- }
432
- else if (typeof value === 'object' && value !== null) {
433
- Object.keys(value).filter(function (a) { return a.startsWith('_id') || a.startsWith('id_'); }).forEach(function (key) {
434
- delete value[key];
435
- });
436
- return JSON.stringify(value); // Pretty print objects
437
- }
438
- else {
439
- return typeof value === 'string' ? "\"".concat(value, "\"") : String(value);
440
- }
441
- };
442
- var customArrayDiff = function (arr1, arr2) {
443
- var arrayDiffResults = [];
444
- var maxLength = Math.max(arr1.length, arr2.length);
445
- for (var i = 0; i < maxLength; i++) {
446
- if (arr1[i] && !arr2[i]) {
447
- arrayDiffResults.push("Removed at index ".concat(i, ": ").concat(formatValue(arr1[i])));
448
- }
449
- else if (!arr1[i] && arr2[i]) {
450
- arrayDiffResults.push("Added at index ".concat(i, ": ").concat(formatValue(arr2[i])));
451
- }
452
- else if (arr1[i] && arr2[i] && JSON.stringify(arr1[i]) !== JSON.stringify(arr2[i])) {
453
- arrayDiffResults.push("Changed at index ".concat(i, ": {").concat(formatObjectDiff(arr1[i], arr2[i]), "}"));
454
- }
455
- }
456
- return arrayDiffResults.join(', ');
457
- };
458
- var formatObjectDiff = function (obj1, obj2) {
459
- if (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {
460
- return "from: ".concat(formatValue(obj1), " to: ").concat(formatValue(obj2));
461
- }
462
- if (Array.isArray(obj1) || Array.isArray(obj2)) {
463
- return customArrayDiff(Array.isArray(obj1) ? obj1 : [], Array.isArray(obj2) ? obj2 : []);
464
- }
465
- return Object.keys(__assign(__assign({}, obj1), obj2)).filter(function (a) { return !a.startsWith('_id') && !a.startsWith('id_'); }).map(function (key) {
466
- var obj1Val = obj1 ? obj1[key] : undefined;
467
- var obj2Val = obj2 ? obj2[key] : undefined;
468
- return "".concat(toTitleCase(key), ": ").concat(formatObjectDiff(obj1Val, obj2Val));
469
- }).join(', ');
470
- };
471
- // Handle each diff type
472
- ['added', 'deleted', 'updated'].forEach(function (diffType) {
473
- if (Object.keys(diff[diffType]).length > 0) {
474
- var updates = Object.keys(diff[diffType])
475
- .filter(function (key) { return diffType === 'added' ? true : (diffType === 'deleted' ? !diff['added'][key] : !diff['added'][key] && !diff['deleted'][key]); })
476
- .filter(function (key) { return !key.startsWith('_id') && !key.startsWith('id_'); })
477
- .map(function (key) { return "\n".concat(toTitleCase(key), ": ").concat(formatObjectDiff(obj1[key], obj2[key])); })
478
- .join(',');
479
- diffString += updates ? "".concat(updates) : '';
480
- }
481
- });
482
- return diffString;
483
- }
484
- exports.deepDiffDetails = deepDiffDetails;
485
- function getBinarySize(string) {
486
- if (string) {
487
- return Buffer.byteLength(string, 'utf8');
488
- }
489
- else {
490
- return 0;
491
- }
492
- }
493
- exports.getBinarySize = getBinarySize;
494
- function pad(num, size) {
495
- var s = num + '';
496
- while (s.length < size) {
497
- s = '0' + s;
498
- }
499
- return s;
500
- }
501
- exports.pad = pad;
502
- function randomString(length, chars) {
503
- var result = '';
504
- for (var i = length; i > 0; --i) {
505
- result += chars[Math.floor(Math.random() * chars.length)];
506
- }
507
- return result;
508
- }
509
- exports.randomString = randomString;
510
- function toTitleCase(str) {
511
- return str.replace(/\w\S*/g, function (txt) {
512
- return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
513
- });
514
- }
515
- exports.toTitleCase = toTitleCase;
516
- function isObject(item) {
517
- return (item && typeof item === 'object' && !Array.isArray(item));
518
- }
519
- exports.isObject = isObject;
520
- function mergeDeep(target) {
521
- var _a, _b;
522
- var sources = [];
523
- for (var _i = 1; _i < arguments.length; _i++) {
524
- sources[_i - 1] = arguments[_i];
525
- }
526
- if (!sources.length) {
527
- return target;
528
- }
529
- var source = sources.shift();
530
- if (isObject(target) && isObject(source)) {
531
- for (var key in source) {
532
- if (isObject(source[key])) {
533
- if (!target[key]) {
534
- Object.assign(target, (_a = {}, _a[key] = {}, _a));
535
- }
536
- mergeDeep(target[key], source[key]);
537
- }
538
- else {
539
- Object.assign(target, (_b = {}, _b[key] = source[key], _b));
540
- }
541
- }
542
- }
543
- return mergeDeep.apply(void 0, __spreadArray([target], sources, false));
544
- }
545
- exports.mergeDeep = mergeDeep;
546
-
1
+ "use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||((o=o||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},rusDiff=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeDeep=exports.isObject=exports.toTitleCase=exports.randomString=exports.pad=exports.getBinarySize=exports.deepDiffDetails=exports.applyMongoUpdate=exports.getDeepDiff=exports.mergeUpdates=exports.getMongoMergeUpdatedDoc=exports.getMongoUpdates=exports.dateReviver=exports.deepCopy=exports.floorPrecision=exports.roundPrecision=exports.throwErr=exports.buildRbLookups=exports.buildRbSchema=void 0,require("rus-diff")),deepDiff=require("deep-diff").diff,deep_object_diff_1=require("deep-object-diff"),clone=require("clone"),moment=require("moment-timezone");function buildRbSchema(t){return Object.keys(t).forEach(function(e){t[e].type===Object?(t[e].type="Object",t[e].rbType="Object"):t[e].type===Array?(t[e].type="Array",t[e].rbType="Array"):t[e].type===String?(t[e].type="String",t[e].rbType="String"):t[e].type===Date?(t[e].type="Date",t[e].rbType="Date"):t[e].type===Number?(t[e].type="Number",t[e].rbType="Number"):t[e].type===Boolean&&(t[e].rbType="Boolean",t[e].type="Boolean")}),Object.keys(t).forEach(function(e){delete t[e].type}),t}function buildRbLookups(e,a,t){void 0===t&&(t=[]),e.forEach(function(e){var t,r="",o="",n="",i=toTitleCase(e.lookup.replace(/\_/g," "))+" ("+toTitleCase(e.local_key.replace("id_","").replace(/\_/g," ").replace(/\.\$\./g," -> ").replace(/\./g," -> "))+") (Lookup)",i=(e.local_key.match(/\./)?(t=e.local_key.replace(/\.\$/g,""),o=(n=e.local_key.replace(/^(.+\.).*$/,"$1")).replace(/\.$/,"")):t=e.local_key,n=n+i,a[e.local_key]?a[e.local_key].type!==String&&(r+="--local_key: '"+e.local_key+"' MUST be a String! "):r+="--local_key: '"+e.local_key+"' MUST be a valid schema path! ",{lookup_collection:e.lookup,lookup_collection_alias:i,local_key:t,field_path:o,lookup_as:n,lookup_key:"_id",type:"Object"});a[n]=i,r&&throwErr(r,e,i,n)});for(var r=0;r<t.length;r++)a[t[r]]={},a[t[r]].default_checked=!0,Object.assign(a[t[r]],a.tree[t[r]]);return a}function throwErr(e,t,r,o){void 0===o&&(o=""),console.log("------- ERROR thrown by rbLookups: "),console.log(e),console.log("---item: "),console.log(t),console.log("---Attempted to create rbSchema['"+o+"']: "),console.log(r),process.exit(1)}function roundPrecision(e,t){void 0===t&&(t=0);e=e.toString(),e.includes(".")&&("0"===e[0]&&(t+=1),t-=e.indexOf(".")),t=Math.pow(10,t);return Math.round(parseFloat(e)*t)/t}function floorPrecision(e,t){void 0===t&&(t=0);e=e.toString(),e.includes(".")&&("0"===e[0]&&(t+=1),t-=e.indexOf(".")),t=Math.pow(10,t);return Math.floor(parseFloat(e)*t)/t}function deepCopy(e){return clone(e)}function dateReviver(e,t){if("string"==typeof t){var r=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(t);if(r)return new Date(Date.UTC(+r[1],+r[2]-1,+r[3],+r[4],+r[5],+r[6].split(".")[0],+r[6].split(".")[1]))}return t}function getMongoUpdates(e,t,r){e.createdAt&&(t.createdAt=e.createdAt),e.updatedAt&&(t.updatedAt=e.updatedAt);e=rusDiff.diff(e,t);return e?(e.$set&&!Object.keys(e.$set).length&&delete e.$set,r&&(e.$inc={__v:1})):r&&(e={$inc:{__v:1}}),e}function getMongoMergeUpdatedDoc(e,t,r){var o=deepCopy(r),t=(o.__v=t.__v,getDeepDiff(r,t));return applyMongoUpdate(o,mergeUpdates(getDeepDiff(r,e),t)),o}function mergeUpdates(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r={$set:{},$unset:{},$inc:{},$push:{},$pull:{}};return e.filter(Boolean).forEach(function(e){e.forEach(function(e){var t=e.path.join(".");switch(e.kind){case"E":handleEditedChange(r,t,e);break;case"A":handleArrayChange(r,t,e)}})}),r}function handleEditedChange(e,t,r){"number"==typeof r.rhs&&(t.includes("quantity")||t.includes("qty"))?e.$inc[t]=(e.$inc[t]||0)+r.rhs-r.lhs:e.$set[t]=r.rhs}function handleArrayChange(e,t,r){"N"===r.item.kind?(e.$push[t]=e.$push[t]||[],e.$push[t].some(function(e){return JSON.stringify(e)===JSON.stringify(r.item.rhs)})||e.$push[t].push(r.item.rhs)):"D"===r.item.kind&&(e.$pull[t]=e.$pull[t]||[],e.$pull[t].some(function(e){return JSON.stringify(e)===JSON.stringify(r.item.lhs)})||e.$pull[t].push(r.item.lhs))}function getDeepDiff(e,t){return delete e._id,delete e.__v,e.updatedAt&&delete e.updatedAt,e.createdAt&&delete e.createdAt,delete t._id,delete t.__v,t.updatedAt&&delete t.updatedAt,t.createdAt&&delete t.createdAt,deepDiff(e,t)}function applyMongoUpdate(e,t){var r=deepCopy(e);return t&&(t.$rename&&handleRename(e,t.$rename),t.$set&&handleSet(e,t.$set),t.$inc&&handleInc(e,t.$inc),t.$unset&&handleUnset(e,t.$unset),t.$pull&&handlePull(e,r,t.$pull),t.$push)&&handlePush(e,t.$push),e}function handleRename(e,t){for(var r in t){var o=t[r],n=resolve(e,r),i=n[0],n=n[1],a=resolve(e,o),l=a[0],a=a[1];i&&1===n.length?l&&1===a.length?(l[a[0]]=i[n[0]],delete i[n[0]]):logError(l,a,e,o):logError(i,n,e,r)}}function handleSet(e,t){for(var r in t){var o=t[r],n=resolve(e,r,{force:!0}),i=n[0],n=n[1];i&&1===n.length?i[n[0]]=o:logError(i,n,e,r)}}function handleInc(e,t){for(var r in t){var o=t[r],n=resolve(e,r,{force:!0}),i=n[0],n=n[1];i&&1===n.length?i[n[0]]=(i[n[0]]||0)+o:logError(i,n,e,r)}}function handleUnset(e,t){for(var r in t){var o=resolve(e,r),n=o[0],o=o[1];n&&1===o.length?delete n[o[0]]:logError(n,o,e,r)}}function handlePull(i,a,e){for(var l in e)for(var t=0,r=e[l];t<r.length;t++)!function(t){var e=resolve(i,l),r=e[0],e=e[1],o=resolve(a,l),n=o[0],o=o[1];r&&1===e.length?r[e[0]].splice(n[o[0]].findIndex(function(e){return JSON.stringify(e)===JSON.stringify(t)}),1):logError(r,e,i,l)}(r[t])}function handlePush(e,t){for(var r in t)for(var o=0,n=t[r];o<n.length;o++){var i=n[o],a=resolve(e,r),l=a[0],a=a[1];l&&1===a.length?l[a[0]].push(i):logError(l,a,e,r)}}function logError(e,t,r,o){console.log("Error",e+"/"+t+" - couldn't resolve for "+JSON.stringify(r)+" "+o)}function resolve(e,t,r){void 0===r&&(r={});for(var o=arrize(t),n=[],i=(0<o.length&&n.unshift(o.pop()),e);0<o.length;){var a=o.shift();if(void 0===i[a]){if(!r.force){n.unshift(a),n=o.concat(n);break}var l="number"==typeof o[0],s=0===o.length&&"number"==typeof n[0];i[a]=l||s?[]:{}}i=i[a]}return[i,n]}function arrize(e,t){return void 0===t&&(t="."),Array.isArray(e)?e.slice():null==e||!1===e||""===e?[]:e.toString().split(t).map(function(e){return[void 0,null,!1,""].includes(e)?null:e.toString()}).filter(function(e){return null!==e})}function deepDiffDetails(e,t){var r=deepCopy(e),o=deepCopy(t),n=(0,deep_object_diff_1.detailedDiff)(r,o),i="",l=function(t){return t instanceof Date?moment(t).format("llll"):"object"==typeof t&&null!==t?(Object.keys(t).filter(function(e){return e.startsWith("_id")||e.startsWith("id_")}).forEach(function(e){delete t[e]}),JSON.stringify(t)):"string"==typeof t?'"'.concat(t,'"'):String(t)},s=function(o,n){if(null===o||null===n||"object"!=typeof o||"object"!=typeof n)return"from: ".concat(l(o)," to: ").concat(l(n));if(Array.isArray(o)||Array.isArray(n)){for(var e=Array.isArray(o)?o:[],t=Array.isArray(n)?n:[],r=[],i=Math.max(e.length,t.length),a=0;a<i;a++)e[a]&&!t[a]?r.push("Removed at index ".concat(a,": ").concat(l(e[a]))):!e[a]&&t[a]?r.push("Added at index ".concat(a,": ").concat(l(t[a]))):e[a]&&t[a]&&JSON.stringify(e[a])!==JSON.stringify(t[a])&&r.push("Changed at index ".concat(a,": {").concat(s(e[a],t[a]),"}"));return r.join(", ")}return Object.keys(__assign(__assign({},o),n)).filter(function(e){return!e.startsWith("_id")&&!e.startsWith("id_")}).map(function(e){var t=o?o[e]:void 0,r=n?n[e]:void 0;return"".concat(toTitleCase(e),": ").concat(s(t,r))}).join(", ")};return["added","deleted","updated"].forEach(function(t){var e;0<Object.keys(n[t]).length&&(e=Object.keys(n[t]).filter(function(e){return"added"===t||("deleted"===t?!n.added[e]:!n.added[e]&&!n.deleted[e])}).filter(function(e){return!e.startsWith("_id")&&!e.startsWith("id_")}).map(function(e){return"\n".concat(toTitleCase(e),": ").concat(s(r[e],o[e]))}).join(","),i+=e?"".concat(e):"")}),i}function getBinarySize(e){return e?Buffer.byteLength(e,"utf8"):0}function pad(e,t){for(var r=e+"";r.length<t;)r="0"+r;return r}function randomString(e,t){for(var r="",o=e;0<o;--o)r+=t[Math.floor(Math.random()*t.length)];return r}function toTitleCase(e){return e.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}function isObject(e){return e&&"object"==typeof e&&!Array.isArray(e)}function mergeDeep(e){for(var t,r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];if(!r.length)return e;var n=r.shift();if(isObject(e)&&isObject(n))for(var i in n)isObject(n[i])?(e[i]||Object.assign(e,((t={})[i]={},t)),mergeDeep(e[i],n[i])):Object.assign(e,((t={})[i]=n[i],t));return mergeDeep.apply(void 0,__spreadArray([e],r,!1))}exports.buildRbSchema=buildRbSchema,exports.buildRbLookups=buildRbLookups,exports.throwErr=throwErr,exports.roundPrecision=roundPrecision,exports.floorPrecision=floorPrecision,exports.deepCopy=deepCopy,exports.dateReviver=dateReviver,exports.getMongoUpdates=getMongoUpdates,exports.getMongoMergeUpdatedDoc=getMongoMergeUpdatedDoc,exports.mergeUpdates=mergeUpdates,exports.getDeepDiff=getDeepDiff,exports.applyMongoUpdate=applyMongoUpdate,exports.deepDiffDetails=deepDiffDetails,exports.getBinarySize=getBinarySize,exports.pad=pad,exports.randomString=randomString,exports.toTitleCase=toTitleCase,exports.isObject=isObject,exports.mergeDeep=mergeDeep;
547
2
  //# sourceMappingURL=common.js.map