@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["let rusDiff = require('rus-diff');\nlet deepDiff = require('deep-diff').diff;\nimport { detailedDiff } from 'deep-object-diff';\nimport { LookupTables } from '../models/report-builder.model';\nlet clone = require('clone');\nimport * as moment from 'moment-timezone';\n\nexport function buildRbSchema(rbSchema: any) {\n\tObject.keys(rbSchema).forEach(key => {\n\t\tif (rbSchema[key].type === Object) {\n\t\t\trbSchema[key].type = 'Object';\n\t\t\trbSchema[key].rbType = 'Object';\n\t\t}\n\t\telse if (rbSchema[key].type === Array) {\n\t\t\trbSchema[key].type = 'Array';\n\t\t\trbSchema[key].rbType = 'Array';\n\t\t}\n\t\telse if (rbSchema[key].type === String) {\n\t\t\trbSchema[key].type = 'String';\n\t\t\trbSchema[key].rbType = 'String';\n\t\t}\n\t\telse if (rbSchema[key].type === Date) {\n\t\t\trbSchema[key].type = 'Date';\n\t\t\trbSchema[key].rbType = 'Date';\n\t\t}\n\t\telse if (rbSchema[key].type === Number) {\n\t\t\trbSchema[key].type = 'Number';\n\t\t\trbSchema[key].rbType = 'Number';\n\t\t}\n\t\telse if (rbSchema[key].type === Boolean) {\n\t\t\trbSchema[key].rbType = 'Boolean';\n\t\t\trbSchema[key].type = 'Boolean';\n\t\t}\n\t});\n\n\tObject.keys(rbSchema).forEach(key => {\n\t\tdelete rbSchema[key].type;\n\t});\n\n\treturn rbSchema;\n}\n\nexport function buildRbLookups(rbLookups: LookupTables[], defaultSchema: object, default_checked_array: string[] = []) {\n\t// Remember: lkp.local_key will be removed later on, because it has 'id_'\n\t\n\trbLookups.forEach(lkp => {\n\t\tlet errString = '';\n\t\tlet localKey, newPropertyName;\n\t\tlet localKeyDir = '';\n\t\tlet localKeyDirDot = '';\n\t\tlet collectionAlias = toTitleCase(lkp.lookup.replace(/\\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\\_/g, ' ').replace(/\\.\\$\\./g, ' -> ').replace(/\\./g, ' -> ')) + ') (Lookup)';\n\n\t\tif (lkp.local_key.match(/\\./)) {\n\t\t\tlocalKey = lkp.local_key.replace(/\\.\\$/g, '');\n\t\t\tlocalKeyDirDot = lkp.local_key.replace(/^(.+\\.).*$/, '$1');\n\t\t\tlocalKeyDir = localKeyDirDot.replace(/\\.$/, '');\n\t\t}\n\t\telse {\n\t\t\t// local_key is a root leaf node.\n\t\t\tlocalKey = lkp.local_key;\n\t\t}\n\t\tnewPropertyName = localKeyDirDot + collectionAlias;\n\t\t\n\t\tif (!defaultSchema[lkp.local_key]) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a valid schema path! ';\n\t\t}\n\t\telse if (defaultSchema[lkp.local_key].type !== String) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a String! ';\n\t\t}\n\t\tlet lookupNode = {\n\t\t\tlookup_collection: lkp.lookup,\n\t\t\tlookup_collection_alias: collectionAlias,\n\t\t\tlocal_key: localKey,\n\t\t\tfield_path: localKeyDir,\n\t\t\tlookup_as: newPropertyName,\n\t\t\tlookup_key: '_id',\n\t\t\ttype: 'Object',\n\t\t};\n\n\t\tdefaultSchema[newPropertyName] = lookupNode;\n\n\t\tif (errString) {\n\t\t\tthrowErr(errString, lkp, lookupNode, newPropertyName);\n\t\t}\n\t});\n\n\tfor (let ii = 0; ii < default_checked_array.length; ii++) {\n\t\tdefaultSchema[default_checked_array[ii]] = {};\n\t\tdefaultSchema[default_checked_array[ii]]['default_checked'] = true;\n\t\tObject.assign(defaultSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);\n\t}\n\n\treturn defaultSchema;\n}\n\nexport function throwErr(err: any, lkp, lookupNode, newPropertyName = '') {\n\t// err could be from a try/throw/catch\n\tconsole.log('------- ERROR thrown by rbLookups: ');\n\tconsole.log(err);\n\tconsole.log('---item: ');\n\tconsole.log(lkp);\n\tconsole.log('---Attempted to create rbSchema[\\'' + newPropertyName + '\\']: ');\n\tconsole.log(lookupNode);\n\tprocess.exit(1);\n}\n\nexport function roundPrecision(value: number, precision = 0) {\n\tlet stringValue = value.toString();\n\t\n\tif (stringValue.includes('.')) {\n\t\tif (stringValue[0] === '0') {\n\t\t\tprecision += 1;\n\t\t}\n\t\t\n\t\tprecision -= stringValue.indexOf('.');\n\t}\n\n\tconst exponent = Math.pow(10, precision);\n\treturn Math.round(parseFloat(stringValue) * exponent) / exponent;\n}\n\nexport function floorPrecision(value: number, precision = 0) {\n\tlet stringValue = value.toString();\n\t\n\tif (stringValue.includes('.')) {\n\t\tif (stringValue[0] === '0') {\n\t\t\tprecision += 1;\n\t\t}\n\t\t\n\t\tprecision -= stringValue.indexOf('.');\n\t}\n\n\tconst exponent = Math.pow(10, precision);\n\treturn Math.floor(parseFloat(stringValue) * exponent) / exponent;\n}\n\nexport function deepCopy(value) {\n\treturn clone(value);\n}\n\nexport function dateReviver(key, value) {\n\tif (typeof value === 'string') {\n\t\tlet a = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n\t\tif (a) {\n\t\t\treturn new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));\n\t\t}\n\t}\n\treturn value;\n}\n\nexport function getMongoUpdates(currDoc, modifiedDoc, incVersion) {\n\tif (currDoc.createdAt) {\n\t\tmodifiedDoc.createdAt = currDoc.createdAt;\n\t}\n\n\tif (currDoc.updatedAt) {\n\t\tmodifiedDoc.updatedAt = currDoc.updatedAt;\n\t}\n\n\tlet updates = rusDiff.diff(currDoc, modifiedDoc);\n\n\tif (updates) {\n\t\tif (updates.$set && !Object.keys(updates.$set).length) {\n\t\t\tdelete updates.$set;\n\t\t}\n\n\t\tif (incVersion) {\n\t\t\tupdates.$inc = {__v: 1};\n\t\t}\n\t}\n\telse {\n\t\tif (incVersion) {\n\t\t\tupdates = {\n\t\t\t\t$inc: {__v: 1}\n\t\t\t};\n\t\t}\n\t}\n\n\treturn updates;\n}\n\nexport function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {\n\tlet upDoc = deepCopy(oldDoc);\n\tupDoc.__v = currentDoc.__v;\n\tlet diff_1 = getDeepDiff(oldDoc, currentDoc);\n\tlet diff_2 = getDeepDiff(oldDoc, f_doc);\n\tlet updates = mergeUpdates(diff_2, diff_1);\n\tapplyMongoUpdate(upDoc, updates);\n\treturn upDoc;\n}\n\nexport function mergeUpdates(...updatesToMerge) {\n const merged = {\n $set: {},\n $unset: {},\n $inc: {},\n $push: {},\n $pull: {}\n };\n\n updatesToMerge.filter(Boolean).forEach(anUpdate => {\n anUpdate.forEach(change => {\n const path = change.path.join('.');\n\n switch (change.kind) {\n case 'E':\n handleEditedChange(merged, path, change);\n break;\n case 'A':\n handleArrayChange(merged, path, change);\n break;\n default:\n break;\n }\n });\n });\n\n return merged;\n}\n\nfunction handleEditedChange(merged, path, change) {\n if (typeof(change.rhs) === 'number' && (path.includes('quantity') || path.includes('qty'))) {\n merged.$inc[path] = (merged.$inc[path] || 0) + change.rhs - change.lhs;\n } else {\n merged.$set[path] = change.rhs;\n }\n}\n\nfunction handleArrayChange(merged, path, change) {\n if (change.item.kind === 'N') {\n merged.$push[path] = merged.$push[path] || [];\n if (!merged.$push[path].some(a => JSON.stringify(a) === JSON.stringify(change.item.rhs))) {\n merged.$push[path].push(change.item.rhs);\n }\n } else if (change.item.kind === 'D') {\n merged.$pull[path] = merged.$pull[path] || [];\n if (!merged.$pull[path].some(a => JSON.stringify(a) === JSON.stringify(change.item.lhs))) {\n merged.$pull[path].push(change.item.lhs);\n }\n }\n}\n\nexport function getDeepDiff(doc1, doc2) {\n\tdelete doc1._id;\n\tdelete doc1.__v;\n\n\tif (doc1.updatedAt) {\n\t\tdelete doc1.updatedAt;\n\t}\n\n\tif (doc1.createdAt) {\n\t\tdelete doc1.createdAt;\n\t}\n\n\tdelete doc2._id;\n\tdelete doc2.__v;\n\n\tif (doc2.updatedAt) {\n\t\tdelete doc2.updatedAt;\n\t}\n\n\tif (doc2.createdAt) {\n\t\tdelete doc2.createdAt;\n\t}\n\n\treturn deepDiff(doc1, doc2);\n}\n\nexport function applyMongoUpdate(uDoc: any, delta: any): any {\n const orig = deepCopy(uDoc);\n\n if (delta) {\n if (delta.$rename) handleRename(uDoc, delta.$rename);\n if (delta.$set) handleSet(uDoc, delta.$set);\n if (delta.$inc) handleInc(uDoc, delta.$inc);\n if (delta.$unset) handleUnset(uDoc, delta.$unset);\n if (delta.$pull) handlePull(uDoc, orig, delta.$pull);\n if (delta.$push) handlePush(uDoc, delta.$push);\n }\n\n return uDoc;\n}\n\nfunction handleRename(uDoc: any, renameMap: any) {\n for (const k in renameMap) {\n const v = renameMap[k];\n const [o1, n1] = resolve(uDoc, k);\n const [o2, n2] = resolve(uDoc, v);\n if (o1 && n1.length === 1) {\n if (o2 && n2.length === 1) {\n o2[n2[0]] = o1[n1[0]];\n delete o1[n1[0]];\n } else {\n logError(o2, n2, uDoc, v);\n }\n } else {\n logError(o1, n1, uDoc, k);\n }\n }\n}\n\nfunction handleSet(uDoc: any, setMap: any) {\n for (const k in setMap) {\n const v = setMap[k];\n const [o, n] = resolve(uDoc, k, { force: true });\n if (o && n.length === 1) {\n o[n[0]] = v;\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handleInc(uDoc: any, incMap: any) {\n for (const k in incMap) {\n const v = incMap[k];\n const [o, n] = resolve(uDoc, k, { force: true });\n if (o && n.length === 1) {\n o[n[0]] = (o[n[0]] || 0) + v;\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handleUnset(uDoc: any, unsetMap: any) {\n for (const k in unsetMap) {\n const [o, n] = resolve(uDoc, k);\n if (o && n.length === 1) {\n delete o[n[0]];\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handlePull(uDoc: any, orig: any, pullMap: any) {\n for (const pathk in pullMap) {\n const pullValues = pullMap[pathk];\n for (let vk of pullValues) {\n const [o, n] = resolve(uDoc, pathk);\n const [o2, n2] = resolve(orig, pathk);\n if (o && n.length === 1) {\n o[n[0]].splice((<Array<any>>o2[n2[0]]).findIndex(z => JSON.stringify(z) === JSON.stringify(vk)), 1);\n } else {\n logError(o, n, uDoc, pathk);\n }\n }\n }\n}\n\nfunction handlePush(uDoc: any, pushMap: any) {\n for (const pathk in pushMap) {\n const pushValues = pushMap[pathk];\n for (let vk of pushValues) {\n const [o, n] = resolve(uDoc, pathk);\n if (o && n.length === 1) {\n o[n[0]].push(vk);\n } else {\n logError(o, n, uDoc, pathk);\n }\n }\n }\n}\n\nfunction logError(o: any, n: any, uDoc: any, key: any) {\n console.log('Error', o + '/' + n + ' - couldn\\'t resolve for ' + JSON.stringify(uDoc) + ' ' + key);\n}\n\nfunction resolve(a: any, path: string, options: any = {}): [any, any] {\n const stack = arrize(path);\n let last = [];\n\n if (stack.length > 0) {\n last.unshift(stack.pop());\n }\n\n let e = a;\n while (stack.length > 0) {\n const k = stack.shift();\n if (e[k] !== void 0) {\n e = e[k];\n } else {\n if (!options.force) {\n last.unshift(k);\n last = stack.concat(last);\n break;\n }\n const isNextNum = typeof stack[0] === 'number';\n const isLastNum = stack.length === 0 && typeof last[0] === 'number';\n e[k] = isNextNum || isLastNum ? [] : {};\n e = e[k];\n }\n }\n\n return [e, last];\n}\n\nfunction arrize(path: any, glue: string = '.'): string[] {\n if (Array.isArray(path)) {\n return path.slice();\n }\n\n if (path === void 0 || path === null || path === false || path === '') {\n return [];\n }\n\n return path.toString().split(glue)\n .map(e => {\n if ([void 0, null, false, ''].includes(e)) {\n return null;\n }\n return e.toString();\n })\n .filter(e => e !== null);\n}\n\nexport function deepDiffDetails(object1: Object, object2: Object): string {\n let obj1 = deepCopy(object1);\n\tlet obj2 = deepCopy(object2);\n\n\tlet diff = detailedDiff(obj1, obj2);\n\tlet diffString = '';\n\n\tconst formatValue = (value: any): string => {\n\t\tif (value instanceof Date) {\n\t\t\treturn moment(value).format('llll');\n\t\t} \n\t\telse if (typeof value === 'object' && value !== null) {\n\t\t\tObject.keys(value).filter(a => a.startsWith('_id') || a.startsWith('id_')).forEach(key => {\n\t\t\t\tdelete value[key];\n\t\t\t});\n\t\t\treturn JSON.stringify(value); // Pretty print objects\n\t\t} \n\t\telse {\n\t\t\treturn typeof value === 'string' ? `\"${value}\"` : String(value);\n\t\t}\n\t};\n\n\tconst customArrayDiff = (arr1: any[], arr2: any[]): string => {\n let arrayDiffResults = [];\n const maxLength = Math.max(arr1.length, arr2.length);\n\n for (let i = 0; i < maxLength; i++) {\n if (arr1[i] && !arr2[i]) {\n arrayDiffResults.push(`Removed at index ${i}: ${formatValue(arr1[i])}`);\n } \n\t\t\telse if (!arr1[i] && arr2[i]) {\n arrayDiffResults.push(`Added at index ${i}: ${formatValue(arr2[i])}`);\n } \n\t\t\telse if (arr1[i] && arr2[i] && JSON.stringify(arr1[i]) !== JSON.stringify(arr2[i])) {\n arrayDiffResults.push(`Changed at index ${i}: {${formatObjectDiff(arr1[i], arr2[i])}}`);\n }\n }\n\n return arrayDiffResults.join(', ');\n };\n\n\tconst formatObjectDiff = (obj1: any, obj2: any): string => {\n\t\tif (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {\n\t\t\treturn `from: ${formatValue(obj1)} to: ${formatValue(obj2)}`;\n\t\t}\n\n\t\tif (Array.isArray(obj1) || Array.isArray(obj2)) {\n\t\t\treturn customArrayDiff(Array.isArray(obj1) ? obj1 : [], Array.isArray(obj2) ? obj2 : []);\n\t\t}\n\n\t\treturn Object.keys({...obj1, ...obj2}).filter(a => !a.startsWith('_id') && !a.startsWith('id_')).map(key => {\n\t\t\tconst obj1Val = obj1 ? obj1[key] : undefined;\n\t\t\tconst obj2Val = obj2 ? obj2[key] : undefined;\n\t\t\treturn `${toTitleCase(key)}: ${formatObjectDiff(obj1Val, obj2Val)}`;\n\t\t}).join(', ');\n\t};\n\n\t// Handle each diff type\n\t['added', 'deleted', 'updated'].forEach(diffType => {\n\t\tif (Object.keys(diff[diffType]).length > 0) {\n\t\t\tconst updates = Object.keys(diff[diffType])\n\t\t\t\t.filter(key => diffType === 'added' ? true : (diffType === 'deleted' ? !diff['added'][key] : !diff['added'][key] && !diff['deleted'][key]))\n\t\t\t\t.filter(key => !key.startsWith('_id') && !key.startsWith('id_'))\n\t\t\t\t.map(key => `\\n${toTitleCase(key)}: ${formatObjectDiff(obj1[key], obj2[key])}`)\n\t\t\t\t.join(',');\n\n\t\t\tdiffString += updates ? `${updates}` : '';\n\t\t}\n\t});\n\n\treturn diffString;\n}\n\nexport function getBinarySize(string) {\n\tif (string) {\n\t\treturn Buffer.byteLength(string, 'utf8');\n\t}\n\telse {\n\t\treturn 0;\n\t}\n}\n\nexport function pad(num, size) {\n\tlet s = num + '';\n\twhile (s.length < size) { s = '0' + s; }\n\treturn s;\n}\n\nexport function randomString(length, chars) {\n\tlet result = '';\n\tfor (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }\n\treturn result;\n}\n\nexport function toTitleCase(str) {\n\treturn str.replace(/\\w\\S*/g, function(txt){\n\t\treturn txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n\t});\n}\n\nexport function isObject(item) {\n\treturn (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep(target, ...sources) {\n\tif (!sources.length) {\n\t\treturn target;\n\t}\n\tconst source = sources.shift();\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\tObject.assign(target, { [key]: {} });\n\t\t\t\t}\n\t\t\t\tmergeDeep(target[key], source[key]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeDeep(target, ...sources);\n}"]}
1
+ {"version":3,"sources":["../../src/util/common.ts"],"names":["rusDiff","require","deepDiff","diff","deep_object_diff_1","clone","moment","buildRbSchema","rbSchema","Object","keys","forEach","key","type","rbType","Array","String","Date","Number","Boolean","buildRbLookups","rbLookups","defaultSchema","default_checked_array","lkp","localKey","errString","localKeyDir","localKeyDirDot","collectionAlias","toTitleCase","lookup","replace","local_key","lookupNode","match","newPropertyName","lookup_collection","lookup_collection_alias","field_path","lookup_as","lookup_key","throwErr","ii","length","assign","err","console","log","process","exit","roundPrecision","value","precision","stringValue","toString","includes","indexOf","exponent","Math","pow","round","parseFloat","floorPrecision","floor","deepCopy","dateReviver","a","exec","UTC","split","getMongoUpdates","currDoc","modifiedDoc","incVersion","createdAt","updatedAt","updates","$set","$inc","__v","getMongoMergeUpdatedDoc","f_doc","currentDoc","oldDoc","upDoc","diff_1","getDeepDiff","applyMongoUpdate","mergeUpdates","updatesToMerge","_i","arguments","merged","$unset","$push","$pull","filter","anUpdate","change","path","join","kind","handleEditedChange","handleArrayChange","rhs","lhs","item","some","JSON","stringify","push","doc1","doc2","_id","uDoc","delta","orig","$rename","handleRename","handleSet","handleInc","handleUnset","handlePull","handlePush","renameMap","k","v","_a","resolve","o1","n1","_b","o2","n2","logError","setMap","force","o","n","incMap","unsetMap","pullMap","pathk","pullValues_1","vk","splice","findIndex","z","pushMap","pushValues_1","options","stack","arrize","last","e","unshift","pop","shift","concat","isNextNum","isLastNum","glue","isArray","slice","map","deepDiffDetails","object1","object2","obj1","obj2","detailedDiff","diffString","formatValue","format","startsWith","formatObjectDiff","customArrayDiff","arr1","arr2","arrayDiffResults","maxLength","max","i","__assign","obj1Val","undefined","obj2Val","diffType","getBinarySize","string","Buffer","byteLength","pad","num","size","s","randomString","chars","result","random","str","txt","charAt","toUpperCase","substr","toLowerCase","isObject","mergeDeep","target","sources","source","apply","__spreadArray","exports"],"mappings":"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","file":"common.js","sourcesContent":["let rusDiff = require('rus-diff');\nlet deepDiff = require('deep-diff').diff;\nimport { detailedDiff } from 'deep-object-diff';\nimport { LookupTables } from '../models/report-builder.model';\nlet clone = require('clone');\nimport * as moment from 'moment-timezone';\n\nexport function buildRbSchema(rbSchema: any) {\n\tObject.keys(rbSchema).forEach(key => {\n\t\tif (rbSchema[key].type === Object) {\n\t\t\trbSchema[key].type = 'Object';\n\t\t\trbSchema[key].rbType = 'Object';\n\t\t}\n\t\telse if (rbSchema[key].type === Array) {\n\t\t\trbSchema[key].type = 'Array';\n\t\t\trbSchema[key].rbType = 'Array';\n\t\t}\n\t\telse if (rbSchema[key].type === String) {\n\t\t\trbSchema[key].type = 'String';\n\t\t\trbSchema[key].rbType = 'String';\n\t\t}\n\t\telse if (rbSchema[key].type === Date) {\n\t\t\trbSchema[key].type = 'Date';\n\t\t\trbSchema[key].rbType = 'Date';\n\t\t}\n\t\telse if (rbSchema[key].type === Number) {\n\t\t\trbSchema[key].type = 'Number';\n\t\t\trbSchema[key].rbType = 'Number';\n\t\t}\n\t\telse if (rbSchema[key].type === Boolean) {\n\t\t\trbSchema[key].rbType = 'Boolean';\n\t\t\trbSchema[key].type = 'Boolean';\n\t\t}\n\t});\n\n\tObject.keys(rbSchema).forEach(key => {\n\t\tdelete rbSchema[key].type;\n\t});\n\n\treturn rbSchema;\n}\n\nexport function buildRbLookups(rbLookups: LookupTables[], defaultSchema: object, default_checked_array: string[] = []) {\n\t// Remember: lkp.local_key will be removed later on, because it has 'id_'\n\t\n\trbLookups.forEach(lkp => {\n\t\tlet errString = '';\n\t\tlet localKey, newPropertyName;\n\t\tlet localKeyDir = '';\n\t\tlet localKeyDirDot = '';\n\t\tlet collectionAlias = toTitleCase(lkp.lookup.replace(/\\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\\_/g, ' ').replace(/\\.\\$\\./g, ' -> ').replace(/\\./g, ' -> ')) + ') (Lookup)';\n\n\t\tif (lkp.local_key.match(/\\./)) {\n\t\t\tlocalKey = lkp.local_key.replace(/\\.\\$/g, '');\n\t\t\tlocalKeyDirDot = lkp.local_key.replace(/^(.+\\.).*$/, '$1');\n\t\t\tlocalKeyDir = localKeyDirDot.replace(/\\.$/, '');\n\t\t}\n\t\telse {\n\t\t\t// local_key is a root leaf node.\n\t\t\tlocalKey = lkp.local_key;\n\t\t}\n\t\tnewPropertyName = localKeyDirDot + collectionAlias;\n\t\t\n\t\tif (!defaultSchema[lkp.local_key]) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a valid schema path! ';\n\t\t}\n\t\telse if (defaultSchema[lkp.local_key].type !== String) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a String! ';\n\t\t}\n\t\tlet lookupNode = {\n\t\t\tlookup_collection: lkp.lookup,\n\t\t\tlookup_collection_alias: collectionAlias,\n\t\t\tlocal_key: localKey,\n\t\t\tfield_path: localKeyDir,\n\t\t\tlookup_as: newPropertyName,\n\t\t\tlookup_key: '_id',\n\t\t\ttype: 'Object',\n\t\t};\n\n\t\tdefaultSchema[newPropertyName] = lookupNode;\n\n\t\tif (errString) {\n\t\t\tthrowErr(errString, lkp, lookupNode, newPropertyName);\n\t\t}\n\t});\n\n\tfor (let ii = 0; ii < default_checked_array.length; ii++) {\n\t\tdefaultSchema[default_checked_array[ii]] = {};\n\t\tdefaultSchema[default_checked_array[ii]]['default_checked'] = true;\n\t\tObject.assign(defaultSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);\n\t}\n\n\treturn defaultSchema;\n}\n\nexport function throwErr(err: any, lkp, lookupNode, newPropertyName = '') {\n\t// err could be from a try/throw/catch\n\tconsole.log('------- ERROR thrown by rbLookups: ');\n\tconsole.log(err);\n\tconsole.log('---item: ');\n\tconsole.log(lkp);\n\tconsole.log('---Attempted to create rbSchema[\\'' + newPropertyName + '\\']: ');\n\tconsole.log(lookupNode);\n\tprocess.exit(1);\n}\n\nexport function roundPrecision(value: number, precision = 0) {\n\tlet stringValue = value.toString();\n\t\n\tif (stringValue.includes('.')) {\n\t\tif (stringValue[0] === '0') {\n\t\t\tprecision += 1;\n\t\t}\n\t\t\n\t\tprecision -= stringValue.indexOf('.');\n\t}\n\n\tconst exponent = Math.pow(10, precision);\n\treturn Math.round(parseFloat(stringValue) * exponent) / exponent;\n}\n\nexport function floorPrecision(value: number, precision = 0) {\n\tlet stringValue = value.toString();\n\t\n\tif (stringValue.includes('.')) {\n\t\tif (stringValue[0] === '0') {\n\t\t\tprecision += 1;\n\t\t}\n\t\t\n\t\tprecision -= stringValue.indexOf('.');\n\t}\n\n\tconst exponent = Math.pow(10, precision);\n\treturn Math.floor(parseFloat(stringValue) * exponent) / exponent;\n}\n\nexport function deepCopy(value) {\n\treturn clone(value);\n}\n\nexport function dateReviver(key, value) {\n\tif (typeof value === 'string') {\n\t\tlet a = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n\t\tif (a) {\n\t\t\treturn new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));\n\t\t}\n\t}\n\treturn value;\n}\n\nexport function getMongoUpdates(currDoc, modifiedDoc, incVersion) {\n\tif (currDoc.createdAt) {\n\t\tmodifiedDoc.createdAt = currDoc.createdAt;\n\t}\n\n\tif (currDoc.updatedAt) {\n\t\tmodifiedDoc.updatedAt = currDoc.updatedAt;\n\t}\n\n\tlet updates = rusDiff.diff(currDoc, modifiedDoc);\n\n\tif (updates) {\n\t\tif (updates.$set && !Object.keys(updates.$set).length) {\n\t\t\tdelete updates.$set;\n\t\t}\n\n\t\tif (incVersion) {\n\t\t\tupdates.$inc = {__v: 1};\n\t\t}\n\t}\n\telse {\n\t\tif (incVersion) {\n\t\t\tupdates = {\n\t\t\t\t$inc: {__v: 1}\n\t\t\t};\n\t\t}\n\t}\n\n\treturn updates;\n}\n\nexport function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {\n\tlet upDoc = deepCopy(oldDoc);\n\tupDoc.__v = currentDoc.__v;\n\tlet diff_1 = getDeepDiff(oldDoc, currentDoc);\n\tlet diff_2 = getDeepDiff(oldDoc, f_doc);\n\tlet updates = mergeUpdates(diff_2, diff_1);\n\tapplyMongoUpdate(upDoc, updates);\n\treturn upDoc;\n}\n\nexport function mergeUpdates(...updatesToMerge) {\n const merged = {\n $set: {},\n $unset: {},\n $inc: {},\n $push: {},\n $pull: {}\n };\n\n updatesToMerge.filter(Boolean).forEach(anUpdate => {\n anUpdate.forEach(change => {\n const path = change.path.join('.');\n\n switch (change.kind) {\n case 'E':\n handleEditedChange(merged, path, change);\n break;\n case 'A':\n handleArrayChange(merged, path, change);\n break;\n default:\n break;\n }\n });\n });\n\n return merged;\n}\n\nfunction handleEditedChange(merged, path, change) {\n if (typeof(change.rhs) === 'number' && (path.includes('quantity') || path.includes('qty'))) {\n merged.$inc[path] = (merged.$inc[path] || 0) + change.rhs - change.lhs;\n } else {\n merged.$set[path] = change.rhs;\n }\n}\n\nfunction handleArrayChange(merged, path, change) {\n if (change.item.kind === 'N') {\n merged.$push[path] = merged.$push[path] || [];\n if (!merged.$push[path].some(a => JSON.stringify(a) === JSON.stringify(change.item.rhs))) {\n merged.$push[path].push(change.item.rhs);\n }\n } else if (change.item.kind === 'D') {\n merged.$pull[path] = merged.$pull[path] || [];\n if (!merged.$pull[path].some(a => JSON.stringify(a) === JSON.stringify(change.item.lhs))) {\n merged.$pull[path].push(change.item.lhs);\n }\n }\n}\n\nexport function getDeepDiff(doc1, doc2) {\n\tdelete doc1._id;\n\tdelete doc1.__v;\n\n\tif (doc1.updatedAt) {\n\t\tdelete doc1.updatedAt;\n\t}\n\n\tif (doc1.createdAt) {\n\t\tdelete doc1.createdAt;\n\t}\n\n\tdelete doc2._id;\n\tdelete doc2.__v;\n\n\tif (doc2.updatedAt) {\n\t\tdelete doc2.updatedAt;\n\t}\n\n\tif (doc2.createdAt) {\n\t\tdelete doc2.createdAt;\n\t}\n\n\treturn deepDiff(doc1, doc2);\n}\n\nexport function applyMongoUpdate(uDoc: any, delta: any): any {\n const orig = deepCopy(uDoc);\n\n if (delta) {\n if (delta.$rename) handleRename(uDoc, delta.$rename);\n if (delta.$set) handleSet(uDoc, delta.$set);\n if (delta.$inc) handleInc(uDoc, delta.$inc);\n if (delta.$unset) handleUnset(uDoc, delta.$unset);\n if (delta.$pull) handlePull(uDoc, orig, delta.$pull);\n if (delta.$push) handlePush(uDoc, delta.$push);\n }\n\n return uDoc;\n}\n\nfunction handleRename(uDoc: any, renameMap: any) {\n for (const k in renameMap) {\n const v = renameMap[k];\n const [o1, n1] = resolve(uDoc, k);\n const [o2, n2] = resolve(uDoc, v);\n if (o1 && n1.length === 1) {\n if (o2 && n2.length === 1) {\n o2[n2[0]] = o1[n1[0]];\n delete o1[n1[0]];\n } else {\n logError(o2, n2, uDoc, v);\n }\n } else {\n logError(o1, n1, uDoc, k);\n }\n }\n}\n\nfunction handleSet(uDoc: any, setMap: any) {\n for (const k in setMap) {\n const v = setMap[k];\n const [o, n] = resolve(uDoc, k, { force: true });\n if (o && n.length === 1) {\n o[n[0]] = v;\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handleInc(uDoc: any, incMap: any) {\n for (const k in incMap) {\n const v = incMap[k];\n const [o, n] = resolve(uDoc, k, { force: true });\n if (o && n.length === 1) {\n o[n[0]] = (o[n[0]] || 0) + v;\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handleUnset(uDoc: any, unsetMap: any) {\n for (const k in unsetMap) {\n const [o, n] = resolve(uDoc, k);\n if (o && n.length === 1) {\n delete o[n[0]];\n } else {\n logError(o, n, uDoc, k);\n }\n }\n}\n\nfunction handlePull(uDoc: any, orig: any, pullMap: any) {\n for (const pathk in pullMap) {\n const pullValues = pullMap[pathk];\n for (let vk of pullValues) {\n const [o, n] = resolve(uDoc, pathk);\n const [o2, n2] = resolve(orig, pathk);\n if (o && n.length === 1) {\n o[n[0]].splice((<Array<any>>o2[n2[0]]).findIndex(z => JSON.stringify(z) === JSON.stringify(vk)), 1);\n } else {\n logError(o, n, uDoc, pathk);\n }\n }\n }\n}\n\nfunction handlePush(uDoc: any, pushMap: any) {\n for (const pathk in pushMap) {\n const pushValues = pushMap[pathk];\n for (let vk of pushValues) {\n const [o, n] = resolve(uDoc, pathk);\n if (o && n.length === 1) {\n o[n[0]].push(vk);\n } else {\n logError(o, n, uDoc, pathk);\n }\n }\n }\n}\n\nfunction logError(o: any, n: any, uDoc: any, key: any) {\n console.log('Error', o + '/' + n + ' - couldn\\'t resolve for ' + JSON.stringify(uDoc) + ' ' + key);\n}\n\nfunction resolve(a: any, path: string, options: any = {}): [any, any] {\n const stack = arrize(path);\n let last = [];\n\n if (stack.length > 0) {\n last.unshift(stack.pop());\n }\n\n let e = a;\n while (stack.length > 0) {\n const k = stack.shift();\n if (e[k] !== void 0) {\n e = e[k];\n } else {\n if (!options.force) {\n last.unshift(k);\n last = stack.concat(last);\n break;\n }\n const isNextNum = typeof stack[0] === 'number';\n const isLastNum = stack.length === 0 && typeof last[0] === 'number';\n e[k] = isNextNum || isLastNum ? [] : {};\n e = e[k];\n }\n }\n\n return [e, last];\n}\n\nfunction arrize(path: any, glue: string = '.'): string[] {\n if (Array.isArray(path)) {\n return path.slice();\n }\n\n if (path === void 0 || path === null || path === false || path === '') {\n return [];\n }\n\n return path.toString().split(glue)\n .map(e => {\n if ([void 0, null, false, ''].includes(e)) {\n return null;\n }\n return e.toString();\n })\n .filter(e => e !== null);\n}\n\nexport function deepDiffDetails(object1: Object, object2: Object): string {\n let obj1 = deepCopy(object1);\n\tlet obj2 = deepCopy(object2);\n\n\tlet diff = detailedDiff(obj1, obj2);\n\tlet diffString = '';\n\n\tconst formatValue = (value: any): string => {\n\t\tif (value instanceof Date) {\n\t\t\treturn moment(value).format('llll');\n\t\t} \n\t\telse if (typeof value === 'object' && value !== null) {\n\t\t\tObject.keys(value).filter(a => a.startsWith('_id') || a.startsWith('id_')).forEach(key => {\n\t\t\t\tdelete value[key];\n\t\t\t});\n\t\t\treturn JSON.stringify(value); // Pretty print objects\n\t\t} \n\t\telse {\n\t\t\treturn typeof value === 'string' ? `\"${value}\"` : String(value);\n\t\t}\n\t};\n\n\tconst customArrayDiff = (arr1: any[], arr2: any[]): string => {\n let arrayDiffResults = [];\n const maxLength = Math.max(arr1.length, arr2.length);\n\n for (let i = 0; i < maxLength; i++) {\n if (arr1[i] && !arr2[i]) {\n arrayDiffResults.push(`Removed at index ${i}: ${formatValue(arr1[i])}`);\n } \n\t\t\telse if (!arr1[i] && arr2[i]) {\n arrayDiffResults.push(`Added at index ${i}: ${formatValue(arr2[i])}`);\n } \n\t\t\telse if (arr1[i] && arr2[i] && JSON.stringify(arr1[i]) !== JSON.stringify(arr2[i])) {\n arrayDiffResults.push(`Changed at index ${i}: {${formatObjectDiff(arr1[i], arr2[i])}}`);\n }\n }\n\n return arrayDiffResults.join(', ');\n };\n\n\tconst formatObjectDiff = (obj1: any, obj2: any): string => {\n\t\tif (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {\n\t\t\treturn `from: ${formatValue(obj1)} to: ${formatValue(obj2)}`;\n\t\t}\n\n\t\tif (Array.isArray(obj1) || Array.isArray(obj2)) {\n\t\t\treturn customArrayDiff(Array.isArray(obj1) ? obj1 : [], Array.isArray(obj2) ? obj2 : []);\n\t\t}\n\n\t\treturn Object.keys({...obj1, ...obj2}).filter(a => !a.startsWith('_id') && !a.startsWith('id_')).map(key => {\n\t\t\tconst obj1Val = obj1 ? obj1[key] : undefined;\n\t\t\tconst obj2Val = obj2 ? obj2[key] : undefined;\n\t\t\treturn `${toTitleCase(key)}: ${formatObjectDiff(obj1Val, obj2Val)}`;\n\t\t}).join(', ');\n\t};\n\n\t// Handle each diff type\n\t['added', 'deleted', 'updated'].forEach(diffType => {\n\t\tif (Object.keys(diff[diffType]).length > 0) {\n\t\t\tconst updates = Object.keys(diff[diffType])\n\t\t\t\t.filter(key => diffType === 'added' ? true : (diffType === 'deleted' ? !diff['added'][key] : !diff['added'][key] && !diff['deleted'][key]))\n\t\t\t\t.filter(key => !key.startsWith('_id') && !key.startsWith('id_'))\n\t\t\t\t.map(key => `\\n${toTitleCase(key)}: ${formatObjectDiff(obj1[key], obj2[key])}`)\n\t\t\t\t.join(',');\n\n\t\t\tdiffString += updates ? `${updates}` : '';\n\t\t}\n\t});\n\n\treturn diffString;\n}\n\nexport function getBinarySize(string) {\n\tif (string) {\n\t\treturn Buffer.byteLength(string, 'utf8');\n\t}\n\telse {\n\t\treturn 0;\n\t}\n}\n\nexport function pad(num, size) {\n\tlet s = num + '';\n\twhile (s.length < size) { s = '0' + s; }\n\treturn s;\n}\n\nexport function randomString(length, chars) {\n\tlet result = '';\n\tfor (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }\n\treturn result;\n}\n\nexport function toTitleCase(str) {\n\treturn str.replace(/\\w\\S*/g, function(txt){\n\t\treturn txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n\t});\n}\n\nexport function isObject(item) {\n\treturn (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep(target, ...sources) {\n\tif (!sources.length) {\n\t\treturn target;\n\t}\n\tconst source = sources.shift();\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\tObject.assign(target, { [key]: {} });\n\t\t\t\t}\n\t\t\t\tmergeDeep(target[key], source[key]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeDeep(target, ...sources);\n}"]}
@@ -1,453 +1,2 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.mongoCommand = exports.getLeafFormatTypes = exports.getLeafValueTypes = exports.buildTree = exports.getReportLookupSchemas = void 0;
40
- var index_1 = require("../index");
41
- var common_1 = require("./common");
42
- function getReportLookupSchemas(collection_root) {
43
- var lookupTrees = [];
44
- lookupTrees.push({ collection_name: collection_root, tree: index_1.ResolveIOServer.getMongoManager().collection(collection_root)['rbSchema'], is_root: true });
45
- var schemaObj = index_1.ResolveIOServer.getMongoManager().collection(collection_root)['rbSchema'];
46
- var modelKeys = Object.keys(schemaObj);
47
- modelKeys.forEach(function (field) {
48
- if (schemaObj[field].lookup_collection) {
49
- var collectionName_1 = schemaObj[field].lookup_collection;
50
- var collectionModel = index_1.ResolveIOServer.getMongoManager().collection(collectionName_1);
51
- if (!lookupTrees.filter(function (a) { return a.collection_name === collectionName_1; }).length) {
52
- lookupTrees.push({ collection_name: collectionName_1, tree: collectionModel['rbSchema'], is_root: false });
53
- }
54
- }
55
- });
56
- return lookupTrees;
57
- }
58
- exports.getReportLookupSchemas = getReportLookupSchemas;
59
- function buildTree(current_root, schemaTree, lookup) {
60
- var res = [];
61
- Object.keys(schemaTree).filter(function (a) { return a !== '_id' && a !== 'id' && a !== '__v'; }).forEach(function (key) {
62
- // Object.keys(schemaTree).filter(a => a !== '__v').forEach(key => {
63
- if (!lookup || (lookup && !schemaTree[key].lookup_collection)) {
64
- var treeItemSplit = key.split('.');
65
- // debugger;
66
- if (treeItemSplit.length === 1) {
67
- if (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {
68
- res.push({
69
- collection_name: current_root,
70
- columnName: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
71
- fieldName: key,
72
- fieldType: schemaTree[key].rbType,
73
- fieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),
74
- distinctFieldValues: [],
75
- fieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,
76
- fieldPathName: lookup ? ((0, common_1.toTitleCase)(lookup.lookup_as.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) + ' (List) -> ' + ((0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) : (0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> ')),
77
- lookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),
78
- lookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),
79
- lookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),
80
- lookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),
81
- text: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
82
- value: key,
83
- isLeaf: true,
84
- isActive: false,
85
- isSelected: false,
86
- depth: 0,
87
- leafValueType: '',
88
- leafValueTypes: getLeafValueTypes(schemaTree[key], key),
89
- leafFormatType: '',
90
- leafFormatTypes: getLeafFormatTypes(schemaTree[key], key)
91
- });
92
- }
93
- else {
94
- res.push({
95
- collection_name: current_root,
96
- columnName: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
97
- fieldName: key,
98
- fieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,
99
- fieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),
100
- distinctFieldValues: [],
101
- fieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,
102
- fieldPathName: lookup ? ((0, common_1.toTitleCase)(lookup.lookup_as.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) + ' (List) -> ' + ((0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) : (0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> ')),
103
- lookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),
104
- lookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),
105
- lookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),
106
- lookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),
107
- text: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
108
- value: key,
109
- isLeaf: false,
110
- isActive: false,
111
- isSelected: false,
112
- depth: 0,
113
- leafValueType: '',
114
- leafFormatType: '',
115
- children: []
116
- });
117
- }
118
- res = res.sort(function (a, b) { return a.fieldName.localeCompare(b.fieldName); });
119
- }
120
- else {
121
- var child_1 = null;
122
- treeItemSplit.forEach(function (layer, index) {
123
- if (!child_1) {
124
- child_1 = res.filter(function (a) { return a.fieldName === layer; })[0];
125
- }
126
- else {
127
- if (child_1.children.filter(function (a) { return a.fieldName === layer; })[0]) {
128
- child_1 = child_1.children.filter(function (a) { return a.fieldName === layer; })[0];
129
- }
130
- else {
131
- if (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {
132
- child_1.children.push({
133
- collection_name: current_root,
134
- columnName: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
135
- fieldName: layer,
136
- fieldType: schemaTree[key].rbType,
137
- fieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),
138
- distinctFieldValues: [],
139
- fieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,
140
- fieldPathName: lookup ? ((0, common_1.toTitleCase)(lookup.lookup_as.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) + ' (List) -> ' + ((0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) : (0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> ')),
141
- lookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),
142
- lookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),
143
- lookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),
144
- lookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),
145
- text: (0, common_1.toTitleCase)(layer.replace(/\_/g, ' ')),
146
- value: layer,
147
- isLeaf: true,
148
- isActive: false,
149
- isSelected: false,
150
- depth: index,
151
- leafValueType: '',
152
- leafValueTypes: getLeafValueTypes(schemaTree[key], key),
153
- leafFormatType: '',
154
- leafFormatTypes: getLeafFormatTypes(schemaTree[key], key)
155
- });
156
- }
157
- else {
158
- child_1.children.push({
159
- collection_name: current_root,
160
- columnName: (0, common_1.toTitleCase)(key.replace(/\_/g, ' ')),
161
- fieldName: layer,
162
- fieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,
163
- fieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),
164
- distinctFieldValues: [],
165
- fieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,
166
- fieldPathName: lookup ? ((0, common_1.toTitleCase)(lookup.lookup_as.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) + ' (List) -> ' + ((0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> '))) : (0, common_1.toTitleCase)(key.replace(/\.\$\./g, ' (List) -> ').replace(/\./g, ' (Group) -> ')),
167
- lookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),
168
- lookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),
169
- lookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),
170
- lookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),
171
- text: (0, common_1.toTitleCase)(layer.replace(/\_/g, ' ')),
172
- value: layer,
173
- isLeaf: false,
174
- isActive: false,
175
- isSelected: false,
176
- depth: index,
177
- leafValueType: '',
178
- leafFormatType: '',
179
- children: []
180
- });
181
- }
182
- child_1.children = child_1.children.sort(function (a, b) { return a.fieldName.localeCompare(b.fieldName); });
183
- }
184
- }
185
- });
186
- }
187
- }
188
- });
189
- return res;
190
- }
191
- exports.buildTree = buildTree;
192
- function getLeafValueTypes(schemaTree, fieldPath) {
193
- var leafTypes = [];
194
- if (schemaTree.rbType === 'String') {
195
- leafTypes = [
196
- {
197
- text: 'As Value',
198
- value: 'Value'
199
- },
200
- {
201
- text: 'Unique',
202
- value: 'Unique'
203
- },
204
- {
205
- text: 'As Count',
206
- value: 'Count'
207
- },
208
- {
209
- text: 'First',
210
- value: 'First'
211
- },
212
- {
213
- text: 'Last',
214
- value: 'Last'
215
- }
216
- ];
217
- }
218
- else if (schemaTree.rbType === 'Number') {
219
- leafTypes = [
220
- {
221
- text: 'As Value',
222
- value: 'Value'
223
- },
224
- {
225
- text: 'Unique',
226
- value: 'Unique'
227
- },
228
- {
229
- text: 'As Average',
230
- value: 'Average'
231
- },
232
- {
233
- text: 'As Count',
234
- value: 'Count'
235
- },
236
- {
237
- text: 'As Sum',
238
- value: 'Sum'
239
- },
240
- {
241
- text: 'Minimum',
242
- value: 'Minimum'
243
- },
244
- {
245
- text: 'Maximum',
246
- value: 'Maximum'
247
- },
248
- {
249
- text: 'First',
250
- value: 'First'
251
- },
252
- {
253
- text: 'Last',
254
- value: 'Last'
255
- }
256
- ];
257
- }
258
- else if (schemaTree.rbType === 'Boolean') {
259
- leafTypes = [
260
- {
261
- text: 'As Value',
262
- value: 'Value'
263
- },
264
- {
265
- text: 'Unique',
266
- value: 'Unique'
267
- },
268
- {
269
- text: 'As Count',
270
- value: 'Count'
271
- },
272
- {
273
- text: 'First',
274
- value: 'First'
275
- },
276
- {
277
- text: 'Last',
278
- value: 'Last'
279
- }
280
- ];
281
- }
282
- else if (schemaTree.rbType === 'Date') {
283
- leafTypes = [
284
- {
285
- text: 'As Value',
286
- value: 'Value'
287
- },
288
- {
289
- text: 'Unique',
290
- value: 'Unique'
291
- },
292
- {
293
- text: 'As Count',
294
- value: 'Count'
295
- },
296
- {
297
- text: 'Minimum',
298
- value: 'Minimum'
299
- },
300
- {
301
- text: 'Maximum',
302
- value: 'Maximum'
303
- },
304
- {
305
- text: 'First',
306
- value: 'First'
307
- },
308
- {
309
- text: 'Last',
310
- value: 'Last'
311
- }
312
- ];
313
- }
314
- return leafTypes;
315
- }
316
- exports.getLeafValueTypes = getLeafValueTypes;
317
- function getLeafFormatTypes(schemaTree, fieldPath) {
318
- var leafTypes = [];
319
- if (schemaTree.rbType === 'String') {
320
- leafTypes = [
321
- {
322
- text: 'As Text',
323
- value: 'String'
324
- },
325
- {
326
- text: 'As Number',
327
- value: 'Number'
328
- }
329
- ];
330
- }
331
- else if (schemaTree.rbType === 'Number') {
332
- leafTypes = [
333
- {
334
- text: 'As Number',
335
- value: 'Number'
336
- },
337
- {
338
- text: 'As Currency',
339
- value: 'Currency'
340
- },
341
- {
342
- text: 'As Text',
343
- value: 'String'
344
- }
345
- ];
346
- }
347
- else if (schemaTree.rbType === 'Boolean') {
348
- leafTypes = [
349
- {
350
- text: 'As Number',
351
- value: 'Number'
352
- },
353
- {
354
- text: 'As Boolean (True/False)',
355
- value: 'Boolean'
356
- },
357
- {
358
- text: 'As Text (Yes/No)',
359
- value: 'String'
360
- },
361
- {
362
- text: 'As Number (1/0)',
363
- value: 'Boolean_Number'
364
- }
365
- ];
366
- }
367
- else if (schemaTree.rbType === 'Date') {
368
- leafTypes = [
369
- {
370
- text: 'As Number',
371
- value: 'Number'
372
- },
373
- {
374
- text: 'As Date (Short Format)',
375
- value: 'Date'
376
- },
377
- {
378
- text: 'As Time (Short Format)',
379
- value: 'Time'
380
- },
381
- {
382
- text: 'As Date/Time (Short Format)',
383
- value: 'DateTime'
384
- },
385
- {
386
- text: 'As Date (Long Format)',
387
- value: 'Date_long'
388
- },
389
- {
390
- text: 'As Date/Time (Long Format)',
391
- value: 'DateTime_long'
392
- },
393
- {
394
- text: 'As Timestamp (MS since 1970)',
395
- value: 'Timestamp'
396
- }
397
- ];
398
- }
399
- return leafTypes;
400
- }
401
- exports.getLeafFormatTypes = getLeafFormatTypes;
402
- function mongoCommand(commandstr, collection, field) {
403
- return __awaiter(this, void 0, void 0, function () {
404
- var tmpObj, obj, obj, err_1;
405
- return __generator(this, function (_a) {
406
- switch (_a.label) {
407
- case 0:
408
- _a.trys.push([0, 6, , 7]);
409
- if (!(commandstr === 'count')) return [3 /*break*/, 2];
410
- obj = {
411
- count: collection,
412
- query: {}
413
- };
414
- obj.query[field] = { $ne: null };
415
- return [4 /*yield*/, index_1.ResolveIOServer.getMainDB().command(obj)];
416
- case 1:
417
- tmpObj = _a.sent();
418
- return [3 /*break*/, 5];
419
- case 2:
420
- if (!(commandstr === 'distinct')) return [3 /*break*/, 4];
421
- obj = {
422
- distinct: collection,
423
- query: {},
424
- key: field,
425
- };
426
- return [4 /*yield*/, index_1.ResolveIOServer.getMainDB().command(obj)];
427
- case 3:
428
- tmpObj = _a.sent();
429
- return [3 /*break*/, 5];
430
- case 4:
431
- if (commandstr === 'listIndexes') {
432
- // tmpObj = await this.mainDb.db[collection].getIndexes();
433
- // let obj = { 'listIndexes': collection };
434
- // tmpObj = await this.mainDb.db.getIndexes(obj);
435
- }
436
- _a.label = 5;
437
- case 5: return [3 /*break*/, 7];
438
- case 6:
439
- err_1 = _a.sent();
440
- // console.log('----------- mongoCommand err: ', err);
441
- return [2 /*return*/, -1];
442
- case 7:
443
- if (tmpObj) {
444
- return [2 /*return*/, tmpObj.values];
445
- }
446
- return [2 /*return*/];
447
- }
448
- });
449
- });
450
- }
451
- exports.mongoCommand = mongoCommand;
452
-
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,u,n,i){return new(n=n||Promise)(function(t,o){function l(e){try{r(i.next(e))}catch(e){o(e)}}function a(e){try{r(i.throw(e))}catch(e){o(e)}}function r(e){var o;e.done?t(e.value):((o=e.value)instanceof n?o:new n(function(e){e(o)})).then(l,a)}r((i=i.apply(e,u||[])).next())})},__generator=this&&this.__generator||function(l,a){var r,u,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function e(t){return function(e){var o=[t,e];if(r)throw new TypeError("Generator is already executing.");for(;i=c&&o[c=0]?0:i;)try{if(r=1,u&&(n=2&o[0]?u.return:o[0]?u.throw||((n=u.return)&&n.call(u),0):u.next)&&!(n=n.call(u,o[1])).done)return n;switch(u=0,(o=n?[2&o[0],n.value]:o)[0]){case 0:case 1:n=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,u=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(n=0<(n=i.trys).length&&n[n.length-1])&&(6===o[0]||2===o[0])){i=0;continue}if(3===o[0]&&(!n||o[1]>n[0]&&o[1]<n[3]))i.label=o[1];else if(6===o[0]&&i.label<n[1])i.label=n[1],n=o;else{if(!(n&&i.label<n[2])){n[2]&&i.ops.pop(),i.trys.pop();continue}i.label=n[2],i.ops.push(o)}}o=a.call(l,i)}catch(e){o=[6,e],u=0}finally{r=n=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}},index_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.mongoCommand=exports.getLeafFormatTypes=exports.getLeafValueTypes=exports.buildTree=exports.getReportLookupSchemas=void 0,require("../index")),common_1=require("./common");function getReportLookupSchemas(e){var t=[],l=(t.push({collection_name:e,tree:index_1.ResolveIOServer.getMongoManager().collection(e).rbSchema,is_root:!0}),index_1.ResolveIOServer.getMongoManager().collection(e).rbSchema);return Object.keys(l).forEach(function(e){var o;l[e].lookup_collection&&(o=l[e].lookup_collection,e=index_1.ResolveIOServer.getMongoManager().collection(o),t.filter(function(e){return e.collection_name===o}).length||t.push({collection_name:o,tree:e.rbSchema,is_root:!1}))}),t}function buildTree(a,r,u){var n=[];return Object.keys(r).filter(function(e){return"_id"!==e&&"id"!==e&&"__v"!==e}).forEach(function(t){var e,l;u&&r[t].lookup_collection||(1===(e=t.split(".")).length?("String"===r[t].rbType||"Number"===r[t].rbType||"Boolean"===r[t].rbType||"Date"===r[t].rbType?n.push({collection_name:a,columnName:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),fieldName:t,fieldType:r[t].rbType,fieldTypeName:"String"===r[t].rbType?"Text":"Boolean"===r[t].rbType?"T/F":r[t].rbType,distinctFieldValues:[],fieldPath:u?u.lookup_as+".$."+t:t,fieldPathName:u?(0,common_1.toTitleCase)(u.lookup_as.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> "))+" (List) -> "+(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")):(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")),lookup_collection:u?u.lookup_collection:r[t].lookup_collection||"",lookup_local_key:u?u.lookup_local_key:r[t].lookup_collection?r[t].local_key:"",lookup_foreign_key:u?u.lookup_foreign_key:r[t].lookup_collection?r[t].lookup_key:"",lookup_as:u?u.lookup_as:r[t].lookup_collection?r[t].lookup_as:"",text:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),value:t,isLeaf:!0,isActive:!1,isSelected:!1,depth:0,leafValueType:"",leafValueTypes:getLeafValueTypes(r[t],t),leafFormatType:"",leafFormatTypes:getLeafFormatTypes(r[t],t)}):n.push({collection_name:a,columnName:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),fieldName:t,fieldType:r[t].lookup_collection?"Lookup":r[t].rbType,fieldTypeName:r[t].lookup_collection?"Lookup":"Array"===r[t].rbType?"List":"Group",distinctFieldValues:[],fieldPath:u?u.lookup_as+".$."+t:t,fieldPathName:u?(0,common_1.toTitleCase)(u.lookup_as.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> "))+" (List) -> "+(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")):(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")),lookup_collection:u?u.lookup_collection:r[t].lookup_collection||"",lookup_local_key:u?u.lookup_local_key:r[t].lookup_collection?r[t].local_key:"",lookup_foreign_key:u?u.lookup_foreign_key:r[t].lookup_collection?r[t].lookup_key:"",lookup_as:u?u.lookup_as:r[t].lookup_collection?r[t].lookup_as:"",text:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),value:t,isLeaf:!1,isActive:!1,isSelected:!1,depth:0,leafValueType:"",leafFormatType:"",children:[]}),n=n.sort(function(e,o){return e.fieldName.localeCompare(o.fieldName)})):(l=null,e.forEach(function(o,e){l?l.children.filter(function(e){return e.fieldName===o})[0]?l=l.children.filter(function(e){return e.fieldName===o})[0]:("String"===r[t].rbType||"Number"===r[t].rbType||"Boolean"===r[t].rbType||"Date"===r[t].rbType?l.children.push({collection_name:a,columnName:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),fieldName:o,fieldType:r[t].rbType,fieldTypeName:"String"===r[t].rbType?"Text":"Boolean"===r[t].rbType?"T/F":r[t].rbType,distinctFieldValues:[],fieldPath:u?u.lookup_as+".$."+t:t,fieldPathName:u?(0,common_1.toTitleCase)(u.lookup_as.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> "))+" (List) -> "+(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")):(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")),lookup_collection:u?u.lookup_collection:r[t].lookup_collection||"",lookup_local_key:u?u.lookup_local_key:r[t].lookup_collection?r[t].local_key:"",lookup_foreign_key:u?u.lookup_foreign_key:r[t].lookup_collection?r[t].lookup_key:"",lookup_as:u?u.lookup_as:r[t].lookup_collection?r[t].lookup_as:"",text:(0,common_1.toTitleCase)(o.replace(/\_/g," ")),value:o,isLeaf:!0,isActive:!1,isSelected:!1,depth:e,leafValueType:"",leafValueTypes:getLeafValueTypes(r[t],t),leafFormatType:"",leafFormatTypes:getLeafFormatTypes(r[t],t)}):l.children.push({collection_name:a,columnName:(0,common_1.toTitleCase)(t.replace(/\_/g," ")),fieldName:o,fieldType:r[t].lookup_collection?"Lookup":r[t].rbType,fieldTypeName:r[t].lookup_collection?"Lookup":"Array"===r[t].rbType?"List":"Group",distinctFieldValues:[],fieldPath:u?u.lookup_as+".$."+t:t,fieldPathName:u?(0,common_1.toTitleCase)(u.lookup_as.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> "))+" (List) -> "+(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")):(0,common_1.toTitleCase)(t.replace(/\.\$\./g," (List) -> ").replace(/\./g," (Group) -> ")),lookup_collection:u?u.lookup_collection:r[t].lookup_collection||"",lookup_local_key:u?u.lookup_local_key:r[t].lookup_collection?r[t].local_key:"",lookup_foreign_key:u?u.lookup_foreign_key:r[t].lookup_collection?r[t].lookup_key:"",lookup_as:u?u.lookup_as:r[t].lookup_collection?r[t].lookup_as:"",text:(0,common_1.toTitleCase)(o.replace(/\_/g," ")),value:o,isLeaf:!1,isActive:!1,isSelected:!1,depth:e,leafValueType:"",leafFormatType:"",children:[]}),l.children=l.children.sort(function(e,o){return e.fieldName.localeCompare(o.fieldName)})):l=n.filter(function(e){return e.fieldName===o})[0]})))}),n}function getLeafValueTypes(e,o){var t=[];return"String"===e.rbType?t=[{text:"As Value",value:"Value"},{text:"Unique",value:"Unique"},{text:"As Count",value:"Count"},{text:"First",value:"First"},{text:"Last",value:"Last"}]:"Number"===e.rbType?t=[{text:"As Value",value:"Value"},{text:"Unique",value:"Unique"},{text:"As Average",value:"Average"},{text:"As Count",value:"Count"},{text:"As Sum",value:"Sum"},{text:"Minimum",value:"Minimum"},{text:"Maximum",value:"Maximum"},{text:"First",value:"First"},{text:"Last",value:"Last"}]:"Boolean"===e.rbType?t=[{text:"As Value",value:"Value"},{text:"Unique",value:"Unique"},{text:"As Count",value:"Count"},{text:"First",value:"First"},{text:"Last",value:"Last"}]:"Date"===e.rbType&&(t=[{text:"As Value",value:"Value"},{text:"Unique",value:"Unique"},{text:"As Count",value:"Count"},{text:"Minimum",value:"Minimum"},{text:"Maximum",value:"Maximum"},{text:"First",value:"First"},{text:"Last",value:"Last"}]),t}function getLeafFormatTypes(e,o){var t=[];return"String"===e.rbType?t=[{text:"As Text",value:"String"},{text:"As Number",value:"Number"}]:"Number"===e.rbType?t=[{text:"As Number",value:"Number"},{text:"As Currency",value:"Currency"},{text:"As Text",value:"String"}]:"Boolean"===e.rbType?t=[{text:"As Number",value:"Number"},{text:"As Boolean (True/False)",value:"Boolean"},{text:"As Text (Yes/No)",value:"String"},{text:"As Number (1/0)",value:"Boolean_Number"}]:"Date"===e.rbType&&(t=[{text:"As Number",value:"Number"},{text:"As Date (Short Format)",value:"Date"},{text:"As Time (Short Format)",value:"Time"},{text:"As Date/Time (Short Format)",value:"DateTime"},{text:"As Date (Long Format)",value:"Date_long"},{text:"As Date/Time (Long Format)",value:"DateTime_long"},{text:"As Timestamp (MS since 1970)",value:"Timestamp"}]),t}function mongoCommand(l,a,r){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return(e.trys.push([0,6,,7]),"count"!==l)?[3,2]:((t={count:a,query:{}}).query[r]={$ne:null},[4,index_1.ResolveIOServer.getMainDB().command(t)]);case 1:return o=e.sent(),[3,5];case 2:return"distinct"!==l?[3,4]:(t={distinct:a,query:{},key:r},[4,index_1.ResolveIOServer.getMainDB().command(t)]);case 3:return o=e.sent(),[3,5];case 4:e.label=5;case 5:return[3,7];case 6:return e.sent(),[2,-1];case 7:return o?[2,o.values]:[2]}})})}exports.getReportLookupSchemas=getReportLookupSchemas,exports.buildTree=buildTree,exports.getLeafValueTypes=getLeafValueTypes,exports.getLeafFormatTypes=getLeafFormatTypes,exports.mongoCommand=mongoCommand;
453
2
  //# sourceMappingURL=schema-report-builder.js.map