openloops 0.1.8 → 0.1.10
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.
- package/dist/chunk-XRJFNASX.mjs +14 -0
- package/dist/common/clients/index.js +26 -0
- package/dist/common/clients/index.mjs +3 -0
- package/dist/common/clients/llm-client.js +159 -0
- package/dist/common/clients/llm-client.mjs +126 -0
- package/dist/common/clients/sentry-client.js +87 -0
- package/dist/common/clients/sentry-client.mjs +53 -0
- package/dist/common/clients/serper-client.js +74 -0
- package/dist/common/clients/serper-client.mjs +41 -0
- package/dist/common/core/base.app.js +57 -0
- package/dist/common/core/base.app.mjs +34 -0
- package/dist/common/core/base.entity.js +208 -0
- package/dist/common/core/base.entity.mjs +179 -0
- package/dist/common/core/base.use-case.js +30 -0
- package/dist/common/core/base.use-case.mjs +7 -0
- package/dist/common/core/index.js +1 -0
- package/dist/common/core/index.mjs +0 -0
- package/dist/common/core/utils/delete-empty-fields.js +66 -0
- package/dist/common/core/utils/delete-empty-fields.mjs +43 -0
- package/dist/common/core/utils/flatten-object.js +45 -0
- package/dist/common/core/utils/flatten-object.mjs +22 -0
- package/dist/common/core/utils/index.js +26 -0
- package/dist/common/core/utils/index.mjs +3 -0
- package/dist/common/core/utils/is-plain-object.js +32 -0
- package/dist/common/core/utils/is-plain-object.mjs +9 -0
- package/dist/common/decorators/admin-only/admin-only.js +52 -0
- package/dist/common/decorators/admin-only/admin-only.mjs +28 -0
- package/dist/common/decorators/admin-only/index.js +22 -0
- package/dist/common/decorators/admin-only/index.mjs +1 -0
- package/dist/common/decorators/index.js +26 -0
- package/dist/common/decorators/index.mjs +3 -0
- package/dist/common/decorators/mask-in-logs/index.js +22 -0
- package/dist/common/decorators/mask-in-logs/index.mjs +1 -0
- package/dist/common/decorators/mask-in-logs/mask-in-logs.js +53 -0
- package/dist/common/decorators/mask-in-logs/mask-in-logs.mjs +29 -0
- package/dist/common/decorators/owner-only/index.js +22 -0
- package/dist/common/decorators/owner-only/index.mjs +1 -0
- package/dist/common/decorators/owner-only/owner-only.js +52 -0
- package/dist/common/decorators/owner-only/owner-only.mjs +28 -0
- package/dist/common/error/http-error.js +37 -0
- package/dist/common/error/http-error.mjs +14 -0
- package/dist/common/error/index.js +24 -0
- package/dist/common/error/index.mjs +2 -0
- package/dist/common/error/reportError.js +51 -0
- package/dist/common/error/reportError.mjs +28 -0
- package/dist/common/helpers/extract-json-from-text.js +63 -0
- package/dist/common/helpers/extract-json-from-text.mjs +40 -0
- package/dist/common/helpers/index.js +24 -0
- package/dist/common/helpers/index.mjs +2 -0
- package/dist/common/helpers/sanitize-string.js +45 -0
- package/dist/common/helpers/sanitize-string.mjs +12 -0
- package/dist/common/logger/index.js +22 -0
- package/dist/common/logger/index.mjs +1 -0
- package/dist/common/logger/pino.js +70 -0
- package/dist/common/logger/pino.mjs +36 -0
- package/dist/common/repositories/index.js +24 -0
- package/dist/common/repositories/index.mjs +2 -0
- package/dist/common/repositories/mongo-db.client.js +79 -0
- package/dist/common/repositories/mongo-db.client.mjs +57 -0
- package/dist/common/repositories/mongo-db.repository.js +219 -0
- package/dist/common/repositories/mongo-db.repository.mjs +196 -0
- package/dist/common/utils/secret-manager.js +105 -0
- package/dist/common/utils/secret-manager.mjs +71 -0
- package/dist/index.js +22 -7
- package/dist/index.mjs +1 -7
- package/dist/services/agent/core/agent-loop.js +29 -0
- package/dist/services/agent/core/agent-loop.mjs +6 -0
- package/dist/services/agent/core/agent-state.js +102 -0
- package/dist/services/agent/core/agent-state.mjs +78 -0
- package/dist/services/agent/core/agent.js +351 -0
- package/dist/services/agent/core/agent.mjs +327 -0
- package/dist/services/agent/core/index.js +26 -0
- package/dist/services/agent/core/index.mjs +3 -0
- package/dist/services/agent/loops/index.js +24 -0
- package/dist/services/agent/loops/index.mjs +2 -0
- package/dist/services/agent/loops/plan-execute/index.js +22 -0
- package/dist/services/agent/loops/plan-execute/index.mjs +1 -0
- package/dist/services/agent/loops/plan-execute/plan-execute-loop.js +242 -0
- package/dist/services/agent/loops/plan-execute/plan-execute-loop.mjs +226 -0
- package/dist/services/agent/loops/shared/index.js +22 -0
- package/dist/services/agent/loops/shared/index.mjs +1 -0
- package/dist/services/agent/loops/shared/skills/action-planner.js +68 -0
- package/dist/services/agent/loops/shared/skills/action-planner.mjs +45 -0
- package/dist/services/agent/loops/shared/skills/confirmation-gate.js +53 -0
- package/dist/services/agent/loops/shared/skills/confirmation-gate.mjs +30 -0
- package/dist/services/agent/loops/shared/skills/fast-responder.js +70 -0
- package/dist/services/agent/loops/shared/skills/fast-responder.mjs +47 -0
- package/dist/services/agent/loops/shared/skills/final-responder.js +57 -0
- package/dist/services/agent/loops/shared/skills/final-responder.mjs +34 -0
- package/dist/services/agent/loops/shared/skills/index.js +32 -0
- package/dist/services/agent/loops/shared/skills/index.mjs +6 -0
- package/dist/services/agent/loops/shared/skills/state-observer.js +57 -0
- package/dist/services/agent/loops/shared/skills/state-observer.mjs +34 -0
- package/dist/services/agent/loops/shared/skills/strategy-engine.js +60 -0
- package/dist/services/agent/loops/shared/skills/strategy-engine.mjs +37 -0
- package/dist/services/agent/modules/chats/entities/agent-action.entity.js +151 -0
- package/dist/services/agent/modules/chats/entities/agent-action.entity.mjs +128 -0
- package/dist/services/agent/modules/chats/entities/agent-task.entity.js +231 -0
- package/dist/services/agent/modules/chats/entities/agent-task.entity.mjs +207 -0
- package/dist/services/agent/modules/chats/entities/chat-context.entity.js +70 -0
- package/dist/services/agent/modules/chats/entities/chat-context.entity.mjs +47 -0
- package/dist/services/agent/modules/chats/entities/chat-message.entity.js +58 -0
- package/dist/services/agent/modules/chats/entities/chat-message.entity.mjs +35 -0
- package/dist/services/agent/modules/chats/entities/chat-settings.entity.js +63 -0
- package/dist/services/agent/modules/chats/entities/chat-settings.entity.mjs +40 -0
- package/dist/services/agent/modules/chats/entities/chat.entity.js +163 -0
- package/dist/services/agent/modules/chats/entities/chat.entity.mjs +140 -0
- package/dist/services/agent/modules/chats/entities/index.js +22 -0
- package/dist/services/agent/modules/chats/entities/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.js +56 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.mjs +27 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.js +61 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.mjs +32 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.js +64 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.mjs +35 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.js +52 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.mjs +23 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.js +59 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.mjs +30 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.js +64 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.mjs +35 -0
- package/dist/services/agent/modules/chats/repositories/chat.repository.js +67 -0
- package/dist/services/agent/modules/chats/repositories/chat.repository.mjs +38 -0
- package/dist/services/agent/modules/chats/repositories/index.js +22 -0
- package/dist/services/agent/modules/chats/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/entities/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/entities/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.js +71 -0
- package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.mjs +48 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.js +56 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.mjs +27 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.js +61 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.mjs +32 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.js +123 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.mjs +94 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.js +52 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.mjs +23 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.js +62 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.mjs +33 -0
- package/dist/services/agent/modules/llmcalls/repositories/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.js +67 -0
- package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.mjs +38 -0
- package/dist/services/agent/modules/mcp-servers/entities/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/entities/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.js +79 -0
- package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.mjs +56 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.js +56 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.mjs +27 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.js +61 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.mjs +32 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.js +59 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.mjs +30 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.js +61 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.mjs +32 -0
- package/dist/services/agent/modules/mcp-servers/repositories/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.js +67 -0
- package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.mjs +38 -0
- package/dist/services/agent/skills/index.js +24 -0
- package/dist/services/agent/skills/index.mjs +2 -0
- package/dist/services/agent/skills/shared/index.js +22 -0
- package/dist/services/agent/skills/shared/index.mjs +1 -0
- package/dist/services/agent/skills/shared/shared-rules.js +37 -0
- package/dist/services/agent/skills/shared/shared-rules.mjs +11 -0
- package/dist/services/agent/skills/skill-runner.js +121 -0
- package/dist/services/agent/skills/skill-runner.mjs +92 -0
- package/dist/services/agent/skills/skill.js +128 -0
- package/dist/services/agent/skills/skill.mjs +105 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.skill.js +54 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.skill.mjs +31 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.tool.js +68 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.tool.mjs +45 -0
- package/dist/services/agent/tools/core/call-ai/index.js +22 -0
- package/dist/services/agent/tools/core/call-ai/index.mjs +1 -0
- package/dist/services/agent/tools/core/index.js +24 -0
- package/dist/services/agent/tools/core/index.mjs +2 -0
- package/dist/services/agent/tools/core/web-search/index.js +22 -0
- package/dist/services/agent/tools/core/web-search/index.mjs +1 -0
- package/dist/services/agent/tools/core/web-search/web-search.tool.js +51 -0
- package/dist/services/agent/tools/core/web-search/web-search.tool.mjs +30 -0
- package/dist/services/agent/tools/index.js +24 -0
- package/dist/services/agent/tools/index.mjs +2 -0
- package/dist/services/agent/tools/tool.js +57 -0
- package/dist/services/agent/tools/tool.mjs +34 -0
- package/dist/services/agent/utils/rank-tools-by-keywords.js +65 -0
- package/dist/services/agent/utils/rank-tools-by-keywords.mjs +42 -0
- package/dist/services/app/core/app.js +60 -0
- package/dist/services/app/core/app.mjs +47 -0
- package/dist/services/app/core/current-session.js +124 -0
- package/dist/services/app/core/current-session.mjs +104 -0
- package/dist/services/app/core/current-user.js +84 -0
- package/dist/services/app/core/current-user.mjs +61 -0
- package/dist/services/app/core/index.js +26 -0
- package/dist/services/app/core/index.mjs +3 -0
- package/dist/services/app/modules/authentication/lambdas/login/index.js +22 -0
- package/dist/services/app/modules/authentication/lambdas/login/index.mjs +1 -0
- package/dist/services/app/modules/authentication/lambdas/login/login.use-case.js +89 -0
- package/dist/services/app/modules/authentication/lambdas/login/login.use-case.mjs +50 -0
- package/dist/services/app/modules/users/entities/index.js +22 -0
- package/dist/services/app/modules/users/entities/index.mjs +1 -0
- package/dist/services/app/modules/users/entities/user-acquisition.js +55 -0
- package/dist/services/app/modules/users/entities/user-acquisition.mjs +26 -0
- package/dist/services/app/modules/users/entities/user-country.js +44 -0
- package/dist/services/app/modules/users/entities/user-country.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-currency.js +44 -0
- package/dist/services/app/modules/users/entities/user-currency.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-email.value-object.js +43 -0
- package/dist/services/app/modules/users/entities/user-email.value-object.mjs +20 -0
- package/dist/services/app/modules/users/entities/user-language.js +44 -0
- package/dist/services/app/modules/users/entities/user-language.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-marketing.js +53 -0
- package/dist/services/app/modules/users/entities/user-marketing.mjs +24 -0
- package/dist/services/app/modules/users/entities/user-notification-preferences.js +41 -0
- package/dist/services/app/modules/users/entities/user-notification-preferences.mjs +18 -0
- package/dist/services/app/modules/users/entities/user-password.value-object.js +69 -0
- package/dist/services/app/modules/users/entities/user-password.value-object.mjs +36 -0
- package/dist/services/app/modules/users/entities/user-permissions.js +59 -0
- package/dist/services/app/modules/users/entities/user-permissions.mjs +36 -0
- package/dist/services/app/modules/users/entities/user-preferences.js +69 -0
- package/dist/services/app/modules/users/entities/user-preferences.mjs +46 -0
- package/dist/services/app/modules/users/entities/user-report-preferences.js +56 -0
- package/dist/services/app/modules/users/entities/user-report-preferences.mjs +33 -0
- package/dist/services/app/modules/users/entities/user-report-schedule.js +41 -0
- package/dist/services/app/modules/users/entities/user-report-schedule.mjs +18 -0
- package/dist/services/app/modules/users/entities/user-timezone.js +44 -0
- package/dist/services/app/modules/users/entities/user-timezone.mjs +21 -0
- package/dist/services/app/modules/users/entities/user.entity.js +133 -0
- package/dist/services/app/modules/users/entities/user.entity.mjs +103 -0
- package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.js +58 -0
- package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.mjs +29 -0
- package/dist/services/app/modules/users/lambdas/create-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/create-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.js +61 -0
- package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.mjs +32 -0
- package/dist/services/app/modules/users/lambdas/delete-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/delete-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.js +52 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.mjs +23 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.js +52 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.mjs +23 -0
- package/dist/services/app/modules/users/lambdas/update-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/update-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.js +62 -0
- package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.mjs +33 -0
- package/dist/services/app/modules/users/repositories/index.js +22 -0
- package/dist/services/app/modules/users/repositories/index.mjs +1 -0
- package/dist/services/app/modules/users/repositories/user.repository.js +83 -0
- package/dist/services/app/modules/users/repositories/user.repository.mjs +54 -0
- package/package.json +2 -2
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import "../../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import {
|
|
3
|
+
getCountryDataFromCountryCode,
|
|
4
|
+
getCountryISOCodeFromTimezone,
|
|
5
|
+
getTimezoneOffset
|
|
6
|
+
} from "countries-and-currencies-utils";
|
|
7
|
+
class CurrentSession {
|
|
8
|
+
constructor(clientType, environment, app, device, preferences, location, request) {
|
|
9
|
+
this.clientType = clientType;
|
|
10
|
+
this.environment = environment;
|
|
11
|
+
this.app = app;
|
|
12
|
+
this.device = device;
|
|
13
|
+
this.preferences = preferences;
|
|
14
|
+
this.location = location;
|
|
15
|
+
this.request = request;
|
|
16
|
+
}
|
|
17
|
+
clientType;
|
|
18
|
+
environment;
|
|
19
|
+
app;
|
|
20
|
+
device;
|
|
21
|
+
preferences;
|
|
22
|
+
location;
|
|
23
|
+
request;
|
|
24
|
+
get language() {
|
|
25
|
+
return this.preferences?.locale?.split("_")[0];
|
|
26
|
+
}
|
|
27
|
+
get timezoneOffset() {
|
|
28
|
+
return getTimezoneOffset(this.location?.timezone);
|
|
29
|
+
}
|
|
30
|
+
get currencyCode() {
|
|
31
|
+
const currentCountryData = getCountryDataFromCountryCode(this.location?.country);
|
|
32
|
+
return currentCountryData?.currency?.isoCode;
|
|
33
|
+
}
|
|
34
|
+
static fromJSON(json) {
|
|
35
|
+
return new CurrentSession(
|
|
36
|
+
json.clientType,
|
|
37
|
+
json.environment,
|
|
38
|
+
json.app,
|
|
39
|
+
json.device,
|
|
40
|
+
json.preferences,
|
|
41
|
+
json.location,
|
|
42
|
+
json.request
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
toJson() {
|
|
46
|
+
return {
|
|
47
|
+
clientType: this.clientType,
|
|
48
|
+
environment: this.environment,
|
|
49
|
+
app: this.app,
|
|
50
|
+
device: this.device,
|
|
51
|
+
preferences: this.preferences,
|
|
52
|
+
location: this.location,
|
|
53
|
+
request: this.request
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
static fromRequest(request) {
|
|
57
|
+
let xCurrentSessionHeaderObj = {};
|
|
58
|
+
try {
|
|
59
|
+
xCurrentSessionHeaderObj = JSON.parse(request.xCurrentSessionHeader || "{}");
|
|
60
|
+
} catch (error) {
|
|
61
|
+
xCurrentSessionHeaderObj = {};
|
|
62
|
+
}
|
|
63
|
+
const session = CurrentSession.fromJSON(xCurrentSessionHeaderObj);
|
|
64
|
+
session.request = {
|
|
65
|
+
...session.request,
|
|
66
|
+
id: request.requestId,
|
|
67
|
+
path: request.path,
|
|
68
|
+
ipAddress: request.ipAddress,
|
|
69
|
+
userAgent: request.userAgent
|
|
70
|
+
};
|
|
71
|
+
session.location = session.location?.timezone ? {
|
|
72
|
+
...session.location,
|
|
73
|
+
country: getCountryISOCodeFromTimezone(session.location?.timezone)
|
|
74
|
+
} : session.location;
|
|
75
|
+
return session;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
var ClientType = /* @__PURE__ */ ((ClientType2) => {
|
|
79
|
+
ClientType2["WEB"] = "web";
|
|
80
|
+
ClientType2["MOBILE"] = "mobile";
|
|
81
|
+
ClientType2["DESKTOP"] = "desktop";
|
|
82
|
+
ClientType2["API"] = "api";
|
|
83
|
+
return ClientType2;
|
|
84
|
+
})(ClientType || {});
|
|
85
|
+
var ClientEnvironment = /* @__PURE__ */ ((ClientEnvironment2) => {
|
|
86
|
+
ClientEnvironment2["PRODUCTION"] = "production";
|
|
87
|
+
ClientEnvironment2["STAGING"] = "staging";
|
|
88
|
+
ClientEnvironment2["DEVELOPMENT"] = "development";
|
|
89
|
+
return ClientEnvironment2;
|
|
90
|
+
})(ClientEnvironment || {});
|
|
91
|
+
var DevicePlatform = /* @__PURE__ */ ((DevicePlatform2) => {
|
|
92
|
+
DevicePlatform2["SMARTPHONE"] = "smartphone";
|
|
93
|
+
DevicePlatform2["TABLET"] = "tablet";
|
|
94
|
+
DevicePlatform2["IPAD"] = "ipad";
|
|
95
|
+
DevicePlatform2["SMARTWATCH"] = "smartwatch";
|
|
96
|
+
DevicePlatform2["DESKTOP"] = "desktop";
|
|
97
|
+
DevicePlatform2["LAPTOP"] = "laptop";
|
|
98
|
+
DevicePlatform2["TV"] = "tv";
|
|
99
|
+
return DevicePlatform2;
|
|
100
|
+
})(DevicePlatform || {});
|
|
101
|
+
export {
|
|
102
|
+
ClientEnvironment,
|
|
103
|
+
CurrentSession
|
|
104
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
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 current_user_exports = {};
|
|
20
|
+
__export(current_user_exports, {
|
|
21
|
+
CurrentUser: () => CurrentUser
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(current_user_exports);
|
|
24
|
+
var import_mongodb = require("mongodb");
|
|
25
|
+
var import_countries_and_currencies_utils = require("countries-and-currencies-utils");
|
|
26
|
+
var import_mongo_db = require("@common/repositories/mongo-db.client");
|
|
27
|
+
var import_secret_manager = require("@common/utils/secret-manager");
|
|
28
|
+
var import_logger = require("@common/logger");
|
|
29
|
+
var import_user = require("@services/app/modules/users/entities/user.entity");
|
|
30
|
+
class CurrentUser extends import_user.User {
|
|
31
|
+
_isPremium = false;
|
|
32
|
+
static async asyncFromDB(userId) {
|
|
33
|
+
if (!userId) return void 0;
|
|
34
|
+
const mongoDBClient = (0, import_mongo_db.getMongoDBClient)();
|
|
35
|
+
const db = await mongoDBClient.db(import_secret_manager.secretManager.get("OPENLOOPS_DB_NAME"));
|
|
36
|
+
let user;
|
|
37
|
+
try {
|
|
38
|
+
user = await db.collection("users").findOne(
|
|
39
|
+
{ _id: new import_mongodb.ObjectId(userId) },
|
|
40
|
+
{ projection: { password: 0 } }
|
|
41
|
+
);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
import_logger.logger.error({ userId, error }, "[Current User] Error fetching user with ID");
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
if (!user) {
|
|
47
|
+
import_logger.logger.warn({ userId }, "[Current User] User not found in database");
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
return CurrentUser.fromJSON(user);
|
|
51
|
+
}
|
|
52
|
+
static fromJSON(json) {
|
|
53
|
+
const user = import_user.User.fromJSON(json);
|
|
54
|
+
return Object.assign(new CurrentUser(user.props), user);
|
|
55
|
+
}
|
|
56
|
+
get userId() {
|
|
57
|
+
return this._id?.toString();
|
|
58
|
+
}
|
|
59
|
+
get language() {
|
|
60
|
+
return this.preferences?.language?.isoCode;
|
|
61
|
+
}
|
|
62
|
+
get hasPushNotificationsPermission() {
|
|
63
|
+
return this.permissions?.notifications ?? false;
|
|
64
|
+
}
|
|
65
|
+
get timezoneOffset() {
|
|
66
|
+
return (0, import_countries_and_currencies_utils.getTimezoneOffset)(this.preferences?.timezone?.ianaIdentifier);
|
|
67
|
+
}
|
|
68
|
+
setIsPremium(value) {
|
|
69
|
+
this._isPremium = value;
|
|
70
|
+
}
|
|
71
|
+
isAdmin() {
|
|
72
|
+
return this.role === import_user.UserRole.ADMIN;
|
|
73
|
+
}
|
|
74
|
+
isFreePlan() {
|
|
75
|
+
return !this.isPremium;
|
|
76
|
+
}
|
|
77
|
+
isPremium() {
|
|
78
|
+
return this._isPremium;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
CurrentUser
|
|
84
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import "../../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import { ObjectId } from "mongodb";
|
|
3
|
+
import { getTimezoneOffset } from "countries-and-currencies-utils";
|
|
4
|
+
import { getMongoDBClient } from "@common/repositories/mongo-db.client";
|
|
5
|
+
import { secretManager } from "@common/utils/secret-manager";
|
|
6
|
+
import { logger } from "@common/logger";
|
|
7
|
+
import { User, UserRole } from "@services/app/modules/users/entities/user.entity";
|
|
8
|
+
class CurrentUser extends User {
|
|
9
|
+
_isPremium = false;
|
|
10
|
+
static async asyncFromDB(userId) {
|
|
11
|
+
if (!userId) return void 0;
|
|
12
|
+
const mongoDBClient = getMongoDBClient();
|
|
13
|
+
const db = await mongoDBClient.db(secretManager.get("OPENLOOPS_DB_NAME"));
|
|
14
|
+
let user;
|
|
15
|
+
try {
|
|
16
|
+
user = await db.collection("users").findOne(
|
|
17
|
+
{ _id: new ObjectId(userId) },
|
|
18
|
+
{ projection: { password: 0 } }
|
|
19
|
+
);
|
|
20
|
+
} catch (error) {
|
|
21
|
+
logger.error({ userId, error }, "[Current User] Error fetching user with ID");
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
if (!user) {
|
|
25
|
+
logger.warn({ userId }, "[Current User] User not found in database");
|
|
26
|
+
return void 0;
|
|
27
|
+
}
|
|
28
|
+
return CurrentUser.fromJSON(user);
|
|
29
|
+
}
|
|
30
|
+
static fromJSON(json) {
|
|
31
|
+
const user = User.fromJSON(json);
|
|
32
|
+
return Object.assign(new CurrentUser(user.props), user);
|
|
33
|
+
}
|
|
34
|
+
get userId() {
|
|
35
|
+
return this._id?.toString();
|
|
36
|
+
}
|
|
37
|
+
get language() {
|
|
38
|
+
return this.preferences?.language?.isoCode;
|
|
39
|
+
}
|
|
40
|
+
get hasPushNotificationsPermission() {
|
|
41
|
+
return this.permissions?.notifications ?? false;
|
|
42
|
+
}
|
|
43
|
+
get timezoneOffset() {
|
|
44
|
+
return getTimezoneOffset(this.preferences?.timezone?.ianaIdentifier);
|
|
45
|
+
}
|
|
46
|
+
setIsPremium(value) {
|
|
47
|
+
this._isPremium = value;
|
|
48
|
+
}
|
|
49
|
+
isAdmin() {
|
|
50
|
+
return this.role === UserRole.ADMIN;
|
|
51
|
+
}
|
|
52
|
+
isFreePlan() {
|
|
53
|
+
return !this.isPremium;
|
|
54
|
+
}
|
|
55
|
+
isPremium() {
|
|
56
|
+
return this._isPremium;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export {
|
|
60
|
+
CurrentUser
|
|
61
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
});
|
|
@@ -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,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");
|
|
45
|
+
var import_entities = require("@services/app/modules/users/entities");
|
|
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";
|
|
7
|
+
import { UserRole } from "@services/app/modules/users/entities";
|
|
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,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,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");
|
|
33
|
+
var import_helpers = require("@common/helpers");
|
|
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";
|
|
5
|
+
import { sanitizeString } from "@common/helpers";
|
|
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,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");
|
|
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
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "../../../../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import { getCountryNameFromCountryCode } from "countries-and-currencies-utils";
|
|
3
|
+
import { sanitizeString } from "@common/helpers";
|
|
4
|
+
class Country {
|
|
5
|
+
constructor(isoCode) {
|
|
6
|
+
this.isoCode = isoCode;
|
|
7
|
+
}
|
|
8
|
+
isoCode;
|
|
9
|
+
get label() {
|
|
10
|
+
return this.isoCode ? getCountryNameFromCountryCode(this.isoCode) : void 0;
|
|
11
|
+
}
|
|
12
|
+
static fromJSON(props) {
|
|
13
|
+
return new Country(sanitizeString(props.isoCode));
|
|
14
|
+
}
|
|
15
|
+
toJSON() {
|
|
16
|
+
return { isoCode: this.isoCode, label: this.label };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
Country
|
|
21
|
+
};
|
|
@@ -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_currency_exports = {};
|
|
20
|
+
__export(user_currency_exports, {
|
|
21
|
+
Currency: () => Currency
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(user_currency_exports);
|
|
24
|
+
var import_helpers = require("@common/helpers");
|
|
25
|
+
class Currency {
|
|
26
|
+
constructor(isoCode, label, symbol) {
|
|
27
|
+
this.isoCode = isoCode;
|
|
28
|
+
this.label = label;
|
|
29
|
+
this.symbol = symbol;
|
|
30
|
+
}
|
|
31
|
+
isoCode;
|
|
32
|
+
label;
|
|
33
|
+
symbol;
|
|
34
|
+
static fromJSON(props) {
|
|
35
|
+
return new Currency((0, import_helpers.sanitizeString)(props.isoCode), (0, import_helpers.sanitizeString)(props.label), (0, import_helpers.sanitizeString)(props.symbol));
|
|
36
|
+
}
|
|
37
|
+
toJSON() {
|
|
38
|
+
return { isoCode: this.isoCode, label: this.label, symbol: this.symbol };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
Currency
|
|
44
|
+
});
|