@monorise/core 1.0.0 → 1.0.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.
Files changed (286) hide show
  1. package/package.json +1 -1
  2. package/tsconfig.json +1 -2
  3. package/dist/mock/container.d.ts +0 -3
  4. package/dist/mock/container.d.ts.map +0 -1
  5. package/dist/mock/container.js +0 -3
  6. package/dist/mock/container.js.map +0 -1
  7. package/dist/packages/core/configs/service.config.d.ts +0 -5
  8. package/dist/packages/core/configs/service.config.d.ts.map +0 -1
  9. package/dist/packages/core/configs/service.config.js +0 -5
  10. package/dist/packages/core/configs/service.config.js.map +0 -1
  11. package/dist/packages/core/constants/table.d.ts +0 -4
  12. package/dist/packages/core/constants/table.d.ts.map +0 -1
  13. package/dist/packages/core/constants/table.js +0 -4
  14. package/dist/packages/core/constants/table.js.map +0 -1
  15. package/dist/packages/core/controllers/entity/create-entity.controller.d.ts +0 -8
  16. package/dist/packages/core/controllers/entity/create-entity.controller.d.ts.map +0 -1
  17. package/dist/packages/core/controllers/entity/create-entity.controller.js +0 -44
  18. package/dist/packages/core/controllers/entity/create-entity.controller.js.map +0 -1
  19. package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts +0 -8
  20. package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts.map +0 -1
  21. package/dist/packages/core/controllers/entity/delete-entity.controller.js +0 -29
  22. package/dist/packages/core/controllers/entity/delete-entity.controller.js.map +0 -1
  23. package/dist/packages/core/controllers/entity/get-entity.controller.d.ts +0 -8
  24. package/dist/packages/core/controllers/entity/get-entity.controller.d.ts.map +0 -1
  25. package/dist/packages/core/controllers/entity/get-entity.controller.js +0 -24
  26. package/dist/packages/core/controllers/entity/get-entity.controller.js.map +0 -1
  27. package/dist/packages/core/controllers/entity/list-entities.controller.d.ts +0 -8
  28. package/dist/packages/core/controllers/entity/list-entities.controller.d.ts.map +0 -1
  29. package/dist/packages/core/controllers/entity/list-entities.controller.js +0 -56
  30. package/dist/packages/core/controllers/entity/list-entities.controller.js.map +0 -1
  31. package/dist/packages/core/controllers/entity/update-entity.controller.d.ts +0 -8
  32. package/dist/packages/core/controllers/entity/update-entity.controller.d.ts.map +0 -1
  33. package/dist/packages/core/controllers/entity/update-entity.controller.js +0 -45
  34. package/dist/packages/core/controllers/entity/update-entity.controller.js.map +0 -1
  35. package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts +0 -10
  36. package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts.map +0 -1
  37. package/dist/packages/core/controllers/entity/upsert-entity.controller.js +0 -73
  38. package/dist/packages/core/controllers/entity/upsert-entity.controller.js.map +0 -1
  39. package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts +0 -10
  40. package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts.map +0 -1
  41. package/dist/packages/core/controllers/mutual/create-mutual.controller.js +0 -70
  42. package/dist/packages/core/controllers/mutual/create-mutual.controller.js.map +0 -1
  43. package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts +0 -8
  44. package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts.map +0 -1
  45. package/dist/packages/core/controllers/mutual/delete-mutual.controller.js +0 -31
  46. package/dist/packages/core/controllers/mutual/delete-mutual.controller.js.map +0 -1
  47. package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts +0 -8
  48. package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts.map +0 -1
  49. package/dist/packages/core/controllers/mutual/get-mutual.controller.js +0 -24
  50. package/dist/packages/core/controllers/mutual/get-mutual.controller.js.map +0 -1
  51. package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts +0 -8
  52. package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts.map +0 -1
  53. package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js +0 -56
  54. package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js.map +0 -1
  55. package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts +0 -8
  56. package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts.map +0 -1
  57. package/dist/packages/core/controllers/mutual/update-mutual.controller.js +0 -40
  58. package/dist/packages/core/controllers/mutual/update-mutual.controller.js.map +0 -1
  59. package/dist/packages/core/controllers/setupRoutes.d.ts +0 -3
  60. package/dist/packages/core/controllers/setupRoutes.d.ts.map +0 -1
  61. package/dist/packages/core/controllers/setupRoutes.js +0 -33
  62. package/dist/packages/core/controllers/setupRoutes.js.map +0 -1
  63. package/dist/packages/core/controllers/tag/list-tags.controller.d.ts +0 -8
  64. package/dist/packages/core/controllers/tag/list-tags.controller.d.ts.map +0 -1
  65. package/dist/packages/core/controllers/tag/list-tags.controller.js +0 -48
  66. package/dist/packages/core/controllers/tag/list-tags.controller.js.map +0 -1
  67. package/dist/packages/core/data/DbUtils.d.ts +0 -7
  68. package/dist/packages/core/data/DbUtils.d.ts.map +0 -1
  69. package/dist/packages/core/data/DbUtils.js +0 -23
  70. package/dist/packages/core/data/DbUtils.js.map +0 -1
  71. package/dist/packages/core/data/Entity.d.ts +0 -71
  72. package/dist/packages/core/data/Entity.d.ts.map +0 -1
  73. package/dist/packages/core/data/Entity.js +0 -358
  74. package/dist/packages/core/data/Entity.js.map +0 -1
  75. package/dist/packages/core/data/EventUtils.d.ts +0 -14
  76. package/dist/packages/core/data/EventUtils.d.ts.map +0 -1
  77. package/dist/packages/core/data/EventUtils.js +0 -34
  78. package/dist/packages/core/data/EventUtils.js.map +0 -1
  79. package/dist/packages/core/data/FileObject.d.ts +0 -62
  80. package/dist/packages/core/data/FileObject.d.ts.map +0 -1
  81. package/dist/packages/core/data/FileObject.js +0 -13
  82. package/dist/packages/core/data/FileObject.js.map +0 -1
  83. package/dist/packages/core/data/Mutual.d.ts +0 -94
  84. package/dist/packages/core/data/Mutual.d.ts.map +0 -1
  85. package/dist/packages/core/data/Mutual.js +0 -492
  86. package/dist/packages/core/data/Mutual.js.map +0 -1
  87. package/dist/packages/core/data/ProjectionExpression.d.ts +0 -6
  88. package/dist/packages/core/data/ProjectionExpression.d.ts.map +0 -1
  89. package/dist/packages/core/data/ProjectionExpression.js +0 -5
  90. package/dist/packages/core/data/ProjectionExpression.js.map +0 -1
  91. package/dist/packages/core/data/Tag.d.ts +0 -77
  92. package/dist/packages/core/data/Tag.d.ts.map +0 -1
  93. package/dist/packages/core/data/Tag.js +0 -330
  94. package/dist/packages/core/data/Tag.js.map +0 -1
  95. package/dist/packages/core/data/abstract/Item.base.d.ts +0 -11
  96. package/dist/packages/core/data/abstract/Item.base.d.ts.map +0 -1
  97. package/dist/packages/core/data/abstract/Item.base.js +0 -9
  98. package/dist/packages/core/data/abstract/Item.base.js.map +0 -1
  99. package/dist/packages/core/data/abstract/Repository.base.d.ts +0 -11
  100. package/dist/packages/core/data/abstract/Repository.base.d.ts.map +0 -1
  101. package/dist/packages/core/data/abstract/Repository.base.js +0 -54
  102. package/dist/packages/core/data/abstract/Repository.base.js.map +0 -1
  103. package/dist/packages/core/errors/api-error.d.ts +0 -23
  104. package/dist/packages/core/errors/api-error.d.ts.map +0 -1
  105. package/dist/packages/core/errors/api-error.js +0 -26
  106. package/dist/packages/core/errors/api-error.js.map +0 -1
  107. package/dist/packages/core/errors/extendable-error.d.ts +0 -18
  108. package/dist/packages/core/errors/extendable-error.d.ts.map +0 -1
  109. package/dist/packages/core/errors/extendable-error.js +0 -22
  110. package/dist/packages/core/errors/extendable-error.js.map +0 -1
  111. package/dist/packages/core/errors/standard-error.d.ts +0 -11
  112. package/dist/packages/core/errors/standard-error.d.ts.map +0 -1
  113. package/dist/packages/core/errors/standard-error.js +0 -21
  114. package/dist/packages/core/errors/standard-error.js.map +0 -1
  115. package/dist/packages/core/helpers/dependencies.d.ts +0 -8
  116. package/dist/packages/core/helpers/dependencies.d.ts.map +0 -1
  117. package/dist/packages/core/helpers/dependencies.js +0 -10
  118. package/dist/packages/core/helpers/dependencies.js.map +0 -1
  119. package/dist/packages/core/helpers/event.d.ts +0 -22
  120. package/dist/packages/core/helpers/event.d.ts.map +0 -1
  121. package/dist/packages/core/helpers/event.js +0 -47
  122. package/dist/packages/core/helpers/event.js.map +0 -1
  123. package/dist/packages/core/helpers/fromLastKeyQuery.d.ts +0 -3
  124. package/dist/packages/core/helpers/fromLastKeyQuery.d.ts.map +0 -1
  125. package/dist/packages/core/helpers/fromLastKeyQuery.js +0 -7
  126. package/dist/packages/core/helpers/fromLastKeyQuery.js.map +0 -1
  127. package/dist/packages/core/helpers/sleep.d.ts +0 -2
  128. package/dist/packages/core/helpers/sleep.d.ts.map +0 -1
  129. package/dist/packages/core/helpers/sleep.js +0 -2
  130. package/dist/packages/core/helpers/sleep.js.map +0 -1
  131. package/dist/packages/core/helpers/toLastKeyResponse.d.ts +0 -3
  132. package/dist/packages/core/helpers/toLastKeyResponse.d.ts.map +0 -1
  133. package/dist/packages/core/helpers/toLastKeyResponse.js +0 -7
  134. package/dist/packages/core/helpers/toLastKeyResponse.js.map +0 -1
  135. package/dist/packages/core/index.d.ts +0 -12
  136. package/dist/packages/core/index.d.ts.map +0 -1
  137. package/dist/packages/core/index.js +0 -12
  138. package/dist/packages/core/index.js.map +0 -1
  139. package/dist/packages/core/middlewares/entity-type-check.d.ts +0 -3
  140. package/dist/packages/core/middlewares/entity-type-check.d.ts.map +0 -1
  141. package/dist/packages/core/middlewares/entity-type-check.js +0 -12
  142. package/dist/packages/core/middlewares/entity-type-check.js.map +0 -1
  143. package/dist/packages/core/middlewares/mutual-type-check.d.ts +0 -3
  144. package/dist/packages/core/middlewares/mutual-type-check.d.ts.map +0 -1
  145. package/dist/packages/core/middlewares/mutual-type-check.js +0 -13
  146. package/dist/packages/core/middlewares/mutual-type-check.js.map +0 -1
  147. package/dist/packages/core/mock/container.d.ts +0 -3
  148. package/dist/packages/core/mock/container.d.ts.map +0 -1
  149. package/dist/packages/core/mock/container.js +0 -3
  150. package/dist/packages/core/mock/container.js.map +0 -1
  151. package/dist/packages/core/mock/entity.d.ts +0 -13
  152. package/dist/packages/core/mock/entity.d.ts.map +0 -1
  153. package/dist/packages/core/mock/entity.js +0 -14
  154. package/dist/packages/core/mock/entity.js.map +0 -1
  155. package/dist/packages/core/mock/monorise/admin.d.ts +0 -127
  156. package/dist/packages/core/mock/monorise/admin.d.ts.map +0 -1
  157. package/dist/packages/core/mock/monorise/admin.js +0 -29
  158. package/dist/packages/core/mock/monorise/admin.js.map +0 -1
  159. package/dist/packages/core/mock/monorise/audio.d.ts +0 -324
  160. package/dist/packages/core/mock/monorise/audio.d.ts.map +0 -1
  161. package/dist/packages/core/mock/monorise/audio.js +0 -32
  162. package/dist/packages/core/mock/monorise/audio.js.map +0 -1
  163. package/dist/packages/core/mock/monorise/chapter.d.ts +0 -457
  164. package/dist/packages/core/mock/monorise/chapter.d.ts.map +0 -1
  165. package/dist/packages/core/mock/monorise/chapter.js +0 -81
  166. package/dist/packages/core/mock/monorise/chapter.js.map +0 -1
  167. package/dist/packages/core/mock/monorise/cohort-track.d.ts +0 -118
  168. package/dist/packages/core/mock/monorise/cohort-track.d.ts.map +0 -1
  169. package/dist/packages/core/mock/monorise/cohort-track.js +0 -38
  170. package/dist/packages/core/mock/monorise/cohort-track.js.map +0 -1
  171. package/dist/packages/core/mock/monorise/course-banner.d.ts +0 -149
  172. package/dist/packages/core/mock/monorise/course-banner.d.ts.map +0 -1
  173. package/dist/packages/core/mock/monorise/course-banner.js +0 -24
  174. package/dist/packages/core/mock/monorise/course-banner.js.map +0 -1
  175. package/dist/packages/core/mock/monorise/course.d.ts +0 -311
  176. package/dist/packages/core/mock/monorise/course.d.ts.map +0 -1
  177. package/dist/packages/core/mock/monorise/course.js +0 -128
  178. package/dist/packages/core/mock/monorise/course.js.map +0 -1
  179. package/dist/packages/core/mock/monorise/expert.d.ts +0 -380
  180. package/dist/packages/core/mock/monorise/expert.d.ts.map +0 -1
  181. package/dist/packages/core/mock/monorise/expert.js +0 -32
  182. package/dist/packages/core/mock/monorise/expert.js.map +0 -1
  183. package/dist/packages/core/mock/monorise/index.d.ts +0 -3599
  184. package/dist/packages/core/mock/monorise/index.d.ts.map +0 -1
  185. package/dist/packages/core/mock/monorise/index.js +0 -62
  186. package/dist/packages/core/mock/monorise/index.js.map +0 -1
  187. package/dist/packages/core/mock/monorise/learner-video-progress.d.ts +0 -198
  188. package/dist/packages/core/mock/monorise/learner-video-progress.d.ts.map +0 -1
  189. package/dist/packages/core/mock/monorise/learner-video-progress.js +0 -21
  190. package/dist/packages/core/mock/monorise/learner-video-progress.js.map +0 -1
  191. package/dist/packages/core/mock/monorise/learner.d.ts +0 -390
  192. package/dist/packages/core/mock/monorise/learner.d.ts.map +0 -1
  193. package/dist/packages/core/mock/monorise/learner.js +0 -59
  194. package/dist/packages/core/mock/monorise/learner.js.map +0 -1
  195. package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts +0 -160
  196. package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts.map +0 -1
  197. package/dist/packages/core/mock/monorise/learning-activity-submission.js +0 -17
  198. package/dist/packages/core/mock/monorise/learning-activity-submission.js.map +0 -1
  199. package/dist/packages/core/mock/monorise/learning-activity.d.ts +0 -266
  200. package/dist/packages/core/mock/monorise/learning-activity.d.ts.map +0 -1
  201. package/dist/packages/core/mock/monorise/learning-activity.js +0 -50
  202. package/dist/packages/core/mock/monorise/learning-activity.js.map +0 -1
  203. package/dist/packages/core/mock/monorise/learning-journey-config.d.ts +0 -84
  204. package/dist/packages/core/mock/monorise/learning-journey-config.d.ts.map +0 -1
  205. package/dist/packages/core/mock/monorise/learning-journey-config.js +0 -27
  206. package/dist/packages/core/mock/monorise/learning-journey-config.js.map +0 -1
  207. package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts +0 -290
  208. package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts.map +0 -1
  209. package/dist/packages/core/mock/monorise/learning-journey-progress.js +0 -46
  210. package/dist/packages/core/mock/monorise/learning-journey-progress.js.map +0 -1
  211. package/dist/packages/core/mock/monorise/module.d.ts +0 -211
  212. package/dist/packages/core/mock/monorise/module.d.ts.map +0 -1
  213. package/dist/packages/core/mock/monorise/module.js +0 -91
  214. package/dist/packages/core/mock/monorise/module.js.map +0 -1
  215. package/dist/packages/core/mock/monorise/organization.d.ts +0 -346
  216. package/dist/packages/core/mock/monorise/organization.d.ts.map +0 -1
  217. package/dist/packages/core/mock/monorise/organization.js +0 -54
  218. package/dist/packages/core/mock/monorise/organization.js.map +0 -1
  219. package/dist/packages/core/mock/monorise/pathway.d.ts +0 -267
  220. package/dist/packages/core/mock/monorise/pathway.d.ts.map +0 -1
  221. package/dist/packages/core/mock/monorise/pathway.js +0 -221
  222. package/dist/packages/core/mock/monorise/pathway.js.map +0 -1
  223. package/dist/packages/core/mock/monorise/phase.d.ts +0 -580
  224. package/dist/packages/core/mock/monorise/phase.d.ts.map +0 -1
  225. package/dist/packages/core/mock/monorise/phase.js +0 -166
  226. package/dist/packages/core/mock/monorise/phase.js.map +0 -1
  227. package/dist/packages/core/mock/monorise/reference.d.ts +0 -171
  228. package/dist/packages/core/mock/monorise/reference.d.ts.map +0 -1
  229. package/dist/packages/core/mock/monorise/reference.js +0 -25
  230. package/dist/packages/core/mock/monorise/reference.js.map +0 -1
  231. package/dist/packages/core/mock/monorise/track.d.ts +0 -617
  232. package/dist/packages/core/mock/monorise/track.d.ts.map +0 -1
  233. package/dist/packages/core/mock/monorise/track.js +0 -270
  234. package/dist/packages/core/mock/monorise/track.js.map +0 -1
  235. package/dist/packages/core/mock/monorise/video.d.ts +0 -346
  236. package/dist/packages/core/mock/monorise/video.d.ts.map +0 -1
  237. package/dist/packages/core/mock/monorise/video.js +0 -33
  238. package/dist/packages/core/mock/monorise/video.js.map +0 -1
  239. package/dist/packages/core/mock/monorise.d.ts +0 -6
  240. package/dist/packages/core/mock/monorise.d.ts.map +0 -1
  241. package/dist/packages/core/mock/monorise.js +0 -5
  242. package/dist/packages/core/mock/monorise.js.map +0 -1
  243. package/dist/packages/core/processors/create-entity-processor.d.ts +0 -5
  244. package/dist/packages/core/processors/create-entity-processor.d.ts.map +0 -1
  245. package/dist/packages/core/processors/create-entity-processor.js +0 -32
  246. package/dist/packages/core/processors/create-entity-processor.js.map +0 -1
  247. package/dist/packages/core/processors/mutual-processor.d.ts +0 -15
  248. package/dist/packages/core/processors/mutual-processor.d.ts.map +0 -1
  249. package/dist/packages/core/processors/mutual-processor.js +0 -128
  250. package/dist/packages/core/processors/mutual-processor.js.map +0 -1
  251. package/dist/packages/core/processors/prejoin-processor.d.ts +0 -12
  252. package/dist/packages/core/processors/prejoin-processor.d.ts.map +0 -1
  253. package/dist/packages/core/processors/prejoin-processor.js +0 -150
  254. package/dist/packages/core/processors/prejoin-processor.js.map +0 -1
  255. package/dist/packages/core/processors/replication-processor.d.ts +0 -8
  256. package/dist/packages/core/processors/replication-processor.d.ts.map +0 -1
  257. package/dist/packages/core/processors/replication-processor.js +0 -180
  258. package/dist/packages/core/processors/replication-processor.js.map +0 -1
  259. package/dist/packages/core/processors/tag-processor.d.ts +0 -11
  260. package/dist/packages/core/processors/tag-processor.d.ts.map +0 -1
  261. package/dist/packages/core/processors/tag-processor.js +0 -106
  262. package/dist/packages/core/processors/tag-processor.js.map +0 -1
  263. package/dist/packages/core/services/DependencyContainer.d.ts +0 -51
  264. package/dist/packages/core/services/DependencyContainer.d.ts.map +0 -1
  265. package/dist/packages/core/services/DependencyContainer.js +0 -115
  266. package/dist/packages/core/services/DependencyContainer.js.map +0 -1
  267. package/dist/packages/core/services/entity-service-lifecycle.d.ts +0 -12
  268. package/dist/packages/core/services/entity-service-lifecycle.d.ts.map +0 -1
  269. package/dist/packages/core/services/entity-service-lifecycle.js +0 -23
  270. package/dist/packages/core/services/entity-service-lifecycle.js.map +0 -1
  271. package/dist/packages/core/services/entity.service.d.ts +0 -32
  272. package/dist/packages/core/services/entity.service.d.ts.map +0 -1
  273. package/dist/packages/core/services/entity.service.js +0 -121
  274. package/dist/packages/core/services/entity.service.js.map +0 -1
  275. package/dist/packages/core/services/mutual.service.d.ts +0 -64
  276. package/dist/packages/core/services/mutual.service.d.ts.map +0 -1
  277. package/dist/packages/core/services/mutual.service.js +0 -144
  278. package/dist/packages/core/services/mutual.service.js.map +0 -1
  279. package/dist/packages/core/types/entity.type.d.ts +0 -20
  280. package/dist/packages/core/types/entity.type.d.ts.map +0 -1
  281. package/dist/packages/core/types/entity.type.js +0 -2
  282. package/dist/packages/core/types/entity.type.js.map +0 -1
  283. package/dist/shared/types/event.d.ts +0 -72
  284. package/dist/shared/types/event.d.ts.map +0 -1
  285. package/dist/shared/types/event.js +0 -74
  286. package/dist/shared/types/event.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"monorise.js","sourceRoot":"","sources":["../../../../mock/monorise.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAyC,EAAE,CAAC;AAC9D,MAAM,kBAAkB,GAAa,EAAE,CAAC;AACxC,MAAM,wBAAwB,GAAa,EAAE,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
2
- export declare const handler: (ev: SQSEvent) => Promise<{
3
- batchItemFailures: SQSBatchItemFailure[];
4
- }>;
5
- //# sourceMappingURL=create-entity-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-entity-processor.d.ts","sourceRoot":"","sources":["../../../../processors/create-entity-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgBhE,eAAO,MAAM,OAAO,GAAU,IAAI,QAAQ;;EAmCzC,CAAC"}
@@ -1,32 +0,0 @@
1
- import { StandardError } from '#/errors/standard-error';
2
- import { parseSQSBusEvent } from '#/helpers/event';
3
- import { container } from '#/lambda-layer/container';
4
- export const handler = async (ev) => {
5
- const { entityService } = container;
6
- const batchItemFailures = [];
7
- for (const record of ev.Records) {
8
- const errorContext = {};
9
- const body = parseSQSBusEvent(record.body);
10
- const { detail } = body;
11
- const { entityType, entityId, entityPayload, accountId, options } = detail;
12
- errorContext.body = body;
13
- try {
14
- await entityService.createEntity({
15
- entityType,
16
- entityId,
17
- entityPayload,
18
- accountId,
19
- options,
20
- });
21
- }
22
- catch (err) {
23
- console.error('=====CREATE_ENTITY_PROCESSOR_ERROR=====', err, JSON.stringify({ errorContext }, null, 2));
24
- if (err instanceof StandardError && err.code === 'INVALID_ENTITY_TYPE') {
25
- continue; // do not retry
26
- }
27
- batchItemFailures.push({ itemIdentifier: record.messageId });
28
- }
29
- }
30
- return { batchItemFailures };
31
- };
32
- //# sourceMappingURL=create-entity-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-entity-processor.js","sourceRoot":"","sources":["../../../../processors/create-entity-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAarD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IAEpD,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAA4B,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,gBAAgB,CAAkB,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3E,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,YAAY,CAAC;gBAC/B,UAAU;gBACV,QAAQ;gBACR,aAAa;gBACb,SAAS;gBACT,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,yCAAyC,EACzC,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1C,CAAC;YAEF,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACvE,SAAS,CAAC,eAAe;YAC3B,CAAC;YAED,iBAAiB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { Entity } from '@monorise/base';
2
- import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
3
- export type EventDetailBody = {
4
- mutualIds: string[];
5
- byEntityType: Entity;
6
- byEntityId: string;
7
- entityType: Entity;
8
- field: string;
9
- publishedAt: string;
10
- customContext?: Record<string, unknown>;
11
- };
12
- export declare const handler: (ev: SQSEvent) => Promise<{
13
- batchItemFailures: SQSBatchItemFailure[];
14
- }>;
15
- //# sourceMappingURL=mutual-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutual-processor.d.ts","sourceRoot":"","sources":["../../../../processors/mutual-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQhE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAOF,eAAO,MAAM,OAAO,GAAU,IAAI,QAAQ;;EA0OzC,CAAC"}
@@ -1,128 +0,0 @@
1
- import { TransactionCanceledException } from '@aws-sdk/client-dynamodb';
2
- import { Mutual } from '#/data/Mutual';
3
- import { StandardError } from '#/errors/standard-error';
4
- import { parseSQSBusEvent } from '#/helpers/event';
5
- import { container } from '#/lambda-layer/container';
6
- import { EntityConfig } from '#/lambda-layer/monorise';
7
- import { EVENT } from '#/shared/types/event';
8
- const processEntities = async (entityIds, action) => Promise.allSettled(entityIds.map(action));
9
- export const handler = async (ev) => {
10
- const batchItemFailures = [];
11
- const { entityRepository, mutualRepository, publishEvent } = container;
12
- await Promise.allSettled(ev.Records.map(async (record) => {
13
- const errorContext = {};
14
- const body = parseSQSBusEvent(record.body);
15
- const { detail } = body;
16
- const { mutualIds, byEntityType, byEntityId, entityType, field, publishedAt, customContext, } = detail;
17
- errorContext.body = body;
18
- try {
19
- // Validate if mutual configuration exists
20
- const config = EntityConfig[byEntityType]?.mutual?.mutualFields?.[field];
21
- if (!config) {
22
- throw new StandardError('INVALID_MUTUAL', 'Invalid mutual');
23
- }
24
- const mutualDataProcessor = config.mutualDataProcessor ?? (() => ({}));
25
- // Create a lock to prevent concurrent modifications
26
- await mutualRepository.createMutualLock({
27
- byEntityType,
28
- byEntityId,
29
- entityType,
30
- version: publishedAt,
31
- });
32
- // Fetch related entities in parallel
33
- const [byEntity, mutuals] = await Promise.all([
34
- entityRepository.getEntity(byEntityType, byEntityId),
35
- mutualRepository.listEntitiesByEntity(byEntityType, byEntityId, entityType),
36
- ]);
37
- // Determine which entities were added, removed, or need updates
38
- const existingEntityIds = new Set(mutuals.items.map((m) => m.entityId));
39
- const newMutualIds = new Set(mutualIds ?? []);
40
- const addedEntityIds = [...newMutualIds].filter((id) => !existingEntityIds.has(id));
41
- const deletedEntityIds = [...existingEntityIds].filter((id) => !newMutualIds.has(id));
42
- const toUpdateEntityIds = [...existingEntityIds].filter((id) => newMutualIds.has(id));
43
- errorContext.existingEntityIds = [...existingEntityIds];
44
- errorContext.addedEntityIds = addedEntityIds;
45
- errorContext.deletedEntityIds = deletedEntityIds;
46
- errorContext.toUpdateEntityIds = toUpdateEntityIds;
47
- const addEntities = await processEntities(addedEntityIds, async (id) => {
48
- const entity = await entityRepository.getEntity(entityType, id);
49
- await mutualRepository.createMutual(byEntityType, byEntityId, byEntity.data, entityType, id, entity.data, mutualDataProcessor(mutualIds, new Mutual(byEntityType, byEntityId, byEntity.data, entityType, id, entity.data, {}), customContext), {
50
- ConditionExpression: 'attribute_not_exists(#mutualUpdatedAt) OR #mutualUpdatedAt < :publishedAt',
51
- ExpressionAttributeNames: {
52
- '#mutualUpdatedAt': 'mutualUpdatedAt',
53
- },
54
- ExpressionAttributeValues: {
55
- ':publishedAt': { S: publishedAt },
56
- },
57
- createAndUpdateDatetime: new Date(publishedAt),
58
- });
59
- });
60
- const deleteEntities = await processEntities(deletedEntityIds, async (id) => {
61
- await mutualRepository.deleteMutual(byEntityType, byEntityId, entityType, id, {
62
- ConditionExpression: 'attribute_exists(PK) AND #mutualUpdatedAt < :publishedAt',
63
- ExpressionAttributeNames: {
64
- '#mutualUpdatedAt': 'mutualUpdatedAt',
65
- },
66
- ExpressionAttributeValues: {
67
- ':publishedAt': { S: publishedAt },
68
- },
69
- });
70
- });
71
- const updateEntities = await processEntities(toUpdateEntityIds, async (id) => {
72
- await mutualRepository.updateMutual(byEntityType, byEntityId, entityType, id, {
73
- mutualData: mutualDataProcessor(mutualIds, new Mutual(byEntityType, byEntityId, byEntity.data, entityType, id, {}, {}), customContext),
74
- mutualUpdatedAt: publishedAt,
75
- }, {
76
- ConditionExpression: 'attribute_exists(PK) AND #mutualUpdatedAt < :publishedAt',
77
- ExpressionAttributeNames: {
78
- '#mutualUpdatedAt': 'mutualUpdatedAt',
79
- },
80
- ExpressionAttributeValues: {
81
- ':publishedAt': { S: publishedAt },
82
- },
83
- });
84
- });
85
- errorContext.results = { addEntities, deleteEntities, updateEntities };
86
- // release lock
87
- await mutualRepository.deleteMutualLock({
88
- byEntityType,
89
- byEntityId,
90
- entityType,
91
- });
92
- // Check for unprocessable errors in processing results
93
- if ([...addEntities, ...deleteEntities, ...updateEntities].some((res) => res.status === 'rejected' &&
94
- !(res.reason instanceof TransactionCanceledException ||
95
- (res.reason instanceof StandardError &&
96
- res.reason.code === 'MUTUAL_NOT_FOUND')))) {
97
- throw new StandardError('MUTUAL_PROCESSOR_ERROR', 'Mutual processor error', null, errorContext);
98
- }
99
- await publishEvent({
100
- event: EVENT.CORE.ENTITY_MUTUAL_PROCESSED,
101
- payload: {
102
- byEntityType,
103
- byEntityId,
104
- entityType,
105
- field,
106
- mutualIds,
107
- publishedAt,
108
- },
109
- });
110
- }
111
- catch (err) {
112
- console.error('=====MUTUAL_PROCESSOR_ERROR=====', err, JSON.stringify({ errorContext }, null, 2));
113
- // Release the lock to avoid deadlocks
114
- await mutualRepository.deleteMutualLock({
115
- byEntityType,
116
- byEntityId,
117
- entityType,
118
- });
119
- if (err instanceof StandardError &&
120
- ['INVALID_MUTUAL', 'MUTUAL_LOCK_CONFLICT'].includes(err.code)) {
121
- return;
122
- }
123
- batchItemFailures.push({ itemIdentifier: record.messageId });
124
- }
125
- }));
126
- return { batchItemFailures };
127
- };
128
- //# sourceMappingURL=mutual-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutual-processor.js","sourceRoot":"","sources":["../../../../processors/mutual-processor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { Entity } from '@monorise/base';
2
- import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
3
- export type EventDetailBody = {
4
- byEntityType: Entity;
5
- byEntityId: string;
6
- entityType: Entity;
7
- publishedAt: string;
8
- };
9
- export declare const handler: (ev: SQSEvent) => Promise<{
10
- batchItemFailures: SQSBatchItemFailure[];
11
- }>;
12
- //# sourceMappingURL=prejoin-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prejoin-processor.d.ts","sourceRoot":"","sources":["../../../../processors/prejoin-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWhE,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAyLF,eAAO,MAAM,OAAO,GAAU,IAAI,QAAQ;;EA2DzC,CAAC"}
@@ -1,150 +0,0 @@
1
- import { PROJECTION_EXPRESSION } from '#/data/ProjectionExpression';
2
- import { parseSQSBusEvent } from '#/helpers/event';
3
- import { container } from '#/lambda-layer/container';
4
- import { AllowedEntityTypes, EntityConfig } from '#/lambda-layer/monorise';
5
- import { EVENT } from '#/shared/types/event';
6
- async function processPrejoins({ mutualRepository, publishEvent, byEntityType, byEntityId, prejoins, publishedAt, }) {
7
- const mutualCache = {
8
- /*
9
- course: [{
10
- byEntityType: 'module',
11
- byEntityId: '1',
12
- entityType: 'course',
13
- entityId: '1',
14
- }],
15
- module: [],
16
- chapter: [],
17
- video: []
18
- */
19
- };
20
- //initiate
21
- mutualCache[byEntityType] = [
22
- {
23
- entityType: byEntityType,
24
- entityId: byEntityId,
25
- },
26
- ];
27
- for (const { mutualField, targetEntityType, entityPaths } of prejoins) {
28
- let toBePublishedContext = {};
29
- for (const [index, entityPath] of entityPaths.entries()) {
30
- const entityType = entityPath.entityType;
31
- // skip cached
32
- if (!entityPath.skipCache && mutualCache[entityType]) {
33
- continue;
34
- }
35
- // if skipping cache should not have previous run data
36
- mutualCache[entityType] = [];
37
- const parentEntityType = entityPaths[index - 1]
38
- .entityType;
39
- const parentEntities = mutualCache[parentEntityType] ?? [];
40
- // find all nested entities
41
- for (const parentEntity of parentEntities) {
42
- const { entityType: parentEntityType, entityId: parentEntityId } = parentEntity;
43
- const { items: mutualItems } = await mutualRepository.listEntitiesByEntity(parentEntityType, parentEntityId, entityPath.entityType, {
44
- ProjectionExpression: PROJECTION_EXPRESSION.MUTUAL_DATA_ONLY,
45
- });
46
- // custom processor defined in prejoin config for each path
47
- const processor = entityPath.processor || ((items, context) => ({ items, context }));
48
- const processed = processor(mutualItems, toBePublishedContext);
49
- toBePublishedContext = processed?.context || toBePublishedContext;
50
- mutualCache[entityType] = [
51
- ...(mutualCache[entityType] ?? []),
52
- ...(processed ? processed.items : mutualItems),
53
- ];
54
- }
55
- if (!mutualCache[entityType] && !Array.isArray(mutualCache[entityType])) {
56
- // to avoid empty array
57
- mutualCache[entityType] = [];
58
- }
59
- }
60
- const mutualIds = (mutualCache[targetEntityType] ?? []).map((item) => item.entityId);
61
- await publishEvent({
62
- event: EVENT.CORE.ENTITY_MUTUAL_TO_UPDATE,
63
- payload: {
64
- byEntityType,
65
- byEntityId,
66
- entityType: targetEntityType,
67
- field: mutualField,
68
- mutualIds,
69
- customContext: toBePublishedContext,
70
- publishedAt,
71
- },
72
- });
73
- }
74
- }
75
- async function publishToSubscribers({ mutualRepository, publishEvent, byEntityType, byEntityId, publishedAt, }) {
76
- const listeners = AllowedEntityTypes.reduce((acc, configKey) => {
77
- const { subscribes } = EntityConfig[configKey].mutual ?? {};
78
- const hasSubscription = (subscribes ?? []).some(({ entityType }) => entityType === byEntityType);
79
- return [
80
- ...acc,
81
- ...(hasSubscription
82
- ? [
83
- {
84
- entityType: configKey,
85
- },
86
- ]
87
- : []),
88
- ];
89
- }, []);
90
- // publish event for each interested entity
91
- const subscribedMutualItems = await Promise.all(listeners.map(({ entityType: subscribedEntityType }) => mutualRepository.listEntitiesByEntity(byEntityType, byEntityId, subscribedEntityType, {
92
- ProjectionExpression: PROJECTION_EXPRESSION.NO_DATA,
93
- })));
94
- const subscribedMutuals = subscribedMutualItems.flatMap((item) => item.items);
95
- await Promise.all(subscribedMutuals.map((subscribedMutual) => publishEvent({
96
- event: EVENT.CORE.PREJOIN_RELATIONSHIP_SYNC,
97
- payload: {
98
- byEntityType: subscribedMutual.entityType,
99
- byEntityId: subscribedMutual.entityId,
100
- entityType: subscribedMutual.byEntityType,
101
- publishedAt,
102
- },
103
- })));
104
- }
105
- export const handler = async (ev) => {
106
- const batchItemFailures = [];
107
- const { mutualRepository, publishEvent } = container;
108
- for (const record of ev.Records) {
109
- const body = parseSQSBusEvent(record.body);
110
- const { detail } = body;
111
- const { byEntityType, byEntityId, entityType, publishedAt } = detail;
112
- let errorContext = {
113
- body,
114
- };
115
- try {
116
- const isEntityTypeSubscribed = (EntityConfig[byEntityType]?.mutual?.subscribes ?? []).some(({ entityType: subscribedEntityType }) => subscribedEntityType === entityType);
117
- const hasPrejoins = EntityConfig[byEntityType]?.mutual?.prejoins;
118
- const shouldProcessPrejoins = isEntityTypeSubscribed && hasPrejoins;
119
- errorContext = {
120
- ...errorContext,
121
- isEntityTypeSubscribed,
122
- hasPrejoins,
123
- shouldProcessPrejoins,
124
- };
125
- if (shouldProcessPrejoins) {
126
- await processPrejoins({
127
- mutualRepository,
128
- publishEvent,
129
- byEntityType,
130
- byEntityId,
131
- prejoins: EntityConfig[byEntityType]?.mutual?.prejoins ?? [],
132
- publishedAt,
133
- });
134
- }
135
- await publishToSubscribers({
136
- mutualRepository,
137
- publishEvent,
138
- byEntityType,
139
- byEntityId,
140
- publishedAt,
141
- });
142
- }
143
- catch (err) {
144
- console.log('===PREJOIN-PROCESSOR ERROR===', err, JSON.stringify({ errorContext }, null, 2));
145
- batchItemFailures.push({ itemIdentifier: record.messageId });
146
- }
147
- }
148
- return { batchItemFailures };
149
- };
150
- //# sourceMappingURL=prejoin-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prejoin-processor.js","sourceRoot":"","sources":["../../../../processors/prejoin-processor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAU7C,KAAK,UAAU,eAAe,CAAC,EAC7B,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,GAQZ;IACC,MAAM,WAAW,GAUb;IACF;;;;;;;;;;MAUE;KACH,CAAC;IAEF,UAAU;IACV,WAAW,CAAC,YAAY,CAAC,GAAG;QAC1B;YACE,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,UAAU;SACrB;KACF,CAAC;IAEF,KAAK,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;QACtE,IAAI,oBAAoB,GAAwB,EAAE,CAAC;QAEnD,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAsC,CAAC;YAErE,cAAc;YACd,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YAED,sDAAsD;YACtD,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YAE7B,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;iBAC5C,UAAsC,CAAC;YAC1C,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAE3D,2BAA2B;YAC3B,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE,CAAC;gBAC1C,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAC9D,YAAY,CAAC;gBAEf,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAC1B,MAAM,gBAAgB,CAAC,oBAAoB,CACzC,gBAAgB,EAChB,cAAc,EACd,UAAU,CAAC,UAAU,EACrB;oBACE,oBAAoB,EAAE,qBAAqB,CAAC,gBAAgB;iBAC7D,CACF,CAAC;gBAEJ,2DAA2D;gBAC3D,MAAM,SAAS,GACb,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAErE,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;gBAC/D,oBAAoB,GAAG,SAAS,EAAE,OAAO,IAAI,oBAAoB,CAAC;gBAElE,WAAW,CAAC,UAAU,CAAC,GAAG;oBACxB,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;iBAC/C,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACxE,uBAAuB;gBACvB,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,CAChB,WAAW,CAAC,gBAA4C,CAAC,IAAI,EAAE,CAChE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,YAAY,CAAiC;YACjD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB;YACzC,OAAO,EAAE;gBACP,YAAY;gBACZ,UAAU;gBACV,UAAU,EAAE,gBAAgB;gBAC5B,KAAK,EAAE,WAAW;gBAClB,SAAS;gBACT,aAAa,EAAE,oBAAoB;gBACnC,WAAW;aACZ;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,EAClC,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,GAOZ;IACC,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACjB,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAE5D,MAAM,eAAe,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,YAAY,CAChD,CAAC;QAEF,OAAO;YACL,GAAG,GAAG;YACN,GAAG,CAAC,eAAe;gBACjB,CAAC,CAAC;oBACE;wBACE,UAAU,EAAE,SAAS;qBACtB;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,EACD,EAA8B,CAC/B,CAAC;IAEF,2CAA2C;IAC3C,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7C,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACrD,gBAAgB,CAAC,oBAAoB,CACnC,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB;QACE,oBAAoB,EAAE,qBAAqB,CAAC,OAAO;KACpD,CACF,CACF,CACF,CAAC;IACF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9E,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACzC,YAAY,CAAC;QACX,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB;QAC3C,OAAO,EAAE;YACP,YAAY,EAAE,gBAAgB,CAAC,UAAU;YACzC,UAAU,EAAE,gBAAgB,CAAC,QAAQ;YACrC,UAAU,EAAE,gBAAgB,CAAC,YAAY;YACzC,WAAW;SACZ;KACF,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAAY,EAAE,EAAE;IAC5C,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IAEpD,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAErD,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,gBAAgB,CAAkB,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QACrE,IAAI,YAAY,GAA4B;YAC1C,IAAI;SACL,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,sBAAsB,GAAG,CAC7B,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,CACrD,CAAC,IAAI,CACJ,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACvC,oBAAoB,KAAK,UAAU,CACtC,CAAC;YACF,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC;YACjE,MAAM,qBAAqB,GAAG,sBAAsB,IAAI,WAAW,CAAC;YACpE,YAAY,GAAG;gBACb,GAAG,YAAY;gBACf,sBAAsB;gBACtB,WAAW;gBACX,qBAAqB;aACtB,CAAC;YAEF,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,eAAe,CAAC;oBACpB,gBAAgB;oBAChB,YAAY;oBACZ,YAAY;oBACZ,UAAU;oBACV,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;oBAC5D,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YAED,MAAM,oBAAoB,CAAC;gBACzB,gBAAgB;gBAChB,YAAY;gBACZ,YAAY;gBACZ,UAAU;gBACV,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,+BAA+B,EAC/B,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1C,CAAC;YAEF,iBAAiB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { _Record as DynamoDBStreamEvent } from '@aws-sdk/client-dynamodb-streams';
2
- import type { DynamoDBBatchItemFailure } from 'aws-lambda';
3
- export declare const handler: (event: {
4
- Records: DynamoDBStreamEvent[];
5
- }) => Promise<{
6
- batchItemFailures: DynamoDBBatchItemFailure[];
7
- }>;
8
- //# sourceMappingURL=replication-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replication-processor.d.ts","sourceRoot":"","sources":["../../../../processors/replication-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,OAAO,IAAI,mBAAmB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAU3D,eAAO,MAAM,OAAO,GAAU,OAAO;IAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAAE;;EAoPtE,CAAC"}
@@ -1,180 +0,0 @@
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 { container } from '#/lambda-layer/container';
5
- const TableName = process.env.DDB_TABLE;
6
- export const handler = async (event) => {
7
- const batchItemFailures = [];
8
- const { dynamodbClient } = container;
9
- for (const record of event.Records) {
10
- const errorContext = {};
11
- errorContext.record = record;
12
- try {
13
- if (record.eventName === 'MODIFY') {
14
- const modifiedItem = record.dynamodb?.NewImage;
15
- if (!modifiedItem) {
16
- continue;
17
- }
18
- const isMetadata = modifiedItem.SK.S?.startsWith('#METADATA#');
19
- const isMutual = modifiedItem.PK.S?.startsWith('MUTUAL#') && isMetadata;
20
- const isEntity = isMetadata && !isMutual;
21
- if (!isEntity && !isMutual) {
22
- // skip replicated data
23
- continue;
24
- }
25
- // default variables
26
- let targetRPK = 'R1PK';
27
- const targetData = 'data';
28
- let targetIndexName = ENTITY_REPLICATION_INDEX;
29
- const targetUpdatedAt = 'updatedAt';
30
- let queryExpression = {
31
- FilterExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
32
- ExpressionAttributeNames: {
33
- [`#${targetRPK}`]: targetRPK,
34
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
35
- },
36
- ExpressionAttributeValues: {
37
- [`:${targetRPK}`]: modifiedItem.PK,
38
- [`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
39
- },
40
- };
41
- const updateExpession = {
42
- UpdateExpression: `SET #${targetUpdatedAt} = :${targetUpdatedAt}, #${targetData} = :${targetData}`,
43
- ConditionExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
44
- ExpressionAttributeNames: {
45
- [`#${targetData}`]: targetData,
46
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
47
- },
48
- ExpressionAttributeValues: {
49
- [`:${targetData}`]: modifiedItem.data,
50
- [`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
51
- },
52
- };
53
- if (isMutual) {
54
- targetRPK = 'R2PK';
55
- targetIndexName = MUTUAL_REPLICATION_INDEX;
56
- // condition to only replicate to mutualAsEntity
57
- queryExpression = {
58
- FilterExpression: `${queryExpression.FilterExpression} AND #SK = :metadata`, // to replicate to mutualAsEntity only
59
- ExpressionAttributeNames: {
60
- '#SK': 'SK',
61
- [`#${targetRPK}`]: targetRPK,
62
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
63
- },
64
- ExpressionAttributeValues: {
65
- ':metadata': { S: '#METADATA#' },
66
- [`:${targetRPK}`]: modifiedItem.PK,
67
- [`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
68
- },
69
- };
70
- updateExpession.ExpressionAttributeValues = {
71
- [`:${targetData}`]: modifiedItem.mutualData,
72
- [`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
73
- };
74
- }
75
- errorContext.queryExpression = queryExpression;
76
- errorContext.updateExpession = updateExpession;
77
- // retrieve all to be replicated items
78
- let toBeReplicatedItems = [];
79
- let lastKey;
80
- do {
81
- const queryResult = await dynamodbClient.query({
82
- TableName,
83
- IndexName: targetIndexName,
84
- KeyConditionExpression: `#${targetRPK} = :${targetRPK}`,
85
- ...queryExpression,
86
- });
87
- toBeReplicatedItems = [
88
- ...toBeReplicatedItems,
89
- ...(queryResult.Items || []),
90
- ];
91
- lastKey = queryResult.LastEvaluatedKey;
92
- } while (lastKey);
93
- errorContext.toBeReplicatedItems = toBeReplicatedItems;
94
- const updatePromises = toBeReplicatedItems.map((item) => {
95
- const updateParams = {
96
- TableName,
97
- Key: {
98
- PK: item.PK,
99
- SK: item.SK,
100
- },
101
- ...updateExpession,
102
- };
103
- return dynamodbClient.updateItem(updateParams);
104
- });
105
- const results = await Promise.allSettled(updatePromises);
106
- errorContext.results = results;
107
- if (results.some((result) => result.status === 'rejected' &&
108
- !(result.reason instanceof ConditionalCheckFailedException))) {
109
- throw new StandardError('REPLICATION_ERROR', 'Replication error', null, errorContext);
110
- }
111
- }
112
- if (record.eventName === 'REMOVE') {
113
- const removedKeys = record.dynamodb?.Keys || {};
114
- const isMetadata = removedKeys.SK.S?.startsWith('#METADATA#');
115
- const isMutual = removedKeys.PK.S?.startsWith('MUTUAL#') && isMetadata;
116
- const isEntity = isMetadata && !isMutual;
117
- if (!isEntity && !isMutual) {
118
- continue;
119
- }
120
- // default query settings
121
- let targetRPK = 'R1PK';
122
- let targetIndexName = ENTITY_REPLICATION_INDEX;
123
- if (isMutual) {
124
- targetRPK = 'R2PK';
125
- targetIndexName = MUTUAL_REPLICATION_INDEX;
126
- }
127
- let itemsToDelete = [];
128
- let lastKey;
129
- do {
130
- const queryResult = await dynamodbClient.query({
131
- TableName,
132
- IndexName: targetIndexName,
133
- KeyConditionExpression: `#${targetRPK} = :${targetRPK}`,
134
- ExpressionAttributeNames: {
135
- [`#${targetRPK}`]: targetRPK,
136
- },
137
- ExpressionAttributeValues: {
138
- [`:${targetRPK}`]: removedKeys.PK,
139
- },
140
- });
141
- itemsToDelete = [...itemsToDelete, ...(queryResult.Items || [])];
142
- lastKey = queryResult.LastEvaluatedKey;
143
- } while (lastKey);
144
- const mutualsToDelete = Array.from(new Set(itemsToDelete
145
- .filter((item) => item.R2PK?.S?.startsWith('MUTUAL#'))
146
- .map((filteredItem) => filteredItem.R2PK?.S)));
147
- mutualsToDelete.forEach((mutual) => {
148
- if (!mutual) {
149
- return;
150
- }
151
- itemsToDelete.push({ PK: { S: mutual }, SK: { S: '#METADATA#' } });
152
- });
153
- const deleteResults = await Promise.allSettled(itemsToDelete.map((item) => dynamodbClient.deleteItem({
154
- TableName,
155
- Key: {
156
- PK: item.PK,
157
- SK: item.SK,
158
- },
159
- })));
160
- errorContext.deleteResults = deleteResults;
161
- if (deleteResults.some((result) => result.status === 'rejected' &&
162
- !(result.reason instanceof ConditionalCheckFailedException))) {
163
- throw new StandardError('REPLICATION_ERROR', 'Replication error', null, errorContext);
164
- }
165
- }
166
- }
167
- catch (error) {
168
- console.error('====REPLICATION_ERROR', error);
169
- console.log('====REPLICATION_ERROR errorContext', JSON.stringify(errorContext, null, 2));
170
- batchItemFailures.push({
171
- itemIdentifier: record.dynamodb?.SequenceNumber || '',
172
- });
173
- // immediately return to prevent processing the rest
174
- // because stream will restart from this point again
175
- return { batchItemFailures };
176
- }
177
- }
178
- return { batchItemFailures };
179
- };
180
- //# sourceMappingURL=replication-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replication-processor.js","sourceRoot":"","sources":["../../../../processors/replication-processor.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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;AAwFF,eAAO,MAAM,OAAO,GAAU,IAAI,QAAQ;;EAuEzC,CAAC"}