@resolveio/server-lib 22.3.35 → 22.3.36

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 (687) hide show
  1. package/ai/assistant-core-heuristics.d.ts +11 -0
  2. package/ai/assistant-core-heuristics.js +356 -0
  3. package/ai/assistant-core-heuristics.js.map +1 -0
  4. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +3 -0
  5. package/ai/resolveio-platform-intelligence-memory-corpus.js +214 -0
  6. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +1 -0
  7. package/ai/resolveio-platform-intelligence-memory.d.ts +20 -0
  8. package/ai/resolveio-platform-intelligence-memory.js +341 -0
  9. package/ai/resolveio-platform-intelligence-memory.js.map +1 -0
  10. package/{src/ai/resolveio-platform-intelligence-types.ts → ai/resolveio-platform-intelligence-types.d.ts} +15 -20
  11. package/ai/resolveio-platform-intelligence-types.js +4 -0
  12. package/ai/resolveio-platform-intelligence-types.js.map +1 -0
  13. package/ai/resolveio-platform-intelligence.d.ts +6 -0
  14. package/ai/resolveio-platform-intelligence.js +463 -0
  15. package/ai/resolveio-platform-intelligence.js.map +1 -0
  16. package/client-server-app.d.ts +1 -0
  17. package/client-server-app.js +68 -0
  18. package/client-server-app.js.map +1 -0
  19. package/collections/ai-terminal-conversation.collection.d.ts +2 -0
  20. package/collections/ai-terminal-conversation.collection.js +140 -0
  21. package/collections/ai-terminal-conversation.collection.js.map +1 -0
  22. package/collections/ai-terminal-issue-report.collection.d.ts +2 -0
  23. package/collections/ai-terminal-issue-report.collection.js +148 -0
  24. package/collections/ai-terminal-issue-report.collection.js.map +1 -0
  25. package/collections/ai-terminal-message.collection.d.ts +2 -0
  26. package/collections/ai-terminal-message.collection.js +121 -0
  27. package/collections/ai-terminal-message.collection.js.map +1 -0
  28. package/collections/app-setting.collection.d.ts +3 -0
  29. package/collections/app-setting.collection.js +103 -0
  30. package/collections/app-setting.collection.js.map +1 -0
  31. package/collections/app-status.collection.d.ts +3 -0
  32. package/collections/app-status.collection.js +57 -0
  33. package/collections/app-status.collection.js.map +1 -0
  34. package/collections/communication-metric.collection.d.ts +2 -0
  35. package/collections/communication-metric.collection.js +133 -0
  36. package/collections/communication-metric.collection.js.map +1 -0
  37. package/collections/counter.collection.d.ts +3 -0
  38. package/collections/counter.collection.js +56 -0
  39. package/collections/counter.collection.js.map +1 -0
  40. package/collections/cron-job-history.collection.d.ts +3 -0
  41. package/collections/cron-job-history.collection.js +137 -0
  42. package/collections/cron-job-history.collection.js.map +1 -0
  43. package/collections/cron-job.collection.d.ts +3 -0
  44. package/collections/cron-job.collection.js +92 -0
  45. package/collections/cron-job.collection.js.map +1 -0
  46. package/collections/customer-notification.collection.d.ts +3 -0
  47. package/collections/customer-notification.collection.js +130 -0
  48. package/collections/customer-notification.collection.js.map +1 -0
  49. package/collections/customer-portal-password.collection.d.ts +3 -0
  50. package/collections/customer-portal-password.collection.js +75 -0
  51. package/collections/customer-portal-password.collection.js.map +1 -0
  52. package/collections/email-history.collection.d.ts +3 -0
  53. package/collections/email-history.collection.js +127 -0
  54. package/collections/email-history.collection.js.map +1 -0
  55. package/collections/email-verified.collection.d.ts +3 -0
  56. package/collections/email-verified.collection.js +62 -0
  57. package/collections/email-verified.collection.js.map +1 -0
  58. package/collections/file.collection.d.ts +3 -0
  59. package/collections/file.collection.js +74 -0
  60. package/collections/file.collection.js.map +1 -0
  61. package/collections/flag-update.collection.d.ts +3 -0
  62. package/collections/flag-update.collection.js +57 -0
  63. package/collections/flag-update.collection.js.map +1 -0
  64. package/collections/flag.collection.d.ts +3 -0
  65. package/collections/flag.collection.js +57 -0
  66. package/collections/flag.collection.js.map +1 -0
  67. package/collections/log-method-latency.collection.d.ts +3 -0
  68. package/collections/log-method-latency.collection.js +77 -0
  69. package/collections/log-method-latency.collection.js.map +1 -0
  70. package/collections/log-subscription.collection.d.ts +3 -0
  71. package/collections/log-subscription.collection.js +80 -0
  72. package/collections/log-subscription.collection.js.map +1 -0
  73. package/collections/log.collection.d.ts +3 -0
  74. package/collections/log.collection.js +93 -0
  75. package/collections/log.collection.js.map +1 -0
  76. package/collections/logged-in-users.collection.d.ts +3 -0
  77. package/collections/logged-in-users.collection.js +67 -0
  78. package/collections/logged-in-users.collection.js.map +1 -0
  79. package/collections/monitor-cpu.collection.d.ts +3 -0
  80. package/collections/monitor-cpu.collection.js +65 -0
  81. package/collections/monitor-cpu.collection.js.map +1 -0
  82. package/collections/monitor-function.collection.d.ts +3 -0
  83. package/collections/monitor-function.collection.js +74 -0
  84. package/collections/monitor-function.collection.js.map +1 -0
  85. package/collections/monitor-memory.collection.d.ts +3 -0
  86. package/collections/monitor-memory.collection.js +77 -0
  87. package/collections/monitor-memory.collection.js.map +1 -0
  88. package/collections/monitor-mongo.collection.d.ts +3 -0
  89. package/collections/monitor-mongo.collection.js +71 -0
  90. package/collections/monitor-mongo.collection.js.map +1 -0
  91. package/collections/notification.collection.d.ts +3 -0
  92. package/collections/notification.collection.js +57 -0
  93. package/collections/notification.collection.js.map +1 -0
  94. package/collections/openai-usage-ledger.collection.d.ts +2 -0
  95. package/collections/openai-usage-ledger.collection.js +124 -0
  96. package/collections/openai-usage-ledger.collection.js.map +1 -0
  97. package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
  98. package/collections/report-builder-dashboard-builder.collection.js +109 -0
  99. package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
  100. package/collections/report-builder-library.collection.d.ts +3 -0
  101. package/collections/report-builder-library.collection.js +87 -0
  102. package/collections/report-builder-library.collection.js.map +1 -0
  103. package/collections/report-builder-report.collection.d.ts +4 -0
  104. package/collections/report-builder-report.collection.js +184 -0
  105. package/collections/report-builder-report.collection.js.map +1 -0
  106. package/collections/user-group.collection.d.ts +4 -0
  107. package/collections/user-group.collection.js +89 -0
  108. package/collections/user-group.collection.js.map +1 -0
  109. package/collections/user-guide.collection.d.ts +3 -0
  110. package/collections/user-guide.collection.js +57 -0
  111. package/collections/user-guide.collection.js.map +1 -0
  112. package/collections/user.collection.d.ts +4 -0
  113. package/collections/user.collection.js +180 -0
  114. package/collections/user.collection.js.map +1 -0
  115. package/cron/cron.d.ts +14 -0
  116. package/cron/cron.js +216 -0
  117. package/cron/cron.js.map +1 -0
  118. package/fixtures/cron-jobs.d.ts +1 -0
  119. package/fixtures/cron-jobs.js +150 -0
  120. package/fixtures/cron-jobs.js.map +1 -0
  121. package/fixtures/init.d.ts +1 -0
  122. package/fixtures/init.js +91 -0
  123. package/fixtures/init.js.map +1 -0
  124. package/http/auth.d.ts +2 -0
  125. package/http/auth.js +906 -0
  126. package/http/auth.js.map +1 -0
  127. package/http/health.d.ts +1 -0
  128. package/http/health.js +11 -0
  129. package/http/health.js.map +1 -0
  130. package/http/home.d.ts +1 -0
  131. package/http/home.js +134 -0
  132. package/http/home.js.map +1 -0
  133. package/http/slow-query-publication.d.ts +2 -0
  134. package/http/slow-query-publication.js +99 -0
  135. package/http/slow-query-publication.js.map +1 -0
  136. package/index.d.ts +1 -0
  137. package/index.js +19 -0
  138. package/index.js.map +1 -0
  139. package/managers/ai-assistant-codex-manager.manager.d.ts +67 -0
  140. package/managers/ai-assistant-codex-manager.manager.js +1113 -0
  141. package/managers/ai-assistant-codex-manager.manager.js.map +1 -0
  142. package/managers/communication-metric.manager.d.ts +16 -0
  143. package/managers/communication-metric.manager.js +134 -0
  144. package/managers/communication-metric.manager.js.map +1 -0
  145. package/managers/cron.manager.d.ts +20 -0
  146. package/managers/cron.manager.js +534 -0
  147. package/managers/cron.manager.js.map +1 -0
  148. package/managers/customer-notification-content.manager.d.ts +55 -0
  149. package/managers/customer-notification-content.manager.js +158 -0
  150. package/managers/customer-notification-content.manager.js.map +1 -0
  151. package/managers/diagnostic-manager-bootstrap.d.ts +9 -0
  152. package/managers/diagnostic-manager-bootstrap.js +260 -0
  153. package/managers/diagnostic-manager-bootstrap.js.map +1 -0
  154. package/managers/error-auto-fix.manager.d.ts +149 -0
  155. package/managers/error-auto-fix.manager.js +3064 -0
  156. package/managers/error-auto-fix.manager.js.map +1 -0
  157. package/managers/local-log.manager.d.ts +18 -0
  158. package/managers/local-log.manager.js +88 -0
  159. package/managers/local-log.manager.js.map +1 -0
  160. package/managers/method.manager.d.ts +83 -0
  161. package/managers/method.manager.js +1941 -0
  162. package/managers/method.manager.js.map +1 -0
  163. package/managers/mongo.manager.d.ts +224 -0
  164. package/managers/mongo.manager.js +5000 -0
  165. package/managers/mongo.manager.js.map +1 -0
  166. package/managers/monitor.manager.d.ts +70 -0
  167. package/managers/monitor.manager.js +550 -0
  168. package/managers/monitor.manager.js.map +1 -0
  169. package/managers/openai-usage-ledger.manager.d.ts +15 -0
  170. package/managers/openai-usage-ledger.manager.js +144 -0
  171. package/managers/openai-usage-ledger.manager.js.map +1 -0
  172. package/managers/slow-query-verifier.manager.d.ts +144 -0
  173. package/managers/slow-query-verifier.manager.js +3857 -0
  174. package/managers/slow-query-verifier.manager.js.map +1 -0
  175. package/managers/slow-query.manager.d.ts +28 -0
  176. package/managers/slow-query.manager.js +468 -0
  177. package/managers/slow-query.manager.js.map +1 -0
  178. package/managers/subscription.manager.d.ts +169 -0
  179. package/managers/subscription.manager.js +3434 -0
  180. package/managers/subscription.manager.js.map +1 -0
  181. package/managers/websocket.manager.d.ts +73 -0
  182. package/managers/websocket.manager.js +673 -0
  183. package/managers/websocket.manager.js.map +1 -0
  184. package/managers/worker-dispatcher.manager.d.ts +120 -0
  185. package/managers/worker-dispatcher.manager.js +1266 -0
  186. package/managers/worker-dispatcher.manager.js.map +1 -0
  187. package/managers/worker-server.manager.d.ts +35 -0
  188. package/managers/worker-server.manager.js +582 -0
  189. package/managers/worker-server.manager.js.map +1 -0
  190. package/methods/accounts.d.ts +2 -0
  191. package/methods/accounts.js +624 -0
  192. package/methods/accounts.js.map +1 -0
  193. package/methods/ai-terminal.d.ts +336 -0
  194. package/methods/ai-terminal.js +22782 -0
  195. package/methods/ai-terminal.js.map +1 -0
  196. package/methods/app-settings.d.ts +2 -0
  197. package/methods/app-settings.js +169 -0
  198. package/methods/app-settings.js.map +1 -0
  199. package/methods/aws.d.ts +2 -0
  200. package/methods/aws.js +877 -0
  201. package/methods/aws.js.map +1 -0
  202. package/methods/collections.d.ts +2 -0
  203. package/methods/collections.js +719 -0
  204. package/methods/collections.js.map +1 -0
  205. package/methods/counters.d.ts +2 -0
  206. package/methods/counters.js +113 -0
  207. package/methods/counters.js.map +1 -0
  208. package/methods/cron-jobs.d.ts +2 -0
  209. package/methods/cron-jobs.js +2475 -0
  210. package/methods/cron-jobs.js.map +1 -0
  211. package/methods/customer-notifications.d.ts +2 -0
  212. package/methods/customer-notifications.js +528 -0
  213. package/methods/customer-notifications.js.map +1 -0
  214. package/methods/diagnostics.d.ts +2 -0
  215. package/methods/diagnostics.js +703 -0
  216. package/methods/diagnostics.js.map +1 -0
  217. package/methods/flag-updates.d.ts +2 -0
  218. package/methods/flag-updates.js +8 -0
  219. package/methods/flag-updates.js.map +1 -0
  220. package/methods/flags.d.ts +2 -0
  221. package/methods/flags.js +8 -0
  222. package/methods/flags.js.map +1 -0
  223. package/methods/logs.d.ts +2 -0
  224. package/methods/logs.js +751 -0
  225. package/methods/logs.js.map +1 -0
  226. package/methods/mongo-explorer.d.ts +2 -0
  227. package/methods/mongo-explorer.js +1808 -0
  228. package/methods/mongo-explorer.js.map +1 -0
  229. package/methods/monitor.d.ts +2 -0
  230. package/methods/monitor.js +543 -0
  231. package/methods/monitor.js.map +1 -0
  232. package/methods/pdf.d.ts +2 -0
  233. package/methods/pdf.js +1216 -0
  234. package/methods/pdf.js.map +1 -0
  235. package/methods/publications.d.ts +1 -0
  236. package/methods/publications.js +183 -0
  237. package/methods/publications.js.map +1 -0
  238. package/methods/report-builder.d.ts +2 -0
  239. package/methods/report-builder.js +3094 -0
  240. package/methods/report-builder.js.map +1 -0
  241. package/methods/support.d.ts +2 -0
  242. package/methods/support.js +430 -0
  243. package/methods/support.js.map +1 -0
  244. package/models/ai-terminal-conversation.model.d.ts +17 -0
  245. package/models/ai-terminal-conversation.model.js +4 -0
  246. package/models/ai-terminal-conversation.model.js.map +1 -0
  247. package/models/ai-terminal-issue-report.model.d.ts +19 -0
  248. package/models/ai-terminal-issue-report.model.js +4 -0
  249. package/models/ai-terminal-issue-report.model.js.map +1 -0
  250. package/models/ai-terminal-message.model.d.ts +22 -0
  251. package/models/ai-terminal-message.model.js +4 -0
  252. package/models/ai-terminal-message.model.js.map +1 -0
  253. package/models/app-setting.model.d.ts +16 -0
  254. package/models/app-setting.model.js +4 -0
  255. package/models/app-setting.model.js.map +1 -0
  256. package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
  257. package/models/app-status.model.js +4 -0
  258. package/models/app-status.model.js.map +1 -0
  259. package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
  260. package/models/billing-logged-in-users.model.js +4 -0
  261. package/models/billing-logged-in-users.model.js.map +1 -0
  262. package/models/collection-document.model.d.ts +21 -0
  263. package/models/collection-document.model.js +4 -0
  264. package/models/collection-document.model.js.map +1 -0
  265. package/models/communication-metric.model.d.ts +20 -0
  266. package/models/communication-metric.model.js +4 -0
  267. package/models/communication-metric.model.js.map +1 -0
  268. package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
  269. package/models/counter.model.js +4 -0
  270. package/models/counter.model.js.map +1 -0
  271. package/models/cron-job-history.model.d.ts +15 -0
  272. package/models/cron-job-history.model.js +4 -0
  273. package/models/cron-job-history.model.js.map +1 -0
  274. package/models/cron-job.model.d.ts +14 -0
  275. package/models/cron-job.model.js +4 -0
  276. package/models/cron-job.model.js.map +1 -0
  277. package/models/customer-notification.model.d.ts +26 -0
  278. package/models/customer-notification.model.js +4 -0
  279. package/models/customer-notification.model.js.map +1 -0
  280. package/models/customer-portal-password.model.d.ts +11 -0
  281. package/models/customer-portal-password.model.js +4 -0
  282. package/models/customer-portal-password.model.js.map +1 -0
  283. package/models/dialog.model.d.ts +23 -0
  284. package/models/dialog.model.js +4 -0
  285. package/models/dialog.model.js.map +1 -0
  286. package/models/email-history.model.d.ts +31 -0
  287. package/{src/models/email-history.model.ts → models/email-history.model.js} +4 -35
  288. package/models/email-history.model.js.map +1 -0
  289. package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
  290. package/models/email-verified.model.js +4 -0
  291. package/models/email-verified.model.js.map +1 -0
  292. package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
  293. package/models/file.model.js +4 -0
  294. package/models/file.model.js.map +1 -0
  295. package/{src/models/flag-update.model.ts → models/flag-update.model.d.ts} +3 -4
  296. package/models/flag-update.model.js +4 -0
  297. package/models/flag-update.model.js.map +1 -0
  298. package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
  299. package/models/flag.model.js +4 -0
  300. package/models/flag.model.js.map +1 -0
  301. package/models/log-method-latency.model.d.ts +10 -0
  302. package/models/log-method-latency.model.js +4 -0
  303. package/models/log-method-latency.model.js.map +1 -0
  304. package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +9 -11
  305. package/models/log-subscription.model.js +4 -0
  306. package/models/log-subscription.model.js.map +1 -0
  307. package/models/log.model.d.ts +17 -0
  308. package/models/log.model.js +4 -0
  309. package/models/log.model.js.map +1 -0
  310. package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
  311. package/models/logged-in-users.model.js +4 -0
  312. package/models/logged-in-users.model.js.map +1 -0
  313. package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
  314. package/models/method-response.model.js +4 -0
  315. package/models/method-response.model.js.map +1 -0
  316. package/models/method.model.d.ts +26 -0
  317. package/models/method.model.js +4 -0
  318. package/models/method.model.js.map +1 -0
  319. package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
  320. package/models/monitor-cpu.model.js +4 -0
  321. package/models/monitor-cpu.model.js.map +1 -0
  322. package/models/monitor-function.model.d.ts +14 -0
  323. package/models/monitor-function.model.js +4 -0
  324. package/models/monitor-function.model.js.map +1 -0
  325. package/models/monitor-memory.model.d.ts +15 -0
  326. package/models/monitor-memory.model.js +4 -0
  327. package/models/monitor-memory.model.js.map +1 -0
  328. package/models/monitor-mongo.model.d.ts +13 -0
  329. package/models/monitor-mongo.model.js +4 -0
  330. package/models/monitor-mongo.model.js.map +1 -0
  331. package/{src/models/notification.model.ts → models/notification.model.d.ts} +4 -6
  332. package/models/notification.model.js +4 -0
  333. package/models/notification.model.js.map +1 -0
  334. package/models/openai-usage-ledger.model.d.ts +15 -0
  335. package/models/openai-usage-ledger.model.js +4 -0
  336. package/models/openai-usage-ledger.model.js.map +1 -0
  337. package/models/pagination.model.d.ts +11 -0
  338. package/models/pagination.model.js +28 -0
  339. package/models/pagination.model.js.map +1 -0
  340. package/models/permission.model.d.ts +12 -0
  341. package/models/permission.model.js +4 -0
  342. package/models/permission.model.js.map +1 -0
  343. package/models/report-builder-dashboard-builder.model.d.ts +25 -0
  344. package/models/report-builder-dashboard-builder.model.js +4 -0
  345. package/models/report-builder-dashboard-builder.model.js.map +1 -0
  346. package/models/report-builder-library.model.d.ts +17 -0
  347. package/models/report-builder-library.model.js +4 -0
  348. package/models/report-builder-library.model.js.map +1 -0
  349. package/models/report-builder-report.model.d.ts +121 -0
  350. package/models/report-builder-report.model.js +4 -0
  351. package/models/report-builder-report.model.js.map +1 -0
  352. package/models/report-builder.model.d.ts +61 -0
  353. package/models/report-builder.model.js +4 -0
  354. package/models/report-builder.model.js.map +1 -0
  355. package/models/select-data-label.model.d.ts +9 -0
  356. package/models/select-data-label.model.js +4 -0
  357. package/models/select-data-label.model.js.map +1 -0
  358. package/models/server-message.model.d.ts +32 -0
  359. package/models/server-message.model.js +4 -0
  360. package/models/server-message.model.js.map +1 -0
  361. package/models/slow-query-report.model.d.ts +23 -0
  362. package/models/slow-query-report.model.js +4 -0
  363. package/models/slow-query-report.model.js.map +1 -0
  364. package/models/subscription.model.d.ts +31 -0
  365. package/models/subscription.model.js +4 -0
  366. package/models/subscription.model.js.map +1 -0
  367. package/models/support-ticket.model.d.ts +87 -0
  368. package/models/support-ticket.model.js +4 -0
  369. package/models/support-ticket.model.js.map +1 -0
  370. package/models/user-group.model.d.ts +20 -0
  371. package/models/user-group.model.js +4 -0
  372. package/models/user-group.model.js.map +1 -0
  373. package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
  374. package/models/user-guide.model.js +4 -0
  375. package/models/user-guide.model.js.map +1 -0
  376. package/models/user.model.d.ts +84 -0
  377. package/models/user.model.js +4 -0
  378. package/models/user.model.js.map +1 -0
  379. package/package.json +1 -1
  380. package/private/images/ResolveIO.png +0 -0
  381. package/public_api.js +115 -0
  382. package/public_api.js.map +1 -0
  383. package/publications/ai-terminal.d.ts +1 -0
  384. package/publications/ai-terminal.js +122 -0
  385. package/publications/ai-terminal.js.map +1 -0
  386. package/publications/app-settings.d.ts +2 -0
  387. package/publications/app-settings.js +28 -0
  388. package/publications/app-settings.js.map +1 -0
  389. package/publications/app-status.d.ts +2 -0
  390. package/publications/app-status.js +16 -0
  391. package/publications/app-status.js.map +1 -0
  392. package/publications/cron-jobs.d.ts +2 -0
  393. package/publications/cron-jobs.js +88 -0
  394. package/publications/cron-jobs.js.map +1 -0
  395. package/publications/customer-notifications.d.ts +2 -0
  396. package/publications/customer-notifications.js +161 -0
  397. package/publications/customer-notifications.js.map +1 -0
  398. package/publications/files.d.ts +2 -0
  399. package/publications/files.js +36 -0
  400. package/publications/files.js.map +1 -0
  401. package/publications/flags-update.d.ts +2 -0
  402. package/publications/flags-update.js +22 -0
  403. package/publications/flags-update.js.map +1 -0
  404. package/publications/flags.d.ts +2 -0
  405. package/publications/flags.js +22 -0
  406. package/publications/flags.js.map +1 -0
  407. package/publications/logs.d.ts +2 -0
  408. package/publications/logs.js +164 -0
  409. package/publications/logs.js.map +1 -0
  410. package/publications/notifications.d.ts +2 -0
  411. package/publications/notifications.js +16 -0
  412. package/publications/notifications.js.map +1 -0
  413. package/publications/report-builder-dashboard-builders.d.ts +2 -0
  414. package/publications/report-builder-dashboard-builders.js +42 -0
  415. package/publications/report-builder-dashboard-builders.js.map +1 -0
  416. package/publications/report-builder-libraries.d.ts +2 -0
  417. package/publications/report-builder-libraries.js +90 -0
  418. package/publications/report-builder-libraries.js.map +1 -0
  419. package/publications/report-builder-reports.d.ts +2 -0
  420. package/publications/report-builder-reports.js +50 -0
  421. package/publications/report-builder-reports.js.map +1 -0
  422. package/publications/super-admin.d.ts +2 -0
  423. package/publications/super-admin.js +16 -0
  424. package/publications/super-admin.js.map +1 -0
  425. package/publications/user-groups.d.ts +1 -0
  426. package/publications/user-groups.js +16 -0
  427. package/publications/user-groups.js.map +1 -0
  428. package/publications/user-guides.d.ts +1 -0
  429. package/publications/user-guides.js +16 -0
  430. package/publications/user-guides.js.map +1 -0
  431. package/resolveio-server-app.d.ts +70 -0
  432. package/resolveio-server-app.js +801 -0
  433. package/resolveio-server-app.js.map +1 -0
  434. package/server-app.d.ts +228 -0
  435. package/server-app.js +3566 -0
  436. package/server-app.js.map +1 -0
  437. package/services/codex-client.d.ts +126 -0
  438. package/services/codex-client.js +1622 -0
  439. package/services/codex-client.js.map +1 -0
  440. package/services/openai-client.d.ts +46 -0
  441. package/services/openai-client.js +318 -0
  442. package/services/openai-client.js.map +1 -0
  443. package/types/error-report.d.ts +25 -0
  444. package/types/error-report.js +4 -0
  445. package/types/error-report.js.map +1 -0
  446. package/types/slow-query-report.d.ts +27 -0
  447. package/types/slow-query-report.js +6 -0
  448. package/types/slow-query-report.js.map +1 -0
  449. package/util/ai-qa-policy.d.ts +119 -0
  450. package/util/ai-qa-policy.js +650 -0
  451. package/util/ai-qa-policy.js.map +1 -0
  452. package/util/ai-runner-artifacts.d.ts +74 -0
  453. package/util/ai-runner-artifacts.js +531 -0
  454. package/util/ai-runner-artifacts.js.map +1 -0
  455. package/util/ai-runner-qa-auth.d.ts +5 -0
  456. package/util/ai-runner-qa-auth.js +338 -0
  457. package/util/ai-runner-qa-auth.js.map +1 -0
  458. package/util/ai-runner-qa-tools.d.ts +16 -0
  459. package/util/ai-runner-qa-tools.js +530 -0
  460. package/util/ai-runner-qa-tools.js.map +1 -0
  461. package/util/common.d.ts +31 -0
  462. package/util/common.js +683 -0
  463. package/util/common.js.map +1 -0
  464. package/util/customer-portal-password.d.ts +13 -0
  465. package/util/customer-portal-password.js +209 -0
  466. package/util/customer-portal-password.js.map +1 -0
  467. package/util/error-reporter.d.ts +52 -0
  468. package/util/error-reporter.js +326 -0
  469. package/util/error-reporter.js.map +1 -0
  470. package/util/error-tracking.d.ts +13 -0
  471. package/util/error-tracking.js +120 -0
  472. package/util/error-tracking.js.map +1 -0
  473. package/util/report-builder-unwinds.d.ts +15 -0
  474. package/util/report-builder-unwinds.js +156 -0
  475. package/util/report-builder-unwinds.js.map +1 -0
  476. package/util/schema-report-builder.d.ts +6 -0
  477. package/util/schema-report-builder.js +481 -0
  478. package/util/schema-report-builder.js.map +1 -0
  479. package/util/slow-query-reporter.d.ts +28 -0
  480. package/util/slow-query-reporter.js +226 -0
  481. package/util/slow-query-reporter.js.map +1 -0
  482. package/util/subscription-dependency-context.d.ts +34 -0
  483. package/util/subscription-dependency-context.js +1283 -0
  484. package/util/subscription-dependency-context.js.map +1 -0
  485. package/util/tokenizer.d.ts +5 -0
  486. package/util/tokenizer.js +41 -0
  487. package/util/tokenizer.js.map +1 -0
  488. package/workers/codex-runner.worker.d.ts +1 -0
  489. package/workers/codex-runner.worker.js +192 -0
  490. package/workers/codex-runner.worker.js.map +1 -0
  491. package/.nodemon.json +0 -5
  492. package/.vscode/settings.json +0 -21
  493. package/AGENTS.md +0 -189
  494. package/README.md +0 -22
  495. package/build_package.sh +0 -5
  496. package/compileDTS.pl +0 -64
  497. package/docs/ai-assistant-nightly-eval.md +0 -65
  498. package/docs/ai-assistant-preflight-checklist.md +0 -23
  499. package/docs/ai-assistant-report-builder-bridge-playbook.md +0 -115
  500. package/eslint-plugin-custom/index.js +0 -7
  501. package/eslint-plugin-custom/rules/no-filter-zero-index.js +0 -44
  502. package/eslint.config.js +0 -103
  503. package/gulpfile.js +0 -216
  504. package/methodAndPublicationListGenerator.py +0 -375
  505. package/mongodbensurers.js +0 -2
  506. package/mongostop.js +0 -3
  507. package/scripts/cleanup-bypassed-callmethod-logs.js +0 -616
  508. package/settings.development.json +0 -25
  509. package/settings.development.redacted.json +0 -25
  510. package/src/.env +0 -12
  511. package/src/ai/assistant-core-heuristics.ts +0 -379
  512. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +0 -185
  513. package/src/ai/resolveio-platform-intelligence-memory.ts +0 -325
  514. package/src/ai/resolveio-platform-intelligence.ts +0 -462
  515. package/src/client-server-app.ts +0 -12
  516. package/src/collections/ai-terminal-conversation.collection.ts +0 -91
  517. package/src/collections/ai-terminal-issue-report.collection.ts +0 -99
  518. package/src/collections/ai-terminal-message.collection.ts +0 -77
  519. package/src/collections/app-setting.collection.ts +0 -104
  520. package/src/collections/app-status.collection.ts +0 -58
  521. package/src/collections/communication-metric.collection.ts +0 -84
  522. package/src/collections/counter.collection.ts +0 -56
  523. package/src/collections/cron-job-history.collection.ts +0 -94
  524. package/src/collections/cron-job.collection.ts +0 -92
  525. package/src/collections/customer-notification.collection.ts +0 -131
  526. package/src/collections/customer-portal-password.collection.ts +0 -76
  527. package/src/collections/email-history.collection.ts +0 -127
  528. package/src/collections/email-verified.collection.ts +0 -62
  529. package/src/collections/file.collection.ts +0 -74
  530. package/src/collections/flag-update.collection.ts +0 -57
  531. package/src/collections/flag.collection.ts +0 -57
  532. package/src/collections/log-method-latency.collection.ts +0 -77
  533. package/src/collections/log-subscription.collection.ts +0 -80
  534. package/src/collections/log.collection.ts +0 -93
  535. package/src/collections/logged-in-users.collection.ts +0 -67
  536. package/src/collections/monitor-cpu.collection.ts +0 -65
  537. package/src/collections/monitor-function.collection.ts +0 -74
  538. package/src/collections/monitor-memory.collection.ts +0 -77
  539. package/src/collections/monitor-mongo.collection.ts +0 -71
  540. package/src/collections/notification.collection.ts +0 -57
  541. package/src/collections/openai-usage-ledger.collection.ts +0 -77
  542. package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
  543. package/src/collections/report-builder-library.collection.ts +0 -89
  544. package/src/collections/report-builder-report.collection.ts +0 -184
  545. package/src/collections/user-group.collection.ts +0 -89
  546. package/src/collections/user-guide.collection.ts +0 -57
  547. package/src/collections/user.collection.ts +0 -181
  548. package/src/cron/cron.ts +0 -117
  549. package/src/fixtures/cron-jobs.ts +0 -95
  550. package/src/fixtures/init.ts +0 -35
  551. package/src/http/auth.ts +0 -764
  552. package/src/http/health.ts +0 -7
  553. package/src/http/home.ts +0 -90
  554. package/src/http/slow-query-publication.ts +0 -49
  555. package/src/index.ts +0 -1
  556. package/src/managers/ai-assistant-codex-manager.manager.ts +0 -1131
  557. package/src/managers/communication-metric.manager.ts +0 -82
  558. package/src/managers/cron.manager.ts +0 -333
  559. package/src/managers/customer-notification-content.manager.ts +0 -236
  560. package/src/managers/diagnostic-manager-bootstrap.ts +0 -165
  561. package/src/managers/error-auto-fix.manager.ts +0 -2767
  562. package/src/managers/local-log.manager.ts +0 -113
  563. package/src/managers/method.manager.ts +0 -1827
  564. package/src/managers/mongo.manager.ts +0 -4575
  565. package/src/managers/monitor.manager.ts +0 -507
  566. package/src/managers/openai-usage-ledger.manager.ts +0 -116
  567. package/src/managers/slow-query-verifier.manager.ts +0 -3590
  568. package/src/managers/slow-query.manager.ts +0 -519
  569. package/src/managers/subscription.manager.ts +0 -3128
  570. package/src/managers/websocket.manager.ts +0 -746
  571. package/src/managers/worker-dispatcher.manager.ts +0 -1360
  572. package/src/managers/worker-server.manager.ts +0 -536
  573. package/src/methods/accounts.ts +0 -532
  574. package/src/methods/ai-terminal.ts +0 -23043
  575. package/src/methods/app-settings.ts +0 -114
  576. package/src/methods/aws.ts +0 -649
  577. package/src/methods/collections.ts +0 -641
  578. package/src/methods/counters.ts +0 -69
  579. package/src/methods/cron-jobs.ts +0 -2614
  580. package/src/methods/customer-notifications.ts +0 -458
  581. package/src/methods/diagnostics.ts +0 -616
  582. package/src/methods/flag-updates.ts +0 -7
  583. package/src/methods/flags.ts +0 -7
  584. package/src/methods/logs.ts +0 -657
  585. package/src/methods/mongo-explorer.ts +0 -1880
  586. package/src/methods/monitor.ts +0 -540
  587. package/src/methods/pdf.ts +0 -1236
  588. package/src/methods/publications.ts +0 -129
  589. package/src/methods/report-builder.ts +0 -3300
  590. package/src/methods/support.ts +0 -335
  591. package/src/models/ai-terminal-conversation.model.ts +0 -19
  592. package/src/models/ai-terminal-issue-report.model.ts +0 -21
  593. package/src/models/ai-terminal-message.model.ts +0 -24
  594. package/src/models/app-setting.model.ts +0 -17
  595. package/src/models/collection-document.model.ts +0 -24
  596. package/src/models/communication-metric.model.ts +0 -23
  597. package/src/models/cron-job-history.model.ts +0 -16
  598. package/src/models/cron-job.model.ts +0 -15
  599. package/src/models/customer-notification.model.ts +0 -28
  600. package/src/models/customer-portal-password.model.ts +0 -12
  601. package/src/models/dialog.model.ts +0 -25
  602. package/src/models/log-method-latency.model.ts +0 -11
  603. package/src/models/log.model.ts +0 -19
  604. package/src/models/method.model.ts +0 -25
  605. package/src/models/monitor-function.model.ts +0 -16
  606. package/src/models/monitor-memory.model.ts +0 -17
  607. package/src/models/monitor-mongo.model.ts +0 -15
  608. package/src/models/openai-usage-ledger.model.ts +0 -16
  609. package/src/models/pagination.model.ts +0 -35
  610. package/src/models/permission.model.ts +0 -14
  611. package/src/models/report-builder-dashboard-builder.model.ts +0 -29
  612. package/src/models/report-builder-library.model.ts +0 -20
  613. package/src/models/report-builder-report.model.ts +0 -136
  614. package/src/models/report-builder.model.ts +0 -68
  615. package/src/models/select-data-label.model.ts +0 -9
  616. package/src/models/server-message.model.ts +0 -31
  617. package/src/models/slow-query-report.model.ts +0 -23
  618. package/src/models/subscription.model.ts +0 -73
  619. package/src/models/support-ticket.model.ts +0 -104
  620. package/src/models/user-group.model.ts +0 -24
  621. package/src/models/user.model.ts +0 -96
  622. package/src/private/images/ResolveIO.png +0 -0
  623. package/src/publications/ai-terminal.ts +0 -73
  624. package/src/publications/app-settings.ts +0 -25
  625. package/src/publications/app-status.ts +0 -13
  626. package/src/publications/cron-jobs.ts +0 -40
  627. package/src/publications/customer-notifications.ts +0 -101
  628. package/src/publications/files.ts +0 -33
  629. package/src/publications/flags-update.ts +0 -19
  630. package/src/publications/flags.ts +0 -19
  631. package/src/publications/logs.ts +0 -163
  632. package/src/publications/notifications.ts +0 -13
  633. package/src/publications/report-builder-dashboard-builders.ts +0 -39
  634. package/src/publications/report-builder-libraries.ts +0 -41
  635. package/src/publications/report-builder-reports.ts +0 -47
  636. package/src/publications/super-admin.ts +0 -13
  637. package/src/publications/user-groups.ts +0 -12
  638. package/src/publications/user-guides.ts +0 -12
  639. package/src/resolveio-server-app.ts +0 -617
  640. package/src/server-app.ts +0 -3354
  641. package/src/services/codex-client.ts +0 -1223
  642. package/src/services/openai-client.ts +0 -265
  643. package/src/types/error-report.ts +0 -26
  644. package/src/types/js-tiktoken.d.ts +0 -11
  645. package/src/types/slow-query-report.ts +0 -28
  646. package/src/util/ai-qa-policy.ts +0 -812
  647. package/src/util/ai-runner-artifacts.ts +0 -430
  648. package/src/util/ai-runner-qa-auth.ts +0 -337
  649. package/src/util/ai-runner-qa-tools.ts +0 -538
  650. package/src/util/common.ts +0 -649
  651. package/src/util/customer-portal-password.ts +0 -183
  652. package/src/util/error-reporter.ts +0 -332
  653. package/src/util/error-tracking.ts +0 -79
  654. package/src/util/report-builder-unwinds.ts +0 -180
  655. package/src/util/schema-report-builder.ts +0 -448
  656. package/src/util/slow-query-reporter.ts +0 -216
  657. package/src/util/subscription-dependency-context.ts +0 -1096
  658. package/src/util/tokenizer.ts +0 -38
  659. package/src/workers/codex-runner.worker.ts +0 -142
  660. package/start_server.sh +0 -5
  661. package/tests/ai-assistant-corpus-build.ts +0 -484
  662. package/tests/ai-assistant-corpus-replay-e2e.ts +0 -774
  663. package/tests/ai-assistant-data-parity-e2e.ts +0 -1989
  664. package/tests/ai-assistant-eval-triage.ts +0 -831
  665. package/tests/ai-assistant-openai-e2e.ts +0 -1061
  666. package/tests/ai-assistant-openai-git-e2e.ts +0 -155
  667. package/tests/ai-assistant-preflight-matrix.ts +0 -215
  668. package/tests/ai-assistant-routing-eval.test.ts +0 -560
  669. package/tests/ai-assistant-snf-live-eval.ts +0 -975
  670. package/tests/ai-assistant-utils.test.ts +0 -2860
  671. package/tests/ai-runner-contract.test.ts +0 -199
  672. package/tests/error-reporter.test.ts +0 -145
  673. package/tests/method-publication-generator.test.ts +0 -46
  674. package/tests/report-builder-linking.test.ts +0 -79
  675. package/tests/resolveio-platform-intelligence.test.ts +0 -352
  676. package/tests/server-app-cron-owner.test.ts +0 -127
  677. package/tests/subscription-connect-race.test.ts +0 -158
  678. package/tests/subscription-dependency-context.test.ts +0 -324
  679. package/tests/subscription-manager-collection-tracking.test.ts +0 -86
  680. package/tests/subscription-manager-invalidation.test.ts +0 -86
  681. package/tsconfig.json +0 -34
  682. /package/{src/private → private}/email-templates/enrollment.html +0 -0
  683. /package/{src/private → private}/email-templates/forgot-password.html +0 -0
  684. /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
  685. /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
  686. /package/{src/private → private}/email-templates/support-ticket.html +0 -0
  687. /package/{src/public_api.ts → public_api.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/subscription-dependency-context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wDAmCC;AAED,kEAOC;AAED,sEAOC;AAED,sDAqBC;AAED,wDAqDC;AAED,kEA+EC;AA9PD,2CAAgD;AAChD,mCAAoC;AAuCpC,IAAM,iBAAiB,GAAG,IAAI,+BAAiB,EAAqB,CAAC;AAErE,SAAsB,sBAAsB,CAAI,EAAoB,EAAE,QAA6B;;;;;;;oBAC5F,OAAO,GAAsB;wBAClC,YAAY,EAAE,IAAI,GAAG,EAAE;wBACvB,OAAO,EAAE,IAAI,GAAG,EAAE;wBAClB,mBAAmB,EAAE,IAAI,GAAG,EAAE;wBAC9B,aAAa,EAAE,IAAI,GAAG,EAAE;qBACxB,CAAC;oBAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,CAAC;wBAC3B,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;oBAC5C,CAAC;oBAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB,CAAC,EAAE,CAAC;wBAC/C,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC9D,CAAC;oBAED,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAClC,CAAC;oBAID,qBAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE;;;4CAC3B,qBAAM,EAAE,EAAE,EAAA;;wCAAnB,MAAM,GAAG,SAAU,CAAC;;;;6BACpB,CAAC,EAAA;;oBAFF,SAEE,CAAC;oBAEH,sBAAO;4BACN,MAAM,QAAA;4BACN,QAAQ,EAAE;gCACT,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC;gCACtD,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;gCACxC,mBAAmB,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC;gCACzD,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC;6BACvD;yBACD,EAAC;;;;CACF;AAED,SAAgB,2BAA2B,CAAC,QAAmC;IAC9E,OAAO;QACN,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAiB;gBAAjB,KAAA,aAAiB,EAAhB,UAAU,QAAA,EAAE,GAAG,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAA7B,CAA6B,CAAC;QACnH,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAqB;gBAArB,KAAA,aAAqB,EAApB,UAAU,QAAA,EAAE,OAAO,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;QAA/B,CAA+B,CAAC;QAC/G,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC7D,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAkB;gBAAlB,KAAA,aAAkB,EAAjB,UAAU,QAAA,EAAE,IAAI,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,CAAC;QAA5B,CAA4B,CAAC;KACrH,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B,CAAC,QAAsC;IACnF,OAAO;QACN,YAAY,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,EAAiB;gBAAjB,KAAA,aAAiB,EAAhB,UAAU,QAAA,EAAE,GAAG,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAA1B,CAA0B,CAAC,CAAC;QACnG,OAAO,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,EAAqB;gBAArB,KAAA,aAAqB,EAApB,UAAU,QAAA,EAAE,OAAO,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;QAA/B,CAA+B,CAAC,CAAC;QAClG,mBAAmB,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1D,aAAa,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,EAAkB;gBAAlB,KAAA,aAAkB,EAAjB,UAAU,QAAA,EAAE,IAAI,QAAA;YAAM,OAAA,CAAC,UAAU,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,CAAC;QAA5B,CAA4B,CAAC,CAAC;KACxG,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB;IACpC,IAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,MAAe,EAAE,OAA4C;;IACvH,IAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;IACR,CAAC;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,UAAU,GAAG,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QACnB,IAAI,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE,CAAC;QAClC,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;;YAED,KAAiB,IAAA,QAAA,SAAA,GAAG,CAAA,wBAAA,yCAAE,CAAC;gBAAlB,IAAM,EAAE,gBAAA;gBACZ,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;;;;;;;;;IACF,CAAC;SACI,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE,CAAC;QAC3B,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC;AAED,SAAgB,2BAA2B,CAAC,UAAkB,EAAE,QAAe,EAAE,MAAe;;IAC/F,IAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;IACR,CAAC;IAED,IAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAM,aAAa,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,IAAM,WAAW,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IACrF,IAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE;QAC1C,MAAM,EAAE,WAAW,IAAI,SAAS;QAChC,IAAI,MAAA;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,kCAAkC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO;IACR,CAAC;;QAED,KAAqB,IAAA,kBAAA,SAAA,aAAa,CAAA,4CAAA,uEAAE,CAAC;YAAhC,IAAM,MAAM,0BAAA;YAChB,IAAM,YAAY,GAAc,EAAE,CAAC;YACnC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACrD,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAM,eAAe,GAAU,EAAE,CAAC;YAClC,IAAI,kBAAkB,GAAG,KAAK,CAAC;;gBAE/B,KAAsB,IAAA,4BAAA,SAAA,QAAQ,CAAA,CAAA,kCAAA,wDAAE,CAAC;oBAA5B,IAAM,OAAO,qBAAA;oBACX,IAAA,KAA+C,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,EAA/E,mBAAmB,aAAA,EAAE,UAAU,gBAAgD,CAAC;oBACjG,IAAI,UAAU,EAAE,CAAC;wBAChB,kBAAkB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBACD,IAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,EAAE,CAAC;wBACjC,eAAe,CAAC,IAAI,OAApB,eAAe,2BAAS,mBAAmB,WAAE;oBAC9C,CAAC;gBACF,CAAC;;;;;;;;;YAED,IAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAEjF,IAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YAE7D,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAM,YAAY,GAAG,kCAAkC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;oBACzE,KAA6B,IAAA,yCAAA,SAAA,qBAAqB,CAAA,CAAA,4DAAA,+FAAE,CAAC;wBAAhD,IAAM,cAAc,kCAAA;wBACxB,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;oBACzF,CAAC;;;;;;;;;gBACD,SAAS;YACV,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;gBACpC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;gBACpD,SAAS;YACV,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,kBAAkB,EAAE,CAAC;oBACxB,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACtD,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;qBACI,CAAC;oBACL,sEAAsE;oBACtE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;QACF,CAAC;;;;;;;;;AACF,CAAC;AAED,SAAS,kCAAkC,CAAC,QAAe;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAU;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAe;;IAC5C,IAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IAChB,CAAC;;QAED,KAAoB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;YAA1B,IAAM,KAAK,qBAAA;YACf,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjE,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC7B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACtE,OAAO,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,UAAU,EAAE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;wBACjF,YAAY,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;wBACvF,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;wBAC1E,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;qBACtE,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;;;;;;;;;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAe;;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAM,OAAO,GAAU,EAAE,CAAC;;QAE1B,KAAoB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;YAA1B,IAAM,KAAK,qBAAA;YACf,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;;;;;;;;;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAW,EAAE,aAA0B;IACnE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAA,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAS,EAAE,aAA0B;;IAChE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IAAM,cAAc,GAAG,IAAI;aACzB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAxC,CAAwC,CAAC;aACtD,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAEjC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAM,MAAM,GAAG,EAAE,CAAC;;QAElB,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAAvC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACrB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAM,iBAAiB,GAAG,KAAK;yBAC7B,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAxC,CAAwC,CAAC;yBACtD,MAAM,CAAC,sBAAsB,CAAC,CAAC;oBAEjC,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;wBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC;oBACjC,CAAC;gBACF,CAAC;gBAED,SAAS;YACV,CAAC;YAED,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,SAAS;YACV,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;;;;;;;;;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAe;;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,IAAI,GAAG,IAAI,CAAC;;QAEhB,KAAoB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;YAA1B,IAAM,KAAK,qBAAA;YACf,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACtB,CAAC;iBACI,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,CAAC;iBACI,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC1D,IAAI,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;;;;;;;;;IAED,IAAM,IAAI,GAAc,EAAE,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,kCAAkC,CAAC,QAAe;;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,IAAI,GAAG,IAAI,CAAC;;QAEhB,KAAoB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;YAA1B,IAAM,KAAK,qBAAA;YACf,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACtB,CAAC;iBACI,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,CAAC;iBACI,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC1D,IAAI,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;;;;;;;;;IAED,IAAM,IAAI,GAAc,EAAE,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe,EAAE,IAAY,EAAE,MAAiB;;IAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;YAC3B,KAAmB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAvB,IAAM,IAAI,mBAAA;gBACd,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACR,CAAC;IAED,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,uBAAuB,CAAC,MAAiC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA8B,EAAE,IAAc,EAAE,KAAa,EAAE,MAAiB;;IAChH,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO;IACR,CAAC;IAED,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;IACR,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;YAC5B,KAAmB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;gBAAxB,IAAM,IAAI,oBAAA;gBACd,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,uBAAuB,CAAC,IAA+B,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnF,CAAC;YACF,CAAC;;;;;;;;;IACF,CAAC;SACI,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjD,uBAAuB,CAAC,OAAkC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAe,EAAE,UAAmB,EAAE,YAAqB;;IACrF,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;QACC,GAAC,YAAY,IAAG;YACf,GAAG,EAAE,YAAY;SACjB;WACA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAe,EAAE,IAAc,EAAE,KAAa,EAAE,MAAa;;IACxF,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;YAC3B,KAAmB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAvB,IAAM,IAAI,mBAAA;gBACd,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACR,CAAC;IAED,IAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,IAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;IACR,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;YAC5B,KAAmB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;gBAAxB,IAAM,IAAI,oBAAA;gBACd,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;;;;;;;;;IACF,CAAC;SACI,CAAC;QACL,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAa,EAAE,KAAU;;IACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;;YAC1B,KAAmB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE,CAAC;gBAAtB,IAAM,IAAI,kBAAA;gBACd,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAa;;IACxC,IAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;;QAEtC,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;YAAxB,IAAM,KAAK,mBAAA;YACf,IAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;;;;;;;;;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC1F,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,WAAM,CAAC;YACN,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe,EAAE,GAAgB,EAAE,OAA+B;;IAA/B,wBAAA,EAAA,cAAc,OAAO,EAAU;IAC/F,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;YAC3B,KAAmB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAvB,IAAM,IAAI,mBAAA;gBACd,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACR,CAAC;IAED,IAAM,YAAY,GAAG,MAAiC,CAAC;IAEvD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEnD,IAAI,YAAY,EAAE,CAAC;QAClB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,CAAC;;QAED,KAAoB,IAAA,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAA7C,IAAM,KAAK,WAAA;YACf,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClE,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC;;;;;;;;;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe,EAAE,GAAgB;;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;YAC3B,KAAmB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAvB,IAAM,IAAI,mBAAA;gBACd,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACR,CAAC;IAED,IAAM,YAAY,GAAG,MAAiC,CAAC;IAEvD,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACpC,yBAAyB,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;;QAED,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAA/C,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACrB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;;wBAC1B,KAAmB,IAAA,0BAAA,SAAA,KAAK,CAAA,CAAA,4BAAA,+CAAE,CAAC;4BAAtB,IAAM,IAAI,kBAAA;4BACd,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBACjC,CAAC;;;;;;;;;gBACF,CAAC;YACF,CAAC;iBACI,IAAI,GAAG,KAAK,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9D,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;;;;;;;;;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,GAAgB;;IAClE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;;YAC1B,KAAmB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE,CAAC;gBAAtB,IAAM,IAAI,kBAAA;gBACd,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;;YAC/B,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAAnE,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBACrB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBACvD,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;qBACI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;oBACzC,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;qBACI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBAC5D,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;qBACI,CAAC;oBACL,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;;;;;;;;;QACD,OAAO;IACR,CAAC;IAED,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAM,QAAQ,GAAG,KAAgE,CAAC;QAElF,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAChD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;gBACtC,OAAO,GAAG,CAAC;YACZ,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkC;;IAC7D,IAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;;QAE9C,KAAgC,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE,CAAC;YAA1C,IAAA,KAAA,mBAAiB,EAAhB,UAAU,QAAA,EAAE,GAAG,QAAA;YAC1B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;;;;;;;;;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B;;IACnD,IAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;;QAExC,KAAoC,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE,CAAC;YAA9C,IAAA,KAAA,mBAAqB,EAApB,UAAU,QAAA,EAAE,OAAO,QAAA;YAC9B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAhB,CAAgB,CAAC,CAAC,CAAC;QACjE,CAAC;;;;;;;;;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAkC;;IAC5D,IAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;;QAE9C,KAAqC,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE,CAAC;YAA/C,IAAA,KAAA,mBAAsB,EAArB,UAAU,QAAA,EAAE,QAAQ,QAAA;YAC/B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAA,iBAAQ,EAAC,IAAI,CAAC,EAAd,CAAc,CAAC,CAAC,CAAC;QAC9D,CAAC;;;;;;;;;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAGD,SAAS,0BAA0B,CAAC,OAAY,EAAE,MAAoB;;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IAEF,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAA/B,CAA+B,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC,CAAC;IAE7G,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,IAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,IAAM,eAAe,GAAG,EAAE,CAAC;;QAE3B,KAAuB,IAAA,gBAAA,SAAA,WAAW,CAAA,wCAAA,iEAAE,CAAC;YAAxB,IAAA,IAAI,6BAAA;YAChB,IAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YAChD,IAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAErG,IAAI,iBAAiB,CAAC,UAAU,IAAI,8BAA8B,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YAED,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;;;;;;;;;IAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAe,EAAE,cAAqB,EAAE,OAAY,EAAE,MAA2B;IACtH,IAAI,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAApC,CAAoC,CAAC,CAAC;IAE5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC/B,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACP,CAAC;YAED,IAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YAChD,IAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAE7G,IAAI,iBAAiB,CAAC,UAAU,IAAI,8BAA8B,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjF,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACP,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;aACI,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjC,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACP,CAAC;aACI,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjC,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACP,CAAC;IACF,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,YAAA,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,YAAA,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,YAAA,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAY,EAAE,MAA2B;;IACrE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;IAED,IAAM,MAAM,GAAG,EAAE,CAAC;;QAElB,KAAgC,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAA9C,IAAA,KAAA,mBAAiB,EAAhB,GAAG,QAAA,EAAE,UAAU,QAAA;YAC1B,IAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAE9D,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;QAChC,CAAC;;;;;;;;;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAA,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAY,EAAE,UAAe;IAC3D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,IAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACjE,CAAC;aACI,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;aACI,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;aACI,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACjE,CAAC;aACI,CAAC;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAC9C,CAAC;IACF,CAAC;SACI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;SACI,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAS,EAAE,SAA8B,EAAE,OAAY,EAAE,KAA8B;;IACtH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAvD,CAAuD,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,IAAM,MAAM,GAAG,EAAE,CAAC;;YAElB,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAAvC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;;;;;;;;;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC9D,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAS;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,8BAA8B,CAAC,IAAI,CAAC,EAApC,CAAoC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,8BAA8B,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,MAAW,EAAE,IAAY;;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,MAAM,CAAC;;QAErB,KAAsB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;YAA5B,IAAM,OAAO,qBAAA;YACjB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/C,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC1D,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;iBACI,CAAC;gBACL,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;;;;;;;;;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAW;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAU;;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAd,CAAc,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;;YAEvC,KAAkB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE,CAAC;gBAApB,IAAM,GAAG,iBAAA;gBACb,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;;;;;;;;;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,OAAc;;IACpC,IAAM,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;;QAEnC,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;YAA1B,IAAM,MAAM,oBAAA;YAChB,IAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;;;;;;;;;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACjC,CAAC","file":"subscription-dependency-context.js","sourcesContent":["import { AsyncLocalStorage } from 'async_hooks';\nimport { deepCopy } from './common';\n\nexport interface QueryMeta {\n\tlimit?: number;\n\tskip?: number;\n\tsort?: any;\n}\n\nexport interface DependencyContextSnapshot {\n\tdependencies: Map<string, Set<string>>;\n\tfilters: Map<string, any[]>;\n\twatchAllCollections: Set<string>;\n\tqueryMetadata: Map<string, QueryMeta[]>;\n}\n\nexport interface SerializedDependencySnapshot {\n\tdependencies: Array<[string, string[]]>;\n\tfilters: Array<[string, any[]]>;\n\twatchAllCollections: string[];\n\tqueryMetadata: Array<[string, QueryMeta[]]>;\n}\n\nexport interface PublicationContext {\n\tpublication?: string;\n\tsubscriptionData?: any[];\n\tuserId?: string;\n}\n\ninterface LookupTarget {\n\tfrom: string;\n\tas: string;\n\tlocalField?: string;\n\tforeignField?: string;\n\tlet?: Record<string, any>;\n\tpipeline?: any[];\n}\n\ninterface DependencyContext extends DependencyContextSnapshot, PublicationContext {}\n\nconst dependencyStorage = new AsyncLocalStorage<DependencyContext>();\n\nexport async function withDependencyTracking<T>(fn: () => Promise<T>, metadata?: PublicationContext): Promise<{ result: T; snapshot: DependencyContextSnapshot }> {\n\tconst context: DependencyContext = {\n\t\tdependencies: new Map(),\n\t\tfilters: new Map(),\n\t\twatchAllCollections: new Set(),\n\t\tqueryMetadata: new Map()\n\t};\n\n\tif (metadata?.publication) {\n\t\tcontext.publication = metadata.publication;\n\t}\n\n\tif (Array.isArray(metadata?.subscriptionData)) {\n\t\tcontext.subscriptionData = metadata.subscriptionData.slice();\n\t}\n\n\tif (metadata?.userId) {\n\t\tcontext.userId = metadata.userId;\n\t}\n\n\tlet result: T;\n\n\tawait dependencyStorage.run(context, async () => {\n\t\tresult = await fn();\n\t});\n\n\treturn {\n\t\tresult,\n\t\tsnapshot: {\n\t\t\tdependencies: cloneDependencyMap(context.dependencies),\n\t\t\tfilters: cloneFilterMap(context.filters),\n\t\t\twatchAllCollections: new Set(context.watchAllCollections),\n\t\t\tqueryMetadata: cloneQueryMetaMap(context.queryMetadata)\n\t\t}\n\t};\n}\n\nexport function serializeDependencySnapshot(snapshot: DependencyContextSnapshot): SerializedDependencySnapshot {\n\treturn {\n\t\tdependencies: Array.from(snapshot.dependencies.entries()).map(([collection, ids]) => [collection, Array.from(ids)]),\n\t\tfilters: Array.from(snapshot.filters.entries()).map(([collection, filters]) => [collection, deepCopy(filters)]),\n\t\twatchAllCollections: Array.from(snapshot.watchAllCollections),\n\t\tqueryMetadata: Array.from(snapshot.queryMetadata.entries()).map(([collection, meta]) => [collection, deepCopy(meta)])\n\t};\n}\n\nexport function deserializeDependencySnapshot(snapshot: SerializedDependencySnapshot): DependencyContextSnapshot {\n\treturn {\n\t\tdependencies: new Map(snapshot.dependencies.map(([collection, ids]) => [collection, new Set(ids)])),\n\t\tfilters: new Map(snapshot.filters.map(([collection, filters]) => [collection, deepCopy(filters)])),\n\t\twatchAllCollections: new Set(snapshot.watchAllCollections),\n\t\tqueryMetadata: new Map(snapshot.queryMetadata.map(([collection, meta]) => [collection, deepCopy(meta)]))\n\t};\n}\n\nexport function getPublicationContext(): PublicationContext {\n\tconst context = dependencyStorage.getStore();\n\tif (!context) {\n\t\treturn {};\n\t}\n\n\tconst snapshot: PublicationContext = {};\n\n\tif (context.publication) {\n\t\tsnapshot.publication = context.publication;\n\t}\n\n\tif (Array.isArray(context.subscriptionData)) {\n\t\tsnapshot.subscriptionData = context.subscriptionData.slice();\n\t}\n\n\tif (context.userId) {\n\t\tsnapshot.userId = context.userId;\n\t}\n\n\treturn snapshot;\n}\n\nexport function recordDependencyResult(collection: string, result: unknown, options?: { filter?: any, meta?: QueryMeta }) {\n\tconst context = dependencyStorage.getStore();\n\n\tif (!context) {\n\t\treturn;\n\t}\n\n\tif (options?.filter) {\n\t\tlet filterList = context.filters.get(collection);\n\n\t\tif (!filterList) {\n\t\t\tfilterList = [];\n\t\t\tcontext.filters.set(collection, filterList);\n\t\t}\n\n\t\tfilterList.push(deepCopy(options.filter));\n\t\tcontext.watchAllCollections.delete(collection);\n\t}\n\n\tif (options?.meta) {\n\t\tlet metaList = context.queryMetadata.get(collection);\n\n\t\tif (!metaList) {\n\t\t\tmetaList = [];\n\t\t\tcontext.queryMetadata.set(collection, metaList);\n\t\t}\n\n\t\tmetaList.push(deepCopy(options.meta));\n\t}\n\n\tconst ids = new Set<string>();\n\tcollectIdsFromResult(result, ids);\n\n\tif (!ids.size && options?.filter) {\n\t\tcollectIdsFromFilter(options.filter, ids);\n\t}\n\n\tif (ids.size) {\n\t\tcontext.watchAllCollections.delete(collection);\n\t\tlet existing = context.dependencies.get(collection);\n\n\t\tif (!existing) {\n\t\t\texisting = new Set();\n\t\t\tcontext.dependencies.set(collection, existing);\n\t\t}\n\n\t\tfor (const id of ids) {\n\t\t\texisting.add(id);\n\t\t}\n\t}\n\telse if (!options?.filter) {\n\t\tcontext.watchAllCollections.add(collection);\n\t}\n}\n\nexport function recordAggregateDependencies(collection: string, pipeline: any[], result: unknown) {\n\tconst context = dependencyStorage.getStore();\n\n\tif (!context) {\n\t\treturn;\n\t}\n\n\tconst lookupTargets = extractLookupTargets(pipeline);\n\tconst lookupAliases = new Set<string>(lookupTargets.map(target => target.as).filter(Boolean));\n\tconst matchFilter = sanitizeMatchFilter(extractMatchFilter(pipeline), lookupAliases);\n\tconst meta = extractAggregateMeta(pipeline);\n\trecordDependencyResult(collection, result, {\n\t\tfilter: matchFilter || undefined,\n\t\tmeta\n\t});\n\n\tif (!matchFilter) {\n\t\tcontext.watchAllCollections.add(collection);\n\t}\n\n\tif (shouldWatchAllForAggregatePipeline(pipeline)) {\n\t\tcontext.watchAllCollections.add(collection);\n\t}\n\n\tif (!lookupTargets.length) {\n\t\treturn;\n\t}\n\n\tfor (const target of lookupTargets) {\n\t\tconst nestedValues: unknown[] = [];\n\t\tcollectLookupValues(result, target.as, nestedValues);\n\t\tconst rootDocs = Array.isArray(result) ? result : [result];\n\t\tconst pipelineFilters: any[] = [];\n\t\tlet pipelineUnresolved = false;\n\n\t\tfor (const rootDoc of rootDocs) {\n\t\t\tconst { filters: filtersFromPipeline, unresolved } = buildLookupPipelineFilters(rootDoc, target);\n\t\t\tif (unresolved) {\n\t\t\t\tpipelineUnresolved = true;\n\t\t\t}\n\t\t\tif (filtersFromPipeline?.length) {\n\t\t\t\tpipelineFilters.push(...filtersFromPipeline);\n\t\t\t}\n\t\t}\n\n\t\tconst filter = buildLookupFilter(result, target.localField, target.foreignField);\n\n\t\tconst uniquePipelineFilters = dedupeFilters(pipelineFilters);\n\n\t\tif (nestedValues.length) {\n\t\t\trecordDependencyResult(target.from, nestedValues, filter ? { filter } : undefined);\n\t\t}\n\n\t\tif (uniquePipelineFilters.length) {\n\t\t\tconst pipelineMeta = extractAggregationMetaFromPipeline(target.pipeline);\n\t\t\tfor (const pipelineFilter of uniquePipelineFilters) {\n\t\t\t\trecordDependencyResult(target.from, [], { filter: pipelineFilter, meta: pipelineMeta });\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!nestedValues.length && filter) {\n\t\t\trecordDependencyResult(target.from, [], { filter });\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!nestedValues.length) {\n\t\t\tif (pipelineUnresolved) {\n\t\t\t\tcontext.watchAllCollections.add(target.from);\n\t\t\t}\n\t\t\telse if (!target.pipeline || !target.pipeline.length) {\n\t\t\t\tcontext.watchAllCollections.add(target.from);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Lookup pipeline exists, but we could not derive stable filters/ids.\n\t\t\t\tcontext.watchAllCollections.add(target.from);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction shouldWatchAllForAggregatePipeline(pipeline: any[]): boolean {\n\tif (!Array.isArray(pipeline)) {\n\t\treturn false;\n\t}\n\n\treturn pipeline.some(stage => isCardinalityChangingStage(stage));\n}\n\nfunction isCardinalityChangingStage(stage: any): boolean {\n\tif (!stage || typeof stage !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (stage.$group && typeof stage.$group === 'object') {\n\t\treturn true;\n\t}\n\n\tif (stage.$count !== undefined) {\n\t\treturn true;\n\t}\n\n\tif (stage.$facet && typeof stage.$facet === 'object') {\n\t\treturn true;\n\t}\n\n\tif (stage.$bucket && typeof stage.$bucket === 'object') {\n\t\treturn true;\n\t}\n\n\tif (stage.$bucketAuto && typeof stage.$bucketAuto === 'object') {\n\t\treturn true;\n\t}\n\n\tif (stage.$sortByCount !== undefined) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction extractLookupTargets(pipeline: any[]): LookupTarget[] {\n\tconst lookups: LookupTarget[] = [];\n\n\tif (!Array.isArray(pipeline)) {\n\t\treturn lookups;\n\t}\n\n\tfor (const stage of pipeline) {\n\t\tif (stage && stage.$lookup && typeof stage.$lookup === 'object') {\n\t\t\tconst lookup = stage.$lookup;\n\t\t\tif (typeof lookup.from === 'string' && typeof lookup.as === 'string') {\n\t\t\t\tlookups.push({\n\t\t\t\t\tfrom: lookup.from,\n\t\t\t\t\tas: lookup.as,\n\t\t\t\t\tlocalField: typeof lookup.localField === 'string' ? lookup.localField : undefined,\n\t\t\t\t\tforeignField: typeof lookup.foreignField === 'string' ? lookup.foreignField : undefined,\n\t\t\t\t\tlet: lookup.let && typeof lookup.let === 'object' ? lookup.let : undefined,\n\t\t\t\t\tpipeline: Array.isArray(lookup.pipeline) ? lookup.pipeline : undefined\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn lookups;\n}\n\nfunction extractMatchFilter(pipeline: any[]): any {\n\tif (!Array.isArray(pipeline)) {\n\t\treturn null;\n\t}\n\n\tconst filters: any[] = [];\n\n\tfor (const stage of pipeline) {\n\t\tif (stage && stage.$match && typeof stage.$match === 'object') {\n\t\t\tfilters.push(deepCopy(stage.$match));\n\t\t}\n\t}\n\n\tif (!filters.length) {\n\t\treturn null;\n\t}\n\n\tif (filters.length === 1) {\n\t\treturn filters[0];\n\t}\n\n\treturn { $and: filters };\n}\n\nfunction sanitizeMatchFilter(filter: any, lookupAliases: Set<string>) {\n\tif (!filter || !lookupAliases?.size) {\n\t\treturn filter;\n\t}\n\n\treturn sanitizeFilterNode(filter, lookupAliases);\n}\n\nfunction sanitizeFilterNode(node: any, lookupAliases: Set<string>): any {\n\tif (!node) {\n\t\treturn null;\n\t}\n\n\tif (Array.isArray(node)) {\n\t\tconst sanitizedArray = node\n\t\t\t.map(entry => sanitizeFilterNode(entry, lookupAliases))\n\t\t\t.filter(isMeaningfulFilterNode);\n\n\t\treturn sanitizedArray.length ? sanitizedArray : null;\n\t}\n\n\tif (typeof node !== 'object') {\n\t\treturn node;\n\t}\n\n\tconst result = {};\n\n\tfor (const [key, value] of Object.entries(node)) {\n\t\tif (key === '$and' || key === '$or' || key === '$nor') {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tconst sanitizedChildren = value\n\t\t\t\t\t.map(entry => sanitizeFilterNode(entry, lookupAliases))\n\t\t\t\t\t.filter(isMeaningfulFilterNode);\n\n\t\t\t\tif (sanitizedChildren.length) {\n\t\t\t\t\tresult[key] = sanitizedChildren;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst rootKey = key.split('.')[0];\n\n\t\tif (lookupAliases.has(rootKey)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tresult[key] = value;\n\t}\n\n\treturn Object.keys(result).length ? result : null;\n}\n\nfunction isMeaningfulFilterNode(node: any) {\n\tif (!node) {\n\t\treturn false;\n\t}\n\n\tif (Array.isArray(node)) {\n\t\treturn node.length > 0;\n\t}\n\n\tif (typeof node !== 'object') {\n\t\treturn true;\n\t}\n\n\treturn Object.keys(node).length > 0;\n}\n\nfunction extractAggregateMeta(pipeline: any[]): QueryMeta {\n\tif (!Array.isArray(pipeline)) {\n\t\treturn null;\n\t}\n\n\tlet limit = undefined;\n\tlet skip = undefined;\n\tlet sort = null;\n\n\tfor (const stage of pipeline) {\n\t\tif (stage?.$limit !== undefined && typeof stage.$limit === 'number') {\n\t\t\tlimit = stage.$limit;\n\t\t}\n\t\telse if (stage?.$skip !== undefined && typeof stage.$skip === 'number') {\n\t\t\tskip = stage.$skip;\n\t\t}\n\t\telse if (stage?.$sort && typeof stage.$sort === 'object') {\n\t\t\tsort = deepCopy(stage.$sort);\n\t\t}\n\t}\n\n\tconst meta: QueryMeta = {};\n\n\tif (limit !== undefined) {\n\t\tmeta.limit = limit;\n\t}\n\n\tif (skip !== undefined) {\n\t\tmeta.skip = skip;\n\t}\n\n\tif (sort) {\n\t\tmeta.sort = sort;\n\t}\n\n\treturn Object.keys(meta).length ? meta : null;\n}\n\nfunction extractAggregationMetaFromPipeline(pipeline: any[]): QueryMeta {\n\tif (!Array.isArray(pipeline)) {\n\t\treturn null;\n\t}\n\n\tlet limit = undefined;\n\tlet skip = undefined;\n\tlet sort = null;\n\n\tfor (const stage of pipeline) {\n\t\tif (stage?.$limit !== undefined && typeof stage.$limit === 'number') {\n\t\t\tlimit = stage.$limit;\n\t\t}\n\t\telse if (stage?.$skip !== undefined && typeof stage.$skip === 'number') {\n\t\t\tskip = stage.$skip;\n\t\t}\n\t\telse if (stage?.$sort && typeof stage.$sort === 'object') {\n\t\t\tsort = deepCopy(stage.$sort);\n\t\t}\n\t}\n\n\tconst meta: QueryMeta = {};\n\n\tif (limit !== undefined) {\n\t\tmeta.limit = limit;\n\t}\n\n\tif (skip !== undefined) {\n\t\tmeta.skip = skip;\n\t}\n\n\tif (sort) {\n\t\tmeta.sort = sort;\n\t}\n\n\treturn Object.keys(meta).length ? meta : null;\n}\n\nfunction collectLookupValues(source: unknown, path: string, output: unknown[]) {\n\tif (!source) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(source)) {\n\t\tfor (const item of source) {\n\t\t\tcollectLookupValues(item, path, output);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof source !== 'object') {\n\t\treturn;\n\t}\n\n\tconst pathSegments = path.split('.');\n\tcollectLookupPathValues(source as Record<string, unknown>, pathSegments, 0, output);\n}\n\nfunction collectLookupPathValues(value: Record<string, unknown>, path: string[], index: number, output: unknown[]) {\n\tif (!value) {\n\t\treturn;\n\t}\n\n\tconst current = value[path[index]];\n\n\tif (current === undefined) {\n\t\treturn;\n\t}\n\n\tif (index === path.length - 1) {\n\t\toutput.push(current);\n\t\treturn;\n\t}\n\n\tif (Array.isArray(current)) {\n\t\tfor (const item of current) {\n\t\t\tif (item && typeof item === 'object') {\n\t\t\t\tcollectLookupPathValues(item as Record<string, unknown>, path, index + 1, output);\n\t\t\t}\n\t\t}\n\t}\n\telse if (current && typeof current === 'object') {\n\t\tcollectLookupPathValues(current as Record<string, unknown>, path, index + 1, output);\n\t}\n}\n\nfunction buildLookupFilter(result: unknown, localField?: string, foreignField?: string) {\n\tif (!localField || !foreignField) {\n\t\treturn null;\n\t}\n\n\tconst values: any[] = [];\n\tconst segments = localField.split('.');\n\tcollectFieldValues(result, segments, 0, values);\n\n\tconst uniqueValues = dedupeFilterValues(values);\n\n\tif (!uniqueValues.length) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\t[foreignField]: {\n\t\t\t$in: uniqueValues\n\t\t}\n\t};\n}\n\nfunction collectFieldValues(source: unknown, path: string[], index: number, output: any[]) {\n\tif (!source) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(source)) {\n\t\tfor (const item of source) {\n\t\t\tcollectFieldValues(item, path, index, output);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof source !== 'object') {\n\t\treturn;\n\t}\n\n\tconst obj = source as Record<string, unknown>;\n\tconst key = path[index];\n\tconst current = obj[key];\n\n\tif (current === undefined) {\n\t\treturn;\n\t}\n\n\tif (index === path.length - 1) {\n\t\tappendFilterValue(output, current);\n\t\treturn;\n\t}\n\n\tif (Array.isArray(current)) {\n\t\tfor (const item of current) {\n\t\t\tcollectFieldValues(item, path, index + 1, output);\n\t\t}\n\t}\n\telse {\n\t\tcollectFieldValues(current, path, index + 1, output);\n\t}\n}\n\nfunction appendFilterValue(output: any[], value: any) {\n\tif (value === undefined || value === null) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) {\n\t\t\tappendFilterValue(output, item);\n\t\t}\n\t\treturn;\n\t}\n\n\toutput.push(value);\n}\n\nfunction dedupeFilterValues(values: any[]): any[] {\n\tconst unique = new Map<string, any>();\n\n\tfor (const value of values) {\n\t\tconst key = serializeFilterValue(value);\n\t\tif (!unique.has(key)) {\n\t\t\tunique.set(key, value);\n\t\t}\n\t}\n\n\treturn Array.from(unique.values());\n}\n\nfunction serializeFilterValue(value: any): string {\n\tif (value === null || value === undefined) {\n\t\treturn 'null';\n\t}\n\n\tif (typeof value === 'object') {\n\t\tif (typeof value.toHexString === 'function') {\n\t\t\treturn value.toHexString();\n\t\t}\n\n\t\tif (value instanceof Date) {\n\t\t\treturn value.toISOString();\n\t\t}\n\n\t\tif (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n\t\t\treturn value.toString();\n\t\t}\n\n\t\ttry {\n\t\t\treturn JSON.stringify(value);\n\t\t}\n\t\tcatch {\n\t\t\treturn '[object]';\n\t\t}\n\t}\n\n\treturn String(value);\n}\n\nfunction collectIdsFromResult(source: unknown, ids: Set<string>, visited = new WeakSet<object>()) {\n\tif (!source) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(source)) {\n\t\tfor (const item of source) {\n\t\t\tcollectIdsFromResult(item, ids, visited);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof source !== 'object') {\n\t\treturn;\n\t}\n\n\tconst objectSource = source as Record<string, unknown>;\n\n\tif (visited.has(objectSource)) {\n\t\treturn;\n\t}\n\n\tvisited.add(objectSource);\n\n\tconst normalizedId = normalizeId(objectSource._id);\n\n\tif (normalizedId) {\n\t\tids.add(normalizedId);\n\t}\n\n\tfor (const value of Object.values(objectSource)) {\n\t\tif (value && (typeof value === 'object' || Array.isArray(value))) {\n\t\t\tcollectIdsFromResult(value, ids, visited);\n\t\t}\n\t}\n}\n\nfunction collectIdsFromFilter(filter: unknown, ids: Set<string>) {\n\tif (!filter) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(filter)) {\n\t\tfor (const item of filter) {\n\t\t\tcollectIdsFromFilter(item, ids);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof filter !== 'object') {\n\t\treturn;\n\t}\n\n\tconst filterObject = filter as Record<string, unknown>;\n\n\tif (filterObject._id !== undefined) {\n\t\tcollectIdsFromFilterValue(filterObject._id, ids);\n\t}\n\n\tfor (const [key, value] of Object.entries(filterObject)) {\n\t\tif (key === '$or' || key === '$and' || key === '$nor') {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\tcollectIdsFromFilter(item, ids);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (key !== '_id' && value && typeof value === 'object') {\n\t\t\tcollectIdsFromFilter(value, ids);\n\t\t}\n\t}\n}\n\nfunction collectIdsFromFilterValue(value: unknown, ids: Set<string>) {\n\tif (value === null || value === undefined) {\n\t\treturn;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) {\n\t\t\tcollectIdsFromFilterValue(item, ids);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof value === 'object') {\n\t\tfor (const [key, inner] of Object.entries(value as Record<string, unknown>)) {\n\t\t\tif (key === '$in' || key === '$nin' || key === '$all') {\n\t\t\t\tcollectIdsFromFilterValue(inner, ids);\n\t\t\t}\n\t\t\telse if (key === '$eq' || key === '$ne') {\n\t\t\t\tcollectIdsFromFilterValue(inner, ids);\n\t\t\t}\n\t\t\telse if (key === '$or' || key === '$and' || key === '$nor') {\n\t\t\t\tcollectIdsFromFilterValue(inner, ids);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcollectIdsFromFilterValue(inner, ids);\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\n\tconst normalized = normalizeId(value);\n\n\tif (normalized) {\n\t\tids.add(normalized);\n\t}\n}\n\nfunction normalizeId(value: unknown): string {\n\tif (value === null || value === undefined) {\n\t\treturn null;\n\t}\n\n\tif (typeof value === 'string') {\n\t\tconst trimmed = value.trim();\n\t\treturn trimmed.length ? trimmed : null;\n\t}\n\n\tif (typeof value === 'number' || typeof value === 'bigint') {\n\t\treturn value.toString();\n\t}\n\n\tif (typeof value === 'object') {\n\t\tconst objValue = value as { toHexString?: () => string, toString?: () => string };\n\n\t\tif (typeof objValue.toHexString === 'function') {\n\t\t\treturn objValue.toHexString();\n\t\t}\n\n\t\tif (value instanceof Date) {\n\t\t\treturn value.toISOString();\n\t\t}\n\n\t\tif (typeof objValue.toString === 'function') {\n\t\t\tconst str = objValue.toString();\n\t\t\tif (str && str !== '[object Object]') {\n\t\t\t\treturn str;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction cloneDependencyMap(original: Map<string, Set<string>>): Map<string, Set<string>> {\n\tconst cloned = new Map<string, Set<string>>();\n\n\tfor (const [collection, ids] of original.entries()) {\n\t\tcloned.set(collection, new Set(ids));\n\t}\n\n\treturn cloned;\n}\n\nfunction cloneFilterMap(original: Map<string, any[]>): Map<string, any[]> {\n\tconst cloned = new Map<string, any[]>();\n\n\tfor (const [collection, filters] of original.entries()) {\n\t\tcloned.set(collection, filters.map(filter => deepCopy(filter)));\n\t}\n\n\treturn cloned;\n}\n\nfunction cloneQueryMetaMap(original: Map<string, QueryMeta[]>): Map<string, QueryMeta[]> {\n\tconst cloned = new Map<string, QueryMeta[]>();\n\n\tfor (const [collection, metaList] of original.entries()) {\n\t\tcloned.set(collection, metaList.map(meta => deepCopy(meta)));\n\t}\n\n\treturn cloned;\n}\n\n\nfunction buildLookupPipelineFilters(rootDoc: any, target: LookupTarget): { filters: any[], unresolved: boolean } {\n\tif (!target.pipeline || !target.pipeline.length) {\n\t\treturn { filters: [], unresolved: false };\n\t}\n\nconst matchStages = target.pipeline.map(stage => ({ stage, base: stage.$match })).filter(entry => entry.base);\n\n\tif (!matchStages.length) {\n\t\treturn buildLookupPipelineFromStack(target.pipeline, [], rootDoc, target.let);\n\t}\n\n\tconst letValuesResult = resolveLetVariables(rootDoc, target.let);\n\n\tif (!letValuesResult.resolved) {\n\t\treturn { filters: [], unresolved: true };\n\t}\n\n\tconst combinedMatches = [];\n\n\tfor (const { base } of matchStages) {\n\t\tconst substitutionState = { unresolved: false };\n\t\tconst substituted = substituteLetVariables(base, letValuesResult.values, rootDoc, substitutionState);\n\n\t\tif (substitutionState.unresolved || containsUnresolvedLetReference(substituted)) {\n\t\t\treturn { filters: [], unresolved: true };\n\t\t}\n\n\t\tcombinedMatches.push(substituted);\n\t}\n\n\tif (!combinedMatches.length) {\n\t\treturn buildLookupPipelineFromStack(target.pipeline, [], rootDoc, target.let);\n\t}\n\n\tif (combinedMatches.length === 1) {\n\t\treturn { filters: [combinedMatches[0]], unresolved: false };\n\t}\n\n\treturn { filters: [{ $and: combinedMatches }], unresolved: false };\n}\n\nfunction buildLookupPipelineFromStack(pipeline: any[], initialFilters: any[], rootDoc: any, letMap: Record<string, any>) {\n\tlet currentFilters = initialFilters.slice();\n\tlet unresolved = false;\n\n\tconst entries = pipeline.map(stage => stage ? Object.keys(stage)[0] : null);\n\n\tfor (let i = 0; i < pipeline.length; i++) {\n\t\tconst stage = pipeline[i];\n\t\tconst stageType = entries[i];\n\n\t\tif (stageType === '$match' && stage.$match) {\n\t\t\tconst letValuesResult = resolveLetVariables(rootDoc, letMap);\n\t\t\tif (!letValuesResult.resolved) {\n\t\t\t\tunresolved = true;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst substitutionState = { unresolved: false };\n\t\t\tconst substituted = substituteLetVariables(stage.$match, letValuesResult.values, rootDoc, substitutionState);\n\n\t\t\tif (substitutionState.unresolved || containsUnresolvedLetReference(substituted)) {\n\t\t\t\tunresolved = true;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcurrentFilters.push(substituted);\n\t\t}\n\t\telse if (stageType === '$match') {\n\t\t\tunresolved = true;\n\t\t\tbreak;\n\t\t}\n\t\telse if (stageType === '$facet') {\n\t\t\tunresolved = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!currentFilters.length) {\n\t\treturn { filters: [], unresolved };\n\t}\n\n\tif (currentFilters.length === 1) {\n\t\treturn { filters: currentFilters, unresolved };\n\t}\n\n\treturn { filters: [{ $and: currentFilters }], unresolved };\n}\n\nfunction resolveLetVariables(rootDoc: any, letMap: Record<string, any>) {\n\tif (!letMap || typeof letMap !== 'object') {\n\t\treturn { resolved: true, values: {} };\n\t}\n\n\tconst values = {};\n\n\tfor (const [key, expression] of Object.entries(letMap)) {\n\t\tconst evaluation = evaluateLetExpression(rootDoc, expression);\n\n\t\tif (!evaluation.resolved) {\n\t\t\treturn { resolved: false, values: null };\n\t\t}\n\n\t\tvalues[key] = evaluation.value;\n\t}\n\n\treturn { resolved: true, values };\n}\n\nfunction evaluateLetExpression(rootDoc: any, expression: any): { resolved: boolean, value: any } {\n\tif (typeof expression === 'string') {\n\t\tif (expression.startsWith('$$ROOT.')) {\n\t\t\tconst path = expression.slice('$$ROOT.'.length);\n\t\t\treturn { resolved: true, value: getValueByPath(rootDoc, path) };\n\t\t}\n\t\telse if (expression === '$$ROOT') {\n\t\t\treturn { resolved: true, value: rootDoc };\n\t\t}\n\t\telse if (expression.startsWith('$$')) {\n\t\t\treturn { resolved: false, value: null };\n\t\t}\n\t\telse if (expression.startsWith('$')) {\n\t\t\tconst path = expression.slice(1);\n\t\t\treturn { resolved: true, value: getValueByPath(rootDoc, path) };\n\t\t}\n\t\telse {\n\t\t\treturn { resolved: true, value: expression };\n\t\t}\n\t}\n\telse if (Array.isArray(expression)) {\n\t\treturn { resolved: false, value: null };\n\t}\n\telse if (expression && typeof expression === 'object') {\n\t\treturn { resolved: false, value: null };\n\t}\n\n\treturn { resolved: true, value: expression };\n}\n\nfunction substituteLetVariables(node: any, letValues: Record<string, any>, rootDoc: any, state: { unresolved: boolean }) {\n\tif (Array.isArray(node)) {\n\t\treturn node.map(item => substituteLetVariables(item, letValues, rootDoc, state));\n\t}\n\n\tif (node && typeof node === 'object') {\n\t\tconst output = {};\n\n\t\tfor (const [key, value] of Object.entries(node)) {\n\t\t\toutput[key] = substituteLetVariables(value, letValues, rootDoc, state);\n\t\t}\n\n\t\treturn output;\n\t}\n\n\tif (typeof node === 'string') {\n\t\tif (node.startsWith('$$ROOT.')) {\n\t\t\tconst path = node.slice('$$ROOT.'.length);\n\t\t\treturn getValueByPath(rootDoc, path);\n\t\t}\n\n\t\tif (node === '$$ROOT') {\n\t\t\treturn rootDoc;\n\t\t}\n\n\t\tif (node.startsWith('$$')) {\n\t\t\tconst varName = node.slice(2);\n\n\t\t\tif (Object.prototype.hasOwnProperty.call(letValues, varName)) {\n\t\t\t\treturn letValues[varName];\n\t\t\t}\n\n\t\t\tstate.unresolved = true;\n\t\t\treturn node;\n\t\t}\n\t}\n\n\treturn node;\n}\n\nfunction containsUnresolvedLetReference(node: any): boolean {\n\tif (typeof node === 'string') {\n\t\treturn node.includes('$$');\n\t}\n\n\tif (Array.isArray(node)) {\n\t\treturn node.some(item => containsUnresolvedLetReference(item));\n\t}\n\n\tif (node && typeof node === 'object') {\n\t\treturn Object.values(node).some(value => containsUnresolvedLetReference(value));\n\t}\n\n\treturn false;\n}\n\nfunction getValueByPath(source: any, path: string) {\n\tif (!source || !path) {\n\t\treturn undefined;\n\t}\n\n\tconst segments = path.split('.');\n\tlet current = source;\n\n\tfor (const segment of segments) {\n\t\tif (current === null || current === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (Array.isArray(current)) {\n\t\t\tconst index = parseInt(segment, 10);\n\n\t\t\tif (isNaN(index) || index < 0 || index >= current.length) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tcurrent = current[index];\n\t\t}\n\t\telse {\n\t\t\tcurrent = current[segment];\n\t\t}\n\t}\n\n\treturn current;\n}\n\nfunction canonicalizeFilter(filter: any): string {\n\treturn JSON.stringify(sortKeys(filter));\n}\n\nfunction sortKeys(value: any): any {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(item => sortKeys(item));\n\t}\n\n\tif (value && typeof value === 'object') {\n\t\tconst sorted = {};\n\t\tconst keys = Object.keys(value).sort();\n\n\t\tfor (const key of keys) {\n\t\t\tsorted[key] = sortKeys(value[key]);\n\t\t}\n\n\t\treturn sorted;\n\t}\n\n\treturn value;\n}\n\nfunction dedupeFilters(filters: any[]): any[] {\n\tconst map = new Map<string, any>();\n\n\tfor (const filter of filters) {\n\t\tconst key = canonicalizeFilter(filter);\n\n\t\tif (!map.has(key)) {\n\t\t\tmap.set(key, filter);\n\t\t}\n\t}\n\n\treturn Array.from(map.values());\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const countTokens: (text: string, model?: string) => number;
2
+ export declare const countChatTokens: (messages: Array<{
3
+ role: string;
4
+ content: string;
5
+ }>, model?: string) => number;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.countChatTokens = exports.countTokens = void 0;
4
+ var js_tiktoken_1 = require("js-tiktoken");
5
+ var DEFAULT_ENCODING = 'o200k_base';
6
+ var resolveEncoding = function (model) {
7
+ var normalized = String(model || '').trim();
8
+ if (normalized) {
9
+ try {
10
+ return (0, js_tiktoken_1.encodingForModel)(normalized);
11
+ }
12
+ catch (_a) { }
13
+ }
14
+ return (0, js_tiktoken_1.getEncoding)(DEFAULT_ENCODING);
15
+ };
16
+ var countTokens = function (text, model) {
17
+ var encoding = resolveEncoding(model);
18
+ try {
19
+ var tokens = encoding.encode(text || '');
20
+ return tokens.length;
21
+ }
22
+ finally {
23
+ var maybeEncoding = encoding;
24
+ if (typeof (maybeEncoding === null || maybeEncoding === void 0 ? void 0 : maybeEncoding.free) === 'function') {
25
+ maybeEncoding.free();
26
+ }
27
+ else if (typeof (maybeEncoding === null || maybeEncoding === void 0 ? void 0 : maybeEncoding.dispose) === 'function') {
28
+ maybeEncoding.dispose();
29
+ }
30
+ }
31
+ };
32
+ exports.countTokens = countTokens;
33
+ var countChatTokens = function (messages, model) {
34
+ var flattened = (messages || [])
35
+ .map(function (msg) { return "".concat((msg === null || msg === void 0 ? void 0 : msg.role) || 'user', ":\n").concat((msg === null || msg === void 0 ? void 0 : msg.content) || ''); })
36
+ .join('\n\n');
37
+ return (0, exports.countTokens)(flattened, model);
38
+ };
39
+ exports.countChatTokens = countChatTokens;
40
+
41
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/tokenizer.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AAEtE,IAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,IAAM,eAAe,GAAG,UAAC,KAAc;IACtC,IAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,OAAO,IAAA,8BAAgB,EAAC,UAAiB,CAAC,CAAC;QAC5C,CAAC;QACD,WAAM,CAAC,CAAA,CAAC;IACT,CAAC;IACD,OAAO,IAAA,yBAAW,EAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC,CAAC;AAEK,IAAM,WAAW,GAAG,UAAC,IAAY,EAAE,KAAc;IACvD,IAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC;QACJ,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;YACO,CAAC;QACR,IAAM,aAAa,GAAG,QAAkE,CAAC;QACzF,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE,CAAC;YAC/C,aAAa,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;aACI,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAA,KAAK,UAAU,EAAE,CAAC;YACvD,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AAEK,IAAM,eAAe,GAAG,UAAC,QAAkD,EAAE,KAAc;IACjG,IAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,UAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,MAAM,gBAAM,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,KAAI,EAAE,CAAE,EAAhD,CAAgD,CAAC;SAC9D,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,OAAO,IAAA,mBAAW,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B","file":"tokenizer.js","sourcesContent":["import { encodingForModel, getEncoding, Tiktoken } from 'js-tiktoken';\n\nconst DEFAULT_ENCODING = 'o200k_base';\n\nconst resolveEncoding = (model?: string): Tiktoken => {\n\tconst normalized = String(model || '').trim();\n\tif (normalized) {\n\t\ttry {\n\t\t\treturn encodingForModel(normalized as any);\n\t\t}\n\t\tcatch {}\n\t}\n\treturn getEncoding(DEFAULT_ENCODING);\n};\n\nexport const countTokens = (text: string, model?: string): number => {\n\tconst encoding = resolveEncoding(model);\n\ttry {\n\t\tconst tokens = encoding.encode(text || '');\n\t\treturn tokens.length;\n\t}\n\tfinally {\n\t\tconst maybeEncoding = encoding as unknown as { free?: () => void; dispose?: () => void };\n\t\tif (typeof maybeEncoding?.free === 'function') {\n\t\t\tmaybeEncoding.free();\n\t\t}\n\t\telse if (typeof maybeEncoding?.dispose === 'function') {\n\t\t\tmaybeEncoding.dispose();\n\t\t}\n\t}\n};\n\nexport const countChatTokens = (messages: Array<{ role: string; content: string }>, model?: string): number => {\n\tconst flattened = (messages || [])\n\t\t.map((msg) => `${msg?.role || 'user'}:\\n${msg?.content || ''}`)\n\t\t.join('\\n\\n');\n\treturn countTokens(flattened, model);\n};\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ var worker_threads_1 = require("worker_threads");
51
+ var codex_client_1 = require("../services/codex-client");
52
+ function run() {
53
+ return __awaiter(this, void 0, void 0, function () {
54
+ var data, client, runOptions, streamStatusEnabled, emitStatus_1, runOptionsWithStream, result, error_1, message;
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0:
58
+ if (!worker_threads_1.parentPort) {
59
+ return [2 /*return*/];
60
+ }
61
+ data = worker_threads_1.workerData;
62
+ if (!data || typeof data.prompt !== 'string' || !data.config) {
63
+ worker_threads_1.parentPort.postMessage({ ok: false, error: 'Invalid AI worker payload.' });
64
+ return [2 /*return*/];
65
+ }
66
+ _a.label = 1;
67
+ case 1:
68
+ _a.trys.push([1, 3, , 4]);
69
+ client = new codex_client_1.CodexClient(data.config);
70
+ runOptions = data.runOptions || {};
71
+ streamStatusEnabled = data.streamStatus === true;
72
+ emitStatus_1 = streamStatusEnabled ? createStreamStatusEmitter(worker_threads_1.parentPort) : null;
73
+ runOptionsWithStream = streamStatusEnabled
74
+ ? __assign(__assign({}, runOptions), { onStreamEvent: function (event) {
75
+ var status = deriveStreamStatus(event);
76
+ if (status && emitStatus_1) {
77
+ emitStatus_1(status);
78
+ }
79
+ } }) : runOptions;
80
+ return [4 /*yield*/, client.run(data.prompt, runOptionsWithStream)];
81
+ case 2:
82
+ result = _a.sent();
83
+ worker_threads_1.parentPort.postMessage({ ok: true, result: result, type: 'final' });
84
+ return [3 /*break*/, 4];
85
+ case 3:
86
+ error_1 = _a.sent();
87
+ message = error_1 instanceof Error ? error_1.message : String(error_1 || 'Unknown error');
88
+ worker_threads_1.parentPort.postMessage({ ok: false, error: message, type: 'final' });
89
+ return [3 /*break*/, 4];
90
+ case 4: return [2 /*return*/];
91
+ }
92
+ });
93
+ });
94
+ }
95
+ function deriveStreamStatus(event) {
96
+ var _a, _b;
97
+ if (!event || !event.type) {
98
+ return null;
99
+ }
100
+ if (event.type === 'thread.started' || event.type === 'turn.started') {
101
+ return 'Reviewing request';
102
+ }
103
+ if (event.type === 'turn.completed') {
104
+ return 'Drafting response';
105
+ }
106
+ if (event.type === 'item.started' || event.type === 'item.updated' || event.type === 'item.completed') {
107
+ var itemType = String(((_a = event === null || event === void 0 ? void 0 : event.item) === null || _a === void 0 ? void 0 : _a.type) || '').trim().toLowerCase();
108
+ if (!itemType) {
109
+ return null;
110
+ }
111
+ if (itemType === 'mcp_tool_call') {
112
+ return 'Calling tool';
113
+ }
114
+ if (itemType === 'command_execution') {
115
+ return deriveCommandExecutionStatus((_b = event === null || event === void 0 ? void 0 : event.item) === null || _b === void 0 ? void 0 : _b.command);
116
+ }
117
+ if (itemType === 'web_search') {
118
+ return 'Searching references';
119
+ }
120
+ if (itemType === 'file_change') {
121
+ return 'Drafting response';
122
+ }
123
+ if (itemType === 'agent_message') {
124
+ return 'Drafting response';
125
+ }
126
+ if (itemType === 'reasoning') {
127
+ return 'Analyzing';
128
+ }
129
+ }
130
+ return null;
131
+ }
132
+ function deriveCommandExecutionStatus(commandValue) {
133
+ var command = String(commandValue || '').trim().toLowerCase();
134
+ if (!command) {
135
+ return 'Running command';
136
+ }
137
+ if (/\b(rg|grep|ripgrep|ag|ack)\b/.test(command)) {
138
+ return 'Searching files';
139
+ }
140
+ if (/\bfind\b/.test(command)) {
141
+ return 'Finding files';
142
+ }
143
+ if (/\b(cat|sed|awk|head|tail|less|more)\b/.test(command)) {
144
+ return 'Opening files';
145
+ }
146
+ if (/\b(ls|tree)\b/.test(command)) {
147
+ return 'Scanning files';
148
+ }
149
+ return 'Running command';
150
+ }
151
+ function createStreamStatusEmitter(port) {
152
+ var lastStatus = '';
153
+ var lastSentAt = 0;
154
+ return function (status) {
155
+ var trimmed = String(status || '').trim();
156
+ if (!trimmed) {
157
+ return;
158
+ }
159
+ var now = Date.now();
160
+ if (trimmed === lastStatus && now - lastSentAt < 3000) {
161
+ return;
162
+ }
163
+ lastStatus = trimmed;
164
+ lastSentAt = now;
165
+ port.postMessage({ ok: true, type: 'stream', status: trimmed });
166
+ };
167
+ }
168
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
169
+ void (function () { return __awaiter(void 0, void 0, void 0, function () {
170
+ var error_2, message;
171
+ return __generator(this, function (_a) {
172
+ switch (_a.label) {
173
+ case 0:
174
+ _a.trys.push([0, 2, , 3]);
175
+ return [4 /*yield*/, run()];
176
+ case 1:
177
+ _a.sent();
178
+ return [3 /*break*/, 3];
179
+ case 2:
180
+ error_2 = _a.sent();
181
+ if (!worker_threads_1.parentPort) {
182
+ return [2 /*return*/];
183
+ }
184
+ message = error_2 instanceof Error ? error_2.message : String(error_2 || 'Unknown error');
185
+ worker_threads_1.parentPort.postMessage({ ok: false, error: message, type: 'final' });
186
+ return [3 /*break*/, 3];
187
+ case 3: return [2 /*return*/];
188
+ }
189
+ });
190
+ }); })();
191
+
192
+ //# sourceMappingURL=codex-runner.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/workers/codex-runner.worker.ts"],"names":[],"mappings":"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","file":"codex-runner.worker.js","sourcesContent":["import { parentPort, workerData } from 'worker_threads';\nimport { CodexClient, CodexConfig, CodexRunOptions } from '../services/codex-client';\n\ntype CodexWorkerInput = {\n\tprompt: string;\n\trunOptions?: CodexRunOptions;\n\tconfig: CodexConfig;\n\tstreamStatus?: boolean;\n};\n\ntype CodexWorkerMessage = {\n\tok: boolean;\n\ttype?: 'stream' | 'final';\n\tresult?: string;\n\terror?: string;\n\tstatus?: string;\n};\n\nasync function run(): Promise<void> {\n\tif (!parentPort) {\n\t\treturn;\n\t}\n\n\tconst data = workerData as CodexWorkerInput;\n\tif (!data || typeof data.prompt !== 'string' || !data.config) {\n\t\tparentPort.postMessage({ ok: false, error: 'Invalid AI worker payload.' } as CodexWorkerMessage);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst client = new CodexClient(data.config);\n\t\tconst runOptions = data.runOptions || {};\n\t\tconst streamStatusEnabled = data.streamStatus === true;\n\t\tconst emitStatus = streamStatusEnabled ? createStreamStatusEmitter(parentPort) : null;\n\t\tconst runOptionsWithStream = streamStatusEnabled\n\t\t\t? {\n\t\t\t\t...runOptions,\n\t\t\t\tonStreamEvent: (event: any) => {\n\t\t\t\t\tconst status = deriveStreamStatus(event);\n\t\t\t\t\tif (status && emitStatus) {\n\t\t\t\t\t\temitStatus(status);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t: runOptions;\n\t\tconst result = await client.run(data.prompt, runOptionsWithStream);\n\t\tparentPort.postMessage({ ok: true, result, type: 'final' } as CodexWorkerMessage);\n\t}\n\tcatch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\tparentPort.postMessage({ ok: false, error: message, type: 'final' } as CodexWorkerMessage);\n\t}\n}\n\nfunction deriveStreamStatus(event: any): string | null {\n\tif (!event || !event.type) {\n\t\treturn null;\n\t}\n\tif (event.type === 'thread.started' || event.type === 'turn.started') {\n\t\treturn 'Reviewing request';\n\t}\n\tif (event.type === 'turn.completed') {\n\t\treturn 'Drafting response';\n\t}\n\tif (event.type === 'item.started' || event.type === 'item.updated' || event.type === 'item.completed') {\n\t\tconst itemType = String(event?.item?.type || '').trim().toLowerCase();\n\t\tif (!itemType) {\n\t\t\treturn null;\n\t\t}\n\t\tif (itemType === 'mcp_tool_call') {\n\t\t\treturn 'Calling tool';\n\t\t}\n\t\tif (itemType === 'command_execution') {\n\t\t\treturn deriveCommandExecutionStatus(event?.item?.command);\n\t\t}\n\t\tif (itemType === 'web_search') {\n\t\t\treturn 'Searching references';\n\t\t}\n\t\tif (itemType === 'file_change') {\n\t\t\treturn 'Drafting response';\n\t\t}\n\t\tif (itemType === 'agent_message') {\n\t\t\treturn 'Drafting response';\n\t\t}\n\t\tif (itemType === 'reasoning') {\n\t\t\treturn 'Analyzing';\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction deriveCommandExecutionStatus(commandValue: any): string {\n\tconst command = String(commandValue || '').trim().toLowerCase();\n\tif (!command) {\n\t\treturn 'Running command';\n\t}\n\tif (/\\b(rg|grep|ripgrep|ag|ack)\\b/.test(command)) {\n\t\treturn 'Searching files';\n\t}\n\tif (/\\bfind\\b/.test(command)) {\n\t\treturn 'Finding files';\n\t}\n\tif (/\\b(cat|sed|awk|head|tail|less|more)\\b/.test(command)) {\n\t\treturn 'Opening files';\n\t}\n\tif (/\\b(ls|tree)\\b/.test(command)) {\n\t\treturn 'Scanning files';\n\t}\n\treturn 'Running command';\n}\n\nfunction createStreamStatusEmitter(port: any) {\n\tlet lastStatus = '';\n\tlet lastSentAt = 0;\n\treturn (status: string) => {\n\t\tconst trimmed = String(status || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn;\n\t\t}\n\t\tconst now = Date.now();\n\t\tif (trimmed === lastStatus && now - lastSentAt < 3000) {\n\t\t\treturn;\n\t\t}\n\t\tlastStatus = trimmed;\n\t\tlastSentAt = now;\n\t\tport.postMessage({ ok: true, type: 'stream', status: trimmed } as CodexWorkerMessage);\n\t};\n}\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nvoid (async () => {\n\ttry {\n\t\tawait run();\n\t}\n\tcatch (error) {\n\t\tif (!parentPort) {\n\t\t\treturn;\n\t\t}\n\t\tconst message = error instanceof Error ? error.message : String(error || 'Unknown error');\n\t\tparentPort.postMessage({ ok: false, error: message, type: 'final' } as CodexWorkerMessage);\n\t}\n})();\n"]}
package/.nodemon.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "events": {
3
- "exit": "npm run stop-server"
4
- }
5
- }
@@ -1,21 +0,0 @@
1
- // Place your settings in this file to overwrite default and user settings.
2
- {
3
- "editor.minimap.enabled": false,
4
- "javascript.preferences.importModuleSpecifier": "relative",
5
- "typescript.preferences.importModuleSpecifier": "relative",
6
- "javascript.preferences.quoteStyle": "single",
7
- "git.ignoreLimitWarning": true,
8
- "editor.codeActionsOnSave": {
9
- "source.organizeImports": "explicit",
10
- "source.fixAll.eslint": "always"
11
- },
12
- "eslint.validate": [
13
- "typescript",
14
- "javascript",
15
- "typescriptreact",
16
- "javascriptreact",
17
- "html"
18
- ],
19
- "eslint.run": "onType",
20
- "eslint.enable": true
21
- }
package/AGENTS.md DELETED
@@ -1,189 +0,0 @@
1
- # AGENTS.md
2
-
3
- ## Generated Method/Publications Files
4
-
5
- - Do not hand-edit generated Angular socket files such as `angular/app/methods.ts` or `angular/app/publications.ts`.
6
- - Change the real server method/publication definitions in `server/src/methods/` or `server/src/publications/` first.
7
- - After changing any method or publication signature, run `python3 methodAndPublicationListGenerator.py` from that project's `server/` directory.
8
- - Treat regeneration as required whenever server method/publication arguments change.
9
-
10
- ## Overview
11
- resolveio-server-lib provides the backend infrastructure for the ResolveIO platform. It exposes server methods, publications, queues, and worker coordination so heavy work runs off the main thread.
12
-
13
- > Written for contributors and for GitHub Copilot / OpenAI Codex to learn the library.
14
-
15
- ---
16
-
17
- ## Architecture
18
- resolveio-server-lib is a Node 22 / TypeScript library built on Mongo 8 (never use Mongoose). The core server connects through a custom Mongo wrapper and dispatches work to workers when clustered.
19
-
20
- ### Directory Map
21
- ```txt
22
- src/
23
- ├─ collections/Mongo collection helpers
24
- ├─ models/TypeScript interfaces & SimpleSchema
25
- ├─ methods/loadXMethods() modules registering method handlers
26
- ├─ publications/loadXPublications() modules registering subscriptions
27
- ├─ managers/infrastructure managers (MethodManager, WebSocketManager, etc.)
28
- ├─ cron/scheduled jobs
29
- ├─ http/Express route helpers
30
- ├─ util/shared utilities
31
- resolveio-server-app.tsbootstraps the server and connects to Mongo
32
- server-app.tsHTTP/WebSocket server for main & worker processes
33
- client-server-app.tsclient-facing entry for hybrid deployments
34
- ```
35
-
36
- ### Core Managers
37
- - MethodManager: registers method handlers via `methodManager.methods({ ... })`
38
- - SubscriptionManager: registers publications via `subscriptionManager.publications({ ... })`
39
- - WebSocketManager: tracks socket connections and emits messages
40
- - WorkerDispatcherManager & WorkerServerManager: queue and execute heavy jobs
41
- - CronManager: defines recurring jobs in `src/cron`
42
- - MongoManager & LocalLogManager: database and log helpers
43
-
44
- ### Methods
45
- - Stateless functions invoked by clients.
46
- - Defined in `src/methods/*` using `loadXMethods` patterns.
47
- - Each method provides a `check` (SimpleSchema) and an async `function`.
48
- ```ts
49
- export function loadFooMethods(methodManager: MethodManager) {
50
- methodManager.methods({
51
- doSomething: {
52
- check: new SimpleSchema({ name: { type: String } }),
53
- function: async function (name: string) {
54
- // logic
55
- return result;
56
- },
57
- },
58
- });
59
- }
60
- ```
61
-
62
- ### Publications
63
- - Stream Mongo documents or computed data to subscribers.
64
- - Defined in `src/publications/*` using `loadXPublications`.
65
- - Publication objects declare `function`, optional `check`, and affected `collections`.
66
- ```ts
67
- export function loadFlagsPublications(subscriptionManager: SubscriptionManager) {
68
- subscriptionManager.publications({
69
- flagWithType: {
70
- function: (flagType: string) => Flags.findOne({ type: flagType }),
71
- check: new SimpleSchema({ flagType: { type: String } }),
72
- collections: ['flags'],
73
- },
74
- });
75
- }
76
- ```
77
-
78
- ### Worker & Queue Agents
79
- - Heavy or blocking work should be dispatched to worker servers.
80
- - Use `WorkerDispatcherManager.enqueue(task)` for background processing.
81
- - Cron jobs live in `src/cron` and register through `CronManager`.
82
-
83
- ---
84
-
85
- ## Coding Conventions
86
- - Tabs for indentation, newline `else if`, opening brace on same line.
87
- - No `find` in loops; batch fetch then `bulkWrite`.
88
- - Separate validation, data retrieval, and processing blocks.
89
- - Use `async/await` with `try/catch`.
90
- - Never use `Math.round`; always use `round` from the ResolveIO client/server libraries.
91
- - Use `async/await` with `try/catch` instead of `.then()`/`.catch()`/`.finally()`.
92
- - Never leave unused variables, parameters, or imports; remove or refactor instead of suppressing lint.
93
- - Never construct Promises or use `.then()`/`.catch()`/`.finally()`; use `async/await` + `try/catch`.
94
- - Never leave promises floating; `await` or `return` every async call (including `Promise.all`).
95
- - Do not `await` inside `forEach`; use `for...of` or `Promise.all` with `map`.
96
- - Every async method must `await` at least one call (Mongo transactions).
97
- - Follow the `eslint.ts` rules.
98
- - Models and collections must mirror each other at all times.
99
-
100
- ```ts
101
- if (x > 3) {
102
- console.log(1);
103
- }
104
- else if (x === 2) {
105
- console.log(2);
106
- }
107
- else {
108
- console.log(3);
109
- }
110
- ```
111
-
112
- ---
113
-
114
- ## Formatting & Linting
115
- - `.editorconfig`, `.prettierrc.json`, and `.vscode/settings.json` enforce tabs and 120-column width.
116
- - Always open `eslint.config.js` in this project before coding and follow its rules; do not assume defaults from other repos.
117
- - Run lint before committing:
118
- ```bash
119
- npx eslint .
120
- ```
121
-
122
- ---
123
-
124
- ## Quick Start
125
- ```bash
126
- npm install
127
- npm run build
128
- npm start
129
- ```
130
-
131
- ---
132
-
133
- ## PR Checklist
134
- - Tabs only; `else`/`else if` start on new lines.
135
- - Avoid `find` in loops; use `bulkWrite`.
136
- - Use transactions when multiple writes must succeed atomically.
137
- - Offload heavy work to workers.
138
- - Run `npx eslint .` before committing.
139
-
140
- ---
141
-
142
- ## Response Requirements
143
-
144
- - Include a customer-facing summary of the request and the estimated the number of human hours an advanced ResolveIO engineer would take to fully complete the task including testing.
145
- - Include a work ticket summary (what was done) and the estimated the number of human hours an advanced ResolveIO engineer would take to fully complete the task including testing.
146
-
147
- ---
148
-
149
- ## Anti-Patterns
150
- - Converting tabs to spaces.
151
- - `updateOne` or `find` in loops.
152
- - Blocking work on the main server.
153
- - Deep nesting without early returns.
154
-
155
- ## STRING _id POLICY
156
- - `_id` values are always strings in this codebase.
157
- - Generate `_id` values with `objectIdHexString()`.
158
- - Never use MongoDB `ObjectId` values or assumptions for `_id`.
159
- - For bulk writes (`insertMany`, `bulkWrite`, batch upserts), always set `_id` explicitly as a string before writing.
160
- - Never let MongoDB auto-generate `_id`, because that can create `ObjectId`-style ids.
161
-
162
- ## RESOLVEIO LIBRARY SOURCE-OF-TRUTH POLICY
163
- - Never use `patch-package` for any `@resolveio/*` library changes.
164
- - Never patch `node_modules/@resolveio/*` as the primary fix path.
165
- - Always implement fixes in the actual source library repo (for example `resolveio-server-lib` or `resolveio-client-lib`).
166
- - When publishing a new `@resolveio/server-lib` version that ResolveIO apps should consume, update and push `ResolveIO/resolveio-libraries/system-package.json` before changing app `package.json` files or deploying. The deploy pipeline applies that overlay and will otherwise revert app package pins back to the old system version.
167
- - After applying a library-source fix, explicitly report:
168
- - Why the fix had to be made in the library source (root cause and ownership).
169
- - What downstream impact to expect (version bump/publish, consumer upgrades, rollout risk, and compatibility considerations).
170
-
171
- ## AI Terminal Boundary Policy
172
-
173
- - Keep `resolveio-server-lib/src/methods/ai-terminal.ts` strictly platform-generic (`server-lib` / core ResolveIO only).
174
- - Do not add app-specific names, app-only aliases, app-specific field fallbacks, or app-specific branching logic in `server-lib` AI terminal code.
175
- - Put app-specific AI behavior in the app repo layer (for example `server/src/ai/assistant-heuristics.json` and app-level method/config wiring), not in `resolveio-server-lib`.
176
-
177
- ## Distinct Filter Guidance
178
-
179
- - For list/filter dropdowns, use distinct-backed options from the underlying collection data wherever practical instead of hardcoded option lists.
180
- - Prefer list-template distinct filter support (`optionsDistinctKey`, `distinctQuery`, `distinctSort`, `distinctCollection`) when using `resolveio-list-template`.
181
- - Keep an explicit "All" option for optional filters and ensure labels/values map to the true stored field values.
182
- - Use hardcoded options only when values are truly fixed business enums that should not vary by dataset.
183
-
184
- ## Rio Select Form-Control Rule
185
-
186
- - Never apply Bootstrap `form-control` to `rio-select` (including `class="form-control"`). Use component-specific classes for `rio-select` styling.
187
- - Never apply Bootstrap `form-control` to `rio-date-picker` (including `class="form-control"`). Use component-specific classes for `rio-date-picker` styling.
188
-
189
- - MongoDB `_id` values are strings in this codebase; do not use `ObjectId` types.