@librechat/data-schemas 0.0.42 → 0.0.44

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 (503) 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 -11725
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.es.js +52 -11644
  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/admin/capabilities.d.ts +2 -0
  482. package/dist/types/methods/config.d.ts +1 -0
  483. package/dist/utils/object-traverse.cjs +158 -0
  484. package/dist/utils/object-traverse.cjs.map +1 -0
  485. package/dist/utils/object-traverse.es.js +156 -0
  486. package/dist/utils/object-traverse.es.js.map +1 -0
  487. package/dist/utils/principal.cjs +24 -0
  488. package/dist/utils/principal.cjs.map +1 -0
  489. package/dist/utils/principal.es.js +22 -0
  490. package/dist/utils/principal.es.js.map +1 -0
  491. package/dist/utils/string.cjs +11 -0
  492. package/dist/utils/string.cjs.map +1 -0
  493. package/dist/utils/string.es.js +9 -0
  494. package/dist/utils/string.es.js.map +1 -0
  495. package/dist/utils/tempChatRetention.cjs +70 -0
  496. package/dist/utils/tempChatRetention.cjs.map +1 -0
  497. package/dist/utils/tempChatRetention.es.js +64 -0
  498. package/dist/utils/tempChatRetention.es.js.map +1 -0
  499. package/dist/utils/transactions.cjs +60 -0
  500. package/dist/utils/transactions.cjs.map +1 -0
  501. package/dist/utils/transactions.es.js +56 -0
  502. package/dist/utils/transactions.es.js.map +1 -0
  503. package/package.json +2 -1
@@ -0,0 +1,221 @@
1
+ 'use strict';
2
+
3
+ var index = require('../crypto/index.cjs');
4
+ var winston = require('../config/winston.cjs');
5
+
6
+ class SessionError extends Error {
7
+ constructor(message, code = 'SESSION_ERROR') {
8
+ super(message);
9
+ this.name = 'SessionError';
10
+ this.code = code;
11
+ }
12
+ }
13
+ /** Default refresh token expiry: 7 days in milliseconds */
14
+ const DEFAULT_REFRESH_TOKEN_EXPIRY = 1000 * 60 * 60 * 24 * 7;
15
+ // Factory function that takes mongoose instance and returns the methods
16
+ function createSessionMethods(mongoose) {
17
+ /**
18
+ * Creates a new session for a user
19
+ */
20
+ async function createSession(userId, options = {}) {
21
+ var _a;
22
+ if (!userId) {
23
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
24
+ }
25
+ const expiresIn = (_a = options.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_REFRESH_TOKEN_EXPIRY;
26
+ try {
27
+ const Session = mongoose.models.Session;
28
+ const currentSession = new Session({
29
+ user: userId,
30
+ expiration: options.expiration || new Date(Date.now() + expiresIn),
31
+ });
32
+ const refreshToken = await generateRefreshToken(currentSession);
33
+ return { session: currentSession, refreshToken };
34
+ }
35
+ catch (error) {
36
+ winston.error('[createSession] Error creating session:', error);
37
+ throw new SessionError('Failed to create session', 'CREATE_SESSION_FAILED');
38
+ }
39
+ }
40
+ /**
41
+ * Finds a session by various parameters
42
+ */
43
+ async function findSession(params, options = { lean: true }) {
44
+ try {
45
+ const Session = mongoose.models.Session;
46
+ const query = {};
47
+ if (!params.refreshToken && !params.userId && !params.sessionId) {
48
+ throw new SessionError('At least one search parameter is required', 'INVALID_SEARCH_PARAMS');
49
+ }
50
+ if (params.refreshToken) {
51
+ const tokenHash = await index.hashToken(params.refreshToken);
52
+ query.refreshTokenHash = tokenHash;
53
+ }
54
+ if (params.userId) {
55
+ query.user = params.userId;
56
+ }
57
+ if (params.sessionId) {
58
+ const sessionId = typeof params.sessionId === 'object' &&
59
+ params.sessionId !== null &&
60
+ 'sessionId' in params.sessionId
61
+ ? params.sessionId.sessionId
62
+ : params.sessionId;
63
+ if (!mongoose.Types.ObjectId.isValid(sessionId)) {
64
+ throw new SessionError('Invalid session ID format', 'INVALID_SESSION_ID');
65
+ }
66
+ query._id = sessionId;
67
+ }
68
+ // Add expiration check to only return valid sessions
69
+ query.expiration = { $gt: new Date() };
70
+ const sessionQuery = Session.findOne(query);
71
+ if (options.lean) {
72
+ return (await sessionQuery.lean());
73
+ }
74
+ return await sessionQuery.exec();
75
+ }
76
+ catch (error) {
77
+ winston.error('[findSession] Error finding session:', error);
78
+ throw new SessionError('Failed to find session', 'FIND_SESSION_FAILED');
79
+ }
80
+ }
81
+ /**
82
+ * Updates session expiration
83
+ */
84
+ async function updateExpiration(session, newExpiration, options = {}) {
85
+ var _a;
86
+ const expiresIn = (_a = options.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_REFRESH_TOKEN_EXPIRY;
87
+ try {
88
+ const Session = mongoose.models.Session;
89
+ const sessionDoc = typeof session === 'string' ? await Session.findById(session) : session;
90
+ if (!sessionDoc) {
91
+ throw new SessionError('Session not found', 'SESSION_NOT_FOUND');
92
+ }
93
+ sessionDoc.expiration = newExpiration || new Date(Date.now() + expiresIn);
94
+ return await sessionDoc.save();
95
+ }
96
+ catch (error) {
97
+ winston.error('[updateExpiration] Error updating session:', error);
98
+ throw new SessionError('Failed to update session expiration', 'UPDATE_EXPIRATION_FAILED');
99
+ }
100
+ }
101
+ /**
102
+ * Deletes a session by refresh token or session ID
103
+ */
104
+ async function deleteSession(params) {
105
+ try {
106
+ const Session = mongoose.models.Session;
107
+ if (!params.refreshToken && !params.sessionId) {
108
+ throw new SessionError('Either refreshToken or sessionId is required', 'INVALID_DELETE_PARAMS');
109
+ }
110
+ const query = {};
111
+ if (params.refreshToken) {
112
+ query.refreshTokenHash = await index.hashToken(params.refreshToken);
113
+ }
114
+ if (params.sessionId) {
115
+ query._id = params.sessionId;
116
+ }
117
+ const result = await Session.deleteOne(query);
118
+ if (result.deletedCount === 0) {
119
+ winston.warn('[deleteSession] No session found to delete');
120
+ }
121
+ return result;
122
+ }
123
+ catch (error) {
124
+ winston.error('[deleteSession] Error deleting session:', error);
125
+ throw new SessionError('Failed to delete session', 'DELETE_SESSION_FAILED');
126
+ }
127
+ }
128
+ /**
129
+ * Deletes all sessions for a user
130
+ */
131
+ async function deleteAllUserSessions(userId, options = {}) {
132
+ try {
133
+ const Session = mongoose.models.Session;
134
+ if (!userId) {
135
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
136
+ }
137
+ const userIdString = typeof userId === 'object' && userId !== null ? userId.userId : userId;
138
+ if (!mongoose.Types.ObjectId.isValid(userIdString)) {
139
+ throw new SessionError('Invalid user ID format', 'INVALID_USER_ID_FORMAT');
140
+ }
141
+ const query = { user: userIdString };
142
+ if (options.excludeCurrentSession && options.currentSessionId) {
143
+ query._id = { $ne: options.currentSessionId };
144
+ }
145
+ const result = await Session.deleteMany(query);
146
+ if (result.deletedCount && result.deletedCount > 0) {
147
+ winston.debug(`[deleteAllUserSessions] Deleted ${result.deletedCount} sessions for user ${userIdString}.`);
148
+ }
149
+ return result;
150
+ }
151
+ catch (error) {
152
+ winston.error('[deleteAllUserSessions] Error deleting user sessions:', error);
153
+ throw new SessionError('Failed to delete user sessions', 'DELETE_ALL_SESSIONS_FAILED');
154
+ }
155
+ }
156
+ /**
157
+ * Generates a refresh token for a session
158
+ */
159
+ async function generateRefreshToken(session) {
160
+ if (!session || !session.user) {
161
+ throw new SessionError('Invalid session object', 'INVALID_SESSION');
162
+ }
163
+ try {
164
+ const expiresIn = session.expiration
165
+ ? session.expiration.getTime()
166
+ : Date.now() + DEFAULT_REFRESH_TOKEN_EXPIRY;
167
+ if (!session.expiration) {
168
+ session.expiration = new Date(expiresIn);
169
+ }
170
+ const refreshToken = await index.signPayload({
171
+ payload: {
172
+ id: session.user,
173
+ sessionId: session._id,
174
+ },
175
+ secret: process.env.JWT_REFRESH_SECRET,
176
+ expirationTime: Math.floor((expiresIn - Date.now()) / 1000),
177
+ });
178
+ session.refreshTokenHash = await index.hashToken(refreshToken);
179
+ await session.save();
180
+ return refreshToken;
181
+ }
182
+ catch (error) {
183
+ winston.error('[generateRefreshToken] Error generating refresh token:', error);
184
+ throw new SessionError('Failed to generate refresh token', 'GENERATE_TOKEN_FAILED');
185
+ }
186
+ }
187
+ /**
188
+ * Counts active sessions for a user
189
+ */
190
+ async function countActiveSessions(userId) {
191
+ try {
192
+ const Session = mongoose.models.Session;
193
+ if (!userId) {
194
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
195
+ }
196
+ return await Session.countDocuments({
197
+ user: userId,
198
+ expiration: { $gt: new Date() },
199
+ });
200
+ }
201
+ catch (error) {
202
+ winston.error('[countActiveSessions] Error counting active sessions:', error);
203
+ throw new SessionError('Failed to count active sessions', 'COUNT_SESSIONS_FAILED');
204
+ }
205
+ }
206
+ return {
207
+ findSession,
208
+ SessionError,
209
+ deleteSession,
210
+ createSession,
211
+ updateExpiration,
212
+ countActiveSessions,
213
+ generateRefreshToken,
214
+ deleteAllUserSessions,
215
+ };
216
+ }
217
+
218
+ exports.DEFAULT_REFRESH_TOKEN_EXPIRY = DEFAULT_REFRESH_TOKEN_EXPIRY;
219
+ exports.SessionError = SessionError;
220
+ exports.createSessionMethods = createSessionMethods;
221
+ //# sourceMappingURL=session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.cjs","sources":["../../src/methods/session.ts"],"sourcesContent":[null],"names":["logger","hashToken","signPayload"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ import { signPayload, hashToken } from '../crypto/index.es.js';
2
+ import logger from '../config/winston.es.js';
3
+
4
+ class SessionError extends Error {
5
+ constructor(message, code = 'SESSION_ERROR') {
6
+ super(message);
7
+ this.name = 'SessionError';
8
+ this.code = code;
9
+ }
10
+ }
11
+ /** Default refresh token expiry: 7 days in milliseconds */
12
+ const DEFAULT_REFRESH_TOKEN_EXPIRY = 1000 * 60 * 60 * 24 * 7;
13
+ // Factory function that takes mongoose instance and returns the methods
14
+ function createSessionMethods(mongoose) {
15
+ /**
16
+ * Creates a new session for a user
17
+ */
18
+ async function createSession(userId, options = {}) {
19
+ var _a;
20
+ if (!userId) {
21
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
22
+ }
23
+ const expiresIn = (_a = options.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_REFRESH_TOKEN_EXPIRY;
24
+ try {
25
+ const Session = mongoose.models.Session;
26
+ const currentSession = new Session({
27
+ user: userId,
28
+ expiration: options.expiration || new Date(Date.now() + expiresIn),
29
+ });
30
+ const refreshToken = await generateRefreshToken(currentSession);
31
+ return { session: currentSession, refreshToken };
32
+ }
33
+ catch (error) {
34
+ logger.error('[createSession] Error creating session:', error);
35
+ throw new SessionError('Failed to create session', 'CREATE_SESSION_FAILED');
36
+ }
37
+ }
38
+ /**
39
+ * Finds a session by various parameters
40
+ */
41
+ async function findSession(params, options = { lean: true }) {
42
+ try {
43
+ const Session = mongoose.models.Session;
44
+ const query = {};
45
+ if (!params.refreshToken && !params.userId && !params.sessionId) {
46
+ throw new SessionError('At least one search parameter is required', 'INVALID_SEARCH_PARAMS');
47
+ }
48
+ if (params.refreshToken) {
49
+ const tokenHash = await hashToken(params.refreshToken);
50
+ query.refreshTokenHash = tokenHash;
51
+ }
52
+ if (params.userId) {
53
+ query.user = params.userId;
54
+ }
55
+ if (params.sessionId) {
56
+ const sessionId = typeof params.sessionId === 'object' &&
57
+ params.sessionId !== null &&
58
+ 'sessionId' in params.sessionId
59
+ ? params.sessionId.sessionId
60
+ : params.sessionId;
61
+ if (!mongoose.Types.ObjectId.isValid(sessionId)) {
62
+ throw new SessionError('Invalid session ID format', 'INVALID_SESSION_ID');
63
+ }
64
+ query._id = sessionId;
65
+ }
66
+ // Add expiration check to only return valid sessions
67
+ query.expiration = { $gt: new Date() };
68
+ const sessionQuery = Session.findOne(query);
69
+ if (options.lean) {
70
+ return (await sessionQuery.lean());
71
+ }
72
+ return await sessionQuery.exec();
73
+ }
74
+ catch (error) {
75
+ logger.error('[findSession] Error finding session:', error);
76
+ throw new SessionError('Failed to find session', 'FIND_SESSION_FAILED');
77
+ }
78
+ }
79
+ /**
80
+ * Updates session expiration
81
+ */
82
+ async function updateExpiration(session, newExpiration, options = {}) {
83
+ var _a;
84
+ const expiresIn = (_a = options.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_REFRESH_TOKEN_EXPIRY;
85
+ try {
86
+ const Session = mongoose.models.Session;
87
+ const sessionDoc = typeof session === 'string' ? await Session.findById(session) : session;
88
+ if (!sessionDoc) {
89
+ throw new SessionError('Session not found', 'SESSION_NOT_FOUND');
90
+ }
91
+ sessionDoc.expiration = newExpiration || new Date(Date.now() + expiresIn);
92
+ return await sessionDoc.save();
93
+ }
94
+ catch (error) {
95
+ logger.error('[updateExpiration] Error updating session:', error);
96
+ throw new SessionError('Failed to update session expiration', 'UPDATE_EXPIRATION_FAILED');
97
+ }
98
+ }
99
+ /**
100
+ * Deletes a session by refresh token or session ID
101
+ */
102
+ async function deleteSession(params) {
103
+ try {
104
+ const Session = mongoose.models.Session;
105
+ if (!params.refreshToken && !params.sessionId) {
106
+ throw new SessionError('Either refreshToken or sessionId is required', 'INVALID_DELETE_PARAMS');
107
+ }
108
+ const query = {};
109
+ if (params.refreshToken) {
110
+ query.refreshTokenHash = await hashToken(params.refreshToken);
111
+ }
112
+ if (params.sessionId) {
113
+ query._id = params.sessionId;
114
+ }
115
+ const result = await Session.deleteOne(query);
116
+ if (result.deletedCount === 0) {
117
+ logger.warn('[deleteSession] No session found to delete');
118
+ }
119
+ return result;
120
+ }
121
+ catch (error) {
122
+ logger.error('[deleteSession] Error deleting session:', error);
123
+ throw new SessionError('Failed to delete session', 'DELETE_SESSION_FAILED');
124
+ }
125
+ }
126
+ /**
127
+ * Deletes all sessions for a user
128
+ */
129
+ async function deleteAllUserSessions(userId, options = {}) {
130
+ try {
131
+ const Session = mongoose.models.Session;
132
+ if (!userId) {
133
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
134
+ }
135
+ const userIdString = typeof userId === 'object' && userId !== null ? userId.userId : userId;
136
+ if (!mongoose.Types.ObjectId.isValid(userIdString)) {
137
+ throw new SessionError('Invalid user ID format', 'INVALID_USER_ID_FORMAT');
138
+ }
139
+ const query = { user: userIdString };
140
+ if (options.excludeCurrentSession && options.currentSessionId) {
141
+ query._id = { $ne: options.currentSessionId };
142
+ }
143
+ const result = await Session.deleteMany(query);
144
+ if (result.deletedCount && result.deletedCount > 0) {
145
+ logger.debug(`[deleteAllUserSessions] Deleted ${result.deletedCount} sessions for user ${userIdString}.`);
146
+ }
147
+ return result;
148
+ }
149
+ catch (error) {
150
+ logger.error('[deleteAllUserSessions] Error deleting user sessions:', error);
151
+ throw new SessionError('Failed to delete user sessions', 'DELETE_ALL_SESSIONS_FAILED');
152
+ }
153
+ }
154
+ /**
155
+ * Generates a refresh token for a session
156
+ */
157
+ async function generateRefreshToken(session) {
158
+ if (!session || !session.user) {
159
+ throw new SessionError('Invalid session object', 'INVALID_SESSION');
160
+ }
161
+ try {
162
+ const expiresIn = session.expiration
163
+ ? session.expiration.getTime()
164
+ : Date.now() + DEFAULT_REFRESH_TOKEN_EXPIRY;
165
+ if (!session.expiration) {
166
+ session.expiration = new Date(expiresIn);
167
+ }
168
+ const refreshToken = await signPayload({
169
+ payload: {
170
+ id: session.user,
171
+ sessionId: session._id,
172
+ },
173
+ secret: process.env.JWT_REFRESH_SECRET,
174
+ expirationTime: Math.floor((expiresIn - Date.now()) / 1000),
175
+ });
176
+ session.refreshTokenHash = await hashToken(refreshToken);
177
+ await session.save();
178
+ return refreshToken;
179
+ }
180
+ catch (error) {
181
+ logger.error('[generateRefreshToken] Error generating refresh token:', error);
182
+ throw new SessionError('Failed to generate refresh token', 'GENERATE_TOKEN_FAILED');
183
+ }
184
+ }
185
+ /**
186
+ * Counts active sessions for a user
187
+ */
188
+ async function countActiveSessions(userId) {
189
+ try {
190
+ const Session = mongoose.models.Session;
191
+ if (!userId) {
192
+ throw new SessionError('User ID is required', 'INVALID_USER_ID');
193
+ }
194
+ return await Session.countDocuments({
195
+ user: userId,
196
+ expiration: { $gt: new Date() },
197
+ });
198
+ }
199
+ catch (error) {
200
+ logger.error('[countActiveSessions] Error counting active sessions:', error);
201
+ throw new SessionError('Failed to count active sessions', 'COUNT_SESSIONS_FAILED');
202
+ }
203
+ }
204
+ return {
205
+ findSession,
206
+ SessionError,
207
+ deleteSession,
208
+ createSession,
209
+ updateExpiration,
210
+ countActiveSessions,
211
+ generateRefreshToken,
212
+ deleteAllUserSessions,
213
+ };
214
+ }
215
+
216
+ export { DEFAULT_REFRESH_TOKEN_EXPIRY, SessionError, createSessionMethods };
217
+ //# sourceMappingURL=session.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.es.js","sources":["../../src/methods/session.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}