@intlayer/backend 3.0.0
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/LICENSE +202 -0
- package/dist/cjs/controllers/dictionary.controller.cjs +356 -0
- package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -0
- package/dist/cjs/controllers/oAuth2.controller.cjs +46 -0
- package/dist/cjs/controllers/oAuth2.controller.cjs.map +1 -0
- package/dist/cjs/controllers/organization.controller.cjs +354 -0
- package/dist/cjs/controllers/organization.controller.cjs.map +1 -0
- package/dist/cjs/controllers/project.controller.cjs +298 -0
- package/dist/cjs/controllers/project.controller.cjs.map +1 -0
- package/dist/cjs/controllers/projectAccessKey.controller.cjs +134 -0
- package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -0
- package/dist/cjs/controllers/sessionAuth.controller.cjs +616 -0
- package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -0
- package/dist/cjs/controllers/user.controller.cjs +197 -0
- package/dist/cjs/controllers/user.controller.cjs.map +1 -0
- package/dist/cjs/emails/InviteUserEmail.cjs +297 -0
- package/dist/cjs/emails/InviteUserEmail.cjs.map +1 -0
- package/dist/cjs/emails/PasswordChangeConfirmation.cjs +148 -0
- package/dist/cjs/emails/PasswordChangeConfirmation.cjs.map +1 -0
- package/dist/cjs/emails/ResetUserPassword.cjs +209 -0
- package/dist/cjs/emails/ResetUserPassword.cjs.map +1 -0
- package/dist/cjs/emails/ValidateUserEmail.cjs +230 -0
- package/dist/cjs/emails/ValidateUserEmail.cjs.map +1 -0
- package/dist/cjs/emails/Welcome.cjs +185 -0
- package/dist/cjs/emails/Welcome.cjs.map +1 -0
- package/dist/cjs/emails/index.cjs +31 -0
- package/dist/cjs/emails/index.cjs.map +1 -0
- package/dist/cjs/export.cjs +46 -0
- package/dist/cjs/export.cjs.map +1 -0
- package/dist/cjs/index.cjs +122 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/logger/index.cjs +53 -0
- package/dist/cjs/logger/index.cjs.map +1 -0
- package/dist/cjs/middlewares/admin.middleware.cjs +44 -0
- package/dist/cjs/middlewares/admin.middleware.cjs.map +1 -0
- package/dist/cjs/middlewares/oAuth2.middleware.cjs +89 -0
- package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -0
- package/dist/cjs/middlewares/request.middleware.cjs +41 -0
- package/dist/cjs/middlewares/request.middleware.cjs.map +1 -0
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs +130 -0
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -0
- package/dist/cjs/models/dictionary.model.cjs +34 -0
- package/dist/cjs/models/dictionary.model.cjs.map +1 -0
- package/dist/cjs/models/oAuth2.model.cjs +31 -0
- package/dist/cjs/models/oAuth2.model.cjs.map +1 -0
- package/dist/cjs/models/organization.model.cjs +34 -0
- package/dist/cjs/models/organization.model.cjs.map +1 -0
- package/dist/cjs/models/project.model.cjs +31 -0
- package/dist/cjs/models/project.model.cjs.map +1 -0
- package/dist/cjs/models/user.model.cjs +31 -0
- package/dist/cjs/models/user.model.cjs.map +1 -0
- package/dist/cjs/routes/dictionary.routes.cjs +156 -0
- package/dist/cjs/routes/dictionary.routes.cjs.map +1 -0
- package/dist/cjs/routes/organization.routes.cjs +132 -0
- package/dist/cjs/routes/organization.routes.cjs.map +1 -0
- package/dist/cjs/routes/project.routes.cjs +175 -0
- package/dist/cjs/routes/project.routes.cjs.map +1 -0
- package/dist/cjs/routes/sessionAuth.routes.cjs +147 -0
- package/dist/cjs/routes/sessionAuth.routes.cjs.map +1 -0
- package/dist/cjs/routes/user.routes.cjs +96 -0
- package/dist/cjs/routes/user.routes.cjs.map +1 -0
- package/dist/cjs/schemas/dictionary.schema.cjs +69 -0
- package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -0
- package/dist/cjs/schemas/oAuth2.schema.cjs +55 -0
- package/dist/cjs/schemas/oAuth2.schema.cjs.map +1 -0
- package/dist/cjs/schemas/organization.schema.cjs +60 -0
- package/dist/cjs/schemas/organization.schema.cjs.map +1 -0
- package/dist/cjs/schemas/project.schema.cjs +79 -0
- package/dist/cjs/schemas/project.schema.cjs.map +1 -0
- package/dist/cjs/schemas/user.schema.cjs +112 -0
- package/dist/cjs/schemas/user.schema.cjs.map +1 -0
- package/dist/cjs/services/dictionary.service.cjs +166 -0
- package/dist/cjs/services/dictionary.service.cjs.map +1 -0
- package/dist/cjs/services/email.service.cjs +118 -0
- package/dist/cjs/services/email.service.cjs.map +1 -0
- package/dist/cjs/services/oAuth2.service.cjs +182 -0
- package/dist/cjs/services/oAuth2.service.cjs.map +1 -0
- package/dist/cjs/services/organization.service.cjs +95 -0
- package/dist/cjs/services/organization.service.cjs.map +1 -0
- package/dist/cjs/services/project.service.cjs +87 -0
- package/dist/cjs/services/project.service.cjs.map +1 -0
- package/dist/cjs/services/projectAccessKey.service.cjs +139 -0
- package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -0
- package/dist/cjs/services/sessionAuth.service.cjs +386 -0
- package/dist/cjs/services/sessionAuth.service.cjs.map +1 -0
- package/dist/cjs/services/user.service.cjs +155 -0
- package/dist/cjs/services/user.service.cjs.map +1 -0
- package/dist/cjs/types/Routes.cjs +17 -0
- package/dist/cjs/types/Routes.cjs.map +1 -0
- package/dist/cjs/types/dictionary.types.cjs +17 -0
- package/dist/cjs/types/dictionary.types.cjs.map +1 -0
- package/dist/cjs/types/organization.types.cjs +17 -0
- package/dist/cjs/types/organization.types.cjs.map +1 -0
- package/dist/cjs/types/project.types.cjs +17 -0
- package/dist/cjs/types/project.types.cjs.map +1 -0
- package/dist/cjs/types/session.types.cjs +17 -0
- package/dist/cjs/types/session.types.cjs.map +1 -0
- package/dist/cjs/types/user.types.cjs +17 -0
- package/dist/cjs/types/user.types.cjs.map +1 -0
- package/dist/cjs/utils/CSRF.cjs +47 -0
- package/dist/cjs/utils/CSRF.cjs.map +1 -0
- package/dist/cjs/utils/accessControl.cjs +121 -0
- package/dist/cjs/utils/accessControl.cjs.map +1 -0
- package/dist/cjs/utils/cookies.cjs +59 -0
- package/dist/cjs/utils/cookies.cjs.map +1 -0
- package/dist/cjs/utils/errors/ErrorHandler.cjs +103 -0
- package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -0
- package/dist/cjs/utils/errors/ErrorsClass.cjs +65 -0
- package/dist/cjs/utils/errors/ErrorsClass.cjs.map +1 -0
- package/dist/cjs/utils/errors/errorCodes.cjs +837 -0
- package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -0
- package/dist/cjs/utils/errors/index.cjs +37 -0
- package/dist/cjs/utils/errors/index.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs +55 -0
- package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs +65 -0
- package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs +55 -0
- package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs +58 -0
- package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +52 -0
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +1 -0
- package/dist/cjs/utils/httpStatusCodes.cjs +93 -0
- package/dist/cjs/utils/httpStatusCodes.cjs.map +1 -0
- package/dist/cjs/utils/mapper/dictionary.cjs +40 -0
- package/dist/cjs/utils/mapper/dictionary.cjs.map +1 -0
- package/dist/cjs/utils/mapper/organization.cjs +39 -0
- package/dist/cjs/utils/mapper/organization.cjs.map +1 -0
- package/dist/cjs/utils/mapper/project.cjs +39 -0
- package/dist/cjs/utils/mapper/project.cjs.map +1 -0
- package/dist/cjs/utils/mapper/user.cjs +39 -0
- package/dist/cjs/utils/mapper/user.cjs.map +1 -0
- package/dist/cjs/utils/mongoDB/connectDB.cjs +53 -0
- package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -0
- package/dist/cjs/utils/oAuth2.cjs +50 -0
- package/dist/cjs/utils/oAuth2.cjs.map +1 -0
- package/dist/cjs/utils/responseData.cjs +66 -0
- package/dist/cjs/utils/responseData.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateArray.cjs +57 -0
- package/dist/cjs/utils/validation/validateArray.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateDictionary.cjs +66 -0
- package/dist/cjs/utils/validation/validateDictionary.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateEmail.cjs +37 -0
- package/dist/cjs/utils/validation/validateEmail.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateOrganization.cjs +79 -0
- package/dist/cjs/utils/validation/validateOrganization.cjs.map +1 -0
- package/dist/cjs/utils/validation/validatePhone.cjs +37 -0
- package/dist/cjs/utils/validation/validatePhone.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateProject.cjs +97 -0
- package/dist/cjs/utils/validation/validateProject.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateString.cjs +39 -0
- package/dist/cjs/utils/validation/validateString.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateUser.cjs +73 -0
- package/dist/cjs/utils/validation/validateUser.cjs.map +1 -0
- package/dist/esm/controllers/dictionary.controller.mjs +321 -0
- package/dist/esm/controllers/dictionary.controller.mjs.map +1 -0
- package/dist/esm/controllers/oAuth2.controller.mjs +25 -0
- package/dist/esm/controllers/oAuth2.controller.mjs.map +1 -0
- package/dist/esm/controllers/organization.controller.mjs +317 -0
- package/dist/esm/controllers/organization.controller.mjs.map +1 -0
- package/dist/esm/controllers/project.controller.mjs +263 -0
- package/dist/esm/controllers/project.controller.mjs.map +1 -0
- package/dist/esm/controllers/projectAccessKey.controller.mjs +98 -0
- package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -0
- package/dist/esm/controllers/sessionAuth.controller.mjs +570 -0
- package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -0
- package/dist/esm/controllers/user.controller.mjs +160 -0
- package/dist/esm/controllers/user.controller.mjs.map +1 -0
- package/dist/esm/emails/InviteUserEmail.mjs +285 -0
- package/dist/esm/emails/InviteUserEmail.mjs.map +1 -0
- package/dist/esm/emails/PasswordChangeConfirmation.mjs +134 -0
- package/dist/esm/emails/PasswordChangeConfirmation.mjs.map +1 -0
- package/dist/esm/emails/ResetUserPassword.mjs +197 -0
- package/dist/esm/emails/ResetUserPassword.mjs.map +1 -0
- package/dist/esm/emails/ValidateUserEmail.mjs +218 -0
- package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -0
- package/dist/esm/emails/Welcome.mjs +173 -0
- package/dist/esm/emails/Welcome.mjs.map +1 -0
- package/dist/esm/emails/index.mjs +6 -0
- package/dist/esm/emails/index.mjs.map +1 -0
- package/dist/esm/export.mjs +15 -0
- package/dist/esm/export.mjs.map +1 -0
- package/dist/esm/index.mjs +102 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/logger/index.mjs +29 -0
- package/dist/esm/logger/index.mjs.map +1 -0
- package/dist/esm/middlewares/admin.middleware.mjs +20 -0
- package/dist/esm/middlewares/admin.middleware.mjs.map +1 -0
- package/dist/esm/middlewares/oAuth2.middleware.mjs +57 -0
- package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -0
- package/dist/esm/middlewares/request.middleware.mjs +17 -0
- package/dist/esm/middlewares/request.middleware.mjs.map +1 -0
- package/dist/esm/middlewares/sessionAuth.middleware.mjs +96 -0
- package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -0
- package/dist/esm/models/dictionary.model.mjs +10 -0
- package/dist/esm/models/dictionary.model.mjs.map +1 -0
- package/dist/esm/models/oAuth2.model.mjs +7 -0
- package/dist/esm/models/oAuth2.model.mjs.map +1 -0
- package/dist/esm/models/organization.model.mjs +10 -0
- package/dist/esm/models/organization.model.mjs.map +1 -0
- package/dist/esm/models/project.model.mjs +7 -0
- package/dist/esm/models/project.model.mjs.map +1 -0
- package/dist/esm/models/user.model.mjs +7 -0
- package/dist/esm/models/user.model.mjs.map +1 -0
- package/dist/esm/routes/dictionary.routes.mjs +139 -0
- package/dist/esm/routes/dictionary.routes.mjs.map +1 -0
- package/dist/esm/routes/organization.routes.mjs +116 -0
- package/dist/esm/routes/organization.routes.mjs.map +1 -0
- package/dist/esm/routes/project.routes.mjs +162 -0
- package/dist/esm/routes/project.routes.mjs.map +1 -0
- package/dist/esm/routes/sessionAuth.routes.mjs +134 -0
- package/dist/esm/routes/sessionAuth.routes.mjs.map +1 -0
- package/dist/esm/routes/user.routes.mjs +78 -0
- package/dist/esm/routes/user.routes.mjs.map +1 -0
- package/dist/esm/schemas/dictionary.schema.mjs +45 -0
- package/dist/esm/schemas/dictionary.schema.mjs.map +1 -0
- package/dist/esm/schemas/oAuth2.schema.mjs +31 -0
- package/dist/esm/schemas/oAuth2.schema.mjs.map +1 -0
- package/dist/esm/schemas/organization.schema.mjs +40 -0
- package/dist/esm/schemas/organization.schema.mjs.map +1 -0
- package/dist/esm/schemas/project.schema.mjs +59 -0
- package/dist/esm/schemas/project.schema.mjs.map +1 -0
- package/dist/esm/schemas/user.schema.mjs +81 -0
- package/dist/esm/schemas/user.schema.mjs.map +1 -0
- package/dist/esm/services/dictionary.service.mjs +134 -0
- package/dist/esm/services/dictionary.service.mjs.map +1 -0
- package/dist/esm/services/email.service.mjs +114 -0
- package/dist/esm/services/email.service.mjs.map +1 -0
- package/dist/esm/services/oAuth2.service.mjs +150 -0
- package/dist/esm/services/oAuth2.service.mjs.map +1 -0
- package/dist/esm/services/organization.service.mjs +68 -0
- package/dist/esm/services/organization.service.mjs.map +1 -0
- package/dist/esm/services/project.service.mjs +60 -0
- package/dist/esm/services/project.service.mjs.map +1 -0
- package/dist/esm/services/projectAccessKey.service.mjs +113 -0
- package/dist/esm/services/projectAccessKey.service.mjs.map +1 -0
- package/dist/esm/services/sessionAuth.service.mjs +337 -0
- package/dist/esm/services/sessionAuth.service.mjs.map +1 -0
- package/dist/esm/services/user.service.mjs +122 -0
- package/dist/esm/services/user.service.mjs.map +1 -0
- package/dist/esm/types/Routes.mjs +1 -0
- package/dist/esm/types/Routes.mjs.map +1 -0
- package/dist/esm/types/dictionary.types.mjs +1 -0
- package/dist/esm/types/dictionary.types.mjs.map +1 -0
- package/dist/esm/types/organization.types.mjs +1 -0
- package/dist/esm/types/organization.types.mjs.map +1 -0
- package/dist/esm/types/project.types.mjs +1 -0
- package/dist/esm/types/project.types.mjs.map +1 -0
- package/dist/esm/types/session.types.mjs +1 -0
- package/dist/esm/types/session.types.mjs.map +1 -0
- package/dist/esm/types/user.types.mjs +1 -0
- package/dist/esm/types/user.types.mjs.map +1 -0
- package/dist/esm/utils/CSRF.mjs +21 -0
- package/dist/esm/utils/CSRF.mjs.map +1 -0
- package/dist/esm/utils/accessControl.mjs +95 -0
- package/dist/esm/utils/accessControl.mjs.map +1 -0
- package/dist/esm/utils/cookies.mjs +32 -0
- package/dist/esm/utils/cookies.mjs.map +1 -0
- package/dist/esm/utils/errors/ErrorHandler.mjs +79 -0
- package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -0
- package/dist/esm/utils/errors/ErrorsClass.mjs +40 -0
- package/dist/esm/utils/errors/ErrorsClass.mjs.map +1 -0
- package/dist/esm/utils/errors/errorCodes.mjs +813 -0
- package/dist/esm/utils/errors/errorCodes.mjs.map +1 -0
- package/dist/esm/utils/errors/index.mjs +10 -0
- package/dist/esm/utils/errors/index.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs +33 -0
- package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getFiltersAndPaginationFromBody.mjs +41 -0
- package/dist/esm/utils/filtersAndPagination/getFiltersAndPaginationFromBody.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs +33 -0
- package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs +36 -0
- package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs +30 -0
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs.map +1 -0
- package/dist/esm/utils/httpStatusCodes.mjs +69 -0
- package/dist/esm/utils/httpStatusCodes.mjs.map +1 -0
- package/dist/esm/utils/mapper/dictionary.mjs +16 -0
- package/dist/esm/utils/mapper/dictionary.mjs.map +1 -0
- package/dist/esm/utils/mapper/organization.mjs +15 -0
- package/dist/esm/utils/mapper/organization.mjs.map +1 -0
- package/dist/esm/utils/mapper/project.mjs +15 -0
- package/dist/esm/utils/mapper/project.mjs.map +1 -0
- package/dist/esm/utils/mapper/user.mjs +14 -0
- package/dist/esm/utils/mapper/user.mjs.map +1 -0
- package/dist/esm/utils/mongoDB/connectDB.mjs +19 -0
- package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -0
- package/dist/esm/utils/oAuth2.mjs +29 -0
- package/dist/esm/utils/oAuth2.mjs.map +1 -0
- package/dist/esm/utils/responseData.mjs +41 -0
- package/dist/esm/utils/responseData.mjs.map +1 -0
- package/dist/esm/utils/validation/validateArray.mjs +33 -0
- package/dist/esm/utils/validation/validateArray.mjs.map +1 -0
- package/dist/esm/utils/validation/validateDictionary.mjs +42 -0
- package/dist/esm/utils/validation/validateDictionary.mjs.map +1 -0
- package/dist/esm/utils/validation/validateEmail.mjs +13 -0
- package/dist/esm/utils/validation/validateEmail.mjs.map +1 -0
- package/dist/esm/utils/validation/validateOrganization.mjs +52 -0
- package/dist/esm/utils/validation/validateOrganization.mjs.map +1 -0
- package/dist/esm/utils/validation/validatePhone.mjs +13 -0
- package/dist/esm/utils/validation/validatePhone.mjs.map +1 -0
- package/dist/esm/utils/validation/validateProject.mjs +70 -0
- package/dist/esm/utils/validation/validateProject.mjs.map +1 -0
- package/dist/esm/utils/validation/validateString.mjs +15 -0
- package/dist/esm/utils/validation/validateString.mjs.map +1 -0
- package/dist/esm/utils/validation/validateUser.mjs +47 -0
- package/dist/esm/utils/validation/validateUser.mjs.map +1 -0
- package/dist/types/controllers/dictionary.controller.d.ts +70 -0
- package/dist/types/controllers/dictionary.controller.d.ts.map +1 -0
- package/dist/types/controllers/oAuth2.controller.d.ts +14 -0
- package/dist/types/controllers/oAuth2.controller.d.ts.map +1 -0
- package/dist/types/controllers/organization.controller.d.ts +72 -0
- package/dist/types/controllers/organization.controller.d.ts.map +1 -0
- package/dist/types/controllers/project.controller.d.ts +59 -0
- package/dist/types/controllers/project.controller.d.ts.map +1 -0
- package/dist/types/controllers/projectAccessKey.controller.d.ts +27 -0
- package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -0
- package/dist/types/controllers/sessionAuth.controller.d.ts +120 -0
- package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -0
- package/dist/types/controllers/user.controller.d.ts +56 -0
- package/dist/types/controllers/user.controller.d.ts.map +1 -0
- package/dist/types/emails/InviteUserEmail.d.ts +22 -0
- package/dist/types/emails/InviteUserEmail.d.ts.map +1 -0
- package/dist/types/emails/PasswordChangeConfirmation.d.ts +16 -0
- package/dist/types/emails/PasswordChangeConfirmation.d.ts.map +1 -0
- package/dist/types/emails/ResetUserPassword.d.ts +17 -0
- package/dist/types/emails/ResetUserPassword.d.ts.map +1 -0
- package/dist/types/emails/ValidateUserEmail.d.ts +17 -0
- package/dist/types/emails/ValidateUserEmail.d.ts.map +1 -0
- package/dist/types/emails/Welcome.d.ts +17 -0
- package/dist/types/emails/Welcome.d.ts.map +1 -0
- package/dist/types/emails/index.d.ts +6 -0
- package/dist/types/emails/index.d.ts.map +1 -0
- package/dist/types/export.d.ts +19 -0
- package/dist/types/export.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger/index.d.ts +2 -0
- package/dist/types/logger/index.d.ts.map +1 -0
- package/dist/types/middlewares/admin.middleware.d.ts +10 -0
- package/dist/types/middlewares/admin.middleware.d.ts.map +1 -0
- package/dist/types/middlewares/oAuth2.middleware.d.ts +9 -0
- package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -0
- package/dist/types/middlewares/request.middleware.d.ts +4 -0
- package/dist/types/middlewares/request.middleware.d.ts.map +1 -0
- package/dist/types/middlewares/sessionAuth.middleware.d.ts +20 -0
- package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -0
- package/dist/types/models/dictionary.model.d.ts +11 -0
- package/dist/types/models/dictionary.model.d.ts.map +1 -0
- package/dist/types/models/oAuth2.model.d.ts +10 -0
- package/dist/types/models/oAuth2.model.d.ts.map +1 -0
- package/dist/types/models/organization.model.d.ts +12 -0
- package/dist/types/models/organization.model.d.ts.map +1 -0
- package/dist/types/models/project.model.d.ts +12 -0
- package/dist/types/models/project.model.d.ts.map +1 -0
- package/dist/types/models/user.model.d.ts +3 -0
- package/dist/types/models/user.model.d.ts.map +1 -0
- package/dist/types/routes/dictionary.routes.d.ts +42 -0
- package/dist/types/routes/dictionary.routes.d.ts.map +1 -0
- package/dist/types/routes/organization.routes.d.ts +47 -0
- package/dist/types/routes/organization.routes.d.ts.map +1 -0
- package/dist/types/routes/project.routes.d.ts +57 -0
- package/dist/types/routes/project.routes.d.ts.map +1 -0
- package/dist/types/routes/sessionAuth.routes.d.ts +66 -0
- package/dist/types/routes/sessionAuth.routes.d.ts.map +1 -0
- package/dist/types/routes/user.routes.d.ts +42 -0
- package/dist/types/routes/user.routes.d.ts.map +1 -0
- package/dist/types/schemas/dictionary.schema.d.ts +16 -0
- package/dist/types/schemas/dictionary.schema.d.ts.map +1 -0
- package/dist/types/schemas/oAuth2.schema.d.ts +19 -0
- package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -0
- package/dist/types/schemas/organization.schema.d.ts +17 -0
- package/dist/types/schemas/organization.schema.d.ts.map +1 -0
- package/dist/types/schemas/project.schema.d.ts +17 -0
- package/dist/types/schemas/project.schema.d.ts.map +1 -0
- package/dist/types/schemas/user.schema.d.ts +12 -0
- package/dist/types/schemas/user.schema.d.ts.map +1 -0
- package/dist/types/services/dictionary.service.d.ts +70 -0
- package/dist/types/services/dictionary.service.d.ts.map +1 -0
- package/dist/types/services/email.service.d.ts +18 -0
- package/dist/types/services/email.service.d.ts.map +1 -0
- package/dist/types/services/oAuth2.service.d.ts +85 -0
- package/dist/types/services/oAuth2.service.d.ts.map +1 -0
- package/dist/types/services/organization.service.d.ts +43 -0
- package/dist/types/services/organization.service.d.ts.map +1 -0
- package/dist/types/services/project.service.d.ts +43 -0
- package/dist/types/services/project.service.d.ts.map +1 -0
- package/dist/types/services/projectAccessKey.service.d.ts +16 -0
- package/dist/types/services/projectAccessKey.service.d.ts.map +1 -0
- package/dist/types/services/sessionAuth.service.d.ts +148 -0
- package/dist/types/services/sessionAuth.service.d.ts.map +1 -0
- package/dist/types/services/user.service.d.ts +89 -0
- package/dist/types/services/user.service.d.ts.map +1 -0
- package/dist/types/types/Routes.d.ts +7 -0
- package/dist/types/types/Routes.d.ts.map +1 -0
- package/dist/types/types/dictionary.types.d.ts +35 -0
- package/dist/types/types/dictionary.types.d.ts.map +1 -0
- package/dist/types/types/organization.types.d.ts +21 -0
- package/dist/types/types/organization.types.d.ts.map +1 -0
- package/dist/types/types/project.types.d.ts +40 -0
- package/dist/types/types/project.types.d.ts.map +1 -0
- package/dist/types/types/session.types.d.ts +22 -0
- package/dist/types/types/session.types.d.ts.map +1 -0
- package/dist/types/types/user.types.d.ts +28 -0
- package/dist/types/types/user.types.d.ts.map +1 -0
- package/dist/types/utils/CSRF.d.ts +3 -0
- package/dist/types/utils/CSRF.d.ts.map +1 -0
- package/dist/types/utils/accessControl.d.ts +58 -0
- package/dist/types/utils/accessControl.d.ts.map +1 -0
- package/dist/types/utils/cookies.d.ts +12 -0
- package/dist/types/utils/cookies.d.ts.map +1 -0
- package/dist/types/utils/errors/ErrorHandler.d.ts +32 -0
- package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -0
- package/dist/types/utils/errors/ErrorsClass.d.ts +26 -0
- package/dist/types/utils/errors/ErrorsClass.d.ts.map +1 -0
- package/dist/types/utils/errors/errorCodes.d.ts +811 -0
- package/dist/types/utils/errors/errorCodes.d.ts.map +1 -0
- package/dist/types/utils/errors/index.d.ts +4 -0
- package/dist/types/utils/errors/index.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +23 -0
- package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getFiltersAndPaginationFromBody.d.ts +22 -0
- package/dist/types/utils/filtersAndPagination/getFiltersAndPaginationFromBody.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +31 -0
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +24 -0
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts +22 -0
- package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts.map +1 -0
- package/dist/types/utils/httpStatusCodes.d.ts +395 -0
- package/dist/types/utils/httpStatusCodes.d.ts.map +1 -0
- package/dist/types/utils/mapper/dictionary.d.ts +12 -0
- package/dist/types/utils/mapper/dictionary.d.ts.map +1 -0
- package/dist/types/utils/mapper/organization.d.ts +9 -0
- package/dist/types/utils/mapper/organization.d.ts.map +1 -0
- package/dist/types/utils/mapper/project.d.ts +9 -0
- package/dist/types/utils/mapper/project.d.ts.map +1 -0
- package/dist/types/utils/mapper/user.d.ts +14 -0
- package/dist/types/utils/mapper/user.d.ts.map +1 -0
- package/dist/types/utils/mongoDB/connectDB.d.ts +3 -0
- package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -0
- package/dist/types/utils/oAuth2.d.ts +6 -0
- package/dist/types/utils/oAuth2.d.ts.map +1 -0
- package/dist/types/utils/responseData.d.ts +53 -0
- package/dist/types/utils/responseData.d.ts.map +1 -0
- package/dist/types/utils/validation/validateArray.d.ts +13 -0
- package/dist/types/utils/validation/validateArray.d.ts.map +1 -0
- package/dist/types/utils/validation/validateDictionary.d.ts +12 -0
- package/dist/types/utils/validation/validateDictionary.d.ts.map +1 -0
- package/dist/types/utils/validation/validateEmail.d.ts +10 -0
- package/dist/types/utils/validation/validateEmail.d.ts.map +1 -0
- package/dist/types/utils/validation/validateOrganization.d.ts +15 -0
- package/dist/types/utils/validation/validateOrganization.d.ts.map +1 -0
- package/dist/types/utils/validation/validatePhone.d.ts +10 -0
- package/dist/types/utils/validation/validatePhone.d.ts.map +1 -0
- package/dist/types/utils/validation/validateProject.d.ts +15 -0
- package/dist/types/utils/validation/validateProject.d.ts.map +1 -0
- package/dist/types/utils/validation/validateString.d.ts +10 -0
- package/dist/types/utils/validation/validateString.d.ts.map +1 -0
- package/dist/types/utils/validation/validateUser.d.ts +15 -0
- package/dist/types/utils/validation/validateUser.d.ts.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1,40 @@
|
|
|
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 dictionary_exports = {};
|
|
20
|
+
__export(dictionary_exports, {
|
|
21
|
+
mapDictionaryToAPI: () => mapDictionaryToAPI
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(dictionary_exports);
|
|
24
|
+
const mapDictionaryToAPI = (dictionary, projectId, version) => {
|
|
25
|
+
let dictionaryObject = dictionary;
|
|
26
|
+
if (typeof dictionary.toObject === "function") {
|
|
27
|
+
dictionaryObject = dictionary.toObject();
|
|
28
|
+
}
|
|
29
|
+
const content = dictionaryObject.content[version ?? 0];
|
|
30
|
+
return {
|
|
31
|
+
...dictionaryObject,
|
|
32
|
+
content,
|
|
33
|
+
filePath: dictionaryObject.filePath?.[String(projectId)]
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
mapDictionaryToAPI
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=dictionary.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/dictionary.ts"],"sourcesContent":["import {\n Dictionary,\n DictionaryAPI,\n DictionaryDocument,\n} from '@/types/dictionary.types';\nimport { Project } from '@/types/project.types';\n\n/**\n * Maps a dictionary to an API response.\n * If the version is not provided, the latest version is used.\n *\n * @param dictionary - The dictionary to map.\n * @param projectId - The ID of the project the dictionary belongs to.\n * @returns The dictionary mapped to an API response.\n */\nexport const mapDictionaryToAPI = (\n dictionary: Dictionary,\n projectId: string | Project['_id'],\n version?: number\n): DictionaryAPI => {\n let dictionaryObject: Dictionary = dictionary;\n\n // If the dictionary is a mongoose document, convert it to an object\n if (typeof (dictionary as DictionaryDocument).toObject === 'function') {\n dictionaryObject = (dictionary as DictionaryDocument).toObject();\n }\n\n const content = dictionaryObject.content[version ?? 0];\n\n return {\n ...dictionaryObject,\n content,\n filePath: dictionaryObject.filePath?.[String(projectId)],\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,qBAAqB,CAChC,YACA,WACA,YACkB;AAClB,MAAI,mBAA+B;AAGnC,MAAI,OAAQ,WAAkC,aAAa,YAAY;AACrE,uBAAoB,WAAkC,SAAS;AAAA,EACjE;AAEA,QAAM,UAAU,iBAAiB,QAAQ,WAAW,CAAC;AAErD,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,UAAU,iBAAiB,WAAW,OAAO,SAAS,CAAC;AAAA,EACzD;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 organization_exports = {};
|
|
20
|
+
__export(organization_exports, {
|
|
21
|
+
mapOrganizationToAPI: () => mapOrganizationToAPI
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(organization_exports);
|
|
24
|
+
const mapOrganizationToAPI = (organization, isOrganizationAdmin) => {
|
|
25
|
+
let organizationObject = organization;
|
|
26
|
+
if (typeof organization.toObject === "function") {
|
|
27
|
+
organizationObject = organization.toObject();
|
|
28
|
+
}
|
|
29
|
+
if (isOrganizationAdmin) {
|
|
30
|
+
return organizationObject;
|
|
31
|
+
}
|
|
32
|
+
const { adminsIds, ...organizationAPI } = organizationObject;
|
|
33
|
+
return organizationAPI;
|
|
34
|
+
};
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
mapOrganizationToAPI
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=organization.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/organization.ts"],"sourcesContent":["import {\n Organization,\n OrganizationAPI,\n OrganizationDocument,\n} from '@/types/organization.types';\n\n/**\n * Maps an organization to an API response.\n * @param organization - The organization to map.\n * @param isOrganizationAdmin - Whether the user is an admin of the organization.\n * @returns The organization mapped to an API response.\n */\nexport const mapOrganizationToAPI = (\n organization: Organization,\n isOrganizationAdmin: boolean\n): OrganizationAPI => {\n let organizationObject: Organization = organization;\n\n // If the organization is a mongoose document, convert it to an object\n if (typeof (organization as OrganizationDocument).toObject === 'function') {\n organizationObject = (organization as OrganizationDocument).toObject();\n }\n\n if (isOrganizationAdmin) {\n return organizationObject;\n }\n\n const { adminsIds, ...organizationAPI } = organizationObject;\n return organizationAPI;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,uBAAuB,CAClC,cACA,wBACoB;AACpB,MAAI,qBAAmC;AAGvC,MAAI,OAAQ,aAAsC,aAAa,YAAY;AACzE,yBAAsB,aAAsC,SAAS;AAAA,EACvE;AAEA,MAAI,qBAAqB;AACvB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,WAAW,GAAG,gBAAgB,IAAI;AAC1C,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 project_exports = {};
|
|
20
|
+
__export(project_exports, {
|
|
21
|
+
mapProjectToAPI: () => mapProjectToAPI
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(project_exports);
|
|
24
|
+
const mapProjectToAPI = (project, isProjectAdmin) => {
|
|
25
|
+
let projectObject = project;
|
|
26
|
+
if (typeof project.toObject === "function") {
|
|
27
|
+
projectObject = project.toObject();
|
|
28
|
+
}
|
|
29
|
+
if (isProjectAdmin) {
|
|
30
|
+
return projectObject;
|
|
31
|
+
}
|
|
32
|
+
const { adminsIds, ...projectAPI } = projectObject;
|
|
33
|
+
return projectAPI;
|
|
34
|
+
};
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
mapProjectToAPI
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=project.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/project.ts"],"sourcesContent":["import { Project, ProjectAPI, ProjectDocument } from '@/types/project.types';\n\n/**\n * Maps a project to an API response.\n * @param project - The project to map.\n * @param isProjectAdmin - Whether the user is an admin of the project.\n * @returns The project mapped to an API response.\n */\nexport const mapProjectToAPI = (\n project: Project,\n isProjectAdmin: boolean\n): ProjectAPI => {\n let projectObject: Project = project;\n\n // If the project is a mongoose document, convert it to an object\n if (typeof (project as ProjectDocument).toObject === 'function') {\n projectObject = (project as ProjectDocument).toObject();\n }\n\n if (isProjectAdmin) {\n return projectObject;\n }\n\n const { adminsIds, ...projectAPI } = projectObject;\n return projectAPI;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,MAAM,kBAAkB,CAC7B,SACA,mBACe;AACf,MAAI,gBAAyB;AAG7B,MAAI,OAAQ,QAA4B,aAAa,YAAY;AAC/D,oBAAiB,QAA4B,SAAS;AAAA,EACxD;AAEA,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,WAAW,GAAG,WAAW,IAAI;AACrC,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
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_exports = {};
|
|
20
|
+
__export(user_exports, {
|
|
21
|
+
mapUserToAPI: () => mapUserToAPI,
|
|
22
|
+
mapUsersToAPI: () => mapUsersToAPI
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(user_exports);
|
|
25
|
+
const mapUserToAPI = (user) => {
|
|
26
|
+
let userObject = user;
|
|
27
|
+
if (typeof user.toObject === "function") {
|
|
28
|
+
userObject = user.toObject();
|
|
29
|
+
}
|
|
30
|
+
const { provider, session, createdAt, ...userAPI } = userObject;
|
|
31
|
+
return { ...userAPI, role: "user" };
|
|
32
|
+
};
|
|
33
|
+
const mapUsersToAPI = (users) => users.map(mapUserToAPI);
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
mapUserToAPI,
|
|
37
|
+
mapUsersToAPI
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=user.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/user.ts"],"sourcesContent":["import { User, UserAPI, UserDocument } from '@/types/user.types';\n\n/**\n * Formats a user for API response. Removes sensitive information and adds role.\n * @param user - The user object to format.\n * @returns The formatted user object.\n */\nexport const mapUserToAPI = (user: User | UserDocument): UserAPI => {\n let userObject: User = user;\n\n // If the user is a mongoose document, convert it to an object\n if (typeof (user as UserDocument).toObject === 'function') {\n userObject = (user as UserDocument).toObject();\n }\n\n const { provider, session, createdAt, ...userAPI } = userObject;\n\n return { ...userAPI, role: 'user' };\n};\n\n/**\n * Formats an array of users for API response. Removes sensitive information and adds role.\n * @param users - The array of user objects to format.\n * @returns The formatted array of user objects.\n */\nexport const mapUsersToAPI = (users: User[]): UserAPI[] =>\n users.map(mapUserToAPI);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe,CAAC,SAAuC;AAClE,MAAI,aAAmB;AAGvB,MAAI,OAAQ,KAAsB,aAAa,YAAY;AACzD,iBAAc,KAAsB,SAAS;AAAA,EAC/C;AAEA,QAAM,EAAE,UAAU,SAAS,WAAW,GAAG,QAAQ,IAAI;AAErD,SAAO,EAAE,GAAG,SAAS,MAAM,OAAO;AACpC;AAOO,MAAM,gBAAgB,CAAC,UAC5B,MAAM,IAAI,YAAY;","names":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
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 connectDB_exports = {};
|
|
30
|
+
__export(connectDB_exports, {
|
|
31
|
+
connectDB: () => connectDB
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(connectDB_exports);
|
|
34
|
+
var import_logger = require('./../../logger/index.cjs');
|
|
35
|
+
var import_mongoose = __toESM(require("mongoose"), 1);
|
|
36
|
+
const connectDB = async () => {
|
|
37
|
+
try {
|
|
38
|
+
const client = await import_mongoose.default.connect(
|
|
39
|
+
`mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`
|
|
40
|
+
);
|
|
41
|
+
import_logger.logger.info("MongoDB connected");
|
|
42
|
+
return client;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
const errorMessage = `MongoDB connection error - ${error.message}`;
|
|
45
|
+
import_logger.logger.error(errorMessage);
|
|
46
|
+
throw new Error(errorMessage);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
connectDB
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=connectDB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport mongoose from 'mongoose';\n\nexport const connectDB = async () => {\n try {\n const client = await mongoose.connect(\n `mongodb+srv://${process.env.DB_ID}:${process.env.DB_MDP}@${process.env.DB_CLUSTER}/?retryWrites=true&w=majority&appName=Cluster0`\n );\n\n logger.info('MongoDB connected');\n\n return client;\n } catch (error) {\n const errorMessage = `MongoDB connection error - ${(error as Error).message}`;\n\n logger.error(errorMessage);\n throw new Error(errorMessage);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,sBAAqB;AAEd,MAAM,YAAY,YAAY;AACnC,MAAI;AACF,UAAM,SAAS,MAAM,gBAAAA,QAAS;AAAA,MAC5B,iBAAiB,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU;AAAA,IACpF;AAEA,yBAAO,KAAK,mBAAmB;AAE/B,WAAO;AAAA,EACT,SAAS,OAAO;AACd,UAAM,eAAe,8BAA+B,MAAgB,OAAO;AAE3E,yBAAO,MAAM,YAAY;AACzB,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AACF;","names":["mongoose"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 oAuth2_exports = {};
|
|
20
|
+
__export(oAuth2_exports, {
|
|
21
|
+
ACCESS_TOKEN_EXPIRES_IN: () => ACCESS_TOKEN_EXPIRES_IN,
|
|
22
|
+
authenticateOptions: () => authenticateOptions,
|
|
23
|
+
getAuthModel: () => getAuthModel,
|
|
24
|
+
getTokenExpireAt: () => getTokenExpireAt
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(oAuth2_exports);
|
|
27
|
+
var import_oAuth2 = require('./../services/oAuth2.service.cjs');
|
|
28
|
+
const ACCESS_TOKEN_EXPIRES_IN = 60 * 60 * 2;
|
|
29
|
+
const getTokenExpireAt = () => new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1e3);
|
|
30
|
+
const authenticateOptions = {
|
|
31
|
+
scope: void 0,
|
|
32
|
+
addAcceptedScopesHeader: void 0,
|
|
33
|
+
addAuthorizedScopesHeader: void 0,
|
|
34
|
+
allowBearerTokensInQueryString: void 0
|
|
35
|
+
};
|
|
36
|
+
const getAuthModel = () => ({
|
|
37
|
+
getClient: import_oAuth2.getClient,
|
|
38
|
+
saveToken: import_oAuth2.saveToken,
|
|
39
|
+
getUserFromClient: import_oAuth2.getUserFromClient,
|
|
40
|
+
verifyScope: import_oAuth2.verifyScope,
|
|
41
|
+
getAccessToken: import_oAuth2.getAccessToken
|
|
42
|
+
});
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
ACCESS_TOKEN_EXPIRES_IN,
|
|
46
|
+
authenticateOptions,
|
|
47
|
+
getAuthModel,
|
|
48
|
+
getTokenExpireAt
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=oAuth2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/oAuth2.ts"],"sourcesContent":["import {\n getClient,\n saveToken,\n getAccessToken,\n verifyScope,\n getUserFromClient,\n} from '@services/oAuth2.service';\nimport OAuth2Server, { AuthenticateOptions } from 'oauth2-server';\n\nexport const ACCESS_TOKEN_EXPIRES_IN = 60 * 60 * 2; // 2 hour\n\nexport const getTokenExpireAt = () =>\n new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1000);\n\nexport const authenticateOptions: AuthenticateOptions = {\n scope: undefined,\n addAcceptedScopesHeader: undefined,\n addAuthorizedScopesHeader: undefined,\n allowBearerTokensInQueryString: undefined,\n};\n\nexport const getAuthModel = (): OAuth2Server.ClientCredentialsModel => ({\n getClient,\n saveToken,\n getUserFromClient,\n verifyScope,\n getAccessToken,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMO;AAGA,MAAM,0BAA0B,KAAK,KAAK;AAE1C,MAAM,mBAAmB,MAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,0BAA0B,GAAI;AAE/C,MAAM,sBAA2C;AAAA,EACtD,OAAO;AAAA,EACP,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,gCAAgC;AAClC;AAEO,MAAM,eAAe,OAA4C;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 responseData_exports = {};
|
|
20
|
+
__export(responseData_exports, {
|
|
21
|
+
formatPaginatedResponse: () => formatPaginatedResponse,
|
|
22
|
+
formatResponse: () => formatResponse
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(responseData_exports);
|
|
25
|
+
var import_httpStatusCodes = require('./../utils/httpStatusCodes.cjs');
|
|
26
|
+
const isSuccessStatus = (status) => status === import_httpStatusCodes.HttpStatusCodes.OK_200 || status === import_httpStatusCodes.HttpStatusCodes.CREATED_201 || status === import_httpStatusCodes.HttpStatusCodes.ACCEPTED_202 || status === import_httpStatusCodes.HttpStatusCodes.NON_AUTHORITATIVE_INFORMATION_203 || status === import_httpStatusCodes.HttpStatusCodes.NO_CONTENT_204 || status === import_httpStatusCodes.HttpStatusCodes.RESET_CONTENT_205 || status === import_httpStatusCodes.HttpStatusCodes.PARTIAL_CONTENT_206 || status === import_httpStatusCodes.HttpStatusCodes.MULTI_STATUS_207 || status === import_httpStatusCodes.HttpStatusCodes.ALREADY_REPORTED_208 || status === import_httpStatusCodes.HttpStatusCodes.IM_USED_226;
|
|
27
|
+
function formatResponse({
|
|
28
|
+
data,
|
|
29
|
+
error,
|
|
30
|
+
status = import_httpStatusCodes.HttpStatusCodes.OK_200
|
|
31
|
+
}) {
|
|
32
|
+
const success = isSuccessStatus(status);
|
|
33
|
+
return {
|
|
34
|
+
success,
|
|
35
|
+
data: data ?? null,
|
|
36
|
+
error: error ?? void 0,
|
|
37
|
+
status
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function formatPaginatedResponse({
|
|
41
|
+
status = import_httpStatusCodes.HttpStatusCodes.OK_200,
|
|
42
|
+
data,
|
|
43
|
+
error,
|
|
44
|
+
page,
|
|
45
|
+
pageSize,
|
|
46
|
+
totalPages,
|
|
47
|
+
totalItems
|
|
48
|
+
}) {
|
|
49
|
+
const success = isSuccessStatus(status);
|
|
50
|
+
return {
|
|
51
|
+
success,
|
|
52
|
+
data: data ?? null,
|
|
53
|
+
error: error ?? void 0,
|
|
54
|
+
status,
|
|
55
|
+
page: page ?? null,
|
|
56
|
+
page_size: pageSize ?? null,
|
|
57
|
+
total_pages: totalPages ?? null,
|
|
58
|
+
total_items: totalItems ?? null
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
formatPaginatedResponse,
|
|
64
|
+
formatResponse
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=responseData.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/responseData.ts"],"sourcesContent":["import { HttpStatusCodes } from '@utils/httpStatusCodes';\n\ntype ErrorData = {\n code: string;\n message: string;\n} & object;\n\nexport type ResponseData<T = null> = {\n success: boolean;\n status: HttpStatusCodes;\n data: T | null;\n error?: ErrorData | ErrorData[];\n};\n\ntype ValidResponseStatus =\n | HttpStatusCodes.OK_200\n | HttpStatusCodes.CREATED_201\n | HttpStatusCodes.ACCEPTED_202\n | HttpStatusCodes.NON_AUTHORITATIVE_INFORMATION_203\n | HttpStatusCodes.NO_CONTENT_204\n | HttpStatusCodes.RESET_CONTENT_205\n | HttpStatusCodes.PARTIAL_CONTENT_206\n | HttpStatusCodes.MULTI_STATUS_207\n | HttpStatusCodes.ALREADY_REPORTED_208\n | HttpStatusCodes.IM_USED_226;\n\ntype SuccessResponseArgs<T = undefined> = {\n data: T;\n status?: ValidResponseStatus;\n error?: null;\n};\n\ntype ErrorResponseArgs = {\n error: ErrorData | ErrorData[];\n status: HttpStatusCodes;\n data?: null;\n};\n\nconst isSuccessStatus = (\n status: HttpStatusCodes\n): status is HttpStatusCodes.OK_200 =>\n status === HttpStatusCodes.OK_200 ||\n status === HttpStatusCodes.CREATED_201 ||\n status === HttpStatusCodes.ACCEPTED_202 ||\n status === HttpStatusCodes.NON_AUTHORITATIVE_INFORMATION_203 ||\n status === HttpStatusCodes.NO_CONTENT_204 ||\n status === HttpStatusCodes.RESET_CONTENT_205 ||\n status === HttpStatusCodes.PARTIAL_CONTENT_206 ||\n status === HttpStatusCodes.MULTI_STATUS_207 ||\n status === HttpStatusCodes.ALREADY_REPORTED_208 ||\n status === HttpStatusCodes.IM_USED_226;\n\nexport function formatResponse<T>({\n data,\n status,\n}: SuccessResponseArgs<T>): ResponseData<T>;\nexport function formatResponse<T>({\n error,\n status,\n}: ErrorResponseArgs): ResponseData<T>;\nexport function formatResponse<T>({\n data,\n error,\n status = HttpStatusCodes.OK_200,\n}: SuccessResponseArgs<T> | ErrorResponseArgs): ResponseData<T> {\n const success = isSuccessStatus(status);\n\n return {\n success,\n data: data ?? null,\n error: error ?? undefined,\n status,\n };\n}\n\nexport type PaginatedResponse<T = undefined> = Omit<ResponseData<T>, 'data'> & {\n data: T[] | null;\n page: number | null;\n page_size: number | null;\n total_pages: number | null;\n total_items: number | null;\n};\n\ntype SuccessPaginatedResponseArgs<T = undefined> = {\n data: T[];\n status?: ValidResponseStatus;\n page: number;\n pageSize: number;\n totalPages: number;\n totalItems: number;\n\n error?: null;\n};\n\ntype ErrorPaginatedResponseArgs = {\n error: ErrorData | ErrorData[];\n status: HttpStatusCodes;\n\n data?: null;\n page?: null;\n pageSize?: null;\n totalPages?: null;\n totalItems?: null;\n};\n\nexport function formatPaginatedResponse<T>({\n data,\n status,\n page,\n pageSize,\n totalPages,\n totalItems,\n}: SuccessPaginatedResponseArgs<T>): PaginatedResponse<T>;\nexport function formatPaginatedResponse<T>({\n error,\n status,\n}: ErrorPaginatedResponseArgs): PaginatedResponse<T>;\nexport function formatPaginatedResponse<T>({\n status = HttpStatusCodes.OK_200,\n data,\n error,\n page,\n pageSize,\n totalPages,\n totalItems,\n}:\n | SuccessPaginatedResponseArgs<T>\n | ErrorPaginatedResponseArgs): PaginatedResponse<T> {\n const success = isSuccessStatus(status);\n\n return {\n success,\n data: data ?? null,\n error: error ?? undefined,\n status,\n page: page ?? null,\n page_size: pageSize ?? null,\n total_pages: totalPages ?? null,\n total_items: totalItems ?? null,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAgC;AAsChC,MAAM,kBAAkB,CACtB,WAEA,WAAW,uCAAgB,UAC3B,WAAW,uCAAgB,eAC3B,WAAW,uCAAgB,gBAC3B,WAAW,uCAAgB,qCAC3B,WAAW,uCAAgB,kBAC3B,WAAW,uCAAgB,qBAC3B,WAAW,uCAAgB,uBAC3B,WAAW,uCAAgB,oBAC3B,WAAW,uCAAgB,wBAC3B,WAAW,uCAAgB;AAUtB,SAAS,eAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,SAAS,uCAAgB;AAC3B,GAAgE;AAC9D,QAAM,UAAU,gBAAgB,MAAM;AAEtC,SAAO;AAAA,IACL;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,OAAO,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AA4CO,SAAS,wBAA2B;AAAA,EACzC,SAAS,uCAAgB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEsD;AACpD,QAAM,UAAU,gBAAgB,MAAM;AAEtC,SAAO;AAAA,IACL;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,OAAO,SAAS;AAAA,IAChB;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,WAAW,YAAY;AAAA,IACvB,aAAa,cAAc;AAAA,IAC3B,aAAa,cAAc;AAAA,EAC7B;AACF;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
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 validateArray_exports = {};
|
|
20
|
+
__export(validateArray_exports, {
|
|
21
|
+
validateArray: () => validateArray
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(validateArray_exports);
|
|
24
|
+
const validateArray = (value, entityName = "Array", elementType, elementValidator, minLength = 0, maxLength = void 0) => {
|
|
25
|
+
const errors = [];
|
|
26
|
+
if (!Array.isArray(value)) {
|
|
27
|
+
errors.push(`${entityName} must be an array.`);
|
|
28
|
+
} else if (minLength && value.length < minLength) {
|
|
29
|
+
errors.push(`${entityName} must be at least ${minLength} items long.`);
|
|
30
|
+
} else if (maxLength && value.length > maxLength) {
|
|
31
|
+
errors.push(`${entityName} must be at most ${maxLength} items long.`);
|
|
32
|
+
} else if (elementType) {
|
|
33
|
+
const isValid = value.some((element) => typeof element !== elementType);
|
|
34
|
+
if (!isValid) {
|
|
35
|
+
errors.push(`${entityName} must contain only ${elementType} elements.`);
|
|
36
|
+
}
|
|
37
|
+
} else if (elementValidator) {
|
|
38
|
+
const isValidOrErrorList = value.every(elementValidator);
|
|
39
|
+
if (Array.isArray(isValidOrErrorList)) {
|
|
40
|
+
const isValid = isValidOrErrorList.length > 0;
|
|
41
|
+
if (!isValid) {
|
|
42
|
+
errors.push(...isValidOrErrorList);
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
const isValid = isValidOrErrorList;
|
|
46
|
+
if (!isValid) {
|
|
47
|
+
errors.push(`${entityName} must contain valid elements.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return errors;
|
|
52
|
+
};
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
validateArray
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=validateArray.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateArray.ts"],"sourcesContent":["/* eslint-disable sonarjs/cognitive-complexity */\ntype ElementType = 'string' | 'number' | 'boolean' | 'object' | 'array';\ntype ElementValidator<T> = (value: T) => boolean | string[];\n\n/**\n * Validates a email field.\n * @param value The value to validate.\n * @param entityName The name of the entity being validated.\n * @param minLength The minimum length of the string.\n * @param maxLength The maximum length of the string.\n * @returns An array of validation errors.\n */\nexport const validateArray = <T = unknown>(\n value: T[],\n entityName = 'Array',\n elementType?: ElementType,\n elementValidator?: ElementValidator<T>,\n minLength = 0,\n maxLength = undefined\n): string[] => {\n const errors: string[] = [];\n\n if (!Array.isArray(value)) {\n errors.push(`${entityName} must be an array.`);\n } else if (minLength && value.length < minLength) {\n errors.push(`${entityName} must be at least ${minLength} items long.`);\n } else if (maxLength && value.length > maxLength) {\n errors.push(`${entityName} must be at most ${maxLength} items long.`);\n } else if (elementType) {\n const isValid = value.some((element) => typeof element !== elementType);\n\n if (!isValid) {\n errors.push(`${entityName} must contain only ${elementType} elements.`);\n }\n } else if (elementValidator) {\n const isValidOrErrorList = value.every(elementValidator);\n\n if (Array.isArray(isValidOrErrorList)) {\n const isValid = isValidOrErrorList.length > 0;\n\n if (!isValid) {\n errors.push(...isValidOrErrorList);\n }\n } else {\n const isValid = isValidOrErrorList;\n\n if (!isValid) {\n errors.push(`${entityName} must contain valid elements.`);\n }\n }\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,gBAAgB,CAC3B,OACA,aAAa,SACb,aACA,kBACA,YAAY,GACZ,YAAY,WACC;AACb,QAAM,SAAmB,CAAC;AAE1B,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,KAAK,GAAG,UAAU,oBAAoB;AAAA,EAC/C,WAAW,aAAa,MAAM,SAAS,WAAW;AAChD,WAAO,KAAK,GAAG,UAAU,qBAAqB,SAAS,cAAc;AAAA,EACvE,WAAW,aAAa,MAAM,SAAS,WAAW;AAChD,WAAO,KAAK,GAAG,UAAU,oBAAoB,SAAS,cAAc;AAAA,EACtE,WAAW,aAAa;AACtB,UAAM,UAAU,MAAM,KAAK,CAAC,YAAY,OAAO,YAAY,WAAW;AAEtE,QAAI,CAAC,SAAS;AACZ,aAAO,KAAK,GAAG,UAAU,sBAAsB,WAAW,YAAY;AAAA,IACxE;AAAA,EACF,WAAW,kBAAkB;AAC3B,UAAM,qBAAqB,MAAM,MAAM,gBAAgB;AAEvD,QAAI,MAAM,QAAQ,kBAAkB,GAAG;AACrC,YAAM,UAAU,mBAAmB,SAAS;AAE5C,UAAI,CAAC,SAAS;AACZ,eAAO,KAAK,GAAG,kBAAkB;AAAA,MACnC;AAAA,IACF,OAAO;AACL,YAAM,UAAU;AAEhB,UAAI,CAAC,SAAS;AACZ,eAAO,KAAK,GAAG,UAAU,+BAA+B;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 validateDictionary_exports = {};
|
|
20
|
+
__export(validateDictionary_exports, {
|
|
21
|
+
validateDictionary: () => validateDictionary
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(validateDictionary_exports);
|
|
24
|
+
var import_project = require('./../../services/project.service.cjs');
|
|
25
|
+
var import_validateArray = require('./validateArray.cjs');
|
|
26
|
+
const defaultFieldsToCheck = ["projectIds"];
|
|
27
|
+
const validateDictionary = async (dictionary, fieldsToCheck = defaultFieldsToCheck) => {
|
|
28
|
+
const errors = {};
|
|
29
|
+
const fieldsToValidate = new Set(fieldsToCheck);
|
|
30
|
+
const projects = await (0, import_project.findProjects)({
|
|
31
|
+
_id: dictionary.projectIds
|
|
32
|
+
});
|
|
33
|
+
for (const field of fieldsToValidate) {
|
|
34
|
+
const value = dictionary[field];
|
|
35
|
+
errors[field] = [];
|
|
36
|
+
if (field === "projectIds") {
|
|
37
|
+
const projectsErrors = (0, import_validateArray.validateArray)(
|
|
38
|
+
value,
|
|
39
|
+
"Project",
|
|
40
|
+
"string",
|
|
41
|
+
(value2) => {
|
|
42
|
+
const projectErrors = [];
|
|
43
|
+
if (typeof value2 !== "string") {
|
|
44
|
+
projectErrors.push("Project id must be a string");
|
|
45
|
+
}
|
|
46
|
+
if (!value2) {
|
|
47
|
+
projectErrors.push("Project id is required");
|
|
48
|
+
}
|
|
49
|
+
if (!projects) {
|
|
50
|
+
projectErrors.push("Project not found");
|
|
51
|
+
}
|
|
52
|
+
return projectsErrors;
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (errors[field].length === 0) {
|
|
57
|
+
delete errors[field];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return errors;
|
|
61
|
+
};
|
|
62
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
63
|
+
0 && (module.exports = {
|
|
64
|
+
validateDictionary
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=validateDictionary.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateDictionary.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-unused-collection */\n\nimport { findProjects } from '@services/project.service';\nimport { validateArray } from './validateArray';\nimport type { Dictionary } from '@/types/dictionary.types';\n\nexport type DictionaryFields = (keyof Dictionary)[];\n\nconst defaultFieldsToCheck: DictionaryFields = ['projectIds'];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\n/**\n * Validates an dictionary object.\n * @param dictionary The dictionary object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateDictionary = async (\n dictionary: Partial<Dictionary>,\n fieldsToCheck = defaultFieldsToCheck\n): Promise<ValidationErrors> => {\n const errors: ValidationErrors = {};\n\n // Define the fields to validate\n const fieldsToValidate = new Set<FieldsToCheck>(fieldsToCheck);\n\n const projects = await findProjects({\n _id: dictionary.projectIds as unknown as string[],\n });\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = dictionary[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n if (field === 'projectIds') {\n const projectsErrors = validateArray<string>(\n value as unknown as string[],\n 'Project',\n 'string',\n (value) => {\n const projectErrors: string[] = [];\n\n if (typeof value !== 'string') {\n projectErrors.push('Project id must be a string');\n }\n\n if (!value) {\n projectErrors.push('Project id is required');\n }\n\n if (!projects) {\n projectErrors.push('Project not found');\n }\n\n return projectsErrors;\n }\n );\n }\n\n // Remove the error field if there are no errors\n if (errors[field].length === 0) {\n delete errors[field];\n }\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAA6B;AAC7B,2BAA8B;AAK9B,MAAM,uBAAyC,CAAC,YAAY;AAYrD,MAAM,qBAAqB,OAChC,YACA,gBAAgB,yBACc;AAC9B,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAE7D,QAAM,WAAW,UAAM,6BAAa;AAAA,IAClC,KAAK,WAAW;AAAA,EAClB,CAAC;AAGD,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,WAAW,KAAK;AAG9B,WAAO,KAAK,IAAI,CAAC;AAEjB,QAAI,UAAU,cAAc;AAC1B,YAAM,qBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAACA,WAAU;AACT,gBAAM,gBAA0B,CAAC;AAEjC,cAAI,OAAOA,WAAU,UAAU;AAC7B,0BAAc,KAAK,6BAA6B;AAAA,UAClD;AAEA,cAAI,CAACA,QAAO;AACV,0BAAc,KAAK,wBAAwB;AAAA,UAC7C;AAEA,cAAI,CAAC,UAAU;AACb,0BAAc,KAAK,mBAAmB;AAAA,UACxC;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":["value"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
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 validateEmail_exports = {};
|
|
20
|
+
__export(validateEmail_exports, {
|
|
21
|
+
validateEmail: () => validateEmail
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(validateEmail_exports);
|
|
24
|
+
var import_validateString = require('./validateString.cjs');
|
|
25
|
+
const validateEmail = (value, entityName = "Email", minLength = 6, maxLength = 100) => {
|
|
26
|
+
const errors = (0, import_validateString.validateString)(value, entityName, minLength, maxLength);
|
|
27
|
+
const emailRegex = /^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/;
|
|
28
|
+
if (typeof value === "string" && !emailRegex.test(value)) {
|
|
29
|
+
errors.push(`${entityName} must be a valid email address.`);
|
|
30
|
+
}
|
|
31
|
+
return errors;
|
|
32
|
+
};
|
|
33
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
34
|
+
0 && (module.exports = {
|
|
35
|
+
validateEmail
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=validateEmail.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateEmail.ts"],"sourcesContent":["import { validateString } from './validateString';\n\n/**\n * Validates a email field.\n * @param value The value to validate.\n * @param entityName The name of the entity being validated.\n * @param minLength The minimum length of the string.\n * @param maxLength The maximum length of the string.\n * @returns An array of validation errors.\n */\nexport const validateEmail = (\n value: unknown,\n entityName = 'Email',\n minLength = 6,\n maxLength = 100\n): string[] => {\n const errors = validateString(value, entityName, minLength, maxLength);\n\n const emailRegex = /^[^\\s@]+@[^\\s@][^\\s.@]*\\.[^\\s@]+$/;\n\n if (typeof value === 'string' && !emailRegex.test(value)) {\n errors.push(`${entityName} must be a valid email address.`);\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA+B;AAUxB,MAAM,gBAAgB,CAC3B,OACA,aAAa,SACb,YAAY,GACZ,YAAY,QACC;AACb,QAAM,aAAS,sCAAe,OAAO,YAAY,WAAW,SAAS;AAErE,QAAM,aAAa;AAEnB,MAAI,OAAO,UAAU,YAAY,CAAC,WAAW,KAAK,KAAK,GAAG;AACxD,WAAO,KAAK,GAAG,UAAU,iCAAiC;AAAA,EAC5D;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
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 validateOrganization_exports = {};
|
|
20
|
+
__export(validateOrganization_exports, {
|
|
21
|
+
MEMBERS_MIN_LENGTH: () => MEMBERS_MIN_LENGTH,
|
|
22
|
+
NAME_MAX_LENGTH: () => NAME_MAX_LENGTH,
|
|
23
|
+
NAME_MIN_LENGTH: () => NAME_MIN_LENGTH,
|
|
24
|
+
validateOrganization: () => validateOrganization
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(validateOrganization_exports);
|
|
27
|
+
var import_validateArray = require('./validateArray.cjs');
|
|
28
|
+
var import_validateString = require('./validateString.cjs');
|
|
29
|
+
const defaultFieldsToCheck = [
|
|
30
|
+
"name",
|
|
31
|
+
"membersIds",
|
|
32
|
+
"adminsIds"
|
|
33
|
+
];
|
|
34
|
+
const NAME_MIN_LENGTH = 4;
|
|
35
|
+
const NAME_MAX_LENGTH = 100;
|
|
36
|
+
const MEMBERS_MIN_LENGTH = 1;
|
|
37
|
+
const validateOrganization = (organization, fieldsToCheck = defaultFieldsToCheck) => {
|
|
38
|
+
const errors = {};
|
|
39
|
+
const fieldsToValidate = new Set(fieldsToCheck);
|
|
40
|
+
for (const field of fieldsToValidate) {
|
|
41
|
+
const value = organization[field];
|
|
42
|
+
errors[field] = [];
|
|
43
|
+
if (field === "name") {
|
|
44
|
+
const nameErrors = (0, import_validateString.validateString)(
|
|
45
|
+
value,
|
|
46
|
+
"Name",
|
|
47
|
+
NAME_MIN_LENGTH,
|
|
48
|
+
NAME_MAX_LENGTH
|
|
49
|
+
);
|
|
50
|
+
if (nameErrors.length > 0) {
|
|
51
|
+
errors[field] = nameErrors;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (field === "membersIds" || field === "adminsIds") {
|
|
55
|
+
const membersErrors = (0, import_validateArray.validateArray)(
|
|
56
|
+
value,
|
|
57
|
+
"Members",
|
|
58
|
+
"string",
|
|
59
|
+
void 0,
|
|
60
|
+
MEMBERS_MIN_LENGTH
|
|
61
|
+
);
|
|
62
|
+
if (membersErrors.length > 0) {
|
|
63
|
+
errors[field] = membersErrors;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (errors[field].length === 0) {
|
|
67
|
+
delete errors[field];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return errors;
|
|
71
|
+
};
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
MEMBERS_MIN_LENGTH,
|
|
75
|
+
NAME_MAX_LENGTH,
|
|
76
|
+
NAME_MIN_LENGTH,
|
|
77
|
+
validateOrganization
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=validateOrganization.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateOrganization.ts"],"sourcesContent":["import { validateArray } from './validateArray';\nimport { validateString } from './validateString';\nimport type { Organization } from '@/types/organization.types';\n\nexport type OrganizationFields = (keyof Organization)[];\n\nconst defaultFieldsToCheck: OrganizationFields = [\n 'name',\n 'membersIds',\n 'adminsIds',\n];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\nexport const NAME_MIN_LENGTH = 4;\nexport const NAME_MAX_LENGTH = 100;\n\nexport const MEMBERS_MIN_LENGTH = 1;\n\n/**\n * Validates an organization object.\n * @param organization The organization object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateOrganization = (\n organization: Partial<Organization>,\n fieldsToCheck = defaultFieldsToCheck\n): ValidationErrors => {\n const errors: ValidationErrors = {};\n\n // Define the fields to validate\n const fieldsToValidate = new Set<FieldsToCheck>(fieldsToCheck);\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = organization[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n // Check for name validity\n if (field === 'name') {\n const nameErrors = validateString(\n value,\n 'Name',\n NAME_MIN_LENGTH,\n NAME_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n if (field === 'membersIds' || field === 'adminsIds') {\n const membersErrors = validateArray<string>(\n value as unknown as string[],\n 'Members',\n 'string',\n undefined,\n MEMBERS_MIN_LENGTH\n );\n\n if (membersErrors.length > 0) {\n errors[field] = membersErrors;\n }\n }\n\n // Remove the error field if there are no errors\n if (errors[field].length === 0) {\n delete errors[field];\n }\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAC9B,4BAA+B;AAK/B,MAAM,uBAA2C;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF;AAOO,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AAExB,MAAM,qBAAqB;AAO3B,MAAM,uBAAuB,CAClC,cACA,gBAAgB,yBACK;AACrB,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAG7D,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,aAAa,KAAK;AAGhC,WAAO,KAAK,IAAI,CAAC;AAGjB,QAAI,UAAU,QAAQ;AACpB,YAAM,iBAAa;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,gBAAgB,UAAU,aAAa;AACnD,YAAM,oBAAgB;AAAA,QACpB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,cAAc,SAAS,GAAG;AAC5B,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|