@monorise/core 3.0.0 → 3.0.2

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 (206) hide show
  1. package/dist/index.d.ts +4759 -27
  2. package/dist/index.js +7940 -31
  3. package/dist/index.js.map +1 -1
  4. package/package.json +4 -4
  5. package/dist/configs/service.config.d.ts +0 -5
  6. package/dist/configs/service.config.d.ts.map +0 -1
  7. package/dist/configs/service.config.js +0 -5
  8. package/dist/configs/service.config.js.map +0 -1
  9. package/dist/constants/table.d.ts +0 -3
  10. package/dist/constants/table.d.ts.map +0 -1
  11. package/dist/constants/table.js +0 -3
  12. package/dist/constants/table.js.map +0 -1
  13. package/dist/controllers/entity/create-entity.controller.d.ts +0 -7
  14. package/dist/controllers/entity/create-entity.controller.d.ts.map +0 -1
  15. package/dist/controllers/entity/create-entity.controller.js +0 -64
  16. package/dist/controllers/entity/create-entity.controller.js.map +0 -1
  17. package/dist/controllers/entity/delete-entity.controller.d.ts +0 -7
  18. package/dist/controllers/entity/delete-entity.controller.d.ts.map +0 -1
  19. package/dist/controllers/entity/delete-entity.controller.js +0 -38
  20. package/dist/controllers/entity/delete-entity.controller.js.map +0 -1
  21. package/dist/controllers/entity/get-entity-by-unique-field-value.controller.d.ts +0 -7
  22. package/dist/controllers/entity/get-entity-by-unique-field-value.controller.d.ts.map +0 -1
  23. package/dist/controllers/entity/get-entity-by-unique-field-value.controller.js +0 -36
  24. package/dist/controllers/entity/get-entity-by-unique-field-value.controller.js.map +0 -1
  25. package/dist/controllers/entity/get-entity.controller.d.ts +0 -7
  26. package/dist/controllers/entity/get-entity.controller.d.ts.map +0 -1
  27. package/dist/controllers/entity/get-entity.controller.js +0 -37
  28. package/dist/controllers/entity/get-entity.controller.js.map +0 -1
  29. package/dist/controllers/entity/list-entities.controller.d.ts +0 -7
  30. package/dist/controllers/entity/list-entities.controller.d.ts.map +0 -1
  31. package/dist/controllers/entity/list-entities.controller.js +0 -61
  32. package/dist/controllers/entity/list-entities.controller.js.map +0 -1
  33. package/dist/controllers/entity/update-entity.controller.d.ts +0 -7
  34. package/dist/controllers/entity/update-entity.controller.d.ts.map +0 -1
  35. package/dist/controllers/entity/update-entity.controller.js +0 -62
  36. package/dist/controllers/entity/update-entity.controller.js.map +0 -1
  37. package/dist/controllers/entity/upsert-entity.controller.d.ts +0 -11
  38. package/dist/controllers/entity/upsert-entity.controller.d.ts.map +0 -1
  39. package/dist/controllers/entity/upsert-entity.controller.js +0 -84
  40. package/dist/controllers/entity/upsert-entity.controller.js.map +0 -1
  41. package/dist/controllers/mutual/create-mutual.controller.d.ts +0 -7
  42. package/dist/controllers/mutual/create-mutual.controller.d.ts.map +0 -1
  43. package/dist/controllers/mutual/create-mutual.controller.js +0 -60
  44. package/dist/controllers/mutual/create-mutual.controller.js.map +0 -1
  45. package/dist/controllers/mutual/delete-mutual.controller.d.ts +0 -7
  46. package/dist/controllers/mutual/delete-mutual.controller.d.ts.map +0 -1
  47. package/dist/controllers/mutual/delete-mutual.controller.js +0 -40
  48. package/dist/controllers/mutual/delete-mutual.controller.js.map +0 -1
  49. package/dist/controllers/mutual/get-mutual.controller.d.ts +0 -7
  50. package/dist/controllers/mutual/get-mutual.controller.d.ts.map +0 -1
  51. package/dist/controllers/mutual/get-mutual.controller.js +0 -36
  52. package/dist/controllers/mutual/get-mutual.controller.js.map +0 -1
  53. package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts +0 -7
  54. package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts.map +0 -1
  55. package/dist/controllers/mutual/list-entities-by-entity.controller.js +0 -72
  56. package/dist/controllers/mutual/list-entities-by-entity.controller.js.map +0 -1
  57. package/dist/controllers/mutual/update-mutual.controller.d.ts +0 -7
  58. package/dist/controllers/mutual/update-mutual.controller.d.ts.map +0 -1
  59. package/dist/controllers/mutual/update-mutual.controller.js +0 -54
  60. package/dist/controllers/mutual/update-mutual.controller.js.map +0 -1
  61. package/dist/controllers/setupRoutes.d.ts +0 -4
  62. package/dist/controllers/setupRoutes.d.ts.map +0 -1
  63. package/dist/controllers/setupRoutes.js +0 -32
  64. package/dist/controllers/setupRoutes.js.map +0 -1
  65. package/dist/controllers/tag/list-tags.controller.d.ts +0 -7
  66. package/dist/controllers/tag/list-tags.controller.d.ts.map +0 -1
  67. package/dist/controllers/tag/list-tags.controller.js +0 -57
  68. package/dist/controllers/tag/list-tags.controller.js.map +0 -1
  69. package/dist/data/DbUtils.d.ts +0 -7
  70. package/dist/data/DbUtils.d.ts.map +0 -1
  71. package/dist/data/DbUtils.js +0 -34
  72. package/dist/data/DbUtils.js.map +0 -1
  73. package/dist/data/Entity.d.ts +0 -77
  74. package/dist/data/Entity.d.ts.map +0 -1
  75. package/dist/data/Entity.js +0 -504
  76. package/dist/data/Entity.js.map +0 -1
  77. package/dist/data/EventUtils.d.ts +0 -15
  78. package/dist/data/EventUtils.d.ts.map +0 -1
  79. package/dist/data/EventUtils.js +0 -43
  80. package/dist/data/EventUtils.js.map +0 -1
  81. package/dist/data/FileObject.d.ts +0 -62
  82. package/dist/data/FileObject.d.ts.map +0 -1
  83. package/dist/data/FileObject.js +0 -13
  84. package/dist/data/FileObject.js.map +0 -1
  85. package/dist/data/Mutual.d.ts +0 -93
  86. package/dist/data/Mutual.d.ts.map +0 -1
  87. package/dist/data/Mutual.js +0 -439
  88. package/dist/data/Mutual.js.map +0 -1
  89. package/dist/data/ProjectionExpression.d.ts +0 -6
  90. package/dist/data/ProjectionExpression.d.ts.map +0 -1
  91. package/dist/data/ProjectionExpression.js +0 -5
  92. package/dist/data/ProjectionExpression.js.map +0 -1
  93. package/dist/data/Tag.d.ts +0 -77
  94. package/dist/data/Tag.d.ts.map +0 -1
  95. package/dist/data/Tag.js +0 -329
  96. package/dist/data/Tag.js.map +0 -1
  97. package/dist/data/abstract/Item.base.d.ts +0 -11
  98. package/dist/data/abstract/Item.base.d.ts.map +0 -1
  99. package/dist/data/abstract/Item.base.js +0 -9
  100. package/dist/data/abstract/Item.base.js.map +0 -1
  101. package/dist/data/abstract/Repository.base.d.ts +0 -11
  102. package/dist/data/abstract/Repository.base.d.ts.map +0 -1
  103. package/dist/data/abstract/Repository.base.js +0 -51
  104. package/dist/data/abstract/Repository.base.js.map +0 -1
  105. package/dist/errors/api-error.d.ts +0 -23
  106. package/dist/errors/api-error.d.ts.map +0 -1
  107. package/dist/errors/api-error.js +0 -26
  108. package/dist/errors/api-error.js.map +0 -1
  109. package/dist/errors/extendable-error.d.ts +0 -18
  110. package/dist/errors/extendable-error.d.ts.map +0 -1
  111. package/dist/errors/extendable-error.js +0 -15
  112. package/dist/errors/extendable-error.js.map +0 -1
  113. package/dist/errors/standard-error.d.ts +0 -33
  114. package/dist/errors/standard-error.d.ts.map +0 -1
  115. package/dist/errors/standard-error.js +0 -39
  116. package/dist/errors/standard-error.js.map +0 -1
  117. package/dist/handles/app.d.ts +0 -16
  118. package/dist/handles/app.d.ts.map +0 -1
  119. package/dist/handles/app.js +0 -31
  120. package/dist/handles/app.js.map +0 -1
  121. package/dist/helpers/dependencies.d.ts +0 -8
  122. package/dist/helpers/dependencies.d.ts.map +0 -1
  123. package/dist/helpers/dependencies.js +0 -10
  124. package/dist/helpers/dependencies.js.map +0 -1
  125. package/dist/helpers/event.d.ts +0 -22
  126. package/dist/helpers/event.d.ts.map +0 -1
  127. package/dist/helpers/event.js +0 -48
  128. package/dist/helpers/event.js.map +0 -1
  129. package/dist/helpers/fromLastKeyQuery.d.ts +0 -3
  130. package/dist/helpers/fromLastKeyQuery.d.ts.map +0 -1
  131. package/dist/helpers/fromLastKeyQuery.js +0 -7
  132. package/dist/helpers/fromLastKeyQuery.js.map +0 -1
  133. package/dist/helpers/sleep.d.ts +0 -2
  134. package/dist/helpers/sleep.d.ts.map +0 -1
  135. package/dist/helpers/sleep.js +0 -2
  136. package/dist/helpers/sleep.js.map +0 -1
  137. package/dist/helpers/toLastKeyResponse.d.ts +0 -3
  138. package/dist/helpers/toLastKeyResponse.d.ts.map +0 -1
  139. package/dist/helpers/toLastKeyResponse.js +0 -7
  140. package/dist/helpers/toLastKeyResponse.js.map +0 -1
  141. package/dist/index.d.ts.map +0 -1
  142. package/dist/middlewares/api-key-auth.d.ts +0 -3
  143. package/dist/middlewares/api-key-auth.d.ts.map +0 -1
  144. package/dist/middlewares/api-key-auth.js +0 -32
  145. package/dist/middlewares/api-key-auth.js.map +0 -1
  146. package/dist/middlewares/entity-type-check.d.ts +0 -3
  147. package/dist/middlewares/entity-type-check.d.ts.map +0 -1
  148. package/dist/middlewares/entity-type-check.js +0 -22
  149. package/dist/middlewares/entity-type-check.js.map +0 -1
  150. package/dist/middlewares/general-error-handler.d.ts +0 -7
  151. package/dist/middlewares/general-error-handler.d.ts.map +0 -1
  152. package/dist/middlewares/general-error-handler.js +0 -40
  153. package/dist/middlewares/general-error-handler.js.map +0 -1
  154. package/dist/middlewares/mutual-type-check.d.ts +0 -3
  155. package/dist/middlewares/mutual-type-check.d.ts.map +0 -1
  156. package/dist/middlewares/mutual-type-check.js +0 -23
  157. package/dist/middlewares/mutual-type-check.js.map +0 -1
  158. package/dist/processors/create-entity-processor.d.ts +0 -6
  159. package/dist/processors/create-entity-processor.d.ts.map +0 -1
  160. package/dist/processors/create-entity-processor.js +0 -44
  161. package/dist/processors/create-entity-processor.js.map +0 -1
  162. package/dist/processors/mutual-processor.d.ts +0 -16
  163. package/dist/processors/mutual-processor.d.ts.map +0 -1
  164. package/dist/processors/mutual-processor.js +0 -142
  165. package/dist/processors/mutual-processor.js.map +0 -1
  166. package/dist/processors/prejoin-processor.d.ts +0 -13
  167. package/dist/processors/prejoin-processor.d.ts.map +0 -1
  168. package/dist/processors/prejoin-processor.js +0 -161
  169. package/dist/processors/prejoin-processor.js.map +0 -1
  170. package/dist/processors/replication-processor.d.ts +0 -9
  171. package/dist/processors/replication-processor.d.ts.map +0 -1
  172. package/dist/processors/replication-processor.js +0 -180
  173. package/dist/processors/replication-processor.js.map +0 -1
  174. package/dist/processors/tag-processor.d.ts +0 -12
  175. package/dist/processors/tag-processor.d.ts.map +0 -1
  176. package/dist/processors/tag-processor.js +0 -118
  177. package/dist/processors/tag-processor.js.map +0 -1
  178. package/dist/services/DependencyContainer.d.ts +0 -67
  179. package/dist/services/DependencyContainer.d.ts.map +0 -1
  180. package/dist/services/DependencyContainer.js +0 -121
  181. package/dist/services/DependencyContainer.js.map +0 -1
  182. package/dist/services/entity-service-lifecycle.d.ts +0 -12
  183. package/dist/services/entity-service-lifecycle.d.ts.map +0 -1
  184. package/dist/services/entity-service-lifecycle.js +0 -41
  185. package/dist/services/entity-service-lifecycle.js.map +0 -1
  186. package/dist/services/entity.service.d.ts +0 -34
  187. package/dist/services/entity.service.d.ts.map +0 -1
  188. package/dist/services/entity.service.js +0 -120
  189. package/dist/services/entity.service.js.map +0 -1
  190. package/dist/services/mutual.service.d.ts +0 -64
  191. package/dist/services/mutual.service.d.ts.map +0 -1
  192. package/dist/services/mutual.service.js +0 -141
  193. package/dist/services/mutual.service.js.map +0 -1
  194. package/dist/tsconfig.tsbuildinfo +0 -1
  195. package/dist/types/entity.type.d.ts +0 -20
  196. package/dist/types/entity.type.d.ts.map +0 -1
  197. package/dist/types/entity.type.js +0 -2
  198. package/dist/types/entity.type.js.map +0 -1
  199. package/dist/types/event.d.ts +0 -73
  200. package/dist/types/event.d.ts.map +0 -1
  201. package/dist/types/event.js +0 -74
  202. package/dist/types/event.js.map +0 -1
  203. package/dist/vitest.config.d.ts +0 -3
  204. package/dist/vitest.config.d.ts.map +0 -1
  205. package/dist/vitest.config.js +0 -10
  206. package/dist/vitest.config.js.map +0 -1
@@ -1,142 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { TransactionCanceledException } from '@aws-sdk/client-dynamodb';
11
- // import { EntityConfig } from '#/lambda-layer/monorise';
12
- import { Mutual } from '../data/Mutual';
13
- import { StandardError, StandardErrorCode } from '../errors/standard-error';
14
- import { parseSQSBusEvent } from '../helpers/event';
15
- import { EVENT } from '../types/event';
16
- const processEntities = (entityIds, action) => __awaiter(void 0, void 0, void 0, function* () { return Promise.allSettled(entityIds.map(action)); });
17
- export const handler = (container) => (ev) => __awaiter(void 0, void 0, void 0, function* () {
18
- const batchItemFailures = [];
19
- const { entityRepository, mutualRepository, publishEvent } = container;
20
- yield Promise.allSettled(ev.Records.map((record) => __awaiter(void 0, void 0, void 0, function* () {
21
- var _a, _b, _c, _d;
22
- const errorContext = {};
23
- const body = parseSQSBusEvent(record.body);
24
- const { detail } = body;
25
- const { mutualIds, byEntityType, byEntityId, entityType, field, publishedAt, customContext, } = detail;
26
- errorContext.body = body;
27
- try {
28
- // Validate if mutual configuration exists
29
- const config = (_c = (_b = (_a = container.config.EntityConfig[byEntityType]) === null || _a === void 0 ? void 0 : _a.mutual) === null || _b === void 0 ? void 0 : _b.mutualFields) === null || _c === void 0 ? void 0 : _c[field];
30
- if (!config) {
31
- throw new StandardError(StandardErrorCode.INVALID_MUTUAL, 'Invalid mutual');
32
- }
33
- const mutualDataProcessor = (_d = config.mutualDataProcessor) !== null && _d !== void 0 ? _d : (() => ({}));
34
- // Create a lock to prevent concurrent modifications
35
- yield mutualRepository.createMutualLock({
36
- byEntityType,
37
- byEntityId,
38
- entityType,
39
- version: publishedAt,
40
- });
41
- // Fetch related entities in parallel
42
- const [byEntity, mutuals] = yield Promise.all([
43
- entityRepository.getEntity(byEntityType, byEntityId),
44
- mutualRepository.listEntitiesByEntity(byEntityType, byEntityId, entityType),
45
- ]);
46
- // Determine which entities were added, removed, or need updates
47
- const existingEntityIds = new Set(mutuals.items.map((m) => m.entityId));
48
- const newMutualIds = new Set(mutualIds !== null && mutualIds !== void 0 ? mutualIds : []);
49
- const addedEntityIds = [...newMutualIds].filter((id) => !existingEntityIds.has(id));
50
- const deletedEntityIds = [...existingEntityIds].filter((id) => !newMutualIds.has(id));
51
- const toUpdateEntityIds = [...existingEntityIds].filter((id) => newMutualIds.has(id));
52
- errorContext.existingEntityIds = [...existingEntityIds];
53
- errorContext.addedEntityIds = addedEntityIds;
54
- errorContext.deletedEntityIds = deletedEntityIds;
55
- errorContext.toUpdateEntityIds = toUpdateEntityIds;
56
- const addEntities = yield processEntities(addedEntityIds, (id) => __awaiter(void 0, void 0, void 0, function* () {
57
- const entity = yield entityRepository.getEntity(entityType, id);
58
- yield mutualRepository.createMutual(byEntityType, byEntityId, byEntity.data, entityType, id, entity.data, mutualDataProcessor(mutualIds, new Mutual(byEntityType, byEntityId, byEntity.data, entityType, id, entity.data, {}), customContext), {
59
- ConditionExpression: 'attribute_not_exists(#mutualUpdatedAt) OR #mutualUpdatedAt < :publishedAt',
60
- ExpressionAttributeNames: {
61
- '#mutualUpdatedAt': 'mutualUpdatedAt',
62
- },
63
- ExpressionAttributeValues: {
64
- ':publishedAt': { S: publishedAt },
65
- },
66
- createAndUpdateDatetime: new Date(publishedAt),
67
- });
68
- }));
69
- const deleteEntities = yield processEntities(deletedEntityIds, (id) => __awaiter(void 0, void 0, void 0, function* () {
70
- yield mutualRepository.deleteMutual(byEntityType, byEntityId, entityType, id, {
71
- ConditionExpression: 'attribute_exists(PK) AND #mutualUpdatedAt < :publishedAt',
72
- ExpressionAttributeNames: {
73
- '#mutualUpdatedAt': 'mutualUpdatedAt',
74
- },
75
- ExpressionAttributeValues: {
76
- ':publishedAt': { S: publishedAt },
77
- },
78
- });
79
- }));
80
- const updateEntities = yield processEntities(toUpdateEntityIds, (id) => __awaiter(void 0, void 0, void 0, function* () {
81
- yield mutualRepository.updateMutual(byEntityType, byEntityId, entityType, id, {
82
- mutualData: mutualDataProcessor(mutualIds, new Mutual(byEntityType, byEntityId, byEntity.data, entityType, id, {}, {}), customContext),
83
- mutualUpdatedAt: publishedAt,
84
- }, {
85
- ConditionExpression: 'attribute_exists(PK) AND #mutualUpdatedAt < :publishedAt',
86
- ExpressionAttributeNames: {
87
- '#mutualUpdatedAt': 'mutualUpdatedAt',
88
- },
89
- ExpressionAttributeValues: {
90
- ':publishedAt': { S: publishedAt },
91
- },
92
- });
93
- }));
94
- errorContext.results = {
95
- addEntities,
96
- deleteEntities,
97
- updateEntities,
98
- };
99
- // release lock
100
- yield mutualRepository.deleteMutualLock({
101
- byEntityType,
102
- byEntityId,
103
- entityType,
104
- });
105
- // Check for unprocessable errors in processing results
106
- if ([...addEntities, ...deleteEntities, ...updateEntities].some((res) => res.status === 'rejected' &&
107
- !(res.reason instanceof TransactionCanceledException ||
108
- (res.reason instanceof StandardError &&
109
- res.reason.code === StandardErrorCode.MUTUAL_NOT_FOUND)))) {
110
- throw new StandardError(StandardErrorCode.MUTUAL_PROCESSOR_ERROR, 'Mutual processor error', null, errorContext);
111
- }
112
- yield publishEvent({
113
- event: EVENT.CORE.ENTITY_MUTUAL_PROCESSED,
114
- payload: {
115
- byEntityType,
116
- byEntityId,
117
- entityType,
118
- field,
119
- mutualIds,
120
- publishedAt,
121
- },
122
- });
123
- }
124
- catch (err) {
125
- console.error('=====MUTUAL_PROCESSOR_ERROR=====', err, JSON.stringify({ errorContext }, null, 2));
126
- // Release the lock to avoid deadlocks
127
- yield mutualRepository.deleteMutualLock({
128
- byEntityType,
129
- byEntityId,
130
- entityType,
131
- });
132
- if (err instanceof StandardError &&
133
- (err.code === StandardErrorCode.INVALID_MUTUAL ||
134
- err.code === StandardErrorCode.MUTUAL_LOCK_CONFLICT)) {
135
- return;
136
- }
137
- batchItemFailures.push({ itemIdentifier: record.messageId });
138
- }
139
- })));
140
- return { batchItemFailures };
141
- });
142
- //# 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,13 +0,0 @@
1
- import type { Entity } from '@monorise/base';
2
- import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
3
- import type { DependencyContainer } from '../services/DependencyContainer';
4
- export type EventDetailBody = {
5
- byEntityType: Entity;
6
- byEntityId: string;
7
- entityType: Entity;
8
- publishedAt: string;
9
- };
10
- export declare const handler: (container: DependencyContainer) => (ev: SQSEvent) => Promise<{
11
- batchItemFailures: SQSBatchItemFailure[];
12
- }>;
13
- //# 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;AAMhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAI3E,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;AA2LF,eAAO,MAAM,OAAO,GACjB,WAAW,mBAAmB,MAAY,IAAI,QAAQ;;EA8DtD,CAAC"}
@@ -1,161 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { PROJECTION_EXPRESSION } from '../data/ProjectionExpression';
11
- import { parseSQSBusEvent } from '../helpers/event';
12
- import { EVENT } from '../types/event';
13
- function processPrejoins(_a) {
14
- return __awaiter(this, arguments, void 0, function* ({ mutualRepository, publishEvent, byEntityType, byEntityId, prejoins, publishedAt, }) {
15
- var _b, _c, _d;
16
- const mutualCache = {
17
- /*
18
- course: [{
19
- byEntityType: 'module',
20
- byEntityId: '1',
21
- entityType: 'course',
22
- entityId: '1',
23
- }],
24
- module: [],
25
- chapter: [],
26
- video: []
27
- */
28
- };
29
- //initiate
30
- mutualCache[byEntityType] = [
31
- {
32
- entityType: byEntityType,
33
- entityId: byEntityId,
34
- },
35
- ];
36
- for (const { mutualField, targetEntityType, entityPaths } of prejoins) {
37
- let toBePublishedContext = {};
38
- for (const [index, entityPath] of entityPaths.entries()) {
39
- const entityType = entityPath.entityType;
40
- // skip cached
41
- if (!entityPath.skipCache && mutualCache[entityType]) {
42
- continue;
43
- }
44
- // if skipping cache should not have previous run data
45
- mutualCache[entityType] = [];
46
- const parentEntityType = entityPaths[index - 1]
47
- .entityType;
48
- const parentEntities = (_b = mutualCache[parentEntityType]) !== null && _b !== void 0 ? _b : [];
49
- // find all nested entities
50
- for (const parentEntity of parentEntities) {
51
- const { entityType: parentEntityType, entityId: parentEntityId } = parentEntity;
52
- const { items: mutualItems } = yield mutualRepository.listEntitiesByEntity(parentEntityType, parentEntityId, entityPath.entityType, {
53
- ProjectionExpression: PROJECTION_EXPRESSION.MUTUAL_DATA_ONLY,
54
- });
55
- // custom processor defined in prejoin config for each path
56
- const processor = entityPath.processor || ((items, context) => ({ items, context }));
57
- const processed = processor(mutualItems, toBePublishedContext);
58
- toBePublishedContext = (processed === null || processed === void 0 ? void 0 : processed.context) || toBePublishedContext;
59
- mutualCache[entityType] = [
60
- ...((_c = mutualCache[entityType]) !== null && _c !== void 0 ? _c : []),
61
- ...(processed ? processed.items : mutualItems),
62
- ];
63
- }
64
- if (!mutualCache[entityType] && !Array.isArray(mutualCache[entityType])) {
65
- // to avoid empty array
66
- mutualCache[entityType] = [];
67
- }
68
- }
69
- const mutualIds = ((_d = mutualCache[targetEntityType]) !== null && _d !== void 0 ? _d : []).map((item) => item.entityId);
70
- yield publishEvent({
71
- event: EVENT.CORE.ENTITY_MUTUAL_TO_UPDATE,
72
- payload: {
73
- byEntityType,
74
- byEntityId,
75
- entityType: targetEntityType,
76
- field: mutualField,
77
- mutualIds,
78
- customContext: toBePublishedContext,
79
- publishedAt,
80
- },
81
- });
82
- }
83
- });
84
- }
85
- function publishToSubscribers(_a) {
86
- return __awaiter(this, arguments, void 0, function* ({ container, publishEvent, byEntityType, byEntityId, publishedAt, }) {
87
- const listeners = container.config.AllowedEntityTypes.reduce((acc, configKey) => {
88
- var _a;
89
- const { subscribes } = (_a = container.config.EntityConfig[configKey].mutual) !== null && _a !== void 0 ? _a : {};
90
- const hasSubscription = (subscribes !== null && subscribes !== void 0 ? subscribes : []).some(({ entityType }) => entityType === byEntityType);
91
- return [
92
- ...acc,
93
- ...(hasSubscription
94
- ? [
95
- {
96
- entityType: configKey,
97
- },
98
- ]
99
- : []),
100
- ];
101
- }, []);
102
- // publish event for each interested entity
103
- const subscribedMutualItems = yield Promise.all(listeners.map(({ entityType: subscribedEntityType }) => container.mutualRepository.listEntitiesByEntity(byEntityType, byEntityId, subscribedEntityType, {
104
- ProjectionExpression: PROJECTION_EXPRESSION.NO_DATA,
105
- })));
106
- const subscribedMutuals = subscribedMutualItems.flatMap((item) => item.items);
107
- yield Promise.all(subscribedMutuals.map((subscribedMutual) => publishEvent({
108
- event: EVENT.CORE.PREJOIN_RELATIONSHIP_SYNC,
109
- payload: {
110
- byEntityType: subscribedMutual.entityType,
111
- byEntityId: subscribedMutual.entityId,
112
- entityType: subscribedMutual.byEntityType,
113
- publishedAt,
114
- },
115
- })));
116
- });
117
- }
118
- export const handler = (container) => (ev) => __awaiter(void 0, void 0, void 0, function* () {
119
- var _a, _b, _c, _d, _e, _f, _g, _h;
120
- const batchItemFailures = [];
121
- const { mutualRepository, publishEvent } = container;
122
- for (const record of ev.Records) {
123
- const body = parseSQSBusEvent(record.body);
124
- const { detail } = body;
125
- const { byEntityType, byEntityId, entityType, publishedAt } = detail;
126
- let errorContext = {
127
- body,
128
- };
129
- try {
130
- const isEntityTypeSubscribed = ((_c = (_b = (_a = container.config.EntityConfig[byEntityType]) === null || _a === void 0 ? void 0 : _a.mutual) === null || _b === void 0 ? void 0 : _b.subscribes) !== null && _c !== void 0 ? _c : []).some(({ entityType: subscribedEntityType }) => subscribedEntityType === entityType);
131
- const hasPrejoins = (_e = (_d = container.config.EntityConfig[byEntityType]) === null || _d === void 0 ? void 0 : _d.mutual) === null || _e === void 0 ? void 0 : _e.prejoins;
132
- const shouldProcessPrejoins = isEntityTypeSubscribed && hasPrejoins;
133
- errorContext = Object.assign(Object.assign({}, errorContext), { isEntityTypeSubscribed,
134
- hasPrejoins,
135
- shouldProcessPrejoins });
136
- if (shouldProcessPrejoins) {
137
- yield processPrejoins({
138
- mutualRepository,
139
- publishEvent,
140
- byEntityType,
141
- byEntityId,
142
- prejoins: (_h = (_g = (_f = container.config.EntityConfig[byEntityType]) === null || _f === void 0 ? void 0 : _f.mutual) === null || _g === void 0 ? void 0 : _g.prejoins) !== null && _h !== void 0 ? _h : [],
143
- publishedAt,
144
- });
145
- }
146
- yield publishToSubscribers({
147
- container,
148
- publishEvent,
149
- byEntityType,
150
- byEntityId,
151
- publishedAt,
152
- });
153
- }
154
- catch (err) {
155
- console.log('===PREJOIN-PROCESSOR ERROR===', err, JSON.stringify({ errorContext }, null, 2));
156
- batchItemFailures.push({ itemIdentifier: record.messageId });
157
- }
158
- }
159
- return { batchItemFailures };
160
- });
161
- //# sourceMappingURL=prejoin-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prejoin-processor.js","sourceRoot":"","sources":["../../processors/prejoin-processor.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { _Record as DynamoDBStreamEvent } from '@aws-sdk/client-dynamodb-streams';
2
- import type { DynamoDBBatchItemFailure } from 'aws-lambda';
3
- import type { DependencyContainer } from '../services/DependencyContainer';
4
- export declare const handler: (container: DependencyContainer) => (event: {
5
- Records: DynamoDBStreamEvent[];
6
- }) => Promise<{
7
- batchItemFailures: DynamoDBBatchItemFailure[];
8
- }>;
9
- //# 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;AAM3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,OAAO,GACjB,WAAW,mBAAmB,MACxB,OAAO;IAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAAE;;EAuP/C,CAAC"}
@@ -1,180 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { ConditionalCheckFailedException } from '@aws-sdk/client-dynamodb';
11
- import { ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX, } from '../configs/service.config';
12
- import { StandardError, StandardErrorCode } from '../errors/standard-error';
13
- export const handler = (container) => (event) => __awaiter(void 0, void 0, void 0, function* () {
14
- var _a, _b, _c, _d, _e, _f, _g;
15
- const TableName = process.env.DDB_TABLE || container.coreTable;
16
- const batchItemFailures = [];
17
- const { dynamodbClient } = container;
18
- for (const record of event.Records) {
19
- const errorContext = {};
20
- errorContext.record = record;
21
- try {
22
- if (record.eventName === 'MODIFY') {
23
- const modifiedItem = (_a = record.dynamodb) === null || _a === void 0 ? void 0 : _a.NewImage;
24
- if (!modifiedItem) {
25
- continue;
26
- }
27
- const isMetadata = (_b = modifiedItem.SK.S) === null || _b === void 0 ? void 0 : _b.startsWith('#METADATA#');
28
- const isMutual = ((_c = modifiedItem.PK.S) === null || _c === void 0 ? void 0 : _c.startsWith('MUTUAL#')) && isMetadata;
29
- const isEntity = isMetadata && !isMutual;
30
- if (!isEntity && !isMutual) {
31
- // skip replicated data
32
- continue;
33
- }
34
- // default variables
35
- let targetRPK = 'R1PK';
36
- const targetData = 'data';
37
- let targetIndexName = ENTITY_REPLICATION_INDEX;
38
- const targetUpdatedAt = 'updatedAt';
39
- let queryExpression = {
40
- FilterExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
41
- ExpressionAttributeNames: {
42
- [`#${targetRPK}`]: targetRPK,
43
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
44
- },
45
- ExpressionAttributeValues: {
46
- [`:${targetRPK}`]: modifiedItem.PK,
47
- [`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
48
- },
49
- };
50
- const updateExpession = {
51
- UpdateExpression: `SET #${targetUpdatedAt} = :${targetUpdatedAt}, #${targetData} = :${targetData}`,
52
- ConditionExpression: `#${targetUpdatedAt} < :${targetUpdatedAt}`,
53
- ExpressionAttributeNames: {
54
- [`#${targetData}`]: targetData,
55
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
56
- },
57
- ExpressionAttributeValues: {
58
- [`:${targetData}`]: modifiedItem.data,
59
- [`:${targetUpdatedAt}`]: modifiedItem.updatedAt,
60
- },
61
- };
62
- if (isMutual) {
63
- targetRPK = 'R2PK';
64
- targetIndexName = MUTUAL_REPLICATION_INDEX;
65
- // condition to only replicate to mutualAsEntity
66
- queryExpression = {
67
- FilterExpression: `${queryExpression.FilterExpression} AND #SK = :metadata`, // to replicate to mutualAsEntity only
68
- ExpressionAttributeNames: {
69
- '#SK': 'SK',
70
- [`#${targetRPK}`]: targetRPK,
71
- [`#${targetUpdatedAt}`]: targetUpdatedAt,
72
- },
73
- ExpressionAttributeValues: {
74
- ':metadata': { S: '#METADATA#' },
75
- [`:${targetRPK}`]: modifiedItem.PK,
76
- [`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
77
- },
78
- };
79
- updateExpession.ExpressionAttributeValues = {
80
- [`:${targetData}`]: modifiedItem.mutualData,
81
- [`:${targetUpdatedAt}`]: modifiedItem.mutualUpdatedAt,
82
- };
83
- }
84
- errorContext.queryExpression = queryExpression;
85
- errorContext.updateExpession = updateExpession;
86
- // retrieve all to be replicated items
87
- let toBeReplicatedItems = [];
88
- let lastKey;
89
- do {
90
- const queryResult = yield dynamodbClient.query(Object.assign({ TableName, IndexName: targetIndexName, KeyConditionExpression: `#${targetRPK} = :${targetRPK}` }, queryExpression));
91
- toBeReplicatedItems = [
92
- ...toBeReplicatedItems,
93
- ...(queryResult.Items || []),
94
- ];
95
- lastKey = queryResult.LastEvaluatedKey;
96
- } while (lastKey);
97
- errorContext.toBeReplicatedItems = toBeReplicatedItems;
98
- const updatePromises = toBeReplicatedItems.map((item) => {
99
- const updateParams = Object.assign({ TableName, Key: {
100
- PK: item.PK,
101
- SK: item.SK,
102
- } }, updateExpession);
103
- return dynamodbClient.updateItem(updateParams);
104
- });
105
- const results = yield Promise.allSettled(updatePromises);
106
- errorContext.results = results;
107
- if (results.some((result) => result.status === 'rejected' &&
108
- !(result.reason instanceof ConditionalCheckFailedException))) {
109
- throw new StandardError(StandardErrorCode.REPLICATION_ERROR, 'Replication error', null, errorContext);
110
- }
111
- }
112
- if (record.eventName === 'REMOVE') {
113
- const removedKeys = ((_d = record.dynamodb) === null || _d === void 0 ? void 0 : _d.Keys) || {};
114
- const isMetadata = (_e = removedKeys.SK.S) === null || _e === void 0 ? void 0 : _e.startsWith('#METADATA#');
115
- const isMutual = ((_f = removedKeys.PK.S) === null || _f === void 0 ? void 0 : _f.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 = yield 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) => { var _a, _b; return (_b = (_a = item.R2PK) === null || _a === void 0 ? void 0 : _a.S) === null || _b === void 0 ? void 0 : _b.startsWith('MUTUAL#'); })
146
- .map((filteredItem) => { var _a; return (_a = filteredItem.R2PK) === null || _a === void 0 ? void 0 : _a.S; })));
147
- mutualsToDelete.forEach((mutual) => {
148
- if (!mutual) {
149
- return;
150
- }
151
- itemsToDelete.push({ PK: { S: mutual }, SK: { S: '#METADATA#' } });
152
- });
153
- const deleteResults = yield 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(StandardErrorCode.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: ((_g = record.dynamodb) === null || _g === void 0 ? void 0 : _g.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,12 +0,0 @@
1
- import type { Entity as EntityType } from '@monorise/base';
2
- import type { SQSBatchItemFailure, SQSEvent } from 'aws-lambda';
3
- import type { DependencyContainer } from '../services/DependencyContainer';
4
- export type EventDetailBody = {
5
- entityType: EntityType;
6
- entityId: string;
7
- data: Record<string, any>;
8
- };
9
- export declare const handler: (container: DependencyContainer) => (ev: SQSEvent) => Promise<{
10
- batchItemFailures: SQSBatchItemFailure[];
11
- }>;
12
- //# 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;AAGhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,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,GACjB,WAAW,mBAAmB,MAAY,IAAI,QAAQ;;EAwEtD,CAAC"}