@resolveio/server-lib 12.5.54 → 12.5.55

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