@librechat/data-schemas 0.0.43 → 0.0.45

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 (502) hide show
  1. package/dist/admin/capabilities.cjs +192 -0
  2. package/dist/admin/capabilities.cjs.map +1 -0
  3. package/dist/admin/capabilities.es.js +182 -0
  4. package/dist/admin/capabilities.es.js.map +1 -0
  5. package/dist/app/agents.cjs +24 -0
  6. package/dist/app/agents.cjs.map +1 -0
  7. package/dist/app/agents.es.js +22 -0
  8. package/dist/app/agents.es.js.map +1 -0
  9. package/dist/app/assistants.cjs +56 -0
  10. package/dist/app/assistants.cjs.map +1 -0
  11. package/dist/app/assistants.es.js +53 -0
  12. package/dist/app/assistants.es.js.map +1 -0
  13. package/dist/app/azure.cjs +61 -0
  14. package/dist/app/azure.cjs.map +1 -0
  15. package/dist/app/azure.es.js +59 -0
  16. package/dist/app/azure.es.js.map +1 -0
  17. package/dist/app/endpoints.cjs +63 -0
  18. package/dist/app/endpoints.cjs.map +1 -0
  19. package/dist/app/endpoints.es.js +61 -0
  20. package/dist/app/endpoints.es.js.map +1 -0
  21. package/dist/app/interface.cjs +53 -0
  22. package/dist/app/interface.cjs.map +1 -0
  23. package/dist/app/interface.es.js +51 -0
  24. package/dist/app/interface.es.js.map +1 -0
  25. package/dist/app/memory.cjs +29 -0
  26. package/dist/app/memory.cjs.map +1 -0
  27. package/dist/app/memory.es.js +26 -0
  28. package/dist/app/memory.es.js.map +1 -0
  29. package/dist/app/ocr.cjs +21 -0
  30. package/dist/app/ocr.cjs.map +1 -0
  31. package/dist/app/ocr.es.js +19 -0
  32. package/dist/app/ocr.es.js.map +1 -0
  33. package/dist/app/resolution.cjs +51 -0
  34. package/dist/app/resolution.cjs.map +1 -0
  35. package/dist/app/resolution.es.js +49 -0
  36. package/dist/app/resolution.es.js.map +1 -0
  37. package/dist/app/service.cjs +108 -0
  38. package/dist/app/service.cjs.map +1 -0
  39. package/dist/app/service.es.js +106 -0
  40. package/dist/app/service.es.js.map +1 -0
  41. package/dist/app/specs.cjs +71 -0
  42. package/dist/app/specs.cjs.map +1 -0
  43. package/dist/app/specs.es.js +69 -0
  44. package/dist/app/specs.es.js.map +1 -0
  45. package/dist/app/turnstile.cjs +40 -0
  46. package/dist/app/turnstile.cjs.map +1 -0
  47. package/dist/app/turnstile.es.js +38 -0
  48. package/dist/app/turnstile.es.js.map +1 -0
  49. package/dist/app/vertex.cjs +156 -0
  50. package/dist/app/vertex.cjs.map +1 -0
  51. package/dist/app/vertex.es.js +152 -0
  52. package/dist/app/vertex.es.js.map +1 -0
  53. package/dist/app/web.cjs +87 -0
  54. package/dist/app/web.cjs.map +1 -0
  55. package/dist/app/web.es.js +82 -0
  56. package/dist/app/web.es.js.map +1 -0
  57. package/dist/common/enum.cjs +19 -0
  58. package/dist/common/enum.cjs.map +1 -0
  59. package/dist/common/enum.es.js +19 -0
  60. package/dist/common/enum.es.js.map +1 -0
  61. package/dist/config/meiliLogger.cjs +57 -0
  62. package/dist/config/meiliLogger.cjs.map +1 -0
  63. package/dist/config/meiliLogger.es.js +55 -0
  64. package/dist/config/meiliLogger.es.js.map +1 -0
  65. package/dist/config/parsers.cjs +224 -0
  66. package/dist/config/parsers.cjs.map +1 -0
  67. package/dist/config/parsers.es.js +219 -0
  68. package/dist/config/parsers.es.js.map +1 -0
  69. package/dist/config/tenantContext.cjs +30 -0
  70. package/dist/config/tenantContext.cjs.map +1 -0
  71. package/dist/config/tenantContext.es.js +25 -0
  72. package/dist/config/tenantContext.es.js.map +1 -0
  73. package/dist/config/utils.cjs +37 -0
  74. package/dist/config/utils.cjs.map +1 -0
  75. package/dist/config/utils.es.js +35 -0
  76. package/dist/config/utils.es.js.map +1 -0
  77. package/dist/config/winston.cjs +93 -0
  78. package/dist/config/winston.cjs.map +1 -0
  79. package/dist/config/winston.es.js +91 -0
  80. package/dist/config/winston.es.js.map +1 -0
  81. package/dist/crypto/index.cjs +156 -0
  82. package/dist/crypto/index.cjs.map +1 -0
  83. package/dist/crypto/index.es.js +145 -0
  84. package/dist/crypto/index.es.js.map +1 -0
  85. package/dist/index.cjs +142 -11734
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.es.js +52 -11652
  88. package/dist/index.es.js.map +1 -1
  89. package/dist/methods/accessRole.cjs +210 -0
  90. package/dist/methods/accessRole.cjs.map +1 -0
  91. package/dist/methods/accessRole.es.js +208 -0
  92. package/dist/methods/accessRole.es.js.map +1 -0
  93. package/dist/methods/aclEntry.cjs +361 -0
  94. package/dist/methods/aclEntry.cjs.map +1 -0
  95. package/dist/methods/aclEntry.es.js +359 -0
  96. package/dist/methods/aclEntry.es.js.map +1 -0
  97. package/dist/methods/action.cjs +59 -0
  98. package/dist/methods/action.cjs.map +1 -0
  99. package/dist/methods/action.es.js +57 -0
  100. package/dist/methods/action.es.js.map +1 -0
  101. package/dist/methods/agent.cjs +580 -0
  102. package/dist/methods/agent.cjs.map +1 -0
  103. package/dist/methods/agent.es.js +578 -0
  104. package/dist/methods/agent.es.js.map +1 -0
  105. package/dist/methods/agentApiKey.cjs +140 -0
  106. package/dist/methods/agentApiKey.cjs.map +1 -0
  107. package/dist/methods/agentApiKey.es.js +138 -0
  108. package/dist/methods/agentApiKey.es.js.map +1 -0
  109. package/dist/methods/agentCategory.cjs +226 -0
  110. package/dist/methods/agentCategory.cjs.map +1 -0
  111. package/dist/methods/agentCategory.es.js +224 -0
  112. package/dist/methods/agentCategory.es.js.map +1 -0
  113. package/dist/methods/assistant.cjs +53 -0
  114. package/dist/methods/assistant.cjs.map +1 -0
  115. package/dist/methods/assistant.es.js +51 -0
  116. package/dist/methods/assistant.es.js.map +1 -0
  117. package/dist/methods/banner.cjs +32 -0
  118. package/dist/methods/banner.cjs.map +1 -0
  119. package/dist/methods/banner.es.js +30 -0
  120. package/dist/methods/banner.es.js.map +1 -0
  121. package/dist/methods/categories.cjs +33 -0
  122. package/dist/methods/categories.cjs.map +1 -0
  123. package/dist/methods/categories.es.js +31 -0
  124. package/dist/methods/categories.es.js.map +1 -0
  125. package/dist/methods/config.cjs +106 -0
  126. package/dist/methods/config.cjs.map +1 -0
  127. package/dist/methods/config.es.js +104 -0
  128. package/dist/methods/config.es.js.map +1 -0
  129. package/dist/methods/conversation.cjs +344 -0
  130. package/dist/methods/conversation.cjs.map +1 -0
  131. package/dist/methods/conversation.es.js +342 -0
  132. package/dist/methods/conversation.es.js.map +1 -0
  133. package/dist/methods/conversationTag.cjs +234 -0
  134. package/dist/methods/conversationTag.cjs.map +1 -0
  135. package/dist/methods/conversationTag.es.js +232 -0
  136. package/dist/methods/conversationTag.es.js.map +1 -0
  137. package/dist/methods/file.cjs +315 -0
  138. package/dist/methods/file.cjs.map +1 -0
  139. package/dist/methods/file.es.js +313 -0
  140. package/dist/methods/file.es.js.map +1 -0
  141. package/dist/methods/index.cjs +135 -0
  142. package/dist/methods/index.cjs.map +1 -0
  143. package/dist/methods/index.es.js +130 -0
  144. package/dist/methods/index.es.js.map +1 -0
  145. package/dist/methods/key.cjs +136 -0
  146. package/dist/methods/key.cjs.map +1 -0
  147. package/dist/methods/key.es.js +134 -0
  148. package/dist/methods/key.es.js.map +1 -0
  149. package/dist/methods/mcpServer.cjs +259 -0
  150. package/dist/methods/mcpServer.cjs.map +1 -0
  151. package/dist/methods/mcpServer.es.js +257 -0
  152. package/dist/methods/mcpServer.es.js.map +1 -0
  153. package/dist/methods/memory.cjs +145 -0
  154. package/dist/methods/memory.cjs.map +1 -0
  155. package/dist/methods/memory.es.js +143 -0
  156. package/dist/methods/memory.es.js.map +1 -0
  157. package/dist/methods/message.cjs +280 -0
  158. package/dist/methods/message.cjs.map +1 -0
  159. package/dist/methods/message.es.js +278 -0
  160. package/dist/methods/message.es.js.map +1 -0
  161. package/dist/methods/pluginAuth.cjs +108 -0
  162. package/dist/methods/pluginAuth.cjs.map +1 -0
  163. package/dist/methods/pluginAuth.es.js +106 -0
  164. package/dist/methods/pluginAuth.es.js.map +1 -0
  165. package/dist/methods/preset.cjs +105 -0
  166. package/dist/methods/preset.cjs.map +1 -0
  167. package/dist/methods/preset.es.js +103 -0
  168. package/dist/methods/preset.es.js.map +1 -0
  169. package/dist/methods/prompt.cjs +546 -0
  170. package/dist/methods/prompt.cjs.map +1 -0
  171. package/dist/methods/prompt.es.js +544 -0
  172. package/dist/methods/prompt.es.js.map +1 -0
  173. package/dist/methods/role.cjs +290 -0
  174. package/dist/methods/role.cjs.map +1 -0
  175. package/dist/methods/role.es.js +288 -0
  176. package/dist/methods/role.es.js.map +1 -0
  177. package/dist/methods/session.cjs +221 -0
  178. package/dist/methods/session.cjs.map +1 -0
  179. package/dist/methods/session.es.js +217 -0
  180. package/dist/methods/session.es.js.map +1 -0
  181. package/dist/methods/share.cjs +474 -0
  182. package/dist/methods/share.cjs.map +1 -0
  183. package/dist/methods/share.es.js +472 -0
  184. package/dist/methods/share.es.js.map +1 -0
  185. package/dist/methods/spendTokens.cjs +109 -0
  186. package/dist/methods/spendTokens.cjs.map +1 -0
  187. package/dist/methods/spendTokens.es.js +107 -0
  188. package/dist/methods/spendTokens.es.js.map +1 -0
  189. package/dist/methods/systemGrant.cjs +190 -0
  190. package/dist/methods/systemGrant.cjs.map +1 -0
  191. package/dist/methods/systemGrant.es.js +188 -0
  192. package/dist/methods/systemGrant.es.js.map +1 -0
  193. package/dist/methods/token.cjs +117 -0
  194. package/dist/methods/token.cjs.map +1 -0
  195. package/dist/methods/token.es.js +115 -0
  196. package/dist/methods/token.es.js.map +1 -0
  197. package/dist/methods/toolCall.cjs +91 -0
  198. package/dist/methods/toolCall.cjs.map +1 -0
  199. package/dist/methods/toolCall.es.js +89 -0
  200. package/dist/methods/toolCall.es.js.map +1 -0
  201. package/dist/methods/transaction.cjs +305 -0
  202. package/dist/methods/transaction.cjs.map +1 -0
  203. package/dist/methods/transaction.es.js +303 -0
  204. package/dist/methods/transaction.es.js.map +1 -0
  205. package/dist/methods/tx.cjs +443 -0
  206. package/dist/methods/tx.cjs.map +1 -0
  207. package/dist/methods/tx.es.js +437 -0
  208. package/dist/methods/tx.es.js.map +1 -0
  209. package/dist/methods/user.cjs +269 -0
  210. package/dist/methods/user.cjs.map +1 -0
  211. package/dist/methods/user.es.js +266 -0
  212. package/dist/methods/user.es.js.map +1 -0
  213. package/dist/methods/userGroup.cjs +518 -0
  214. package/dist/methods/userGroup.cjs.map +1 -0
  215. package/dist/methods/userGroup.es.js +516 -0
  216. package/dist/methods/userGroup.es.js.map +1 -0
  217. package/dist/migrations/tenantIndexes.cjs +85 -0
  218. package/dist/migrations/tenantIndexes.cjs.map +1 -0
  219. package/dist/migrations/tenantIndexes.es.js +82 -0
  220. package/dist/migrations/tenantIndexes.es.js.map +1 -0
  221. package/dist/models/accessRole.cjs +12 -0
  222. package/dist/models/accessRole.cjs.map +1 -0
  223. package/dist/models/accessRole.es.js +10 -0
  224. package/dist/models/accessRole.es.js.map +1 -0
  225. package/dist/models/aclEntry.cjs +12 -0
  226. package/dist/models/aclEntry.cjs.map +1 -0
  227. package/dist/models/aclEntry.es.js +10 -0
  228. package/dist/models/aclEntry.es.js.map +1 -0
  229. package/dist/models/action.cjs +12 -0
  230. package/dist/models/action.cjs.map +1 -0
  231. package/dist/models/action.es.js +10 -0
  232. package/dist/models/action.es.js.map +1 -0
  233. package/dist/models/agent.cjs +12 -0
  234. package/dist/models/agent.cjs.map +1 -0
  235. package/dist/models/agent.es.js +10 -0
  236. package/dist/models/agent.es.js.map +1 -0
  237. package/dist/models/agentApiKey.cjs +12 -0
  238. package/dist/models/agentApiKey.cjs.map +1 -0
  239. package/dist/models/agentApiKey.es.js +10 -0
  240. package/dist/models/agentApiKey.es.js.map +1 -0
  241. package/dist/models/agentCategory.cjs +13 -0
  242. package/dist/models/agentCategory.cjs.map +1 -0
  243. package/dist/models/agentCategory.es.js +11 -0
  244. package/dist/models/agentCategory.es.js.map +1 -0
  245. package/dist/models/assistant.cjs +12 -0
  246. package/dist/models/assistant.cjs.map +1 -0
  247. package/dist/models/assistant.es.js +10 -0
  248. package/dist/models/assistant.es.js.map +1 -0
  249. package/dist/models/balance.cjs +12 -0
  250. package/dist/models/balance.cjs.map +1 -0
  251. package/dist/models/balance.es.js +10 -0
  252. package/dist/models/balance.es.js.map +1 -0
  253. package/dist/models/banner.cjs +12 -0
  254. package/dist/models/banner.cjs.map +1 -0
  255. package/dist/models/banner.es.js +10 -0
  256. package/dist/models/banner.es.js.map +1 -0
  257. package/dist/models/config.cjs +12 -0
  258. package/dist/models/config.cjs.map +1 -0
  259. package/dist/models/config.es.js +10 -0
  260. package/dist/models/config.es.js.map +1 -0
  261. package/dist/models/conversationTag.cjs +13 -0
  262. package/dist/models/conversationTag.cjs.map +1 -0
  263. package/dist/models/conversationTag.es.js +11 -0
  264. package/dist/models/conversationTag.es.js.map +1 -0
  265. package/dist/models/convo.cjs +23 -0
  266. package/dist/models/convo.cjs.map +1 -0
  267. package/dist/models/convo.es.js +21 -0
  268. package/dist/models/convo.es.js.map +1 -0
  269. package/dist/models/file.cjs +12 -0
  270. package/dist/models/file.cjs.map +1 -0
  271. package/dist/models/file.es.js +10 -0
  272. package/dist/models/file.es.js.map +1 -0
  273. package/dist/models/group.cjs +12 -0
  274. package/dist/models/group.cjs.map +1 -0
  275. package/dist/models/group.es.js +10 -0
  276. package/dist/models/group.es.js.map +1 -0
  277. package/dist/models/index.cjs +73 -0
  278. package/dist/models/index.cjs.map +1 -0
  279. package/dist/models/index.es.js +71 -0
  280. package/dist/models/index.es.js.map +1 -0
  281. package/dist/models/key.cjs +12 -0
  282. package/dist/models/key.cjs.map +1 -0
  283. package/dist/models/key.es.js +10 -0
  284. package/dist/models/key.es.js.map +1 -0
  285. package/dist/models/mcpServer.cjs +12 -0
  286. package/dist/models/mcpServer.cjs.map +1 -0
  287. package/dist/models/mcpServer.es.js +10 -0
  288. package/dist/models/mcpServer.es.js.map +1 -0
  289. package/dist/models/memory.cjs +12 -0
  290. package/dist/models/memory.cjs.map +1 -0
  291. package/dist/models/memory.es.js +10 -0
  292. package/dist/models/memory.es.js.map +1 -0
  293. package/dist/models/message.cjs +22 -0
  294. package/dist/models/message.cjs.map +1 -0
  295. package/dist/models/message.es.js +20 -0
  296. package/dist/models/message.es.js.map +1 -0
  297. package/dist/models/pluginAuth.cjs +12 -0
  298. package/dist/models/pluginAuth.cjs.map +1 -0
  299. package/dist/models/pluginAuth.es.js +10 -0
  300. package/dist/models/pluginAuth.es.js.map +1 -0
  301. package/dist/models/plugins/mongoMeili.cjs +547 -0
  302. package/dist/models/plugins/mongoMeili.cjs.map +1 -0
  303. package/dist/models/plugins/mongoMeili.es.js +545 -0
  304. package/dist/models/plugins/mongoMeili.es.js.map +1 -0
  305. package/dist/models/plugins/tenantIsolation.cjs +140 -0
  306. package/dist/models/plugins/tenantIsolation.cjs.map +1 -0
  307. package/dist/models/plugins/tenantIsolation.es.js +138 -0
  308. package/dist/models/plugins/tenantIsolation.es.js.map +1 -0
  309. package/dist/models/preset.cjs +12 -0
  310. package/dist/models/preset.cjs.map +1 -0
  311. package/dist/models/preset.es.js +10 -0
  312. package/dist/models/preset.es.js.map +1 -0
  313. package/dist/models/prompt.cjs +12 -0
  314. package/dist/models/prompt.cjs.map +1 -0
  315. package/dist/models/prompt.es.js +10 -0
  316. package/dist/models/prompt.es.js.map +1 -0
  317. package/dist/models/promptGroup.cjs +13 -0
  318. package/dist/models/promptGroup.cjs.map +1 -0
  319. package/dist/models/promptGroup.es.js +11 -0
  320. package/dist/models/promptGroup.es.js.map +1 -0
  321. package/dist/models/role.cjs +12 -0
  322. package/dist/models/role.cjs.map +1 -0
  323. package/dist/models/role.es.js +10 -0
  324. package/dist/models/role.es.js.map +1 -0
  325. package/dist/models/session.cjs +12 -0
  326. package/dist/models/session.cjs.map +1 -0
  327. package/dist/models/session.es.js +10 -0
  328. package/dist/models/session.es.js.map +1 -0
  329. package/dist/models/sharedLink.cjs +12 -0
  330. package/dist/models/sharedLink.cjs.map +1 -0
  331. package/dist/models/sharedLink.es.js +10 -0
  332. package/dist/models/sharedLink.es.js.map +1 -0
  333. package/dist/models/systemGrant.cjs +16 -0
  334. package/dist/models/systemGrant.cjs.map +1 -0
  335. package/dist/models/systemGrant.es.js +14 -0
  336. package/dist/models/systemGrant.es.js.map +1 -0
  337. package/dist/models/token.cjs +12 -0
  338. package/dist/models/token.cjs.map +1 -0
  339. package/dist/models/token.es.js +10 -0
  340. package/dist/models/token.es.js.map +1 -0
  341. package/dist/models/toolCall.cjs +12 -0
  342. package/dist/models/toolCall.cjs.map +1 -0
  343. package/dist/models/toolCall.es.js +10 -0
  344. package/dist/models/toolCall.es.js.map +1 -0
  345. package/dist/models/transaction.cjs +12 -0
  346. package/dist/models/transaction.cjs.map +1 -0
  347. package/dist/models/transaction.es.js +10 -0
  348. package/dist/models/transaction.es.js.map +1 -0
  349. package/dist/models/user.cjs +12 -0
  350. package/dist/models/user.cjs.map +1 -0
  351. package/dist/models/user.es.js +10 -0
  352. package/dist/models/user.es.js.map +1 -0
  353. package/dist/schema/accessRole.cjs +34 -0
  354. package/dist/schema/accessRole.cjs.map +1 -0
  355. package/dist/schema/accessRole.es.js +32 -0
  356. package/dist/schema/accessRole.es.js.map +1 -0
  357. package/dist/schema/aclEntry.cjs +74 -0
  358. package/dist/schema/aclEntry.cjs.map +1 -0
  359. package/dist/schema/aclEntry.es.js +72 -0
  360. package/dist/schema/aclEntry.es.js.map +1 -0
  361. package/dist/schema/action.cjs +54 -0
  362. package/dist/schema/action.cjs.map +1 -0
  363. package/dist/schema/action.es.js +52 -0
  364. package/dist/schema/action.es.js.map +1 -0
  365. package/dist/schema/agent.cjs +128 -0
  366. package/dist/schema/agent.cjs.map +1 -0
  367. package/dist/schema/agent.es.js +126 -0
  368. package/dist/schema/agent.es.js.map +1 -0
  369. package/dist/schema/agentApiKey.cjs +50 -0
  370. package/dist/schema/agentApiKey.cjs.map +1 -0
  371. package/dist/schema/agentApiKey.es.js +48 -0
  372. package/dist/schema/agentApiKey.es.js.map +1 -0
  373. package/dist/schema/agentCategory.cjs +49 -0
  374. package/dist/schema/agentCategory.cjs.map +1 -0
  375. package/dist/schema/agentCategory.es.js +47 -0
  376. package/dist/schema/agentCategory.es.js.map +1 -0
  377. package/dist/schema/assistant.cjs +42 -0
  378. package/dist/schema/assistant.cjs.map +1 -0
  379. package/dist/schema/assistant.es.js +40 -0
  380. package/dist/schema/assistant.es.js.map +1 -0
  381. package/dist/schema/balance.cjs +47 -0
  382. package/dist/schema/balance.cjs.map +1 -0
  383. package/dist/schema/balance.es.js +45 -0
  384. package/dist/schema/balance.es.js.map +1 -0
  385. package/dist/schema/banner.cjs +42 -0
  386. package/dist/schema/banner.cjs.map +1 -0
  387. package/dist/schema/banner.es.js +40 -0
  388. package/dist/schema/banner.es.js.map +1 -0
  389. package/dist/schema/categories.cjs +23 -0
  390. package/dist/schema/categories.cjs.map +1 -0
  391. package/dist/schema/categories.es.js +21 -0
  392. package/dist/schema/categories.es.js.map +1 -0
  393. package/dist/schema/config.cjs +59 -0
  394. package/dist/schema/config.cjs.map +1 -0
  395. package/dist/schema/config.es.js +57 -0
  396. package/dist/schema/config.es.js.map +1 -0
  397. package/dist/schema/conversationTag.cjs +36 -0
  398. package/dist/schema/conversationTag.cjs.map +1 -0
  399. package/dist/schema/conversationTag.es.js +34 -0
  400. package/dist/schema/conversationTag.es.js.map +1 -0
  401. package/dist/schema/convo.cjs +52 -0
  402. package/dist/schema/convo.cjs.map +1 -0
  403. package/dist/schema/convo.es.js +50 -0
  404. package/dist/schema/convo.es.js.map +1 -0
  405. package/dist/schema/defaults.cjs +168 -0
  406. package/dist/schema/defaults.cjs.map +1 -0
  407. package/dist/schema/defaults.es.js +166 -0
  408. package/dist/schema/defaults.es.js.map +1 -0
  409. package/dist/schema/file.cjs +92 -0
  410. package/dist/schema/file.cjs.map +1 -0
  411. package/dist/schema/file.es.js +90 -0
  412. package/dist/schema/file.es.js.map +1 -0
  413. package/dist/schema/group.cjs +56 -0
  414. package/dist/schema/group.cjs.map +1 -0
  415. package/dist/schema/group.es.js +54 -0
  416. package/dist/schema/group.es.js.map +1 -0
  417. package/dist/schema/key.cjs +30 -0
  418. package/dist/schema/key.cjs.map +1 -0
  419. package/dist/schema/key.es.js +28 -0
  420. package/dist/schema/key.es.js.map +1 -0
  421. package/dist/schema/mcpServer.cjs +33 -0
  422. package/dist/schema/mcpServer.cjs.map +1 -0
  423. package/dist/schema/mcpServer.es.js +31 -0
  424. package/dist/schema/mcpServer.es.js.map +1 -0
  425. package/dist/schema/memory.cjs +39 -0
  426. package/dist/schema/memory.cjs.map +1 -0
  427. package/dist/schema/memory.es.js +37 -0
  428. package/dist/schema/memory.es.js.map +1 -0
  429. package/dist/schema/message.cjs +167 -0
  430. package/dist/schema/message.cjs.map +1 -0
  431. package/dist/schema/message.es.js +165 -0
  432. package/dist/schema/message.es.js.map +1 -0
  433. package/dist/schema/pluginAuth.cjs +28 -0
  434. package/dist/schema/pluginAuth.cjs.map +1 -0
  435. package/dist/schema/pluginAuth.es.js +26 -0
  436. package/dist/schema/pluginAuth.es.js.map +1 -0
  437. package/dist/schema/preset.cjs +36 -0
  438. package/dist/schema/preset.cjs.map +1 -0
  439. package/dist/schema/preset.es.js +34 -0
  440. package/dist/schema/preset.es.js.map +1 -0
  441. package/dist/schema/prompt.cjs +36 -0
  442. package/dist/schema/prompt.cjs.map +1 -0
  443. package/dist/schema/prompt.es.js +34 -0
  444. package/dist/schema/prompt.es.js.map +1 -0
  445. package/dist/schema/promptGroup.cjs +65 -0
  446. package/dist/schema/promptGroup.cjs.map +1 -0
  447. package/dist/schema/promptGroup.es.js +63 -0
  448. package/dist/schema/promptGroup.es.js.map +1 -0
  449. package/dist/schema/role.cjs +84 -0
  450. package/dist/schema/role.cjs.map +1 -0
  451. package/dist/schema/role.es.js +82 -0
  452. package/dist/schema/role.es.js.map +1 -0
  453. package/dist/schema/session.cjs +27 -0
  454. package/dist/schema/session.cjs.map +1 -0
  455. package/dist/schema/session.es.js +25 -0
  456. package/dist/schema/session.es.js.map +1 -0
  457. package/dist/schema/share.cjs +40 -0
  458. package/dist/schema/share.cjs.map +1 -0
  459. package/dist/schema/share.es.js +38 -0
  460. package/dist/schema/share.es.js.map +1 -0
  461. package/dist/schema/systemGrant.cjs +66 -0
  462. package/dist/schema/systemGrant.cjs.map +1 -0
  463. package/dist/schema/systemGrant.es.js +64 -0
  464. package/dist/schema/systemGrant.es.js.map +1 -0
  465. package/dist/schema/token.cjs +45 -0
  466. package/dist/schema/token.cjs.map +1 -0
  467. package/dist/schema/token.es.js +43 -0
  468. package/dist/schema/token.es.js.map +1 -0
  469. package/dist/schema/toolCall.cjs +44 -0
  470. package/dist/schema/toolCall.cjs.map +1 -0
  471. package/dist/schema/toolCall.es.js +42 -0
  472. package/dist/schema/toolCall.es.js.map +1 -0
  473. package/dist/schema/transaction.cjs +48 -0
  474. package/dist/schema/transaction.cjs.map +1 -0
  475. package/dist/schema/transaction.es.js +46 -0
  476. package/dist/schema/transaction.es.js.map +1 -0
  477. package/dist/schema/user.cjs +165 -0
  478. package/dist/schema/user.cjs.map +1 -0
  479. package/dist/schema/user.es.js +163 -0
  480. package/dist/schema/user.es.js.map +1 -0
  481. package/dist/types/methods/config.d.ts +1 -0
  482. package/dist/utils/object-traverse.cjs +158 -0
  483. package/dist/utils/object-traverse.cjs.map +1 -0
  484. package/dist/utils/object-traverse.es.js +156 -0
  485. package/dist/utils/object-traverse.es.js.map +1 -0
  486. package/dist/utils/principal.cjs +24 -0
  487. package/dist/utils/principal.cjs.map +1 -0
  488. package/dist/utils/principal.es.js +22 -0
  489. package/dist/utils/principal.es.js.map +1 -0
  490. package/dist/utils/string.cjs +11 -0
  491. package/dist/utils/string.cjs.map +1 -0
  492. package/dist/utils/string.es.js +9 -0
  493. package/dist/utils/string.es.js.map +1 -0
  494. package/dist/utils/tempChatRetention.cjs +70 -0
  495. package/dist/utils/tempChatRetention.cjs.map +1 -0
  496. package/dist/utils/tempChatRetention.es.js +64 -0
  497. package/dist/utils/tempChatRetention.es.js.map +1 -0
  498. package/dist/utils/transactions.cjs +60 -0
  499. package/dist/utils/transactions.cjs.map +1 -0
  500. package/dist/utils/transactions.es.js +56 -0
  501. package/dist/utils/transactions.es.js.map +1 -0
  502. package/package.json +7 -1
@@ -0,0 +1,547 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var librechatDataProvider = require('librechat-data-provider');
5
+ var meilisearch = require('meilisearch');
6
+ var meiliLogger = require('../../config/meiliLogger.cjs');
7
+
8
+ // Environment flags
9
+ /**
10
+ * Flag to indicate if search is enabled based on environment variables.
11
+ */
12
+ const searchEnabled = process.env.SEARCH != null && process.env.SEARCH.toLowerCase() === 'true';
13
+ /**
14
+ * Flag to indicate if MeiliSearch is enabled based on required environment variables.
15
+ */
16
+ const meiliEnabled = process.env.MEILI_HOST != null && process.env.MEILI_MASTER_KEY != null && searchEnabled;
17
+ /**
18
+ * Get sync configuration from environment variables
19
+ */
20
+ const getSyncConfig = () => ({
21
+ batchSize: parseInt(process.env.MEILI_SYNC_BATCH_SIZE || '100', 10),
22
+ delayMs: parseInt(process.env.MEILI_SYNC_DELAY_MS || '100', 10),
23
+ });
24
+ /**
25
+ * Validates the required options for configuring the mongoMeili plugin.
26
+ */
27
+ const validateOptions = (options) => {
28
+ const requiredKeys = ['host', 'apiKey', 'indexName'];
29
+ requiredKeys.forEach((key) => {
30
+ if (!options[key]) {
31
+ throw new Error(`Missing mongoMeili Option: ${key}`);
32
+ }
33
+ });
34
+ };
35
+ /**
36
+ * Helper function to process documents in batches with rate limiting
37
+ */
38
+ const processBatch = async (items, batchSize, delayMs, processor) => {
39
+ for (let i = 0; i < items.length; i += batchSize) {
40
+ const batch = items.slice(i, i + batchSize);
41
+ await processor(batch);
42
+ // Add delay between batches to prevent overwhelming resources
43
+ if (i + batchSize < items.length && delayMs > 0) {
44
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
45
+ }
46
+ }
47
+ };
48
+ /**
49
+ * Factory function to create a MeiliMongooseModel class which extends a Mongoose model.
50
+ * This class contains static and instance methods to synchronize and manage the MeiliSearch index
51
+ * corresponding to the MongoDB collection.
52
+ *
53
+ * @param config - Configuration object.
54
+ * @param config.index - The MeiliSearch index object.
55
+ * @param config.attributesToIndex - List of attributes to index.
56
+ * @param config.syncOptions - Sync configuration options.
57
+ * @returns A class definition that will be loaded into the Mongoose schema.
58
+ */
59
+ const createMeiliMongooseModel = ({ index, attributesToIndex, syncOptions, }) => {
60
+ const primaryKey = attributesToIndex[0];
61
+ const syncConfig = { ...getSyncConfig(), ...syncOptions };
62
+ class MeiliMongooseModel {
63
+ /**
64
+ * Get the current sync progress
65
+ */
66
+ static async getSyncProgress() {
67
+ const totalDocuments = await this.countDocuments({ expiredAt: null });
68
+ const indexedDocuments = await this.countDocuments({ expiredAt: null, _meiliIndex: true });
69
+ return {
70
+ totalProcessed: indexedDocuments,
71
+ totalDocuments,
72
+ isComplete: indexedDocuments === totalDocuments,
73
+ };
74
+ }
75
+ /**
76
+ * Synchronizes data between the MongoDB collection and the MeiliSearch index by
77
+ * incrementally indexing only documents where `expiredAt` is `null` and `_meiliIndex` is not `true`
78
+ * (i.e., non-expired documents that have not yet been indexed, including those with missing or null `_meiliIndex`).
79
+ * */
80
+ static async syncWithMeili() {
81
+ const startTime = Date.now();
82
+ const { batchSize, delayMs } = syncConfig;
83
+ const collectionName = primaryKey === 'messageId' ? 'messages' : 'conversations';
84
+ meiliLogger.info(`[syncWithMeili] Starting sync for ${collectionName} with batch size ${batchSize}`);
85
+ // Get approximate total count for raw estimation, the sync should not overcome this number
86
+ const approxTotalCount = await this.estimatedDocumentCount();
87
+ meiliLogger.info(`[syncWithMeili] Approximate total number of all ${collectionName}: ${approxTotalCount}`);
88
+ try {
89
+ // First, handle documents that need to be removed from Meili
90
+ meiliLogger.info(`[syncWithMeili] Starting cleanup of Meili index ${index.uid} before sync`);
91
+ await this.cleanupMeiliIndex(index, primaryKey, batchSize, delayMs);
92
+ meiliLogger.info(`[syncWithMeili] Completed cleanup of Meili index: ${index.uid}`);
93
+ }
94
+ catch (error) {
95
+ meiliLogger.error('[syncWithMeili] Error during cleanup Meili before sync:', error);
96
+ throw error;
97
+ }
98
+ let processedCount = 0;
99
+ let hasMore = true;
100
+ while (hasMore) {
101
+ const query = {
102
+ expiredAt: null,
103
+ _meiliIndex: { $ne: true },
104
+ };
105
+ try {
106
+ const documents = await this.find(query)
107
+ .select(attributesToIndex.join(' ') + ' _meiliIndex')
108
+ .limit(batchSize)
109
+ .lean();
110
+ // Check if there are more documents to process
111
+ if (documents.length === 0) {
112
+ meiliLogger.info('[syncWithMeili] No more documents to process');
113
+ break;
114
+ }
115
+ // Process the batch
116
+ await this.processSyncBatch(index, documents);
117
+ processedCount += documents.length;
118
+ meiliLogger.info(`[syncWithMeili] Processed: ${processedCount}`);
119
+ if (documents.length < batchSize) {
120
+ hasMore = false;
121
+ }
122
+ // Add delay to prevent overwhelming resources
123
+ if (hasMore && delayMs > 0) {
124
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
125
+ }
126
+ }
127
+ catch (error) {
128
+ meiliLogger.error('[syncWithMeili] Error processing documents batch:', error);
129
+ throw error;
130
+ }
131
+ }
132
+ const duration = Date.now() - startTime;
133
+ meiliLogger.info(`[syncWithMeili] Completed sync for ${collectionName}. Processed ${processedCount} documents in ${duration}ms`);
134
+ }
135
+ /**
136
+ * Process a batch of documents for syncing
137
+ */
138
+ static async processSyncBatch(index, documents) {
139
+ if (documents.length === 0) {
140
+ return;
141
+ }
142
+ // Format documents for MeiliSearch
143
+ const formattedDocs = documents.map((doc) => _.omitBy(_.pick(doc, attributesToIndex), (_v, k) => k.startsWith('$')));
144
+ try {
145
+ // Add documents to MeiliSearch
146
+ await index.addDocumentsInBatches(formattedDocs);
147
+ // Update MongoDB to mark documents as indexed.
148
+ // { timestamps: false } prevents Mongoose from touching updatedAt, preserving
149
+ // original conversation/message timestamps (fixes sidebar chronological sort).
150
+ const docsIds = documents.map((doc) => doc._id);
151
+ await this.updateMany({ _id: { $in: docsIds } }, { $set: { _meiliIndex: true } }, { timestamps: false });
152
+ }
153
+ catch (error) {
154
+ meiliLogger.error('[processSyncBatch] Error processing batch:', error);
155
+ throw error;
156
+ }
157
+ }
158
+ /**
159
+ * Clean up documents in MeiliSearch that no longer exist in MongoDB
160
+ */
161
+ static async cleanupMeiliIndex(index, primaryKey, batchSize, delayMs) {
162
+ try {
163
+ let offset = 0;
164
+ let moreDocuments = true;
165
+ while (moreDocuments) {
166
+ const batch = await index.getDocuments({ limit: batchSize, offset });
167
+ if (batch.results.length === 0) {
168
+ moreDocuments = false;
169
+ break;
170
+ }
171
+ const meiliIds = batch.results.map((doc) => doc[primaryKey]);
172
+ const query = {};
173
+ query[primaryKey] = { $in: meiliIds };
174
+ // Find which documents exist in MongoDB
175
+ const existingDocs = await this.find(query).select(primaryKey).lean();
176
+ const existingIds = new Set(existingDocs.map((doc) => doc[primaryKey]));
177
+ // Delete documents that don't exist in MongoDB
178
+ const toDelete = meiliIds.filter((id) => !existingIds.has(id));
179
+ if (toDelete.length > 0) {
180
+ await index.deleteDocuments(toDelete.map(String));
181
+ meiliLogger.debug(`[cleanupMeiliIndex] Deleted ${toDelete.length} orphaned documents`);
182
+ }
183
+ // if fetch documents request returns less documents than limit, all documents are processed
184
+ if (batch.results.length < batchSize) {
185
+ break;
186
+ }
187
+ offset += batchSize - toDelete.length;
188
+ // Add delay between batches
189
+ if (delayMs > 0) {
190
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
191
+ }
192
+ }
193
+ }
194
+ catch (error) {
195
+ meiliLogger.error('[cleanupMeiliIndex] Error during cleanup:', error);
196
+ }
197
+ }
198
+ /**
199
+ * Updates settings for the MeiliSearch index
200
+ */
201
+ static async setMeiliIndexSettings(settings) {
202
+ return await index.updateSettings(settings);
203
+ }
204
+ /**
205
+ * Searches the MeiliSearch index and optionally populates results
206
+ */
207
+ static async meiliSearch(q, params, populate) {
208
+ const data = await index.search(q, params);
209
+ if (populate) {
210
+ const query = {};
211
+ query[primaryKey] = _.map(data.hits, (hit) => hit[primaryKey]);
212
+ const projection = Object.keys(this.schema.obj).reduce((results, key) => {
213
+ if (!key.startsWith('$')) {
214
+ results[key] = 1;
215
+ }
216
+ return results;
217
+ }, { _id: 1, __v: 1 });
218
+ const hitsFromMongoose = await this.find(query, projection).lean();
219
+ const populatedHits = data.hits.map((hit) => {
220
+ hit[primaryKey];
221
+ const originalHit = _.find(hitsFromMongoose, (item) => {
222
+ const typedItem = item;
223
+ return typedItem[primaryKey] === hit[primaryKey];
224
+ });
225
+ return {
226
+ ...(originalHit && typeof originalHit === 'object' ? originalHit : {}),
227
+ ...hit,
228
+ };
229
+ });
230
+ data.hits = populatedHits;
231
+ }
232
+ return data;
233
+ }
234
+ /**
235
+ * Preprocesses the current document for indexing
236
+ */
237
+ preprocessObjectForIndex() {
238
+ const object = _.omitBy(_.pick(this.toJSON(), attributesToIndex), (v, k) => k.startsWith('$'));
239
+ if (object.conversationId &&
240
+ typeof object.conversationId === 'string' &&
241
+ object.conversationId.includes('|')) {
242
+ object.conversationId = object.conversationId.replace(/\|/g, '--');
243
+ }
244
+ if (object.content && Array.isArray(object.content)) {
245
+ object.text = librechatDataProvider.parseTextParts(object.content);
246
+ delete object.content;
247
+ }
248
+ return object;
249
+ }
250
+ /**
251
+ * Adds the current document to the MeiliSearch index with retry logic
252
+ */
253
+ async addObjectToMeili(next) {
254
+ // If this conversation or message has a TTL, don't index it
255
+ if (!_.isNil(this.expiredAt)) {
256
+ return next();
257
+ }
258
+ const object = this.preprocessObjectForIndex();
259
+ const maxRetries = 3;
260
+ let retryCount = 0;
261
+ while (retryCount < maxRetries) {
262
+ try {
263
+ await index.addDocuments([object]);
264
+ break;
265
+ }
266
+ catch (error) {
267
+ retryCount++;
268
+ if (retryCount >= maxRetries) {
269
+ meiliLogger.error('[addObjectToMeili] Error adding document to Meili after retries:', error);
270
+ return next();
271
+ }
272
+ // Exponential backoff
273
+ await new Promise((resolve) => setTimeout(resolve, Math.pow(2, retryCount) * 1000));
274
+ }
275
+ }
276
+ try {
277
+ await this.collection.updateMany({ _id: this._id }, { $set: { _meiliIndex: true } });
278
+ }
279
+ catch (error) {
280
+ meiliLogger.error('[addObjectToMeili] Error updating _meiliIndex field:', error);
281
+ return next();
282
+ }
283
+ next();
284
+ }
285
+ /**
286
+ * Updates the current document in the MeiliSearch index
287
+ */
288
+ async updateObjectToMeili(next) {
289
+ try {
290
+ const object = _.omitBy(_.pick(this.toJSON(), attributesToIndex), (v, k) => k.startsWith('$'));
291
+ await index.updateDocuments([object]);
292
+ next();
293
+ }
294
+ catch (error) {
295
+ meiliLogger.error('[updateObjectToMeili] Error updating document in Meili:', error);
296
+ return next();
297
+ }
298
+ }
299
+ /**
300
+ * Deletes the current document from the MeiliSearch index.
301
+ *
302
+ * @returns {Promise<void>}
303
+ */
304
+ async deleteObjectFromMeili(next) {
305
+ try {
306
+ await index.deleteDocument(this._id);
307
+ next();
308
+ }
309
+ catch (error) {
310
+ meiliLogger.error('[deleteObjectFromMeili] Error deleting document from Meili:', error);
311
+ return next();
312
+ }
313
+ }
314
+ /**
315
+ * Post-save hook to synchronize the document with MeiliSearch.
316
+ *
317
+ * If the document is already indexed (i.e. `_meiliIndex` is true), it updates it;
318
+ * otherwise, it adds the document to the index.
319
+ */
320
+ postSaveHook(next) {
321
+ if (this._meiliIndex) {
322
+ this.updateObjectToMeili(next);
323
+ }
324
+ else {
325
+ this.addObjectToMeili(next);
326
+ }
327
+ }
328
+ /**
329
+ * Post-update hook to update the document in MeiliSearch.
330
+ *
331
+ * This hook is triggered after a document update, ensuring that changes are
332
+ * propagated to the MeiliSearch index if the document is indexed.
333
+ */
334
+ postUpdateHook(next) {
335
+ if (this._meiliIndex) {
336
+ this.updateObjectToMeili(next);
337
+ }
338
+ else {
339
+ next();
340
+ }
341
+ }
342
+ /**
343
+ * Post-remove hook to delete the document from MeiliSearch.
344
+ *
345
+ * This hook is triggered after a document is removed, ensuring that the document
346
+ * is also removed from the MeiliSearch index if it was previously indexed.
347
+ */
348
+ postRemoveHook(next) {
349
+ if (this._meiliIndex) {
350
+ this.deleteObjectFromMeili(next);
351
+ }
352
+ else {
353
+ next();
354
+ }
355
+ }
356
+ }
357
+ return MeiliMongooseModel;
358
+ };
359
+ /**
360
+ * Mongoose plugin to synchronize MongoDB collections with a MeiliSearch index.
361
+ *
362
+ * This plugin:
363
+ * - Validates the provided options.
364
+ * - Adds a `_meiliIndex` field to the schema to track indexing status.
365
+ * - Sets up a MeiliSearch client and creates an index if it doesn't already exist.
366
+ * - Loads class methods for syncing, searching, and managing documents in MeiliSearch.
367
+ * - Registers Mongoose hooks (post-save, post-update, post-remove, etc.) to maintain index consistency.
368
+ *
369
+ * @param schema - The Mongoose schema to which the plugin is applied.
370
+ * @param options - Configuration options.
371
+ * @param options.host - The MeiliSearch host.
372
+ * @param options.apiKey - The MeiliSearch API key.
373
+ * @param options.indexName - The name of the MeiliSearch index.
374
+ * @param options.primaryKey - The primary key field for indexing.
375
+ * @param options.syncBatchSize - Batch size for sync operations.
376
+ * @param options.syncDelayMs - Delay between batches in milliseconds.
377
+ */
378
+ function mongoMeili(schema, options) {
379
+ const mongoose = options.mongoose;
380
+ validateOptions(options);
381
+ // Add _meiliIndex field to the schema to track if a document has been indexed in MeiliSearch.
382
+ schema.add({
383
+ _meiliIndex: {
384
+ type: Boolean,
385
+ required: false,
386
+ select: false,
387
+ default: false,
388
+ },
389
+ });
390
+ const { host, apiKey, indexName, primaryKey } = options;
391
+ const syncOptions = {
392
+ batchSize: options.syncBatchSize || getSyncConfig().batchSize,
393
+ delayMs: options.syncDelayMs || getSyncConfig().delayMs,
394
+ };
395
+ const client = new meilisearch.MeiliSearch({ host, apiKey });
396
+ /** Create index only if it doesn't exist */
397
+ const index = client.index(indexName);
398
+ (async () => {
399
+ try {
400
+ await index.getRawInfo();
401
+ meiliLogger.debug(`[mongoMeili] Index ${indexName} already exists`);
402
+ }
403
+ catch (error) {
404
+ const errorCode = error === null || error === void 0 ? void 0 : error.code;
405
+ if (errorCode === 'index_not_found') {
406
+ try {
407
+ meiliLogger.info(`[mongoMeili] Creating new index: ${indexName}`);
408
+ const enqueued = await client.createIndex(indexName, { primaryKey });
409
+ const task = await client.waitForTask(enqueued.taskUid, {
410
+ timeOutMs: 10000,
411
+ intervalMs: 100,
412
+ });
413
+ meiliLogger.debug(`[mongoMeili] Index ${indexName} creation task:`, task);
414
+ if (task.status !== 'succeeded') {
415
+ const taskError = task.error;
416
+ if ((taskError === null || taskError === void 0 ? void 0 : taskError.code) === 'index_already_exists') {
417
+ meiliLogger.debug(`[mongoMeili] Index ${indexName} was created by another instance`);
418
+ }
419
+ else {
420
+ meiliLogger.warn(`[mongoMeili] Index ${indexName} creation failed:`, taskError);
421
+ }
422
+ }
423
+ else {
424
+ meiliLogger.info(`[mongoMeili] Successfully created index: ${indexName}`);
425
+ }
426
+ }
427
+ catch (createError) {
428
+ if (createError instanceof meilisearch.MeiliSearchTimeOutError) {
429
+ meiliLogger.warn(`[mongoMeili] Timed out waiting for index ${indexName} creation`);
430
+ }
431
+ else {
432
+ meiliLogger.warn(`[mongoMeili] Error creating index ${indexName}:`, createError);
433
+ }
434
+ }
435
+ }
436
+ else {
437
+ meiliLogger.error(`[mongoMeili] Error checking index ${indexName}:`, error);
438
+ }
439
+ }
440
+ try {
441
+ await index.updateSettings({
442
+ filterableAttributes: ['user'],
443
+ });
444
+ meiliLogger.debug(`[mongoMeili] Updated index ${indexName} settings to make 'user' filterable`);
445
+ }
446
+ catch (settingsError) {
447
+ meiliLogger.error(`[mongoMeili] Error updating index settings for ${indexName}:`, settingsError);
448
+ }
449
+ })();
450
+ // Collect attributes from the schema that should be indexed
451
+ const attributesToIndex = [
452
+ ...Object.entries(schema.obj).reduce((results, [key, value]) => {
453
+ const schemaValue = value;
454
+ return schemaValue.meiliIndex ? [...results, key] : results;
455
+ }, []),
456
+ ];
457
+ // CRITICAL: Always include 'user' field for proper filtering
458
+ // This ensures existing deployments can filter by user after migration
459
+ if (schema.obj.user && !attributesToIndex.includes('user')) {
460
+ attributesToIndex.push('user');
461
+ meiliLogger.debug(`[mongoMeili] Added 'user' field to ${indexName} index attributes`);
462
+ }
463
+ schema.loadClass(createMeiliMongooseModel({ index, attributesToIndex, syncOptions }));
464
+ // Register Mongoose hooks
465
+ schema.post('save', function (doc, next) {
466
+ var _a;
467
+ (_a = doc.postSaveHook) === null || _a === void 0 ? void 0 : _a.call(doc, next);
468
+ });
469
+ schema.post('updateOne', function (doc, next) {
470
+ var _a;
471
+ (_a = doc.postUpdateHook) === null || _a === void 0 ? void 0 : _a.call(doc, next);
472
+ });
473
+ schema.post('deleteOne', function (doc, next) {
474
+ var _a;
475
+ (_a = doc.postRemoveHook) === null || _a === void 0 ? void 0 : _a.call(doc, next);
476
+ });
477
+ // Pre-deleteMany hook: remove corresponding documents from MeiliSearch when multiple documents are deleted.
478
+ schema.pre('deleteMany', async function (next) {
479
+ if (!meiliEnabled) {
480
+ return next();
481
+ }
482
+ try {
483
+ const conditions = this.getQuery();
484
+ const { batchSize, delayMs } = syncOptions;
485
+ if (Object.prototype.hasOwnProperty.call(schema.obj, 'messages')) {
486
+ const convoIndex = client.index('convos');
487
+ const deletedConvos = await mongoose
488
+ .model('Conversation')
489
+ .find(conditions)
490
+ .select('conversationId')
491
+ .lean();
492
+ // Process deletions in batches
493
+ await processBatch(deletedConvos, batchSize, delayMs, async (batch) => {
494
+ const promises = batch.map((convo) => convoIndex.deleteDocument(convo.conversationId));
495
+ await Promise.all(promises);
496
+ });
497
+ }
498
+ if (Object.prototype.hasOwnProperty.call(schema.obj, 'messageId')) {
499
+ const messageIndex = client.index('messages');
500
+ const deletedMessages = await mongoose
501
+ .model('Message')
502
+ .find(conditions)
503
+ .select('messageId')
504
+ .lean();
505
+ // Process deletions in batches
506
+ await processBatch(deletedMessages, batchSize, delayMs, async (batch) => {
507
+ const promises = batch.map((message) => messageIndex.deleteDocument(message.messageId));
508
+ await Promise.all(promises);
509
+ });
510
+ }
511
+ return next();
512
+ }
513
+ catch (error) {
514
+ if (meiliEnabled) {
515
+ meiliLogger.error('[MeiliMongooseModel.deleteMany] There was an issue deleting conversation indexes upon deletion. Next startup may trigger syncing.', error);
516
+ }
517
+ return next();
518
+ }
519
+ });
520
+ // Post-findOneAndUpdate hook
521
+ schema.post('findOneAndUpdate', async function (doc, next) {
522
+ var _a;
523
+ if (!meiliEnabled) {
524
+ return next();
525
+ }
526
+ if (doc.unfinished) {
527
+ return next();
528
+ }
529
+ let meiliDoc;
530
+ if (doc.messages) {
531
+ try {
532
+ meiliDoc = await client.index('convos').getDocument(doc.conversationId);
533
+ }
534
+ catch (error) {
535
+ meiliLogger.debug('[MeiliMongooseModel.findOneAndUpdate] Convo not found in MeiliSearch and will index ' +
536
+ doc.conversationId, error);
537
+ }
538
+ }
539
+ if (meiliDoc && meiliDoc.title === doc.title) {
540
+ return next();
541
+ }
542
+ (_a = doc.postSaveHook) === null || _a === void 0 ? void 0 : _a.call(doc, next);
543
+ });
544
+ }
545
+
546
+ module.exports = mongoMeili;
547
+ //# sourceMappingURL=mongoMeili.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoMeili.cjs","sources":["../../../src/models/plugins/mongoMeili.ts"],"sourcesContent":[null],"names":["logger","parseTextParts","MeiliSearch","MeiliSearchTimeOutError"],"mappings":"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"}