@resolveio/server-lib 22.3.220 → 22.3.221

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 (745) hide show
  1. package/.nodemon.json +5 -0
  2. package/.vscode/settings.json +21 -0
  3. package/AGENTS.md +195 -0
  4. package/README.md +22 -0
  5. package/build_package.sh +5 -0
  6. package/compileDTS.pl +64 -0
  7. package/docs/ai-assistant-nightly-eval.md +65 -0
  8. package/docs/ai-assistant-preflight-checklist.md +23 -0
  9. package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
  10. package/eslint-plugin-custom/index.js +7 -0
  11. package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
  12. package/eslint.config.js +103 -0
  13. package/gulpfile.js +216 -0
  14. package/methodAndPublicationListGenerator.py +375 -0
  15. package/mongodbensurers.js +2 -0
  16. package/mongostop.js +3 -0
  17. package/package.json +1 -1
  18. package/scripts/cleanup-bypassed-callmethod-logs.js +616 -0
  19. package/settings.development.json +25 -0
  20. package/settings.development.redacted.json +25 -0
  21. package/src/.env +12 -0
  22. package/src/ai/assistant-core-heuristics.ts +379 -0
  23. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +185 -0
  24. package/src/ai/resolveio-platform-intelligence-memory.ts +325 -0
  25. package/{ai/resolveio-platform-intelligence-types.d.ts → src/ai/resolveio-platform-intelligence-types.ts} +20 -15
  26. package/src/ai/resolveio-platform-intelligence.ts +462 -0
  27. package/src/client-server-app.ts +12 -0
  28. package/src/collections/ai-run.collection.ts +117 -0
  29. package/src/collections/ai-terminal-conversation.collection.ts +91 -0
  30. package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
  31. package/src/collections/ai-terminal-message.collection.ts +77 -0
  32. package/src/collections/app-setting.collection.ts +104 -0
  33. package/src/collections/app-status.collection.ts +58 -0
  34. package/src/collections/communication-metric.collection.ts +84 -0
  35. package/src/collections/counter.collection.ts +56 -0
  36. package/src/collections/cron-job-history.collection.ts +94 -0
  37. package/src/collections/cron-job.collection.ts +92 -0
  38. package/src/collections/customer-notification.collection.ts +131 -0
  39. package/src/collections/customer-portal-password.collection.ts +76 -0
  40. package/src/collections/email-history.collection.ts +134 -0
  41. package/src/collections/email-verified.collection.ts +62 -0
  42. package/src/collections/file.collection.ts +74 -0
  43. package/src/collections/flag-update.collection.ts +57 -0
  44. package/src/collections/flag.collection.ts +57 -0
  45. package/src/collections/log-method-latency.collection.ts +77 -0
  46. package/src/collections/log-subscription.collection.ts +80 -0
  47. package/src/collections/log.collection.ts +93 -0
  48. package/src/collections/logged-in-users.collection.ts +67 -0
  49. package/src/collections/monitor-cpu.collection.ts +65 -0
  50. package/src/collections/monitor-function.collection.ts +74 -0
  51. package/src/collections/monitor-memory.collection.ts +77 -0
  52. package/src/collections/monitor-mongo.collection.ts +71 -0
  53. package/src/collections/notification.collection.ts +57 -0
  54. package/src/collections/openai-usage-ledger.collection.ts +131 -0
  55. package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
  56. package/src/collections/report-builder-library.collection.ts +89 -0
  57. package/src/collections/report-builder-report.collection.ts +184 -0
  58. package/src/collections/user-group.collection.ts +89 -0
  59. package/src/collections/user-guide.collection.ts +57 -0
  60. package/src/collections/user.collection.ts +181 -0
  61. package/src/cron/cron.ts +117 -0
  62. package/src/fixtures/cron-jobs.ts +95 -0
  63. package/src/fixtures/init.ts +35 -0
  64. package/src/http/auth.ts +818 -0
  65. package/src/http/health.ts +7 -0
  66. package/src/http/home.ts +90 -0
  67. package/src/http/slow-query-publication.ts +49 -0
  68. package/src/index.ts +1 -0
  69. package/src/managers/ai-assistant-codex-manager.manager.ts +1131 -0
  70. package/src/managers/ai-run-evidence.manager.ts +264 -0
  71. package/src/managers/communication-metric.manager.ts +82 -0
  72. package/src/managers/cron.manager.ts +333 -0
  73. package/src/managers/customer-notification-content.manager.ts +236 -0
  74. package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
  75. package/src/managers/error-auto-fix.manager.ts +2767 -0
  76. package/src/managers/local-log.manager.ts +113 -0
  77. package/src/managers/method.manager.ts +1857 -0
  78. package/src/managers/mongo.manager.ts +4575 -0
  79. package/src/managers/monitor.manager.ts +507 -0
  80. package/src/managers/openai-usage-ledger.manager.ts +112 -0
  81. package/src/managers/slow-query-verifier.manager.ts +3590 -0
  82. package/src/managers/slow-query.manager.ts +519 -0
  83. package/src/managers/subscription.manager.ts +3128 -0
  84. package/src/managers/websocket.manager.ts +746 -0
  85. package/src/managers/worker-dispatcher.manager.ts +1360 -0
  86. package/src/managers/worker-server.manager.ts +536 -0
  87. package/src/methods/accounts.ts +532 -0
  88. package/src/methods/ai-terminal.ts +29070 -0
  89. package/src/methods/app-settings.ts +114 -0
  90. package/src/methods/aws.ts +649 -0
  91. package/src/methods/collections.ts +641 -0
  92. package/src/methods/counters.ts +69 -0
  93. package/src/methods/cron-jobs.ts +2614 -0
  94. package/src/methods/customer-notifications.ts +458 -0
  95. package/src/methods/diagnostics.ts +616 -0
  96. package/src/methods/flag-updates.ts +7 -0
  97. package/src/methods/flags.ts +7 -0
  98. package/src/methods/logs.ts +657 -0
  99. package/src/methods/mongo-explorer.ts +1880 -0
  100. package/src/methods/monitor.ts +540 -0
  101. package/src/methods/pdf.ts +1236 -0
  102. package/src/methods/publications.ts +129 -0
  103. package/src/methods/report-builder.ts +3300 -0
  104. package/src/methods/support.ts +335 -0
  105. package/src/models/ai-run.model.ts +27 -0
  106. package/src/models/ai-terminal-conversation.model.ts +19 -0
  107. package/src/models/ai-terminal-issue-report.model.ts +21 -0
  108. package/src/models/ai-terminal-message.model.ts +24 -0
  109. package/src/models/app-setting.model.ts +17 -0
  110. package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
  111. package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
  112. package/src/models/collection-document.model.ts +24 -0
  113. package/src/models/communication-metric.model.ts +23 -0
  114. package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
  115. package/src/models/cron-job-history.model.ts +16 -0
  116. package/src/models/cron-job.model.ts +15 -0
  117. package/src/models/customer-notification.model.ts +28 -0
  118. package/src/models/customer-portal-password.model.ts +12 -0
  119. package/src/models/dialog.model.ts +25 -0
  120. package/{models/email-history.model.js → src/models/email-history.model.ts} +36 -4
  121. package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
  122. package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
  123. package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
  124. package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
  125. package/src/models/log-method-latency.model.ts +11 -0
  126. package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
  127. package/src/models/log.model.ts +19 -0
  128. package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
  129. package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
  130. package/src/models/method.model.ts +25 -0
  131. package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
  132. package/src/models/monitor-function.model.ts +16 -0
  133. package/src/models/monitor-memory.model.ts +17 -0
  134. package/src/models/monitor-mongo.model.ts +15 -0
  135. package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
  136. package/src/models/openai-usage-ledger.model.ts +56 -0
  137. package/src/models/pagination.model.ts +35 -0
  138. package/src/models/permission.model.ts +14 -0
  139. package/src/models/report-builder-dashboard-builder.model.ts +29 -0
  140. package/src/models/report-builder-library.model.ts +20 -0
  141. package/src/models/report-builder-report.model.ts +136 -0
  142. package/src/models/report-builder.model.ts +68 -0
  143. package/src/models/select-data-label.model.ts +9 -0
  144. package/src/models/server-message.model.ts +31 -0
  145. package/src/models/slow-query-report.model.ts +23 -0
  146. package/src/models/subscription.model.ts +73 -0
  147. package/src/models/support-ticket.model.ts +104 -0
  148. package/src/models/user-group.model.ts +24 -0
  149. package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
  150. package/src/models/user.model.ts +96 -0
  151. package/src/private/images/ResolveIO.png +0 -0
  152. package/src/publications/ai-terminal.ts +73 -0
  153. package/src/publications/app-settings.ts +25 -0
  154. package/src/publications/app-status.ts +13 -0
  155. package/src/publications/cron-jobs.ts +40 -0
  156. package/src/publications/customer-notifications.ts +101 -0
  157. package/src/publications/files.ts +33 -0
  158. package/src/publications/flags-update.ts +19 -0
  159. package/src/publications/flags.ts +19 -0
  160. package/src/publications/logs.ts +163 -0
  161. package/src/publications/notifications.ts +13 -0
  162. package/src/publications/report-builder-dashboard-builders.ts +39 -0
  163. package/src/publications/report-builder-libraries.ts +41 -0
  164. package/src/publications/report-builder-reports.ts +47 -0
  165. package/src/publications/super-admin.ts +13 -0
  166. package/src/publications/user-groups.ts +12 -0
  167. package/src/publications/user-guides.ts +12 -0
  168. package/src/resolveio-server-app.ts +617 -0
  169. package/src/server-app.ts +3354 -0
  170. package/src/services/codex-client.ts +1231 -0
  171. package/src/services/openai-client.ts +265 -0
  172. package/src/types/error-report.ts +26 -0
  173. package/src/types/js-tiktoken.d.ts +11 -0
  174. package/src/types/slow-query-report.ts +28 -0
  175. package/src/util/ai-qa-policy.ts +925 -0
  176. package/src/util/ai-run-evidence-adapters.ts +8347 -0
  177. package/src/util/ai-run-evidence-dashboard.ts +323 -0
  178. package/src/util/ai-run-evidence-eval.ts +1057 -0
  179. package/src/util/ai-run-evidence.ts +1430 -0
  180. package/src/util/ai-runner-artifacts.ts +586 -0
  181. package/src/util/ai-runner-manager-autopilot.ts +961 -0
  182. package/src/util/ai-runner-manager-policy.ts +5011 -0
  183. package/src/util/ai-runner-qa-auth.ts +838 -0
  184. package/src/util/ai-runner-qa-tools.ts +3536 -0
  185. package/src/util/aicoder-runner-v6.ts +3121 -0
  186. package/src/util/common.ts +649 -0
  187. package/src/util/customer-portal-password.ts +183 -0
  188. package/src/util/error-reporter.ts +332 -0
  189. package/src/util/error-tracking.ts +79 -0
  190. package/src/util/openai-usage-cost.ts +114 -0
  191. package/src/util/report-builder-unwinds.ts +180 -0
  192. package/src/util/runner-process-janitor.ts +219 -0
  193. package/src/util/schema-report-builder.ts +448 -0
  194. package/src/util/slow-query-reporter.ts +216 -0
  195. package/src/util/subscription-dependency-context.ts +1096 -0
  196. package/src/util/support-runner-v5.ts +10040 -0
  197. package/src/util/tokenizer.ts +38 -0
  198. package/src/workers/codex-runner.worker.ts +142 -0
  199. package/start_server.sh +5 -0
  200. package/tests/ai-assistant-corpus-build.ts +484 -0
  201. package/tests/ai-assistant-corpus-replay-e2e.ts +774 -0
  202. package/tests/ai-assistant-data-parity-e2e.ts +1989 -0
  203. package/tests/ai-assistant-eval-triage.ts +831 -0
  204. package/tests/ai-assistant-openai-e2e.ts +1061 -0
  205. package/tests/ai-assistant-openai-git-e2e.ts +155 -0
  206. package/tests/ai-assistant-preflight-matrix.ts +215 -0
  207. package/tests/ai-assistant-routing-eval.test.ts +585 -0
  208. package/tests/ai-assistant-snf-live-eval.ts +975 -0
  209. package/tests/ai-assistant-utils.test.ts +4834 -0
  210. package/tests/ai-manager-autopilot-snapshot.test.ts +193 -0
  211. package/tests/ai-manager-recovery-checkpoint.test.ts +1383 -0
  212. package/tests/ai-run-eval.test.ts +132 -0
  213. package/tests/ai-run-evidence.test.ts +3773 -0
  214. package/tests/ai-runner-contract.test.ts +515 -0
  215. package/tests/aicoder-runner-v6.test.ts +822 -0
  216. package/tests/error-reporter.test.ts +145 -0
  217. package/tests/method-publication-generator.test.ts +46 -0
  218. package/tests/report-builder-linking.test.ts +79 -0
  219. package/tests/resolveio-platform-intelligence.test.ts +352 -0
  220. package/tests/server-app-cron-owner.test.ts +127 -0
  221. package/tests/subscription-connect-race.test.ts +158 -0
  222. package/tests/subscription-dependency-context.test.ts +324 -0
  223. package/tests/subscription-manager-collection-tracking.test.ts +86 -0
  224. package/tests/subscription-manager-invalidation.test.ts +86 -0
  225. package/tests/support-runner-v5.test.ts +3201 -0
  226. package/tsconfig.json +34 -0
  227. package/ai/assistant-core-heuristics.d.ts +0 -11
  228. package/ai/assistant-core-heuristics.js +0 -356
  229. package/ai/assistant-core-heuristics.js.map +0 -1
  230. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +0 -3
  231. package/ai/resolveio-platform-intelligence-memory-corpus.js +0 -214
  232. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +0 -1
  233. package/ai/resolveio-platform-intelligence-memory.d.ts +0 -20
  234. package/ai/resolveio-platform-intelligence-memory.js +0 -341
  235. package/ai/resolveio-platform-intelligence-memory.js.map +0 -1
  236. package/ai/resolveio-platform-intelligence-types.js +0 -4
  237. package/ai/resolveio-platform-intelligence-types.js.map +0 -1
  238. package/ai/resolveio-platform-intelligence.d.ts +0 -6
  239. package/ai/resolveio-platform-intelligence.js +0 -463
  240. package/ai/resolveio-platform-intelligence.js.map +0 -1
  241. package/client-server-app.d.ts +0 -1
  242. package/client-server-app.js +0 -68
  243. package/client-server-app.js.map +0 -1
  244. package/collections/ai-run.collection.d.ts +0 -3
  245. package/collections/ai-run.collection.js +0 -170
  246. package/collections/ai-run.collection.js.map +0 -1
  247. package/collections/ai-terminal-conversation.collection.d.ts +0 -2
  248. package/collections/ai-terminal-conversation.collection.js +0 -140
  249. package/collections/ai-terminal-conversation.collection.js.map +0 -1
  250. package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
  251. package/collections/ai-terminal-issue-report.collection.js +0 -148
  252. package/collections/ai-terminal-issue-report.collection.js.map +0 -1
  253. package/collections/ai-terminal-message.collection.d.ts +0 -2
  254. package/collections/ai-terminal-message.collection.js +0 -121
  255. package/collections/ai-terminal-message.collection.js.map +0 -1
  256. package/collections/app-setting.collection.d.ts +0 -3
  257. package/collections/app-setting.collection.js +0 -103
  258. package/collections/app-setting.collection.js.map +0 -1
  259. package/collections/app-status.collection.d.ts +0 -3
  260. package/collections/app-status.collection.js +0 -57
  261. package/collections/app-status.collection.js.map +0 -1
  262. package/collections/communication-metric.collection.d.ts +0 -2
  263. package/collections/communication-metric.collection.js +0 -133
  264. package/collections/communication-metric.collection.js.map +0 -1
  265. package/collections/counter.collection.d.ts +0 -3
  266. package/collections/counter.collection.js +0 -56
  267. package/collections/counter.collection.js.map +0 -1
  268. package/collections/cron-job-history.collection.d.ts +0 -3
  269. package/collections/cron-job-history.collection.js +0 -137
  270. package/collections/cron-job-history.collection.js.map +0 -1
  271. package/collections/cron-job.collection.d.ts +0 -3
  272. package/collections/cron-job.collection.js +0 -92
  273. package/collections/cron-job.collection.js.map +0 -1
  274. package/collections/customer-notification.collection.d.ts +0 -3
  275. package/collections/customer-notification.collection.js +0 -130
  276. package/collections/customer-notification.collection.js.map +0 -1
  277. package/collections/customer-portal-password.collection.d.ts +0 -3
  278. package/collections/customer-portal-password.collection.js +0 -75
  279. package/collections/customer-portal-password.collection.js.map +0 -1
  280. package/collections/email-history.collection.d.ts +0 -3
  281. package/collections/email-history.collection.js +0 -134
  282. package/collections/email-history.collection.js.map +0 -1
  283. package/collections/email-verified.collection.d.ts +0 -3
  284. package/collections/email-verified.collection.js +0 -62
  285. package/collections/email-verified.collection.js.map +0 -1
  286. package/collections/file.collection.d.ts +0 -3
  287. package/collections/file.collection.js +0 -74
  288. package/collections/file.collection.js.map +0 -1
  289. package/collections/flag-update.collection.d.ts +0 -3
  290. package/collections/flag-update.collection.js +0 -57
  291. package/collections/flag-update.collection.js.map +0 -1
  292. package/collections/flag.collection.d.ts +0 -3
  293. package/collections/flag.collection.js +0 -57
  294. package/collections/flag.collection.js.map +0 -1
  295. package/collections/log-method-latency.collection.d.ts +0 -3
  296. package/collections/log-method-latency.collection.js +0 -77
  297. package/collections/log-method-latency.collection.js.map +0 -1
  298. package/collections/log-subscription.collection.d.ts +0 -3
  299. package/collections/log-subscription.collection.js +0 -80
  300. package/collections/log-subscription.collection.js.map +0 -1
  301. package/collections/log.collection.d.ts +0 -3
  302. package/collections/log.collection.js +0 -93
  303. package/collections/log.collection.js.map +0 -1
  304. package/collections/logged-in-users.collection.d.ts +0 -3
  305. package/collections/logged-in-users.collection.js +0 -67
  306. package/collections/logged-in-users.collection.js.map +0 -1
  307. package/collections/monitor-cpu.collection.d.ts +0 -3
  308. package/collections/monitor-cpu.collection.js +0 -65
  309. package/collections/monitor-cpu.collection.js.map +0 -1
  310. package/collections/monitor-function.collection.d.ts +0 -3
  311. package/collections/monitor-function.collection.js +0 -74
  312. package/collections/monitor-function.collection.js.map +0 -1
  313. package/collections/monitor-memory.collection.d.ts +0 -3
  314. package/collections/monitor-memory.collection.js +0 -77
  315. package/collections/monitor-memory.collection.js.map +0 -1
  316. package/collections/monitor-mongo.collection.d.ts +0 -3
  317. package/collections/monitor-mongo.collection.js +0 -71
  318. package/collections/monitor-mongo.collection.js.map +0 -1
  319. package/collections/notification.collection.d.ts +0 -3
  320. package/collections/notification.collection.js +0 -57
  321. package/collections/notification.collection.js.map +0 -1
  322. package/collections/openai-usage-ledger.collection.d.ts +0 -2
  323. package/collections/openai-usage-ledger.collection.js +0 -188
  324. package/collections/openai-usage-ledger.collection.js.map +0 -1
  325. package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
  326. package/collections/report-builder-dashboard-builder.collection.js +0 -109
  327. package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
  328. package/collections/report-builder-library.collection.d.ts +0 -3
  329. package/collections/report-builder-library.collection.js +0 -87
  330. package/collections/report-builder-library.collection.js.map +0 -1
  331. package/collections/report-builder-report.collection.d.ts +0 -4
  332. package/collections/report-builder-report.collection.js +0 -184
  333. package/collections/report-builder-report.collection.js.map +0 -1
  334. package/collections/user-group.collection.d.ts +0 -4
  335. package/collections/user-group.collection.js +0 -89
  336. package/collections/user-group.collection.js.map +0 -1
  337. package/collections/user-guide.collection.d.ts +0 -3
  338. package/collections/user-guide.collection.js +0 -57
  339. package/collections/user-guide.collection.js.map +0 -1
  340. package/collections/user.collection.d.ts +0 -4
  341. package/collections/user.collection.js +0 -180
  342. package/collections/user.collection.js.map +0 -1
  343. package/cron/cron.d.ts +0 -14
  344. package/cron/cron.js +0 -216
  345. package/cron/cron.js.map +0 -1
  346. package/fixtures/cron-jobs.d.ts +0 -1
  347. package/fixtures/cron-jobs.js +0 -150
  348. package/fixtures/cron-jobs.js.map +0 -1
  349. package/fixtures/init.d.ts +0 -1
  350. package/fixtures/init.js +0 -91
  351. package/fixtures/init.js.map +0 -1
  352. package/http/auth.d.ts +0 -2
  353. package/http/auth.js +0 -951
  354. package/http/auth.js.map +0 -1
  355. package/http/health.d.ts +0 -1
  356. package/http/health.js +0 -11
  357. package/http/health.js.map +0 -1
  358. package/http/home.d.ts +0 -1
  359. package/http/home.js +0 -134
  360. package/http/home.js.map +0 -1
  361. package/http/slow-query-publication.d.ts +0 -2
  362. package/http/slow-query-publication.js +0 -99
  363. package/http/slow-query-publication.js.map +0 -1
  364. package/index.d.ts +0 -1
  365. package/index.js +0 -19
  366. package/index.js.map +0 -1
  367. package/managers/ai-assistant-codex-manager.manager.d.ts +0 -67
  368. package/managers/ai-assistant-codex-manager.manager.js +0 -1113
  369. package/managers/ai-assistant-codex-manager.manager.js.map +0 -1
  370. package/managers/ai-run-evidence.manager.d.ts +0 -36
  371. package/managers/ai-run-evidence.manager.js +0 -377
  372. package/managers/ai-run-evidence.manager.js.map +0 -1
  373. package/managers/communication-metric.manager.d.ts +0 -16
  374. package/managers/communication-metric.manager.js +0 -134
  375. package/managers/communication-metric.manager.js.map +0 -1
  376. package/managers/cron.manager.d.ts +0 -20
  377. package/managers/cron.manager.js +0 -534
  378. package/managers/cron.manager.js.map +0 -1
  379. package/managers/customer-notification-content.manager.d.ts +0 -55
  380. package/managers/customer-notification-content.manager.js +0 -158
  381. package/managers/customer-notification-content.manager.js.map +0 -1
  382. package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
  383. package/managers/diagnostic-manager-bootstrap.js +0 -260
  384. package/managers/diagnostic-manager-bootstrap.js.map +0 -1
  385. package/managers/error-auto-fix.manager.d.ts +0 -149
  386. package/managers/error-auto-fix.manager.js +0 -3064
  387. package/managers/error-auto-fix.manager.js.map +0 -1
  388. package/managers/local-log.manager.d.ts +0 -18
  389. package/managers/local-log.manager.js +0 -88
  390. package/managers/local-log.manager.js.map +0 -1
  391. package/managers/method.manager.d.ts +0 -84
  392. package/managers/method.manager.js +0 -1964
  393. package/managers/method.manager.js.map +0 -1
  394. package/managers/mongo.manager.d.ts +0 -224
  395. package/managers/mongo.manager.js +0 -5000
  396. package/managers/mongo.manager.js.map +0 -1
  397. package/managers/monitor.manager.d.ts +0 -70
  398. package/managers/monitor.manager.js +0 -550
  399. package/managers/monitor.manager.js.map +0 -1
  400. package/managers/openai-usage-ledger.manager.d.ts +0 -30
  401. package/managers/openai-usage-ledger.manager.js +0 -142
  402. package/managers/openai-usage-ledger.manager.js.map +0 -1
  403. package/managers/slow-query-verifier.manager.d.ts +0 -144
  404. package/managers/slow-query-verifier.manager.js +0 -3857
  405. package/managers/slow-query-verifier.manager.js.map +0 -1
  406. package/managers/slow-query.manager.d.ts +0 -28
  407. package/managers/slow-query.manager.js +0 -468
  408. package/managers/slow-query.manager.js.map +0 -1
  409. package/managers/subscription.manager.d.ts +0 -169
  410. package/managers/subscription.manager.js +0 -3434
  411. package/managers/subscription.manager.js.map +0 -1
  412. package/managers/websocket.manager.d.ts +0 -73
  413. package/managers/websocket.manager.js +0 -673
  414. package/managers/websocket.manager.js.map +0 -1
  415. package/managers/worker-dispatcher.manager.d.ts +0 -120
  416. package/managers/worker-dispatcher.manager.js +0 -1266
  417. package/managers/worker-dispatcher.manager.js.map +0 -1
  418. package/managers/worker-server.manager.d.ts +0 -35
  419. package/managers/worker-server.manager.js +0 -582
  420. package/managers/worker-server.manager.js.map +0 -1
  421. package/methods/accounts.d.ts +0 -2
  422. package/methods/accounts.js +0 -624
  423. package/methods/accounts.js.map +0 -1
  424. package/methods/ai-terminal.d.ts +0 -458
  425. package/methods/ai-terminal.js +0 -27991
  426. package/methods/ai-terminal.js.map +0 -1
  427. package/methods/app-settings.d.ts +0 -2
  428. package/methods/app-settings.js +0 -169
  429. package/methods/app-settings.js.map +0 -1
  430. package/methods/aws.d.ts +0 -2
  431. package/methods/aws.js +0 -877
  432. package/methods/aws.js.map +0 -1
  433. package/methods/collections.d.ts +0 -2
  434. package/methods/collections.js +0 -719
  435. package/methods/collections.js.map +0 -1
  436. package/methods/counters.d.ts +0 -2
  437. package/methods/counters.js +0 -113
  438. package/methods/counters.js.map +0 -1
  439. package/methods/cron-jobs.d.ts +0 -2
  440. package/methods/cron-jobs.js +0 -2475
  441. package/methods/cron-jobs.js.map +0 -1
  442. package/methods/customer-notifications.d.ts +0 -2
  443. package/methods/customer-notifications.js +0 -528
  444. package/methods/customer-notifications.js.map +0 -1
  445. package/methods/diagnostics.d.ts +0 -2
  446. package/methods/diagnostics.js +0 -703
  447. package/methods/diagnostics.js.map +0 -1
  448. package/methods/flag-updates.d.ts +0 -2
  449. package/methods/flag-updates.js +0 -8
  450. package/methods/flag-updates.js.map +0 -1
  451. package/methods/flags.d.ts +0 -2
  452. package/methods/flags.js +0 -8
  453. package/methods/flags.js.map +0 -1
  454. package/methods/logs.d.ts +0 -2
  455. package/methods/logs.js +0 -751
  456. package/methods/logs.js.map +0 -1
  457. package/methods/mongo-explorer.d.ts +0 -2
  458. package/methods/mongo-explorer.js +0 -1808
  459. package/methods/mongo-explorer.js.map +0 -1
  460. package/methods/monitor.d.ts +0 -2
  461. package/methods/monitor.js +0 -543
  462. package/methods/monitor.js.map +0 -1
  463. package/methods/pdf.d.ts +0 -2
  464. package/methods/pdf.js +0 -1216
  465. package/methods/pdf.js.map +0 -1
  466. package/methods/publications.d.ts +0 -1
  467. package/methods/publications.js +0 -183
  468. package/methods/publications.js.map +0 -1
  469. package/methods/report-builder.d.ts +0 -2
  470. package/methods/report-builder.js +0 -3094
  471. package/methods/report-builder.js.map +0 -1
  472. package/methods/support.d.ts +0 -2
  473. package/methods/support.js +0 -430
  474. package/methods/support.js.map +0 -1
  475. package/models/ai-run.model.d.ts +0 -19
  476. package/models/ai-run.model.js +0 -4
  477. package/models/ai-run.model.js.map +0 -1
  478. package/models/ai-terminal-conversation.model.d.ts +0 -17
  479. package/models/ai-terminal-conversation.model.js +0 -4
  480. package/models/ai-terminal-conversation.model.js.map +0 -1
  481. package/models/ai-terminal-issue-report.model.d.ts +0 -19
  482. package/models/ai-terminal-issue-report.model.js +0 -4
  483. package/models/ai-terminal-issue-report.model.js.map +0 -1
  484. package/models/ai-terminal-message.model.d.ts +0 -22
  485. package/models/ai-terminal-message.model.js +0 -4
  486. package/models/ai-terminal-message.model.js.map +0 -1
  487. package/models/app-setting.model.d.ts +0 -16
  488. package/models/app-setting.model.js +0 -4
  489. package/models/app-setting.model.js.map +0 -1
  490. package/models/app-status.model.js +0 -4
  491. package/models/app-status.model.js.map +0 -1
  492. package/models/billing-logged-in-users.model.js +0 -4
  493. package/models/billing-logged-in-users.model.js.map +0 -1
  494. package/models/collection-document.model.d.ts +0 -21
  495. package/models/collection-document.model.js +0 -4
  496. package/models/collection-document.model.js.map +0 -1
  497. package/models/communication-metric.model.d.ts +0 -20
  498. package/models/communication-metric.model.js +0 -4
  499. package/models/communication-metric.model.js.map +0 -1
  500. package/models/counter.model.js +0 -4
  501. package/models/counter.model.js.map +0 -1
  502. package/models/cron-job-history.model.d.ts +0 -15
  503. package/models/cron-job-history.model.js +0 -4
  504. package/models/cron-job-history.model.js.map +0 -1
  505. package/models/cron-job.model.d.ts +0 -14
  506. package/models/cron-job.model.js +0 -4
  507. package/models/cron-job.model.js.map +0 -1
  508. package/models/customer-notification.model.d.ts +0 -26
  509. package/models/customer-notification.model.js +0 -4
  510. package/models/customer-notification.model.js.map +0 -1
  511. package/models/customer-portal-password.model.d.ts +0 -11
  512. package/models/customer-portal-password.model.js +0 -4
  513. package/models/customer-portal-password.model.js.map +0 -1
  514. package/models/dialog.model.d.ts +0 -23
  515. package/models/dialog.model.js +0 -4
  516. package/models/dialog.model.js.map +0 -1
  517. package/models/email-history.model.d.ts +0 -32
  518. package/models/email-history.model.js.map +0 -1
  519. package/models/email-verified.model.js +0 -4
  520. package/models/email-verified.model.js.map +0 -1
  521. package/models/file.model.js +0 -4
  522. package/models/file.model.js.map +0 -1
  523. package/models/flag-update.model.js +0 -4
  524. package/models/flag-update.model.js.map +0 -1
  525. package/models/flag.model.js +0 -4
  526. package/models/flag.model.js.map +0 -1
  527. package/models/log-method-latency.model.d.ts +0 -10
  528. package/models/log-method-latency.model.js +0 -4
  529. package/models/log-method-latency.model.js.map +0 -1
  530. package/models/log-subscription.model.js +0 -4
  531. package/models/log-subscription.model.js.map +0 -1
  532. package/models/log.model.d.ts +0 -17
  533. package/models/log.model.js +0 -4
  534. package/models/log.model.js.map +0 -1
  535. package/models/logged-in-users.model.js +0 -4
  536. package/models/logged-in-users.model.js.map +0 -1
  537. package/models/method-response.model.js +0 -4
  538. package/models/method-response.model.js.map +0 -1
  539. package/models/method.model.d.ts +0 -26
  540. package/models/method.model.js +0 -4
  541. package/models/method.model.js.map +0 -1
  542. package/models/monitor-cpu.model.js +0 -4
  543. package/models/monitor-cpu.model.js.map +0 -1
  544. package/models/monitor-function.model.d.ts +0 -14
  545. package/models/monitor-function.model.js +0 -4
  546. package/models/monitor-function.model.js.map +0 -1
  547. package/models/monitor-memory.model.d.ts +0 -15
  548. package/models/monitor-memory.model.js +0 -4
  549. package/models/monitor-memory.model.js.map +0 -1
  550. package/models/monitor-mongo.model.d.ts +0 -13
  551. package/models/monitor-mongo.model.js +0 -4
  552. package/models/monitor-mongo.model.js.map +0 -1
  553. package/models/notification.model.js +0 -4
  554. package/models/notification.model.js.map +0 -1
  555. package/models/openai-usage-ledger.model.d.ts +0 -30
  556. package/models/openai-usage-ledger.model.js +0 -4
  557. package/models/openai-usage-ledger.model.js.map +0 -1
  558. package/models/pagination.model.d.ts +0 -11
  559. package/models/pagination.model.js +0 -28
  560. package/models/pagination.model.js.map +0 -1
  561. package/models/permission.model.d.ts +0 -12
  562. package/models/permission.model.js +0 -4
  563. package/models/permission.model.js.map +0 -1
  564. package/models/report-builder-dashboard-builder.model.d.ts +0 -25
  565. package/models/report-builder-dashboard-builder.model.js +0 -4
  566. package/models/report-builder-dashboard-builder.model.js.map +0 -1
  567. package/models/report-builder-library.model.d.ts +0 -17
  568. package/models/report-builder-library.model.js +0 -4
  569. package/models/report-builder-library.model.js.map +0 -1
  570. package/models/report-builder-report.model.d.ts +0 -121
  571. package/models/report-builder-report.model.js +0 -4
  572. package/models/report-builder-report.model.js.map +0 -1
  573. package/models/report-builder.model.d.ts +0 -61
  574. package/models/report-builder.model.js +0 -4
  575. package/models/report-builder.model.js.map +0 -1
  576. package/models/select-data-label.model.d.ts +0 -9
  577. package/models/select-data-label.model.js +0 -4
  578. package/models/select-data-label.model.js.map +0 -1
  579. package/models/server-message.model.d.ts +0 -32
  580. package/models/server-message.model.js +0 -4
  581. package/models/server-message.model.js.map +0 -1
  582. package/models/slow-query-report.model.d.ts +0 -23
  583. package/models/slow-query-report.model.js +0 -4
  584. package/models/slow-query-report.model.js.map +0 -1
  585. package/models/subscription.model.d.ts +0 -31
  586. package/models/subscription.model.js +0 -4
  587. package/models/subscription.model.js.map +0 -1
  588. package/models/support-ticket.model.d.ts +0 -87
  589. package/models/support-ticket.model.js +0 -4
  590. package/models/support-ticket.model.js.map +0 -1
  591. package/models/user-group.model.d.ts +0 -20
  592. package/models/user-group.model.js +0 -4
  593. package/models/user-group.model.js.map +0 -1
  594. package/models/user-guide.model.js +0 -4
  595. package/models/user-guide.model.js.map +0 -1
  596. package/models/user.model.d.ts +0 -84
  597. package/models/user.model.js +0 -4
  598. package/models/user.model.js.map +0 -1
  599. package/private/images/ResolveIO.png +0 -0
  600. package/public_api.js +0 -127
  601. package/public_api.js.map +0 -1
  602. package/publications/ai-terminal.d.ts +0 -1
  603. package/publications/ai-terminal.js +0 -122
  604. package/publications/ai-terminal.js.map +0 -1
  605. package/publications/app-settings.d.ts +0 -2
  606. package/publications/app-settings.js +0 -28
  607. package/publications/app-settings.js.map +0 -1
  608. package/publications/app-status.d.ts +0 -2
  609. package/publications/app-status.js +0 -16
  610. package/publications/app-status.js.map +0 -1
  611. package/publications/cron-jobs.d.ts +0 -2
  612. package/publications/cron-jobs.js +0 -88
  613. package/publications/cron-jobs.js.map +0 -1
  614. package/publications/customer-notifications.d.ts +0 -2
  615. package/publications/customer-notifications.js +0 -161
  616. package/publications/customer-notifications.js.map +0 -1
  617. package/publications/files.d.ts +0 -2
  618. package/publications/files.js +0 -36
  619. package/publications/files.js.map +0 -1
  620. package/publications/flags-update.d.ts +0 -2
  621. package/publications/flags-update.js +0 -22
  622. package/publications/flags-update.js.map +0 -1
  623. package/publications/flags.d.ts +0 -2
  624. package/publications/flags.js +0 -22
  625. package/publications/flags.js.map +0 -1
  626. package/publications/logs.d.ts +0 -2
  627. package/publications/logs.js +0 -164
  628. package/publications/logs.js.map +0 -1
  629. package/publications/notifications.d.ts +0 -2
  630. package/publications/notifications.js +0 -16
  631. package/publications/notifications.js.map +0 -1
  632. package/publications/report-builder-dashboard-builders.d.ts +0 -2
  633. package/publications/report-builder-dashboard-builders.js +0 -42
  634. package/publications/report-builder-dashboard-builders.js.map +0 -1
  635. package/publications/report-builder-libraries.d.ts +0 -2
  636. package/publications/report-builder-libraries.js +0 -90
  637. package/publications/report-builder-libraries.js.map +0 -1
  638. package/publications/report-builder-reports.d.ts +0 -2
  639. package/publications/report-builder-reports.js +0 -50
  640. package/publications/report-builder-reports.js.map +0 -1
  641. package/publications/super-admin.d.ts +0 -2
  642. package/publications/super-admin.js +0 -16
  643. package/publications/super-admin.js.map +0 -1
  644. package/publications/user-groups.d.ts +0 -1
  645. package/publications/user-groups.js +0 -16
  646. package/publications/user-groups.js.map +0 -1
  647. package/publications/user-guides.d.ts +0 -1
  648. package/publications/user-guides.js +0 -16
  649. package/publications/user-guides.js.map +0 -1
  650. package/resolveio-server-app.d.ts +0 -70
  651. package/resolveio-server-app.js +0 -801
  652. package/resolveio-server-app.js.map +0 -1
  653. package/server-app.d.ts +0 -228
  654. package/server-app.js +0 -3566
  655. package/server-app.js.map +0 -1
  656. package/services/codex-client.d.ts +0 -128
  657. package/services/codex-client.js +0 -1629
  658. package/services/codex-client.js.map +0 -1
  659. package/services/openai-client.d.ts +0 -46
  660. package/services/openai-client.js +0 -318
  661. package/services/openai-client.js.map +0 -1
  662. package/types/error-report.d.ts +0 -25
  663. package/types/error-report.js +0 -4
  664. package/types/error-report.js.map +0 -1
  665. package/types/slow-query-report.d.ts +0 -27
  666. package/types/slow-query-report.js +0 -6
  667. package/types/slow-query-report.js.map +0 -1
  668. package/util/ai-qa-policy.d.ts +0 -124
  669. package/util/ai-qa-policy.js +0 -736
  670. package/util/ai-qa-policy.js.map +0 -1
  671. package/util/ai-run-evidence-adapters.d.ts +0 -109
  672. package/util/ai-run-evidence-adapters.js +0 -7234
  673. package/util/ai-run-evidence-adapters.js.map +0 -1
  674. package/util/ai-run-evidence-dashboard.d.ts +0 -88
  675. package/util/ai-run-evidence-dashboard.js +0 -343
  676. package/util/ai-run-evidence-dashboard.js.map +0 -1
  677. package/util/ai-run-evidence-eval.d.ts +0 -86
  678. package/util/ai-run-evidence-eval.js +0 -1018
  679. package/util/ai-run-evidence-eval.js.map +0 -1
  680. package/util/ai-run-evidence.d.ts +0 -244
  681. package/util/ai-run-evidence.js +0 -1096
  682. package/util/ai-run-evidence.js.map +0 -1
  683. package/util/ai-runner-artifacts.d.ts +0 -82
  684. package/util/ai-runner-artifacts.js +0 -713
  685. package/util/ai-runner-artifacts.js.map +0 -1
  686. package/util/ai-runner-manager-autopilot.d.ts +0 -210
  687. package/util/ai-runner-manager-autopilot.js +0 -642
  688. package/util/ai-runner-manager-autopilot.js.map +0 -1
  689. package/util/ai-runner-manager-policy.d.ts +0 -807
  690. package/util/ai-runner-manager-policy.js +0 -3501
  691. package/util/ai-runner-manager-policy.js.map +0 -1
  692. package/util/ai-runner-qa-auth.d.ts +0 -5
  693. package/util/ai-runner-qa-auth.js +0 -839
  694. package/util/ai-runner-qa-auth.js.map +0 -1
  695. package/util/ai-runner-qa-tools.d.ts +0 -26
  696. package/util/ai-runner-qa-tools.js +0 -3520
  697. package/util/ai-runner-qa-tools.js.map +0 -1
  698. package/util/aicoder-runner-v6.d.ts +0 -426
  699. package/util/aicoder-runner-v6.js +0 -2464
  700. package/util/aicoder-runner-v6.js.map +0 -1
  701. package/util/common.d.ts +0 -31
  702. package/util/common.js +0 -683
  703. package/util/common.js.map +0 -1
  704. package/util/customer-portal-password.d.ts +0 -13
  705. package/util/customer-portal-password.js +0 -209
  706. package/util/customer-portal-password.js.map +0 -1
  707. package/util/error-reporter.d.ts +0 -52
  708. package/util/error-reporter.js +0 -326
  709. package/util/error-reporter.js.map +0 -1
  710. package/util/error-tracking.d.ts +0 -13
  711. package/util/error-tracking.js +0 -120
  712. package/util/error-tracking.js.map +0 -1
  713. package/util/openai-usage-cost.d.ts +0 -6
  714. package/util/openai-usage-cost.js +0 -103
  715. package/util/openai-usage-cost.js.map +0 -1
  716. package/util/report-builder-unwinds.d.ts +0 -15
  717. package/util/report-builder-unwinds.js +0 -156
  718. package/util/report-builder-unwinds.js.map +0 -1
  719. package/util/runner-process-janitor.d.ts +0 -27
  720. package/util/runner-process-janitor.js +0 -208
  721. package/util/runner-process-janitor.js.map +0 -1
  722. package/util/schema-report-builder.d.ts +0 -6
  723. package/util/schema-report-builder.js +0 -481
  724. package/util/schema-report-builder.js.map +0 -1
  725. package/util/slow-query-reporter.d.ts +0 -28
  726. package/util/slow-query-reporter.js +0 -226
  727. package/util/slow-query-reporter.js.map +0 -1
  728. package/util/subscription-dependency-context.d.ts +0 -34
  729. package/util/subscription-dependency-context.js +0 -1283
  730. package/util/subscription-dependency-context.js.map +0 -1
  731. package/util/support-runner-v5.d.ts +0 -1426
  732. package/util/support-runner-v5.js +0 -7631
  733. package/util/support-runner-v5.js.map +0 -1
  734. package/util/tokenizer.d.ts +0 -5
  735. package/util/tokenizer.js +0 -41
  736. package/util/tokenizer.js.map +0 -1
  737. package/workers/codex-runner.worker.d.ts +0 -1
  738. package/workers/codex-runner.worker.js +0 -192
  739. package/workers/codex-runner.worker.js.map +0 -1
  740. /package/{private → src/private}/email-templates/enrollment.html +0 -0
  741. /package/{private → src/private}/email-templates/forgot-password.html +0 -0
  742. /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{private → src/private}/email-templates/support-ticket.html +0 -0
  745. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -0,0 +1,649 @@
1
+ /* eslint-disable no-restricted-properties */
2
+ let rusDiff = require('rus-diff');
3
+ let deepDiff = require('deep-diff').diff;
4
+ import { detailedDiff } from 'deep-object-diff';
5
+ import * as moment from 'moment-timezone';
6
+ import { ObjectId } from 'mongodb';
7
+ import { LookupTables } from '../models/report-builder.model';
8
+ let clone = require('clone');
9
+
10
+ export function objectIdHexString() {
11
+ let objectId = new ObjectId();
12
+ return objectId.toHexString();
13
+ }
14
+
15
+ export function buildRbSchema(rbSchema: any) {
16
+ Object.keys(rbSchema).forEach(key => {
17
+ if (rbSchema[key].type === Object) {
18
+ rbSchema[key].type = 'Object';
19
+ rbSchema[key].rbType = 'Object';
20
+ }
21
+ else if (rbSchema[key].type === Array) {
22
+ rbSchema[key].type = 'Array';
23
+ rbSchema[key].rbType = 'Array';
24
+ }
25
+ else if (rbSchema[key].type === String) {
26
+ rbSchema[key].type = 'String';
27
+ rbSchema[key].rbType = 'String';
28
+ }
29
+ else if (rbSchema[key].type === Date) {
30
+ rbSchema[key].type = 'Date';
31
+ rbSchema[key].rbType = 'Date';
32
+ }
33
+ else if (rbSchema[key].type === Number) {
34
+ rbSchema[key].type = 'Number';
35
+ rbSchema[key].rbType = 'Number';
36
+ }
37
+ else if (rbSchema[key].type === Boolean) {
38
+ rbSchema[key].rbType = 'Boolean';
39
+ rbSchema[key].type = 'Boolean';
40
+ }
41
+ });
42
+
43
+ Object.keys(rbSchema).forEach(key => {
44
+ delete rbSchema[key].type;
45
+ });
46
+
47
+ return rbSchema;
48
+ }
49
+
50
+ export function buildRbLookups(rbLookups: LookupTables[], defaultSchema: object, default_checked_array: string[] = []) {
51
+ // Remember: lkp.local_key will be removed later on, because it has 'id_'
52
+
53
+ rbLookups.forEach(lkp => {
54
+ let errString = '';
55
+ let localKey, newPropertyName;
56
+ let localKeyDir = '';
57
+ let localKeyDirDot = '';
58
+ let collectionAlias = toTitleCase(lkp.lookup.replace(/\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\_/g, ' ').replace(/\.\$\./g, ' -> ').replace(/\./g, ' -> ')) + ') (Lookup)';
59
+
60
+ if (lkp.local_key.match(/\./)) {
61
+ localKey = lkp.local_key.replace(/\.\$/g, '');
62
+ localKeyDirDot = lkp.local_key.replace(/^(.+\.).*$/, '$1');
63
+ localKeyDir = localKeyDirDot.replace(/\.$/, '');
64
+ }
65
+ else {
66
+ // local_key is a root leaf node.
67
+ localKey = lkp.local_key;
68
+ }
69
+ newPropertyName = localKeyDirDot + collectionAlias;
70
+
71
+ if (!defaultSchema[lkp.local_key]) {
72
+ errString += '--local_key: \'' + lkp.local_key + '\' MUST be a valid schema path! ';
73
+ }
74
+ else if (defaultSchema[lkp.local_key].type !== String) {
75
+ errString += '--local_key: \'' + lkp.local_key + '\' MUST be a String! ';
76
+ }
77
+ let lookupNode = {
78
+ lookup_collection: lkp.lookup,
79
+ lookup_collection_alias: collectionAlias,
80
+ local_key: localKey,
81
+ field_path: localKeyDir,
82
+ lookup_as: newPropertyName,
83
+ lookup_key: '_id',
84
+ type: 'Object',
85
+ };
86
+
87
+ defaultSchema[newPropertyName] = lookupNode;
88
+
89
+ if (errString) {
90
+ throwErr(errString, lkp, lookupNode, newPropertyName);
91
+ }
92
+ });
93
+
94
+ for (let ii = 0; ii < default_checked_array.length; ii++) {
95
+ defaultSchema[default_checked_array[ii]] = {};
96
+ defaultSchema[default_checked_array[ii]]['default_checked'] = true;
97
+ Object.assign(defaultSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);
98
+ }
99
+
100
+ return defaultSchema;
101
+ }
102
+
103
+ export function throwErr(err: any, lkp, lookupNode, newPropertyName = '') {
104
+ // err could be from a try/throw/catch
105
+ console.log('------- ERROR thrown by rbLookups: ');
106
+ console.log(err);
107
+ console.log('---item: ');
108
+ console.log(lkp);
109
+ console.log('---Attempted to create rbSchema[\'' + newPropertyName + '\']: ');
110
+ console.log(lookupNode);
111
+ process.exit(1);
112
+ }
113
+
114
+ export function roundPrecision(value: number, precision = 0) {
115
+ let stringValue = value.toString();
116
+
117
+ if (stringValue.includes('.')) {
118
+ if (stringValue[0] === '0') {
119
+ precision += 1;
120
+ }
121
+
122
+ precision -= stringValue.indexOf('.');
123
+ }
124
+
125
+ const exponent = Math.pow(10, precision);
126
+ return Math.round(parseFloat(stringValue) * exponent) / exponent;
127
+ }
128
+
129
+ export function round(value, precision = 0) {
130
+ const power = Math.pow(10, precision);
131
+ const adjustment = 1e-6;
132
+ return Math.round( (value * power) + adjustment) / power;
133
+ }
134
+
135
+ export function floorPrecision(value: number, precision = 0) {
136
+ let stringValue = value.toString();
137
+
138
+ if (stringValue.includes('.')) {
139
+ if (stringValue[0] === '0') {
140
+ precision += 1;
141
+ }
142
+
143
+ precision -= stringValue.indexOf('.');
144
+ }
145
+
146
+ const exponent = Math.pow(10, precision);
147
+ return Math.floor(parseFloat(stringValue) * exponent) / exponent;
148
+ }
149
+
150
+ export function deepCopy(value) {
151
+ return clone(value);
152
+ }
153
+
154
+ export function dateReviver(key, value) {
155
+ if (typeof value === 'string') {
156
+ let a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
157
+ if (a) {
158
+ return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));
159
+ }
160
+ }
161
+ return value;
162
+ }
163
+
164
+ function buildAllowedOrigins(configOrigins): string[] {
165
+ let origins = [];
166
+
167
+ if (Array.isArray(configOrigins)) {
168
+ origins = configOrigins.map(origin => typeof origin === 'string' ? origin.trim() : origin);
169
+ }
170
+ else if (typeof configOrigins === 'string') {
171
+ let splitOrigins = configOrigins.split(',').map(origin => origin.trim()).filter(origin => origin);
172
+ origins = splitOrigins;
173
+ }
174
+
175
+ return origins.filter(origin => typeof origin === 'string' && origin.trim() !== '');
176
+ }
177
+
178
+ export function getAllowedOrigins(serverConfig): string[] {
179
+ let allowedOrigins = new Set<string>();
180
+ let defaultKeys = ['ROOT_URL', 'SEC_ROOT_URL', 'RESOLVEIO_URL', 'RESOLVEIO_SECONDARY_URL'];
181
+
182
+ defaultKeys.forEach(key => {
183
+ let value = serverConfig[key] || process.env[key];
184
+ if (typeof value === 'string' && value.trim()) {
185
+ allowedOrigins.add(value.trim());
186
+ }
187
+ });
188
+
189
+ buildAllowedOrigins(serverConfig['ALLOWED_ORIGINS']).forEach(origin => allowedOrigins.add(origin));
190
+ buildAllowedOrigins(serverConfig['ADDITIONAL_ALLOWED_ORIGINS']).forEach(origin => allowedOrigins.add(origin));
191
+ buildAllowedOrigins(process.env.ALLOWED_ORIGINS).forEach(origin => allowedOrigins.add(origin));
192
+ buildAllowedOrigins(process.env.ADDITIONAL_ALLOWED_ORIGINS).forEach(origin => allowedOrigins.add(origin));
193
+
194
+ return Array.from(allowedOrigins);
195
+ }
196
+
197
+ export function isAllowedOrigin(origin: string, serverConfig): boolean {
198
+ if (!origin) {
199
+ return false;
200
+ }
201
+
202
+ const allowedOrigins = getAllowedOrigins(serverConfig);
203
+ return allowedOrigins.includes(origin);
204
+ }
205
+
206
+ export function getMongoUpdates(currDoc, modifiedDoc, incVersion) {
207
+ if (currDoc.createdAt) {
208
+ modifiedDoc.createdAt = currDoc.createdAt;
209
+ }
210
+
211
+ if (currDoc.updatedAt) {
212
+ modifiedDoc.updatedAt = currDoc.updatedAt;
213
+ }
214
+
215
+ let updates = rusDiff.diff(currDoc, modifiedDoc);
216
+
217
+ if (updates) {
218
+ if (updates.$set && !Object.keys(updates.$set).length) {
219
+ delete updates.$set;
220
+ }
221
+
222
+ if (incVersion) {
223
+ updates.$inc = {__v: 1};
224
+ }
225
+ }
226
+ else {
227
+ if (incVersion) {
228
+ updates = {
229
+ $inc: {__v: 1}
230
+ };
231
+ }
232
+ }
233
+
234
+ return updates;
235
+ }
236
+
237
+ export function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {
238
+ let upDoc = deepCopy(currentDoc); // was oldDoc
239
+ upDoc.__v = currentDoc.__v;
240
+
241
+ let diff_1 = getDeepDiff(oldDoc, currentDoc);
242
+ let diff_2 = getDeepDiff(oldDoc, f_doc);
243
+
244
+ let updates = mergeUpdates(diff_2, diff_1);
245
+ applyMongoUpdate(upDoc, updates);
246
+ return upDoc;
247
+ }
248
+
249
+
250
+ export function mergeUpdates(...updatesToMerge) {
251
+ const merged = {
252
+ $set: {},
253
+ $unset: {},
254
+ $inc: {},
255
+ $push: {},
256
+ $pull: {}
257
+ };
258
+
259
+ updatesToMerge.filter(Boolean).forEach(anUpdate => {
260
+ anUpdate.forEach(change => {
261
+ const path = change.path.join('.');
262
+
263
+ switch (change.kind) {
264
+ case 'E':
265
+ handleEditedChange(merged, path, change);
266
+ break;
267
+ case 'A':
268
+ handleArrayChange(merged, path, change);
269
+ break;
270
+ default:
271
+ break;
272
+ }
273
+ });
274
+ });
275
+
276
+ return merged;
277
+ }
278
+
279
+ function handleEditedChange(merged, path, change) {
280
+ // Later diffs override earlier ones
281
+ if (typeof(change.rhs) === 'number' && (path.includes('quantity') || path.includes('qty'))) {
282
+ merged.$inc[path] = (merged.$inc[path] || 0) + change.rhs - change.lhs;
283
+ }
284
+ else {
285
+ merged.$set[path] = change.rhs;
286
+ }
287
+ }
288
+
289
+
290
+ function handleArrayChange(merged, path, change) {
291
+ if (change.item.kind === 'N') {
292
+ if (!merged.$push[path]) merged.$push[path] = { $each: [] };
293
+
294
+ if (!merged.$push[path].$each.some(a => JSON.stringify(a) === JSON.stringify(change.item.rhs))) {
295
+ merged.$push[path].$each.push(change.item.rhs);
296
+ }
297
+ }
298
+ else if (change.item.kind === 'D') {
299
+ if (!merged.$pull[path]) merged.$pull[path] = [];
300
+
301
+ if (!merged.$pull[path].some(a => JSON.stringify(a) === JSON.stringify(change.item.lhs))) {
302
+ merged.$pull[path].push(change.item.lhs);
303
+ }
304
+ }
305
+ }
306
+
307
+ export function getDeepDiff(doc1, doc2) {
308
+ delete doc1._id;
309
+ delete doc1.__v;
310
+
311
+ if (doc1.updatedAt) {
312
+ delete doc1.updatedAt;
313
+ }
314
+
315
+ if (doc1.createdAt) {
316
+ delete doc1.createdAt;
317
+ }
318
+
319
+ delete doc2._id;
320
+ delete doc2.__v;
321
+
322
+ if (doc2.updatedAt) {
323
+ delete doc2.updatedAt;
324
+ }
325
+
326
+ if (doc2.createdAt) {
327
+ delete doc2.createdAt;
328
+ }
329
+
330
+ return deepDiff(doc1, doc2);
331
+ }
332
+
333
+ export function applyMongoUpdate(uDoc: any, delta: any): any {
334
+ const orig = deepCopy(uDoc);
335
+
336
+ if (delta) {
337
+ if (delta.$rename) handleRename(uDoc, delta.$rename);
338
+ if (delta.$set) handleSet(uDoc, delta.$set);
339
+ if (delta.$inc) handleInc(uDoc, delta.$inc);
340
+ if (delta.$unset) handleUnset(uDoc, delta.$unset);
341
+ if (delta.$pull) handlePull(uDoc, orig, delta.$pull);
342
+ if (delta.$push) handlePush(uDoc, delta.$push);
343
+ }
344
+
345
+ return uDoc;
346
+ }
347
+
348
+ function handleRename(uDoc: any, renameMap: any) {
349
+ for (const k in renameMap) {
350
+ const v = renameMap[k];
351
+ const [o1, n1] = resolve(uDoc, k);
352
+ const [o2, n2] = resolve(uDoc, v);
353
+ if (o1 && n1.length === 1) {
354
+ if (o2 && n2.length === 1) {
355
+ o2[n2[0]] = o1[n1[0]];
356
+ delete o1[n1[0]];
357
+ } else {
358
+ logError(o2, n2, uDoc, v);
359
+ }
360
+ } else {
361
+ logError(o1, n1, uDoc, k);
362
+ }
363
+ }
364
+ }
365
+
366
+ function handleSet(uDoc: any, setMap: any) {
367
+ for (const k in setMap) {
368
+ const v = setMap[k];
369
+ const [o, n] = resolve(uDoc, k, { force: true });
370
+ if (o && n.length === 1) {
371
+ o[n[0]] = v;
372
+ } else {
373
+ logError(o, n, uDoc, k);
374
+ }
375
+ }
376
+ }
377
+
378
+ function handleInc(uDoc: any, incMap: any) {
379
+ for (const k in incMap) {
380
+ const v = incMap[k];
381
+ const [o, n] = resolve(uDoc, k, { force: true });
382
+ if (o && n.length === 1) {
383
+ if (typeof o[n[0]] !== 'number') {
384
+ o[n[0]] = 0;
385
+ }
386
+ o[n[0]] += v;
387
+ } else {
388
+ logError(o, n, uDoc, k);
389
+ }
390
+ }
391
+ }
392
+
393
+ function handleUnset(uDoc: any, unsetMap: any) {
394
+ for (const k in unsetMap) {
395
+ const [o, n] = resolve(uDoc, k);
396
+ if (o && n.length === 1) {
397
+ delete o[n[0]];
398
+ } else {
399
+ logError(o, n, uDoc, k);
400
+ }
401
+ }
402
+ }
403
+
404
+ function handlePull(uDoc: any, orig: any, pullMap: any) {
405
+ for (const pathk in pullMap) {
406
+ const pullValues = pullMap[pathk];
407
+ for (let vk of pullValues) {
408
+ const [o, n] = resolve(uDoc, pathk);
409
+ const [o2, n2] = resolve(orig, pathk);
410
+ if (o && n.length === 1) {
411
+ const index = (<Array<any>>o2[n2[0]]).findIndex(z => JSON.stringify(z) === JSON.stringify(vk));
412
+ if (index !== -1) {
413
+ o[n[0]].splice(index, 1);
414
+ }
415
+ } else {
416
+ logError(o, n, uDoc, pathk);
417
+ }
418
+ }
419
+ }
420
+ }
421
+
422
+ function handlePush(uDoc: any, pushMap: any) {
423
+ for (const pathk in pushMap) {
424
+ const pushValues = pushMap[pathk];
425
+
426
+ // Normalize ─ accept $each, scalar, or array
427
+ let values: any[] = [];
428
+ if (Array.isArray(pushValues)) {
429
+ values = pushValues;
430
+ }
431
+ else if (pushValues && typeof pushValues === 'object') {
432
+ if (Array.isArray(pushValues.$each)) {
433
+ values = pushValues.$each; // canonical `$each`
434
+ } else {
435
+ values = [pushValues]; // single element object
436
+ }
437
+ }
438
+ else {
439
+ values = [pushValues]; // scalar push
440
+ }
441
+
442
+ for (const vk of values) {
443
+ const [o, n] = resolve(uDoc, pathk);
444
+ if (o && n.length === 1 && Array.isArray(o[n[0]])) {
445
+ o[n[0]].push(vk);
446
+ }
447
+ else {
448
+ logError(o, n, uDoc, pathk);
449
+ }
450
+ }
451
+ }
452
+ }
453
+
454
+ function logError(o: any, n: any, uDoc: any, key: any) {
455
+ console.log('Error', o + '/' + n + ' - couldn\'t resolve for ' + JSON.stringify(uDoc) + ' ' + key);
456
+ }
457
+
458
+ function resolve(a: any, path: string, options: any = {}): [any, any] {
459
+ const stack = arrize(path);
460
+ let last = [];
461
+
462
+ if (stack.length > 0) {
463
+ last.unshift(stack.pop());
464
+ }
465
+
466
+ let e = a;
467
+ while (stack.length > 0) {
468
+ const k = stack.shift();
469
+ if (e[k] !== void 0) {
470
+ e = e[k];
471
+ } else {
472
+ if (!options.force) {
473
+ last.unshift(k);
474
+ last = stack.concat(last);
475
+ break;
476
+ }
477
+ const isNextNum = typeof stack[0] === 'number';
478
+ const isLastNum = stack.length === 0 && typeof last[0] === 'number';
479
+ e[k] = isNextNum || isLastNum ? [] : {};
480
+ e = e[k];
481
+ }
482
+ }
483
+
484
+ return [e, last];
485
+ }
486
+
487
+ function arrize(path: any, glue: string = '.'): string[] {
488
+ if (Array.isArray(path)) {
489
+ return path.slice();
490
+ }
491
+
492
+ if (path === void 0 || path === null || path === false || path === '') {
493
+ return [];
494
+ }
495
+
496
+ return path.toString().split(glue)
497
+ .map(e => {
498
+ if ([void 0, null, false, ''].includes(e)) {
499
+ return null;
500
+ }
501
+ return e.toString();
502
+ })
503
+ .filter(e => e !== null);
504
+ }
505
+
506
+ export function deepDiffDetails(object1: Object, object2: Object): string {
507
+ let obj1 = deepCopy(object1);
508
+ let obj2 = deepCopy(object2);
509
+
510
+ let diff = detailedDiff(obj1, obj2);
511
+ let diffString = '';
512
+
513
+ const formatValue = (value: any): string => {
514
+ if (value instanceof Date) {
515
+ return moment(value).format('llll');
516
+ }
517
+ else if (typeof value === 'object' && value !== null) {
518
+ Object.keys(value).filter(a => a.startsWith('_id') || a.startsWith('id_')).forEach(key => {
519
+ delete value[key];
520
+ });
521
+ return JSON.stringify(value); // Pretty print objects
522
+ }
523
+ else {
524
+ return typeof value === 'string' ? `"${value}"` : String(value);
525
+ }
526
+ };
527
+
528
+ const customArrayDiff = (arr1: any[], arr2: any[]): string => {
529
+ let arrayDiffResults = [];
530
+ const maxLength = Math.max(arr1.length, arr2.length);
531
+
532
+ for (let i = 0; i < maxLength; i++) {
533
+ if (arr1[i] && !arr2[i]) {
534
+ arrayDiffResults.push(`Removed at index ${i}: ${formatValue(arr1[i])}`);
535
+ }
536
+ else if (!arr1[i] && arr2[i]) {
537
+ arrayDiffResults.push(`Added at index ${i}: ${formatValue(arr2[i])}`);
538
+ }
539
+ else if (arr1[i] && arr2[i] && JSON.stringify(arr1[i]) !== JSON.stringify(arr2[i])) {
540
+ arrayDiffResults.push(`Changed at index ${i}: {${formatObjectDiff(arr1[i], arr2[i])}}`);
541
+ }
542
+ }
543
+
544
+ return arrayDiffResults.join(', ');
545
+ };
546
+
547
+ const formatObjectDiff = (obj1: any, obj2: any): string => {
548
+ if (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {
549
+ return `from: ${formatValue(obj1)} to: ${formatValue(obj2)}`;
550
+ }
551
+
552
+ if (Array.isArray(obj1) || Array.isArray(obj2)) {
553
+ return customArrayDiff(Array.isArray(obj1) ? obj1 : [], Array.isArray(obj2) ? obj2 : []);
554
+ }
555
+
556
+ return Object.keys({...obj1, ...obj2}).filter(a => !a.startsWith('_id') && !a.startsWith('id_')).map(key => {
557
+ const obj1Val = obj1 ? obj1[key] : undefined;
558
+ const obj2Val = obj2 ? obj2[key] : undefined;
559
+ return `${toTitleCase(key)}: ${formatObjectDiff(obj1Val, obj2Val)}`;
560
+ }).join(', ');
561
+ };
562
+
563
+ // Handle each diff type
564
+ ['added', 'deleted', 'updated'].forEach(diffType => {
565
+ if (Object.keys(diff[diffType]).length > 0) {
566
+ const updates = Object.keys(diff[diffType])
567
+ .filter(key => diffType === 'added' ? true : (diffType === 'deleted' ? !diff['added'][key] : !diff['added'][key] && !diff['deleted'][key]))
568
+ .filter(key => !key.startsWith('_id') && !key.startsWith('id_'))
569
+ .map(key => `\n${toTitleCase(key)}: ${formatObjectDiff(obj1[key], obj2[key])}`)
570
+ .join(',');
571
+
572
+ diffString += updates ? `${updates}` : '';
573
+ }
574
+ });
575
+
576
+ return diffString;
577
+ }
578
+
579
+ export function getBinarySize(string) {
580
+ if (string) {
581
+ return Buffer.byteLength(string, 'utf8');
582
+ }
583
+ else {
584
+ return 0;
585
+ }
586
+ }
587
+
588
+ export function pad(num, size) {
589
+ let s = num + '';
590
+ while (s.length < size) { s = '0' + s; }
591
+ return s;
592
+ }
593
+
594
+ export function randomString(length, chars) {
595
+ let result = '';
596
+ for (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }
597
+ return result;
598
+ }
599
+
600
+ export function toTitleCase(str) {
601
+ return str.replace(/\w\S*/g, function(txt){
602
+ return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
603
+ });
604
+ }
605
+
606
+ export function isObject(item) {
607
+ return (item && typeof item === 'object' && !Array.isArray(item));
608
+ }
609
+
610
+ export function mergeDeep(target, ...sources) {
611
+ if (!sources.length) {
612
+ return target;
613
+ }
614
+ const source = sources.shift();
615
+
616
+ if (isObject(target) && isObject(source)) {
617
+ for (const key in source) {
618
+ if (isObject(source[key])) {
619
+ if (!target[key]) {
620
+ Object.assign(target, { [key]: {} });
621
+ }
622
+ mergeDeep(target[key], source[key]);
623
+ }
624
+ else {
625
+ Object.assign(target, { [key]: source[key] });
626
+ }
627
+ }
628
+ }
629
+
630
+ return mergeDeep(target, ...sources);
631
+ }
632
+
633
+ export function generateSearchTokensFromFields(doc: any, fields: string[]): string[] {
634
+ const tokens = new Set<string>();
635
+
636
+ fields.forEach(field => {
637
+ const val = doc[field];
638
+ if (typeof val === 'string' && val.trim().length) {
639
+ const words = val.toLowerCase().split(/\s+/);
640
+ words.forEach(word => {
641
+ for (let i = 3; i <= word.length; i++) {
642
+ tokens.add(word.slice(0, i)); // prefix-based tokens only
643
+ }
644
+ });
645
+ }
646
+ });
647
+
648
+ return Array.from(tokens);
649
+ }