openloops 0.1.9 → 0.1.11

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 (464) hide show
  1. package/dist/chunk-XRJFNASX.mjs +14 -0
  2. package/dist/common/clients/index.d.ts +3 -0
  3. package/dist/common/clients/index.js +26 -0
  4. package/dist/common/clients/index.mjs +3 -0
  5. package/dist/common/clients/llm-client.d.ts +30 -0
  6. package/dist/common/clients/llm-client.js +159 -0
  7. package/dist/common/clients/llm-client.mjs +126 -0
  8. package/dist/common/clients/sentry-client.d.ts +10 -0
  9. package/dist/common/clients/sentry-client.js +87 -0
  10. package/dist/common/clients/sentry-client.mjs +53 -0
  11. package/dist/common/clients/serper-client.d.ts +66 -0
  12. package/dist/common/clients/serper-client.js +74 -0
  13. package/dist/common/clients/serper-client.mjs +41 -0
  14. package/dist/common/core/base.app.d.ts +12 -0
  15. package/dist/common/core/base.app.js +57 -0
  16. package/dist/common/core/base.app.mjs +34 -0
  17. package/dist/common/core/base.entity.d.ts +55 -0
  18. package/dist/common/core/base.entity.js +208 -0
  19. package/dist/common/core/base.entity.mjs +179 -0
  20. package/dist/common/core/base.use-case.d.ts +15 -0
  21. package/dist/common/core/base.use-case.js +30 -0
  22. package/dist/common/core/base.use-case.mjs +7 -0
  23. package/dist/common/core/index.d.ts +1 -0
  24. package/dist/common/core/index.js +1 -0
  25. package/dist/common/core/index.mjs +0 -0
  26. package/dist/common/core/utils/delete-empty-fields.d.ts +1 -0
  27. package/dist/common/core/utils/delete-empty-fields.js +66 -0
  28. package/dist/common/core/utils/delete-empty-fields.mjs +43 -0
  29. package/dist/common/core/utils/flatten-object.d.ts +1 -0
  30. package/dist/common/core/utils/flatten-object.js +45 -0
  31. package/dist/common/core/utils/flatten-object.mjs +22 -0
  32. package/dist/common/core/utils/index.d.ts +3 -0
  33. package/dist/common/core/utils/index.js +26 -0
  34. package/dist/common/core/utils/index.mjs +3 -0
  35. package/dist/common/core/utils/is-plain-object.d.ts +1 -0
  36. package/dist/common/core/utils/is-plain-object.js +32 -0
  37. package/dist/common/core/utils/is-plain-object.mjs +9 -0
  38. package/dist/common/decorators/admin-only/admin-only.d.ts +2 -0
  39. package/dist/common/decorators/admin-only/admin-only.js +52 -0
  40. package/dist/common/decorators/admin-only/admin-only.mjs +28 -0
  41. package/dist/common/decorators/admin-only/index.d.ts +1 -0
  42. package/dist/common/decorators/admin-only/index.js +22 -0
  43. package/dist/common/decorators/admin-only/index.mjs +1 -0
  44. package/dist/common/decorators/index.d.ts +3 -0
  45. package/dist/common/decorators/index.js +26 -0
  46. package/dist/common/decorators/index.mjs +3 -0
  47. package/dist/common/decorators/mask-in-logs/index.d.ts +1 -0
  48. package/dist/common/decorators/mask-in-logs/index.js +22 -0
  49. package/dist/common/decorators/mask-in-logs/index.mjs +1 -0
  50. package/dist/common/decorators/mask-in-logs/mask-in-logs.d.ts +2 -0
  51. package/dist/common/decorators/mask-in-logs/mask-in-logs.js +53 -0
  52. package/dist/common/decorators/mask-in-logs/mask-in-logs.mjs +29 -0
  53. package/dist/common/decorators/owner-only/index.d.ts +1 -0
  54. package/dist/common/decorators/owner-only/index.js +22 -0
  55. package/dist/common/decorators/owner-only/index.mjs +1 -0
  56. package/dist/common/decorators/owner-only/owner-only.d.ts +2 -0
  57. package/dist/common/decorators/owner-only/owner-only.js +52 -0
  58. package/dist/common/decorators/owner-only/owner-only.mjs +28 -0
  59. package/dist/common/error/http-error.d.ts +11 -0
  60. package/dist/common/error/http-error.js +37 -0
  61. package/dist/common/error/http-error.mjs +14 -0
  62. package/dist/common/error/index.d.ts +2 -0
  63. package/dist/common/error/index.js +24 -0
  64. package/dist/common/error/index.mjs +2 -0
  65. package/dist/common/error/reportError.d.ts +2 -0
  66. package/dist/common/error/reportError.js +51 -0
  67. package/dist/common/error/reportError.mjs +28 -0
  68. package/dist/common/helpers/extract-json-from-text.d.ts +1 -0
  69. package/dist/common/helpers/extract-json-from-text.js +63 -0
  70. package/dist/common/helpers/extract-json-from-text.mjs +40 -0
  71. package/dist/common/helpers/index.d.ts +2 -0
  72. package/dist/common/helpers/index.js +24 -0
  73. package/dist/common/helpers/index.mjs +2 -0
  74. package/dist/common/helpers/sanitize-string.d.ts +1 -0
  75. package/dist/common/helpers/sanitize-string.js +45 -0
  76. package/dist/common/helpers/sanitize-string.mjs +12 -0
  77. package/dist/common/logger/index.d.ts +1 -0
  78. package/dist/common/logger/index.js +22 -0
  79. package/dist/common/logger/index.mjs +1 -0
  80. package/dist/common/logger/pino.d.ts +12 -0
  81. package/dist/common/logger/pino.js +70 -0
  82. package/dist/common/logger/pino.mjs +36 -0
  83. package/dist/common/repositories/index.d.ts +2 -0
  84. package/dist/common/repositories/index.js +24 -0
  85. package/dist/common/repositories/index.mjs +2 -0
  86. package/dist/common/repositories/mongo-db.client.d.ts +11 -0
  87. package/dist/common/repositories/mongo-db.client.js +79 -0
  88. package/dist/common/repositories/mongo-db.client.mjs +57 -0
  89. package/dist/common/repositories/mongo-db.repository.d.ts +87 -0
  90. package/dist/common/repositories/mongo-db.repository.js +219 -0
  91. package/dist/common/repositories/mongo-db.repository.mjs +196 -0
  92. package/dist/common/utils/secret-manager.d.ts +15 -0
  93. package/dist/common/utils/secret-manager.js +105 -0
  94. package/dist/common/utils/secret-manager.mjs +71 -0
  95. package/dist/index.d.ts +1 -10
  96. package/dist/index.js +22 -7
  97. package/dist/index.mjs +1 -1
  98. package/dist/services/agent/core/agent-loop.d.ts +38 -0
  99. package/dist/services/agent/core/agent-loop.js +29 -0
  100. package/dist/services/agent/core/agent-loop.mjs +6 -0
  101. package/dist/services/agent/core/agent-state.d.ts +42 -0
  102. package/dist/services/agent/core/agent-state.js +102 -0
  103. package/dist/services/agent/core/agent-state.mjs +78 -0
  104. package/dist/services/agent/core/agent.d.ts +70 -0
  105. package/dist/services/agent/core/agent.js +351 -0
  106. package/dist/services/agent/core/agent.mjs +327 -0
  107. package/dist/services/agent/core/index.d.ts +3 -122
  108. package/dist/services/agent/core/index.js +26 -7
  109. package/dist/services/agent/core/index.mjs +3 -1
  110. package/dist/services/agent/loops/index.d.ts +2 -116
  111. package/dist/services/agent/loops/index.js +24 -10
  112. package/dist/services/agent/loops/index.mjs +2 -4
  113. package/dist/services/agent/loops/plan-execute/index.d.ts +1 -0
  114. package/dist/services/agent/loops/plan-execute/index.js +22 -0
  115. package/dist/services/agent/loops/plan-execute/index.mjs +1 -0
  116. package/dist/services/agent/loops/plan-execute/plan-execute-loop.d.ts +27 -0
  117. package/dist/services/agent/loops/plan-execute/plan-execute-loop.js +242 -0
  118. package/dist/services/agent/loops/plan-execute/plan-execute-loop.mjs +226 -0
  119. package/dist/services/agent/loops/shared/index.d.ts +1 -0
  120. package/dist/services/agent/loops/shared/index.js +22 -0
  121. package/dist/services/agent/loops/shared/index.mjs +1 -0
  122. package/dist/services/agent/loops/shared/skills/action-planner.d.ts +35 -0
  123. package/dist/services/agent/loops/shared/skills/action-planner.js +68 -0
  124. package/dist/services/agent/loops/shared/skills/action-planner.mjs +45 -0
  125. package/dist/services/agent/loops/shared/skills/confirmation-gate.d.ts +9 -0
  126. package/dist/services/agent/loops/shared/skills/confirmation-gate.js +53 -0
  127. package/dist/services/agent/loops/shared/skills/confirmation-gate.mjs +30 -0
  128. package/dist/services/agent/loops/shared/skills/fast-responder.d.ts +9 -0
  129. package/dist/services/agent/loops/shared/skills/fast-responder.js +70 -0
  130. package/dist/services/agent/loops/shared/skills/fast-responder.mjs +47 -0
  131. package/dist/services/agent/loops/shared/skills/final-responder.d.ts +7 -0
  132. package/dist/services/agent/loops/shared/skills/final-responder.js +57 -0
  133. package/dist/services/agent/loops/shared/skills/final-responder.mjs +34 -0
  134. package/dist/services/agent/loops/shared/skills/index.d.ts +6 -0
  135. package/dist/services/agent/loops/shared/skills/index.js +32 -0
  136. package/dist/services/agent/loops/shared/skills/index.mjs +6 -0
  137. package/dist/services/agent/loops/shared/skills/state-observer.d.ts +10 -0
  138. package/dist/services/agent/loops/shared/skills/state-observer.js +57 -0
  139. package/dist/services/agent/loops/shared/skills/state-observer.mjs +34 -0
  140. package/dist/services/agent/loops/shared/skills/strategy-engine.d.ts +15 -0
  141. package/dist/services/agent/loops/shared/skills/strategy-engine.js +60 -0
  142. package/dist/services/agent/loops/shared/skills/strategy-engine.mjs +37 -0
  143. package/dist/services/agent/modules/chats/entities/agent-action.entity.d.ts +58 -0
  144. package/dist/services/agent/modules/chats/entities/agent-action.entity.js +151 -0
  145. package/dist/services/agent/modules/chats/entities/agent-action.entity.mjs +128 -0
  146. package/dist/services/agent/modules/chats/entities/agent-task.entity.d.ts +59 -0
  147. package/dist/services/agent/modules/chats/entities/agent-task.entity.js +231 -0
  148. package/dist/services/agent/modules/chats/entities/agent-task.entity.mjs +207 -0
  149. package/dist/services/agent/modules/chats/entities/chat-context.entity.d.ts +39 -0
  150. package/dist/services/agent/modules/chats/entities/chat-context.entity.js +70 -0
  151. package/dist/services/agent/modules/chats/entities/chat-context.entity.mjs +47 -0
  152. package/dist/services/agent/modules/chats/entities/chat-message.entity.d.ts +16 -0
  153. package/dist/services/agent/modules/chats/entities/chat-message.entity.js +58 -0
  154. package/dist/services/agent/modules/chats/entities/chat-message.entity.mjs +35 -0
  155. package/dist/services/agent/modules/chats/entities/chat-settings.entity.d.ts +17 -0
  156. package/dist/services/agent/modules/chats/entities/chat-settings.entity.js +63 -0
  157. package/dist/services/agent/modules/chats/entities/chat-settings.entity.mjs +40 -0
  158. package/dist/services/agent/modules/chats/entities/chat.entity.d.ts +50 -0
  159. package/dist/services/agent/modules/chats/entities/chat.entity.js +163 -0
  160. package/dist/services/agent/modules/chats/entities/chat.entity.mjs +140 -0
  161. package/dist/services/agent/modules/chats/entities/index.d.ts +1 -0
  162. package/dist/services/agent/modules/chats/entities/index.js +22 -0
  163. package/dist/services/agent/modules/chats/entities/index.mjs +1 -0
  164. package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.d.ts +14 -0
  165. package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.js +56 -0
  166. package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.mjs +27 -0
  167. package/dist/services/agent/modules/chats/lambdas/create-chat/index.d.ts +1 -0
  168. package/dist/services/agent/modules/chats/lambdas/create-chat/index.js +22 -0
  169. package/dist/services/agent/modules/chats/lambdas/create-chat/index.mjs +1 -0
  170. package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.d.ts +15 -0
  171. package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.js +61 -0
  172. package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.mjs +32 -0
  173. package/dist/services/agent/modules/chats/lambdas/delete-chat/index.d.ts +1 -0
  174. package/dist/services/agent/modules/chats/lambdas/delete-chat/index.js +22 -0
  175. package/dist/services/agent/modules/chats/lambdas/delete-chat/index.mjs +1 -0
  176. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.d.ts +14 -0
  177. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.js +52 -0
  178. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.mjs +23 -0
  179. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.d.ts +1 -0
  180. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.js +22 -0
  181. package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.mjs +1 -0
  182. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.d.ts +1 -0
  183. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.js +22 -0
  184. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.mjs +1 -0
  185. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.d.ts +14 -0
  186. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.js +64 -0
  187. package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.mjs +35 -0
  188. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.d.ts +1 -0
  189. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.js +22 -0
  190. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.mjs +1 -0
  191. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.d.ts +16 -0
  192. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.js +52 -0
  193. package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.mjs +23 -0
  194. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.d.ts +1 -0
  195. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.js +22 -0
  196. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.mjs +1 -0
  197. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.d.ts +16 -0
  198. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.js +59 -0
  199. package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.mjs +30 -0
  200. package/dist/services/agent/modules/chats/lambdas/update-chat/index.d.ts +1 -0
  201. package/dist/services/agent/modules/chats/lambdas/update-chat/index.js +22 -0
  202. package/dist/services/agent/modules/chats/lambdas/update-chat/index.mjs +1 -0
  203. package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.d.ts +15 -0
  204. package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.js +64 -0
  205. package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.mjs +35 -0
  206. package/dist/services/agent/modules/chats/repositories/chat.repository.d.ts +10 -0
  207. package/dist/services/agent/modules/chats/repositories/chat.repository.js +67 -0
  208. package/dist/services/agent/modules/chats/repositories/chat.repository.mjs +38 -0
  209. package/dist/services/agent/modules/chats/repositories/index.d.ts +1 -0
  210. package/dist/services/agent/modules/chats/repositories/index.js +22 -0
  211. package/dist/services/agent/modules/chats/repositories/index.mjs +1 -0
  212. package/dist/services/agent/modules/llmcalls/entities/index.d.ts +1 -0
  213. package/dist/services/agent/modules/llmcalls/entities/index.js +22 -0
  214. package/dist/services/agent/modules/llmcalls/entities/index.mjs +1 -0
  215. package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.d.ts +23 -0
  216. package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.js +71 -0
  217. package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.mjs +48 -0
  218. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.d.ts +14 -0
  219. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.js +56 -0
  220. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.mjs +27 -0
  221. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.d.ts +1 -0
  222. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.js +22 -0
  223. package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.mjs +1 -0
  224. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.d.ts +15 -0
  225. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.js +61 -0
  226. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.mjs +32 -0
  227. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.d.ts +1 -0
  228. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.js +22 -0
  229. package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.mjs +1 -0
  230. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.d.ts +21 -0
  231. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.js +123 -0
  232. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.mjs +94 -0
  233. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.d.ts +1 -0
  234. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.js +22 -0
  235. package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.mjs +1 -0
  236. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.d.ts +14 -0
  237. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.js +52 -0
  238. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.mjs +23 -0
  239. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.d.ts +1 -0
  240. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.js +22 -0
  241. package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.mjs +1 -0
  242. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.d.ts +1 -0
  243. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.js +22 -0
  244. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.mjs +1 -0
  245. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.d.ts +16 -0
  246. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.js +52 -0
  247. package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.mjs +23 -0
  248. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.d.ts +1 -0
  249. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.js +22 -0
  250. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.mjs +1 -0
  251. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.d.ts +15 -0
  252. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.js +62 -0
  253. package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.mjs +33 -0
  254. package/dist/services/agent/modules/llmcalls/repositories/index.d.ts +1 -0
  255. package/dist/services/agent/modules/llmcalls/repositories/index.js +22 -0
  256. package/dist/services/agent/modules/llmcalls/repositories/index.mjs +1 -0
  257. package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.d.ts +10 -0
  258. package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.js +67 -0
  259. package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.mjs +38 -0
  260. package/dist/services/agent/modules/mcp-servers/entities/index.d.ts +1 -0
  261. package/dist/services/agent/modules/mcp-servers/entities/index.js +22 -0
  262. package/dist/services/agent/modules/mcp-servers/entities/index.mjs +1 -0
  263. package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.d.ts +23 -0
  264. package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.js +79 -0
  265. package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.mjs +56 -0
  266. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.d.ts +14 -0
  267. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.js +56 -0
  268. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.mjs +27 -0
  269. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.d.ts +1 -0
  270. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.js +22 -0
  271. package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.mjs +1 -0
  272. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.d.ts +15 -0
  273. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.js +61 -0
  274. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.mjs +32 -0
  275. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.d.ts +1 -0
  276. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.js +22 -0
  277. package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.mjs +1 -0
  278. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.d.ts +14 -0
  279. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.js +52 -0
  280. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.mjs +23 -0
  281. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.d.ts +1 -0
  282. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.js +22 -0
  283. package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.mjs +1 -0
  284. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.d.ts +1 -0
  285. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.js +22 -0
  286. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.mjs +1 -0
  287. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.d.ts +16 -0
  288. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.js +59 -0
  289. package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.mjs +30 -0
  290. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.d.ts +1 -0
  291. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.js +22 -0
  292. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.mjs +1 -0
  293. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.d.ts +15 -0
  294. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.js +61 -0
  295. package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.mjs +32 -0
  296. package/dist/services/agent/modules/mcp-servers/repositories/index.d.ts +1 -0
  297. package/dist/services/agent/modules/mcp-servers/repositories/index.js +22 -0
  298. package/dist/services/agent/modules/mcp-servers/repositories/index.mjs +1 -0
  299. package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.d.ts +10 -0
  300. package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.js +67 -0
  301. package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.mjs +38 -0
  302. package/dist/services/agent/skills/index.d.ts +2 -14
  303. package/dist/services/agent/skills/index.js +24 -7
  304. package/dist/services/agent/skills/index.mjs +2 -1
  305. package/dist/services/agent/skills/shared/index.d.ts +1 -0
  306. package/dist/services/agent/skills/shared/index.js +22 -0
  307. package/dist/services/agent/skills/shared/index.mjs +1 -0
  308. package/dist/services/agent/skills/shared/shared-rules.d.ts +4 -0
  309. package/dist/services/agent/skills/shared/shared-rules.js +37 -0
  310. package/dist/services/agent/skills/shared/shared-rules.mjs +11 -0
  311. package/dist/services/agent/skills/skill-runner.d.ts +31 -0
  312. package/dist/services/agent/skills/skill-runner.js +121 -0
  313. package/dist/services/agent/skills/skill-runner.mjs +92 -0
  314. package/dist/services/agent/skills/skill.d.ts +33 -0
  315. package/dist/services/agent/skills/skill.js +128 -0
  316. package/dist/services/agent/skills/skill.mjs +105 -0
  317. package/dist/services/agent/tools/core/call-ai/call-ai.skill.d.ts +6 -0
  318. package/dist/services/agent/tools/core/call-ai/call-ai.skill.js +54 -0
  319. package/dist/services/agent/tools/core/call-ai/call-ai.skill.mjs +31 -0
  320. package/dist/services/agent/tools/core/call-ai/call-ai.tool.d.ts +2 -0
  321. package/dist/services/agent/tools/core/call-ai/call-ai.tool.js +68 -0
  322. package/dist/services/agent/tools/core/call-ai/call-ai.tool.mjs +45 -0
  323. package/dist/services/agent/tools/core/call-ai/index.d.ts +1 -0
  324. package/dist/services/agent/tools/core/call-ai/index.js +22 -0
  325. package/dist/services/agent/tools/core/call-ai/index.mjs +1 -0
  326. package/dist/services/agent/tools/core/index.d.ts +2 -0
  327. package/dist/services/agent/tools/core/index.js +24 -0
  328. package/dist/services/agent/tools/core/index.mjs +2 -0
  329. package/dist/services/agent/tools/core/web-search/index.d.ts +1 -0
  330. package/dist/services/agent/tools/core/web-search/index.js +22 -0
  331. package/dist/services/agent/tools/core/web-search/index.mjs +1 -0
  332. package/dist/services/agent/tools/core/web-search/web-search.tool.d.ts +2 -0
  333. package/dist/services/agent/tools/core/web-search/web-search.tool.js +51 -0
  334. package/dist/services/agent/tools/core/web-search/web-search.tool.mjs +30 -0
  335. package/dist/services/agent/tools/index.d.ts +2 -12
  336. package/dist/services/agent/tools/index.js +24 -7
  337. package/dist/services/agent/tools/index.mjs +2 -1
  338. package/dist/{tool-DMR_ZdjP.d.ts → services/agent/tools/tool.d.ts} +7 -9
  339. package/dist/services/agent/tools/tool.js +57 -0
  340. package/dist/services/agent/tools/tool.mjs +34 -0
  341. package/dist/services/agent/utils/rank-tools-by-keywords.d.ts +12 -0
  342. package/dist/services/agent/utils/rank-tools-by-keywords.js +65 -0
  343. package/dist/services/agent/utils/rank-tools-by-keywords.mjs +42 -0
  344. package/dist/services/app/core/app.d.ts +14 -0
  345. package/dist/services/app/core/app.js +60 -0
  346. package/dist/services/app/core/app.mjs +47 -0
  347. package/dist/{current-session-DC-SF7rl.d.mts → services/app/core/current-session.d.ts} +4 -5
  348. package/dist/services/app/core/current-session.js +124 -0
  349. package/dist/services/app/core/current-session.mjs +104 -0
  350. package/dist/services/app/core/current-user.d.ts +16 -0
  351. package/dist/services/app/core/current-user.js +84 -0
  352. package/dist/services/app/core/current-user.mjs +61 -0
  353. package/dist/services/app/core/index.d.ts +3 -60
  354. package/dist/services/app/core/index.js +26 -7
  355. package/dist/services/app/core/index.mjs +3 -1
  356. package/dist/services/app/modules/authentication/lambdas/login/index.d.ts +1 -0
  357. package/dist/services/app/modules/authentication/lambdas/login/index.js +22 -0
  358. package/dist/services/app/modules/authentication/lambdas/login/index.mjs +1 -0
  359. package/dist/services/app/modules/authentication/lambdas/login/login.use-case.d.ts +21 -0
  360. package/dist/services/app/modules/authentication/lambdas/login/login.use-case.js +89 -0
  361. package/dist/services/app/modules/authentication/lambdas/login/login.use-case.mjs +50 -0
  362. package/dist/services/app/modules/users/entities/index.d.ts +1 -0
  363. package/dist/services/app/modules/users/entities/index.js +22 -0
  364. package/dist/services/app/modules/users/entities/index.mjs +1 -0
  365. package/dist/services/app/modules/users/entities/user-acquisition.d.ts +12 -0
  366. package/dist/services/app/modules/users/entities/user-acquisition.js +55 -0
  367. package/dist/services/app/modules/users/entities/user-acquisition.mjs +26 -0
  368. package/dist/services/app/modules/users/entities/user-country.d.ts +11 -0
  369. package/dist/services/app/modules/users/entities/user-country.js +44 -0
  370. package/dist/services/app/modules/users/entities/user-country.mjs +21 -0
  371. package/dist/services/app/modules/users/entities/user-currency.d.ts +13 -0
  372. package/dist/services/app/modules/users/entities/user-currency.js +44 -0
  373. package/dist/services/app/modules/users/entities/user-currency.mjs +21 -0
  374. package/dist/services/app/modules/users/entities/user-email.value-object.d.ts +6 -0
  375. package/dist/services/app/modules/users/entities/user-email.value-object.js +43 -0
  376. package/dist/services/app/modules/users/entities/user-email.value-object.mjs +20 -0
  377. package/dist/services/app/modules/users/entities/user-language.d.ts +11 -0
  378. package/dist/services/app/modules/users/entities/user-language.js +44 -0
  379. package/dist/services/app/modules/users/entities/user-language.mjs +21 -0
  380. package/dist/services/app/modules/users/entities/user-marketing.d.ts +9 -0
  381. package/dist/services/app/modules/users/entities/user-marketing.js +53 -0
  382. package/dist/services/app/modules/users/entities/user-marketing.mjs +24 -0
  383. package/dist/services/app/modules/users/entities/user-notification-preferences.d.ts +11 -0
  384. package/dist/services/app/modules/users/entities/user-notification-preferences.js +41 -0
  385. package/dist/services/app/modules/users/entities/user-notification-preferences.mjs +18 -0
  386. package/dist/services/app/modules/users/entities/user-password.value-object.d.ts +8 -0
  387. package/dist/services/app/modules/users/entities/user-password.value-object.js +69 -0
  388. package/dist/services/app/modules/users/entities/user-password.value-object.mjs +36 -0
  389. package/dist/services/app/modules/users/entities/user-permissions.d.ts +21 -0
  390. package/dist/services/app/modules/users/entities/user-permissions.js +59 -0
  391. package/dist/services/app/modules/users/entities/user-permissions.mjs +36 -0
  392. package/dist/services/app/modules/users/entities/user-preferences.d.ts +25 -0
  393. package/dist/services/app/modules/users/entities/user-preferences.js +69 -0
  394. package/dist/services/app/modules/users/entities/user-preferences.mjs +46 -0
  395. package/dist/services/app/modules/users/entities/user-report-preferences.d.ts +16 -0
  396. package/dist/services/app/modules/users/entities/user-report-preferences.js +56 -0
  397. package/dist/services/app/modules/users/entities/user-report-preferences.mjs +33 -0
  398. package/dist/services/app/modules/users/entities/user-report-schedule.d.ts +11 -0
  399. package/dist/services/app/modules/users/entities/user-report-schedule.js +41 -0
  400. package/dist/services/app/modules/users/entities/user-report-schedule.mjs +18 -0
  401. package/dist/services/app/modules/users/entities/user-timezone.d.ts +11 -0
  402. package/dist/services/app/modules/users/entities/user-timezone.js +44 -0
  403. package/dist/services/app/modules/users/entities/user-timezone.mjs +21 -0
  404. package/dist/services/app/modules/users/entities/user.entity.d.ts +41 -0
  405. package/dist/services/app/modules/users/entities/user.entity.js +133 -0
  406. package/dist/services/app/modules/users/entities/user.entity.mjs +103 -0
  407. package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.d.ts +14 -0
  408. package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.js +58 -0
  409. package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.mjs +29 -0
  410. package/dist/services/app/modules/users/lambdas/create-user/index.d.ts +1 -0
  411. package/dist/services/app/modules/users/lambdas/create-user/index.js +22 -0
  412. package/dist/services/app/modules/users/lambdas/create-user/index.mjs +1 -0
  413. package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.d.ts +16 -0
  414. package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.js +61 -0
  415. package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.mjs +32 -0
  416. package/dist/services/app/modules/users/lambdas/delete-user/index.d.ts +1 -0
  417. package/dist/services/app/modules/users/lambdas/delete-user/index.js +22 -0
  418. package/dist/services/app/modules/users/lambdas/delete-user/index.mjs +1 -0
  419. package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.d.ts +14 -0
  420. package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.js +52 -0
  421. package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.mjs +23 -0
  422. package/dist/services/app/modules/users/lambdas/get-user-by-id/index.d.ts +1 -0
  423. package/dist/services/app/modules/users/lambdas/get-user-by-id/index.js +22 -0
  424. package/dist/services/app/modules/users/lambdas/get-user-by-id/index.mjs +1 -0
  425. package/dist/services/app/modules/users/lambdas/list-users-by-props/index.d.ts +1 -0
  426. package/dist/services/app/modules/users/lambdas/list-users-by-props/index.js +22 -0
  427. package/dist/services/app/modules/users/lambdas/list-users-by-props/index.mjs +1 -0
  428. package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.d.ts +16 -0
  429. package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.js +52 -0
  430. package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.mjs +23 -0
  431. package/dist/services/app/modules/users/lambdas/update-user/index.d.ts +1 -0
  432. package/dist/services/app/modules/users/lambdas/update-user/index.js +22 -0
  433. package/dist/services/app/modules/users/lambdas/update-user/index.mjs +1 -0
  434. package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.d.ts +15 -0
  435. package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.js +62 -0
  436. package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.mjs +33 -0
  437. package/dist/services/app/modules/users/repositories/index.d.ts +1 -0
  438. package/dist/services/app/modules/users/repositories/index.js +22 -0
  439. package/dist/services/app/modules/users/repositories/index.mjs +1 -0
  440. package/dist/services/app/modules/users/repositories/user.repository.d.ts +12 -0
  441. package/dist/services/app/modules/users/repositories/user.repository.js +83 -0
  442. package/dist/services/app/modules/users/repositories/user.repository.mjs +54 -0
  443. package/package.json +2 -2
  444. package/dist/agent-loop-C41Y1CGp.d.mts +0 -60
  445. package/dist/agent-loop-ZH4GRi4A.d.ts +0 -60
  446. package/dist/base.use-case-8K6_Ods0.d.mts +0 -14
  447. package/dist/base.use-case-ChEb3nh6.d.ts +0 -14
  448. package/dist/chunk-6PCVBY5G.mjs +0 -1
  449. package/dist/chunk-7WJ3XXSP.mjs +0 -7
  450. package/dist/chunk-CCRMOWMO.mjs +0 -1
  451. package/dist/chunk-ISOEJA2L.mjs +0 -1
  452. package/dist/chunk-XXB52O7H.mjs +0 -1
  453. package/dist/current-session-DC-SF7rl.d.ts +0 -130
  454. package/dist/current-user-4BppBUBP.d.mts +0 -264
  455. package/dist/current-user-4BppBUBP.d.ts +0 -264
  456. package/dist/index.d.mts +0 -10
  457. package/dist/services/agent/core/index.d.mts +0 -122
  458. package/dist/services/agent/loops/index.d.mts +0 -116
  459. package/dist/services/agent/skills/index.d.mts +0 -14
  460. package/dist/services/agent/tools/index.d.mts +0 -12
  461. package/dist/services/app/core/index.d.mts +0 -60
  462. package/dist/skill-CtYQbG6-.d.ts +0 -308
  463. package/dist/skill-DXNkK5FG.d.mts +0 -308
  464. package/dist/tool-BaG2a8Np.d.mts +0 -42
@@ -1,7 +1,26 @@
1
- "use strict";var wr=Object.create;var wt=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var Sr=Object.getOwnPropertyNames;var Or=Object.getPrototypeOf,Nr=Object.prototype.hasOwnProperty;var Br=(e,t)=>{for(var r in t)wt(e,r,{get:t[r],enumerable:!0})},Oe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Sr(t))!Nr.call(e,s)&&s!==r&&wt(e,s,{get:()=>t[s],enumerable:!(n=Se(t,s))||n.enumerable});return e};var Q=(e,t,r)=>(r=e!=null?wr(Or(e)):{},Oe(t||!e||!e.__esModule?wt(r,"default",{value:e,enumerable:!0}):r,e)),Er=e=>Oe(wt({},"__esModule",{value:!0}),e),O=(e,t,r,n)=>{for(var s=n>1?void 0:n?Se(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&wt(t,r,s),s};var bn={};Br(bn,{App:()=>pe,ClientEnvironment:()=>hr,CurrentSession:()=>ye,CurrentUser:()=>we});module.exports=Er(bn);var Bo=require("reflect-metadata"),nt=require("tsyringe");var or=require("tsyringe");var Sn=require("dotenv/config"),vt=Q(require("pino")),Ne=Q(require("pino-pretty")),Ir=(0,Ne.default)({colorize:!0}),St=class{IS_LOCAL=process.env.IS_LOCAL==="true"||process.env.NODE_ENV==="development";logger=this.IS_LOCAL?(0,vt.default)({level:"debug"},Ir):(0,vt.default)({level:"info"});log(t,r,n){typeof r=="string"&&(n=r,r=void 0),this.logger[t](r??{},n||"")}info(t,r){this.log("info",t,r)}warn(t,r){this.log("warn",t,r)}debug(t,r){this.log("debug",t,r)}error(t,r){this.log("error",t,r)}fatal(t,r){this.log("fatal",t,r)}},C=new St;var F=class{statusCode;errorMessage;errorDetails;constructor(t){this.statusCode=t.statusCode,this.errorMessage=t.errorMessage,this.errorDetails=t.errorDetails}};var V=Q(require("@sentry/node"));var In=require("dotenv/config"),Be=Q(require("cryptr"));var te=class e{static instance;cache=new Map;cryptr;static getInstance(){return e.instance||(e.instance=new e),e.instance}static encrypt(t){if(!t)throw new Error("[Secret manager] Value to encrypt cannot be empty");return`ENC:${e.getInstance().cryptr.encrypt(t)}`}constructor(){if(!process.env.SSUID)throw new Error("[Secret manager] SSUID environment variable is not set");this.cryptr=new Be.default(process.env.SSUID,{pbkdf2Iterations:1e3,saltLength:16})}get(t){let r=process.hrtime.bigint();if(this.cache.has(t)){let i=this.cache.get(t);return this.logElapsed(t,r,!0),i}let n=this.getEnvVar(t),s=this.decryptEnvVar(n);return this.cache.set(t,s),this.logElapsed(t,r,!1),s}getEnvVar(t){let r=process.env[t];if(!r)throw new Error(`[Secret manager] Environment variable ${t} is not set`);return r}decryptEnvVar(t){if(!t)throw new Error("[Secret manager] Encrypted value cannot be empty");if(!this.isStringEncrypted(t))return C.debug("[Secret Manager] Value is not encrypted"),t;let r=t.replace(/^ENC:/,"");return this.cryptr.decrypt(r)}isStringEncrypted(t){return t?t.startsWith("ENC:"):!1}logElapsed(t,r,n){let s=process.hrtime.bigint(),i=Number(s-r)/1e6,o=n?" (cached)":"";C.debug(`[Secret Manager] GET: ${t} | ${i.toFixed(3)} ms${o}`)}},K=te.getInstance();var ee=class e{static instance;enabled;static getInstance(){return e.instance||(e.instance=new e),e.instance}constructor(){let t=this.resolveDsn();if(this.enabled=!!t,!t){C.warn("[Sentry Client] Sentry DSN is not configured. Skipping error reporting.");return}V.init({dsn:t,environment:process.env.NODE_ENV||"production",tracesSampleRate:0}),C.debug("[Sentry Client] Sentry client initialized")}async captureError(t,r){if(this.enabled){V.withScope(n=>{r&&n.setExtras(r),V.captureException(t)});try{await V.flush(2e3),C.debug("[Sentry Client] Error reported to Sentry successfully")}catch(n){C.error(n,"[Sentry Client] Failed to flush Sentry events")}}}setUser(t){this.enabled&&V.setUser({id:t})}resolveDsn(){try{return K.get("SENTRY_DSN")}catch{return}}},Ee=ee.getInstance();var Ot=async(e,t)=>{e=typeof e=="string"?new Error(e):e;let r=(e instanceof F?e?.errorMessage:e?.message)||"Unknown error",n=(e instanceof F?e?.errorDetails:e?.stack)||"No stack trace available",s=e instanceof F?e?.statusCode:500;C.debug({error:t,message:r},"[Report Error] Reporting new error");let i=process.env.IS_LOCAL==="true"||process.env.NODE_ENV==="development";try{!i&&await Ee.captureError(e,{statusCode:s,errorMessage:r,errorDetails:n,...t})}catch(o){C.error({error:o},"[Report Error] Failed to report error to Sentry")}};var Ct=class{logger=new St;secretManager=K;reportError=Ot;async onCatch(t){throw await Ot(t),t}throwHttpError(t){throw new F(t)}throwError401(t){this.throwHttpError({statusCode:401,errorMessage:"{{invalid_token}}: {{not_authenticated_error_details}}",errorDetails:JSON.stringify(t??{})})}throwError403(t){this.throwHttpError({statusCode:403,errorMessage:"{{forbidden_error}}: {{forbidden_error_details}}",errorDetails:JSON.stringify(t??{})})}};var M=class extends Ct{};function W(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function re(e){if(Array.isArray(e))return e.map(re);if(W(e)){let t={};for(let r of Object.keys(e))t[r]=re(e[r]);return t}return e}function ne(e){let t=n=>{if(Array.isArray(n)){n.forEach(t);return}W(n)&&Object.keys(n).forEach(s=>{let i=n[s];Array.isArray(i)?t(i):W(i)?(t(i),Object.keys(i).length===0&&delete n[s]):i==null&&delete n[s]})},r=re(e);return t(r),r}function se(e,t="",r={}){if(!W(e))return{};for(let n in e)if(e.hasOwnProperty(n)){let s=t?`${t}.${n}`:n,i=e[n];W(i)?se(i,s,r):r[s]=i}return r}var Ie="maskInLogs";function Ue(e,t){Reflect.defineMetadata(Ie,!0,e,t)}var Ur=(e,t)=>Reflect.getMetadata(Ie,e,t);function Rt(e){if(e&&W(e)){let t={};for(let[r,n]of Object.entries(e))Ur(e,r)?t[r]="[HIDDEN]":Array.isArray(n)?t[r]=n.map(s=>Rt(s)):typeof n=="object"?t[r]=Rt(n):t[r]=n;return t}return e}var Tr="adminOnly";function L(e,t){Reflect.defineMetadata(Tr,!0,e,t)}var Ar="ownerOnly";function Te(e,t){Reflect.defineMetadata(Ar,!0,e,t)}var Is=require("reflect-metadata");var Fe=require("crypto"),Pr=(()=>{let e=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype),Symbol.toStringTag).get;return t=>e.call(t)})();function Ve(e){return Pr(e)==="Uint8Array"}function Lr(e){return typeof e=="object"&&e!=null&&Symbol.toStringTag in e&&(e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer")}function Cr(e){return e instanceof RegExp||Object.prototype.toString.call(e)==="[object RegExp]"}function ke(e){return typeof e=="object"&&e!=null&&Symbol.toStringTag in e&&e[Symbol.toStringTag]==="Map"}function Rr(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function _(e,t){return JSON.stringify(e,(r,n)=>typeof n=="bigint"?{$numberLong:`${n}`}:ke(n)?Object.fromEntries(n):n)}function $r(e){if(e!=null&&typeof e=="object"&&"stylize"in e&&typeof e.stylize=="function")return e.stylize}var ue=6,He=Symbol.for("@@mdb.bson.version"),he=2147483647,ge=-2147483648,Ye=Math.pow(2,63)-1,We=-Math.pow(2,63),xr=Math.pow(2,53),Dr=-Math.pow(2,53);var qe=4,ps=Object.freeze({double:1,string:2,object:3,array:4,binData:5,undefined:6,objectId:7,bool:8,date:9,null:10,regex:11,dbPointer:12,javascript:13,symbol:14,javascriptWithScope:15,int:16,timestamp:17,long:18,decimal:19,minKey:-1,maxKey:127}),c=class extends Error{get bsonError(){return!0}get name(){return"BSONError"}constructor(t,r){super(t,r)}static isBSONError(t){return t!=null&&typeof t=="object"&&"bsonError"in t&&t.bsonError===!0&&"name"in t&&"message"in t&&"stack"in t}},fe=class extends c{get name(){return"BSONVersionError"}constructor(){super(`Unsupported BSON version, bson types must be from bson ${ue}.x.x`)}},$t=class extends c{get name(){return"BSONRuntimeError"}constructor(t){super(t)}},k=class extends c{get name(){return"BSONOffsetError"}constructor(t,r,n){super(`${t}. offset: ${r}`,n),this.offset=r}},Ae,Pe;function Ze(e,t,r,n){if(n){Ae??=new TextDecoder("utf8",{fatal:!0});try{return Ae.decode(e.subarray(t,r))}catch(s){throw new c("Invalid UTF-8 string in BSON document",{cause:s})}}return Pe??=new TextDecoder("utf8",{fatal:!1}),Pe.decode(e.subarray(t,r))}function Ke(e,t,r){if(e.length===0)return"";let n=r-t;if(n===0)return"";if(n>20)return null;if(n===1&&e[t]<128)return String.fromCharCode(e[t]);if(n===2&&e[t]<128&&e[t+1]<128)return String.fromCharCode(e[t])+String.fromCharCode(e[t+1]);if(n===3&&e[t]<128&&e[t+1]<128&&e[t+2]<128)return String.fromCharCode(e[t])+String.fromCharCode(e[t+1])+String.fromCharCode(e[t+2]);let s=[];for(let i=t;i<r;i++){let o=e[i];if(o>127)return null;s.push(o)}return String.fromCharCode(...s)}function _r(e,t,r){if(t.length===0)return 0;if(t.length>25||e.length-r<t.length)return null;for(let n=0,s=r;n<t.length;n++,s++){let i=t.charCodeAt(n);if(i>127)return null;e[s]=i}return t.length}var X={toLocalBufferType(e){if(Buffer.isBuffer(e))return e;if(ArrayBuffer.isView(e))return Buffer.from(e.buffer,e.byteOffset,e.byteLength);let t=e?.[Symbol.toStringTag]??Object.prototype.toString.call(e);if(t==="ArrayBuffer"||t==="SharedArrayBuffer"||t==="[object ArrayBuffer]"||t==="[object SharedArrayBuffer]")return Buffer.from(e);throw new c("Cannot create Buffer from the passed potentialBuffer.")},allocate(e){return Buffer.alloc(e)},allocateUnsafe(e){return Buffer.allocUnsafe(e)},equals(e,t){return X.toLocalBufferType(e).equals(t)},fromNumberArray(e){return Buffer.from(e)},fromBase64(e){return Buffer.from(e,"base64")},toBase64(e){return X.toLocalBufferType(e).toString("base64")},fromISO88591(e){return Buffer.from(e,"binary")},toISO88591(e){return X.toLocalBufferType(e).toString("binary")},fromHex(e){return Buffer.from(e,"hex")},toHex(e){return X.toLocalBufferType(e).toString("hex")},toUTF8(e,t,r,n){let s=r-t<=20?Ke(e,t,r):null;if(s!=null)return s;let i=X.toLocalBufferType(e).toString("utf8",t,r);if(n){for(let o=0;o<i.length;o++)if(i.charCodeAt(o)===65533){Ze(e,t,r,!0);break}}return i},utf8ByteLength(e){return Buffer.byteLength(e,"utf8")},encodeUTF8Into(e,t,r){let n=_r(e,t,r);return n??X.toLocalBufferType(e).write(t,r,void 0,"utf8")},randomBytes:Fe.randomBytes,swap32(e){return X.toLocalBufferType(e).swap32()}};function Mr(){let{navigator:e}=globalThis;return typeof e=="object"&&e.product==="ReactNative"}function zr(e){if(e<0)throw new RangeError(`The argument 'byteLength' is invalid. Received ${e}`);return It.fromNumberArray(Array.from({length:e},()=>Math.floor(Math.random()*256)))}var jr=(()=>{let{crypto:e}=globalThis;if(e!=null&&typeof e.getRandomValues=="function")return t=>e.getRandomValues(It.allocate(t));if(Mr()){let{console:t}=globalThis;t?.warn?.("BSON: For React Native please polyfill crypto.getRandomValues, e.g. using: https://www.npmjs.com/package/react-native-get-random-values.")}return zr})(),Le=/(\d|[a-f])/i,It={toLocalBufferType(e){let t=e?.[Symbol.toStringTag]??Object.prototype.toString.call(e);if(t==="Uint8Array")return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));if(t==="ArrayBuffer"||t==="SharedArrayBuffer"||t==="[object ArrayBuffer]"||t==="[object SharedArrayBuffer]")return new Uint8Array(e);throw new c("Cannot make a Uint8Array from passed potentialBuffer.")},allocate(e){if(typeof e!="number")throw new TypeError(`The "size" argument must be of type number. Received ${String(e)}`);return new Uint8Array(e)},allocateUnsafe(e){return It.allocate(e)},equals(e,t){if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},fromNumberArray(e){return Uint8Array.from(e)},fromBase64(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))},toBase64(e){return btoa(It.toISO88591(e))},fromISO88591(e){return Uint8Array.from(e,t=>t.charCodeAt(0)&255)},toISO88591(e){return Array.from(Uint16Array.from(e),t=>String.fromCharCode(t)).join("")},fromHex(e){let t=e.length%2===0?e:e.slice(0,e.length-1),r=[];for(let n=0;n<t.length;n+=2){let s=t[n],i=t[n+1];if(!Le.test(s)||!Le.test(i))break;let o=Number.parseInt(`${s}${i}`,16);r.push(o)}return Uint8Array.from(r)},toHex(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")},toUTF8(e,t,r,n){let s=r-t<=20?Ke(e,t,r):null;return s??Ze(e,t,r,n)},utf8ByteLength(e){return new TextEncoder().encode(e).byteLength},encodeUTF8Into(e,t,r){let n=new TextEncoder().encode(t);return e.set(n,r),n.byteLength},randomBytes:jr,swap32(e){if(e.length%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e.length;t+=4){let r=e[t],n=e[t+1],s=e[t+2],i=e[t+3];e[t]=i,e[t+1]=s,e[t+2]=n,e[t+3]=r}return e}},Jr=typeof Buffer=="function"&&Buffer.prototype?._isBuffer!==!0,u=Jr?X:It,$=class{get[He](){return ue}[Symbol.for("nodejs.util.inspect.custom")](t,r,n){return this.inspect(t,r,n)}},ct=new Float64Array(1),d=new Uint8Array(ct.buffer,0,8);ct[0]=-1;var ie=d[7]===0,tt={isBigEndian:ie,getNonnegativeInt32LE(e,t){if(e[t+3]>127)throw new RangeError(`Size cannot be negative at offset: ${t}`);return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},getInt32LE(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},getUint32LE(e,t){return e[t]+e[t+1]*256+e[t+2]*65536+e[t+3]*16777216},getUint32BE(e,t){return e[t+3]+e[t+2]*256+e[t+1]*65536+e[t]*16777216},getBigInt64LE(e,t){let r=BigInt(e[t+4]+e[t+5]*256+e[t+6]*65536+(e[t+7]<<24)),n=BigInt(e[t]+e[t+1]*256+e[t+2]*65536+e[t+3]*16777216);return(r<<BigInt(32))+n},getFloat64LE:ie?(e,t)=>(d[7]=e[t],d[6]=e[t+1],d[5]=e[t+2],d[4]=e[t+3],d[3]=e[t+4],d[2]=e[t+5],d[1]=e[t+6],d[0]=e[t+7],ct[0]):(e,t)=>(d[0]=e[t],d[1]=e[t+1],d[2]=e[t+2],d[3]=e[t+3],d[4]=e[t+4],d[5]=e[t+5],d[6]=e[t+6],d[7]=e[t+7],ct[0]),setInt32BE(e,t,r){return e[t+3]=r,r>>>=8,e[t+2]=r,r>>>=8,e[t+1]=r,r>>>=8,e[t]=r,4},setInt32LE(e,t,r){return e[t]=r,r>>>=8,e[t+1]=r,r>>>=8,e[t+2]=r,r>>>=8,e[t+3]=r,4},setBigInt64LE(e,t,r){let n=BigInt(4294967295),s=Number(r&n);e[t]=s,s>>=8,e[t+1]=s,s>>=8,e[t+2]=s,s>>=8,e[t+3]=s;let i=Number(r>>BigInt(32)&n);return e[t+4]=i,i>>=8,e[t+5]=i,i>>=8,e[t+6]=i,i>>=8,e[t+7]=i,8},setFloat64LE:ie?(e,t,r)=>(ct[0]=r,e[t]=d[7],e[t+1]=d[6],e[t+2]=d[5],e[t+3]=d[4],e[t+4]=d[3],e[t+5]=d[2],e[t+6]=d[1],e[t+7]=d[0],8):(e,t,r)=>(ct[0]=r,e[t]=d[0],e[t+1]=d[1],e[t+2]=d[2],e[t+3]=d[3],e[t+4]=d[4],e[t+5]=d[5],e[t+6]=d[6],e[t+7]=d[7],8)},B=class e extends ${get _bsontype(){return"Binary"}constructor(t,r){if(super(),t!=null&&typeof t=="string"&&!ArrayBuffer.isView(t)&&!Lr(t)&&!Array.isArray(t))throw new c("Binary can only be constructed from Uint8Array or number[]");this.sub_type=r??e.BSON_BINARY_SUBTYPE_DEFAULT,t==null?(this.buffer=u.allocate(e.BUFFER_SIZE),this.position=0):(this.buffer=Array.isArray(t)?u.fromNumberArray(t):u.toLocalBufferType(t),this.position=this.buffer.byteLength)}put(t){if(typeof t=="string"&&t.length!==1)throw new c("only accepts single character String");if(typeof t!="number"&&t.length!==1)throw new c("only accepts single character Uint8Array or Array");let r;if(typeof t=="string"?r=t.charCodeAt(0):typeof t=="number"?r=t:r=t[0],r<0||r>255)throw new c("only accepts number in a valid unsigned byte range 0-255");if(this.buffer.byteLength>this.position)this.buffer[this.position++]=r;else{let n=u.allocate(e.BUFFER_SIZE+this.buffer.length);n.set(this.buffer,0),this.buffer=n,this.buffer[this.position++]=r}}write(t,r){if(r=typeof r=="number"?r:this.position,this.buffer.byteLength<r+t.length){let n=u.allocate(this.buffer.byteLength+t.length);n.set(this.buffer,0),this.buffer=n}if(ArrayBuffer.isView(t))this.buffer.set(u.toLocalBufferType(t),r),this.position=r+t.byteLength>this.position?r+t.length:this.position;else if(typeof t=="string")throw new c("input cannot be string")}read(t,r){r=r&&r>0?r:this.position;let n=t+r;return this.buffer.subarray(t,n>this.position?this.position:n)}value(){return this.buffer.length===this.position?this.buffer:this.buffer.subarray(0,this.position)}length(){return this.position}toJSON(){return u.toBase64(this.buffer.subarray(0,this.position))}toString(t){return t==="hex"?u.toHex(this.buffer.subarray(0,this.position)):t==="base64"?u.toBase64(this.buffer.subarray(0,this.position)):t==="utf8"||t==="utf-8"?u.toUTF8(this.buffer,0,this.position,!1):u.toUTF8(this.buffer,0,this.position,!1)}toExtendedJSON(t){t=t||{},this.sub_type===e.SUBTYPE_VECTOR&&G(this);let r=u.toBase64(this.buffer),n=Number(this.sub_type).toString(16);return t.legacy?{$binary:r,$type:n.length===1?"0"+n:n}:{$binary:{base64:r,subType:n.length===1?"0"+n:n}}}toUUID(){if(this.sub_type===e.SUBTYPE_UUID)return new Et(this.buffer.subarray(0,this.position));throw new c(`Binary sub_type "${this.sub_type}" is not supported for converting to UUID. Only "${e.SUBTYPE_UUID}" is currently supported.`)}static createFromHexString(t,r){return new e(u.fromHex(t),r)}static createFromBase64(t,r){return new e(u.fromBase64(t),r)}static fromExtendedJSON(t,r){r=r||{};let n,s;if("$binary"in t?r.legacy&&typeof t.$binary=="string"&&"$type"in t?(s=t.$type?parseInt(t.$type,16):0,n=u.fromBase64(t.$binary)):typeof t.$binary!="string"&&(s=t.$binary.subType?parseInt(t.$binary.subType,16):0,n=u.fromBase64(t.$binary.base64)):"$uuid"in t&&(s=4,n=Et.bytesFromString(t.$uuid)),!n)throw new c(`Unexpected Binary Extended JSON format ${JSON.stringify(t)}`);return s===qe?new Et(n):new e(n,s)}inspect(t,r,n){n??=_;let s=u.toBase64(this.buffer.subarray(0,this.position)),i=n(s,r),o=n(this.sub_type,r);return`Binary.createFromBase64(${i}, ${o})`}toInt8Array(){if(this.sub_type!==e.SUBTYPE_VECTOR)throw new c("Binary sub_type is not Vector");if(this.buffer[0]!==e.VECTOR_TYPE.Int8)throw new c("Binary datatype field is not Int8");return G(this),new Int8Array(this.buffer.buffer.slice(this.buffer.byteOffset+2,this.buffer.byteOffset+this.position))}toFloat32Array(){if(this.sub_type!==e.SUBTYPE_VECTOR)throw new c("Binary sub_type is not Vector");if(this.buffer[0]!==e.VECTOR_TYPE.Float32)throw new c("Binary datatype field is not Float32");G(this);let t=new Uint8Array(this.buffer.buffer.slice(this.buffer.byteOffset+2,this.buffer.byteOffset+this.position));return tt.isBigEndian&&u.swap32(t),new Float32Array(t.buffer)}toPackedBits(){if(this.sub_type!==e.SUBTYPE_VECTOR)throw new c("Binary sub_type is not Vector");if(this.buffer[0]!==e.VECTOR_TYPE.PackedBit)throw new c("Binary datatype field is not packed bit");return G(this),new Uint8Array(this.buffer.buffer.slice(this.buffer.byteOffset+2,this.buffer.byteOffset+this.position))}toBits(){if(this.sub_type!==e.SUBTYPE_VECTOR)throw new c("Binary sub_type is not Vector");if(this.buffer[0]!==e.VECTOR_TYPE.PackedBit)throw new c("Binary datatype field is not packed bit");G(this);let r=(this.length()-2)*8-this.buffer[1],n=new Int8Array(r);for(let s=0;s<n.length;s++){let i=s/8|0,o=this.buffer[i+2],a=7-s%8,g=o>>a&1;n[s]=g}return n}static fromInt8Array(t){let r=u.allocate(t.byteLength+2);r[0]=e.VECTOR_TYPE.Int8,r[1]=0;let n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);r.set(n,2);let s=new this(r,this.SUBTYPE_VECTOR);return G(s),s}static fromFloat32Array(t){let r=u.allocate(t.byteLength+2);r[0]=e.VECTOR_TYPE.Float32,r[1]=0;let n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);r.set(n,2),tt.isBigEndian&&u.swap32(new Uint8Array(r.buffer,2));let s=new this(r,this.SUBTYPE_VECTOR);return G(s),s}static fromPackedBits(t,r=0){let n=u.allocate(t.byteLength+2);n[0]=e.VECTOR_TYPE.PackedBit,n[1]=r,n.set(t,2);let s=new this(n,this.SUBTYPE_VECTOR);return G(s),s}static fromBits(t){let r=t.length+7>>>3,n=new Uint8Array(r+2);n[0]=e.VECTOR_TYPE.PackedBit;let s=t.length%8;n[1]=s===0?0:8-s;for(let i=0;i<t.length;i++){let o=i>>>3,a=t[i];if(a!==0&&a!==1)throw new c(`Invalid bit value at ${i}: must be 0 or 1, found ${t[i]}`);if(a===0)continue;let g=7-i%8;n[o+2]|=a<<g}return new this(n,e.SUBTYPE_VECTOR)}};B.BSON_BINARY_SUBTYPE_DEFAULT=0;B.BUFFER_SIZE=256;B.SUBTYPE_DEFAULT=0;B.SUBTYPE_FUNCTION=1;B.SUBTYPE_BYTE_ARRAY=2;B.SUBTYPE_UUID_OLD=3;B.SUBTYPE_UUID=4;B.SUBTYPE_MD5=5;B.SUBTYPE_ENCRYPTED=6;B.SUBTYPE_COLUMN=7;B.SUBTYPE_SENSITIVE=8;B.SUBTYPE_VECTOR=9;B.SUBTYPE_USER_DEFINED=128;B.VECTOR_TYPE=Object.freeze({Int8:3,Float32:39,PackedBit:16});function G(e){if(e.sub_type!==B.SUBTYPE_VECTOR)return;let t=e.position,r=e.buffer[0],n=e.buffer[1];if((r===B.VECTOR_TYPE.Float32||r===B.VECTOR_TYPE.Int8)&&n!==0)throw new c("Invalid Vector: padding must be zero for int8 and float32 vectors");if(r===B.VECTOR_TYPE.Float32&&t!==0&&t-2!==0&&(t-2)%4!==0)throw new c("Invalid Vector: Float32 vector must contain a multiple of 4 bytes");if(r===B.VECTOR_TYPE.PackedBit&&n!==0&&t===2)throw new c("Invalid Vector: padding must be zero for packed bit vectors that are empty");if(r===B.VECTOR_TYPE.PackedBit&&n>7)throw new c(`Invalid Vector: padding must be a value between 0 and 7. found: ${n}`)}var oe=16,Fr=/^[0-9A-F]{32}$/i,Vr=/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,Et=class e extends B{constructor(t){let r;if(t==null)r=e.generate();else if(t instanceof e)r=u.toLocalBufferType(new Uint8Array(t.buffer));else if(ArrayBuffer.isView(t)&&t.byteLength===oe)r=u.toLocalBufferType(t);else if(typeof t=="string")r=e.bytesFromString(t);else throw new c("Argument passed in UUID constructor must be a UUID, a 16 byte Buffer or a 32/36 character hex string (dashes excluded/included, format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).");super(r,qe)}get id(){return this.buffer}set id(t){this.buffer=t}toHexString(t=!0){return t?[u.toHex(this.buffer.subarray(0,4)),u.toHex(this.buffer.subarray(4,6)),u.toHex(this.buffer.subarray(6,8)),u.toHex(this.buffer.subarray(8,10)),u.toHex(this.buffer.subarray(10,16))].join("-"):u.toHex(this.buffer)}toString(t){return t==="hex"?u.toHex(this.id):t==="base64"?u.toBase64(this.id):this.toHexString()}toJSON(){return this.toHexString()}equals(t){if(!t)return!1;if(t instanceof e)return u.equals(t.id,this.id);try{return u.equals(new e(t).id,this.id)}catch{return!1}}toBinary(){return new B(this.id,B.SUBTYPE_UUID)}static generate(){let t=u.randomBytes(oe);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,t}static isValid(t){return t?typeof t=="string"?e.isValidUUIDString(t):Ve(t)?t.byteLength===oe:t._bsontype==="Binary"&&t.sub_type===this.SUBTYPE_UUID&&t.buffer.byteLength===16:!1}static createFromHexString(t){let r=e.bytesFromString(t);return new e(r)}static createFromBase64(t){return new e(u.fromBase64(t))}static bytesFromString(t){if(!e.isValidUUIDString(t))throw new c("UUID string representation must be 32 hex digits or canonical hyphenated representation");return u.fromHex(t.replace(/-/g,""))}static isValidUUIDString(t){return Fr.test(t)||Vr.test(t)}inspect(t,r,n){return n??=_,`new UUID(${n(this.toHexString(),r)})`}},Ut=class e extends ${get _bsontype(){return"Code"}constructor(t,r){super(),this.code=t.toString(),this.scope=r??null}toJSON(){return this.scope!=null?{code:this.code,scope:this.scope}:{code:this.code}}toExtendedJSON(){return this.scope?{$code:this.code,$scope:this.scope}:{$code:this.code}}static fromExtendedJSON(t){return new e(t.$code,t.$scope)}inspect(t,r,n){n??=_;let s=n(this.code,r),i=s.includes(`
2
- `);this.scope!=null&&(s+=`,${i?`
3
- `:" "}${n(this.scope,r)}`);let o=i&&this.scope===null;return`new Code(${i?`
4
- `:""}${s}${o?`
5
- `:""})`}};function kr(e){return e!=null&&typeof e=="object"&&"$id"in e&&e.$id!=null&&"$ref"in e&&typeof e.$ref=="string"&&(!("$db"in e)||"$db"in e&&typeof e.$db=="string")}var ft=class e extends ${get _bsontype(){return"DBRef"}constructor(t,r,n,s){super();let i=t.split(".");i.length===2&&(n=i.shift(),t=i.shift()),this.collection=t,this.oid=r,this.db=n,this.fields=s||{}}get namespace(){return this.collection}set namespace(t){this.collection=t}toJSON(){let t=Object.assign({$ref:this.collection,$id:this.oid},this.fields);return this.db!=null&&(t.$db=this.db),t}toExtendedJSON(t){t=t||{};let r={$ref:this.collection,$id:this.oid};return t.legacy||(this.db&&(r.$db=this.db),r=Object.assign(r,this.fields)),r}static fromExtendedJSON(t){let r=Object.assign({},t);return delete r.$ref,delete r.$id,delete r.$db,new e(t.$ref,t.$id,t.$db,r)}inspect(t,r,n){n??=_;let s=[n(this.namespace,r),n(this.oid,r),...this.db?[n(this.db,r)]:[],...Object.keys(this.fields).length>0?[n(this.fields,r)]:[]];return s[1]=n===_?`new ObjectId(${s[1]})`:s[1],`new DBRef(${s.join(", ")})`}};function Ge(e){if(e==="")return e;let t=0,r=e[t]==="-",n=e[t]==="+";(n||r)&&(t+=1);let s=!1;for(;t<e.length&&e[t]==="0";++t)s=!0;return s?`${r?"-":""}${e.length===t?"0":e.slice(t)}`:n?e.slice(1):e}function Hr(e,t){t=t??10;let r="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,t);return new RegExp(`[^-+${r}]`,"i").test(e)?!1:e}var z;try{z=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}var Ce=65536,Yr=1<<24,lt=Ce*Ce,Xe=lt*lt,Wr=Xe/2,Re={},$e={},qr=20,Zr=/^(\+?0|(\+|-)?[1-9][0-9]*)$/,l=class e extends ${get _bsontype(){return"Long"}get __isLong__(){return!0}constructor(t=0,r,n){super();let s=typeof r=="boolean"?r:!!n,i=typeof r=="number"?r:0,o=typeof t=="string"?e.fromString(t,s):typeof t=="bigint"?e.fromBigInt(t,s):{low:t|0,high:i|0,unsigned:s};this.low=o.low,this.high=o.high,this.unsigned=o.unsigned}static fromBits(t,r,n){return new e(t,r,n)}static fromInt(t,r){let n,s,i;return r?(t>>>=0,(i=0<=t&&t<256)&&(s=$e[t],s)?s:(n=e.fromBits(t,(t|0)<0?-1:0,!0),i&&($e[t]=n),n)):(t|=0,(i=-128<=t&&t<128)&&(s=Re[t],s)?s:(n=e.fromBits(t,t<0?-1:0,!1),i&&(Re[t]=n),n))}static fromNumber(t,r){if(isNaN(t))return r?e.UZERO:e.ZERO;if(r){if(t<0)return e.UZERO;if(t>=Xe)return e.MAX_UNSIGNED_VALUE}else{if(t<=-9223372036854776e3)return e.MIN_VALUE;if(t+1>=Wr)return e.MAX_VALUE}return t<0?e.fromNumber(-t,r).neg():e.fromBits(t%lt|0,t/lt|0,r)}static fromBigInt(t,r){let n=BigInt(4294967295),s=BigInt(32);return new e(Number(t&n),Number(t>>s&n),r)}static _fromString(t,r,n){if(t.length===0)throw new c("empty string");if(n<2||36<n)throw new c("radix");let s;if((s=t.indexOf("-"))>0)throw new c("interior hyphen");if(s===0)return e._fromString(t.substring(1),r,n).neg();let i=e.fromNumber(Math.pow(n,8)),o=e.ZERO;for(let a=0;a<t.length;a+=8){let g=Math.min(8,t.length-a),p=parseInt(t.substring(a,a+g),n);if(g<8){let m=e.fromNumber(Math.pow(n,g));o=o.mul(m).add(e.fromNumber(p))}else o=o.mul(i),o=o.add(e.fromNumber(p))}return o.unsigned=r,o}static fromStringStrict(t,r,n){let s=!1;if(typeof r=="number"?(n=r,r=!1):s=!!r,n??=10,t.trim()!==t)throw new c(`Input: '${t}' contains leading and/or trailing whitespace`);if(!Hr(t,n))throw new c(`Input: '${t}' contains invalid characters for radix: ${n}`);let i=Ge(t),o=e._fromString(i,s,n);if(o.toString(n).toLowerCase()!==i.toLowerCase())throw new c(`Input: ${t} is not representable as ${o.unsigned?"an unsigned":"a signed"} 64-bit Long ${n!=null?`with radix: ${n}`:""}`);return o}static fromString(t,r,n){let s=!1;return typeof r=="number"?(n=r,r=!1):s=!!r,n??=10,t==="NaN"&&n<24||(t==="Infinity"||t==="+Infinity"||t==="-Infinity")&&n<35?e.ZERO:e._fromString(t,s,n)}static fromBytes(t,r,n){return n?e.fromBytesLE(t,r):e.fromBytesBE(t,r)}static fromBytesLE(t,r){return new e(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,r)}static fromBytesBE(t,r){return new e(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],r)}static isLong(t){return t!=null&&typeof t=="object"&&"__isLong__"in t&&t.__isLong__===!0}static fromValue(t,r){return typeof t=="number"?e.fromNumber(t,r):typeof t=="string"?e.fromString(t,r):e.fromBits(t.low,t.high,typeof r=="boolean"?r:t.unsigned)}add(t){e.isLong(t)||(t=e.fromValue(t));let r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=t.high>>>16,a=t.high&65535,g=t.low>>>16,p=t.low&65535,m=0,h=0,y=0,E=0;return E+=i+p,y+=E>>>16,E&=65535,y+=s+g,h+=y>>>16,y&=65535,h+=n+a,m+=h>>>16,h&=65535,m+=r+o,m&=65535,e.fromBits(y<<16|E,m<<16|h,this.unsigned)}and(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low&t.low,this.high&t.high,this.unsigned)}compare(t){if(e.isLong(t)||(t=e.fromValue(t)),this.eq(t))return 0;let r=this.isNegative(),n=t.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1}comp(t){return this.compare(t)}divide(t){if(e.isLong(t)||(t=e.fromValue(t)),t.isZero())throw new c("division by zero");if(z){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;let i=(this.unsigned?z.div_u:z.div_s)(this.low,this.high,t.low,t.high);return e.fromBits(i,z.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?e.UZERO:e.ZERO;let r,n,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return e.UZERO;if(t.gt(this.shru(1)))return e.UONE;s=e.UZERO}else{if(this.eq(e.MIN_VALUE))return t.eq(e.ONE)||t.eq(e.NEG_ONE)?e.MIN_VALUE:t.eq(e.MIN_VALUE)?e.ONE:(r=this.shr(1).div(t).shl(1),r.eq(e.ZERO)?t.isNegative()?e.ONE:e.NEG_ONE:(n=this.sub(t.mul(r)),s=r.add(n.div(t)),s));if(t.eq(e.MIN_VALUE))return this.unsigned?e.UZERO:e.ZERO;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=e.ZERO}for(n=this;n.gte(t);){r=Math.max(1,Math.floor(n.toNumber()/t.toNumber()));let i=Math.ceil(Math.log(r)/Math.LN2),o=i<=48?1:Math.pow(2,i-48),a=e.fromNumber(r),g=a.mul(t);for(;g.isNegative()||g.gt(n);)r-=o,a=e.fromNumber(r,this.unsigned),g=a.mul(t);a.isZero()&&(a=e.ONE),s=s.add(a),n=n.sub(g)}return s}div(t){return this.divide(t)}equals(t){return e.isLong(t)||(t=e.fromValue(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low}eq(t){return this.equals(t)}getHighBits(){return this.high}getHighBitsUnsigned(){return this.high>>>0}getLowBits(){return this.low}getLowBitsUnsigned(){return this.low>>>0}getNumBitsAbs(){if(this.isNegative())return this.eq(e.MIN_VALUE)?64:this.neg().getNumBitsAbs();let t=this.high!==0?this.high:this.low,r;for(r=31;r>0&&(t&1<<r)===0;r--);return this.high!==0?r+33:r+1}greaterThan(t){return this.comp(t)>0}gt(t){return this.greaterThan(t)}greaterThanOrEqual(t){return this.comp(t)>=0}gte(t){return this.greaterThanOrEqual(t)}ge(t){return this.greaterThanOrEqual(t)}isEven(){return(this.low&1)===0}isNegative(){return!this.unsigned&&this.high<0}isOdd(){return(this.low&1)===1}isPositive(){return this.unsigned||this.high>=0}isZero(){return this.high===0&&this.low===0}lessThan(t){return this.comp(t)<0}lt(t){return this.lessThan(t)}lessThanOrEqual(t){return this.comp(t)<=0}lte(t){return this.lessThanOrEqual(t)}modulo(t){if(e.isLong(t)||(t=e.fromValue(t)),z){let r=(this.unsigned?z.rem_u:z.rem_s)(this.low,this.high,t.low,t.high);return e.fromBits(r,z.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))}mod(t){return this.modulo(t)}rem(t){return this.modulo(t)}multiply(t){if(this.isZero())return e.ZERO;if(e.isLong(t)||(t=e.fromValue(t)),z){let st=z.mul(this.low,this.high,t.low,t.high);return e.fromBits(st,z.get_high(),this.unsigned)}if(t.isZero())return e.ZERO;if(this.eq(e.MIN_VALUE))return t.isOdd()?e.MIN_VALUE:e.ZERO;if(t.eq(e.MIN_VALUE))return this.isOdd()?e.MIN_VALUE:e.ZERO;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(e.TWO_PWR_24)&&t.lt(e.TWO_PWR_24))return e.fromNumber(this.toNumber()*t.toNumber(),this.unsigned);let r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=t.high>>>16,a=t.high&65535,g=t.low>>>16,p=t.low&65535,m=0,h=0,y=0,E=0;return E+=i*p,y+=E>>>16,E&=65535,y+=s*p,h+=y>>>16,y&=65535,y+=i*g,h+=y>>>16,y&=65535,h+=n*p,m+=h>>>16,h&=65535,h+=s*g,m+=h>>>16,h&=65535,h+=i*a,m+=h>>>16,h&=65535,m+=r*p+n*g+s*a+i*o,m&=65535,e.fromBits(y<<16|E,m<<16|h,this.unsigned)}mul(t){return this.multiply(t)}negate(){return!this.unsigned&&this.eq(e.MIN_VALUE)?e.MIN_VALUE:this.not().add(e.ONE)}neg(){return this.negate()}not(){return e.fromBits(~this.low,~this.high,this.unsigned)}notEquals(t){return!this.equals(t)}neq(t){return this.notEquals(t)}ne(t){return this.notEquals(t)}or(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low|t.low,this.high|t.high,this.unsigned)}shiftLeft(t){return e.isLong(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?e.fromBits(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):e.fromBits(0,this.low<<t-32,this.unsigned)}shl(t){return this.shiftLeft(t)}shiftRight(t){return e.isLong(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?e.fromBits(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):e.fromBits(this.high>>t-32,this.high>=0?0:-1,this.unsigned)}shr(t){return this.shiftRight(t)}shiftRightUnsigned(t){if(e.isLong(t)&&(t=t.toInt()),t&=63,t===0)return this;{let r=this.high;if(t<32){let n=this.low;return e.fromBits(n>>>t|r<<32-t,r>>>t,this.unsigned)}else return t===32?e.fromBits(r,0,this.unsigned):e.fromBits(r>>>t-32,0,this.unsigned)}}shr_u(t){return this.shiftRightUnsigned(t)}shru(t){return this.shiftRightUnsigned(t)}subtract(t){return e.isLong(t)||(t=e.fromValue(t)),this.add(t.neg())}sub(t){return this.subtract(t)}toInt(){return this.unsigned?this.low>>>0:this.low}toNumber(){return this.unsigned?(this.high>>>0)*lt+(this.low>>>0):this.high*lt+(this.low>>>0)}toBigInt(){return BigInt(this.toString())}toBytes(t){return t?this.toBytesLE():this.toBytesBE()}toBytesLE(){let t=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]}toBytesBE(){let t=this.high,r=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,r>>>24,r>>>16&255,r>>>8&255,r&255]}toSigned(){return this.unsigned?e.fromBits(this.low,this.high,!1):this}toString(t){if(t=t||10,t<2||36<t)throw new c("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(e.MIN_VALUE)){let i=e.fromNumber(t),o=this.div(i),a=o.mul(i).sub(this);return o.toString(t)+a.toInt().toString(t)}else return"-"+this.neg().toString(t);let r=e.fromNumber(Math.pow(t,6),this.unsigned),n=this,s="";for(;;){let i=n.div(r),a=(n.sub(i.mul(r)).toInt()>>>0).toString(t);if(n=i,n.isZero())return a+s;for(;a.length<6;)a="0"+a;s=""+a+s}}toUnsigned(){return this.unsigned?this:e.fromBits(this.low,this.high,!0)}xor(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low^t.low,this.high^t.high,this.unsigned)}eqz(){return this.isZero()}le(t){return this.lessThanOrEqual(t)}toExtendedJSON(t){return t&&t.relaxed?this.toNumber():{$numberLong:this.toString()}}static fromExtendedJSON(t,r){let{useBigInt64:n=!1,relaxed:s=!0}={...r};if(t.$numberLong.length>qr)throw new c("$numberLong string is too long");if(!Zr.test(t.$numberLong))throw new c(`$numberLong string "${t.$numberLong}" is in an invalid format`);if(n){let o=BigInt(t.$numberLong);return BigInt.asIntN(64,o)}let i=e.fromString(t.$numberLong);return s?i.toNumber():i}inspect(t,r,n){n??=_;let s=n(this.toString(),r),i=this.unsigned?`, ${n(this.unsigned,r)}`:"";return`new Long(${s}${i})`}};l.TWO_PWR_24=l.fromInt(Yr);l.MAX_UNSIGNED_VALUE=l.fromBits(-1,-1,!0);l.ZERO=l.fromInt(0);l.UZERO=l.fromInt(0,!0);l.ONE=l.fromInt(1);l.UONE=l.fromInt(1,!0);l.NEG_ONE=l.fromInt(-1);l.MAX_VALUE=l.fromBits(-1,2147483647,!1);l.MIN_VALUE=l.fromBits(0,-2147483648,!1);var Kr=/^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/,Gr=/^(\+|-)?(Infinity|inf)$/i,Xr=/^(\+|-)?NaN$/i,at=6111,Nt=-6176,xe=6176,De=34,ae=u.fromNumberArray([124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),_e=u.fromNumberArray([248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),Me=u.fromNumberArray([120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),Qr=/^([-+])?(\d+)?$/,vr=31,ze=16383,tn=30,en=31;function je(e){return!isNaN(parseInt(e,10))}function rn(e){let t=l.fromNumber(1e9),r=l.fromNumber(0);if(!e.parts[0]&&!e.parts[1]&&!e.parts[2]&&!e.parts[3])return{quotient:e,rem:r};for(let n=0;n<=3;n++)r=r.shiftLeft(32),r=r.add(new l(e.parts[n],0)),e.parts[n]=r.div(t).low,r=r.modulo(t);return{quotient:e,rem:r}}function nn(e,t){if(!e&&!t)return{high:l.fromNumber(0),low:l.fromNumber(0)};let r=e.shiftRightUnsigned(32),n=new l(e.getLowBits(),0),s=t.shiftRightUnsigned(32),i=new l(t.getLowBits(),0),o=r.multiply(s),a=r.multiply(i),g=n.multiply(s),p=n.multiply(i);return o=o.add(a.shiftRightUnsigned(32)),a=new l(a.getLowBits(),0).add(g).add(p.shiftRightUnsigned(32)),o=o.add(a.shiftRightUnsigned(32)),p=a.shiftLeft(32).add(new l(p.getLowBits(),0)),{high:o,low:p}}function sn(e,t){let r=e.high>>>0,n=t.high>>>0;if(r<n)return!0;if(r===n){let s=e.low>>>0,i=t.low>>>0;if(s<i)return!0}return!1}function j(e,t){throw new c(`"${e}" is not a valid Decimal128 string - ${t}`)}var xt=class e extends ${get _bsontype(){return"Decimal128"}constructor(t){if(super(),typeof t=="string")this.bytes=e.fromString(t).bytes;else if(t instanceof Uint8Array||Ve(t)){if(t.byteLength!==16)throw new c("Decimal128 must take a Buffer of 16 bytes");this.bytes=t}else throw new c("Decimal128 must take a Buffer or string")}static fromString(t){return e._fromString(t,{allowRounding:!1})}static fromStringWithRounding(t){return e._fromString(t,{allowRounding:!0})}static _fromString(t,r){let n=!1,s=!1,i=!1,o=!1,a=0,g=0,p=0,m=0,h=0,y=[0],E=0,st=0,w=0,I=0,x=new l(0,0),U=new l(0,0),H=0,f=0;if(t.length>=7e3)throw new c(""+t+" not a valid Decimal128 string");let R=t.match(Kr),dr=t.match(Gr),br=t.match(Xr);if(!R&&!dr&&!br||t.length===0)throw new c(""+t+" not a valid Decimal128 string");if(R){let N=R[2],it=R[4],ot=R[5],D=R[6];it&&D===void 0&&j(t,"missing exponent power"),it&&N===void 0&&j(t,"missing exponent base"),it===void 0&&(ot||D)&&j(t,"missing e before exponent")}if((t[f]==="+"||t[f]==="-")&&(s=!0,n=t[f++]==="-"),!je(t[f])&&t[f]!=="."){if(t[f]==="i"||t[f]==="I")return new e(n?_e:Me);if(t[f]==="N")return new e(ae)}for(;je(t[f])||t[f]===".";){if(t[f]==="."){i&&j(t,"contains multiple periods"),i=!0,f=f+1;continue}E<De&&(t[f]!=="0"||o)&&(o||(h=g),o=!0,y[st++]=parseInt(t[f],10),E=E+1),o&&(p=p+1),i&&(m=m+1),g=g+1,f=f+1}if(i&&!g)throw new c(""+t+" not a valid Decimal128 string");if(t[f]==="e"||t[f]==="E"){let N=t.substr(++f).match(Qr);if(!N||!N[2])return new e(ae);I=parseInt(N[0],10),f=f+N[0].length}if(t[f])return new e(ae);if(!E)y[0]=0,p=1,E=1,a=0;else if(w=E-1,a=p,a!==1)for(;t[h+a-1+Number(s)+Number(i)]==="0";)a=a-1;for(I<=m&&m>I+16384?I=Nt:I=I-m;I>at;){if(w=w+1,w>=De){if(a===0){I=at;break}j(t,"overflow")}I=I-1}if(r.allowRounding){for(;I<Nt||E<p;){if(w===0&&a<E){I=Nt,a=0;break}if(E<p?p=p-1:w=w-1,I<at)I=I+1;else{if(y.join("").match(/^0+$/)){I=at;break}j(t,"overflow")}}if(w+1<a){let N=g;i&&(h=h+1,N=N+1),s&&(h=h+1,N=N+1);let it=parseInt(t[h+w+1],10),ot=0;if(it>=5&&(ot=1,it===5)){ot=y[w]%2===1?1:0;for(let D=h+w+2;D<N;D++)if(parseInt(t[D],10)){ot=1;break}}if(ot){let D=w;for(;D>=0&&++y[D]>9;D--)if(y[D]=0,D===0)if(I<at)I=I+1,y[D]=1;else return new e(n?_e:Me)}}}else{for(;I<Nt||E<p;){if(w===0){if(a===0){I=Nt;break}j(t,"exponent underflow")}E<p?(t[p-1+Number(s)+Number(i)]!=="0"&&a!==0&&j(t,"inexact rounding"),p=p-1):(y[w]!==0&&j(t,"inexact rounding"),w=w-1),I<at?I=I+1:j(t,"overflow")}w+1<a&&(i&&(h=h+1),s&&(h=h+1),parseInt(t[h+w+1],10)!==0&&j(t,"inexact rounding"))}if(x=l.fromNumber(0),U=l.fromNumber(0),a===0)x=l.fromNumber(0),U=l.fromNumber(0);else if(w<17){let N=0;for(U=l.fromNumber(y[N++]),x=new l(0,0);N<=w;N++)U=U.multiply(l.fromNumber(10)),U=U.add(l.fromNumber(y[N]))}else{let N=0;for(x=l.fromNumber(y[N++]);N<=w-17;N++)x=x.multiply(l.fromNumber(10)),x=x.add(l.fromNumber(y[N]));for(U=l.fromNumber(y[N++]);N<=w;N++)U=U.multiply(l.fromNumber(10)),U=U.add(l.fromNumber(y[N]))}let Y=nn(x,l.fromString("100000000000000000"));Y.low=Y.low.add(U),sn(Y.low,U)&&(Y.high=Y.high.add(l.fromNumber(1))),H=I+xe;let S={low:l.fromNumber(0),high:l.fromNumber(0)};Y.high.shiftRightUnsigned(49).and(l.fromNumber(1)).equals(l.fromNumber(1))?(S.high=S.high.or(l.fromNumber(3).shiftLeft(61)),S.high=S.high.or(l.fromNumber(H).and(l.fromNumber(16383).shiftLeft(47))),S.high=S.high.or(Y.high.and(l.fromNumber(0x7fffffffffff)))):(S.high=S.high.or(l.fromNumber(H&16383).shiftLeft(49)),S.high=S.high.or(Y.high.and(l.fromNumber(562949953421311)))),S.low=Y.low,n&&(S.high=S.high.or(l.fromString("9223372036854775808")));let P=u.allocateUnsafe(16);return f=0,P[f++]=S.low.low&255,P[f++]=S.low.low>>8&255,P[f++]=S.low.low>>16&255,P[f++]=S.low.low>>24&255,P[f++]=S.low.high&255,P[f++]=S.low.high>>8&255,P[f++]=S.low.high>>16&255,P[f++]=S.low.high>>24&255,P[f++]=S.high.low&255,P[f++]=S.high.low>>8&255,P[f++]=S.high.low>>16&255,P[f++]=S.high.low>>24&255,P[f++]=S.high.high&255,P[f++]=S.high.high>>8&255,P[f++]=S.high.high>>16&255,P[f++]=S.high.high>>24&255,new e(P)}toString(){let t,r=0,n=new Array(36);for(let f=0;f<n.length;f++)n[f]=0;let s=0,i=!1,o,a={parts:[0,0,0,0]},g,p,m=[];s=0;let h=this.bytes,y=h[s++]|h[s++]<<8|h[s++]<<16|h[s++]<<24,E=h[s++]|h[s++]<<8|h[s++]<<16|h[s++]<<24,st=h[s++]|h[s++]<<8|h[s++]<<16|h[s++]<<24,w=h[s++]|h[s++]<<8|h[s++]<<16|h[s++]<<24;s=0,{low:new l(y,E),high:new l(st,w)}.high.lessThan(l.ZERO)&&m.push("-");let x=w>>26&vr;if(x>>3===3){if(x===tn)return m.join("")+"Infinity";if(x===en)return"NaN";t=w>>15&ze,o=8+(w>>14&1)}else o=w>>14&7,t=w>>17&ze;let U=t-xe;if(a.parts[0]=(w&16383)+((o&15)<<14),a.parts[1]=st,a.parts[2]=E,a.parts[3]=y,a.parts[0]===0&&a.parts[1]===0&&a.parts[2]===0&&a.parts[3]===0)i=!0;else for(p=3;p>=0;p--){let f=0,R=rn(a);if(a=R.quotient,f=R.rem.low,!!f)for(g=8;g>=0;g--)n[p*9+g]=f%10,f=Math.floor(f/10)}if(i)r=1,n[s]=0;else for(r=36;!n[s];)r=r-1,s=s+1;let H=r-1+U;if(H>=34||H<=-7||U>0){if(r>34)return m.push("0"),U>0?m.push(`E+${U}`):U<0&&m.push(`E${U}`),m.join("");m.push(`${n[s++]}`),r=r-1,r&&m.push(".");for(let f=0;f<r;f++)m.push(`${n[s++]}`);m.push("E"),H>0?m.push(`+${H}`):m.push(`${H}`)}else if(U>=0)for(let f=0;f<r;f++)m.push(`${n[s++]}`);else{let f=r+U;if(f>0)for(let R=0;R<f;R++)m.push(`${n[s++]}`);else m.push("0");for(m.push(".");f++<0;)m.push("0");for(let R=0;R<r-Math.max(f-1,0);R++)m.push(`${n[s++]}`)}return m.join("")}toJSON(){return{$numberDecimal:this.toString()}}toExtendedJSON(){return{$numberDecimal:this.toString()}}static fromExtendedJSON(t){return e.fromString(t.$numberDecimal)}inspect(t,r,n){return n??=_,`new Decimal128(${n(this.toString(),r)})`}},Tt=class e extends ${get _bsontype(){return"Double"}constructor(t){super(),t instanceof Number&&(t=t.valueOf()),this.value=+t}static fromString(t){let r=Number(t);if(t==="NaN")return new e(NaN);if(t==="Infinity")return new e(1/0);if(t==="-Infinity")return new e(-1/0);if(!Number.isFinite(r))throw new c(`Input: ${t} is not representable as a Double`);if(t.trim()!==t)throw new c(`Input: '${t}' contains whitespace`);if(t==="")throw new c("Input is an empty string");if(/[^-0-9.+eE]/.test(t))throw new c(`Input: '${t}' is not in decimal or exponential notation`);return new e(r)}valueOf(){return this.value}toJSON(){return this.value}toString(t){return this.value.toString(t)}toExtendedJSON(t){return t&&(t.legacy||t.relaxed&&isFinite(this.value))?this.value:Object.is(Math.sign(this.value),-0)?{$numberDouble:"-0.0"}:{$numberDouble:Number.isInteger(this.value)?this.value.toFixed(1):this.value.toString()}}static fromExtendedJSON(t,r){let n=parseFloat(t.$numberDouble);return r&&r.relaxed?n:new e(n)}inspect(t,r,n){return n??=_,`new Double(${n(this.value,r)})`}},At=class e extends ${get _bsontype(){return"Int32"}constructor(t){super(),t instanceof Number&&(t=t.valueOf()),this.value=+t|0}static fromString(t){let r=Ge(t),n=Number(t);if(he<n)throw new c(`Input: '${t}' is larger than the maximum value for Int32`);if(ge>n)throw new c(`Input: '${t}' is smaller than the minimum value for Int32`);if(Number.isSafeInteger(n)){if(n.toString()!==r)throw new c(`Input: '${t}' is not a valid Int32 string`)}else throw new c(`Input: '${t}' is not a safe integer`);return new e(n)}valueOf(){return this.value}toString(t){return this.value.toString(t)}toJSON(){return this.value}toExtendedJSON(t){return t&&(t.relaxed||t.legacy)?this.value:{$numberInt:this.value.toString()}}static fromExtendedJSON(t,r){return r&&r.relaxed?parseInt(t.$numberInt,10):new e(t.$numberInt)}inspect(t,r,n){return n??=_,`new Int32(${n(this.value,r)})`}},Dt=class e extends ${get _bsontype(){return"MaxKey"}toExtendedJSON(){return{$maxKey:1}}static fromExtendedJSON(){return new e}inspect(){return"new MaxKey()"}},_t=class e extends ${get _bsontype(){return"MinKey"}toExtendedJSON(){return{$minKey:1}}static fromExtendedJSON(){return new e}inspect(){return"new MinKey()"}},v=null,Bt=new WeakMap,Z=class e extends ${get _bsontype(){return"ObjectId"}constructor(t){super();let r;if(typeof t=="object"&&t&&"id"in t){if(typeof t.id!="string"&&!ArrayBuffer.isView(t.id))throw new c("Argument passed in must have an id that is of type string or Buffer");"toHexString"in t&&typeof t.toHexString=="function"?r=u.fromHex(t.toHexString()):r=t.id}else r=t;if(r==null||typeof r=="number")this.buffer=e.generate(typeof r=="number"?r:void 0);else if(ArrayBuffer.isView(r)&&r.byteLength===12)this.buffer=u.toLocalBufferType(r);else if(typeof r=="string")if(e.validateHexString(r))this.buffer=u.fromHex(r),e.cacheHexString&&Bt.set(this,r);else throw new c("input must be a 24 character hex string, 12 byte Uint8Array, or an integer");else throw new c("Argument passed in does not match the accepted types")}get id(){return this.buffer}set id(t){this.buffer=t,e.cacheHexString&&Bt.set(this,u.toHex(t))}static validateHexString(t){if(t?.length!==24)return!1;for(let r=0;r<24;r++){let n=t.charCodeAt(r);if(!(n>=48&&n<=57||n>=97&&n<=102||n>=65&&n<=70))return!1}return!0}toHexString(){if(e.cacheHexString){let r=Bt.get(this);if(r)return r}let t=u.toHex(this.id);return e.cacheHexString&&Bt.set(this,t),t}static getInc(){return e.index=(e.index+1)%16777215}static generate(t){typeof t!="number"&&(t=Math.floor(Date.now()/1e3));let r=e.getInc(),n=u.allocateUnsafe(12);return tt.setInt32BE(n,0,t),v===null&&(v=u.randomBytes(5)),n[4]=v[0],n[5]=v[1],n[6]=v[2],n[7]=v[3],n[8]=v[4],n[11]=r&255,n[10]=r>>8&255,n[9]=r>>16&255,n}toString(t){return t==="base64"?u.toBase64(this.id):t==="hex"?this.toHexString():this.toHexString()}toJSON(){return this.toHexString()}static is(t){return t!=null&&typeof t=="object"&&"_bsontype"in t&&t._bsontype==="ObjectId"}equals(t){if(t==null)return!1;if(e.is(t))return this.buffer[11]===t.buffer[11]&&u.equals(this.buffer,t.buffer);if(typeof t=="string")return t.toLowerCase()===this.toHexString();if(typeof t=="object"&&typeof t.toHexString=="function"){let r=t.toHexString(),n=this.toHexString();return typeof r=="string"&&r.toLowerCase()===n}return!1}getTimestamp(){let t=new Date,r=tt.getUint32BE(this.buffer,0);return t.setTime(Math.floor(r)*1e3),t}static createPk(){return new e}serializeInto(t,r){return t[r]=this.buffer[0],t[r+1]=this.buffer[1],t[r+2]=this.buffer[2],t[r+3]=this.buffer[3],t[r+4]=this.buffer[4],t[r+5]=this.buffer[5],t[r+6]=this.buffer[6],t[r+7]=this.buffer[7],t[r+8]=this.buffer[8],t[r+9]=this.buffer[9],t[r+10]=this.buffer[10],t[r+11]=this.buffer[11],12}static createFromTime(t){let r=u.allocate(12);for(let n=11;n>=4;n--)r[n]=0;return tt.setInt32BE(r,0,t),new e(r)}static createFromHexString(t){if(t?.length!==24)throw new c("hex string must be 24 characters");return new e(u.fromHex(t))}static createFromBase64(t){if(t?.length!==16)throw new c("base64 string must be 16 characters");return new e(u.fromBase64(t))}static isValid(t){if(t==null)return!1;if(typeof t=="string")return e.validateHexString(t);try{return new e(t),!0}catch{return!1}}toExtendedJSON(){return this.toHexString?{$oid:this.toHexString()}:{$oid:this.toString("hex")}}static fromExtendedJSON(t){return new e(t.$oid)}isCached(){return e.cacheHexString&&Bt.has(this)}inspect(t,r,n){return n??=_,`new ObjectId(${n(this.toHexString(),r)})`}};Z.index=Math.floor(Math.random()*16777215);function on(e){return e.split("").sort().join("")}var ut=class e extends ${get _bsontype(){return"BSONRegExp"}constructor(t,r){if(super(),this.pattern=t,this.options=on(r??""),this.pattern.indexOf("\0")!==-1)throw new c(`BSON Regex patterns cannot contain null bytes, found: ${JSON.stringify(this.pattern)}`);if(this.options.indexOf("\0")!==-1)throw new c(`BSON Regex options cannot contain null bytes, found: ${JSON.stringify(this.options)}`);for(let n=0;n<this.options.length;n++)if(!(this.options[n]==="i"||this.options[n]==="m"||this.options[n]==="x"||this.options[n]==="l"||this.options[n]==="s"||this.options[n]==="u"))throw new c(`The regular expression option [${this.options[n]}] is not supported`)}static parseOptions(t){return t?t.split("").sort().join(""):""}toExtendedJSON(t){return t=t||{},t.legacy?{$regex:this.pattern,$options:this.options}:{$regularExpression:{pattern:this.pattern,options:this.options}}}static fromExtendedJSON(t){if("$regex"in t)if(typeof t.$regex!="string"){if(t.$regex._bsontype==="BSONRegExp")return t}else return new e(t.$regex,e.parseOptions(t.$options));if("$regularExpression"in t)return new e(t.$regularExpression.pattern,e.parseOptions(t.$regularExpression.options));throw new c(`Unexpected BSONRegExp EJSON object form: ${JSON.stringify(t)}`)}inspect(t,r,n){let s=$r(r)??(a=>a);n??=_;let i=s(n(this.pattern),"regexp"),o=s(n(this.options),"regexp");return`new BSONRegExp(${i}, ${o})`}},Mt=class e extends ${get _bsontype(){return"BSONSymbol"}constructor(t){super(),this.value=t}valueOf(){return this.value}toString(){return this.value}toJSON(){return this.value}toExtendedJSON(){return{$symbol:this.value}}static fromExtendedJSON(t){return new e(t.$symbol)}inspect(t,r,n){return n??=_,`new BSONSymbol(${n(this.value,r)})`}},an=l,Pt=class e extends an{get _bsontype(){return"Timestamp"}get i(){return this.low>>>0}get t(){return this.high>>>0}constructor(t){if(t==null)super(0,0,!0);else if(typeof t=="bigint")super(t,!0);else if(l.isLong(t))super(t.low,t.high,!0);else if(typeof t=="object"&&"t"in t&&"i"in t){if(typeof t.t!="number"&&(typeof t.t!="object"||t.t._bsontype!=="Int32"))throw new c("Timestamp constructed from { t, i } must provide t as a number");if(typeof t.i!="number"&&(typeof t.i!="object"||t.i._bsontype!=="Int32"))throw new c("Timestamp constructed from { t, i } must provide i as a number");let r=Number(t.t),n=Number(t.i);if(r<0||Number.isNaN(r))throw new c("Timestamp constructed from { t, i } must provide a positive t");if(n<0||Number.isNaN(n))throw new c("Timestamp constructed from { t, i } must provide a positive i");if(r>4294967295)throw new c("Timestamp constructed from { t, i } must provide t equal or less than uint32 max");if(n>4294967295)throw new c("Timestamp constructed from { t, i } must provide i equal or less than uint32 max");super(n,r,!0)}else throw new c("A Timestamp can only be constructed with: bigint, Long, or { t: number; i: number }")}toJSON(){return{$timestamp:this.toString()}}static fromInt(t){return new e(l.fromInt(t,!0))}static fromNumber(t){return new e(l.fromNumber(t,!0))}static fromBits(t,r){return new e({i:t,t:r})}static fromString(t,r){return new e(l.fromString(t,!0,r))}toExtendedJSON(){return{$timestamp:{t:this.t,i:this.i}}}static fromExtendedJSON(t){let r=l.isLong(t.$timestamp.i)?t.$timestamp.i.getLowBitsUnsigned():t.$timestamp.i,n=l.isLong(t.$timestamp.t)?t.$timestamp.t.getLowBitsUnsigned():t.$timestamp.t;return new e({t:n,i:r})}inspect(t,r,n){n??=_;let s=n(this.t,r),i=n(this.i,r);return`new Timestamp({ t: ${s}, i: ${i} })`}};Pt.MAX_VALUE=l.MAX_UNSIGNED_VALUE;var ys=l.fromNumber(xr),ds=l.fromNumber(Dr);function cn(e){return e!=null&&typeof e=="object"&&"_bsontype"in e&&typeof e._bsontype=="string"}var ln={$oid:Z,$binary:B,$uuid:B,$symbol:Mt,$numberInt:At,$numberDecimal:xt,$numberDouble:Tt,$numberLong:l,$minKey:_t,$maxKey:Dt,$regex:ut,$regularExpression:ut,$timestamp:Pt};function Qe(e,t={}){if(typeof e=="number"){let n=e<=he&&e>=ge,s=e<=Ye&&e>=We;if(t.relaxed||t.legacy)return e;if(Number.isInteger(e)&&!Object.is(e,-0)){if(n)return new At(e);if(s)return t.useBigInt64?BigInt(e):l.fromNumber(e)}return new Tt(e)}if(e==null||typeof e!="object")return e;if(e.$undefined)return null;let r=Object.keys(e).filter(n=>n.startsWith("$")&&e[n]!=null);for(let n=0;n<r.length;n++){let s=ln[r[n]];if(s)return s.fromExtendedJSON(e,t)}if(e.$date!=null){let n=e.$date,s=new Date;if(t.legacy)if(typeof n=="number")s.setTime(n);else if(typeof n=="string")s.setTime(Date.parse(n));else if(typeof n=="bigint")s.setTime(Number(n));else throw new $t(`Unrecognized type for EJSON date: ${typeof n}`);else if(typeof n=="string")s.setTime(Date.parse(n));else if(l.isLong(n))s.setTime(n.toNumber());else if(typeof n=="number"&&t.relaxed)s.setTime(n);else if(typeof n=="bigint")s.setTime(Number(n));else throw new $t(`Unrecognized type for EJSON date: ${typeof n}`);return s}if(e.$code!=null){let n=Object.assign({},e);return e.$scope&&(n.$scope=Qe(e.$scope)),Ut.fromExtendedJSON(e)}if(kr(e)||e.$dbPointer){let n=e.$ref?e:e.$dbPointer;if(n instanceof ft)return n;let s=Object.keys(n).filter(o=>o.startsWith("$")),i=!0;if(s.forEach(o=>{["$ref","$id","$db"].indexOf(o)===-1&&(i=!1)}),i)return ft.fromExtendedJSON(n)}return e}function fn(e,t){return e.map((r,n)=>{t.seenObjects.push({propertyName:`index ${n}`,obj:null});try{return q(r,t)}finally{t.seenObjects.pop()}})}function Je(e){let t=e.toISOString();return e.getUTCMilliseconds()!==0?t:t.slice(0,-5)+"Z"}function q(e,t){if(e instanceof Map||ke(e)){let r=Object.create(null);for(let[n,s]of e){if(typeof n!="string")throw new c("Can only serialize maps with string keys");r[n]=s}return q(r,t)}if((typeof e=="object"||typeof e=="function")&&e!==null){let r=t.seenObjects.findIndex(n=>n.obj===e);if(r!==-1){let n=t.seenObjects.map(m=>m.propertyName),s=n.slice(0,r).map(m=>`${m} -> `).join(""),i=n[r],o=" -> "+n.slice(r+1,n.length-1).map(m=>`${m} -> `).join(""),a=n[n.length-1],g=" ".repeat(s.length+i.length/2),p="-".repeat(o.length+(i.length+a.length)/2-1);throw new c(`Converting circular structure to EJSON:
6
- ${s}${i}${o}${a}
7
- ${g}\\${p}/`)}t.seenObjects[t.seenObjects.length-1].obj=e}if(Array.isArray(e))return fn(e,t);if(e===void 0)return null;if(e instanceof Date||Rr(e)){let r=e.getTime(),n=r>-1&&r<2534023188e5;return t.legacy?t.relaxed&&n?{$date:e.getTime()}:{$date:Je(e)}:t.relaxed&&n?{$date:Je(e)}:{$date:{$numberLong:e.getTime().toString()}}}if(typeof e=="number"&&(!t.relaxed||!isFinite(e))){if(Number.isInteger(e)&&!Object.is(e,-0)){if(e>=ge&&e<=he)return{$numberInt:e.toString()};if(e>=We&&e<=Ye)return{$numberLong:e.toString()}}return{$numberDouble:Object.is(e,-0)?"-0.0":e.toString()}}if(typeof e=="bigint")return t.relaxed?Number(BigInt.asIntN(64,e)):{$numberLong:BigInt.asIntN(64,e).toString()};if(e instanceof RegExp||Cr(e)){let r=e.flags;if(r===void 0){let s=e.toString().match(/[gimuy]*$/);s&&(r=s[0])}return new ut(e.source,r).toExtendedJSON(t)}return e!=null&&typeof e=="object"?hn(e,t):e}var un={Binary:e=>new B(e.value(),e.sub_type),Code:e=>new Ut(e.code,e.scope),DBRef:e=>new ft(e.collection||e.namespace,e.oid,e.db,e.fields),Decimal128:e=>new xt(e.bytes),Double:e=>new Tt(e.value),Int32:e=>new At(e.value),Long:e=>l.fromBits(e.low!=null?e.low:e.low_,e.low!=null?e.high:e.high_,e.low!=null?e.unsigned:e.unsigned_),MaxKey:()=>new Dt,MinKey:()=>new _t,ObjectId:e=>new Z(e),BSONRegExp:e=>new ut(e.pattern,e.options),BSONSymbol:e=>new Mt(e.value),Timestamp:e=>Pt.fromBits(e.low,e.high)};function hn(e,t){if(e==null||typeof e!="object")throw new c("not an object instance");let r=e._bsontype;if(typeof r>"u"){let n={};for(let s of Object.keys(e)){t.seenObjects.push({propertyName:s,obj:null});try{let i=q(e[s],t);s==="__proto__"?Object.defineProperty(n,s,{value:i,writable:!0,enumerable:!0,configurable:!0}):n[s]=i}finally{t.seenObjects.pop()}}return n}else{if(e!=null&&typeof e=="object"&&typeof e._bsontype=="string"&&e[He]!==ue)throw new fe;if(cn(e)){let n=e;if(typeof n.toExtendedJSON!="function"){let s=un[e._bsontype];if(!s)throw new c("Unrecognized or invalid _bsontype: "+e._bsontype);n=s(n)}return r==="Code"&&n.scope?n=new Ut(n.code,q(n.scope,t)):r==="DBRef"&&n.oid&&(n=new ft(q(n.collection,t),q(n.oid,t),q(n.db,t),q(n.fields,t))),n.toExtendedJSON(t)}else throw new c("_bsontype must be a string, but was: "+typeof r)}}function ve(e,t){let r={useBigInt64:t?.useBigInt64??!1,relaxed:t?.relaxed??!0,legacy:t?.legacy??!1};return JSON.parse(e,(n,s)=>{if(n.indexOf("\0")!==-1)throw new c(`BSON Document field names cannot contain null bytes, found: ${JSON.stringify(n)}`);return Qe(s,r)})}function tr(e,t,r,n){r!=null&&typeof r=="object"&&(n=r,r=0),t!=null&&typeof t=="object"&&!Array.isArray(t)&&(n=t,t=void 0,r=0);let s=Object.assign({relaxed:!0,legacy:!1},n,{seenObjects:[{propertyName:"(root)",obj:null}]}),i=q(e,s);return JSON.stringify(i,t,r)}function gn(e,t){return t=t||{},JSON.parse(tr(e,t))}function mn(e,t){return t=t||{},ve(JSON.stringify(e),t)}var Lt=Object.create(null);Lt.parse=ve;Lt.stringify=tr;Lt.serialize=gn;Lt.deserialize=mn;Object.freeze(Lt);var T={double:1,string:2,object:3,array:4,binData:5,undefined:6,objectId:7,bool:8,date:9,null:10,regex:11,dbPointer:12,javascript:13,symbol:14,javascriptWithScope:15,int:16,timestamp:17,long:18,decimal:19,minKey:255,maxKey:127};function ce(e,t){try{return tt.getNonnegativeInt32LE(e,t)}catch(r){throw new k("BSON size cannot be negative",t,{cause:r})}}function le(e,t){let r=t;for(;e[r]!==0;r++);if(r===e.length-1)throw new k("Null terminator not found",t);return r}function pn(e,t=0){if(t??=0,e.length<5)throw new k(`Input must be at least 5 bytes, got ${e.length} bytes`,t);let r=ce(e,t);if(r>e.length-t)throw new k(`Parsed documentSize (${r} bytes) does not match input length (${e.length} bytes)`,t);if(e[t+r-1]!==0)throw new k("BSON documents must end in 0x00",t+r);let n=[],s=t+4;for(;s<=r+t;){let i=e[s];if(s+=1,i===0){if(s-t!==r)throw new k("Invalid 0x00 type byte",s);break}let o=s,a=le(e,s)-o;s+=a+1;let g;if(i===T.double||i===T.long||i===T.date||i===T.timestamp)g=8;else if(i===T.int)g=4;else if(i===T.objectId)g=12;else if(i===T.decimal)g=16;else if(i===T.bool)g=1;else if(i===T.null||i===T.undefined||i===T.maxKey||i===T.minKey)g=0;else if(i===T.regex)g=le(e,le(e,s)+1)+1-s;else if(i===T.object||i===T.array||i===T.javascriptWithScope)g=ce(e,s);else if(i===T.string||i===T.binData||i===T.dbPointer||i===T.javascript||i===T.symbol)g=ce(e,s)+4,i===T.binData&&(g+=1),i===T.dbPointer&&(g+=12);else throw new k(`Invalid 0x${i.toString(16).padStart(2,"0")} type byte`,s);if(g>r)throw new k("value reports length larger than document",s);n.push([i,o,a,s,g]),s+=g}return n}var zt=Object.create(null);zt.parseToElements=pn;zt.ByteUtils=u;zt.NumberUtils=tt;Object.freeze(zt);var yn=1024*1024*17,bs=u.allocate(yn);var er=Q(require("sanitize-html"));function A(e=""){if(e)return(0,er.default)(e,{allowedTags:[],allowedAttributes:{}})}var b=class b{_id;__v;ownerId;createdAt;createdBy;updatedAt;updatedBy;deletedAt;deletedBy;deletedReason;archivedAt;archivedBy;sharedWith;toUnset;static toObjectId(t){if(t){if(t instanceof Z)return t;if(!Z.isValid(t))throw new Error(`Invalid ObjectId: ${t}`);return new Z(t)}}static toDate(t){if(!t)return;let r=new Date(t);if(isNaN(r.getTime()))throw new Error("{{value_must_be_a_date}}");return r}static toNumber(t){if(t!=null){if(typeof t!="number")throw new Error("{{value_must_be_a_number}}");return t}}static clean(t){return ne(t)}constructor(t){this._id=b.toObjectId(t._id),this.__v=b.toNumber(t.__v),this.ownerId=b.toObjectId(t.ownerId),this.createdAt=b.toDate(t.createdAt),this.createdBy=b.toObjectId(t.createdBy),this.updatedAt=b.toDate(t.updatedAt),this.updatedBy=b.toObjectId(t.updatedBy),this.deletedAt=b.toDate(t.deletedAt),this.deletedBy=b.toObjectId(t.deletedBy),this.deletedReason=A(t.deletedReason),this.archivedAt=b.toDate(t.archivedAt),this.archivedBy=b.toObjectId(t.archivedBy),this.sharedWith=t.sharedWith?.length?t.sharedWith.map(r=>b.toObjectId(r)):void 0}toJSON(){return{_id:this._id,__v:this.__v,ownerId:this.ownerId,createdAt:this.createdAt,createdBy:this.createdBy,updatedAt:this.updatedAt,updatedBy:this.updatedBy,deletedAt:this.deletedAt,deletedBy:this.deletedBy,deletedReason:this.deletedReason,archivedAt:this.archivedAt,archivedBy:this.archivedBy,sharedWith:this.sharedWith?.length?this.sharedWith.map(t=>t.toHexString()):void 0,toUnset:this.toUnset}}setDefaults(){}setId(t){this._id=b.toObjectId(t)}setOwner(t){t&&(this.ownerId=b.toObjectId(t.userId))}setCreatedBy(t){t&&(this.sanitize(t),this.createdAt=new Date,this.createdBy=b.toObjectId(t.userId),this.setDefaults())}setUpdatedBy(t){t&&(this.sanitize(t),this.updatedAt=new Date,this.updatedBy=b.toObjectId(t.userId))}setDeletedBy(t){t&&(this.sanitize(t),this.deletedAt=new Date,this.deletedBy=b.toObjectId(t.userId))}setArchivedBy(t){t&&(this.sanitize(t),this.archivedAt=new Date,this.archivedBy=b.toObjectId(t.userId))}toDocument(){return ne(this.toJSON())}toFlatDocument(){let{toUnset:t,...r}=this.toDocument();return{...se(r),toUnset:t}}stringify(){return JSON.stringify(Rt(this),null,2)}unset(t){let r=Array.from(new Set(t.map(n=>String(n))));if(!r||!Array.isArray(r))return{};this.toUnset=r.reduce((n,s)=>(n[s]="",n),{}),t.forEach(n=>{delete this[n]})}sanitize(t){if(!t?.isAdmin())for(let r in this)Reflect.getMetadata("adminOnly",this.constructor.prototype,r)&&delete this[r]}};O([L],b.prototype,"__v",2),O([L],b.prototype,"ownerId",2),O([L],b.prototype,"createdAt",2),O([L],b.prototype,"createdBy",2),O([L],b.prototype,"updatedAt",2),O([L],b.prototype,"updatedBy",2),O([L],b.prototype,"deletedAt",2),O([L],b.prototype,"deletedBy",2),O([L],b.prototype,"archivedAt",2),O([L],b.prototype,"archivedBy",2),O([Te],b.prototype,"sharedWith",2);var jt=b;var ir=require("countries-and-currencies-utils");var me=Q(require("bcryptjs")),ht=class{static SALT_ROUNDS=10;constructor(){}static validateFormat(t){return/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&.])[A-Za-z\d@$!%*?&.]{8,}$/.test(t)}static async create(t){if(t)return me.default.hash(t.trim(),this.SALT_ROUNDS)}static async compare(t,r){return me.default.compare(t,r)}static isHashed(t){return t.length===60&&t.startsWith("$2")}};var Jt=class{static EMAIL_REGEX=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;constructor(){}static validateFormat(t){return this.EMAIL_REGEX.test(t)}static create(t){if(!t)return;let r=typeof t=="string"?A(t.trim())?.toLowerCase():"";if(!this.validateFormat(r??""))throw new F({statusCode:400,errorMessage:"{{invalid_email_format}}",errorDetails:{email:t}});return r}};var Ft=class e{constructor(t,r){this.pushEnabled=t;this.emailEnabled=r}pushEnabled;emailEnabled;static fromJSON(t){return new e(t.pushEnabled,t.emailEnabled)}toJSON(){return{pushEnabled:this.pushEnabled,emailEnabled:this.emailEnabled}}};var et=class e{constructor(t,r){this.enabled=t;this.time=r}enabled;time;static fromJSON(t){return new e(t.enabled,t.time)}toJSON(){return{enabled:this.enabled,time:this.time}}};var Vt=class e{constructor(t,r,n,s){this.dailySummary=t;this.weeklySummary=r;this.monthlySummary=n;this.dailyReminder=s}dailySummary;weeklySummary;monthlySummary;dailyReminder;static fromJSON(t){return new e(t.dailySummary&&et.fromJSON(t.dailySummary),t.weeklySummary&&et.fromJSON(t.weeklySummary),t.monthlySummary&&et.fromJSON(t.monthlySummary),t.dailyReminder&&et.fromJSON(t.dailyReminder))}toJSON(){return{dailySummary:this.dailySummary?.toJSON(),weeklySummary:this.weeklySummary?.toJSON(),monthlySummary:this.monthlySummary?.toJSON(),dailyReminder:this.dailyReminder?.toJSON()}}};var rr=require("countries-and-currencies-utils");var kt=class e{constructor(t){this.isoCode=t}isoCode;get label(){return this.isoCode?(0,rr.getCountryNameFromCountryCode)(this.isoCode):void 0}static fromJSON(t){return new e(A(t.isoCode))}toJSON(){return{isoCode:this.isoCode,label:this.label}}};var Ht=class e{constructor(t,r,n){this.isoCode=t;this.label=r;this.symbol=n}isoCode;label;symbol;static fromJSON(t){return new e(A(t.isoCode),A(t.label),A(t.symbol))}toJSON(){return{isoCode:this.isoCode,label:this.label,symbol:this.symbol}}};var nr=require("countries-and-currencies-utils"),Yt=class e{constructor(t){this.ianaIdentifier=t}ianaIdentifier;static fromJSON(t){return new e(A(t.ianaIdentifier))}get offsetInMinutes(){return this.ianaIdentifier?(0,nr.getTimezoneOffset)(this.ianaIdentifier)??void 0:void 0}toJSON(){return{ianaIdentifier:this.ianaIdentifier,offsetInMinutes:this.offsetInMinutes}}};var sr=require("countries-and-currencies-utils"),Wt=class e{constructor(t){this.isoCode=t}isoCode;get label(){return this.isoCode?(0,sr.getLanguageFromLanguageCode)(this.isoCode)?.nativeName:void 0}static fromJSON(t){return new e(A(t.isoCode))}toJSON(){return{isoCode:this.isoCode,label:this.label}}};var qt=class e{constructor(t,r,n,s,i,o){this.notifications=t;this.reports=r;this.country=n;this.currency=s;this.timezone=i;this.language=o}notifications;reports;country;currency;timezone;language;static fromJSON(t){return new e(t.notifications&&Ft.fromJSON(t.notifications),t.reports&&Vt.fromJSON(t.reports),t.country&&kt.fromJSON(t.country),t.currency&&Ht.fromJSON(t.currency),t.timezone&&Yt.fromJSON(t.timezone),t.language&&Wt.fromJSON(t.language))}toJSON(){return{notifications:this.notifications?.toJSON(),reports:this.reports?.toJSON(),country:this.country?.toJSON(),currency:this.currency?.toJSON(),timezone:this.timezone?.toJSON(),language:this.language?.toJSON()}}};var Zt=class e{constructor(t,r,n,s,i,o,a){this.notifications=t;this.microphone=r;this.location=n;this.contacts=s;this.storage=i;this.camera=o;this.photos=a}notifications;microphone;location;contacts;storage;camera;photos;static fromJSON(t){return new e(t.notifications,t.microphone,t.location,t.contacts,t.storage,t.camera,t.photos)}toJSON(){return{notifications:this.notifications,microphone:this.microphone,location:this.location,contacts:this.contacts,storage:this.storage,camera:this.camera,photos:this.photos}}};var Gt=class Gt{platform;referrerCode;constructor(t,r){this.platform=t,this.referrerCode=r}static fromJSON(t){return new Gt(A(t.platform),A(t.referrerCode))}toJSON(){return{platform:this.platform,referrerCode:this.referrerCode}}};O([L],Gt.prototype,"referrerCode",2);var Kt=Gt;var Qt=class Qt{drawNumber;constructor(t){this.drawNumber=t}static fromJSON(t){return new Qt(A(t.drawNumber))}toJSON(){return{drawNumber:this.drawNumber}}};O([L],Qt.prototype,"drawNumber",2);var Xt=Qt;var gt=class gt extends jt{constructor(r,n,s,i,o,a,g,p,m,h){super(r);this.props=r;this.firstName=n;this.lastName=s;this.email=i;this.acquisition=g;this.marketing=p;this.preferences=m;this.permissions=h;this.password=o,this.role=a}props;firstName;lastName;email;acquisition;marketing;preferences;permissions;password;role;static fromJSON(r){return new gt(r,A(r.firstName),A(r.lastName),Jt.create(r.email),r.password,A(r.role),r.acquisition&&Kt.fromJSON(r.acquisition),r.marketing&&Xt.fromJSON(r.marketing),r.preferences&&qt.fromJSON(r.preferences),r.permissions&&Zt.fromJSON(r.permissions))}toJSON(){return{...super.toJSON(),firstName:this.firstName,lastName:this.lastName,email:this.email,password:this.password,role:this.role,acquisition:this.acquisition?.toJSON(),marketing:this.marketing?.toJSON(),preferences:this.preferences?.toJSON(),permissions:this.permissions?.toJSON()}}static async create(r){if(r.preferences?.currency?.isoCode){let s=await(0,ir.getCurrencyDataFromCurrencyCodeAsync)(r.preferences.currency.isoCode);r.preferences.currency.label=s?.label,r.preferences.currency.symbol=s?.symbol}r.password&&!ht.isHashed(r.password)&&(r.password=await ht.create(r.password));let n=gt.fromJSON(r);return n.role=n.role||"user",n}get fullName(){return`${this.firstName} ${this.lastName}`}async verifyPassword(r){return ht.compare(r,String(this.password))}};O([Ue],gt.prototype,"password",2),O([L],gt.prototype,"role",2);var J=gt;var mt=class extends M{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{payload:n,currentUser:s}=r;if(!n?.email)throw new Error("[Create User] email param is required");if(!n?.password)throw new Error("[Create User] password param is required");let i=await J.create({...n});i.setCreatedBy(s),await this.userRepository.create(i);let{password:o,...a}=i.toJSON();return{data:a}}};mt=O([(0,or.autoInjectable)()],mt);var ar=require("tsyringe");var pt=class extends M{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{payload:n,id:s,currentUser:i}=r;if(!n||Object.keys(n).length===0)throw new Error("Payload is required for updating user");let o=await J.create({...n,_id:s});o.setUpdatedBy(i),this.logger.info(`Updating user: ${o.stringify()}`);let a=await this.userRepository.update(o);if(!a)throw new Error("User not found or update failed");return{data:a}}};pt=O([(0,ar.autoInjectable)()],pt);var cr=require("tsyringe");var yt=class extends M{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{id:n,hardDelete:s,accountDeletionReason:i,currentUser:o}=r;if(!n)throw new Error("Missing id");if(s)return o?.isAdmin()||this.throwError403(),{data:{deletedCount:await this.userRepository.deleteById(n)}};let a=await J.fromJSON({_id:n,deletedReason:i});return a.setDeletedBy(o),{data:await this.userRepository.update(a)||{}}}};yt=O([(0,cr.autoInjectable)()],yt);var lr=require("tsyringe");var rt=class extends M{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{id:n}=r;return{data:await this.userRepository.findById(n)}}};rt=O([(0,lr.autoInjectable)()],rt);var fr=Q(require("jsonwebtoken")),ur=require("tsyringe");var dt=class extends M{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let n=this.secretManager.get("JWT_SECRET");if(!n)throw new Error("{{jwt_secret_not_found}}");let{payload:s}=r,{emailOrUsername:i,password:o}=s,a=await this.userRepository.findByEmailOrUsernameWithPassword(i);if(!a)return this.throwHttpError({statusCode:404,errorMessage:`{{user_not_found}}: ${i}`});if(await a.verifyPassword(o)!==!0)return this.throwHttpError({statusCode:401,errorMessage:"{{invalid_password}}"});let p=a.role==="admin"?"1h":"7d",m={userId:a._id?.toString(),email:a.email,firstName:a.firstName,lastName:a.lastName},h=fr.default.sign(m,n,{expiresIn:p}),{password:y,...E}=a.toJSON();return{data:{token:h,user:E}}}};dt=O([(0,ur.autoInjectable)()],dt);var pe=class{static async createUser(t){return await nt.container.resolve(mt).execute(t)}static async updateUser(t){return await nt.container.resolve(pt).execute(t)}static async deleteUser(t){return await nt.container.resolve(yt).execute(t)}static async getUser(t){return await nt.container.resolve(rt).execute(t)}static async getUserByExternalId(t){return await nt.container.resolve(rt).execute(t)}static async authenticateUser(t){return await nt.container.resolve(dt).execute(t)}};var bt=require("countries-and-currencies-utils"),ye=class e{constructor(t,r,n,s,i,o,a){this.clientType=t;this.environment=r;this.app=n;this.device=s;this.preferences=i;this.location=o;this.request=a}clientType;environment;app;device;preferences;location;request;get language(){return this.preferences?.locale?.split("_")[0]}get timezoneOffset(){return(0,bt.getTimezoneOffset)(this.location?.timezone)}get currencyCode(){return(0,bt.getCountryDataFromCountryCode)(this.location?.country)?.currency?.isoCode}static fromJSON(t){return new e(t.clientType,t.environment,t.app,t.device,t.preferences,t.location,t.request)}toJson(){return{clientType:this.clientType,environment:this.environment,app:this.app,device:this.device,preferences:this.preferences,location:this.location,request:this.request}}static fromRequest(t){let r={};try{r=JSON.parse(t.xCurrentSessionHeader||"{}")}catch{r={}}let n=e.fromJSON(r);return n.request={...n.request,id:t.requestId,path:t.path,ipAddress:t.ipAddress,userAgent:t.userAgent},n.location=n.location?.timezone?{...n.location,country:(0,bt.getCountryISOCodeFromTimezone)(n.location?.timezone)}:n.location,n}};var hr=(n=>(n.PRODUCTION="production",n.STAGING="staging",n.DEVELOPMENT="development",n))(hr||{});var pr=require("mongodb"),yr=require("countries-and-currencies-utils");var gr=require("mongodb");var be=class{client;logger=C;isConnected=!1;constructor(t,r){if(!t)throw new Error("[Mongo Client]: uri parameter is required");this.client=new gr.MongoClient(t,{...r,connectTimeoutMS:5e3,serverSelectionTimeoutMS:5e3}),this.logger.info("[Mongo Client] Client initialized")}async connect(){if(!this.client)throw new Error("[Mongo Client]: Client is not initialized");this.isConnected||(await this.client.connect(),this.isConnected=!0,this.logger.info("[Mongo Client]: Connected to MongoDB"))}async close(t){await this.client.close(t||!1),this.isConnected=!1}async db(t,r){try{await this.connect()}catch(n){throw this.logger.error("[Mongo Client]: Error connecting to MongoDB"),await Ot(`Error connecting to MongoDB: ${n.message}`,{error:n}),n}return this.client.db(t,r)}},de=new Map;function mr(e="OPENLOOPS_DB_URI"){if(!de.has(e)){let t=K.get(e);t&&de.set(e,new be(t,{}))}return de.get(e)}var we=class e extends J{_isPremium=!1;static async asyncFromDB(t){if(!t)return;let n=await mr().db(K.get("OPENLOOPS_DB_NAME")),s;try{s=await n.collection("users").findOne({_id:new pr.ObjectId(t)},{projection:{password:0}})}catch(i){throw C.error({userId:t,error:i},"[Current User] Error fetching user with ID"),i}if(!s){C.warn({userId:t},"[Current User] User not found in database");return}return e.fromJSON(s)}static fromJSON(t){let r=J.fromJSON(t);return Object.assign(new e(r.props),r)}get userId(){return this._id?.toString()}get language(){return this.preferences?.language?.isoCode}get hasPushNotificationsPermission(){return this.permissions?.notifications??!1}get timezoneOffset(){return(0,yr.getTimezoneOffset)(this.preferences?.timezone?.ianaIdentifier)}setIsPremium(t){this._isPremium=t}isAdmin(){return this.role==="admin"}isFreePlan(){return!this.isPremium}isPremium(){return this._isPremium}};0&&(module.exports={App,ClientEnvironment,CurrentSession,CurrentUser});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var core_exports = {};
17
+ module.exports = __toCommonJS(core_exports);
18
+ __reExport(core_exports, require("./app"), module.exports);
19
+ __reExport(core_exports, require("./current-session"), module.exports);
20
+ __reExport(core_exports, require("./current-user"), module.exports);
21
+ // Annotate the CommonJS export names for ESM import in node:
22
+ 0 && (module.exports = {
23
+ ...require("./app"),
24
+ ...require("./current-session"),
25
+ ...require("./current-user")
26
+ });
@@ -1 +1,3 @@
1
- import{a as $}from"../../../chunk-XXB52O7H.mjs";import{b as u,d as D,e as q,f as F,h as p,i as G,j as f,l as i,m as H}from"../../../chunk-7WJ3XXSP.mjs";import"reflect-metadata";import{container as S}from"tsyringe";import{autoInjectable as ee}from"tsyringe";import{getCurrencyDataFromCurrencyCodeAsync as j}from"countries-and-currencies-utils";import V from"bcryptjs";var g=class{static SALT_ROUNDS=10;constructor(){}static validateFormat(e){return/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&.])[A-Za-z\d@$!%*?&.]{8,}$/.test(e)}static async create(e){if(e)return V.hash(e.trim(),this.SALT_ROUNDS)}static async compare(e,r){return V.compare(e,r)}static isHashed(e){return e.length===60&&e.startsWith("$2")}};var U=class{static EMAIL_REGEX=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;constructor(){}static validateFormat(e){return this.EMAIL_REGEX.test(e)}static create(e){if(!e)return;let r=typeof e=="string"?i(e.trim())?.toLowerCase():"";if(!this.validateFormat(r??""))throw new q({statusCode:400,errorMessage:"{{invalid_email_format}}",errorDetails:{email:e}});return r}};var C=class s{constructor(e,r){this.pushEnabled=e;this.emailEnabled=r}pushEnabled;emailEnabled;static fromJSON(e){return new s(e.pushEnabled,e.emailEnabled)}toJSON(){return{pushEnabled:this.pushEnabled,emailEnabled:this.emailEnabled}}};var l=class s{constructor(e,r){this.enabled=e;this.time=r}enabled;time;static fromJSON(e){return new s(e.enabled,e.time)}toJSON(){return{enabled:this.enabled,time:this.time}}};var N=class s{constructor(e,r,t,o){this.dailySummary=e;this.weeklySummary=r;this.monthlySummary=t;this.dailyReminder=o}dailySummary;weeklySummary;monthlySummary;dailyReminder;static fromJSON(e){return new s(e.dailySummary&&l.fromJSON(e.dailySummary),e.weeklySummary&&l.fromJSON(e.weeklySummary),e.monthlySummary&&l.fromJSON(e.monthlySummary),e.dailyReminder&&l.fromJSON(e.dailyReminder))}toJSON(){return{dailySummary:this.dailySummary?.toJSON(),weeklySummary:this.weeklySummary?.toJSON(),monthlySummary:this.monthlySummary?.toJSON(),dailyReminder:this.dailyReminder?.toJSON()}}};import{getCountryNameFromCountryCode as X}from"countries-and-currencies-utils";var w=class s{constructor(e){this.isoCode=e}isoCode;get label(){return this.isoCode?X(this.isoCode):void 0}static fromJSON(e){return new s(i(e.isoCode))}toJSON(){return{isoCode:this.isoCode,label:this.label}}};var x=class s{constructor(e,r,t){this.isoCode=e;this.label=r;this.symbol=t}isoCode;label;symbol;static fromJSON(e){return new s(i(e.isoCode),i(e.label),i(e.symbol))}toJSON(){return{isoCode:this.isoCode,label:this.label,symbol:this.symbol}}};import{getTimezoneOffset as Y}from"countries-and-currencies-utils";var R=class s{constructor(e){this.ianaIdentifier=e}ianaIdentifier;static fromJSON(e){return new s(i(e.ianaIdentifier))}get offsetInMinutes(){return this.ianaIdentifier?Y(this.ianaIdentifier)??void 0:void 0}toJSON(){return{ianaIdentifier:this.ianaIdentifier,offsetInMinutes:this.offsetInMinutes}}};import{getLanguageFromLanguageCode as Q}from"countries-and-currencies-utils";var J=class s{constructor(e){this.isoCode=e}isoCode;get label(){return this.isoCode?Q(this.isoCode)?.nativeName:void 0}static fromJSON(e){return new s(i(e.isoCode))}toJSON(){return{isoCode:this.isoCode,label:this.label}}};var E=class s{constructor(e,r,t,o,a,c){this.notifications=e;this.reports=r;this.country=t;this.currency=o;this.timezone=a;this.language=c}notifications;reports;country;currency;timezone;language;static fromJSON(e){return new s(e.notifications&&C.fromJSON(e.notifications),e.reports&&N.fromJSON(e.reports),e.country&&w.fromJSON(e.country),e.currency&&x.fromJSON(e.currency),e.timezone&&R.fromJSON(e.timezone),e.language&&J.fromJSON(e.language))}toJSON(){return{notifications:this.notifications?.toJSON(),reports:this.reports?.toJSON(),country:this.country?.toJSON(),currency:this.currency?.toJSON(),timezone:this.timezone?.toJSON(),language:this.language?.toJSON()}}};var B=class s{constructor(e,r,t,o,a,c,n){this.notifications=e;this.microphone=r;this.location=t;this.contacts=o;this.storage=a;this.camera=c;this.photos=n}notifications;microphone;location;contacts;storage;camera;photos;static fromJSON(e){return new s(e.notifications,e.microphone,e.location,e.contacts,e.storage,e.camera,e.photos)}toJSON(){return{notifications:this.notifications,microphone:this.microphone,location:this.location,contacts:this.contacts,storage:this.storage,camera:this.camera,photos:this.photos}}};var I=class I{platform;referrerCode;constructor(e,r){this.platform=e,this.referrerCode=r}static fromJSON(e){return new I(i(e.platform),i(e.referrerCode))}toJSON(){return{platform:this.platform,referrerCode:this.referrerCode}}};u([f],I.prototype,"referrerCode",2);var A=I;var v=class v{drawNumber;constructor(e){this.drawNumber=e}static fromJSON(e){return new v(i(e.drawNumber))}toJSON(){return{drawNumber:this.drawNumber}}};u([f],v.prototype,"drawNumber",2);var z=v;var P=class P extends H{constructor(r,t,o,a,c,n,M,T,k,L){super(r);this.props=r;this.firstName=t;this.lastName=o;this.email=a;this.acquisition=M;this.marketing=T;this.preferences=k;this.permissions=L;this.password=c,this.role=n}props;firstName;lastName;email;acquisition;marketing;preferences;permissions;password;role;static fromJSON(r){return new P(r,i(r.firstName),i(r.lastName),U.create(r.email),r.password,i(r.role),r.acquisition&&A.fromJSON(r.acquisition),r.marketing&&z.fromJSON(r.marketing),r.preferences&&E.fromJSON(r.preferences),r.permissions&&B.fromJSON(r.permissions))}toJSON(){return{...super.toJSON(),firstName:this.firstName,lastName:this.lastName,email:this.email,password:this.password,role:this.role,acquisition:this.acquisition?.toJSON(),marketing:this.marketing?.toJSON(),preferences:this.preferences?.toJSON(),permissions:this.permissions?.toJSON()}}static async create(r){if(r.preferences?.currency?.isoCode){let o=await j(r.preferences.currency.isoCode);r.preferences.currency.label=o?.label,r.preferences.currency.symbol=o?.symbol}r.password&&!g.isHashed(r.password)&&(r.password=await g.create(r.password));let t=P.fromJSON(r);return t.role=t.role||"user",t}get fullName(){return`${this.firstName} ${this.lastName}`}async verifyPassword(r){return g.compare(r,String(this.password))}};u([G],P.prototype,"password",2),u([f],P.prototype,"role",2);var m=P;var y=class extends p{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{payload:t,currentUser:o}=r;if(!t?.email)throw new Error("[Create User] email param is required");if(!t?.password)throw new Error("[Create User] password param is required");let a=await m.create({...t});a.setCreatedBy(o),await this.userRepository.create(a);let{password:c,...n}=a.toJSON();return{data:n}}};y=u([ee()],y);import{autoInjectable as re}from"tsyringe";var b=class extends p{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{payload:t,id:o,currentUser:a}=r;if(!t||Object.keys(t).length===0)throw new Error("Payload is required for updating user");let c=await m.create({...t,_id:o});c.setUpdatedBy(a),this.logger.info(`Updating user: ${c.stringify()}`);let n=await this.userRepository.update(c);if(!n)throw new Error("User not found or update failed");return{data:n}}};b=u([re()],b);import{autoInjectable as te}from"tsyringe";var h=class extends p{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{id:t,hardDelete:o,accountDeletionReason:a,currentUser:c}=r;if(!t)throw new Error("Missing id");if(o)return c?.isAdmin()||this.throwError403(),{data:{deletedCount:await this.userRepository.deleteById(t)}};let n=await m.fromJSON({_id:t,deletedReason:a});return n.setDeletedBy(c),{data:await this.userRepository.update(n)||{}}}};h=u([te()],h);import{autoInjectable as se}from"tsyringe";var d=class extends p{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let{id:t}=r;return{data:await this.userRepository.findById(t)}}};d=u([se()],d);import ie from"jsonwebtoken";import{autoInjectable as ne}from"tsyringe";var O=class extends p{constructor(r){super();this.userRepository=r}userRepository;async execute(r){let t=this.secretManager.get("JWT_SECRET");if(!t)throw new Error("{{jwt_secret_not_found}}");let{payload:o}=r,{emailOrUsername:a,password:c}=o,n=await this.userRepository.findByEmailOrUsernameWithPassword(a);if(!n)return this.throwHttpError({statusCode:404,errorMessage:`{{user_not_found}}: ${a}`});if(await n.verifyPassword(c)!==!0)return this.throwHttpError({statusCode:401,errorMessage:"{{invalid_password}}"});let T=n.role==="admin"?"1h":"7d",k={userId:n._id?.toString(),email:n.email,firstName:n.firstName,lastName:n.lastName},L=ie.sign(k,t,{expiresIn:T}),{password:de,...K}=n.toJSON();return{data:{token:L,user:K}}}};O=u([ne()],O);var W=class{static async createUser(e){return await S.resolve(y).execute(e)}static async updateUser(e){return await S.resolve(b).execute(e)}static async deleteUser(e){return await S.resolve(h).execute(e)}static async getUser(e){return await S.resolve(d).execute(e)}static async getUserByExternalId(e){return await S.resolve(d).execute(e)}static async authenticateUser(e){return await S.resolve(O).execute(e)}};import{getCountryDataFromCountryCode as ae,getCountryISOCodeFromTimezone as ue,getTimezoneOffset as ce}from"countries-and-currencies-utils";var _=class s{constructor(e,r,t,o,a,c,n){this.clientType=e;this.environment=r;this.app=t;this.device=o;this.preferences=a;this.location=c;this.request=n}clientType;environment;app;device;preferences;location;request;get language(){return this.preferences?.locale?.split("_")[0]}get timezoneOffset(){return ce(this.location?.timezone)}get currencyCode(){return ae(this.location?.country)?.currency?.isoCode}static fromJSON(e){return new s(e.clientType,e.environment,e.app,e.device,e.preferences,e.location,e.request)}toJson(){return{clientType:this.clientType,environment:this.environment,app:this.app,device:this.device,preferences:this.preferences,location:this.location,request:this.request}}static fromRequest(e){let r={};try{r=JSON.parse(e.xCurrentSessionHeader||"{}")}catch{r={}}let t=s.fromJSON(r);return t.request={...t.request,id:e.requestId,path:e.path,ipAddress:e.ipAddress,userAgent:e.userAgent},t.location=t.location?.timezone?{...t.location,country:ue(t.location?.timezone)}:t.location,t}};var me=(t=>(t.PRODUCTION="production",t.STAGING="staging",t.DEVELOPMENT="development",t))(me||{});import{ObjectId as pe}from"mongodb";import{getTimezoneOffset as le}from"countries-and-currencies-utils";var Z=class s extends m{_isPremium=!1;static async asyncFromDB(e){if(!e)return;let t=await $().db(F.get("OPENLOOPS_DB_NAME")),o;try{o=await t.collection("users").findOne({_id:new pe(e)},{projection:{password:0}})}catch(a){throw D.error({userId:e,error:a},"[Current User] Error fetching user with ID"),a}if(!o){D.warn({userId:e},"[Current User] User not found in database");return}return s.fromJSON(o)}static fromJSON(e){let r=m.fromJSON(e);return Object.assign(new s(r.props),r)}get userId(){return this._id?.toString()}get language(){return this.preferences?.language?.isoCode}get hasPushNotificationsPermission(){return this.permissions?.notifications??!1}get timezoneOffset(){return le(this.preferences?.timezone?.ianaIdentifier)}setIsPremium(e){this._isPremium=e}isAdmin(){return this.role==="admin"}isFreePlan(){return!this.isPremium}isPremium(){return this._isPremium}};export{W as App,me as ClientEnvironment,_ as CurrentSession,Z as CurrentUser};
1
+ export * from "./app";
2
+ export * from "./current-session";
3
+ export * from "./current-user";
@@ -0,0 +1 @@
1
+ export * from './login.use-case';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var login_exports = {};
17
+ module.exports = __toCommonJS(login_exports);
18
+ __reExport(login_exports, require("./login.use-case"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./login.use-case")
22
+ });
@@ -0,0 +1 @@
1
+ export * from "./login.use-case";
@@ -0,0 +1,21 @@
1
+ import { BaseUseCase } from '../../../../../../common/core/base.use-case.js';
2
+ import { UserRepository } from '../../../users/repositories/index.js';
3
+ import { BaseUseCaseParams, BaseUseCaseOutput } from '../../../../../../common/core/base.use-case.js';
4
+ import { UserProps } from '../../../users/entities/index.js';
5
+ export interface Params extends BaseUseCaseParams {
6
+ payload: {
7
+ emailOrUsername: string;
8
+ password: string;
9
+ };
10
+ }
11
+ export interface Output extends BaseUseCaseOutput {
12
+ data: {
13
+ token: string;
14
+ user: UserProps;
15
+ };
16
+ }
17
+ export declare class LoginUseCase extends BaseUseCase<Params, Output> {
18
+ private readonly userRepository;
19
+ constructor(userRepository: UserRepository);
20
+ execute(params: Params): Promise<Output>;
21
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var __decorateClass = (decorators, target, key, kind) => {
30
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
31
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
32
+ if (decorator = decorators[i])
33
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
34
+ if (kind && result) __defProp(target, key, result);
35
+ return result;
36
+ };
37
+ var login_use_case_exports = {};
38
+ __export(login_use_case_exports, {
39
+ LoginUseCase: () => LoginUseCase
40
+ });
41
+ module.exports = __toCommonJS(login_use_case_exports);
42
+ var import_jsonwebtoken = __toESM(require("jsonwebtoken"));
43
+ var import_tsyringe = require("tsyringe");
44
+ var import_base = require("../../../../../../common/core/base.use-case.js");
45
+ var import_entities = require("../../../users/entities/index.js");
46
+ let LoginUseCase = class extends import_base.BaseUseCase {
47
+ constructor(userRepository) {
48
+ super();
49
+ this.userRepository = userRepository;
50
+ }
51
+ userRepository;
52
+ async execute(params) {
53
+ const SECRET_KEY = this.secretManager.get("JWT_SECRET");
54
+ if (!SECRET_KEY) throw new Error("{{jwt_secret_not_found}}");
55
+ const { payload } = params;
56
+ const { emailOrUsername, password } = payload;
57
+ const user = await this.userRepository.findByEmailOrUsernameWithPassword(emailOrUsername);
58
+ if (!user) {
59
+ return this.throwHttpError({
60
+ statusCode: 404,
61
+ errorMessage: `{{user_not_found}}: ${emailOrUsername}`
62
+ });
63
+ }
64
+ const isValidPassword = await user.verifyPassword(password);
65
+ if (isValidPassword !== true) {
66
+ return this.throwHttpError({
67
+ statusCode: 401,
68
+ errorMessage: "{{invalid_password}}"
69
+ });
70
+ }
71
+ const expiresIn = user.role === import_entities.UserRole.ADMIN ? "1h" : "7d";
72
+ const payloadData = {
73
+ userId: user._id?.toString(),
74
+ email: user.email,
75
+ firstName: user.firstName,
76
+ lastName: user.lastName
77
+ };
78
+ const token = import_jsonwebtoken.default.sign(payloadData, SECRET_KEY, { expiresIn });
79
+ const { password: _password, ...userWithoutPassword } = user.toJSON();
80
+ return { data: { token, user: userWithoutPassword } };
81
+ }
82
+ };
83
+ LoginUseCase = __decorateClass([
84
+ (0, import_tsyringe.autoInjectable)()
85
+ ], LoginUseCase);
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ LoginUseCase
89
+ });
@@ -0,0 +1,50 @@
1
+ import {
2
+ __decorateClass
3
+ } from "../../../../../../chunk-XRJFNASX.mjs";
4
+ import jwt from "jsonwebtoken";
5
+ import { autoInjectable } from "tsyringe";
6
+ import { BaseUseCase } from "../../../../../../common/core/base.use-case.js";
7
+ import { UserRole } from "../../../users/entities/index.js";
8
+ let LoginUseCase = class extends BaseUseCase {
9
+ constructor(userRepository) {
10
+ super();
11
+ this.userRepository = userRepository;
12
+ }
13
+ userRepository;
14
+ async execute(params) {
15
+ const SECRET_KEY = this.secretManager.get("JWT_SECRET");
16
+ if (!SECRET_KEY) throw new Error("{{jwt_secret_not_found}}");
17
+ const { payload } = params;
18
+ const { emailOrUsername, password } = payload;
19
+ const user = await this.userRepository.findByEmailOrUsernameWithPassword(emailOrUsername);
20
+ if (!user) {
21
+ return this.throwHttpError({
22
+ statusCode: 404,
23
+ errorMessage: `{{user_not_found}}: ${emailOrUsername}`
24
+ });
25
+ }
26
+ const isValidPassword = await user.verifyPassword(password);
27
+ if (isValidPassword !== true) {
28
+ return this.throwHttpError({
29
+ statusCode: 401,
30
+ errorMessage: "{{invalid_password}}"
31
+ });
32
+ }
33
+ const expiresIn = user.role === UserRole.ADMIN ? "1h" : "7d";
34
+ const payloadData = {
35
+ userId: user._id?.toString(),
36
+ email: user.email,
37
+ firstName: user.firstName,
38
+ lastName: user.lastName
39
+ };
40
+ const token = jwt.sign(payloadData, SECRET_KEY, { expiresIn });
41
+ const { password: _password, ...userWithoutPassword } = user.toJSON();
42
+ return { data: { token, user: userWithoutPassword } };
43
+ }
44
+ };
45
+ LoginUseCase = __decorateClass([
46
+ autoInjectable()
47
+ ], LoginUseCase);
48
+ export {
49
+ LoginUseCase
50
+ };
@@ -0,0 +1 @@
1
+ export * from './user.entity';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var entities_exports = {};
17
+ module.exports = __toCommonJS(entities_exports);
18
+ __reExport(entities_exports, require("./user.entity"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./user.entity")
22
+ });
@@ -0,0 +1 @@
1
+ export * from "./user.entity";
@@ -0,0 +1,12 @@
1
+ export type UserPlatform = 'ios' | 'android' | 'web';
2
+ export interface UserAcquisitionProps {
3
+ platform?: UserPlatform;
4
+ referrerCode?: string;
5
+ }
6
+ export declare class UserAcquisition {
7
+ readonly platform?: UserPlatform;
8
+ readonly referrerCode?: string;
9
+ constructor(platform?: UserPlatform, referrerCode?: string);
10
+ static fromJSON(props: UserAcquisitionProps): UserAcquisition;
11
+ toJSON(): UserAcquisitionProps;
12
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __decorateClass = (decorators, target, key, kind) => {
20
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
21
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
22
+ if (decorator = decorators[i])
23
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
24
+ if (kind && result) __defProp(target, key, result);
25
+ return result;
26
+ };
27
+ var user_acquisition_exports = {};
28
+ __export(user_acquisition_exports, {
29
+ UserAcquisition: () => UserAcquisition
30
+ });
31
+ module.exports = __toCommonJS(user_acquisition_exports);
32
+ var import_decorators = require("../../../../../common/decorators/index.js");
33
+ var import_helpers = require("../../../../../common/helpers/index.js");
34
+ const _UserAcquisition = class _UserAcquisition {
35
+ platform;
36
+ referrerCode;
37
+ constructor(platform, referrerCode) {
38
+ this.platform = platform;
39
+ this.referrerCode = referrerCode;
40
+ }
41
+ static fromJSON(props) {
42
+ return new _UserAcquisition((0, import_helpers.sanitizeString)(props.platform), (0, import_helpers.sanitizeString)(props.referrerCode));
43
+ }
44
+ toJSON() {
45
+ return { platform: this.platform, referrerCode: this.referrerCode };
46
+ }
47
+ };
48
+ __decorateClass([
49
+ import_decorators.AdminOnly
50
+ ], _UserAcquisition.prototype, "referrerCode", 2);
51
+ let UserAcquisition = _UserAcquisition;
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ UserAcquisition
55
+ });
@@ -0,0 +1,26 @@
1
+ import {
2
+ __decorateClass
3
+ } from "../../../../../chunk-XRJFNASX.mjs";
4
+ import { AdminOnly } from "../../../../../common/decorators/index.js";
5
+ import { sanitizeString } from "../../../../../common/helpers/index.js";
6
+ const _UserAcquisition = class _UserAcquisition {
7
+ platform;
8
+ referrerCode;
9
+ constructor(platform, referrerCode) {
10
+ this.platform = platform;
11
+ this.referrerCode = referrerCode;
12
+ }
13
+ static fromJSON(props) {
14
+ return new _UserAcquisition(sanitizeString(props.platform), sanitizeString(props.referrerCode));
15
+ }
16
+ toJSON() {
17
+ return { platform: this.platform, referrerCode: this.referrerCode };
18
+ }
19
+ };
20
+ __decorateClass([
21
+ AdminOnly
22
+ ], _UserAcquisition.prototype, "referrerCode", 2);
23
+ let UserAcquisition = _UserAcquisition;
24
+ export {
25
+ UserAcquisition
26
+ };
@@ -0,0 +1,11 @@
1
+ export interface CountryProps {
2
+ isoCode?: string;
3
+ label?: string;
4
+ }
5
+ export declare class Country {
6
+ isoCode?: string | undefined;
7
+ constructor(isoCode?: string | undefined);
8
+ get label(): string | undefined;
9
+ static fromJSON(props: CountryProps): Country;
10
+ toJSON(): CountryProps;
11
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var user_country_exports = {};
20
+ __export(user_country_exports, {
21
+ Country: () => Country
22
+ });
23
+ module.exports = __toCommonJS(user_country_exports);
24
+ var import_countries_and_currencies_utils = require("countries-and-currencies-utils");
25
+ var import_helpers = require("../../../../../common/helpers/index.js");
26
+ class Country {
27
+ constructor(isoCode) {
28
+ this.isoCode = isoCode;
29
+ }
30
+ isoCode;
31
+ get label() {
32
+ return this.isoCode ? (0, import_countries_and_currencies_utils.getCountryNameFromCountryCode)(this.isoCode) : void 0;
33
+ }
34
+ static fromJSON(props) {
35
+ return new Country((0, import_helpers.sanitizeString)(props.isoCode));
36
+ }
37
+ toJSON() {
38
+ return { isoCode: this.isoCode, label: this.label };
39
+ }
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ Country
44
+ });