@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,43 @@
|
|
|
1
|
+
import type { ProjectFilters } from '../utils/filtersAndPagination/getProjectFiltersAndPagination';
|
|
2
|
+
import type { ObjectId } from 'mongoose';
|
|
3
|
+
import type { Project, ProjectData } from '../types/project.types';
|
|
4
|
+
/**
|
|
5
|
+
* Finds projects based on filters and pagination options.
|
|
6
|
+
* @param filters - MongoDB filter query.
|
|
7
|
+
* @param skip - Number of documents to skip.
|
|
8
|
+
* @param limit - Number of documents to limit.
|
|
9
|
+
* @returns List of projects matching the filters.
|
|
10
|
+
*/
|
|
11
|
+
export declare const findProjects: (filters: ProjectFilters, skip?: number, limit?: number) => Promise<Project[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Finds a project by its ID.
|
|
14
|
+
* @param projectId - The ID of the project to find.
|
|
15
|
+
* @returns The project matching the ID.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getProjectById: (projectId: string | ObjectId) => Promise<Project>;
|
|
18
|
+
/**
|
|
19
|
+
* Counts the total number of projects that match the filters.
|
|
20
|
+
* @param filters - MongoDB filter query.
|
|
21
|
+
* @returns Total number of projects.
|
|
22
|
+
*/
|
|
23
|
+
export declare const countProjects: (filters: ProjectFilters) => Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a new project in the database.
|
|
26
|
+
* @param project - The project data to create.
|
|
27
|
+
* @returns The created project.
|
|
28
|
+
*/
|
|
29
|
+
export declare const createProject: (project: ProjectData) => Promise<Project>;
|
|
30
|
+
/**
|
|
31
|
+
* Updates an existing project in the database by its ID.
|
|
32
|
+
* @param projectId - The ID of the project to update.
|
|
33
|
+
* @param project - The updated project data.
|
|
34
|
+
* @returns The updated project.
|
|
35
|
+
*/
|
|
36
|
+
export declare const updateProjectById: (projectId: string | ObjectId, project: Partial<Project>) => Promise<Project>;
|
|
37
|
+
/**
|
|
38
|
+
* Deletes a project from the database by its ID.
|
|
39
|
+
* @param projectId - The ID of the project to delete.
|
|
40
|
+
* @returns The result of the deletion operation.
|
|
41
|
+
*/
|
|
42
|
+
export declare const deleteProjectById: (projectId: string | ObjectId) => Promise<Project>;
|
|
43
|
+
//# sourceMappingURL=project.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../../src/services/project.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAKjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,YACd,cAAc,oCAGtB,OAAO,CAAC,OAAO,EAAE,CAEnB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,cACd,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,OAAO,CAQjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,YACf,cAAc,KACtB,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAQzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,GAAG,QAAQ,WACnB,OAAO,CAAC,OAAO,CAAC,KACxB,OAAO,CAAC,OAAO,CAkBjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,OAAO,CAQjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ObjectId } from 'mongoose';
|
|
2
|
+
import type { AccessKeyData, OAuth2Access, Project } from '../types/project.types';
|
|
3
|
+
import { User } from '../types/user.types';
|
|
4
|
+
/**
|
|
5
|
+
* Adds a new access key to a project.
|
|
6
|
+
*
|
|
7
|
+
* @param accessKeyData - The access key data.
|
|
8
|
+
* @param projectId - The ID of the project to add the access key to.
|
|
9
|
+
* @param user - The user adding the access key.
|
|
10
|
+
* @returns The new access key.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare const addNewAccessKey: (accessKeyData: AccessKeyData, projectId: string | ObjectId, user: User) => Promise<OAuth2Access>;
|
|
14
|
+
export declare const deleteAccessKey: (clientId: string | ObjectId, project: Project) => Promise<OAuth2Access>;
|
|
15
|
+
export declare const refreshAccessKey: (clientId: string | ObjectId, projectId: string | ObjectId) => Promise<OAuth2Access>;
|
|
16
|
+
//# sourceMappingURL=projectAccessKey.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectAccessKey.service.d.ts","sourceRoot":"","sources":["../../../src/services/projectAccessKey.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEZ,OAAO,EACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,kBACX,aAAa,aACjB,MAAM,GAAG,QAAQ,QACtB,IAAI,KACT,OAAO,CAAC,YAAY,CAuCtB,CAAC;AAEF,eAAO,MAAM,eAAe,aAChB,MAAM,GAAG,QAAQ,WAClB,OAAO,0BA0BjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,MAAM,GAAG,QAAQ,aAChB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,YAAY,CAyDtB,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
2
|
+
import type { Response } from 'express';
|
|
3
|
+
import type { ObjectId } from 'mongoose';
|
|
4
|
+
import type { Organization } from '../types/organization.types';
|
|
5
|
+
import type { Project } from '../types/project.types';
|
|
6
|
+
import type { SessionProviders, EmailPasswordSessionProvider, GoogleSessionProvider, GithubSessionProvider } from '../types/session.types';
|
|
7
|
+
import type { User, UserWithPasswordNotHashed } from '../types/user.types';
|
|
8
|
+
/**
|
|
9
|
+
* Adds a session to a user or updates the existing one.
|
|
10
|
+
* @param user - User object.
|
|
11
|
+
* @returns Updated user object.
|
|
12
|
+
*/
|
|
13
|
+
export declare const addSession: (user: User) => Promise<User>;
|
|
14
|
+
export declare const removeSession: (user: User) => Promise<User>;
|
|
15
|
+
/**
|
|
16
|
+
* Set user auth locals object
|
|
17
|
+
* @param res - Express response object.
|
|
18
|
+
* @param user - User object.
|
|
19
|
+
*/
|
|
20
|
+
export declare const setUserAuth: (res: Response, user: User) => Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Clears the JWT auth cookies and user locals object.
|
|
23
|
+
* @param res - Express response object.
|
|
24
|
+
*/
|
|
25
|
+
export declare const clearUserAuth: (res: ResponseWithInformation) => Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param res
|
|
29
|
+
* @param organization
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export declare const setOrganizationAuth: (res: ResponseWithInformation, organization: Organization) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Clears the JWT organization cookies and organization locals object.
|
|
35
|
+
* @param res - Express response object.
|
|
36
|
+
*/
|
|
37
|
+
export declare const clearOrganizationAuth: (res: ResponseWithInformation) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Set project auth locals object
|
|
40
|
+
* @param res - Express response object.
|
|
41
|
+
* @param project - Project object.
|
|
42
|
+
*/
|
|
43
|
+
export declare const setProjectAuth: (res: ResponseWithInformation, project: Project) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Clears the JWT project cookies and project locals object.
|
|
46
|
+
* @param res - Express response object.
|
|
47
|
+
*/
|
|
48
|
+
export declare const clearProjectAuth: (res: Response) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Activates a user by setting the emailValidated flag to true.
|
|
51
|
+
* @param user - The user object.
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
export declare const activateUser: (userId: string | ObjectId, secret: string) => Promise<User>;
|
|
55
|
+
/**
|
|
56
|
+
* Generates a random secret string of a specified length.
|
|
57
|
+
* @param length - The length of the secret.
|
|
58
|
+
* @returns The generated secret string.
|
|
59
|
+
*/
|
|
60
|
+
export declare const generateSecret: (length: number) => string;
|
|
61
|
+
/**
|
|
62
|
+
* Handles a password reset request for a user.
|
|
63
|
+
* @param email - The user's email.
|
|
64
|
+
* @param organization - The organization associated with the user.
|
|
65
|
+
* @returns The user object or null if no user was found.
|
|
66
|
+
*/
|
|
67
|
+
export declare const requestPasswordReset: (email: string) => Promise<User | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Resets a user's password.
|
|
70
|
+
* @param userId - The ID of the user.
|
|
71
|
+
* @param secret - The secret token associated with the user.
|
|
72
|
+
* @param newPassword - The new password to set.
|
|
73
|
+
* @returns The updated user or null if the reset failed.
|
|
74
|
+
*/
|
|
75
|
+
export declare const resetUserPassword: (userId: string | ObjectId, secret: string, newPassword: string) => Promise<User>;
|
|
76
|
+
type UserProvider<T extends SessionProviders['provider']> = T extends 'email' ? EmailPasswordSessionProvider : T extends 'google' ? GoogleSessionProvider : T extends 'github' ? GithubSessionProvider : SessionProviders;
|
|
77
|
+
/**
|
|
78
|
+
* Gets a user's provider.
|
|
79
|
+
* @param userId - The ID of the user.
|
|
80
|
+
* @param provider - The provider to get.
|
|
81
|
+
* @returns The user's provider.
|
|
82
|
+
*/
|
|
83
|
+
export declare const getUserProvider: <T extends SessionProviders["provider"]>(userId: string | ObjectId, provider: T, providerAccountId?: string) => Promise<UserProvider<T> | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Formats the given fields of a user's provider.
|
|
86
|
+
* @param provider - The provider to update.
|
|
87
|
+
* @param user - The user object.
|
|
88
|
+
* @param providerUpdate - The updates to apply to the provider.
|
|
89
|
+
* @returns The updated user provider.
|
|
90
|
+
*/
|
|
91
|
+
export declare const formatUserProviderUpdate: <T extends SessionProviders["provider"]>(provider: T, user: Partial<User>, providerUpdate: Partial<UserProvider<T>>) => User["provider"];
|
|
92
|
+
/**
|
|
93
|
+
* Updates the given fields of a user's provider.
|
|
94
|
+
* @param userId - The ID of the user.
|
|
95
|
+
* @param provider - The provider to update.
|
|
96
|
+
* @param providerUpdate - The updates to apply to the provider.
|
|
97
|
+
* @returns The updated user.
|
|
98
|
+
*/
|
|
99
|
+
export declare const updateUserProvider: <T extends SessionProviders["provider"]>(userId: string | ObjectId, provider: T, providerUpdate: Partial<UserProvider<T>>) => Promise<User>;
|
|
100
|
+
/**
|
|
101
|
+
* Updates the given fields of a user's provider.
|
|
102
|
+
* @param userId - The ID of the user.
|
|
103
|
+
* @param provider - The updates to apply to the provider.
|
|
104
|
+
* @returns The updated user.
|
|
105
|
+
*/
|
|
106
|
+
export declare const addUserProvider: (userId: string | ObjectId, provider: SessionProviders) => Promise<User>;
|
|
107
|
+
/**
|
|
108
|
+
* Removes a user's provider.
|
|
109
|
+
* @param userId - The ID of the user.
|
|
110
|
+
* @param provider - The provider to remove.
|
|
111
|
+
* @returns The updated user.
|
|
112
|
+
*/
|
|
113
|
+
export declare const removeUserProvider: (userId: string | ObjectId, provider: SessionProviders["provider"], providerAccountId?: string) => Promise<User>;
|
|
114
|
+
type TestUserPasswordResult = {
|
|
115
|
+
user: User | null;
|
|
116
|
+
error?: string;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Logs in a user.
|
|
120
|
+
* @param email - The user's email.
|
|
121
|
+
* @param password - The user's password.
|
|
122
|
+
* @returns The user object.
|
|
123
|
+
*/
|
|
124
|
+
export declare const testUserPassword: (email: string, password: string) => Promise<TestUserPasswordResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Hashes a user's password.
|
|
127
|
+
* @param userWithPasswordNotHashed - The user object with password not hashed.
|
|
128
|
+
* @returns The user object with hashed password.
|
|
129
|
+
*/
|
|
130
|
+
export declare const hashUserPassword: (userWithPasswordNotHashed: UserWithPasswordNotHashed) => Promise<Partial<User>>;
|
|
131
|
+
/**
|
|
132
|
+
* Changes a user's password.
|
|
133
|
+
* @param userId - The ID of the user.
|
|
134
|
+
* @param oldPassword - The user's old password.
|
|
135
|
+
* @param newPassword - The user's new password.
|
|
136
|
+
* @returns The updated user or null if the password change failed.
|
|
137
|
+
*/
|
|
138
|
+
export declare const changeUserPassword: (userId: string | ObjectId, oldPassword: string, newPassword: string) => Promise<User>;
|
|
139
|
+
/**
|
|
140
|
+
* Resets a user's password.
|
|
141
|
+
* @param userId - The ID of the user.
|
|
142
|
+
* @param secret - The secret token associated with the user.
|
|
143
|
+
* @param newPassword - The new password to set.
|
|
144
|
+
* @returns The updated user or null if the reset failed.
|
|
145
|
+
*/
|
|
146
|
+
export declare const resetPassword: (userId: string, password: string) => Promise<User>;
|
|
147
|
+
export {};
|
|
148
|
+
//# sourceMappingURL=sessionAuth.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionAuth.service.d.ts","sourceRoot":"","sources":["../../../src/services/sessionAuth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAU9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,UAAU,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAgB,IAAI,KAAG,OAAO,CAAC,IAAI,CAWzD,CAAC;AAEF,eAAO,MAAM,aAAa,SAAgB,IAAI,KAAG,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAe,QAAQ,QAAQ,IAAI,kBAyB1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAe,uBAAuB,kBAa/D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QACzB,uBAAuB,gBACd,YAAY,SAwB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,uBAAuB,SAIjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QACpB,uBAAuB,WACnB,OAAO,SAoCjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAS,QAAQ,SAI7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,WACf,MAAM,GAAG,QAAQ,UACjB,MAAM,KACb,OAAO,CAAC,IAAI,CAId,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,MAM/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UACxB,MAAM,KACZ,OAAO,CAAC,IAAI,GAAG,IAAI,CAUrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,WACpB,MAAM,GAAG,QAAQ,UACjB,MAAM,eACD,MAAM,KAClB,OAAO,CAAC,IAAI,CAiBd,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,SAAS,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,OAAO,GACzE,4BAA4B,GAC5B,CAAC,SAAS,QAAQ,GAChB,qBAAqB,GACrB,CAAC,SAAS,QAAQ,GAChB,qBAAqB,GACrB,gBAAgB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,SAAS,gBAAgB,CAAC,UAAU,CAAC,UAClE,MAAM,GAAG,QAAQ,YACf,CAAC,sBACS,MAAM,KACzB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAgBhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,CAAC,SAAS,gBAAgB,CAAC,UAAU,CAAC,YAE5B,CAAC,QACL,OAAO,CAAC,IAAI,CAAC,kBACH,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KACvC,IAAI,CAAC,UAAU,CA0BjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,CAAC,SAAS,gBAAgB,CAAC,UAAU,CAAC,UAE9B,MAAM,GAAG,QAAQ,YACf,CAAC,kBACK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KACvC,OAAO,CAAC,IAAI,CAsBd,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,GAAG,QAAQ,YACf,gBAAgB,KACzB,OAAO,CAAC,IAAI,CA2Bd,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,WACrB,MAAM,GAAG,QAAQ,YACf,gBAAgB,CAAC,UAAU,CAAC,sBAClB,MAAM,kBAgC3B,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UACpB,MAAM,YACH,MAAM,KACf,OAAO,CAAC,sBAAsB,CAiDhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,8BACA,yBAAyB,KACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAavB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,WACrB,MAAM,GAAG,QAAQ,eACZ,MAAM,eACN,MAAM,kBAiBpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,WAAkB,MAAM,YAAY,MAAM,kBAYnE,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { UserFilters } from '../utils/filtersAndPagination/getUserFiltersAndPagination';
|
|
2
|
+
import type { ObjectId } from 'mongoose';
|
|
3
|
+
import type { SessionProviders } from '../types/session.types';
|
|
4
|
+
import type { User, UserWithPasswordNotHashed } from '../types/user.types';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new user with password in the database and hashes the password.
|
|
7
|
+
* @param user - User object with password not hashed.
|
|
8
|
+
* @returns Created user object.
|
|
9
|
+
*/
|
|
10
|
+
export declare const createUser: (user: UserWithPasswordNotHashed) => Promise<User>;
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves a user by email.
|
|
13
|
+
* @param email - User's email.
|
|
14
|
+
* @returns User object or null if no user was found.
|
|
15
|
+
*/
|
|
16
|
+
export declare const getUserByEmail: (email: string) => Promise<User | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Retrieves users list by email.
|
|
19
|
+
* @param emails - Users email.
|
|
20
|
+
* @returns User object or null if no user was found.
|
|
21
|
+
*/
|
|
22
|
+
export declare const getUsersByEmails: (emails: string[]) => Promise<User[] | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a user exists by email.
|
|
25
|
+
* @param email - User's email.
|
|
26
|
+
* @returns True if the user exists, false otherwise.
|
|
27
|
+
*/
|
|
28
|
+
export declare const checkUserExists: (email: string) => Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves a user by ID.
|
|
31
|
+
* @param userId - User's ID.
|
|
32
|
+
* @returns User object or null if no user was found.
|
|
33
|
+
*/
|
|
34
|
+
export declare const getUserById: (userId: string | ObjectId) => Promise<User | null>;
|
|
35
|
+
/**
|
|
36
|
+
* Retrieves a user by ID.
|
|
37
|
+
* @param userId - User's ID.
|
|
38
|
+
* @returns User object or null if no user was found.
|
|
39
|
+
*/
|
|
40
|
+
export declare const getUsersByIds: (userIds: (string | ObjectId)[]) => Promise<User[] | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Retrieves a user by session token.
|
|
43
|
+
* @param sessionToken - The session token.
|
|
44
|
+
* @returns User object or null if no user was found.
|
|
45
|
+
*/
|
|
46
|
+
export declare const getUserBySession: (sessionToken: string) => Promise<import("mongoose").Document<unknown, {}, User> & User & Required<{
|
|
47
|
+
_id: import("mongoose").Schema.Types.ObjectId;
|
|
48
|
+
}> & {
|
|
49
|
+
__v?: number;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Retrieves a user by account.
|
|
53
|
+
* @param provider - The provider of the account.
|
|
54
|
+
* @param providerAccountId - The provider account ID.
|
|
55
|
+
* @returns User object or null if no user was found.
|
|
56
|
+
*/
|
|
57
|
+
export declare const getUserByAccount: (provider: SessionProviders["provider"], providerAccountId: string) => Promise<User>;
|
|
58
|
+
/**
|
|
59
|
+
* Finds users based on filters and pagination options.
|
|
60
|
+
* @param filters - MongoDB filter query.
|
|
61
|
+
* @param skip - Number of documents to skip.
|
|
62
|
+
* @param limit - Number of documents to limit.
|
|
63
|
+
* @returns List of users matching the filters.
|
|
64
|
+
*/
|
|
65
|
+
export declare const findUsers: (filters: UserFilters, skip: number, limit: number) => Promise<User[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Counts the total number of users that match the filters.
|
|
68
|
+
* @param filters - MongoDB filter query.
|
|
69
|
+
* @returns Total number of users.
|
|
70
|
+
*/
|
|
71
|
+
export declare const countUsers: (filters: UserFilters) => Promise<number>;
|
|
72
|
+
/**
|
|
73
|
+
* Updates a user's information.
|
|
74
|
+
* @param user - The user object.
|
|
75
|
+
* @param updates - The updates to apply to the user.
|
|
76
|
+
* @returns The updated user.
|
|
77
|
+
*/
|
|
78
|
+
export declare const updateUserById: (userId: string | ObjectId, updates: Partial<User>) => Promise<User>;
|
|
79
|
+
/**
|
|
80
|
+
* Deletes a user from the database.
|
|
81
|
+
* @param userId - The user object.
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
export declare const deleteUser: (userId: string | ObjectId) => Promise<import("mongoose").Document<unknown, {}, User> & User & Required<{
|
|
85
|
+
_id: import("mongoose").Schema.Types.ObjectId;
|
|
86
|
+
}> & {
|
|
87
|
+
__v?: number;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=user.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../src/services/user.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAM3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,IAAI,EAGJ,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAgB,yBAAyB,kBA2B/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,UAAiB,MAAM,KAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAEvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WACnB,MAAM,EAAE,KACf,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAEvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAiB,MAAM,qBAGlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,GAAG,QAAQ,KACxB,OAAO,CAAC,IAAI,GAAG,IAAI,CAErB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,YACf,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,KAC7B,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAEvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBAAwB,MAAM;;;;EAkB1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aACjB,gBAAgB,CAAC,UAAU,CAAC,qBACnB,MAAM,KACxB,OAAO,CAAC,IAAI,CAad,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YACX,WAAW,QACd,MAAM,SACL,MAAM,KACZ,OAAO,CAAC,IAAI,EAAE,CAEhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,YAAmB,WAAW,KAAG,OAAO,CAAC,MAAM,CAQrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,WACjB,MAAM,GAAG,QAAQ,WAChB,OAAO,CAAC,IAAI,CAAC,KACrB,OAAO,CAAC,IAAI,CAwBd,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,WAAkB,MAAM,GAAG,QAAQ;;;;EAUzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Routes.d.ts","sourceRoot":"","sources":["../../../src/types/Routes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DictionaryValue } from '@intlayer/core';
|
|
2
|
+
import type { Model, ObjectId, Document } from 'mongoose';
|
|
3
|
+
import type { Project } from './project.types';
|
|
4
|
+
import type { User } from './user.types';
|
|
5
|
+
export type DictionaryCreationData = {
|
|
6
|
+
projectIds: (Project['_id'] | string)[];
|
|
7
|
+
key: string;
|
|
8
|
+
content?: DictionaryValue;
|
|
9
|
+
title?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
version?: number;
|
|
12
|
+
filePath?: string;
|
|
13
|
+
};
|
|
14
|
+
export type DictionaryData = {
|
|
15
|
+
projectIds: (Project['_id'] | string)[];
|
|
16
|
+
key: string;
|
|
17
|
+
content: DictionaryValue[];
|
|
18
|
+
creatorId: User['_id'];
|
|
19
|
+
title?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
version?: number;
|
|
22
|
+
filePath?: Record<string, string>;
|
|
23
|
+
};
|
|
24
|
+
export type Dictionary = DictionaryData & {
|
|
25
|
+
_id: ObjectId;
|
|
26
|
+
createdAt: number;
|
|
27
|
+
updatedAt: number;
|
|
28
|
+
};
|
|
29
|
+
export type DictionaryAPI = Omit<DictionaryData, 'filePath' | 'content'> & {
|
|
30
|
+
content: DictionaryValue;
|
|
31
|
+
filePath?: string;
|
|
32
|
+
};
|
|
33
|
+
export type DictionaryDocument = Document<Dictionary> & Dictionary;
|
|
34
|
+
export type DictionaryModelType = Model<Dictionary>;
|
|
35
|
+
//# sourceMappingURL=dictionary.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dictionary.types.d.ts","sourceRoot":"","sources":["../../../src/types/dictionary.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG;IACzE,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AACnE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ObjectId, Document } from 'mongoose';
|
|
2
|
+
import type { User } from './user.types';
|
|
3
|
+
export type OrganizationCreationData = {
|
|
4
|
+
name: Organization['name'];
|
|
5
|
+
};
|
|
6
|
+
export type OrganizationData = {
|
|
7
|
+
name: string;
|
|
8
|
+
membersIds: User['_id'][];
|
|
9
|
+
adminsIds: User['_id'][];
|
|
10
|
+
};
|
|
11
|
+
export type Organization = OrganizationData & {
|
|
12
|
+
_id: ObjectId;
|
|
13
|
+
creatorId: User['_id'];
|
|
14
|
+
createdAt: number;
|
|
15
|
+
updatedAt: number;
|
|
16
|
+
};
|
|
17
|
+
export type OrganizationAPI = Omit<OrganizationData, 'adminsIds'> & {
|
|
18
|
+
adminsIds?: User['_id'][];
|
|
19
|
+
};
|
|
20
|
+
export type OrganizationDocument = Document<Organization> & Organization;
|
|
21
|
+
//# sourceMappingURL=organization.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.types.d.ts","sourceRoot":"","sources":["../../../src/types/organization.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG;IAClE,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Model, ObjectId, Document } from 'mongoose';
|
|
2
|
+
import type { Organization } from './organization.types';
|
|
3
|
+
import type { User } from './user.types';
|
|
4
|
+
export type ProjectCreationData = {
|
|
5
|
+
name: Project['name'];
|
|
6
|
+
};
|
|
7
|
+
export type ProjectData = {
|
|
8
|
+
organizationId: Organization['_id'];
|
|
9
|
+
name: string;
|
|
10
|
+
membersIds: User['_id'][];
|
|
11
|
+
adminsIds: User['_id'][];
|
|
12
|
+
creatorId: User['_id'];
|
|
13
|
+
};
|
|
14
|
+
export type AccessKeyData = {
|
|
15
|
+
name: string;
|
|
16
|
+
expiresAt?: Date;
|
|
17
|
+
};
|
|
18
|
+
export type OAuth2AccessData = AccessKeyData & {
|
|
19
|
+
clientId: string;
|
|
20
|
+
clientSecret: string;
|
|
21
|
+
accessToken: string[];
|
|
22
|
+
userId: User['_id'];
|
|
23
|
+
};
|
|
24
|
+
export type OAuth2Access = OAuth2AccessData & {
|
|
25
|
+
_id: ObjectId;
|
|
26
|
+
createdAt: number;
|
|
27
|
+
updatedAt: number;
|
|
28
|
+
};
|
|
29
|
+
export type Project = ProjectData & {
|
|
30
|
+
_id: ObjectId;
|
|
31
|
+
createdAt: number;
|
|
32
|
+
updatedAt: number;
|
|
33
|
+
oAuth2Access: OAuth2Access[];
|
|
34
|
+
};
|
|
35
|
+
export type ProjectAPI = Omit<ProjectData, 'adminsIds'> & {
|
|
36
|
+
adminsIds?: User['_id'][];
|
|
37
|
+
};
|
|
38
|
+
export type ProjectDocument = Document<Project> & Project;
|
|
39
|
+
export type ProjectModelType = Model<Project>;
|
|
40
|
+
//# sourceMappingURL=project.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.types.d.ts","sourceRoot":"","sources":["../../../src/types/project.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;IACxD,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface EmailPasswordSessionProvider {
|
|
2
|
+
provider: 'email';
|
|
3
|
+
secret?: string;
|
|
4
|
+
emailValidated?: Date;
|
|
5
|
+
passwordHash?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GoogleSessionProvider {
|
|
8
|
+
provider: 'google';
|
|
9
|
+
providerAccountId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GithubSessionProvider {
|
|
12
|
+
provider: 'github';
|
|
13
|
+
providerAccountId: string;
|
|
14
|
+
}
|
|
15
|
+
export type SessionProviders = EmailPasswordSessionProvider | GoogleSessionProvider | GithubSessionProvider;
|
|
16
|
+
export type Session = {
|
|
17
|
+
/** A randomly generated value that is used to get hold of the session. */
|
|
18
|
+
sessionToken: string;
|
|
19
|
+
/** Used to connect the session to a particular user */
|
|
20
|
+
expires: Date;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=session.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.types.d.ts","sourceRoot":"","sources":["../../../src/types/session.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GACxB,4BAA4B,GAC5B,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,OAAO,GAAG;IACpB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,OAAO,EAAE,IAAI,CAAC;CACf,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ObjectId, Model, Document } from 'mongoose';
|
|
2
|
+
import type { Session, SessionProviders } from './session.types';
|
|
3
|
+
export interface UserData {
|
|
4
|
+
email: string;
|
|
5
|
+
name: string;
|
|
6
|
+
phone?: string;
|
|
7
|
+
dateOfBirth?: Date;
|
|
8
|
+
}
|
|
9
|
+
export interface User extends UserData {
|
|
10
|
+
_id: ObjectId;
|
|
11
|
+
provider?: SessionProviders[];
|
|
12
|
+
session?: Session;
|
|
13
|
+
createdAt: number;
|
|
14
|
+
updatedAt: number;
|
|
15
|
+
}
|
|
16
|
+
export interface UserAPI extends Omit<User, 'provider' | 'session' | 'createdAt'> {
|
|
17
|
+
role: string;
|
|
18
|
+
}
|
|
19
|
+
export type UserDocument = Document<User> & User;
|
|
20
|
+
export type UserWithPasswordNotHashed = Partial<User> & Pick<User, 'email'> & {
|
|
21
|
+
password?: string;
|
|
22
|
+
};
|
|
23
|
+
export type UserModelType = Model<User> & {
|
|
24
|
+
login: (email: string, password: string) => Promise<User>;
|
|
25
|
+
changePassword: (userId: ObjectId | string, oldPassword: string, newPassword: string) => Promise<User>;
|
|
26
|
+
resetPassword: (userId: User['_id'], password: string) => Promise<User>;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=user.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/types/user.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,IAAK,SAAQ,QAAQ;IACpC,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OACf,SAAQ,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEjD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,GACnD,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG;IACxC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,cAAc,EAAE,CACd,MAAM,EAAE,QAAQ,GAAG,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const generateToken: import("csrf-csrf").CsrfTokenCreator, validateRequest: import("csrf-csrf").CsrfRequestValidator, doubleCsrfProtection: import("csrf-csrf").doubleCsrfProtection;
|
|
2
|
+
export { generateToken, validateRequest, doubleCsrfProtection };
|
|
3
|
+
//# sourceMappingURL=CSRF.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CSRF.d.ts","sourceRoot":"","sources":["../../../src/utils/CSRF.ts"],"names":[],"mappings":"AAGA,QAAA,MACE,aAAa,wCACb,eAAe,4CACf,oBAAoB,0CAMpB,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
2
|
+
import type { NextFunction, Request } from 'express';
|
|
3
|
+
export declare enum AccessRule {
|
|
4
|
+
none = "none",
|
|
5
|
+
authenticated = "authenticated",
|
|
6
|
+
admin = "admin",
|
|
7
|
+
noneAuthenticated = "none-authenticated",
|
|
8
|
+
hasOrganization = "has-organization",
|
|
9
|
+
hasProject = "has-project",
|
|
10
|
+
hasBearer = "has-bearer"
|
|
11
|
+
}
|
|
12
|
+
export declare const accessControl: <R extends AccessRule | AccessRule[]>(res: ResponseWithInformation, accessRule: R) => {
|
|
13
|
+
success: boolean;
|
|
14
|
+
message: string;
|
|
15
|
+
data: {
|
|
16
|
+
user: import("../export").User;
|
|
17
|
+
organization: import("../export").Organization;
|
|
18
|
+
project: import("../export").Project;
|
|
19
|
+
authType: "session" | "oauth2";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Middleware to control API access based on access rules.
|
|
24
|
+
*
|
|
25
|
+
* This middleware allows for multiple access rules to be passed, either as individual `AccessRule` or
|
|
26
|
+
* an array of `AccessRule` groups. Access is granted if at least one of the following conditions is met:
|
|
27
|
+
*
|
|
28
|
+
* - The user satisfies all `AccessRule` within any group of rules passed as an array.
|
|
29
|
+
* - The user satisfies any single `AccessRule` passed individually.
|
|
30
|
+
*
|
|
31
|
+
* Example usage:
|
|
32
|
+
*
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Allow access if the user has both `hasProject` and `hasOrganization`, or if they have `admin` rights
|
|
35
|
+
* app.use('/protected-route', apiAccessControlMiddleWare([AccessRule.hasProject, AccessRule.hasOrganization], AccessRule.admin));
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* In this example:
|
|
39
|
+
* - The user will be granted access if they have both `hasProject` and `hasOrganization`.
|
|
40
|
+
* - Alternatively, the user will also be granted access if they have `admin` privileges.
|
|
41
|
+
*
|
|
42
|
+
* @param {...(AccessRule | AccessRule[])[]} accessRules - One or more access rules or groups of access rules.
|
|
43
|
+
* - Single `AccessRule`: The user must satisfy this rule for access to be granted.
|
|
44
|
+
* - Array of `AccessRule`: The user must satisfy all rules in the array for access to be granted.
|
|
45
|
+
* @returns {Function} Express middleware function that checks if the user has the required access.
|
|
46
|
+
*
|
|
47
|
+
* If the user does not meet any of the provided access rules, a 403 Forbidden status is returned.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* // Example 1: Require admin privileges
|
|
51
|
+
* app.use('/admin', apiAccessControlMiddleWare(AccessRule.admin));
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Example 2: Require both project and organization access, or admin privileges
|
|
55
|
+
* app.use('/dashboard', apiAccessControlMiddleWare([AccessRule.hasProject, AccessRule.hasOrganization], AccessRule.admin));
|
|
56
|
+
*/
|
|
57
|
+
export declare const accessControlMiddleWare: (...accessRules: (AccessRule | AccessRule[])[]) => (_req: Request<unknown>, res: ResponseWithInformation, next: NextFunction) => void;
|
|
58
|
+
//# sourceMappingURL=accessControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessControl.d.ts","sourceRoot":"","sources":["../../../src/utils/accessControl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGrD,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,iBAAiB,uBAAuB;IACxC,eAAe,qBAAqB;IACpC,UAAU,gBAAgB;IAC1B,SAAS,eAAe;CACzB;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,OAC1D,uBAAuB,cAChB,CAAC;;;;;;;;;CA4Ed,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,uBAAuB,mBACjB,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,EAAE,YAEtC,OAAO,CAAC,OAAO,CAAC,OACjB,uBAAuB,QACtB,YAAY,KACjB,IAmCF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CookieOptions } from 'express';
|
|
2
|
+
export declare const MAX_AGE: number;
|
|
3
|
+
export declare enum Cookies {
|
|
4
|
+
JWT_AUTH = "intlayer_auth",
|
|
5
|
+
JWT_USER = "intlayer_user",
|
|
6
|
+
JWT_ORGANIZATION = "intlayer_organization",
|
|
7
|
+
JWT_PROJECT = "intlayer_project",
|
|
8
|
+
XSRF_TOKEN = "XSRF-TOKEN"
|
|
9
|
+
}
|
|
10
|
+
export declare const getCookieOptions: (overwriteOption?: Partial<CookieOptions>) => CookieOptions;
|
|
11
|
+
export declare const getClearCookieOptions: (overwriteOption?: Partial<CookieOptions>) => CookieOptions;
|
|
12
|
+
//# sourceMappingURL=cookies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../src/utils/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO,QAA0B,CAAC;AAE/C,oBAAY,OAAO;IACjB,QAAQ,kBAAkB;IAC1B,QAAQ,kBAAkB;IAC1B,gBAAgB,0BAA0B;IAC1C,WAAW,qBAAqB;IAChC,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,gBAAgB,qBACV,OAAO,CAAC,aAAa,CAAC,KACtC,aASD,CAAC;AAEH,eAAO,MAAM,qBAAqB,qBACf,OAAO,CAAC,aAAa,CAAC,KACtC,aAID,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Response } from 'express';
|
|
2
|
+
import { LanguageContent } from 'express-intlayer';
|
|
3
|
+
import { ErrorCodes } from './errorCodes';
|
|
4
|
+
import { AppError } from './ErrorsClass';
|
|
5
|
+
import { HttpStatusCodes } from '../../export';
|
|
6
|
+
export declare class ErrorHandler {
|
|
7
|
+
/**
|
|
8
|
+
* Handles generic error responses by formatting and sending a JSON response.
|
|
9
|
+
* @param res - The response object provided by Express.js.
|
|
10
|
+
* @param errorKey - A key representing the specific error.
|
|
11
|
+
* @param statusCode - (Optional) A specific HTTP status code to use for the response.
|
|
12
|
+
* @param isPaginatedResponse - Flag to determine if the response should be paginated.
|
|
13
|
+
*/
|
|
14
|
+
static handleGenericErrorResponse(res: Response, errorKey: ErrorCodes, errorDetails?: object, statusCode?: HttpStatusCodes, isPaginatedResponse?: boolean): void;
|
|
15
|
+
/**
|
|
16
|
+
* Handles application-specific error responses by formatting and sending a JSON response.
|
|
17
|
+
* @param res - The response object provided by Express.js.
|
|
18
|
+
* @param error - The error object.
|
|
19
|
+
* @param isPaginatedResponse - Flag to determine if the response should be paginated.
|
|
20
|
+
*/
|
|
21
|
+
static handleAppErrorResponse(res: Response, error: AppError, errorDetails?: object, isPaginatedResponse?: boolean): void;
|
|
22
|
+
/**
|
|
23
|
+
* Handles more customizable error responses with detailed error messages and codes.
|
|
24
|
+
* @param res - The response object.
|
|
25
|
+
* @param errorKey - Error code key used to fetch the corresponding message and default status.
|
|
26
|
+
* @param message - The localized error message object.
|
|
27
|
+
* @param statusCode - (Optional) HTTP status code, defaults to 500 if not specified.
|
|
28
|
+
* @param isPaginatedResponse - Determines if the error should be part of a paginated response.
|
|
29
|
+
*/
|
|
30
|
+
static handleCustomErrorResponse<T>(res: Response, errorKey: ErrorCodes | string, message: LanguageContent<string> | string, errorDetails?: object, statusCode?: HttpStatusCodes, isPaginatedResponse?: boolean): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ErrorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../../../src/utils/errors/ErrorHandler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAa,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;AAGpD,qBAAa,YAAY;IACvB;;;;;;OAMG;IACH,MAAM,CAAC,0BAA0B,CAC/B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,UAAU,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,eAAe,EAC5B,mBAAmB,GAAE,OAAe;IAgBtC;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAC3B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,QAAQ,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,mBAAmB,GAAE,OAAe;IAgBtC;;;;;;;OAOG;IACH,MAAM,CAAC,yBAAyB,CAAC,CAAC,EAChC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,UAAU,GAAG,MAAM,EAC7B,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,MAAM,EACzC,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,eAAe,EAC5B,mBAAmB,GAAE,OAAe;CA8BvC"}
|