@intlayer/backend 5.6.0 → 5.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/cjs/controllers/ai.controller.cjs +10 -7
- package/dist/cjs/controllers/ai.controller.cjs.map +1 -1
- package/dist/cjs/controllers/dictionary.controller.cjs +50 -58
- package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
- package/dist/cjs/controllers/eventListener.controller.cjs +2 -18
- package/dist/cjs/controllers/eventListener.controller.cjs.map +1 -1
- package/dist/cjs/controllers/newsletter.controller.cjs +38 -3
- package/dist/cjs/controllers/newsletter.controller.cjs.map +1 -1
- package/dist/cjs/controllers/oAuth2.controller.cjs +3 -3
- package/dist/cjs/controllers/oAuth2.controller.cjs.map +1 -1
- package/dist/cjs/controllers/organization.controller.cjs +92 -106
- package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
- package/dist/cjs/controllers/project.controller.cjs +81 -83
- package/dist/cjs/controllers/project.controller.cjs.map +1 -1
- package/dist/cjs/controllers/projectAccessKey.controller.cjs +30 -24
- package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
- package/dist/cjs/controllers/search.controller.cjs.map +1 -1
- package/dist/cjs/controllers/stripe.controller.cjs +4 -25
- package/dist/cjs/controllers/stripe.controller.cjs.map +1 -1
- package/dist/cjs/controllers/tag.controller.cjs +27 -16
- package/dist/cjs/controllers/tag.controller.cjs.map +1 -1
- package/dist/cjs/controllers/user.controller.cjs +88 -24
- package/dist/cjs/controllers/user.controller.cjs.map +1 -1
- package/dist/cjs/emails/InviteUserEmail.cjs +30 -12
- package/dist/cjs/emails/InviteUserEmail.cjs.map +1 -1
- package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs +266 -0
- package/dist/cjs/emails/OAuthTokenCreatedEmail.cjs.map +1 -0
- package/dist/cjs/emails/ResetUserPassword.cjs +27 -15
- package/dist/cjs/emails/ResetUserPassword.cjs.map +1 -1
- package/dist/cjs/emails/ValidateUserEmail.cjs +27 -36
- package/dist/cjs/emails/ValidateUserEmail.cjs.map +1 -1
- package/dist/cjs/emails/Welcome.cjs +27 -15
- package/dist/cjs/emails/Welcome.cjs.map +1 -1
- package/dist/cjs/emails/index.cjs +7 -5
- package/dist/cjs/emails/index.cjs.map +1 -1
- package/dist/cjs/export.cjs +2 -5
- package/dist/cjs/export.cjs.map +1 -1
- package/dist/cjs/index.cjs +61 -111
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/middlewares/oAuth2.middleware.cjs +26 -38
- package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
- package/dist/cjs/middlewares/request.middleware.cjs.map +1 -1
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs +17 -138
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
- package/dist/cjs/models/dictionary.model.cjs.map +1 -1
- package/dist/cjs/models/discussion.model.cjs.map +1 -1
- package/dist/cjs/models/oAuth2.model.cjs +4 -1
- package/dist/cjs/models/oAuth2.model.cjs.map +1 -1
- package/dist/cjs/models/organization.model.cjs +1 -4
- package/dist/cjs/models/organization.model.cjs.map +1 -1
- package/dist/cjs/models/project.model.cjs +4 -1
- package/dist/cjs/models/project.model.cjs.map +1 -1
- package/dist/cjs/models/session.model.cjs +34 -0
- package/dist/cjs/models/session.model.cjs.map +1 -0
- package/dist/cjs/models/tag.model.cjs.map +1 -1
- package/dist/cjs/models/user.model.cjs.map +1 -1
- package/dist/cjs/routes/ai.routes.cjs +3 -1
- package/dist/cjs/routes/ai.routes.cjs.map +1 -1
- package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
- package/dist/cjs/routes/eventListener.routes.cjs +1 -1
- package/dist/cjs/routes/eventListener.routes.cjs.map +1 -1
- package/dist/cjs/routes/newsletter.routes.cjs.map +1 -1
- package/dist/cjs/routes/organization.routes.cjs +8 -8
- package/dist/cjs/routes/organization.routes.cjs.map +1 -1
- package/dist/cjs/routes/project.routes.cjs +23 -14
- package/dist/cjs/routes/project.routes.cjs.map +1 -1
- package/dist/cjs/routes/search.routes.cjs.map +1 -1
- package/dist/cjs/routes/stripe.routes.cjs.map +1 -1
- package/dist/cjs/routes/tags.routes.cjs +4 -4
- package/dist/cjs/routes/tags.routes.cjs.map +1 -1
- package/dist/cjs/routes/user.routes.cjs +12 -12
- package/dist/cjs/routes/user.routes.cjs.map +1 -1
- package/dist/cjs/schemas/dictionary.schema.cjs +18 -1
- package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
- package/dist/cjs/schemas/discussion.schema.cjs +18 -1
- package/dist/cjs/schemas/discussion.schema.cjs.map +1 -1
- package/dist/cjs/schemas/oAuth2.schema.cjs +18 -1
- package/dist/cjs/schemas/oAuth2.schema.cjs.map +1 -1
- package/dist/cjs/schemas/organization.schema.cjs +21 -1
- package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
- package/dist/cjs/schemas/plans.schema.cjs +18 -1
- package/dist/cjs/schemas/plans.schema.cjs.map +1 -1
- package/dist/cjs/schemas/project.schema.cjs +19 -14
- package/dist/cjs/schemas/project.schema.cjs.map +1 -1
- package/dist/cjs/schemas/session.schema.cjs +63 -0
- package/dist/cjs/schemas/session.schema.cjs.map +1 -0
- package/dist/cjs/schemas/tag.schema.cjs +18 -1
- package/dist/cjs/schemas/tag.schema.cjs.map +1 -1
- package/dist/cjs/schemas/user.schema.cjs +18 -48
- package/dist/cjs/schemas/user.schema.cjs.map +1 -1
- package/dist/cjs/services/dictionary.service.cjs +6 -5
- package/dist/cjs/services/dictionary.service.cjs.map +1 -1
- package/dist/cjs/services/email.service.cjs +13 -0
- package/dist/cjs/services/email.service.cjs.map +1 -1
- package/dist/cjs/services/oAuth2.service.cjs +49 -10
- package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
- package/dist/cjs/services/organization.service.cjs +16 -15
- package/dist/cjs/services/organization.service.cjs.map +1 -1
- package/dist/cjs/services/project.service.cjs +1 -1
- package/dist/cjs/services/project.service.cjs.map +1 -1
- package/dist/cjs/services/projectAccessKey.service.cjs +17 -33
- package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -1
- package/dist/cjs/services/subscription.service.cjs +10 -10
- package/dist/cjs/services/subscription.service.cjs.map +1 -1
- package/dist/cjs/services/tag.service.cjs.map +1 -1
- package/dist/cjs/services/user.service.cjs +2 -42
- package/dist/cjs/services/user.service.cjs.map +1 -1
- package/dist/cjs/types/dictionary.types.cjs.map +1 -1
- package/dist/cjs/types/discussion.types.cjs.map +1 -1
- package/dist/cjs/types/oAuth2.types.cjs.map +1 -1
- package/dist/cjs/types/organization.types.cjs.map +1 -1
- package/dist/cjs/types/plan.types.cjs.map +1 -1
- package/dist/cjs/types/project.types.cjs.map +1 -1
- package/dist/cjs/types/session.types.cjs.map +1 -1
- package/dist/cjs/types/tag.types.cjs.map +1 -1
- package/dist/cjs/types/user.types.cjs.map +1 -1
- package/dist/cjs/utils/AI/aiSdk.cjs.map +1 -1
- package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs +14 -9
- package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs.map +1 -1
- package/dist/cjs/utils/AI/autocomplete/PROMPT.md +18 -2
- package/dist/cjs/utils/AI/autocomplete/index.cjs +8 -5
- package/dist/cjs/utils/AI/autocomplete/index.cjs.map +1 -1
- package/dist/cjs/utils/access.cjs +2 -0
- package/dist/cjs/utils/access.cjs.map +1 -0
- package/dist/cjs/utils/accessControl.cjs +7 -0
- package/dist/cjs/utils/accessControl.cjs.map +1 -1
- package/dist/cjs/utils/auth/getAuth.cjs +248 -0
- package/dist/cjs/utils/auth/getAuth.cjs.map +1 -0
- package/dist/cjs/utils/cors.cjs +55 -0
- package/dist/cjs/utils/cors.cjs.map +1 -0
- package/dist/cjs/utils/ensureMongoDocumentToObject.cjs.map +1 -1
- package/dist/cjs/utils/errors/ErrorHandler.cjs +2 -2
- package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
- package/dist/cjs/utils/errors/errorCodes.cjs +114 -153
- package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +1 -1
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/mapper/dictionary.cjs.map +1 -1
- package/dist/cjs/utils/mapper/organization.cjs +10 -8
- package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
- package/dist/cjs/utils/mapper/project.cjs +5 -18
- package/dist/cjs/utils/mapper/project.cjs.map +1 -1
- package/dist/cjs/utils/mapper/tag.cjs +4 -2
- package/dist/cjs/utils/mapper/tag.cjs.map +1 -1
- package/dist/cjs/utils/mapper/user.cjs +6 -3
- package/dist/cjs/utils/mapper/user.cjs.map +1 -1
- package/dist/cjs/utils/mergeFunctionTypes.cjs +17 -0
- package/dist/cjs/utils/mergeFunctionTypes.cjs.map +1 -0
- package/dist/cjs/utils/mongoDB/connectDB.cjs +3 -1
- package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
- package/dist/cjs/utils/mongoDB/types.cjs +17 -0
- package/dist/cjs/utils/mongoDB/types.cjs.map +1 -0
- package/dist/cjs/utils/oAuth2.cjs.map +1 -1
- package/dist/cjs/utils/permissions.cjs +166 -0
- package/dist/cjs/utils/permissions.cjs.map +1 -0
- package/dist/cjs/utils/rateLimiter.cjs +88 -0
- package/dist/cjs/utils/rateLimiter.cjs.map +1 -0
- package/dist/esm/controllers/ai.controller.mjs +10 -7
- package/dist/esm/controllers/ai.controller.mjs.map +1 -1
- package/dist/esm/controllers/dictionary.controller.mjs +50 -58
- package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
- package/dist/esm/controllers/eventListener.controller.mjs +2 -8
- package/dist/esm/controllers/eventListener.controller.mjs.map +1 -1
- package/dist/esm/controllers/newsletter.controller.mjs +38 -3
- package/dist/esm/controllers/newsletter.controller.mjs.map +1 -1
- package/dist/esm/controllers/oAuth2.controller.mjs +2 -2
- package/dist/esm/controllers/oAuth2.controller.mjs.map +1 -1
- package/dist/esm/controllers/organization.controller.mjs +95 -106
- package/dist/esm/controllers/organization.controller.mjs.map +1 -1
- package/dist/esm/controllers/project.controller.mjs +81 -83
- package/dist/esm/controllers/project.controller.mjs.map +1 -1
- package/dist/esm/controllers/projectAccessKey.controller.mjs +30 -24
- package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
- package/dist/esm/controllers/search.controller.mjs.map +1 -1
- package/dist/esm/controllers/stripe.controller.mjs +4 -25
- package/dist/esm/controllers/stripe.controller.mjs.map +1 -1
- package/dist/esm/controllers/tag.controller.mjs +27 -16
- package/dist/esm/controllers/tag.controller.mjs.map +1 -1
- package/dist/esm/controllers/user.controller.mjs +85 -22
- package/dist/esm/controllers/user.controller.mjs.map +1 -1
- package/dist/esm/emails/InviteUserEmail.mjs +32 -14
- package/dist/esm/emails/InviteUserEmail.mjs.map +1 -1
- package/dist/esm/emails/OAuthTokenCreatedEmail.mjs +254 -0
- package/dist/esm/emails/OAuthTokenCreatedEmail.mjs.map +1 -0
- package/dist/esm/emails/ResetUserPassword.mjs +29 -17
- package/dist/esm/emails/ResetUserPassword.mjs.map +1 -1
- package/dist/esm/emails/ValidateUserEmail.mjs +29 -38
- package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -1
- package/dist/esm/emails/Welcome.mjs +29 -17
- package/dist/esm/emails/Welcome.mjs.map +1 -1
- package/dist/esm/emails/index.mjs +3 -2
- package/dist/esm/emails/index.mjs.map +1 -1
- package/dist/esm/export.mjs +1 -3
- package/dist/esm/export.mjs.map +1 -1
- package/dist/esm/index.mjs +60 -111
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/middlewares/oAuth2.middleware.mjs +27 -36
- package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
- package/dist/esm/middlewares/request.middleware.mjs.map +1 -1
- package/dist/esm/middlewares/sessionAuth.middleware.mjs +16 -127
- package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
- package/dist/esm/models/dictionary.model.mjs.map +1 -1
- package/dist/esm/models/discussion.model.mjs.map +1 -1
- package/dist/esm/models/oAuth2.model.mjs +4 -1
- package/dist/esm/models/oAuth2.model.mjs.map +1 -1
- package/dist/esm/models/organization.model.mjs +1 -4
- package/dist/esm/models/organization.model.mjs.map +1 -1
- package/dist/esm/models/project.model.mjs +4 -1
- package/dist/esm/models/project.model.mjs.map +1 -1
- package/dist/esm/models/session.model.mjs +10 -0
- package/dist/esm/models/session.model.mjs.map +1 -0
- package/dist/esm/models/tag.model.mjs.map +1 -1
- package/dist/esm/models/user.model.mjs.map +1 -1
- package/dist/esm/routes/ai.routes.mjs +3 -1
- package/dist/esm/routes/ai.routes.mjs.map +1 -1
- package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
- package/dist/esm/routes/eventListener.routes.mjs +1 -1
- package/dist/esm/routes/eventListener.routes.mjs.map +1 -1
- package/dist/esm/routes/newsletter.routes.mjs.map +1 -1
- package/dist/esm/routes/organization.routes.mjs +8 -8
- package/dist/esm/routes/organization.routes.mjs.map +1 -1
- package/dist/esm/routes/project.routes.mjs +23 -14
- package/dist/esm/routes/project.routes.mjs.map +1 -1
- package/dist/esm/routes/search.routes.mjs.map +1 -1
- package/dist/esm/routes/stripe.routes.mjs.map +1 -1
- package/dist/esm/routes/tags.routes.mjs +4 -4
- package/dist/esm/routes/tags.routes.mjs.map +1 -1
- package/dist/esm/routes/user.routes.mjs +14 -14
- package/dist/esm/routes/user.routes.mjs.map +1 -1
- package/dist/esm/schemas/dictionary.schema.mjs +18 -1
- package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
- package/dist/esm/schemas/discussion.schema.mjs +18 -1
- package/dist/esm/schemas/discussion.schema.mjs.map +1 -1
- package/dist/esm/schemas/oAuth2.schema.mjs +18 -1
- package/dist/esm/schemas/oAuth2.schema.mjs.map +1 -1
- package/dist/esm/schemas/organization.schema.mjs +21 -1
- package/dist/esm/schemas/organization.schema.mjs.map +1 -1
- package/dist/esm/schemas/plans.schema.mjs +18 -1
- package/dist/esm/schemas/plans.schema.mjs.map +1 -1
- package/dist/esm/schemas/project.schema.mjs +21 -15
- package/dist/esm/schemas/project.schema.mjs.map +1 -1
- package/dist/esm/schemas/session.schema.mjs +39 -0
- package/dist/esm/schemas/session.schema.mjs.map +1 -0
- package/dist/esm/schemas/tag.schema.mjs +21 -4
- package/dist/esm/schemas/tag.schema.mjs.map +1 -1
- package/dist/esm/schemas/user.schema.mjs +18 -48
- package/dist/esm/schemas/user.schema.mjs.map +1 -1
- package/dist/esm/services/dictionary.service.mjs +6 -5
- package/dist/esm/services/dictionary.service.mjs.map +1 -1
- package/dist/esm/services/email.service.mjs +33 -16
- package/dist/esm/services/email.service.mjs.map +1 -1
- package/dist/esm/services/oAuth2.service.mjs +47 -10
- package/dist/esm/services/oAuth2.service.mjs.map +1 -1
- package/dist/esm/services/organization.service.mjs +16 -14
- package/dist/esm/services/organization.service.mjs.map +1 -1
- package/dist/esm/services/project.service.mjs +1 -1
- package/dist/esm/services/project.service.mjs.map +1 -1
- package/dist/esm/services/projectAccessKey.service.mjs +15 -31
- package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
- package/dist/esm/services/subscription.service.mjs +10 -10
- package/dist/esm/services/subscription.service.mjs.map +1 -1
- package/dist/esm/services/tag.service.mjs.map +1 -1
- package/dist/esm/services/user.service.mjs +2 -40
- package/dist/esm/services/user.service.mjs.map +1 -1
- package/dist/esm/types/user.types.mjs.map +1 -1
- package/dist/esm/utils/AI/aiSdk.mjs.map +1 -1
- package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs +14 -9
- package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs.map +1 -1
- package/dist/esm/utils/AI/autocomplete/PROMPT.md +18 -2
- package/dist/esm/utils/AI/autocomplete/index.mjs +8 -5
- package/dist/esm/utils/AI/autocomplete/index.mjs.map +1 -1
- package/dist/esm/utils/access.mjs +1 -0
- package/dist/esm/utils/access.mjs.map +1 -0
- package/dist/esm/utils/accessControl.mjs +7 -0
- package/dist/esm/utils/accessControl.mjs.map +1 -1
- package/dist/esm/utils/auth/getAuth.mjs +227 -0
- package/dist/esm/utils/auth/getAuth.mjs.map +1 -0
- package/dist/esm/utils/cors.mjs +31 -0
- package/dist/esm/utils/cors.mjs.map +1 -0
- package/dist/esm/utils/ensureMongoDocumentToObject.mjs.map +1 -1
- package/dist/esm/utils/errors/ErrorHandler.mjs +2 -2
- package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
- package/dist/esm/utils/errors/errorCodes.mjs +114 -153
- package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs +1 -1
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/mapper/dictionary.mjs.map +1 -1
- package/dist/esm/utils/mapper/organization.mjs +8 -7
- package/dist/esm/utils/mapper/organization.mjs.map +1 -1
- package/dist/esm/utils/mapper/project.mjs +5 -18
- package/dist/esm/utils/mapper/project.mjs.map +1 -1
- package/dist/esm/utils/mapper/tag.mjs +4 -2
- package/dist/esm/utils/mapper/tag.mjs.map +1 -1
- package/dist/esm/utils/mapper/user.mjs +6 -3
- package/dist/esm/utils/mapper/user.mjs.map +1 -1
- package/dist/esm/utils/mergeFunctionTypes.mjs +1 -0
- package/dist/esm/utils/mergeFunctionTypes.mjs.map +1 -0
- package/dist/esm/utils/mongoDB/connectDB.mjs +3 -1
- package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
- package/dist/esm/utils/mongoDB/types.mjs +1 -0
- package/dist/esm/utils/mongoDB/types.mjs.map +1 -0
- package/dist/esm/utils/oAuth2.mjs +3 -3
- package/dist/esm/utils/oAuth2.mjs.map +1 -1
- package/dist/esm/utils/permissions.mjs +138 -0
- package/dist/esm/utils/permissions.mjs.map +1 -0
- package/dist/esm/utils/rateLimiter.mjs +53 -0
- package/dist/esm/utils/rateLimiter.mjs.map +1 -0
- package/dist/types/controllers/ai.controller.d.ts +12 -10
- package/dist/types/controllers/ai.controller.d.ts.map +1 -1
- package/dist/types/controllers/dictionary.controller.d.ts +8 -9
- package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
- package/dist/types/controllers/eventListener.controller.d.ts +2 -3
- package/dist/types/controllers/eventListener.controller.d.ts.map +1 -1
- package/dist/types/controllers/newsletter.controller.d.ts +5 -6
- package/dist/types/controllers/newsletter.controller.d.ts.map +1 -1
- package/dist/types/controllers/oAuth2.controller.d.ts +3 -3
- package/dist/types/controllers/oAuth2.controller.d.ts.map +1 -1
- package/dist/types/controllers/organization.controller.d.ts +22 -23
- package/dist/types/controllers/organization.controller.d.ts.map +1 -1
- package/dist/types/controllers/project.controller.d.ts +13 -14
- package/dist/types/controllers/project.controller.d.ts.map +1 -1
- package/dist/types/controllers/projectAccessKey.controller.d.ts +5 -6
- package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
- package/dist/types/controllers/search.controller.d.ts +2 -3
- package/dist/types/controllers/search.controller.d.ts.map +1 -1
- package/dist/types/controllers/stripe.controller.d.ts +5 -6
- package/dist/types/controllers/stripe.controller.d.ts.map +1 -1
- package/dist/types/controllers/tag.controller.d.ts +9 -10
- package/dist/types/controllers/tag.controller.d.ts.map +1 -1
- package/dist/types/controllers/user.controller.d.ts +16 -19
- package/dist/types/controllers/user.controller.d.ts.map +1 -1
- package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
- package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +21 -0
- package/dist/types/emails/OAuthTokenCreatedEmail.d.ts.map +1 -0
- package/dist/types/emails/ResetUserPassword.d.ts.map +1 -1
- package/dist/types/emails/Welcome.d.ts.map +1 -1
- package/dist/types/emails/index.d.ts +3 -2
- package/dist/types/emails/index.d.ts.map +1 -1
- package/dist/types/export.d.ts +2 -3
- package/dist/types/export.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/middlewares/oAuth2.middleware.d.ts +1 -2
- package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
- package/dist/types/middlewares/request.middleware.d.ts +3 -3
- package/dist/types/middlewares/request.middleware.d.ts.map +1 -1
- package/dist/types/middlewares/sessionAuth.middleware.d.ts +3 -25
- package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
- package/dist/types/models/dictionary.model.d.ts +6 -5
- package/dist/types/models/dictionary.model.d.ts.map +1 -1
- package/dist/types/models/discussion.model.d.ts +7 -2
- package/dist/types/models/discussion.model.d.ts.map +1 -1
- package/dist/types/models/oAuth2.model.d.ts +3 -2
- package/dist/types/models/oAuth2.model.d.ts.map +1 -1
- package/dist/types/models/organization.model.d.ts +2 -12
- package/dist/types/models/organization.model.d.ts.map +1 -1
- package/dist/types/models/project.model.d.ts +2 -11
- package/dist/types/models/project.model.d.ts.map +1 -1
- package/dist/types/models/session.model.d.ts +3 -0
- package/dist/types/models/session.model.d.ts.map +1 -0
- package/dist/types/models/tag.model.d.ts.map +1 -1
- package/dist/types/models/user.model.d.ts.map +1 -1
- package/dist/types/routes/ai.routes.d.ts.map +1 -1
- package/dist/types/routes/organization.routes.d.ts +4 -4
- package/dist/types/routes/project.routes.d.ts +4 -4
- package/dist/types/routes/project.routes.d.ts.map +1 -1
- package/dist/types/routes/tags.routes.d.ts +2 -2
- package/dist/types/routes/user.routes.d.ts +6 -7
- package/dist/types/routes/user.routes.d.ts.map +1 -1
- package/dist/types/schemas/dictionary.schema.d.ts +6 -8
- package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
- package/dist/types/schemas/discussion.schema.d.ts +7 -5
- package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
- package/dist/types/schemas/oAuth2.schema.d.ts +4 -3
- package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
- package/dist/types/schemas/organization.schema.d.ts +6 -10
- package/dist/types/schemas/organization.schema.d.ts.map +1 -1
- package/dist/types/schemas/plans.schema.d.ts +6 -8
- package/dist/types/schemas/plans.schema.d.ts.map +1 -1
- package/dist/types/schemas/project.schema.d.ts +5 -17
- package/dist/types/schemas/project.schema.d.ts.map +1 -1
- package/dist/types/schemas/session.schema.d.ts +14 -0
- package/dist/types/schemas/session.schema.d.ts.map +1 -0
- package/dist/types/schemas/tag.schema.d.ts +6 -8
- package/dist/types/schemas/tag.schema.d.ts.map +1 -1
- package/dist/types/schemas/user.schema.d.ts +7 -5
- package/dist/types/schemas/user.schema.d.ts.map +1 -1
- package/dist/types/services/dictionary.service.d.ts +9 -9
- package/dist/types/services/dictionary.service.d.ts.map +1 -1
- package/dist/types/services/email.service.d.ts +4 -0
- package/dist/types/services/email.service.d.ts.map +1 -1
- package/dist/types/services/oAuth2.service.d.ts +23 -14
- package/dist/types/services/oAuth2.service.d.ts.map +1 -1
- package/dist/types/services/organization.service.d.ts +6 -12
- package/dist/types/services/organization.service.d.ts.map +1 -1
- package/dist/types/services/project.service.d.ts +5 -5
- package/dist/types/services/project.service.d.ts.map +1 -1
- package/dist/types/services/projectAccessKey.service.d.ts +5 -5
- package/dist/types/services/projectAccessKey.service.d.ts.map +1 -1
- package/dist/types/services/subscription.service.d.ts +1 -1
- package/dist/types/services/subscription.service.d.ts.map +1 -1
- package/dist/types/services/tag.service.d.ts +6 -6
- package/dist/types/services/tag.service.d.ts.map +1 -1
- package/dist/types/services/user.service.d.ts +7 -21
- package/dist/types/services/user.service.d.ts.map +1 -1
- package/dist/types/types/dictionary.types.d.ts +11 -9
- package/dist/types/types/dictionary.types.d.ts.map +1 -1
- package/dist/types/types/discussion.types.d.ts +5 -2
- package/dist/types/types/discussion.types.d.ts.map +1 -1
- package/dist/types/types/oAuth2.types.d.ts +5 -2
- package/dist/types/types/oAuth2.types.d.ts.map +1 -1
- package/dist/types/types/organization.types.d.ts +11 -8
- package/dist/types/types/organization.types.d.ts.map +1 -1
- package/dist/types/types/plan.types.d.ts +6 -3
- package/dist/types/types/plan.types.d.ts.map +1 -1
- package/dist/types/types/project.types.d.ts +25 -25
- package/dist/types/types/project.types.d.ts.map +1 -1
- package/dist/types/types/session.types.d.ts +31 -17
- package/dist/types/types/session.types.d.ts.map +1 -1
- package/dist/types/types/tag.types.d.ts +8 -6
- package/dist/types/types/tag.types.d.ts.map +1 -1
- package/dist/types/types/user.types.d.ts +14 -21
- package/dist/types/types/user.types.d.ts.map +1 -1
- package/dist/types/utils/AI/aiSdk.d.ts +2 -2
- package/dist/types/utils/AI/aiSdk.d.ts.map +1 -1
- package/dist/types/utils/AI/askDocQuestion/askDocQuestion.d.ts.map +1 -1
- package/dist/types/utils/AI/autocomplete/index.d.ts +4 -1
- package/dist/types/utils/AI/autocomplete/index.d.ts.map +1 -1
- package/dist/types/utils/access.d.ts +1 -0
- package/dist/types/utils/access.d.ts.map +1 -0
- package/dist/types/utils/accessControl.d.ts +9 -9
- package/dist/types/utils/accessControl.d.ts.map +1 -1
- package/dist/types/utils/auth/getAuth.d.ts +7 -0
- package/dist/types/utils/auth/getAuth.d.ts.map +1 -0
- package/dist/types/utils/cors.d.ts +3 -0
- package/dist/types/utils/cors.d.ts.map +1 -0
- package/dist/types/utils/ensureMongoDocumentToObject.d.ts +2 -2
- package/dist/types/utils/ensureMongoDocumentToObject.d.ts.map +1 -1
- package/dist/types/utils/errors/ErrorHandler.d.ts +1 -1
- package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
- package/dist/types/utils/errors/errorCodes.d.ts +57 -96
- package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +1 -1
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +1 -1
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +1 -1
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts +1 -1
- package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/mapper/dictionary.d.ts +1 -1
- package/dist/types/utils/mapper/dictionary.d.ts.map +1 -1
- package/dist/types/utils/mapper/organization.d.ts +3 -2
- package/dist/types/utils/mapper/organization.d.ts.map +1 -1
- package/dist/types/utils/mapper/project.d.ts +4 -5
- package/dist/types/utils/mapper/project.d.ts.map +1 -1
- package/dist/types/utils/mapper/tag.d.ts +1 -1
- package/dist/types/utils/mapper/tag.d.ts.map +1 -1
- package/dist/types/utils/mapper/user.d.ts +2 -2
- package/dist/types/utils/mapper/user.d.ts.map +1 -1
- package/dist/types/utils/mergeFunctionTypes.d.ts +18 -0
- package/dist/types/utils/mergeFunctionTypes.d.ts.map +1 -0
- package/dist/types/utils/mongoDB/connectDB.d.ts +1 -1
- package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
- package/dist/types/utils/mongoDB/types.d.ts +11 -0
- package/dist/types/utils/mongoDB/types.d.ts.map +1 -0
- package/dist/types/utils/permissions.d.ts +115 -0
- package/dist/types/utils/permissions.d.ts.map +1 -0
- package/dist/types/utils/rateLimiter.d.ts +4 -0
- package/dist/types/utils/rateLimiter.d.ts.map +1 -0
- package/package.json +14 -14
- package/dist/cjs/controllers/sessionAuth.controller.cjs +0 -839
- package/dist/cjs/controllers/sessionAuth.controller.cjs.map +0 -1
- package/dist/cjs/routes/sessionAuth.routes.cjs +0 -154
- package/dist/cjs/routes/sessionAuth.routes.cjs.map +0 -1
- package/dist/cjs/services/sessionAuth.service.cjs +0 -385
- package/dist/cjs/services/sessionAuth.service.cjs.map +0 -1
- package/dist/cjs/utils/CSRF.cjs +0 -50
- package/dist/cjs/utils/CSRF.cjs.map +0 -1
- package/dist/cjs/utils/cookies.cjs +0 -59
- package/dist/cjs/utils/cookies.cjs.map +0 -1
- package/dist/esm/controllers/sessionAuth.controller.mjs +0 -790
- package/dist/esm/controllers/sessionAuth.controller.mjs.map +0 -1
- package/dist/esm/routes/sessionAuth.routes.mjs +0 -142
- package/dist/esm/routes/sessionAuth.routes.mjs.map +0 -1
- package/dist/esm/services/sessionAuth.service.mjs +0 -337
- package/dist/esm/services/sessionAuth.service.mjs.map +0 -1
- package/dist/esm/utils/CSRF.mjs +0 -24
- package/dist/esm/utils/CSRF.mjs.map +0 -1
- package/dist/esm/utils/cookies.mjs +0 -32
- package/dist/esm/utils/cookies.mjs.map +0 -1
- package/dist/types/controllers/sessionAuth.controller.d.ts +0 -140
- package/dist/types/controllers/sessionAuth.controller.d.ts.map +0 -1
- package/dist/types/routes/sessionAuth.routes.d.ts +0 -77
- package/dist/types/routes/sessionAuth.routes.d.ts.map +0 -1
- package/dist/types/services/sessionAuth.service.d.ts +0 -141
- package/dist/types/services/sessionAuth.service.d.ts.map +0 -1
- package/dist/types/utils/CSRF.d.ts +0 -3
- package/dist/types/utils/CSRF.d.ts.map +0 -1
- package/dist/types/utils/cookies.d.ts +0 -12
- package/dist/types/utils/cookies.d.ts.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { logger } from "./../../logger/index.mjs";
|
|
2
2
|
import { DictionaryModel } from "./../../models/dictionary.model.mjs";
|
|
3
3
|
import { OAuth2AccessTokenModel } from "./../../models/oAuth2.model.mjs";
|
|
4
|
+
import { OrganizationModel } from "./../../models/organization.model.mjs";
|
|
4
5
|
import { ProjectModel } from "./../../models/project.model.mjs";
|
|
5
6
|
import { TagModel } from "./../../models/tag.model.mjs";
|
|
6
7
|
import { UserModel } from "./../../models/user.model.mjs";
|
|
@@ -16,7 +17,8 @@ const connectDB = async () => {
|
|
|
16
17
|
await OAuth2AccessTokenModel.createIndexes();
|
|
17
18
|
await TagModel.createIndexes();
|
|
18
19
|
await DictionaryModel.createIndexes();
|
|
19
|
-
|
|
20
|
+
await OrganizationModel.createIndexes();
|
|
21
|
+
return client.connection.getClient();
|
|
20
22
|
} catch (error) {
|
|
21
23
|
const errorMessage = `MongoDB connection error - ${error.message}`;
|
|
22
24
|
logger.error(errorMessage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { DictionaryModel } from '@models/dictionary.model';\nimport { OAuth2AccessTokenModel } from '@models/oAuth2.model';\nimport { ProjectModel } from '@models/project.model';\nimport { TagModel } from '@models/tag.model';\nimport { UserModel } from '@models/user.model';\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 // Recreate indexes for models\n await ProjectModel.syncIndexes();\n await UserModel.createIndexes();\n await OAuth2AccessTokenModel.createIndexes();\n await TagModel.createIndexes();\n await DictionaryModel.createIndexes();\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,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,OAAO,cAAc;AAEd,MAAM,YAAY,YAAY;AACnC,MAAI;AACF,UAAM,SAAS,MAAM,SAAS;AAAA,MAC5B,iBAAiB,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU;AAAA,IACpF;AAEA,WAAO,KAAK,mBAAmB;AAG/B,UAAM,aAAa,YAAY;AAC/B,UAAM,UAAU,cAAc;AAC9B,UAAM,uBAAuB,cAAc;AAC3C,UAAM,SAAS,cAAc;AAC7B,UAAM,gBAAgB,cAAc;
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mongoDB/connectDB.ts"],"sourcesContent":["import { logger } from '@logger';\nimport { DictionaryModel } from '@models/dictionary.model';\nimport { OAuth2AccessTokenModel } from '@models/oAuth2.model';\nimport { OrganizationModel } from '@models/organization.model';\nimport { ProjectModel } from '@models/project.model';\nimport { TagModel } from '@models/tag.model';\nimport { UserModel } from '@models/user.model';\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 // Recreate indexes for models\n await ProjectModel.syncIndexes();\n await UserModel.createIndexes();\n await OAuth2AccessTokenModel.createIndexes();\n await TagModel.createIndexes();\n await DictionaryModel.createIndexes();\n await OrganizationModel.createIndexes();\n\n // Return the underlying MongoDB client for better-auth\n return client.connection.getClient();\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,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,OAAO,cAAc;AAEd,MAAM,YAAY,YAAY;AACnC,MAAI;AACF,UAAM,SAAS,MAAM,SAAS;AAAA,MAC5B,iBAAiB,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU;AAAA,IACpF;AAEA,WAAO,KAAK,mBAAmB;AAG/B,UAAM,aAAa,YAAY;AAC/B,UAAM,UAAU,cAAc;AAC9B,UAAM,uBAAuB,cAAc;AAC3C,UAAM,SAAS,cAAc;AAC7B,UAAM,gBAAgB,cAAc;AACpC,UAAM,kBAAkB,cAAc;AAGtC,WAAO,OAAO,WAAW,UAAU;AAAA,EACrC,SAAS,OAAO;AACd,UAAM,eAAe,8BAA+B,MAAgB,OAAO;AAE3E,WAAO,MAAM,YAAY;AACzB,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
+
getAccessToken,
|
|
2
3
|
getClient,
|
|
4
|
+
getUserFromClient,
|
|
3
5
|
saveToken,
|
|
4
|
-
|
|
5
|
-
verifyScope,
|
|
6
|
-
getUserFromClient
|
|
6
|
+
verifyScope
|
|
7
7
|
} from "./../services/oAuth2.service.mjs";
|
|
8
8
|
const ACCESS_TOKEN_EXPIRES_IN = 60 * 60 * 2;
|
|
9
9
|
const getTokenExpireAt = () => new Date(Date.now() + ACCESS_TOKEN_EXPIRES_IN * 1e3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/oAuth2.ts"],"sourcesContent":["import {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/oAuth2.ts"],"sourcesContent":["import {\n getAccessToken,\n getClient,\n getUserFromClient,\n saveToken,\n verifyScope,\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,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;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,138 @@
|
|
|
1
|
+
const ROLE_POLICY = {
|
|
2
|
+
admin: {
|
|
3
|
+
"organization:read": () => true,
|
|
4
|
+
"organization:write": () => true,
|
|
5
|
+
"organization:admin": () => true,
|
|
6
|
+
"project:read": () => true,
|
|
7
|
+
"project:write": () => true,
|
|
8
|
+
"project:admin": () => true,
|
|
9
|
+
"dictionary:read": () => true,
|
|
10
|
+
"dictionary:write": () => true,
|
|
11
|
+
"dictionary:admin": () => true,
|
|
12
|
+
"tag:read": () => true,
|
|
13
|
+
"tag:write": () => true,
|
|
14
|
+
"tag:admin": () => true,
|
|
15
|
+
"user:read": () => true,
|
|
16
|
+
"user:write": () => true,
|
|
17
|
+
"user:admin": () => true
|
|
18
|
+
},
|
|
19
|
+
org_admin: {
|
|
20
|
+
"organization:read": () => true,
|
|
21
|
+
"organization:write": () => true,
|
|
22
|
+
"organization:admin": () => true,
|
|
23
|
+
"project:read": () => true,
|
|
24
|
+
"project:write": () => true,
|
|
25
|
+
"project:admin": () => true,
|
|
26
|
+
"dictionary:read": () => true,
|
|
27
|
+
"dictionary:write": () => true,
|
|
28
|
+
"dictionary:admin": () => true,
|
|
29
|
+
"tag:read": () => true,
|
|
30
|
+
"tag:write": () => true,
|
|
31
|
+
"tag:admin": () => true,
|
|
32
|
+
"user:write": ({
|
|
33
|
+
organization,
|
|
34
|
+
targetUserIds
|
|
35
|
+
}) => targetUserIds.every(
|
|
36
|
+
(targetUserId) => organization?.membersIds?.map(String).includes(String(targetUserId))
|
|
37
|
+
)
|
|
38
|
+
},
|
|
39
|
+
org_user: {
|
|
40
|
+
"organization:read": () => true,
|
|
41
|
+
"user:read": ({
|
|
42
|
+
organization,
|
|
43
|
+
targetUserIds
|
|
44
|
+
}) => targetUserIds.every(
|
|
45
|
+
(targetUserId) => organization?.membersIds?.map(String).includes(String(targetUserId))
|
|
46
|
+
)
|
|
47
|
+
},
|
|
48
|
+
project_admin: {
|
|
49
|
+
"project:read": () => true,
|
|
50
|
+
"project:write": () => true,
|
|
51
|
+
"project:admin": () => true,
|
|
52
|
+
"tag:read": () => true,
|
|
53
|
+
"tag:write": () => true,
|
|
54
|
+
"tag:admin": () => true,
|
|
55
|
+
"user:write": ({
|
|
56
|
+
project,
|
|
57
|
+
targetUserIds
|
|
58
|
+
}) => targetUserIds.every(
|
|
59
|
+
(targetUserId) => project?.membersIds?.map(String).includes(String(targetUserId))
|
|
60
|
+
)
|
|
61
|
+
},
|
|
62
|
+
project_user: {
|
|
63
|
+
"project:read": ({ user, project }) => project?.membersIds?.map(String).includes(String(user?.id)),
|
|
64
|
+
"dictionary:read": ({ user, project }) => project?.membersIds?.map(String).includes(String(user?.id)),
|
|
65
|
+
"dictionary:write": ({ user, project }) => project?.membersIds?.map(String).includes(String(user?.id)),
|
|
66
|
+
"tag:read": () => true,
|
|
67
|
+
"tag:write": () => true,
|
|
68
|
+
"tag:admin": ({ user, organization }) => organization?.adminsIds?.map(String).includes(String(user?.id)),
|
|
69
|
+
"user:read": ({
|
|
70
|
+
project,
|
|
71
|
+
targetUserIds
|
|
72
|
+
}) => targetUserIds.every(
|
|
73
|
+
(targetUserId) => project?.membersIds?.map(String).includes(String(targetUserId))
|
|
74
|
+
)
|
|
75
|
+
},
|
|
76
|
+
project_reviewer: {
|
|
77
|
+
"dictionary:read": ({ user, project }) => project?.membersIds?.map(String).includes(String(user?.id)),
|
|
78
|
+
"dictionary:write": ({ user, project }) => project?.membersIds?.map(String).includes(String(user?.id)),
|
|
79
|
+
"tag:read": () => true
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const getSessionRoles = ({
|
|
83
|
+
user,
|
|
84
|
+
organization,
|
|
85
|
+
project
|
|
86
|
+
}) => {
|
|
87
|
+
const roles = [];
|
|
88
|
+
if (!user) {
|
|
89
|
+
return roles;
|
|
90
|
+
}
|
|
91
|
+
const isUserAdmin = user.role === "admin";
|
|
92
|
+
if (isUserAdmin) {
|
|
93
|
+
roles.push("admin");
|
|
94
|
+
}
|
|
95
|
+
if (!organization) {
|
|
96
|
+
return roles;
|
|
97
|
+
}
|
|
98
|
+
const isOrganizationAdmin = organization.adminsIds?.map(String).includes(String(user.id));
|
|
99
|
+
if (isOrganizationAdmin) {
|
|
100
|
+
roles.push("org_admin");
|
|
101
|
+
}
|
|
102
|
+
const isOrganizationMember = organization.membersIds?.map(String).includes(String(user.id));
|
|
103
|
+
if (isOrganizationMember) {
|
|
104
|
+
roles.push("org_user");
|
|
105
|
+
}
|
|
106
|
+
if (!project) {
|
|
107
|
+
return roles;
|
|
108
|
+
}
|
|
109
|
+
const isProjectAdmin = project.adminsIds?.map(String).includes(String(user.id));
|
|
110
|
+
if (isProjectAdmin) {
|
|
111
|
+
roles.push("project_admin");
|
|
112
|
+
}
|
|
113
|
+
const isProjectMember = project?.membersIds?.map(String).includes(String(user.id));
|
|
114
|
+
if (isProjectMember) {
|
|
115
|
+
roles.push("project_user");
|
|
116
|
+
}
|
|
117
|
+
return roles;
|
|
118
|
+
};
|
|
119
|
+
const computeEffectivePermission = (roles) => Array.from(
|
|
120
|
+
new Set(
|
|
121
|
+
roles.flatMap((role) => Object.keys(ROLE_POLICY[role]))
|
|
122
|
+
)
|
|
123
|
+
);
|
|
124
|
+
const intersectPermissions = (permissions1, permissions2) => permissions1.filter((permission) => permissions2.includes(permission));
|
|
125
|
+
const hasPermission = (roles, permission) => {
|
|
126
|
+
const rolesCheck = roles.map(
|
|
127
|
+
(role) => ROLE_POLICY[role]?.[permission] ?? (() => false)
|
|
128
|
+
);
|
|
129
|
+
return (args) => rolesCheck.some((check) => check(args));
|
|
130
|
+
};
|
|
131
|
+
export {
|
|
132
|
+
ROLE_POLICY,
|
|
133
|
+
computeEffectivePermission,
|
|
134
|
+
getSessionRoles,
|
|
135
|
+
hasPermission,
|
|
136
|
+
intersectPermissions
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=permissions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/permissions.ts"],"sourcesContent":["import { Dictionary, Organization, Project, Tag, User } from '@/export';\nimport { SessionContext } from '@/types/session.types';\n\n/**\n * @description\n * A named grouping of privileges (e.g. `\"org_admin\"`).\n * Users are *granted* one or more Roles.\n */\nexport type Roles =\n | 'admin'\n | 'org_admin'\n | 'org_user'\n | 'project_admin'\n | 'project_user'\n | 'project_reviewer';\n\n/**\n * @description\n * An atomic operation that can be performed on a resource.\n * - **read**: view or list\n * - **write**: create or update\n * - **admin**: delete or change permissions\n */\nexport type Action = 'read' | 'write' | 'admin';\n\n/**\n * @description\n * A first‑class entity in your domain model that you want to protect.\n */\nexport type Resource = {\n organization: Organization;\n project: Project;\n dictionary: Dictionary;\n tag: Tag;\n user: User;\n};\n\n/**\n * @description\n * A literal string combining a Resource and an Action, e.g. `\"project:write\"`.\n * This is the *unit* checked at runtime in your middleware.\n */\nexport type Permission = `${keyof Resource}:${Action}`;\n\ntype CheckPrivilege = (\n args: any\n) => boolean | undefined | Promise<boolean> | Promise<undefined>;\n\ntype RolePolicy = Record<Roles, Partial<Record<Permission, CheckPrivilege>>>;\n\nexport const ROLE_POLICY = {\n admin: {\n 'organization:read': () => true,\n 'organization:write': () => true,\n 'organization:admin': () => true,\n 'project:read': () => true,\n 'project:write': () => true,\n 'project:admin': () => true,\n 'dictionary:read': () => true,\n 'dictionary:write': () => true,\n 'dictionary:admin': () => true,\n 'tag:read': () => true,\n 'tag:write': () => true,\n 'tag:admin': () => true,\n 'user:read': () => true,\n 'user:write': () => true,\n 'user:admin': () => true,\n },\n org_admin: {\n 'organization:read': () => true,\n 'organization:write': () => true,\n 'organization:admin': () => true,\n\n 'project:read': () => true,\n 'project:write': () => true,\n 'project:admin': () => true,\n 'dictionary:read': () => true,\n 'dictionary:write': () => true,\n 'dictionary:admin': () => true,\n 'tag:read': () => true,\n 'tag:write': () => true,\n 'tag:admin': () => true,\n\n 'user:write': ({\n organization,\n targetUserIds,\n }: SessionContext & { targetUserIds: User['id'][] }) =>\n targetUserIds.every((targetUserId) =>\n organization?.membersIds?.map(String).includes(String(targetUserId))\n ),\n },\n org_user: {\n 'organization:read': () => true,\n\n 'user:read': ({\n organization,\n targetUserIds,\n }: SessionContext & { targetUserIds: User['id'][] }) =>\n targetUserIds.every((targetUserId) =>\n organization?.membersIds?.map(String).includes(String(targetUserId))\n ),\n },\n project_admin: {\n 'project:read': () => true,\n 'project:write': () => true,\n 'project:admin': () => true,\n 'tag:read': () => true,\n 'tag:write': () => true,\n 'tag:admin': () => true,\n\n 'user:write': ({\n project,\n targetUserIds,\n }: SessionContext & { targetUserIds: User['id'][] }) =>\n targetUserIds.every((targetUserId) =>\n project?.membersIds?.map(String).includes(String(targetUserId))\n ),\n },\n project_user: {\n 'project:read': ({ user, project }: SessionContext) =>\n project?.membersIds?.map(String).includes(String(user?.id)),\n\n 'dictionary:read': ({ user, project }: SessionContext) =>\n project?.membersIds?.map(String).includes(String(user?.id)),\n 'dictionary:write': ({ user, project }: SessionContext) =>\n project?.membersIds?.map(String).includes(String(user?.id)),\n\n 'tag:read': () => true,\n 'tag:write': () => true,\n 'tag:admin': ({ user, organization }: SessionContext) =>\n organization?.adminsIds?.map(String).includes(String(user?.id)),\n\n 'user:read': ({\n project,\n targetUserIds,\n }: SessionContext & { targetUserIds: User['id'][] }) =>\n targetUserIds.every((targetUserId) =>\n project?.membersIds?.map(String).includes(String(targetUserId))\n ),\n },\n project_reviewer: {\n 'dictionary:read': ({ user, project }: SessionContext) =>\n project?.membersIds?.map(String).includes(String(user?.id)),\n 'dictionary:write': ({ user, project }: SessionContext) =>\n project?.membersIds?.map(String).includes(String(user?.id)),\n\n 'tag:read': () => true,\n },\n} as const satisfies RolePolicy;\n\nexport const getSessionRoles = ({\n user,\n organization,\n project,\n}: SessionContext): Roles[] => {\n const roles: Roles[] = [];\n\n if (!user) {\n return roles;\n }\n\n const isUserAdmin = user.role === 'admin';\n\n if (isUserAdmin) {\n roles.push('admin');\n }\n\n if (!organization) {\n return roles;\n }\n\n const isOrganizationAdmin = organization.adminsIds\n ?.map(String)\n .includes(String(user!.id));\n\n if (isOrganizationAdmin) {\n roles.push('org_admin');\n }\n\n const isOrganizationMember = organization.membersIds\n ?.map(String)\n .includes(String(user!.id));\n\n if (isOrganizationMember) {\n roles.push('org_user');\n }\n\n if (!project) {\n return roles;\n }\n\n const isProjectAdmin = project.adminsIds\n ?.map(String)\n .includes(String(user!.id));\n\n if (isProjectAdmin) {\n roles.push('project_admin');\n }\n\n const isProjectMember = project?.membersIds\n ?.map(String)\n .includes(String(user!.id));\n\n if (isProjectMember) {\n roles.push('project_user');\n }\n\n // const isProjectReviewer =\n // session.project?.reviewersIds?.includes(session.user!.id);\n\n // if (isProjectReviewer) {\n // roles.push('project_reviewer');\n // }\n\n return roles;\n};\n\nexport const computeEffectivePermission = (roles: Roles[]): Permission[] =>\n Array.from(\n new Set(\n roles.flatMap((role) => Object.keys(ROLE_POLICY[role]) as Permission[])\n )\n );\n\n/**\n * Intersect two permission lists\n * @param permissionList1 - The first permission list\n * @param permissionList2 - The second permission list\n * @returns The intersection of the two permission lists (only permissions present in both)\n */\nexport const intersectPermissions = (\n permissions1: Permission[],\n permissions2: Permission[]\n): Permission[] =>\n permissions1.filter((permission) => permissions2.includes(permission));\n\ntype PermissionResult<\n R extends Roles,\n P extends Permission,\n> = (typeof ROLE_POLICY)[R] extends infer RolePerms\n ? RolePerms extends Record<string, (args: any) => any>\n ? P extends keyof RolePerms\n ? RolePerms[P] extends undefined\n ? never\n : RolePerms[P]\n : never\n : never\n : never;\n\nexport const hasPermission = <P extends Permission>(\n roles: Roles[],\n permission: P\n): PermissionResult<Roles, P> => {\n const rolesCheck: any = roles.map(\n (role) =>\n ROLE_POLICY[role]?.[\n permission as keyof (typeof ROLE_POLICY)[typeof role]\n ] ?? (() => false)\n ) as unknown as PermissionResult<Roles, P>[];\n\n return ((args: any) => rolesCheck.some((check: any) => check(args))) as any;\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import rateLimit from "express-rate-limit";
|
|
2
|
+
import { ErrorHandler } from "./errors/index.mjs";
|
|
3
|
+
const ipLimiter = rateLimit({
|
|
4
|
+
windowMs: 60 * 1e3,
|
|
5
|
+
// 1-minute window
|
|
6
|
+
limit: 500,
|
|
7
|
+
// 500 requests / IP / window
|
|
8
|
+
standardHeaders: "draft-8",
|
|
9
|
+
legacyHeaders: false,
|
|
10
|
+
// Use a custom key generator that handles proxy headers securely
|
|
11
|
+
keyGenerator: (req) => {
|
|
12
|
+
return req.ip ?? req.socket?.remoteAddress ?? "unknown";
|
|
13
|
+
},
|
|
14
|
+
handler: (req, res, _next) => {
|
|
15
|
+
const { limit, remaining, resetTime } = req.rateLimit;
|
|
16
|
+
ErrorHandler.handleGenericErrorResponse(res, "RATE_LIMIT_EXCEEDED", {
|
|
17
|
+
limit: `${limit} per minute`,
|
|
18
|
+
retryAfter: Math.ceil((resetTime.getTime() - Date.now()) / 1e3),
|
|
19
|
+
remaining
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const unauthenticatedChatBotLimiter = rateLimit({
|
|
24
|
+
windowMs: 60 * 60 * 1e3,
|
|
25
|
+
// 1-hour window
|
|
26
|
+
limit: 3,
|
|
27
|
+
// 3 requests / IP / window
|
|
28
|
+
standardHeaders: "draft-8",
|
|
29
|
+
skip: (_req, res) => Boolean(res.locals.user),
|
|
30
|
+
// authenticated? then skip
|
|
31
|
+
legacyHeaders: false,
|
|
32
|
+
// Use a custom key generator that handles proxy headers securely
|
|
33
|
+
keyGenerator: (req) => {
|
|
34
|
+
return req.ip ?? req.socket?.remoteAddress ?? "unknown";
|
|
35
|
+
},
|
|
36
|
+
handler: (req, res) => {
|
|
37
|
+
const { limit, remaining, resetTime } = req.rateLimit;
|
|
38
|
+
ErrorHandler.handleGenericErrorResponse(
|
|
39
|
+
res,
|
|
40
|
+
"RATE_LIMIT_EXCEEDED_UNAUTHENTICATED",
|
|
41
|
+
{
|
|
42
|
+
limit: `${limit} per hour`,
|
|
43
|
+
retryAfter: Math.ceil((resetTime.getTime() - Date.now()) / 1e3),
|
|
44
|
+
remaining
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
export {
|
|
50
|
+
ipLimiter,
|
|
51
|
+
unauthenticatedChatBotLimiter
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=rateLimiter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/rateLimiter.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from 'express';\nimport rateLimit from 'express-rate-limit';\nimport { ErrorHandler } from './errors';\n\n// -------------------------------------------------------------\n// Create the rate-limiter instances once at module load-time so\n// that the hit counters are shared across every incoming request.\n// -------------------------------------------------------------\n\nexport const ipLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => void | Promise<void> = rateLimit({\n windowMs: 60 * 1000, // 1-minute window\n limit: 500, // 500 requests / IP / window\n standardHeaders: 'draft-8',\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Use the real IP address, falling back to socket remote address\n return req.ip ?? req.socket?.remoteAddress ?? 'unknown';\n },\n handler: (req, res, _next) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(res, 'RATE_LIMIT_EXCEEDED', {\n limit: `${limit} per minute`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n });\n },\n});\n\nexport const unauthenticatedChatBotLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => any = rateLimit({\n windowMs: 60 * 60 * 1000, // 1-hour window\n limit: 3, // 3 requests / IP / window\n standardHeaders: 'draft-8',\n skip: (_req, res) => Boolean(res.locals.user), // authenticated? then skip\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Use the real IP address, falling back to socket remote address\n return req.ip ?? req.socket?.remoteAddress ?? 'unknown';\n },\n handler: (req, res) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'RATE_LIMIT_EXCEEDED_UNAUTHENTICATED',\n {\n limit: `${limit} per hour`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n }\n );\n },\n});\n"],"mappings":"AACA,OAAO,eAAe;AACtB,SAAS,oBAAoB;AAOtB,MAAM,YAIe,UAAU;AAAA,EACpC,UAAU,KAAK;AAAA;AAAA,EACf,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,IAAI,MAAM,IAAI,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EACA,SAAS,CAAC,KAAK,KAAK,UAAU;AAC5B,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa,2BAA2B,KAAK,uBAAuB;AAAA,MAClE,OAAO,GAAG,KAAK;AAAA,MACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,MAChE;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,MAAM,gCAIF,UAAU;AAAA,EACnB,UAAU,KAAK,KAAK;AAAA;AAAA,EACpB,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,MAAM,CAAC,MAAM,QAAQ,QAAQ,IAAI,OAAO,IAAI;AAAA;AAAA,EAC5C,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,IAAI,MAAM,IAAI,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EACA,SAAS,CAAC,KAAK,QAAQ;AACrB,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,QACE,OAAO,GAAG,KAAK;AAAA,QACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,QAChE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import type { Tag } from '../types/tag.types';
|
|
2
2
|
import { type KeyPath } from '@intlayer/core';
|
|
3
|
-
import type { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
4
3
|
import { type AIOptions, type ChatCompletionRequestMessage } from '../utils/AI/aiSdk';
|
|
5
4
|
import * as askDocQuestionUtil from '../utils/AI/askDocQuestion/askDocQuestion';
|
|
6
5
|
import * as auditContentDeclarationUtil from '../utils/AI/auditDictionary';
|
|
7
6
|
import * as customQueryUtil from '../utils/AI/customQuery';
|
|
8
7
|
import * as translateJSONUtil from '../utils/AI/translateJSON';
|
|
9
8
|
import { type ResponseData } from '../utils/responseData';
|
|
10
|
-
import type { NextFunction, Request } from 'express';
|
|
9
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
11
10
|
import type { Locales } from 'intlayer';
|
|
12
11
|
type ReplaceAIConfigByOptions<T> = Omit<T, 'aiConfig'> & {
|
|
13
12
|
aiOptions?: AIOptions;
|
|
14
13
|
};
|
|
15
14
|
export type CustomQueryBody = ReplaceAIConfigByOptions<customQueryUtil.CustomQueryOptions>;
|
|
16
15
|
export type CustomQueryResult = ResponseData<customQueryUtil.CustomQueryResultData>;
|
|
17
|
-
export declare const customQuery: (req: Request<AuditContentDeclarationBody>, res:
|
|
16
|
+
export declare const customQuery: (req: Request<AuditContentDeclarationBody>, res: Response<CustomQueryResult>, _next: NextFunction) => Promise<void>;
|
|
18
17
|
export type TranslateJSONBody = Omit<ReplaceAIConfigByOptions<translateJSONUtil.TranslateJSONOptions>, 'tags'> & {
|
|
19
18
|
tagsKeys?: string[];
|
|
20
19
|
};
|
|
21
20
|
export type TranslateJSONResult = ResponseData<translateJSONUtil.TranslateJSONResultData>;
|
|
22
|
-
export declare const translateJSON: (req: Request<AuditContentDeclarationBody>, res:
|
|
21
|
+
export declare const translateJSON: (req: Request<AuditContentDeclarationBody>, res: Response<TranslateJSONResult>, _next: NextFunction) => Promise<void>;
|
|
23
22
|
export type AuditContentDeclarationBody = {
|
|
24
23
|
aiOptions?: AIOptions;
|
|
25
24
|
locales: Locales[];
|
|
@@ -32,7 +31,7 @@ export type AuditContentDeclarationResult = ResponseData<auditContentDeclaration
|
|
|
32
31
|
/**
|
|
33
32
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
34
33
|
*/
|
|
35
|
-
export declare const auditContentDeclaration: (req: Request<AuditContentDeclarationBody>, res:
|
|
34
|
+
export declare const auditContentDeclaration: (req: Request<AuditContentDeclarationBody>, res: Response<AuditContentDeclarationResult>, _next: NextFunction) => Promise<void>;
|
|
36
35
|
export type AuditContentDeclarationFieldBody = {
|
|
37
36
|
aiOptions?: AIOptions;
|
|
38
37
|
locales: Locales[];
|
|
@@ -45,7 +44,7 @@ export type AuditContentDeclarationFieldResult = ResponseData<auditContentDeclar
|
|
|
45
44
|
/**
|
|
46
45
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
47
46
|
*/
|
|
48
|
-
export declare const auditContentDeclarationField: (req: Request<AuditContentDeclarationFieldBody>, res:
|
|
47
|
+
export declare const auditContentDeclarationField: (req: Request<AuditContentDeclarationFieldBody>, res: Response<AuditContentDeclarationFieldResult>, _next: NextFunction) => Promise<void>;
|
|
49
48
|
export type AuditContentDeclarationMetadataBody = {
|
|
50
49
|
aiOptions?: AIOptions;
|
|
51
50
|
fileContent: string;
|
|
@@ -54,7 +53,7 @@ export type AuditContentDeclarationMetadataResult = ResponseData<auditContentDec
|
|
|
54
53
|
/**
|
|
55
54
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
56
55
|
*/
|
|
57
|
-
export declare const auditContentDeclarationMetadata: (req: Request<AuditContentDeclarationMetadataBody>, res:
|
|
56
|
+
export declare const auditContentDeclarationMetadata: (req: Request<AuditContentDeclarationMetadataBody>, res: Response<AuditContentDeclarationMetadataResult>, _next: NextFunction) => Promise<void>;
|
|
58
57
|
export type AuditTagBody = {
|
|
59
58
|
aiOptions?: AIOptions;
|
|
60
59
|
tag: Tag;
|
|
@@ -63,20 +62,23 @@ export type AuditTagResult = ResponseData<auditContentDeclarationUtil.AuditFileR
|
|
|
63
62
|
/**
|
|
64
63
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
65
64
|
*/
|
|
66
|
-
export declare const auditTag: (req: Request<undefined, undefined, AuditTagBody>, res:
|
|
65
|
+
export declare const auditTag: (req: Request<undefined, undefined, AuditTagBody>, res: Response<AuditTagResult>, _next: NextFunction) => Promise<void>;
|
|
67
66
|
export type AskDocQuestionBody = {
|
|
68
67
|
messages: ChatCompletionRequestMessage[];
|
|
69
68
|
discutionId: string;
|
|
70
69
|
};
|
|
71
70
|
export type AskDocQuestionResult = ResponseData<askDocQuestionUtil.AskDocQuestionResult>;
|
|
72
|
-
export declare const askDocQuestion: (req: Request<undefined, undefined, AskDocQuestionBody>, res:
|
|
71
|
+
export declare const askDocQuestion: (req: Request<undefined, undefined, AskDocQuestionBody>, res: Response<AskDocQuestionResult>) => Promise<void>;
|
|
73
72
|
export type AutocompleteBody = {
|
|
74
73
|
text: string;
|
|
75
74
|
aiOptions?: AIOptions;
|
|
75
|
+
contextBefore?: string;
|
|
76
|
+
currentLine?: string;
|
|
77
|
+
contextAfter?: string;
|
|
76
78
|
};
|
|
77
79
|
export type AutocompleteResponse = ResponseData<{
|
|
78
80
|
autocompletion: string;
|
|
79
81
|
}>;
|
|
80
|
-
export declare const autocomplete: (req: Request<undefined, undefined, AutocompleteBody>, res:
|
|
82
|
+
export declare const autocomplete: (req: Request<undefined, undefined, AutocompleteBody>, res: Response<AutocompleteResponse>) => Promise<void>;
|
|
81
83
|
export {};
|
|
82
84
|
//# sourceMappingURL=ai.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/ai.controller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ai.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/ai.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import type { Dictionary, DictionaryAPI, DictionaryCreationData } from '../types/dictionary.types';
|
|
2
2
|
import type { Dictionary as LocalDictionary } from '@intlayer/core';
|
|
3
|
-
import type { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
4
3
|
import { type DictionaryFiltersParams } from '../utils/filtersAndPagination/getDictionaryFiltersAndPagination';
|
|
5
4
|
import type { FiltersAndPagination } from '../utils/filtersAndPagination/getFiltersAndPaginationFromBody';
|
|
6
5
|
import { type PaginatedResponse, type ResponseData } from '../utils/responseData';
|
|
7
|
-
import type { NextFunction, Request } from 'express';
|
|
6
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
8
7
|
export type GetDictionariesParams = FiltersAndPagination<DictionaryFiltersParams>;
|
|
9
8
|
export type GetDictionariesResult = PaginatedResponse<DictionaryAPI>;
|
|
10
9
|
/**
|
|
11
10
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
12
11
|
*/
|
|
13
|
-
export declare const getDictionaries: (req: Request<GetDictionariesParams>, res:
|
|
12
|
+
export declare const getDictionaries: (req: Request<GetDictionariesParams>, res: Response<GetDictionariesResult>, _next: NextFunction) => Promise<void>;
|
|
14
13
|
export type GetDictionariesKeysResult = ResponseData<string[]>;
|
|
15
14
|
/**
|
|
16
15
|
* Retrieves a list of dictionaries keys based on filters and pagination.
|
|
17
16
|
*/
|
|
18
|
-
export declare const getDictionariesKeys: (_req: Request, res:
|
|
17
|
+
export declare const getDictionariesKeys: (_req: Request, res: Response<GetDictionariesKeysResult>, _next: NextFunction) => Promise<void>;
|
|
19
18
|
export type GetDictionaryParams = {
|
|
20
19
|
dictionaryKey: string;
|
|
21
20
|
};
|
|
@@ -26,7 +25,7 @@ export type GetDictionaryResult = ResponseData<DictionaryAPI>;
|
|
|
26
25
|
/**
|
|
27
26
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
28
27
|
*/
|
|
29
|
-
export declare const getDictionaryByKey: (req: Request<GetDictionaryParams, any, any, GetDictionaryQuery>, res:
|
|
28
|
+
export declare const getDictionaryByKey: (req: Request<GetDictionaryParams, any, any, GetDictionaryQuery>, res: Response<GetDictionaryResult>, _next: NextFunction) => Promise<void>;
|
|
30
29
|
export type AddDictionaryBody = {
|
|
31
30
|
dictionary: DictionaryCreationData;
|
|
32
31
|
};
|
|
@@ -34,7 +33,7 @@ export type AddDictionaryResult = ResponseData<DictionaryAPI>;
|
|
|
34
33
|
/**
|
|
35
34
|
* Adds a new dictionary to the database.
|
|
36
35
|
*/
|
|
37
|
-
export declare const addDictionary: (req: Request<any, any, AddDictionaryBody>, res:
|
|
36
|
+
export declare const addDictionary: (req: Request<any, any, AddDictionaryBody>, res: Response<AddDictionaryResult>, _next: NextFunction) => Promise<void>;
|
|
38
37
|
export type PushDictionariesBody = {
|
|
39
38
|
dictionaries: LocalDictionary[];
|
|
40
39
|
};
|
|
@@ -53,7 +52,7 @@ export type PushDictionariesResult = ResponseData<PushDictionariesResultData>;
|
|
|
53
52
|
* @param res - Express response object.
|
|
54
53
|
* @returns Response containing the created dictionary.
|
|
55
54
|
*/
|
|
56
|
-
export declare const pushDictionaries: (req: Request<any, any, PushDictionariesBody>, res:
|
|
55
|
+
export declare const pushDictionaries: (req: Request<any, any, PushDictionariesBody>, res: Response<PushDictionariesResult>, _next: NextFunction) => Promise<void>;
|
|
57
56
|
export type UpdateDictionaryParam = {
|
|
58
57
|
dictionaryId: string;
|
|
59
58
|
};
|
|
@@ -62,7 +61,7 @@ export type UpdateDictionaryResult = ResponseData<DictionaryAPI>;
|
|
|
62
61
|
/**
|
|
63
62
|
* Updates an existing dictionary in the database.
|
|
64
63
|
*/
|
|
65
|
-
export declare const updateDictionary: (req: Request<UpdateDictionaryParam, any, UpdateDictionaryBody>, res:
|
|
64
|
+
export declare const updateDictionary: (req: Request<UpdateDictionaryParam, any, UpdateDictionaryBody>, res: Response<UpdateDictionaryResult>, _next: NextFunction) => Promise<void>;
|
|
66
65
|
export type DeleteDictionaryParam = {
|
|
67
66
|
dictionaryId: string;
|
|
68
67
|
};
|
|
@@ -70,6 +69,6 @@ export type DeleteDictionaryResult = ResponseData<DictionaryAPI>;
|
|
|
70
69
|
/**
|
|
71
70
|
* Deletes a dictionary from the database by its ID.
|
|
72
71
|
*/
|
|
73
|
-
export declare const deleteDictionary: (req: Request<DeleteDictionaryParam>, res:
|
|
72
|
+
export declare const deleteDictionary: (req: Request<DeleteDictionaryParam>, res: Response<DeleteDictionaryResult>, _next: NextFunction) => Promise<void>;
|
|
74
73
|
export {};
|
|
75
74
|
//# sourceMappingURL=dictionary.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/dictionary.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAEV,UAAU,IAAI,eAAe,EAC9B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"dictionary.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/dictionary.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAEV,UAAU,IAAI,eAAe,EAC9B,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAGxG,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAChD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,CAAC,qBAAqB,CAAC,EACnC,KAAK,QAAQ,CAAC,qBAAqB,CAAC,EACpC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAgDd,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,EACb,KAAK,QAAQ,CAAC,yBAAyB,CAAC,EACxC,OAAO,YAAY,kBA6BpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,EAC/D,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAClC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA6Cd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAE,UAAU,EAAE,sBAAsB,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,EACzC,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAClC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA2Ed,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AACF,KAAK,0BAA0B,GAAG;IAChC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAC5C,KAAK,QAAQ,CAAC,sBAAsB,CAAC,EACrC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA6Ld,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAC9D,KAAK,QAAQ,CAAC,sBAAsB,CAAC,EACrC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAiEd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,qBAAqB,CAAC,EACnC,KAAK,QAAQ,CAAC,sBAAsB,CAAC,EACrC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAyEd,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
2
|
-
import type { Request } from 'express';
|
|
3
1
|
import type { DictionaryAPI } from '../types/dictionary.types';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
4
3
|
export type Object = 'DICTIONARY';
|
|
5
4
|
export type Status = 'ADDED' | 'UPDATED' | 'DELETED' | 'CREATED';
|
|
6
5
|
export type MessageEventData = {
|
|
@@ -19,5 +18,5 @@ export type CheckDictionaryChangeSSEParams = {
|
|
|
19
18
|
/**
|
|
20
19
|
* SSE to check the email verification status
|
|
21
20
|
*/
|
|
22
|
-
export declare const listenChangeSSE: (req: Request<CheckDictionaryChangeSSEParams, any, any>, res:
|
|
21
|
+
export declare const listenChangeSSE: (req: Request<CheckDictionaryChangeSSEParams, any, any>, res: Response) => Promise<void>;
|
|
23
22
|
//# sourceMappingURL=eventListener.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventListener.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/eventListener.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"eventListener.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/eventListener.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,uBAAuB,EAAE,SAmBnE,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,CAAC,8BAA8B,EAAE,GAAG,EAAE,GAAG,CAAC,EACtD,KAAK,QAAQ,kBA0Cd,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { EmailsList, UserAPI } from '../types/user.types';
|
|
2
|
-
import type { ResponseWithInformation } from '../middlewares/sessionAuth.middleware';
|
|
3
2
|
import { type ResponseData } from '../utils/responseData';
|
|
4
|
-
import type { NextFunction, Request } from 'express';
|
|
3
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
5
4
|
export type NewsletterSubscriptionBody = {
|
|
6
5
|
email: string;
|
|
7
6
|
emailList: EmailsList | EmailsList[];
|
|
@@ -12,7 +11,7 @@ export type NewsletterSubscriptionResult = ResponseData<UserAPI>;
|
|
|
12
11
|
* If the user doesn't exist, creates a new user.
|
|
13
12
|
* If the user exists, updates their newsletter subscription to true.
|
|
14
13
|
*/
|
|
15
|
-
export declare const subscribeToNewsletter: (req: Request<any, any, NewsletterSubscriptionBody>, res:
|
|
14
|
+
export declare const subscribeToNewsletter: (req: Request<any, any, NewsletterSubscriptionBody>, res: Response<NewsletterSubscriptionResult>, _next: NextFunction) => Promise<void>;
|
|
16
15
|
export type NewsletterUnsubscriptionBody = {
|
|
17
16
|
userId: string;
|
|
18
17
|
emailList: EmailsList | EmailsList[];
|
|
@@ -21,11 +20,11 @@ export type NewsletterUnsubscriptionBody = {
|
|
|
21
20
|
* Unsubscribes a user from the newsletter.
|
|
22
21
|
* Only works if the user exists.
|
|
23
22
|
*/
|
|
24
|
-
export declare const unsubscribeFromNewsletter: (req: Request<any, any, NewsletterUnsubscriptionBody>, res:
|
|
23
|
+
export declare const unsubscribeFromNewsletter: (req: Request<any, any, NewsletterUnsubscriptionBody>, res: Response<NewsletterSubscriptionResult>, _next: NextFunction) => Promise<void>;
|
|
25
24
|
/**
|
|
26
25
|
* Gets the newsletter subscription status for a user.
|
|
27
26
|
*/
|
|
28
|
-
export declare const getNewsletterStatus: (
|
|
27
|
+
export declare const getNewsletterStatus: (_req: Request<{
|
|
29
28
|
email: string;
|
|
30
|
-
}>, res:
|
|
29
|
+
}>, res: Response<NewsletterSubscriptionResult>, _next: NextFunction) => Promise<void>;
|
|
31
30
|
//# sourceMappingURL=newsletter.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newsletter.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/newsletter.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"newsletter.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/newsletter.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM9D,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/D,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;CACtC,CAAC;AACF,MAAM,MAAM,4BAA4B,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,0BAA0B,CAAC,EAClD,KAAK,QAAQ,CAAC,4BAA4B,CAAC,EAC3C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAuEd,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,EACpD,KAAK,QAAQ,CAAC,4BAA4B,CAAC,EAC3C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAmEd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAChC,KAAK,QAAQ,CAAC,4BAA4B,CAAC,EAC3C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA+Cd,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type ResponseData } from '../utils/responseData';
|
|
2
|
-
import type { Response, Request, NextFunction } from 'express';
|
|
3
1
|
import type { OAuth2Token } from '../types/oAuth2.types';
|
|
2
|
+
import { type ResponseData } from '../utils/responseData';
|
|
3
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
4
4
|
export type GetOAuth2TokenBody = {
|
|
5
5
|
grant_type: 'client_credentials';
|
|
6
6
|
client_id: string;
|
|
7
7
|
client_secret: string;
|
|
8
8
|
};
|
|
9
9
|
export type GetOAuth2TokenResult = ResponseData<OAuth2Token>;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const getOAuth2AccessToken: (req: Request, res: Response<GetOAuth2TokenResult>, _next: NextFunction) => Promise<void>;
|
|
11
11
|
//# sourceMappingURL=oAuth2.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oAuth2.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/oAuth2.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oAuth2.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/oAuth2.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAM/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAG7D,eAAO,MAAM,oBAAoB,GAC/B,KAAK,OAAO,EACZ,KAAK,QAAQ,CAAC,oBAAoB,CAAC,EACnC,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAuBd,CAAC"}
|