@laboratory-one/api-components 0.0.1 → 0.0.3
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/README.md +5 -0
- package/dist/cjs/auth/auth.module.d.ts +3 -0
- package/dist/cjs/auth/auth.module.d.ts.map +1 -0
- package/dist/cjs/auth/auth.module.js +18 -0
- package/dist/cjs/auth/auth.module.js.map +1 -0
- package/dist/cjs/auth/auth.service.d.ts +11 -0
- package/dist/cjs/auth/auth.service.d.ts.map +1 -0
- package/dist/cjs/auth/auth.service.js +37 -0
- package/dist/cjs/auth/auth.service.js.map +1 -0
- package/dist/cjs/auth/index.d.ts +3 -0
- package/dist/cjs/auth/index.d.ts.map +1 -0
- package/dist/cjs/auth/index.js +6 -0
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/enums/humanDay.enum.d.ts +10 -0
- package/dist/cjs/enums/humanDay.enum.d.ts.map +1 -0
- package/dist/cjs/enums/humanDay.enum.js +14 -0
- package/dist/cjs/enums/humanDay.enum.js.map +1 -0
- package/dist/cjs/enums/index.d.ts +3 -0
- package/dist/cjs/enums/index.d.ts.map +1 -0
- package/dist/cjs/enums/index.js +6 -0
- package/dist/cjs/enums/index.js.map +1 -0
- package/dist/cjs/enums/onboarding-status.enum.d.ts +7 -0
- package/dist/cjs/enums/onboarding-status.enum.d.ts.map +1 -0
- package/dist/cjs/enums/onboarding-status.enum.js +11 -0
- package/dist/cjs/enums/onboarding-status.enum.js.map +1 -0
- package/dist/cjs/enums/serverDay.enum.d.ts +10 -0
- package/dist/cjs/enums/serverDay.enum.d.ts.map +1 -0
- package/dist/cjs/enums/serverDay.enum.js +14 -0
- package/dist/cjs/enums/serverDay.enum.js.map +1 -0
- package/dist/cjs/guard/auth.guard.d.ts +11 -0
- package/dist/cjs/guard/auth.guard.d.ts.map +1 -0
- package/dist/cjs/guard/auth.guard.js +42 -0
- package/dist/cjs/guard/auth.guard.js.map +1 -0
- package/dist/cjs/guard/index.d.ts +2 -0
- package/dist/cjs/guard/index.d.ts.map +1 -0
- package/dist/cjs/guard/index.js +5 -0
- package/dist/cjs/guard/index.js.map +1 -0
- package/dist/cjs/health/dtos/health.response.dto.d.ts +10 -0
- package/dist/cjs/health/dtos/health.response.dto.d.ts.map +1 -0
- package/dist/cjs/health/dtos/health.response.dto.js +31 -0
- package/dist/cjs/health/dtos/health.response.dto.js.map +1 -0
- package/dist/cjs/health/dtos/index.d.ts +2 -0
- package/dist/cjs/health/dtos/index.d.ts.map +1 -0
- package/dist/cjs/health/dtos/index.js +5 -0
- package/dist/cjs/health/dtos/index.js.map +1 -0
- package/dist/cjs/health/health.controller.d.ts +8 -0
- package/dist/cjs/health/health.controller.d.ts.map +1 -0
- package/dist/cjs/health/health.controller.js +36 -0
- package/dist/cjs/health/health.controller.js.map +1 -0
- package/dist/cjs/health/health.module.d.ts +3 -0
- package/dist/cjs/health/health.module.d.ts.map +1 -0
- package/dist/cjs/health/health.module.js +20 -0
- package/dist/cjs/health/health.module.js.map +1 -0
- package/dist/cjs/health/health.service.d.ts +13 -0
- package/dist/cjs/health/health.service.d.ts.map +1 -0
- package/dist/cjs/health/health.service.js +36 -0
- package/dist/cjs/health/health.service.js.map +1 -0
- package/dist/cjs/health/index.d.ts +5 -0
- package/dist/cjs/health/index.d.ts.map +1 -0
- package/dist/cjs/health/index.js +8 -0
- package/dist/cjs/health/index.js.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/middleware/index.d.ts +2 -0
- package/dist/cjs/middleware/index.d.ts.map +1 -0
- package/dist/cjs/middleware/index.js +5 -0
- package/dist/cjs/middleware/index.js.map +1 -0
- package/dist/cjs/middleware/logger.middleware.d.ts +7 -0
- package/dist/cjs/middleware/logger.middleware.d.ts.map +1 -0
- package/dist/cjs/middleware/logger.middleware.js +28 -0
- package/dist/cjs/middleware/logger.middleware.js.map +1 -0
- package/dist/cjs/prisma/index.d.ts +3 -0
- package/dist/cjs/prisma/index.d.ts.map +1 -0
- package/dist/cjs/prisma/index.js +6 -0
- package/dist/cjs/prisma/index.js.map +1 -0
- package/dist/cjs/prisma/prisma.module.d.ts +3 -0
- package/dist/cjs/prisma/prisma.module.d.ts.map +1 -0
- package/dist/cjs/prisma/prisma.module.js +17 -0
- package/dist/cjs/prisma/prisma.module.js.map +1 -0
- package/dist/cjs/prisma/prisma.service.d.ts +9 -0
- package/dist/cjs/prisma/prisma.service.d.ts.map +1 -0
- package/dist/cjs/prisma/prisma.service.js +31 -0
- package/dist/cjs/prisma/prisma.service.js.map +1 -0
- package/dist/cjs/push/index.d.ts +3 -0
- package/dist/cjs/push/index.d.ts.map +1 -0
- package/dist/cjs/push/index.js +6 -0
- package/dist/cjs/push/index.js.map +1 -0
- package/dist/cjs/push/push.module.d.ts +3 -0
- package/dist/cjs/push/push.module.d.ts.map +1 -0
- package/dist/cjs/push/push.module.js +17 -0
- package/dist/cjs/push/push.module.js.map +1 -0
- package/dist/cjs/push/push.service.d.ts +12 -0
- package/dist/cjs/push/push.service.d.ts.map +1 -0
- package/dist/cjs/push/push.service.js +68 -0
- package/dist/cjs/push/push.service.js.map +1 -0
- package/dist/cjs/search/index.d.ts +3 -0
- package/dist/cjs/search/index.d.ts.map +1 -0
- package/dist/cjs/search/index.js +6 -0
- package/dist/cjs/search/index.js.map +1 -0
- package/dist/cjs/search/search.module.d.ts +3 -0
- package/dist/cjs/search/search.module.d.ts.map +1 -0
- package/dist/cjs/search/search.module.js +17 -0
- package/dist/cjs/search/search.module.js.map +1 -0
- package/dist/cjs/search/search.service.d.ts +12 -0
- package/dist/cjs/search/search.service.d.ts.map +1 -0
- package/dist/cjs/search/search.service.js +60 -0
- package/dist/cjs/search/search.service.js.map +1 -0
- package/dist/cjs/services/index.d.ts +2 -0
- package/dist/cjs/services/index.d.ts.map +1 -0
- package/dist/cjs/services/index.js +5 -0
- package/dist/cjs/services/index.js.map +1 -0
- package/dist/cjs/services/instrument-sentry.d.ts +2 -0
- package/dist/cjs/services/instrument-sentry.d.ts.map +1 -0
- package/dist/cjs/services/instrument-sentry.js +18 -0
- package/dist/cjs/services/instrument-sentry.js.map +1 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +5 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/success.response.dto.d.ts +4 -0
- package/dist/cjs/types/success.response.dto.d.ts.map +1 -0
- package/dist/cjs/types/success.response.dto.js +15 -0
- package/dist/cjs/types/success.response.dto.js.map +1 -0
- package/dist/cjs/user/dtos/get-user.response.dto.d.ts +10 -0
- package/dist/cjs/user/dtos/get-user.response.dto.d.ts.map +1 -0
- package/dist/cjs/user/dtos/get-user.response.dto.js +44 -0
- package/dist/cjs/user/dtos/get-user.response.dto.js.map +1 -0
- package/dist/cjs/user/dtos/index.d.ts +5 -0
- package/dist/cjs/user/dtos/index.d.ts.map +1 -0
- package/dist/cjs/user/dtos/index.js +8 -0
- package/dist/cjs/user/dtos/index.js.map +1 -0
- package/dist/cjs/user/dtos/register.request.dto.d.ts +5 -0
- package/dist/cjs/user/dtos/register.request.dto.d.ts.map +1 -0
- package/dist/cjs/user/dtos/register.request.dto.js +20 -0
- package/dist/cjs/user/dtos/register.request.dto.js.map +1 -0
- package/dist/cjs/user/dtos/register.response.dto.d.ts +5 -0
- package/dist/cjs/user/dtos/register.response.dto.d.ts.map +1 -0
- package/dist/cjs/user/dtos/register.response.dto.js +16 -0
- package/dist/cjs/user/dtos/register.response.dto.js.map +1 -0
- package/dist/cjs/user/dtos/update-user.request.dto.d.ts +6 -0
- package/dist/cjs/user/dtos/update-user.request.dto.d.ts.map +1 -0
- package/dist/cjs/user/dtos/update-user.request.dto.js +28 -0
- package/dist/cjs/user/dtos/update-user.request.dto.js.map +1 -0
- package/dist/cjs/user/index.d.ts +5 -0
- package/dist/cjs/user/index.d.ts.map +1 -0
- package/dist/cjs/user/index.js +8 -0
- package/dist/cjs/user/index.js.map +1 -0
- package/dist/cjs/user/user.controller.d.ts +21 -0
- package/dist/cjs/user/user.controller.d.ts.map +1 -0
- package/dist/cjs/user/user.controller.js +191 -0
- package/dist/cjs/user/user.controller.js.map +1 -0
- package/dist/cjs/user/user.module.d.ts +3 -0
- package/dist/cjs/user/user.module.d.ts.map +1 -0
- package/dist/cjs/user/user.module.js +22 -0
- package/dist/cjs/user/user.module.js.map +1 -0
- package/dist/cjs/user/user.service.d.ts +12 -0
- package/dist/cjs/user/user.service.d.ts.map +1 -0
- package/dist/cjs/user/user.service.js +44 -0
- package/dist/cjs/user/user.service.js.map +1 -0
- package/dist/cjs/utils/datetime.d.ts +6 -0
- package/dist/cjs/utils/datetime.d.ts.map +1 -0
- package/dist/cjs/utils/datetime.js +33 -0
- package/dist/cjs/utils/datetime.js.map +1 -0
- package/dist/cjs/utils/error.d.ts +2 -0
- package/dist/cjs/utils/error.d.ts.map +1 -0
- package/dist/cjs/utils/error.js +17 -0
- package/dist/cjs/utils/error.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +5 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +8 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/input.d.ts +4 -0
- package/dist/cjs/utils/input.d.ts.map +1 -0
- package/dist/cjs/utils/input.js +24 -0
- package/dist/cjs/utils/input.js.map +1 -0
- package/dist/cjs/utils/noop.d.ts +2 -0
- package/dist/cjs/utils/noop.d.ts.map +1 -0
- package/dist/cjs/utils/noop.js +6 -0
- package/dist/cjs/utils/noop.js.map +1 -0
- package/dist/cjs/utils/string.d.ts +2 -0
- package/dist/cjs/utils/string.d.ts.map +1 -0
- package/dist/cjs/utils/string.js +8 -0
- package/dist/cjs/utils/string.js.map +1 -0
- package/dist/esm/auth/auth.module.d.ts +3 -0
- package/dist/esm/auth/auth.module.d.ts.map +1 -0
- package/dist/esm/auth/auth.module.js +15 -0
- package/dist/esm/auth/auth.module.js.map +1 -0
- package/dist/esm/auth/auth.service.d.ts +11 -0
- package/dist/esm/auth/auth.service.d.ts.map +1 -0
- package/dist/esm/auth/auth.service.js +34 -0
- package/dist/esm/auth/auth.service.js.map +1 -0
- package/dist/esm/auth/index.d.ts +3 -0
- package/dist/esm/auth/index.d.ts.map +1 -0
- package/dist/esm/auth/index.js +3 -0
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/enums/humanDay.enum.d.ts +10 -0
- package/dist/esm/enums/humanDay.enum.d.ts.map +1 -0
- package/dist/esm/enums/humanDay.enum.js +11 -0
- package/dist/esm/enums/humanDay.enum.js.map +1 -0
- package/dist/esm/enums/index.d.ts +3 -0
- package/dist/esm/enums/index.d.ts.map +1 -0
- package/dist/esm/enums/index.js +3 -0
- package/dist/esm/enums/index.js.map +1 -0
- package/dist/esm/enums/onboarding-status.enum.d.ts +7 -0
- package/dist/esm/enums/onboarding-status.enum.d.ts.map +1 -0
- package/dist/esm/enums/onboarding-status.enum.js +11 -0
- package/dist/esm/enums/onboarding-status.enum.js.map +1 -0
- package/dist/esm/enums/serverDay.enum.d.ts +10 -0
- package/dist/esm/enums/serverDay.enum.d.ts.map +1 -0
- package/dist/esm/enums/serverDay.enum.js +11 -0
- package/dist/esm/enums/serverDay.enum.js.map +1 -0
- package/dist/esm/guard/auth.guard.d.ts +11 -0
- package/dist/esm/guard/auth.guard.d.ts.map +1 -0
- package/dist/esm/guard/auth.guard.js +39 -0
- package/dist/esm/guard/auth.guard.js.map +1 -0
- package/dist/esm/guard/index.d.ts +2 -0
- package/dist/esm/guard/index.d.ts.map +1 -0
- package/dist/esm/guard/index.js +2 -0
- package/dist/esm/guard/index.js.map +1 -0
- package/dist/esm/health/dtos/health.response.dto.d.ts +10 -0
- package/dist/esm/health/dtos/health.response.dto.d.ts.map +1 -0
- package/dist/esm/health/dtos/health.response.dto.js +27 -0
- package/dist/esm/health/dtos/health.response.dto.js.map +1 -0
- package/dist/esm/health/dtos/index.d.ts +2 -0
- package/dist/esm/health/dtos/index.d.ts.map +1 -0
- package/dist/esm/health/dtos/index.js +2 -0
- package/dist/esm/health/dtos/index.js.map +1 -0
- package/dist/esm/health/health.controller.d.ts +8 -0
- package/dist/esm/health/health.controller.d.ts.map +1 -0
- package/dist/esm/health/health.controller.js +33 -0
- package/dist/esm/health/health.controller.js.map +1 -0
- package/dist/esm/health/health.module.d.ts +3 -0
- package/dist/esm/health/health.module.d.ts.map +1 -0
- package/dist/esm/health/health.module.js +17 -0
- package/dist/esm/health/health.module.js.map +1 -0
- package/dist/esm/health/health.service.d.ts +13 -0
- package/dist/esm/health/health.service.d.ts.map +1 -0
- package/dist/esm/health/health.service.js +33 -0
- package/dist/esm/health/health.service.js.map +1 -0
- package/dist/esm/health/index.d.ts +5 -0
- package/dist/esm/health/index.d.ts.map +1 -0
- package/dist/esm/health/index.js +5 -0
- package/dist/esm/health/index.js.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/middleware/index.d.ts +2 -0
- package/dist/esm/middleware/index.d.ts.map +1 -0
- package/dist/esm/middleware/index.js +2 -0
- package/dist/esm/middleware/index.js.map +1 -0
- package/dist/esm/middleware/logger.middleware.d.ts +7 -0
- package/dist/esm/middleware/logger.middleware.d.ts.map +1 -0
- package/dist/esm/middleware/logger.middleware.js +25 -0
- package/dist/esm/middleware/logger.middleware.js.map +1 -0
- package/dist/esm/prisma/index.d.ts +3 -0
- package/dist/esm/prisma/index.d.ts.map +1 -0
- package/dist/esm/prisma/index.js +3 -0
- package/dist/esm/prisma/index.js.map +1 -0
- package/dist/esm/prisma/prisma.module.d.ts +3 -0
- package/dist/esm/prisma/prisma.module.d.ts.map +1 -0
- package/dist/esm/prisma/prisma.module.js +14 -0
- package/dist/esm/prisma/prisma.module.js.map +1 -0
- package/dist/esm/prisma/prisma.service.d.ts +9 -0
- package/dist/esm/prisma/prisma.service.d.ts.map +1 -0
- package/dist/esm/prisma/prisma.service.js +28 -0
- package/dist/esm/prisma/prisma.service.js.map +1 -0
- package/dist/esm/push/index.d.ts +3 -0
- package/dist/esm/push/index.d.ts.map +1 -0
- package/dist/esm/push/index.js +3 -0
- package/dist/esm/push/index.js.map +1 -0
- package/dist/esm/push/push.module.d.ts +3 -0
- package/dist/esm/push/push.module.d.ts.map +1 -0
- package/dist/esm/push/push.module.js +14 -0
- package/dist/esm/push/push.module.js.map +1 -0
- package/dist/esm/push/push.service.d.ts +12 -0
- package/dist/esm/push/push.service.d.ts.map +1 -0
- package/dist/esm/push/push.service.js +65 -0
- package/dist/esm/push/push.service.js.map +1 -0
- package/dist/esm/search/index.d.ts +3 -0
- package/dist/esm/search/index.d.ts.map +1 -0
- package/dist/esm/search/index.js +3 -0
- package/dist/esm/search/index.js.map +1 -0
- package/dist/esm/search/search.module.d.ts +3 -0
- package/dist/esm/search/search.module.d.ts.map +1 -0
- package/dist/esm/search/search.module.js +14 -0
- package/dist/esm/search/search.module.js.map +1 -0
- package/dist/esm/search/search.service.d.ts +12 -0
- package/dist/esm/search/search.service.d.ts.map +1 -0
- package/dist/esm/search/search.service.js +57 -0
- package/dist/esm/search/search.service.js.map +1 -0
- package/dist/esm/services/index.d.ts +2 -0
- package/dist/esm/services/index.d.ts.map +1 -0
- package/dist/esm/services/index.js +2 -0
- package/dist/esm/services/index.js.map +1 -0
- package/dist/esm/services/instrument-sentry.d.ts +2 -0
- package/dist/esm/services/instrument-sentry.d.ts.map +1 -0
- package/dist/esm/services/instrument-sentry.js +13 -0
- package/dist/esm/services/instrument-sentry.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/success.response.dto.d.ts +4 -0
- package/dist/esm/types/success.response.dto.d.ts.map +1 -0
- package/dist/esm/types/success.response.dto.js +11 -0
- package/dist/esm/types/success.response.dto.js.map +1 -0
- package/dist/esm/user/dtos/get-user.response.dto.d.ts +10 -0
- package/dist/esm/user/dtos/get-user.response.dto.d.ts.map +1 -0
- package/dist/esm/user/dtos/get-user.response.dto.js +40 -0
- package/dist/esm/user/dtos/get-user.response.dto.js.map +1 -0
- package/dist/esm/user/dtos/index.d.ts +5 -0
- package/dist/esm/user/dtos/index.d.ts.map +1 -0
- package/dist/esm/user/dtos/index.js +5 -0
- package/dist/esm/user/dtos/index.js.map +1 -0
- package/dist/esm/user/dtos/register.request.dto.d.ts +5 -0
- package/dist/esm/user/dtos/register.request.dto.d.ts.map +1 -0
- package/dist/esm/user/dtos/register.request.dto.js +16 -0
- package/dist/esm/user/dtos/register.request.dto.js.map +1 -0
- package/dist/esm/user/dtos/register.response.dto.d.ts +5 -0
- package/dist/esm/user/dtos/register.response.dto.d.ts.map +1 -0
- package/dist/esm/user/dtos/register.response.dto.js +12 -0
- package/dist/esm/user/dtos/register.response.dto.js.map +1 -0
- package/dist/esm/user/dtos/update-user.request.dto.d.ts +6 -0
- package/dist/esm/user/dtos/update-user.request.dto.d.ts.map +1 -0
- package/dist/esm/user/dtos/update-user.request.dto.js +24 -0
- package/dist/esm/user/dtos/update-user.request.dto.js.map +1 -0
- package/dist/esm/user/index.d.ts +5 -0
- package/dist/esm/user/index.d.ts.map +1 -0
- package/dist/esm/user/index.js +5 -0
- package/dist/esm/user/index.js.map +1 -0
- package/dist/esm/user/user.controller.d.ts +21 -0
- package/dist/esm/user/user.controller.d.ts.map +1 -0
- package/dist/esm/user/user.controller.js +188 -0
- package/dist/esm/user/user.controller.js.map +1 -0
- package/dist/esm/user/user.module.d.ts +3 -0
- package/dist/esm/user/user.module.d.ts.map +1 -0
- package/dist/esm/user/user.module.js +19 -0
- package/dist/esm/user/user.module.js.map +1 -0
- package/dist/esm/user/user.service.d.ts +12 -0
- package/dist/esm/user/user.service.d.ts.map +1 -0
- package/dist/esm/user/user.service.js +41 -0
- package/dist/esm/user/user.service.js.map +1 -0
- package/dist/esm/utils/datetime.d.ts +6 -0
- package/dist/esm/utils/datetime.d.ts.map +1 -0
- package/dist/esm/utils/datetime.js +27 -0
- package/dist/esm/utils/datetime.js.map +1 -0
- package/dist/esm/utils/error.d.ts +2 -0
- package/dist/esm/utils/error.d.ts.map +1 -0
- package/dist/esm/utils/error.js +13 -0
- package/dist/esm/utils/error.js.map +1 -0
- package/dist/esm/utils/index.d.ts +5 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/input.d.ts +4 -0
- package/dist/esm/utils/input.d.ts.map +1 -0
- package/dist/esm/utils/input.js +18 -0
- package/dist/esm/utils/input.js.map +1 -0
- package/dist/esm/utils/noop.d.ts +2 -0
- package/dist/esm/utils/noop.d.ts.map +1 -0
- package/dist/esm/utils/noop.js +2 -0
- package/dist/esm/utils/noop.js.map +1 -0
- package/dist/esm/utils/string.d.ts +2 -0
- package/dist/esm/utils/string.d.ts.map +1 -0
- package/dist/esm/utils/string.js +4 -0
- package/dist/esm/utils/string.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +8 -3
- package/src/auth/auth.module.ts +10 -0
- package/src/auth/auth.service.ts +38 -0
- package/src/auth/index.ts +2 -0
- package/src/enums/humanDay.enum.ts +9 -0
- package/src/enums/index.ts +2 -0
- package/src/enums/serverDay.enum.ts +9 -0
- package/src/guard/auth.guard.ts +46 -0
- package/src/guard/index.ts +1 -0
- package/src/health/dtos/health.response.dto.ts +25 -0
- package/src/health/dtos/index.ts +1 -0
- package/src/health/health.controller.ts +23 -0
- package/src/health/health.module.ts +13 -0
- package/src/health/health.service.ts +43 -0
- package/src/health/index.ts +4 -0
- package/src/index.ts +12 -11
- package/src/middleware/index.ts +1 -0
- package/src/middleware/logger.middleware.ts +24 -0
- package/src/prisma/index.ts +2 -0
- package/src/prisma/prisma.module.ts +10 -0
- package/src/prisma/prisma.service.ts +36 -0
- package/src/push/index.ts +2 -0
- package/src/push/push.module.ts +10 -0
- package/src/push/push.service.ts +63 -0
- package/src/search/index.ts +2 -0
- package/src/search/search.module.ts +10 -0
- package/src/search/search.service.ts +86 -0
- package/src/services/index.ts +1 -0
- package/src/services/instrument-sentry.ts +19 -0
- package/src/types/index.ts +1 -1
- package/src/user/dtos/get-user.response.dto.ts +32 -0
- package/src/user/dtos/index.ts +5 -0
- package/src/user/dtos/register.request.dto.ts +12 -0
- package/src/user/dtos/register.response.dto.ts +10 -0
- package/src/user/dtos/update-user.request.dto.ts +19 -0
- package/src/user/index.ts +4 -0
- package/src/user/user.controller.ts +191 -0
- package/src/user/user.module.ts +16 -0
- package/src/user/user.service.ts +44 -0
- package/src/utils/datetime.ts +5 -0
- package/src/utils/index.ts +4 -1
- package/.eslintignore +0 -3
- package/.eslintrc +0 -22
- package/.nvmrc +0 -1
- package/index.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@laboratory-one/api-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "API components for Laboratory One",
|
|
5
5
|
"author": "Laboratory One",
|
|
6
6
|
"private": false,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"main": "./dist/cjs/index.js",
|
|
9
9
|
"module": "./dist/esm/index.js",
|
|
10
10
|
"types": "./dist/esm/index.d.ts",
|
|
11
|
-
"type": "
|
|
11
|
+
"type": "commonjs",
|
|
12
12
|
"publishConfig": {
|
|
13
13
|
"access": "public",
|
|
14
14
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"build": "yarn build:esm && yarn build:cjs",
|
|
24
24
|
"build:esm": "tsc",
|
|
25
25
|
"build:cjs": "tsc --module commonjs --outDir dist/cjs",
|
|
26
|
+
"generate": "prisma generate",
|
|
26
27
|
"publish": "npm publish --access public",
|
|
27
28
|
"publish:local": "yalc publish",
|
|
28
29
|
"push:local": "yalc push",
|
|
@@ -85,5 +86,9 @@
|
|
|
85
86
|
"prettier": "3.3.2",
|
|
86
87
|
"tsconfig-paths": "4.2.0",
|
|
87
88
|
"tsc-alias": "1.8.8"
|
|
88
|
-
}
|
|
89
|
+
},
|
|
90
|
+
"files": [
|
|
91
|
+
"dist",
|
|
92
|
+
"src"
|
|
93
|
+
]
|
|
89
94
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { AuthService } from './auth.service';
|
|
3
|
+
import { ConfigModule } from '@nestjs/config';
|
|
4
|
+
|
|
5
|
+
@Module({
|
|
6
|
+
imports: [ConfigModule],
|
|
7
|
+
providers: [AuthService],
|
|
8
|
+
exports: [AuthService],
|
|
9
|
+
})
|
|
10
|
+
export class AuthModule {}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import * as stytch from 'stytch';
|
|
3
|
+
import { ConfigService } from '@nestjs/config';
|
|
4
|
+
|
|
5
|
+
import { RegisterRequestDto } from '../user/dtos/register.request.dto';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class AuthService {
|
|
9
|
+
private readonly logger: Logger = new Logger(AuthService.name);
|
|
10
|
+
private authClient: stytch.Client;
|
|
11
|
+
|
|
12
|
+
constructor(private configService: ConfigService) {
|
|
13
|
+
this.authClient = new stytch.Client({
|
|
14
|
+
project_id: this.configService.get<string>('STYTCH_PROJECT_ID'),
|
|
15
|
+
secret: this.configService.get<string>('STYTCH_SECRET'),
|
|
16
|
+
env:
|
|
17
|
+
this.configService.get<string>('STYTCH_ENV') === 'test'
|
|
18
|
+
? stytch.envs.test
|
|
19
|
+
: stytch.envs.live,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async signup(data: RegisterRequestDto): Promise<boolean> {
|
|
24
|
+
this.logger.debug('signup');
|
|
25
|
+
|
|
26
|
+
const res = await this.authClient.passwords.create(data);
|
|
27
|
+
|
|
28
|
+
return res['status_code'] === 200;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async login(data: RegisterRequestDto): Promise<boolean> {
|
|
32
|
+
this.logger.debug('login');
|
|
33
|
+
|
|
34
|
+
const res = await this.authClient.passwords.authenticate(data);
|
|
35
|
+
|
|
36
|
+
return res['status_code'] === 200;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CanActivate,
|
|
3
|
+
ExecutionContext,
|
|
4
|
+
Injectable,
|
|
5
|
+
UnauthorizedException,
|
|
6
|
+
} from '@nestjs/common';
|
|
7
|
+
import { JwtService } from '@nestjs/jwt';
|
|
8
|
+
import { Request } from 'express';
|
|
9
|
+
import { ConfigService } from '@nestjs/config';
|
|
10
|
+
|
|
11
|
+
@Injectable()
|
|
12
|
+
export class AuthGuard implements CanActivate {
|
|
13
|
+
constructor(
|
|
14
|
+
private jwtService: JwtService,
|
|
15
|
+
private configService: ConfigService,
|
|
16
|
+
) {}
|
|
17
|
+
|
|
18
|
+
async canActivate(context: ExecutionContext): Promise<boolean> {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
20
|
+
const request = context.switchToHttp().getRequest();
|
|
21
|
+
const token = this.extractTokenFromHeader(request);
|
|
22
|
+
|
|
23
|
+
if (!token) {
|
|
24
|
+
throw new UnauthorizedException();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
29
|
+
const payload = await this.jwtService.verifyAsync(token, {
|
|
30
|
+
secret: this.configService.get<string>('JWT_SECRET'),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
34
|
+
request['user'] = payload;
|
|
35
|
+
} catch {
|
|
36
|
+
throw new UnauthorizedException();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private extractTokenFromHeader(request: Request): string | undefined {
|
|
43
|
+
const [type, token] = request.headers.authorization?.split(' ') ?? [];
|
|
44
|
+
return type === 'Bearer' ? token : undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './auth.guard';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
HealthCheckResult,
|
|
3
|
+
HealthCheckStatus,
|
|
4
|
+
} from '@nestjs/terminus/dist/health-check/health-check-result.interface';
|
|
5
|
+
import { IsString } from 'class-validator';
|
|
6
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
7
|
+
import { HealthIndicatorResult } from '@nestjs/terminus/dist/health-indicator';
|
|
8
|
+
|
|
9
|
+
export class HealthResponseDto implements HealthCheckResult {
|
|
10
|
+
@ApiProperty()
|
|
11
|
+
status: HealthCheckStatus;
|
|
12
|
+
|
|
13
|
+
@ApiProperty()
|
|
14
|
+
info?: HealthIndicatorResult;
|
|
15
|
+
|
|
16
|
+
@ApiProperty()
|
|
17
|
+
error?: HealthIndicatorResult;
|
|
18
|
+
|
|
19
|
+
@ApiProperty()
|
|
20
|
+
details: HealthIndicatorResult;
|
|
21
|
+
|
|
22
|
+
@IsString()
|
|
23
|
+
@ApiProperty()
|
|
24
|
+
environment: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './health.response.dto';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Controller, Get } from '@nestjs/common';
|
|
2
|
+
import { HealthCheck } from '@nestjs/terminus';
|
|
3
|
+
import { ApiResponse, ApiTags } from '@nestjs/swagger';
|
|
4
|
+
|
|
5
|
+
import { HealthService } from './health.service';
|
|
6
|
+
import { HealthResponseDto } from './dtos/health.response.dto';
|
|
7
|
+
|
|
8
|
+
@ApiTags('Health')
|
|
9
|
+
@Controller('health')
|
|
10
|
+
export class HealthController {
|
|
11
|
+
constructor(private readonly healthService: HealthService) {}
|
|
12
|
+
|
|
13
|
+
@Get()
|
|
14
|
+
@ApiResponse({
|
|
15
|
+
status: 200,
|
|
16
|
+
description: 'health check successful',
|
|
17
|
+
type: HealthResponseDto,
|
|
18
|
+
})
|
|
19
|
+
@HealthCheck()
|
|
20
|
+
async healthCheck(): Promise<HealthResponseDto> {
|
|
21
|
+
return this.healthService.check();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { TerminusModule } from '@nestjs/terminus';
|
|
3
|
+
import { HttpModule } from '@nestjs/axios';
|
|
4
|
+
|
|
5
|
+
import { HealthController } from './health.controller';
|
|
6
|
+
import { HealthService } from './health.service';
|
|
7
|
+
|
|
8
|
+
@Module({
|
|
9
|
+
controllers: [HealthController],
|
|
10
|
+
imports: [TerminusModule, HttpModule],
|
|
11
|
+
providers: [HealthService],
|
|
12
|
+
})
|
|
13
|
+
export class HealthModule {}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import {
|
|
3
|
+
HealthCheckService,
|
|
4
|
+
HttpHealthIndicator,
|
|
5
|
+
MemoryHealthIndicator,
|
|
6
|
+
} from '@nestjs/terminus';
|
|
7
|
+
import { ConfigService } from '@nestjs/config';
|
|
8
|
+
import { HealthCheckResult } from '@nestjs/terminus/dist/health-check/health-check-result.interface';
|
|
9
|
+
|
|
10
|
+
import { HealthResponseDto } from './dtos/health.response.dto';
|
|
11
|
+
|
|
12
|
+
// this decorator indicates to nest that this class can be provided to a module
|
|
13
|
+
// we want to handle logic in services to keep our resolvers and controllers clean
|
|
14
|
+
@Injectable()
|
|
15
|
+
export class HealthService {
|
|
16
|
+
// grab the global logger instance
|
|
17
|
+
private readonly logger: Logger = new Logger(HealthService.name);
|
|
18
|
+
|
|
19
|
+
constructor(
|
|
20
|
+
private readonly configService: ConfigService,
|
|
21
|
+
private readonly health: HealthCheckService,
|
|
22
|
+
private readonly http: HttpHealthIndicator,
|
|
23
|
+
private readonly memory: MemoryHealthIndicator,
|
|
24
|
+
) {}
|
|
25
|
+
|
|
26
|
+
async check(): Promise<HealthResponseDto> {
|
|
27
|
+
// this logger has several logging levels
|
|
28
|
+
this.logger.log('check');
|
|
29
|
+
|
|
30
|
+
const statuses: HealthCheckResult = await this.health.check([
|
|
31
|
+
async () => this.http.pingCheck('website', 'https://google.com'),
|
|
32
|
+
async () => this.memory.checkHeap('memoryHeap', 200 * 1024 * 1024),
|
|
33
|
+
async () => this.memory.checkRSS('memoryRss', 3000 * 1024 * 1024),
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
const environment: string = this.configService.get<string>('NODE_ENV');
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
environment,
|
|
40
|
+
...statuses,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './types'
|
|
11
|
-
export * from './
|
|
1
|
+
export * from './auth'
|
|
2
|
+
export * from './enums'
|
|
3
|
+
export * from './guard'
|
|
4
|
+
export * from './health'
|
|
5
|
+
export * from './middleware'
|
|
6
|
+
export * from './prisma'
|
|
7
|
+
export * from './push'
|
|
8
|
+
export * from './search'
|
|
9
|
+
export * from './services'
|
|
10
|
+
export * from './types'
|
|
11
|
+
export * from './user'
|
|
12
|
+
export * from './utils'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './logger.middleware';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable, Logger, NestMiddleware } from '@nestjs/common';
|
|
2
|
+
import { NextFunction, Request, Response } from 'express';
|
|
3
|
+
|
|
4
|
+
@Injectable()
|
|
5
|
+
export class LoggerMiddleware implements NestMiddleware {
|
|
6
|
+
private readonly logger = new Logger(LoggerMiddleware.name);
|
|
7
|
+
|
|
8
|
+
use(req: Request, _res: Response, next: NextFunction): void {
|
|
9
|
+
if (
|
|
10
|
+
req?.method === 'POST' &&
|
|
11
|
+
req?.originalUrl === '/graphql' &&
|
|
12
|
+
req?.body?.operationName
|
|
13
|
+
) {
|
|
14
|
+
this.logger.log(
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
16
|
+
`${req.method} ${req.originalUrl} ${req.body.operationName}`,
|
|
17
|
+
);
|
|
18
|
+
} else {
|
|
19
|
+
this.logger.log(`${req.method} ${req.originalUrl}`);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
next();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
INestApplication,
|
|
3
|
+
Injectable,
|
|
4
|
+
Logger,
|
|
5
|
+
OnModuleInit,
|
|
6
|
+
} from '@nestjs/common';
|
|
7
|
+
import { Prisma, PrismaClient } from '@prisma/client';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class PrismaService extends PrismaClient implements OnModuleInit {
|
|
11
|
+
private readonly logger = new Logger(PrismaService.name);
|
|
12
|
+
|
|
13
|
+
constructor() {
|
|
14
|
+
super({ log: [{ emit: 'event', level: 'query' }] });
|
|
15
|
+
|
|
16
|
+
this.logger.log(`Prisma v${Prisma.prismaVersion.client}`);
|
|
17
|
+
|
|
18
|
+
this.$on('query' as never, (event: Prisma.QueryEvent) => {
|
|
19
|
+
this.logger.debug(
|
|
20
|
+
`[${event.duration}ms] ${event.query} ${event.params} `,
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async onModuleInit() {
|
|
26
|
+
await this.$connect();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
30
|
+
async enableShutdownHooks(app: INestApplication) {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
32
|
+
this.$on('beforeExit' as never, async () => {
|
|
33
|
+
await app.close();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import { Expo, ExpoPushMessage } from 'expo-server-sdk';
|
|
3
|
+
|
|
4
|
+
@Injectable()
|
|
5
|
+
export class PushService {
|
|
6
|
+
private readonly logger: Logger = new Logger(PushService.name);
|
|
7
|
+
private readonly expo: Expo | undefined;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.expo = new Expo({
|
|
11
|
+
useFcmV1: true,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
createMessages({
|
|
16
|
+
body,
|
|
17
|
+
pushTokens,
|
|
18
|
+
}: {
|
|
19
|
+
body: string;
|
|
20
|
+
pushTokens: string[];
|
|
21
|
+
}): ExpoPushMessage[] {
|
|
22
|
+
this.logger.debug('createMessage');
|
|
23
|
+
|
|
24
|
+
// Create the messages that you want to send to clients
|
|
25
|
+
const messages: ExpoPushMessage[] = [];
|
|
26
|
+
|
|
27
|
+
for (const pushToken of pushTokens) {
|
|
28
|
+
if (!Expo.isExpoPushToken(pushToken)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
messages.push({
|
|
33
|
+
to: pushToken,
|
|
34
|
+
sound: 'default',
|
|
35
|
+
body,
|
|
36
|
+
data: { withSome: 'data' },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return messages;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async sendMessages(messages: ExpoPushMessage[]): Promise<undefined> {
|
|
44
|
+
try {
|
|
45
|
+
this.logger.debug('sendMessages');
|
|
46
|
+
|
|
47
|
+
const chunks: ExpoPushMessage[][] =
|
|
48
|
+
this.expo.chunkPushNotifications(messages);
|
|
49
|
+
|
|
50
|
+
for await (const chunk of chunks) {
|
|
51
|
+
try {
|
|
52
|
+
await this.expo.sendPushNotificationsAsync(chunk);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error(error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return;
|
|
59
|
+
} catch (error) {
|
|
60
|
+
this.logger.error(error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import algoliasearch from 'algoliasearch';
|
|
3
|
+
import { SearchClient, SearchIndex } from 'algoliasearch/dist/algoliasearch';
|
|
4
|
+
import { ConfigService } from '@nestjs/config';
|
|
5
|
+
|
|
6
|
+
@Injectable()
|
|
7
|
+
export class SearchService {
|
|
8
|
+
private readonly logger: Logger = new Logger(SearchService.name);
|
|
9
|
+
private readonly searchClient: SearchClient | undefined;
|
|
10
|
+
private readonly searchIndex: SearchIndex | undefined;
|
|
11
|
+
|
|
12
|
+
constructor(private configService: ConfigService) {
|
|
13
|
+
this.searchClient = algoliasearch(
|
|
14
|
+
this.configService.get('ALGOLIA_APP_ID'),
|
|
15
|
+
this.configService.get('ALGOLIA_API_KEY'),
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
if (this.searchClient === undefined) {
|
|
19
|
+
throw new Error('Search client is undefined');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
this.searchIndex = this.searchClient.initIndex(
|
|
23
|
+
this.configService.get('ALGOLIA_INDEX_NAME'),
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async shouldIndex(): Promise<boolean> {
|
|
28
|
+
this.logger.debug('shouldIndex');
|
|
29
|
+
|
|
30
|
+
if (this.searchIndex === undefined) {
|
|
31
|
+
throw new Error('Search index is undefined');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const { nbHits } = await this.searchIndex.search('', {
|
|
35
|
+
hitsPerPage: 1,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return nbHits === 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async create(inventoryItem: any): Promise<undefined> {
|
|
42
|
+
this.logger.debug('create');
|
|
43
|
+
|
|
44
|
+
if (this.searchIndex === undefined) {
|
|
45
|
+
throw new Error('Search index is undefined');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
49
|
+
const mappedExercise = {
|
|
50
|
+
...inventoryItem,
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
52
|
+
objectID: inventoryItem.id,
|
|
53
|
+
quantity: 0,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
await this.searchIndex.saveObject(mappedExercise).wait();
|
|
57
|
+
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async createMany(inventoryItems: any[]): Promise<undefined> {
|
|
62
|
+
try {
|
|
63
|
+
this.logger.debug('createMany');
|
|
64
|
+
|
|
65
|
+
if (this.searchIndex === undefined) {
|
|
66
|
+
throw new Error('Search index is undefined');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const mappedExercises = inventoryItems.map((inventoryItem: any) => {
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
71
|
+
return {
|
|
72
|
+
...inventoryItem,
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
74
|
+
objectID: inventoryItem.id,
|
|
75
|
+
quantity: 0,
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
await this.searchIndex.saveObjects(mappedExercises).wait();
|
|
80
|
+
|
|
81
|
+
return;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
this.logger.error(error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './instrument-sentry'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as Sentry from '@sentry/node';
|
|
2
|
+
import { nodeProfilingIntegration } from '@sentry/profiling-node';
|
|
3
|
+
|
|
4
|
+
export const initSentry = () => {
|
|
5
|
+
// Ensure to call this before requiring any other modules!
|
|
6
|
+
Sentry.init({
|
|
7
|
+
dsn: process.env.SENTRY_DSN,
|
|
8
|
+
integrations: [
|
|
9
|
+
// Add our Profiling integration
|
|
10
|
+
nodeProfilingIntegration(),
|
|
11
|
+
],
|
|
12
|
+
// Add Tracing by setting tracesSampleRate
|
|
13
|
+
// We recommend adjusting this value in production
|
|
14
|
+
tracesSampleRate: 1.0,
|
|
15
|
+
// Set sampling rate for profiling
|
|
16
|
+
// This is relative to tracesSampleRate
|
|
17
|
+
profilesSampleRate: 1.0,
|
|
18
|
+
})
|
|
19
|
+
}
|
package/src/types/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '.';
|
|
1
|
+
export * from './success.response.dto';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IsEnum, IsOptional, IsString } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
import { OnboardingStatus } from '@prisma/client';
|
|
4
|
+
|
|
5
|
+
export class GetUserResponseDto {
|
|
6
|
+
@IsString()
|
|
7
|
+
@ApiProperty()
|
|
8
|
+
id: string;
|
|
9
|
+
|
|
10
|
+
@IsString()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
email: string;
|
|
13
|
+
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsString()
|
|
16
|
+
@ApiProperty()
|
|
17
|
+
phoneNumber?: string | undefined;
|
|
18
|
+
|
|
19
|
+
@IsOptional()
|
|
20
|
+
@IsString()
|
|
21
|
+
@ApiProperty()
|
|
22
|
+
fullName?: string | undefined;
|
|
23
|
+
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsString()
|
|
26
|
+
@ApiProperty()
|
|
27
|
+
pushToken?: string | undefined;
|
|
28
|
+
|
|
29
|
+
@IsEnum(OnboardingStatus)
|
|
30
|
+
@ApiProperty()
|
|
31
|
+
onboardingStatus: OnboardingStatus;
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IsString } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
import { GetUserResponseDto } from './get-user.response.dto';
|
|
5
|
+
|
|
6
|
+
export class RegisterResponseDto extends GetUserResponseDto {
|
|
7
|
+
@IsString()
|
|
8
|
+
@ApiProperty()
|
|
9
|
+
token: string;
|
|
10
|
+
}
|