@monorise/core 1.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/configs/service.config.ts +14 -0
- package/constants/table.ts +3 -0
- package/controllers/entity/create-entity.controller.ts +51 -0
- package/controllers/entity/delete-entity.controller.ts +35 -0
- package/controllers/entity/entity.http +62 -0
- package/controllers/entity/get-entity.controller.ts +33 -0
- package/controllers/entity/list-entities.controller.ts +69 -0
- package/controllers/entity/update-entity.controller.ts +56 -0
- package/controllers/entity/upsert-entity.controller.ts +97 -0
- package/controllers/mutual/create-mutual.controller.ts +89 -0
- package/controllers/mutual/delete-mutual.controller.ts +40 -0
- package/controllers/mutual/get-mutual.controller.ts +38 -0
- package/controllers/mutual/list-entities-by-entity.controller.ts +76 -0
- package/controllers/mutual/mutual.http +88 -0
- package/controllers/mutual/update-mutual.controller.ts +50 -0
- package/controllers/setupRoutes.ts +73 -0
- package/controllers/tag/list-tags.controller.ts +57 -0
- package/data/DbUtils.ts +40 -0
- package/data/Entity.ts +499 -0
- package/data/EventUtils.ts +47 -0
- package/data/FileObject.ts +16 -0
- package/data/Mutual.ts +779 -0
- package/data/ProjectionExpression.ts +8 -0
- package/data/Tag.ts +470 -0
- package/data/abstract/Item.base.ts +19 -0
- package/data/abstract/Repository.base.ts +92 -0
- package/dist/configs/service.config.d.ts +5 -0
- package/dist/configs/service.config.d.ts.map +1 -0
- package/dist/configs/service.config.js +5 -0
- package/dist/configs/service.config.js.map +1 -0
- package/dist/constants/table.d.ts +4 -0
- package/dist/constants/table.d.ts.map +1 -0
- package/dist/constants/table.js +4 -0
- package/dist/constants/table.js.map +1 -0
- package/dist/controllers/entity/create-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/create-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/create-entity.controller.js +44 -0
- package/dist/controllers/entity/create-entity.controller.js.map +1 -0
- package/dist/controllers/entity/delete-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/delete-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/delete-entity.controller.js +29 -0
- package/dist/controllers/entity/delete-entity.controller.js.map +1 -0
- package/dist/controllers/entity/get-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/get-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/get-entity.controller.js +24 -0
- package/dist/controllers/entity/get-entity.controller.js.map +1 -0
- package/dist/controllers/entity/list-entities.controller.d.ts +8 -0
- package/dist/controllers/entity/list-entities.controller.d.ts.map +1 -0
- package/dist/controllers/entity/list-entities.controller.js +56 -0
- package/dist/controllers/entity/list-entities.controller.js.map +1 -0
- package/dist/controllers/entity/update-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/update-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/update-entity.controller.js +45 -0
- package/dist/controllers/entity/update-entity.controller.js.map +1 -0
- package/dist/controllers/entity/upsert-entity.controller.d.ts +10 -0
- package/dist/controllers/entity/upsert-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/upsert-entity.controller.js +73 -0
- package/dist/controllers/entity/upsert-entity.controller.js.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts +10 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.js +70 -0
- package/dist/controllers/mutual/create-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/delete-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/delete-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/delete-mutual.controller.js +31 -0
- package/dist/controllers/mutual/delete-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/get-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/get-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/get-mutual.controller.js +24 -0
- package/dist/controllers/mutual/get-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts +8 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.js +56 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.js.map +1 -0
- package/dist/controllers/mutual/update-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/update-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/update-mutual.controller.js +40 -0
- package/dist/controllers/mutual/update-mutual.controller.js.map +1 -0
- package/dist/controllers/setupRoutes.d.ts +4 -0
- package/dist/controllers/setupRoutes.d.ts.map +1 -0
- package/dist/controllers/setupRoutes.js +31 -0
- package/dist/controllers/setupRoutes.js.map +1 -0
- package/dist/controllers/tag/list-tags.controller.d.ts +8 -0
- package/dist/controllers/tag/list-tags.controller.d.ts.map +1 -0
- package/dist/controllers/tag/list-tags.controller.js +48 -0
- package/dist/controllers/tag/list-tags.controller.js.map +1 -0
- package/dist/data/DbUtils.d.ts +7 -0
- package/dist/data/DbUtils.d.ts.map +1 -0
- package/dist/data/DbUtils.js +23 -0
- package/dist/data/DbUtils.js.map +1 -0
- package/dist/data/Entity.d.ts +71 -0
- package/dist/data/Entity.d.ts.map +1 -0
- package/dist/data/Entity.js +358 -0
- package/dist/data/Entity.js.map +1 -0
- package/dist/data/EventUtils.d.ts +14 -0
- package/dist/data/EventUtils.d.ts.map +1 -0
- package/dist/data/EventUtils.js +34 -0
- package/dist/data/EventUtils.js.map +1 -0
- package/dist/data/FileObject.d.ts +62 -0
- package/dist/data/FileObject.d.ts.map +1 -0
- package/dist/data/FileObject.js +13 -0
- package/dist/data/FileObject.js.map +1 -0
- package/dist/data/Mutual.d.ts +94 -0
- package/dist/data/Mutual.d.ts.map +1 -0
- package/dist/data/Mutual.js +492 -0
- package/dist/data/Mutual.js.map +1 -0
- package/dist/data/ProjectionExpression.d.ts +6 -0
- package/dist/data/ProjectionExpression.d.ts.map +1 -0
- package/dist/data/ProjectionExpression.js +5 -0
- package/dist/data/ProjectionExpression.js.map +1 -0
- package/dist/data/Tag.d.ts +77 -0
- package/dist/data/Tag.d.ts.map +1 -0
- package/dist/data/Tag.js +330 -0
- package/dist/data/Tag.js.map +1 -0
- package/dist/data/abstract/Item.base.d.ts +11 -0
- package/dist/data/abstract/Item.base.d.ts.map +1 -0
- package/dist/data/abstract/Item.base.js +9 -0
- package/dist/data/abstract/Item.base.js.map +1 -0
- package/dist/data/abstract/Repository.base.d.ts +11 -0
- package/dist/data/abstract/Repository.base.d.ts.map +1 -0
- package/dist/data/abstract/Repository.base.js +54 -0
- package/dist/data/abstract/Repository.base.js.map +1 -0
- package/dist/errors/api-error.d.ts +23 -0
- package/dist/errors/api-error.d.ts.map +1 -0
- package/dist/errors/api-error.js +26 -0
- package/dist/errors/api-error.js.map +1 -0
- package/dist/errors/extendable-error.d.ts +18 -0
- package/dist/errors/extendable-error.d.ts.map +1 -0
- package/dist/errors/extendable-error.js +22 -0
- package/dist/errors/extendable-error.js.map +1 -0
- package/dist/errors/standard-error.d.ts +11 -0
- package/dist/errors/standard-error.d.ts.map +1 -0
- package/dist/errors/standard-error.js +21 -0
- package/dist/errors/standard-error.js.map +1 -0
- package/dist/helpers/dependencies.d.ts +8 -0
- package/dist/helpers/dependencies.d.ts.map +1 -0
- package/dist/helpers/dependencies.js +10 -0
- package/dist/helpers/dependencies.js.map +1 -0
- package/dist/helpers/event.d.ts +22 -0
- package/dist/helpers/event.d.ts.map +1 -0
- package/dist/helpers/event.js +47 -0
- package/dist/helpers/event.js.map +1 -0
- package/dist/helpers/fromLastKeyQuery.d.ts +3 -0
- package/dist/helpers/fromLastKeyQuery.d.ts.map +1 -0
- package/dist/helpers/fromLastKeyQuery.js +7 -0
- package/dist/helpers/fromLastKeyQuery.js.map +1 -0
- package/dist/helpers/sleep.d.ts +2 -0
- package/dist/helpers/sleep.d.ts.map +1 -0
- package/dist/helpers/sleep.js +2 -0
- package/dist/helpers/sleep.js.map +1 -0
- package/dist/helpers/toLastKeyResponse.d.ts +3 -0
- package/dist/helpers/toLastKeyResponse.d.ts.map +1 -0
- package/dist/helpers/toLastKeyResponse.js +7 -0
- package/dist/helpers/toLastKeyResponse.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/entity-type-check.d.ts +3 -0
- package/dist/middlewares/entity-type-check.d.ts.map +1 -0
- package/dist/middlewares/entity-type-check.js +12 -0
- package/dist/middlewares/entity-type-check.js.map +1 -0
- package/dist/middlewares/mutual-type-check.d.ts +3 -0
- package/dist/middlewares/mutual-type-check.d.ts.map +1 -0
- package/dist/middlewares/mutual-type-check.js +13 -0
- package/dist/middlewares/mutual-type-check.js.map +1 -0
- package/dist/mock/container.d.ts +3 -0
- package/dist/mock/container.d.ts.map +1 -0
- package/dist/mock/container.js +3 -0
- package/dist/mock/container.js.map +1 -0
- package/dist/mock/entity.d.ts +13 -0
- package/dist/mock/entity.d.ts.map +1 -0
- package/dist/mock/entity.js +14 -0
- package/dist/mock/entity.js.map +1 -0
- package/dist/mock/monorise/admin.d.ts +127 -0
- package/dist/mock/monorise/admin.d.ts.map +1 -0
- package/dist/mock/monorise/admin.js +29 -0
- package/dist/mock/monorise/admin.js.map +1 -0
- package/dist/mock/monorise/chapter.d.ts +457 -0
- package/dist/mock/monorise/chapter.d.ts.map +1 -0
- package/dist/mock/monorise/chapter.js +81 -0
- package/dist/mock/monorise/chapter.js.map +1 -0
- package/dist/mock/monorise/course.d.ts +311 -0
- package/dist/mock/monorise/course.d.ts.map +1 -0
- package/dist/mock/monorise/course.js +128 -0
- package/dist/mock/monorise/course.js.map +1 -0
- package/dist/mock/monorise/index.d.ts +3599 -0
- package/dist/mock/monorise/index.d.ts.map +1 -0
- package/dist/mock/monorise/index.js +62 -0
- package/dist/mock/monorise/index.js.map +1 -0
- package/dist/mock/monorise/learner.d.ts +390 -0
- package/dist/mock/monorise/learner.d.ts.map +1 -0
- package/dist/mock/monorise/learner.js +59 -0
- package/dist/mock/monorise/learner.js.map +1 -0
- package/dist/mock/monorise/learning-activity.d.ts +266 -0
- package/dist/mock/monorise/learning-activity.d.ts.map +1 -0
- package/dist/mock/monorise/learning-activity.js +50 -0
- package/dist/mock/monorise/learning-activity.js.map +1 -0
- package/dist/mock/monorise/learning-journey-config.d.ts +84 -0
- package/dist/mock/monorise/learning-journey-config.d.ts.map +1 -0
- package/dist/mock/monorise/learning-journey-config.js +27 -0
- package/dist/mock/monorise/learning-journey-config.js.map +1 -0
- package/dist/mock/monorise/module.d.ts +211 -0
- package/dist/mock/monorise/module.d.ts.map +1 -0
- package/dist/mock/monorise/module.js +91 -0
- package/dist/mock/monorise/module.js.map +1 -0
- package/dist/mock/monorise/organization.d.ts +346 -0
- package/dist/mock/monorise/organization.d.ts.map +1 -0
- package/dist/mock/monorise/organization.js +54 -0
- package/dist/mock/monorise/organization.js.map +1 -0
- package/dist/mock/monorise/reference.d.ts +171 -0
- package/dist/mock/monorise/reference.d.ts.map +1 -0
- package/dist/mock/monorise/reference.js +25 -0
- package/dist/mock/monorise/reference.js.map +1 -0
- package/dist/mock/monorise/video.d.ts +346 -0
- package/dist/mock/monorise/video.d.ts.map +1 -0
- package/dist/mock/monorise/video.js +33 -0
- package/dist/mock/monorise/video.js.map +1 -0
- package/dist/packages/core/configs/service.config.d.ts +5 -0
- package/dist/packages/core/configs/service.config.d.ts.map +1 -0
- package/dist/packages/core/configs/service.config.js +5 -0
- package/dist/packages/core/configs/service.config.js.map +1 -0
- package/dist/packages/core/constants/table.d.ts +4 -0
- package/dist/packages/core/constants/table.d.ts.map +1 -0
- package/dist/packages/core/constants/table.js +4 -0
- package/dist/packages/core/constants/table.js.map +1 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.js +44 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.js +29 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.js +24 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.js +56 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.js +45 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts +10 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.js +73 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts +10 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.js +70 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.js +31 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.js +24 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js +56 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.js +40 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/setupRoutes.d.ts +3 -0
- package/dist/packages/core/controllers/setupRoutes.d.ts.map +1 -0
- package/dist/packages/core/controllers/setupRoutes.js +33 -0
- package/dist/packages/core/controllers/setupRoutes.js.map +1 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.d.ts +8 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.js +48 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.js.map +1 -0
- package/dist/packages/core/data/DbUtils.d.ts +7 -0
- package/dist/packages/core/data/DbUtils.d.ts.map +1 -0
- package/dist/packages/core/data/DbUtils.js +23 -0
- package/dist/packages/core/data/DbUtils.js.map +1 -0
- package/dist/packages/core/data/Entity.d.ts +71 -0
- package/dist/packages/core/data/Entity.d.ts.map +1 -0
- package/dist/packages/core/data/Entity.js +358 -0
- package/dist/packages/core/data/Entity.js.map +1 -0
- package/dist/packages/core/data/EventUtils.d.ts +14 -0
- package/dist/packages/core/data/EventUtils.d.ts.map +1 -0
- package/dist/packages/core/data/EventUtils.js +34 -0
- package/dist/packages/core/data/EventUtils.js.map +1 -0
- package/dist/packages/core/data/FileObject.d.ts +62 -0
- package/dist/packages/core/data/FileObject.d.ts.map +1 -0
- package/dist/packages/core/data/FileObject.js +13 -0
- package/dist/packages/core/data/FileObject.js.map +1 -0
- package/dist/packages/core/data/Mutual.d.ts +94 -0
- package/dist/packages/core/data/Mutual.d.ts.map +1 -0
- package/dist/packages/core/data/Mutual.js +492 -0
- package/dist/packages/core/data/Mutual.js.map +1 -0
- package/dist/packages/core/data/ProjectionExpression.d.ts +6 -0
- package/dist/packages/core/data/ProjectionExpression.d.ts.map +1 -0
- package/dist/packages/core/data/ProjectionExpression.js +5 -0
- package/dist/packages/core/data/ProjectionExpression.js.map +1 -0
- package/dist/packages/core/data/Tag.d.ts +77 -0
- package/dist/packages/core/data/Tag.d.ts.map +1 -0
- package/dist/packages/core/data/Tag.js +330 -0
- package/dist/packages/core/data/Tag.js.map +1 -0
- package/dist/packages/core/data/abstract/Item.base.d.ts +11 -0
- package/dist/packages/core/data/abstract/Item.base.d.ts.map +1 -0
- package/dist/packages/core/data/abstract/Item.base.js +9 -0
- package/dist/packages/core/data/abstract/Item.base.js.map +1 -0
- package/dist/packages/core/data/abstract/Repository.base.d.ts +11 -0
- package/dist/packages/core/data/abstract/Repository.base.d.ts.map +1 -0
- package/dist/packages/core/data/abstract/Repository.base.js +54 -0
- package/dist/packages/core/data/abstract/Repository.base.js.map +1 -0
- package/dist/packages/core/errors/api-error.d.ts +23 -0
- package/dist/packages/core/errors/api-error.d.ts.map +1 -0
- package/dist/packages/core/errors/api-error.js +26 -0
- package/dist/packages/core/errors/api-error.js.map +1 -0
- package/dist/packages/core/errors/extendable-error.d.ts +18 -0
- package/dist/packages/core/errors/extendable-error.d.ts.map +1 -0
- package/dist/packages/core/errors/extendable-error.js +22 -0
- package/dist/packages/core/errors/extendable-error.js.map +1 -0
- package/dist/packages/core/errors/standard-error.d.ts +11 -0
- package/dist/packages/core/errors/standard-error.d.ts.map +1 -0
- package/dist/packages/core/errors/standard-error.js +21 -0
- package/dist/packages/core/errors/standard-error.js.map +1 -0
- package/dist/packages/core/helpers/dependencies.d.ts +8 -0
- package/dist/packages/core/helpers/dependencies.d.ts.map +1 -0
- package/dist/packages/core/helpers/dependencies.js +10 -0
- package/dist/packages/core/helpers/dependencies.js.map +1 -0
- package/dist/packages/core/helpers/event.d.ts +22 -0
- package/dist/packages/core/helpers/event.d.ts.map +1 -0
- package/dist/packages/core/helpers/event.js +47 -0
- package/dist/packages/core/helpers/event.js.map +1 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.d.ts +3 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.d.ts.map +1 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.js +7 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.js.map +1 -0
- package/dist/packages/core/helpers/sleep.d.ts +2 -0
- package/dist/packages/core/helpers/sleep.d.ts.map +1 -0
- package/dist/packages/core/helpers/sleep.js +2 -0
- package/dist/packages/core/helpers/sleep.js.map +1 -0
- package/dist/packages/core/helpers/toLastKeyResponse.d.ts +3 -0
- package/dist/packages/core/helpers/toLastKeyResponse.d.ts.map +1 -0
- package/dist/packages/core/helpers/toLastKeyResponse.js +7 -0
- package/dist/packages/core/helpers/toLastKeyResponse.js.map +1 -0
- package/dist/packages/core/index.d.ts +12 -0
- package/dist/packages/core/index.d.ts.map +1 -0
- package/dist/packages/core/index.js +12 -0
- package/dist/packages/core/index.js.map +1 -0
- package/dist/packages/core/middlewares/entity-type-check.d.ts +3 -0
- package/dist/packages/core/middlewares/entity-type-check.d.ts.map +1 -0
- package/dist/packages/core/middlewares/entity-type-check.js +12 -0
- package/dist/packages/core/middlewares/entity-type-check.js.map +1 -0
- package/dist/packages/core/middlewares/mutual-type-check.d.ts +3 -0
- package/dist/packages/core/middlewares/mutual-type-check.d.ts.map +1 -0
- package/dist/packages/core/middlewares/mutual-type-check.js +13 -0
- package/dist/packages/core/middlewares/mutual-type-check.js.map +1 -0
- package/dist/packages/core/mock/container.d.ts +3 -0
- package/dist/packages/core/mock/container.d.ts.map +1 -0
- package/dist/packages/core/mock/container.js +3 -0
- package/dist/packages/core/mock/container.js.map +1 -0
- package/dist/packages/core/mock/entity.d.ts +13 -0
- package/dist/packages/core/mock/entity.d.ts.map +1 -0
- package/dist/packages/core/mock/entity.js +14 -0
- package/dist/packages/core/mock/entity.js.map +1 -0
- package/dist/packages/core/mock/monorise/admin.d.ts +127 -0
- package/dist/packages/core/mock/monorise/admin.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/admin.js +29 -0
- package/dist/packages/core/mock/monorise/admin.js.map +1 -0
- package/dist/packages/core/mock/monorise/audio.d.ts +324 -0
- package/dist/packages/core/mock/monorise/audio.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/audio.js +32 -0
- package/dist/packages/core/mock/monorise/audio.js.map +1 -0
- package/dist/packages/core/mock/monorise/chapter.d.ts +457 -0
- package/dist/packages/core/mock/monorise/chapter.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/chapter.js +81 -0
- package/dist/packages/core/mock/monorise/chapter.js.map +1 -0
- package/dist/packages/core/mock/monorise/cohort-track.d.ts +118 -0
- package/dist/packages/core/mock/monorise/cohort-track.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/cohort-track.js +38 -0
- package/dist/packages/core/mock/monorise/cohort-track.js.map +1 -0
- package/dist/packages/core/mock/monorise/course-banner.d.ts +149 -0
- package/dist/packages/core/mock/monorise/course-banner.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/course-banner.js +24 -0
- package/dist/packages/core/mock/monorise/course-banner.js.map +1 -0
- package/dist/packages/core/mock/monorise/course.d.ts +311 -0
- package/dist/packages/core/mock/monorise/course.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/course.js +128 -0
- package/dist/packages/core/mock/monorise/course.js.map +1 -0
- package/dist/packages/core/mock/monorise/expert.d.ts +380 -0
- package/dist/packages/core/mock/monorise/expert.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/expert.js +32 -0
- package/dist/packages/core/mock/monorise/expert.js.map +1 -0
- package/dist/packages/core/mock/monorise/index.d.ts +3599 -0
- package/dist/packages/core/mock/monorise/index.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/index.js +62 -0
- package/dist/packages/core/mock/monorise/index.js.map +1 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.d.ts +198 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.js +21 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.js.map +1 -0
- package/dist/packages/core/mock/monorise/learner.d.ts +390 -0
- package/dist/packages/core/mock/monorise/learner.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learner.js +59 -0
- package/dist/packages/core/mock/monorise/learner.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts +160 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.js +17 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity.d.ts +266 -0
- package/dist/packages/core/mock/monorise/learning-activity.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity.js +50 -0
- package/dist/packages/core/mock/monorise/learning-activity.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.d.ts +84 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.js +27 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts +290 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.js +46 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.js.map +1 -0
- package/dist/packages/core/mock/monorise/module.d.ts +211 -0
- package/dist/packages/core/mock/monorise/module.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/module.js +91 -0
- package/dist/packages/core/mock/monorise/module.js.map +1 -0
- package/dist/packages/core/mock/monorise/organization.d.ts +346 -0
- package/dist/packages/core/mock/monorise/organization.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/organization.js +54 -0
- package/dist/packages/core/mock/monorise/organization.js.map +1 -0
- package/dist/packages/core/mock/monorise/pathway.d.ts +267 -0
- package/dist/packages/core/mock/monorise/pathway.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/pathway.js +221 -0
- package/dist/packages/core/mock/monorise/pathway.js.map +1 -0
- package/dist/packages/core/mock/monorise/phase.d.ts +580 -0
- package/dist/packages/core/mock/monorise/phase.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/phase.js +166 -0
- package/dist/packages/core/mock/monorise/phase.js.map +1 -0
- package/dist/packages/core/mock/monorise/reference.d.ts +171 -0
- package/dist/packages/core/mock/monorise/reference.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/reference.js +25 -0
- package/dist/packages/core/mock/monorise/reference.js.map +1 -0
- package/dist/packages/core/mock/monorise/track.d.ts +617 -0
- package/dist/packages/core/mock/monorise/track.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/track.js +270 -0
- package/dist/packages/core/mock/monorise/track.js.map +1 -0
- package/dist/packages/core/mock/monorise/video.d.ts +346 -0
- package/dist/packages/core/mock/monorise/video.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/video.js +33 -0
- package/dist/packages/core/mock/monorise/video.js.map +1 -0
- package/dist/packages/core/mock/monorise.d.ts +6 -0
- package/dist/packages/core/mock/monorise.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise.js +5 -0
- package/dist/packages/core/mock/monorise.js.map +1 -0
- package/dist/packages/core/processors/create-entity-processor.d.ts +5 -0
- package/dist/packages/core/processors/create-entity-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/create-entity-processor.js +32 -0
- package/dist/packages/core/processors/create-entity-processor.js.map +1 -0
- package/dist/packages/core/processors/mutual-processor.d.ts +15 -0
- package/dist/packages/core/processors/mutual-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/mutual-processor.js +128 -0
- package/dist/packages/core/processors/mutual-processor.js.map +1 -0
- package/dist/packages/core/processors/prejoin-processor.d.ts +12 -0
- package/dist/packages/core/processors/prejoin-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/prejoin-processor.js +150 -0
- package/dist/packages/core/processors/prejoin-processor.js.map +1 -0
- package/dist/packages/core/processors/replication-processor.d.ts +8 -0
- package/dist/packages/core/processors/replication-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/replication-processor.js +180 -0
- package/dist/packages/core/processors/replication-processor.js.map +1 -0
- package/dist/packages/core/processors/tag-processor.d.ts +11 -0
- package/dist/packages/core/processors/tag-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/tag-processor.js +106 -0
- package/dist/packages/core/processors/tag-processor.js.map +1 -0
- package/dist/packages/core/services/DependencyContainer.d.ts +51 -0
- package/dist/packages/core/services/DependencyContainer.d.ts.map +1 -0
- package/dist/packages/core/services/DependencyContainer.js +115 -0
- package/dist/packages/core/services/DependencyContainer.js.map +1 -0
- package/dist/packages/core/services/entity-service-lifecycle.d.ts +12 -0
- package/dist/packages/core/services/entity-service-lifecycle.d.ts.map +1 -0
- package/dist/packages/core/services/entity-service-lifecycle.js +23 -0
- package/dist/packages/core/services/entity-service-lifecycle.js.map +1 -0
- package/dist/packages/core/services/entity.service.d.ts +32 -0
- package/dist/packages/core/services/entity.service.d.ts.map +1 -0
- package/dist/packages/core/services/entity.service.js +121 -0
- package/dist/packages/core/services/entity.service.js.map +1 -0
- package/dist/packages/core/services/mutual.service.d.ts +64 -0
- package/dist/packages/core/services/mutual.service.d.ts.map +1 -0
- package/dist/packages/core/services/mutual.service.js +144 -0
- package/dist/packages/core/services/mutual.service.js.map +1 -0
- package/dist/packages/core/types/entity.type.d.ts +20 -0
- package/dist/packages/core/types/entity.type.d.ts.map +1 -0
- package/dist/packages/core/types/entity.type.js +2 -0
- package/dist/packages/core/types/entity.type.js.map +1 -0
- package/dist/processors/create-entity-processor.d.ts +5 -0
- package/dist/processors/create-entity-processor.d.ts.map +1 -0
- package/dist/processors/create-entity-processor.js +33 -0
- package/dist/processors/create-entity-processor.js.map +1 -0
- package/dist/processors/mutual-processor.d.ts +15 -0
- package/dist/processors/mutual-processor.d.ts.map +1 -0
- package/dist/processors/mutual-processor.js +129 -0
- package/dist/processors/mutual-processor.js.map +1 -0
- package/dist/processors/prejoin-processor.d.ts +12 -0
- package/dist/processors/prejoin-processor.d.ts.map +1 -0
- package/dist/processors/prejoin-processor.js +151 -0
- package/dist/processors/prejoin-processor.js.map +1 -0
- package/dist/processors/replication-processor.d.ts +8 -0
- package/dist/processors/replication-processor.d.ts.map +1 -0
- package/dist/processors/replication-processor.js +181 -0
- package/dist/processors/replication-processor.js.map +1 -0
- package/dist/processors/tag-processor.d.ts +11 -0
- package/dist/processors/tag-processor.d.ts.map +1 -0
- package/dist/processors/tag-processor.js +107 -0
- package/dist/processors/tag-processor.js.map +1 -0
- package/dist/services/DependencyContainer.d.ts +51 -0
- package/dist/services/DependencyContainer.d.ts.map +1 -0
- package/dist/services/DependencyContainer.js +115 -0
- package/dist/services/DependencyContainer.js.map +1 -0
- package/dist/services/entity-service-lifecycle.d.ts +12 -0
- package/dist/services/entity-service-lifecycle.d.ts.map +1 -0
- package/dist/services/entity-service-lifecycle.js +23 -0
- package/dist/services/entity-service-lifecycle.js.map +1 -0
- package/dist/services/entity.service.d.ts +32 -0
- package/dist/services/entity.service.d.ts.map +1 -0
- package/dist/services/entity.service.js +121 -0
- package/dist/services/entity.service.js.map +1 -0
- package/dist/services/mutual.service.d.ts +64 -0
- package/dist/services/mutual.service.d.ts.map +1 -0
- package/dist/services/mutual.service.js +144 -0
- package/dist/services/mutual.service.js.map +1 -0
- package/dist/shared/types/event.d.ts +72 -0
- package/dist/shared/types/event.d.ts.map +1 -0
- package/dist/shared/types/event.js +74 -0
- package/dist/shared/types/event.js.map +1 -0
- package/dist/types/entity.type.d.ts +20 -0
- package/dist/types/entity.type.d.ts.map +1 -0
- package/dist/types/entity.type.js +2 -0
- package/dist/types/entity.type.js.map +1 -0
- package/dist/types/event.d.ts +72 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/event.js +74 -0
- package/dist/types/event.js.map +1 -0
- package/errors/api-error.ts +39 -0
- package/errors/extendable-error.ts +35 -0
- package/errors/standard-error.ts +29 -0
- package/helpers/dependencies.ts +10 -0
- package/helpers/event.ts +85 -0
- package/helpers/fromLastKeyQuery.ts +11 -0
- package/helpers/sleep.ts +1 -0
- package/helpers/toLastKeyResponse.ts +11 -0
- package/index.ts +23 -0
- package/middlewares/entity-type-check.ts +20 -0
- package/middlewares/mutual-type-check.ts +26 -0
- package/mock/entity.ts +12 -0
- package/mock/monorise/admin.ts +35 -0
- package/mock/monorise/chapter.ts +94 -0
- package/mock/monorise/course.ts +149 -0
- package/mock/monorise/index.ts +143 -0
- package/mock/monorise/learner.ts +66 -0
- package/mock/monorise/learning-activity.ts +62 -0
- package/mock/monorise/learning-journey-config.ts +34 -0
- package/mock/monorise/module.ts +108 -0
- package/mock/monorise/organization.ts +63 -0
- package/mock/monorise/reference.ts +28 -0
- package/mock/monorise/video.ts +36 -0
- package/package.json +31 -0
- package/processors/create-entity-processor.ts +55 -0
- package/processors/mutual-processor.ts +262 -0
- package/processors/prejoin-processor.ts +264 -0
- package/processors/replication-processor.ts +261 -0
- package/processors/tag-processor.ts +174 -0
- package/services/DependencyContainer.ts +208 -0
- package/services/entity-service-lifecycle.ts +41 -0
- package/services/entity.service.ts +201 -0
- package/services/mutual.service.ts +285 -0
- package/tsconfig.json +118 -0
- package/types/entity.type.ts +62 -0
- package/types/event.ts +84 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { ConditionalCheckFailedException } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX, } from '#/configs/service.config';
|
|
3
|
+
import { StandardError } from '#/errors/standard-error';
|
|
4
|
+
import { DependencyContainer } from '#/services/DependencyContainer';
|
|
5
|
+
const container = new DependencyContainer();
|
|
6
|
+
const TableName = process.env.DDB_TABLE;
|
|
7
|
+
export const handler = async (event) => {
|
|
8
|
+
const batchItemFailures = [];
|
|
9
|
+
const { dynamodbClient } = container;
|
|
10
|
+
for (const record of event.Records) {
|
|
11
|
+
const errorContext = {};
|
|
12
|
+
errorContext.record = record;
|
|
13
|
+
try {
|
|
14
|
+
if (record.eventName === 'MODIFY') {
|
|
15
|
+
const modifiedItem = record.dynamodb?.NewImage;
|
|
16
|
+
if (!modifiedItem) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const isMetadata = modifiedItem.SK.S?.startsWith('#METADATA#');
|
|
20
|
+
const isMutual = modifiedItem.PK.S?.startsWith('MUTUAL#') && isMetadata;
|
|
21
|
+
const isEntity = isMetadata && !isMutual;
|
|
22
|
+
if (!isEntity && !isMutual) {
|
|
23
|
+
// skip replicated data
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// default variables
|
|
27
|
+
let targetRPK = 'R1PK';
|
|
28
|
+
const targetData = 'data';
|
|
29
|
+
let targetIndexName = ENTITY_REPLICATION_INDEX;
|
|
30
|
+
const targetUpdatedAt = 'updatedAt';
|
|
31
|
+
let queryExpression = {
|
|
32
|
+
FilterExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
|
|
33
|
+
ExpressionAttributeNames: {
|
|
34
|
+
[`#${targetRPK}`]: targetRPK,
|
|
35
|
+
[`#${targetUpdatedAt}`]: targetUpdatedAt,
|
|
36
|
+
},
|
|
37
|
+
ExpressionAttributeValues: {
|
|
38
|
+
[`:${targetRPK}`]: modifiedItem.PK,
|
|
39
|
+
[`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const updateExpession = {
|
|
43
|
+
UpdateExpression: `SET #${targetUpdatedAt} = :${targetUpdatedAt}, #${targetData} = :${targetData}`,
|
|
44
|
+
ConditionExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
|
|
45
|
+
ExpressionAttributeNames: {
|
|
46
|
+
[`#${targetData}`]: targetData,
|
|
47
|
+
[`#${targetUpdatedAt}`]: targetUpdatedAt,
|
|
48
|
+
},
|
|
49
|
+
ExpressionAttributeValues: {
|
|
50
|
+
[`:${targetData}`]: modifiedItem.data,
|
|
51
|
+
[`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
if (isMutual) {
|
|
55
|
+
targetRPK = 'R2PK';
|
|
56
|
+
targetIndexName = MUTUAL_REPLICATION_INDEX;
|
|
57
|
+
// condition to only replicate to mutualAsEntity
|
|
58
|
+
queryExpression = {
|
|
59
|
+
FilterExpression: `${queryExpression.FilterExpression} AND #SK = :metadata`, // to replicate to mutualAsEntity only
|
|
60
|
+
ExpressionAttributeNames: {
|
|
61
|
+
'#SK': 'SK',
|
|
62
|
+
[`#${targetRPK}`]: targetRPK,
|
|
63
|
+
[`#${targetUpdatedAt}`]: targetUpdatedAt,
|
|
64
|
+
},
|
|
65
|
+
ExpressionAttributeValues: {
|
|
66
|
+
':metadata': { S: '#METADATA#' },
|
|
67
|
+
[`:${targetRPK}`]: modifiedItem.PK,
|
|
68
|
+
[`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
updateExpession.ExpressionAttributeValues = {
|
|
72
|
+
[`:${targetData}`]: modifiedItem.mutualData,
|
|
73
|
+
[`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
errorContext.queryExpression = queryExpression;
|
|
77
|
+
errorContext.updateExpession = updateExpession;
|
|
78
|
+
// retrieve all to be replicated items
|
|
79
|
+
let toBeReplicatedItems = [];
|
|
80
|
+
let lastKey;
|
|
81
|
+
do {
|
|
82
|
+
const queryResult = await dynamodbClient.query({
|
|
83
|
+
TableName,
|
|
84
|
+
IndexName: targetIndexName,
|
|
85
|
+
KeyConditionExpression: `#${targetRPK} = :${targetRPK}`,
|
|
86
|
+
...queryExpression,
|
|
87
|
+
});
|
|
88
|
+
toBeReplicatedItems = [
|
|
89
|
+
...toBeReplicatedItems,
|
|
90
|
+
...(queryResult.Items || []),
|
|
91
|
+
];
|
|
92
|
+
lastKey = queryResult.LastEvaluatedKey;
|
|
93
|
+
} while (lastKey);
|
|
94
|
+
errorContext.toBeReplicatedItems = toBeReplicatedItems;
|
|
95
|
+
const updatePromises = toBeReplicatedItems.map((item) => {
|
|
96
|
+
const updateParams = {
|
|
97
|
+
TableName,
|
|
98
|
+
Key: {
|
|
99
|
+
PK: item.PK,
|
|
100
|
+
SK: item.SK,
|
|
101
|
+
},
|
|
102
|
+
...updateExpession,
|
|
103
|
+
};
|
|
104
|
+
return dynamodbClient.updateItem(updateParams);
|
|
105
|
+
});
|
|
106
|
+
const results = await Promise.allSettled(updatePromises);
|
|
107
|
+
errorContext.results = results;
|
|
108
|
+
if (results.some((result) => result.status === 'rejected' &&
|
|
109
|
+
!(result.reason instanceof ConditionalCheckFailedException))) {
|
|
110
|
+
throw new StandardError('REPLICATION_ERROR', 'Replication error', null, errorContext);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (record.eventName === 'REMOVE') {
|
|
114
|
+
const removedKeys = record.dynamodb?.Keys || {};
|
|
115
|
+
const isMetadata = removedKeys.SK.S?.startsWith('#METADATA#');
|
|
116
|
+
const isMutual = removedKeys.PK.S?.startsWith('MUTUAL#') && isMetadata;
|
|
117
|
+
const isEntity = isMetadata && !isMutual;
|
|
118
|
+
if (!isEntity && !isMutual) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
// default query settings
|
|
122
|
+
let targetRPK = 'R1PK';
|
|
123
|
+
let targetIndexName = ENTITY_REPLICATION_INDEX;
|
|
124
|
+
if (isMutual) {
|
|
125
|
+
targetRPK = 'R2PK';
|
|
126
|
+
targetIndexName = MUTUAL_REPLICATION_INDEX;
|
|
127
|
+
}
|
|
128
|
+
let itemsToDelete = [];
|
|
129
|
+
let lastKey;
|
|
130
|
+
do {
|
|
131
|
+
const queryResult = await dynamodbClient.query({
|
|
132
|
+
TableName,
|
|
133
|
+
IndexName: targetIndexName,
|
|
134
|
+
KeyConditionExpression: `#${targetRPK} = :${targetRPK}`,
|
|
135
|
+
ExpressionAttributeNames: {
|
|
136
|
+
[`#${targetRPK}`]: targetRPK,
|
|
137
|
+
},
|
|
138
|
+
ExpressionAttributeValues: {
|
|
139
|
+
[`:${targetRPK}`]: removedKeys.PK,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
itemsToDelete = [...itemsToDelete, ...(queryResult.Items || [])];
|
|
143
|
+
lastKey = queryResult.LastEvaluatedKey;
|
|
144
|
+
} while (lastKey);
|
|
145
|
+
const mutualsToDelete = Array.from(new Set(itemsToDelete
|
|
146
|
+
.filter((item) => item.R2PK?.S?.startsWith('MUTUAL#'))
|
|
147
|
+
.map((filteredItem) => filteredItem.R2PK?.S)));
|
|
148
|
+
mutualsToDelete.forEach((mutual) => {
|
|
149
|
+
if (!mutual) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
itemsToDelete.push({ PK: { S: mutual }, SK: { S: '#METADATA#' } });
|
|
153
|
+
});
|
|
154
|
+
const deleteResults = await Promise.allSettled(itemsToDelete.map((item) => dynamodbClient.deleteItem({
|
|
155
|
+
TableName,
|
|
156
|
+
Key: {
|
|
157
|
+
PK: item.PK,
|
|
158
|
+
SK: item.SK,
|
|
159
|
+
},
|
|
160
|
+
})));
|
|
161
|
+
errorContext.deleteResults = deleteResults;
|
|
162
|
+
if (deleteResults.some((result) => result.status === 'rejected' &&
|
|
163
|
+
!(result.reason instanceof ConditionalCheckFailedException))) {
|
|
164
|
+
throw new StandardError('REPLICATION_ERROR', 'Replication error', null, errorContext);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
console.error('====REPLICATION_ERROR', error);
|
|
170
|
+
console.log('====REPLICATION_ERROR errorContext', JSON.stringify(errorContext, null, 2));
|
|
171
|
+
batchItemFailures.push({
|
|
172
|
+
itemIdentifier: record.dynamodb?.SequenceNumber || '',
|
|
173
|
+
});
|
|
174
|
+
// immediately return to prevent processing the rest
|
|
175
|
+
// because stream will restart from this point again
|
|
176
|
+
return { batchItemFailures };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return { batchItemFailures };
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=replication-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-processor.js","sourceRoot":"","sources":["../../processors/replication-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Entity as EntityType } from '@monorise/base';
|
|
2
|
+
import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
|
|
3
|
+
export type EventDetailBody = {
|
|
4
|
+
entityType: EntityType;
|
|
5
|
+
entityId: string;
|
|
6
|
+
data: Record<string, any>;
|
|
7
|
+
};
|
|
8
|
+
export declare const handler: (ev: SQSEvent) => Promise<{
|
|
9
|
+
batchItemFailures: SQSBatchItemFailure[];
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=tag-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-processor.d.ts","sourceRoot":"","sources":["../../processors/tag-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOhE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B,CAAC;AA0FF,eAAO,MAAM,OAAO,GAAU,IAAI,QAAQ;;EAuEzC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { parseSQSBusEvent } from '#/helpers/event';
|
|
2
|
+
import { EntityConfig } from '#/lambda-layer/monorise';
|
|
3
|
+
import { DependencyContainer } from '#/services/DependencyContainer';
|
|
4
|
+
const container = new DependencyContainer();
|
|
5
|
+
function compareTags(existingTags, newTags) {
|
|
6
|
+
const oldMap = new Map(existingTags.map((item) => [`${item.group}#${item.sortValue}`, item]));
|
|
7
|
+
const newMap = new Map(newTags.map((item) => [`${item.group}#${item.sortValue}`, item]));
|
|
8
|
+
const remain = [];
|
|
9
|
+
const oldDiff = [];
|
|
10
|
+
const newDiff = [];
|
|
11
|
+
for (const [key, oldItem] of oldMap.entries()) {
|
|
12
|
+
if (newMap.has(key)) {
|
|
13
|
+
remain.push(oldItem);
|
|
14
|
+
newMap.delete(key); // Remove from newMap as it's already in remain
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
oldDiff.push(oldItem);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Remaining entries in newMap are new
|
|
21
|
+
for (const newItem of newMap.values()) {
|
|
22
|
+
newDiff.push(newItem);
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
old: oldDiff,
|
|
26
|
+
new: newDiff,
|
|
27
|
+
remain,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
async function batchUpdateTags({ tagName, entity, diff, }) {
|
|
31
|
+
if (!entity.entityId) {
|
|
32
|
+
throw new Error('entityId is required');
|
|
33
|
+
}
|
|
34
|
+
const { old: tagsToRemove, new: tagsToAdd } = diff;
|
|
35
|
+
const { entityType, entityId } = entity;
|
|
36
|
+
const removePromises = tagsToRemove.reduce((acc, tag) => [
|
|
37
|
+
...acc,
|
|
38
|
+
container.tagRepository.deleteTag({
|
|
39
|
+
tagName,
|
|
40
|
+
group: tag.group,
|
|
41
|
+
sortValue: tag.sortValue,
|
|
42
|
+
entityType,
|
|
43
|
+
entityId,
|
|
44
|
+
}),
|
|
45
|
+
], []);
|
|
46
|
+
const addPromises = tagsToAdd.reduce((acc, tag) => [
|
|
47
|
+
...acc,
|
|
48
|
+
container.tagRepository.createTag({
|
|
49
|
+
tagName,
|
|
50
|
+
group: tag.group,
|
|
51
|
+
sortValue: tag.sortValue,
|
|
52
|
+
entity,
|
|
53
|
+
}),
|
|
54
|
+
], []);
|
|
55
|
+
await Promise.all([...removePromises, ...addPromises]);
|
|
56
|
+
}
|
|
57
|
+
export const handler = async (ev) => {
|
|
58
|
+
const batchItemFailures = [];
|
|
59
|
+
for (const record of ev.Records) {
|
|
60
|
+
const body = parseSQSBusEvent(record.body);
|
|
61
|
+
const { detail } = body;
|
|
62
|
+
const { entityType, entityId } = detail;
|
|
63
|
+
const errorContext = {};
|
|
64
|
+
errorContext.body = body;
|
|
65
|
+
try {
|
|
66
|
+
const tagConfigs = EntityConfig[entityType]?.tags;
|
|
67
|
+
if (!tagConfigs || !tagConfigs.length) {
|
|
68
|
+
// skip if entity has no tag configs
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
await container.tagRepository.createLock({
|
|
72
|
+
entityType,
|
|
73
|
+
entityId,
|
|
74
|
+
});
|
|
75
|
+
for (const tagConfig of tagConfigs) {
|
|
76
|
+
const { name, processor } = tagConfig;
|
|
77
|
+
const existingTags = await container.tagRepository.getExistingTags({
|
|
78
|
+
entityType,
|
|
79
|
+
entityId,
|
|
80
|
+
tagName: name,
|
|
81
|
+
});
|
|
82
|
+
errorContext.existingTags = existingTags;
|
|
83
|
+
const entity = await container.entityRepository.getEntity(entityType, entityId);
|
|
84
|
+
errorContext.entity = entity;
|
|
85
|
+
const newTags = await processor(entity);
|
|
86
|
+
errorContext.newTags = newTags;
|
|
87
|
+
const diff = compareTags(existingTags, newTags);
|
|
88
|
+
errorContext.diff = diff;
|
|
89
|
+
await batchUpdateTags({
|
|
90
|
+
tagName: name,
|
|
91
|
+
entity,
|
|
92
|
+
diff,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
await container.tagRepository.deleteLock({
|
|
96
|
+
entityType,
|
|
97
|
+
entityId,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
console.log('===TAG-PROCESSOR ERROR===', err, JSON.stringify({ errorContext }, null, 2));
|
|
102
|
+
batchItemFailures.push({ itemIdentifier: record.messageId });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return { batchItemFailures };
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=tag-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-processor.js","sourceRoot":"","sources":["../../processors/tag-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import type { publishEvent as publishEventType } from '#/helpers/event';
|
|
3
|
+
import { DbUtils } from '#/data/DbUtils';
|
|
4
|
+
import { EntityRepository } from '#/data/Entity';
|
|
5
|
+
import { EventUtils } from '#/data/EventUtils';
|
|
6
|
+
import { MutualRepository } from '#/data/Mutual';
|
|
7
|
+
import { TagRepository } from '#/data/Tag';
|
|
8
|
+
import { CreateEntityController } from '#/controllers/entity/create-entity.controller';
|
|
9
|
+
import { DeleteEntityController } from '#/controllers/entity/delete-entity.controller';
|
|
10
|
+
import { GetEntityController } from '#/controllers/entity/get-entity.controller';
|
|
11
|
+
import { ListEntitiesController } from '#/controllers/entity/list-entities.controller';
|
|
12
|
+
import { UpdateEntityController } from '#/controllers/entity/update-entity.controller';
|
|
13
|
+
import { UpsertEntityController } from '#/controllers/entity/upsert-entity.controller';
|
|
14
|
+
import { CreateMutualController } from '#/controllers/mutual/create-mutual.controller';
|
|
15
|
+
import { DeleteMutualController } from '#/controllers/mutual/delete-mutual.controller';
|
|
16
|
+
import { GetMutualController } from '#/controllers/mutual/get-mutual.controller';
|
|
17
|
+
import { ListEntitiesByEntityController } from '#/controllers/mutual/list-entities-by-entity.controller';
|
|
18
|
+
import { UpdateMutualController } from '#/controllers/mutual/update-mutual.controller';
|
|
19
|
+
import { EntityService } from './entity.service';
|
|
20
|
+
import { MutualService } from './mutual.service';
|
|
21
|
+
import { ListTagsController } from '#/controllers/tag/list-tags.controller';
|
|
22
|
+
export declare class DependencyContainer {
|
|
23
|
+
private _instanceCache;
|
|
24
|
+
private _publishEvent;
|
|
25
|
+
private _tableName;
|
|
26
|
+
constructor();
|
|
27
|
+
createCachedInstance<T extends new (...args: any[]) => any>(ClassRef: T, ...args: ConstructorParameters<T>): InstanceType<T>;
|
|
28
|
+
get coreTable(): string;
|
|
29
|
+
get publishEvent(): typeof publishEventType;
|
|
30
|
+
get dynamodbClient(): DynamoDB;
|
|
31
|
+
get dbUtils(): DbUtils;
|
|
32
|
+
get eventUtils(): EventUtils;
|
|
33
|
+
get entityRepository(): EntityRepository;
|
|
34
|
+
get mutualRepository(): MutualRepository;
|
|
35
|
+
get entityService(): EntityService;
|
|
36
|
+
get mutualService(): MutualService;
|
|
37
|
+
get tagRepository(): TagRepository;
|
|
38
|
+
get getEntityController(): GetEntityController;
|
|
39
|
+
get listEntitiesController(): ListEntitiesController;
|
|
40
|
+
get createEntityController(): CreateEntityController;
|
|
41
|
+
get upsertEntityController(): UpsertEntityController;
|
|
42
|
+
get updateEntityController(): UpdateEntityController;
|
|
43
|
+
get deleteEntityController(): DeleteEntityController;
|
|
44
|
+
get listEntitiesByEntityController(): ListEntitiesByEntityController;
|
|
45
|
+
get getMutualController(): GetMutualController;
|
|
46
|
+
get createMutualController(): CreateMutualController;
|
|
47
|
+
get updateMutualController(): UpdateMutualController;
|
|
48
|
+
get deleteMutualController(): DeleteMutualController;
|
|
49
|
+
get listTagsController(): ListTagsController;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=DependencyContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyContainer.d.ts","sourceRoot":"","sources":["../../services/DependencyContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yDAAyD,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAAS;;IAQ3B,oBAAoB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,QAAQ,EAAE,CAAC,EACX,GAAG,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,YAAY,CAAC,CAAC,CAAC;IAYlB,IAAI,SAAS,IAAI,MAAM,CAKtB;IAED,IAAI,YAAY,IAAI,OAAO,gBAAgB,CAM1C;IAED,IAAI,cAAc,IAAI,QAAQ,CAE7B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAMvC;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAOvC;IAED,IAAI,aAAa,IAAI,aAAa,CAOjC;IAED,IAAI,aAAa,IAAI,aAAa,CASjC;IAED,IAAI,aAAa,IAAI,aAAa,CAMjC;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAMnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,8BAA8B,IAAI,8BAA8B,CAKnE;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAMnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAKnD;IAED,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;CACF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { CORE_TABLE } from '#/configs/service.config';
|
|
3
|
+
import { getDependencies } from '#/helpers/dependencies';
|
|
4
|
+
import { DbUtils } from '#/data/DbUtils';
|
|
5
|
+
import { EntityRepository } from '#/data/Entity';
|
|
6
|
+
import { EventUtils } from '#/data/EventUtils';
|
|
7
|
+
import { MutualRepository } from '#/data/Mutual';
|
|
8
|
+
import { TagRepository } from '#/data/Tag';
|
|
9
|
+
import { CreateEntityController } from '#/controllers/entity/create-entity.controller';
|
|
10
|
+
import { DeleteEntityController } from '#/controllers/entity/delete-entity.controller';
|
|
11
|
+
import { GetEntityController } from '#/controllers/entity/get-entity.controller';
|
|
12
|
+
import { ListEntitiesController } from '#/controllers/entity/list-entities.controller';
|
|
13
|
+
import { UpdateEntityController } from '#/controllers/entity/update-entity.controller';
|
|
14
|
+
import { UpsertEntityController } from '#/controllers/entity/upsert-entity.controller';
|
|
15
|
+
import { CreateMutualController } from '#/controllers/mutual/create-mutual.controller';
|
|
16
|
+
import { DeleteMutualController } from '#/controllers/mutual/delete-mutual.controller';
|
|
17
|
+
import { GetMutualController } from '#/controllers/mutual/get-mutual.controller';
|
|
18
|
+
import { ListEntitiesByEntityController } from '#/controllers/mutual/list-entities-by-entity.controller';
|
|
19
|
+
import { UpdateMutualController } from '#/controllers/mutual/update-mutual.controller';
|
|
20
|
+
import { EntityService } from './entity.service';
|
|
21
|
+
import { MutualService } from './mutual.service';
|
|
22
|
+
import { ListTagsController } from '#/controllers/tag/list-tags.controller';
|
|
23
|
+
export class DependencyContainer {
|
|
24
|
+
_instanceCache;
|
|
25
|
+
_publishEvent;
|
|
26
|
+
_tableName;
|
|
27
|
+
constructor() {
|
|
28
|
+
this._instanceCache = new Map();
|
|
29
|
+
this._publishEvent = null;
|
|
30
|
+
this._tableName = CORE_TABLE;
|
|
31
|
+
}
|
|
32
|
+
createCachedInstance(ClassRef, ...args) {
|
|
33
|
+
const cacheKey = ClassRef.name;
|
|
34
|
+
if (this._instanceCache.has(cacheKey)) {
|
|
35
|
+
return this._instanceCache.get(cacheKey);
|
|
36
|
+
}
|
|
37
|
+
const instance = new ClassRef(...args);
|
|
38
|
+
this._instanceCache.set(cacheKey, instance);
|
|
39
|
+
return instance;
|
|
40
|
+
}
|
|
41
|
+
get coreTable() {
|
|
42
|
+
if (this._tableName)
|
|
43
|
+
return this._tableName;
|
|
44
|
+
this._tableName = CORE_TABLE;
|
|
45
|
+
return this._tableName;
|
|
46
|
+
}
|
|
47
|
+
get publishEvent() {
|
|
48
|
+
// for non class based function you can still have your own way of constructing
|
|
49
|
+
if (this._publishEvent)
|
|
50
|
+
return this._publishEvent;
|
|
51
|
+
this._publishEvent = getDependencies().publishEvent;
|
|
52
|
+
return this._publishEvent;
|
|
53
|
+
}
|
|
54
|
+
get dynamodbClient() {
|
|
55
|
+
return this.createCachedInstance(DynamoDB);
|
|
56
|
+
}
|
|
57
|
+
get dbUtils() {
|
|
58
|
+
return this.createCachedInstance(DbUtils, this.dynamodbClient);
|
|
59
|
+
}
|
|
60
|
+
get eventUtils() {
|
|
61
|
+
return this.createCachedInstance(EventUtils, this.publishEvent);
|
|
62
|
+
}
|
|
63
|
+
get entityRepository() {
|
|
64
|
+
return this.createCachedInstance(EntityRepository, this.coreTable, this.dynamodbClient);
|
|
65
|
+
}
|
|
66
|
+
get mutualRepository() {
|
|
67
|
+
return this.createCachedInstance(MutualRepository, this.coreTable, this.dynamodbClient, this.dbUtils);
|
|
68
|
+
}
|
|
69
|
+
get entityService() {
|
|
70
|
+
return this.createCachedInstance(EntityService, this.entityRepository, this.publishEvent, this.eventUtils);
|
|
71
|
+
}
|
|
72
|
+
get mutualService() {
|
|
73
|
+
return this.createCachedInstance(MutualService, this.entityRepository, this.mutualRepository, this.publishEvent, this.eventUtils, this.dbUtils);
|
|
74
|
+
}
|
|
75
|
+
get tagRepository() {
|
|
76
|
+
return this.createCachedInstance(TagRepository, this.coreTable, this.dynamodbClient);
|
|
77
|
+
}
|
|
78
|
+
get getEntityController() {
|
|
79
|
+
return this.createCachedInstance(GetEntityController, this.entityRepository);
|
|
80
|
+
}
|
|
81
|
+
get listEntitiesController() {
|
|
82
|
+
return this.createCachedInstance(ListEntitiesController, this.entityRepository);
|
|
83
|
+
}
|
|
84
|
+
get createEntityController() {
|
|
85
|
+
return this.createCachedInstance(CreateEntityController, this.entityService);
|
|
86
|
+
}
|
|
87
|
+
get upsertEntityController() {
|
|
88
|
+
return this.createCachedInstance(UpsertEntityController, this.entityRepository, this.publishEvent);
|
|
89
|
+
}
|
|
90
|
+
get updateEntityController() {
|
|
91
|
+
return this.createCachedInstance(UpdateEntityController, this.entityService);
|
|
92
|
+
}
|
|
93
|
+
get deleteEntityController() {
|
|
94
|
+
return this.createCachedInstance(DeleteEntityController, this.entityService);
|
|
95
|
+
}
|
|
96
|
+
get listEntitiesByEntityController() {
|
|
97
|
+
return this.createCachedInstance(ListEntitiesByEntityController, this.mutualRepository);
|
|
98
|
+
}
|
|
99
|
+
get getMutualController() {
|
|
100
|
+
return this.createCachedInstance(GetMutualController, this.mutualRepository);
|
|
101
|
+
}
|
|
102
|
+
get createMutualController() {
|
|
103
|
+
return this.createCachedInstance(CreateMutualController, this.mutualService, this.publishEvent);
|
|
104
|
+
}
|
|
105
|
+
get updateMutualController() {
|
|
106
|
+
return this.createCachedInstance(UpdateMutualController, this.mutualService);
|
|
107
|
+
}
|
|
108
|
+
get deleteMutualController() {
|
|
109
|
+
return this.createCachedInstance(DeleteMutualController, this.mutualService);
|
|
110
|
+
}
|
|
111
|
+
get listTagsController() {
|
|
112
|
+
return this.createCachedInstance(ListTagsController, this.tagRepository);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=DependencyContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyContainer.js","sourceRoot":"","sources":["../../services/DependencyContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Entity as EntityType } from '@monorise/base';
|
|
2
|
+
import type { Entity } from '#/data/Entity';
|
|
3
|
+
import type { EventUtils } from '#/data/EventUtils';
|
|
4
|
+
import type { publishEvent as publishEventType } from '#/helpers/event';
|
|
5
|
+
export declare const afterCreateEntityHook: <T extends EntityType>({ entity, entityPayload, accountId, publishEvent, eventUtils, }: {
|
|
6
|
+
entity: Entity<T>;
|
|
7
|
+
entityPayload?: Record<string, unknown>;
|
|
8
|
+
accountId?: string | string[];
|
|
9
|
+
publishEvent: typeof publishEventType;
|
|
10
|
+
eventUtils: EventUtils;
|
|
11
|
+
}) => Promise<void>;
|
|
12
|
+
//# sourceMappingURL=entity-service-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-service-lifecycle.d.ts","sourceRoot":"","sources":["../../services/entity-service-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxE,eAAO,MAAM,qBAAqB,GAAU,CAAC,SAAS,UAAU,EAAE,iEAM/D;IACD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,gBAAgB,CAAC;IACtC,UAAU,EAAE,UAAU,CAAC;CACxB,kBAqBA,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EntityConfig } from '#/lambda-layer/monorise';
|
|
2
|
+
import { EVENT } from '#/types/event';
|
|
3
|
+
export const afterCreateEntityHook = async ({ entity, entityPayload = {}, accountId, publishEvent, eventUtils, }) => {
|
|
4
|
+
const mutualSchema = EntityConfig[entity.entityType].mutual?.mutualSchema;
|
|
5
|
+
const parsedMutualPayload = mutualSchema?.parse(entityPayload);
|
|
6
|
+
if (parsedMutualPayload) {
|
|
7
|
+
await eventUtils.publishCreateMutualsEvent({
|
|
8
|
+
entity,
|
|
9
|
+
mutualPayload: parsedMutualPayload,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
await publishEvent({
|
|
13
|
+
event: EVENT.CORE.ENTITY_CREATED,
|
|
14
|
+
payload: {
|
|
15
|
+
entityType: entity.entityType,
|
|
16
|
+
entityId: entity.entityId,
|
|
17
|
+
data: entity.data,
|
|
18
|
+
createdByAccountId: accountId,
|
|
19
|
+
publishedAt: entity.updatedAt || new Date().toISOString(),
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=entity-service-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-service-lifecycle.js","sourceRoot":"","sources":["../../services/entity-service-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAwB,EAChE,MAAM,EACN,aAAa,GAAG,EAAE,EAClB,SAAS,EACT,YAAY,EACZ,UAAU,GAOX,EAAE,EAAE;IACH,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC;IAC1E,MAAM,mBAAmB,GAAG,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAE/D,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,UAAU,CAAC,yBAAyB,CAAC;YACzC,MAAM;YACN,aAAa,EAAE,mBAAmB;SACnC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;QAChC,OAAO,EAAE;YACP,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,kBAAkB,EAAE,SAAS;YAC7B,WAAW,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC1D;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Entity, EntitySchemaMap } from '@monorise/base';
|
|
2
|
+
import type { EntityRepository } from '#/data/Entity';
|
|
3
|
+
import type { EventUtils } from '#/data/EventUtils';
|
|
4
|
+
import type { publishEvent as publishEventType } from '#/helpers/event';
|
|
5
|
+
export declare class EntityService {
|
|
6
|
+
private entityRepository;
|
|
7
|
+
private publishEvent;
|
|
8
|
+
private eventUtils;
|
|
9
|
+
constructor(entityRepository: EntityRepository, publishEvent: typeof publishEventType, eventUtils: EventUtils);
|
|
10
|
+
createEntity: <T extends Entity>({ entityType, entityId, entityPayload, accountId, options, }: {
|
|
11
|
+
entityType: T;
|
|
12
|
+
entityPayload: EntitySchemaMap[T];
|
|
13
|
+
entityId?: string;
|
|
14
|
+
accountId?: string | string[];
|
|
15
|
+
options?: {
|
|
16
|
+
createAndUpdateDatetime?: string;
|
|
17
|
+
mutualId?: string;
|
|
18
|
+
};
|
|
19
|
+
}) => Promise<import("#/data/Entity").Entity<T>>;
|
|
20
|
+
updateEntity: <T extends Entity>({ entityType, entityId, entityPayload, accountId, }: {
|
|
21
|
+
entityType: T;
|
|
22
|
+
entityId: string;
|
|
23
|
+
entityPayload: Partial<EntitySchemaMap[T]>;
|
|
24
|
+
accountId?: string | string[];
|
|
25
|
+
}) => Promise<import("#/data/Entity").Entity<T>>;
|
|
26
|
+
deleteEntity: <T extends Entity>({ entityType, entityId, accountId, }: {
|
|
27
|
+
entityType: T;
|
|
28
|
+
entityId: string;
|
|
29
|
+
accountId?: string | string[];
|
|
30
|
+
}) => Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=entity.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.service.d.ts","sourceRoot":"","sources":["../../services/entity.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASxE,qBAAa,aAAa;IAEtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;gBAFV,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,OAAO,gBAAgB,EACrC,UAAU,EAAE,UAAU;IAGhC,YAAY,GAAU,CAAC,SAAS,MAAM,EAAE,8DAMrC;QACD,UAAU,EAAE,CAAC,CAAC;QACd,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE;YACR,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,gDAsDC;IAEF,YAAY,GAAU,CAAC,SAAS,MAAM,EAAE,qDAKrC;QACD,UAAU,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC/B,gDA4EC;IAEF,YAAY,GAAU,CAAC,SAAS,MAAM,EAAE,sCAIrC;QACD,UAAU,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC/B,mBAWC;CACH"}
|