@webiny/api-sync-system 6.3.0 → 6.4.0-beta.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 (239) hide show
  1. package/constants.js +2 -1
  2. package/constants.js.map +1 -1
  3. package/index.js +0 -2
  4. package/package.json +14 -14
  5. package/resolver/app/RecordHandler.js +83 -105
  6. package/resolver/app/RecordHandler.js.map +1 -1
  7. package/resolver/app/RecordsValidation.js +11 -14
  8. package/resolver/app/RecordsValidation.js.map +1 -1
  9. package/resolver/app/ResolverApplication.js +24 -31
  10. package/resolver/app/ResolverApplication.js.map +1 -1
  11. package/resolver/app/abstractions/RecordHandler.js +0 -3
  12. package/resolver/app/abstractions/RecordsValidation.js +0 -3
  13. package/resolver/app/abstractions/ResolverApplication.js +0 -3
  14. package/resolver/app/abstractions/ResolverRecord.js +0 -3
  15. package/resolver/app/bundler/BaseBundle.js +17 -16
  16. package/resolver/app/bundler/BaseBundle.js.map +1 -1
  17. package/resolver/app/bundler/Bundler.js +13 -18
  18. package/resolver/app/bundler/Bundler.js.map +1 -1
  19. package/resolver/app/bundler/Bundles.js +21 -26
  20. package/resolver/app/bundler/Bundles.js.map +1 -1
  21. package/resolver/app/bundler/CommandBundle.js +7 -16
  22. package/resolver/app/bundler/CommandBundle.js.map +1 -1
  23. package/resolver/app/bundler/TableBundle.js +6 -13
  24. package/resolver/app/bundler/TableBundle.js.map +1 -1
  25. package/resolver/app/bundler/types.js +0 -3
  26. package/resolver/app/commandHandler/DeleteCommandHandler.js +22 -29
  27. package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
  28. package/resolver/app/commandHandler/PutCommandHandler.js +16 -22
  29. package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
  30. package/resolver/app/commandHandler/delete.js +11 -12
  31. package/resolver/app/commandHandler/delete.js.map +1 -1
  32. package/resolver/app/commandHandler/put.js +11 -12
  33. package/resolver/app/commandHandler/put.js.map +1 -1
  34. package/resolver/app/data/SourceDataContainer.js +28 -30
  35. package/resolver/app/data/SourceDataContainer.js.map +1 -1
  36. package/resolver/app/data/types.js +0 -3
  37. package/resolver/app/fetcher/Fetcher.js +84 -109
  38. package/resolver/app/fetcher/Fetcher.js.map +1 -1
  39. package/resolver/app/fetcher/types.js +0 -3
  40. package/resolver/app/ingestor/Ingestor.js +27 -32
  41. package/resolver/app/ingestor/Ingestor.js.map +1 -1
  42. package/resolver/app/ingestor/IngestorResult.js +28 -32
  43. package/resolver/app/ingestor/IngestorResult.js.map +1 -1
  44. package/resolver/app/ingestor/types.js +0 -3
  45. package/resolver/app/storer/Storer.js +71 -85
  46. package/resolver/app/storer/Storer.js.map +1 -1
  47. package/resolver/app/storer/types.js +0 -3
  48. package/resolver/app/transform/TransformHandler.js +45 -56
  49. package/resolver/app/transform/TransformHandler.js.map +1 -1
  50. package/resolver/app/transform/middleware.js +13 -20
  51. package/resolver/app/transform/middleware.js.map +1 -1
  52. package/resolver/app/utils/Retry.js +21 -24
  53. package/resolver/app/utils/Retry.js.map +1 -1
  54. package/resolver/app/utils/sleep.js +4 -5
  55. package/resolver/app/utils/sleep.js.map +1 -1
  56. package/resolver/app/validation/body.js +26 -31
  57. package/resolver/app/validation/body.js.map +1 -1
  58. package/resolver/app/validation/createJsonTransform.js +12 -13
  59. package/resolver/app/validation/createJsonTransform.js.map +1 -1
  60. package/resolver/app/validation/detail.js +30 -35
  61. package/resolver/app/validation/detail.js.map +1 -1
  62. package/resolver/app/validation/event.js +17 -18
  63. package/resolver/app/validation/event.js.map +1 -1
  64. package/resolver/app/validation/numericString.js +8 -11
  65. package/resolver/app/validation/numericString.js.map +1 -1
  66. package/resolver/app/validation/system.js +8 -9
  67. package/resolver/app/validation/system.js.map +1 -1
  68. package/resolver/createEventHandlerPlugin.js +70 -99
  69. package/resolver/createEventHandlerPlugin.js.map +1 -1
  70. package/resolver/createResolverHandler.js +49 -57
  71. package/resolver/createResolverHandler.js.map +1 -1
  72. package/resolver/deployment/Deployment.js +28 -31
  73. package/resolver/deployment/Deployment.js.map +1 -1
  74. package/resolver/deployment/Deployments.js +20 -23
  75. package/resolver/deployment/Deployments.js.map +1 -1
  76. package/resolver/deployment/DeploymentsFetcher.js +75 -84
  77. package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
  78. package/resolver/deployment/types.js +0 -3
  79. package/resolver/lambda/LambdaTrigger.js +24 -26
  80. package/resolver/lambda/LambdaTrigger.js.map +1 -1
  81. package/resolver/plugins/CommandHandlerPlugin.js +16 -15
  82. package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
  83. package/resolver/plugins/StorerAfterEachPlugin.js +20 -19
  84. package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
  85. package/resolver/plugins/TransformRecordPlugin.js +19 -18
  86. package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
  87. package/resolver/recordTypes/fileManager/CopyFile.js +44 -67
  88. package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
  89. package/resolver/recordTypes/fileManager/DeleteFile.js +40 -58
  90. package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
  91. package/resolver/recordTypes/fileManager/fileManager.js +5 -3
  92. package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
  93. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +24 -35
  94. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
  95. package/resolver/recordTypes/fileManager/fileManagerOnPut.js +24 -35
  96. package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
  97. package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -27
  98. package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
  99. package/resolver/recordTypes/fileManager/types.js +0 -3
  100. package/resolver/recordTypes/users/CopyUser.js +44 -54
  101. package/resolver/recordTypes/users/CopyUser.js.map +1 -1
  102. package/resolver/recordTypes/users/DeleteUser.js +40 -51
  103. package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
  104. package/resolver/recordTypes/users/shouldBeHandled.js +10 -26
  105. package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
  106. package/resolver/recordTypes/users/types.js +0 -3
  107. package/resolver/recordTypes/users/users.js +5 -3
  108. package/resolver/recordTypes/users/users.js.map +1 -1
  109. package/resolver/recordTypes/users/usersOnDelete.js +23 -34
  110. package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
  111. package/resolver/recordTypes/users/usersOnPut.js +24 -35
  112. package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
  113. package/sync/FilterOutRecord.js +9 -17
  114. package/sync/FilterOutRecord.js.map +1 -1
  115. package/sync/attachToDynamoDbDocument.js +46 -65
  116. package/sync/attachToDynamoDbDocument.js.map +1 -1
  117. package/sync/createHandler.js +31 -40
  118. package/sync/createHandler.js.map +1 -1
  119. package/sync/createSendDataToEventBridgeOnRequestEnd.js +32 -37
  120. package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +1 -1
  121. package/sync/createSyncSystem.js +24 -26
  122. package/sync/createSyncSystem.js.map +1 -1
  123. package/sync/filter/createDefaultFilterOutRecordPlugins.js +37 -76
  124. package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
  125. package/sync/handler/Handler.js +64 -76
  126. package/sync/handler/Handler.js.map +1 -1
  127. package/sync/handler/HandlerConverter.js +21 -29
  128. package/sync/handler/HandlerConverter.js.map +1 -1
  129. package/sync/handler/converter/BatchGetCommandConverter.js +12 -11
  130. package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
  131. package/sync/handler/converter/BatchWriteCommandConverter.js +12 -11
  132. package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
  133. package/sync/handler/converter/DeleteCommandConverter.js +12 -11
  134. package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
  135. package/sync/handler/converter/GetCommandConverter.js +12 -11
  136. package/sync/handler/converter/GetCommandConverter.js.map +1 -1
  137. package/sync/handler/converter/PutCommandConverter.js +12 -11
  138. package/sync/handler/converter/PutCommandConverter.js.map +1 -1
  139. package/sync/handler/converter/QueryCommandConverter.js +12 -11
  140. package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
  141. package/sync/handler/converter/ScanCommandConverter.js +12 -11
  142. package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
  143. package/sync/handler/converter/UpdateCommandConverter.js +12 -11
  144. package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
  145. package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -37
  146. package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
  147. package/sync/handler/converter/commands/DeleteCommandValue.js +19 -16
  148. package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
  149. package/sync/handler/converter/commands/NullCommandValue.js +8 -8
  150. package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
  151. package/sync/handler/converter/commands/PutCommandValue.js +19 -16
  152. package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
  153. package/sync/handler/converter/commands/UpdateCommandValue.js +19 -16
  154. package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
  155. package/sync/handler/types.js +0 -3
  156. package/sync/plugins/FilterOutRecordPlugin.js +17 -19
  157. package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
  158. package/sync/requestPlugin.js +33 -48
  159. package/sync/requestPlugin.js.map +1 -1
  160. package/sync/types.js +0 -3
  161. package/sync/utils/getTableType.js +10 -9
  162. package/sync/utils/getTableType.js.map +1 -1
  163. package/sync/utils/manifest.js +28 -35
  164. package/sync/utils/manifest.js.map +1 -1
  165. package/sync/utils/validateSystemInput.js +21 -29
  166. package/sync/utils/validateSystemInput.js.map +1 -1
  167. package/types.js +6 -5
  168. package/types.js.map +1 -1
  169. package/utils/createSystemName.js +5 -3
  170. package/utils/createSystemName.js.map +1 -1
  171. package/worker/actions/copyFile/CopyFile.js +183 -258
  172. package/worker/actions/copyFile/CopyFile.js.map +1 -1
  173. package/worker/actions/copyFile/copyFileAction.js +26 -34
  174. package/worker/actions/copyFile/copyFileAction.js.map +1 -1
  175. package/worker/actions/copyFile/copyFileSchema.js +13 -14
  176. package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
  177. package/worker/actions/copyFile/types.js +0 -3
  178. package/worker/actions/createUser/CreateUser.js +51 -74
  179. package/worker/actions/createUser/CreateUser.js.map +1 -1
  180. package/worker/actions/createUser/createUserAction.js +24 -28
  181. package/worker/actions/createUser/createUserAction.js.map +1 -1
  182. package/worker/actions/createUser/createUserSchema.js +13 -14
  183. package/worker/actions/createUser/createUserSchema.js.map +1 -1
  184. package/worker/actions/createUser/types.js +0 -3
  185. package/worker/actions/deleteFile/DeleteFile.js +52 -67
  186. package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
  187. package/worker/actions/deleteFile/deleteFileAction.js +21 -29
  188. package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
  189. package/worker/actions/deleteFile/deleteFileSchema.js +13 -14
  190. package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
  191. package/worker/actions/deleteFile/types.js +0 -3
  192. package/worker/actions/deleteUser/DeleteUser.js +38 -52
  193. package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
  194. package/worker/actions/deleteUser/deleteUserAction.js +22 -26
  195. package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
  196. package/worker/actions/deleteUser/deleteUserSchema.js +12 -13
  197. package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
  198. package/worker/actions/deleteUser/types.js +0 -3
  199. package/worker/actions/logValidationError.js +5 -6
  200. package/worker/actions/logValidationError.js.map +1 -1
  201. package/worker/actions/removeCognitoUserAttributes.js +9 -15
  202. package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
  203. package/worker/actions/updateUser/UpdateUser.js +48 -65
  204. package/worker/actions/updateUser/UpdateUser.js.map +1 -1
  205. package/worker/actions/updateUser/types.js +0 -3
  206. package/worker/actions/updateUser/updateUserAction.js +24 -28
  207. package/worker/actions/updateUser/updateUserAction.js.map +1 -1
  208. package/worker/actions/updateUser/updateUserSchema.js +13 -14
  209. package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
  210. package/worker/createWorkerHandler.js +24 -30
  211. package/worker/createWorkerHandler.js.map +1 -1
  212. package/worker/handler/WorkerActionHandler.js +19 -21
  213. package/worker/handler/WorkerActionHandler.js.map +1 -1
  214. package/worker/handler/eventHandler.js +14 -16
  215. package/worker/handler/eventHandler.js.map +1 -1
  216. package/worker/plugins/WorkerActionPlugin.js +17 -16
  217. package/worker/plugins/WorkerActionPlugin.js.map +1 -1
  218. package/worker/types.js +0 -3
  219. package/index.js.map +0 -1
  220. package/resolver/app/abstractions/RecordHandler.js.map +0 -1
  221. package/resolver/app/abstractions/RecordsValidation.js.map +0 -1
  222. package/resolver/app/abstractions/ResolverApplication.js.map +0 -1
  223. package/resolver/app/abstractions/ResolverRecord.js.map +0 -1
  224. package/resolver/app/bundler/types.js.map +0 -1
  225. package/resolver/app/data/types.js.map +0 -1
  226. package/resolver/app/fetcher/types.js.map +0 -1
  227. package/resolver/app/ingestor/types.js.map +0 -1
  228. package/resolver/app/storer/types.js.map +0 -1
  229. package/resolver/deployment/types.js.map +0 -1
  230. package/resolver/recordTypes/fileManager/types.js.map +0 -1
  231. package/resolver/recordTypes/users/types.js.map +0 -1
  232. package/sync/handler/types.js.map +0 -1
  233. package/sync/types.js.map +0 -1
  234. package/worker/actions/copyFile/types.js.map +0 -1
  235. package/worker/actions/createUser/types.js.map +0 -1
  236. package/worker/actions/deleteFile/types.js.map +0 -1
  237. package/worker/actions/deleteUser/types.js.map +0 -1
  238. package/worker/actions/updateUser/types.js.map +0 -1
  239. package/worker/types.js.map +0 -1
package/constants.js CHANGED
@@ -1,3 +1,4 @@
1
- export const SQS_EVENT_NAME = "synchronization-input";
1
+ const SQS_EVENT_NAME = "synchronization-input";
2
+ export { SQS_EVENT_NAME };
2
3
 
3
4
  //# sourceMappingURL=constants.js.map
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SQS_EVENT_NAME"],"sources":["constants.ts"],"sourcesContent":["export const SQS_EVENT_NAME = \"synchronization-input\" as const;\n"],"mappings":"AAAA,OAAO,MAAMA,cAAc,GAAG,uBAAgC","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const SQS_EVENT_NAME = \"synchronization-input\" as const;\n"],"names":["SQS_EVENT_NAME"],"mappings":"AAAO,MAAMA,iBAAiB"}
package/index.js CHANGED
@@ -1,5 +1,3 @@
1
1
  export * from "./worker/createWorkerHandler.js";
2
2
  export * from "./sync/createSyncSystem.js";
3
3
  export * from "./resolver/createResolverHandler.js";
4
-
5
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-sync-system",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -14,32 +14,32 @@
14
14
  "author": "Webiny LTD",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@webiny/api": "6.3.0",
18
- "@webiny/aws-sdk": "6.3.0",
19
- "@webiny/error": "6.3.0",
20
- "@webiny/handler": "6.3.0",
21
- "@webiny/handler-aws": "6.3.0",
22
- "@webiny/plugins": "6.3.0",
23
- "@webiny/utils": "6.3.0",
17
+ "@webiny/api": "6.4.0-beta.1",
18
+ "@webiny/aws-sdk": "6.4.0-beta.1",
19
+ "@webiny/error": "6.4.0-beta.1",
20
+ "@webiny/handler": "6.4.0-beta.1",
21
+ "@webiny/handler-aws": "6.4.0-beta.1",
22
+ "@webiny/plugins": "6.4.0-beta.1",
23
+ "@webiny/utils": "6.4.0-beta.1",
24
24
  "bytes": "3.1.2",
25
25
  "lodash": "4.18.1",
26
- "semver": "7.7.4",
27
- "zod": "4.3.6"
26
+ "semver": "7.8.0",
27
+ "zod": "4.4.3"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@faker-js/faker": "10.4.0",
31
31
  "@types/lodash": "4.17.24",
32
- "@webiny/build-tools": "6.3.0",
33
- "@webiny/project-utils": "6.3.0",
32
+ "@webiny/build-tools": "6.4.0-beta.1",
33
+ "@webiny/project-utils": "6.4.0-beta.1",
34
34
  "aws-sdk-client-mock": "4.1.0",
35
35
  "jest-dynalite": "3.6.1",
36
36
  "rimraf": "6.1.3",
37
37
  "typescript": "6.0.3",
38
- "vitest": "4.1.5"
38
+ "vitest": "4.1.6"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public",
42
42
  "directory": "dist"
43
43
  },
44
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
44
+ "gitHead": "73237b8243693038c072bae1c0b783387448cbbe"
45
45
  }
@@ -1,118 +1,96 @@
1
1
  import { CommandHandlerPlugin } from "../plugins/CommandHandlerPlugin.js";
2
2
  import { convertException } from "@webiny/utils";
3
- export class RecordHandler {
4
- constructor(params) {
5
- this.plugins = params.plugins;
6
- this.fetcher = params.fetcher;
7
- this.storer = params.storer;
8
- this.commandBundler = params.commandBundler;
9
- this.tableBundler = params.tableBundler;
10
- this.deployments = params.deployments;
11
- this.transformHandler = params.transformHandler;
12
- this.createSourceDataContainer = params.createSourceDataContainer;
13
- this.commandHandlerPlugins = this.plugins.byType(CommandHandlerPlugin.type);
14
- }
15
- async handle(params) {
16
- const {
17
- data
18
- } = params;
19
- const sources = this.tableBundler.bundle({
20
- items: data.getItems()
21
- });
22
- const container = this.createSourceDataContainer();
23
- for (const bundle of sources.getBundles()) {
24
- /**
25
- * Need to fetch all the records from the source deployment tables.
26
- */
27
- const {
28
- items,
29
- error
30
- } = await this.fetcher.exec({
31
- deployment: bundle.source,
32
- table: bundle.table,
33
- items: bundle.items,
34
- maxBatchSize: 25
35
- });
36
- if (error) {
37
- console.error(`Could not fetch records from the source table (${bundle.source.name} / ${bundle.table.name}). More info in next log line.`);
38
- console.log(convertException(error));
39
- continue;
40
- }
41
- container.merge(items);
3
+ class RecordHandler {
4
+ constructor(params){
5
+ this.plugins = params.plugins;
6
+ this.fetcher = params.fetcher;
7
+ this.storer = params.storer;
8
+ this.commandBundler = params.commandBundler;
9
+ this.tableBundler = params.tableBundler;
10
+ this.deployments = params.deployments;
11
+ this.transformHandler = params.transformHandler;
12
+ this.createSourceDataContainer = params.createSourceDataContainer;
13
+ this.commandHandlerPlugins = this.plugins.byType(CommandHandlerPlugin.type);
42
14
  }
43
- /**
44
- * We can now handle the records by going through all the items bundled by command, in correct order.
45
- */
46
- const bundlesByCommand = this.commandBundler.bundle({
47
- items: data.getItems()
48
- });
49
- for (const bundle of bundlesByCommand.getBundles()) {
50
- const deployments = this.deployments.without(bundle.source);
51
- for (const targetDeployment of deployments.all()) {
52
- /**
53
- * We need to map keys to actual items from the source deployment.
54
- */
55
- const items = bundle.items.map(item => {
56
- return container.get({
57
- PK: item.PK,
58
- SK: item.SK,
59
- table: bundle.table,
60
- source: bundle.source
61
- });
62
- }).filter(item => !!item);
63
- const targetTable = this.findTargetTable({
64
- bundle,
65
- targetDeployment
15
+ async handle(params) {
16
+ const { data } = params;
17
+ const sources = this.tableBundler.bundle({
18
+ items: data.getItems()
66
19
  });
67
- if (!targetTable) {
68
- console.error(`Could not find target table for source table "${bundle.table.name}" in deployment "${bundle.source.name}".`);
69
- continue;
20
+ const container = this.createSourceDataContainer();
21
+ for (const bundle of sources.getBundles()){
22
+ const { items, error } = await this.fetcher.exec({
23
+ deployment: bundle.source,
24
+ table: bundle.table,
25
+ items: bundle.items,
26
+ maxBatchSize: 25
27
+ });
28
+ if (error) {
29
+ console.error(`Could not fetch records from the source table (${bundle.source.name} / ${bundle.table.name}). More info in next log line.`);
30
+ console.log(convertException(error));
31
+ continue;
32
+ }
33
+ container.merge(items);
70
34
  }
71
- const result = await this.transformHandler.transform({
72
- items,
73
- sourceDeployment: bundle.source,
74
- sourceTable: bundle.table,
75
- targetDeployment: targetDeployment,
76
- targetTable: targetTable
35
+ const bundlesByCommand = this.commandBundler.bundle({
36
+ items: data.getItems()
77
37
  });
78
- let commandHandler;
79
- try {
80
- commandHandler = this.getCommandHandler(bundle.command);
81
- } catch (ex) {
82
- console.error(ex.message);
83
- continue;
38
+ for (const bundle of bundlesByCommand.getBundles()){
39
+ const deployments = this.deployments.without(bundle.source);
40
+ for (const targetDeployment of deployments.all()){
41
+ const items = bundle.items.map((item)=>container.get({
42
+ PK: item.PK,
43
+ SK: item.SK,
44
+ table: bundle.table,
45
+ source: bundle.source
46
+ })).filter((item)=>!!item);
47
+ const targetTable = this.findTargetTable({
48
+ bundle,
49
+ targetDeployment
50
+ });
51
+ if (!targetTable) {
52
+ console.error(`Could not find target table for source table "${bundle.table.name}" in deployment "${bundle.source.name}".`);
53
+ continue;
54
+ }
55
+ const result = await this.transformHandler.transform({
56
+ items,
57
+ sourceDeployment: bundle.source,
58
+ sourceTable: bundle.table,
59
+ targetDeployment: targetDeployment,
60
+ targetTable: targetTable
61
+ });
62
+ let commandHandler;
63
+ try {
64
+ commandHandler = this.getCommandHandler(bundle.command);
65
+ } catch (ex) {
66
+ console.error(ex.message);
67
+ continue;
68
+ }
69
+ await commandHandler.handle({
70
+ storer: this.storer,
71
+ items: result.items,
72
+ bundle,
73
+ targetDeployment: targetDeployment,
74
+ targetTable: targetTable
75
+ });
76
+ }
84
77
  }
85
- await commandHandler.handle({
86
- storer: this.storer,
87
- items: result.items,
88
- bundle,
89
- targetDeployment: targetDeployment,
90
- targetTable: targetTable
91
- });
92
- }
93
78
  }
94
- }
95
- findTargetTable(params) {
96
- const {
97
- bundle,
98
- targetDeployment
99
- } = params;
100
- try {
101
- return targetDeployment.getTable(bundle.table.type);
102
- } catch {
103
- return null;
79
+ findTargetTable(params) {
80
+ const { bundle, targetDeployment } = params;
81
+ try {
82
+ return targetDeployment.getTable(bundle.table.type);
83
+ } catch {
84
+ return null;
85
+ }
104
86
  }
105
- }
106
- getCommandHandler(command) {
107
- const handler = this.commandHandlerPlugins.find(plugin => plugin.canHandle(command));
108
- if (!handler) {
109
- throw new Error(`Could not find a command handler for command: ${command}`);
87
+ getCommandHandler(command) {
88
+ const handler = this.commandHandlerPlugins.find((plugin)=>plugin.canHandle(command));
89
+ if (!handler) throw new Error(`Could not find a command handler for command: ${command}`);
90
+ return handler;
110
91
  }
111
- return handler;
112
- }
113
92
  }
114
- export const createRecordHandler = params => {
115
- return new RecordHandler(params);
116
- };
93
+ const createRecordHandler = (params)=>new RecordHandler(params);
94
+ export { RecordHandler, createRecordHandler };
117
95
 
118
96
  //# sourceMappingURL=RecordHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CommandHandlerPlugin","convertException","RecordHandler","constructor","params","plugins","fetcher","storer","commandBundler","tableBundler","deployments","transformHandler","createSourceDataContainer","commandHandlerPlugins","byType","type","handle","data","sources","bundle","items","getItems","container","getBundles","error","exec","deployment","source","table","maxBatchSize","console","name","log","merge","bundlesByCommand","without","targetDeployment","all","map","item","get","PK","SK","filter","targetTable","findTargetTable","result","transform","sourceDeployment","sourceTable","commandHandler","getCommandHandler","command","ex","message","getTable","handler","find","plugin","canHandle","Error","createRecordHandler"],"sources":["RecordHandler.ts"],"sourcesContent":["import type { IRecordHandler, IRecordHandlerHandleParams } from \"./abstractions/RecordHandler.js\";\nimport { CommandHandlerPlugin } from \"../plugins/CommandHandlerPlugin.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { CommandType } from \"~/types.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type { IFetcher } from \"~/resolver/app/fetcher/types.js\";\nimport type { IStoreItem, IStorer } from \"~/resolver/app/storer/types.js\";\nimport type { IBundle, IBundler } from \"~/resolver/app/bundler/types.js\";\nimport type { IDeployment, IDeployments } from \"~/resolver/deployment/types.js\";\nimport type { ITransformHandler } from \"~/resolver/app/transform/TransformHandler.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { ISourceDataContainer } from \"~/resolver/app/data/types.js\";\n\nexport interface IRecordHandlerParams {\n fetcher: IFetcher;\n storer: IStorer;\n plugins: PluginsContainer;\n commandBundler: IBundler;\n tableBundler: IBundler;\n deployments: IDeployments;\n transformHandler: ITransformHandler;\n createSourceDataContainer: () => ISourceDataContainer;\n}\n\ninterface IFindTargetTableParams {\n bundle: IBundle;\n targetDeployment: IDeployment;\n}\n\nexport class RecordHandler implements IRecordHandler {\n private readonly plugins: PluginsContainer;\n private readonly commandHandlerPlugins: CommandHandlerPlugin[];\n private readonly fetcher: IFetcher;\n private readonly storer: IStorer;\n private readonly commandBundler: IBundler;\n private readonly tableBundler: IBundler;\n private readonly deployments: IDeployments;\n private readonly transformHandler: ITransformHandler;\n private readonly createSourceDataContainer: () => ISourceDataContainer;\n\n public constructor(params: IRecordHandlerParams) {\n this.plugins = params.plugins;\n this.fetcher = params.fetcher;\n this.storer = params.storer;\n this.commandBundler = params.commandBundler;\n this.tableBundler = params.tableBundler;\n this.deployments = params.deployments;\n this.transformHandler = params.transformHandler;\n this.createSourceDataContainer = params.createSourceDataContainer;\n\n this.commandHandlerPlugins = this.plugins.byType<CommandHandlerPlugin>(\n CommandHandlerPlugin.type\n );\n }\n\n public async handle(params: IRecordHandlerHandleParams): Promise<void> {\n const { data } = params;\n\n const sources = this.tableBundler.bundle({\n items: data.getItems()\n });\n\n const container = this.createSourceDataContainer();\n\n for (const bundle of sources.getBundles()) {\n /**\n * Need to fetch all the records from the source deployment tables.\n */\n const { items, error } = await this.fetcher.exec({\n deployment: bundle.source,\n table: bundle.table,\n items: bundle.items,\n maxBatchSize: 25\n });\n if (error) {\n console.error(\n `Could not fetch records from the source table (${bundle.source.name} / ${bundle.table.name}). More info in next log line.`\n );\n console.log(convertException(error));\n continue;\n }\n container.merge(items);\n }\n /**\n * We can now handle the records by going through all the items bundled by command, in correct order.\n */\n const bundlesByCommand = this.commandBundler.bundle({\n items: data.getItems()\n });\n for (const bundle of bundlesByCommand.getBundles()) {\n const deployments = this.deployments.without(bundle.source);\n for (const targetDeployment of deployments.all()) {\n /**\n * We need to map keys to actual items from the source deployment.\n */\n const items = bundle.items\n .map(item => {\n return container.get({\n PK: item.PK,\n SK: item.SK,\n table: bundle.table,\n source: bundle.source\n });\n })\n .filter((item): item is IStoreItem => !!item);\n\n const targetTable = this.findTargetTable({\n bundle,\n targetDeployment\n });\n if (!targetTable) {\n console.error(\n `Could not find target table for source table \"${bundle.table.name}\" in deployment \"${bundle.source.name}\".`\n );\n continue;\n }\n\n const result = await this.transformHandler.transform({\n items,\n sourceDeployment: bundle.source,\n sourceTable: bundle.table,\n targetDeployment: targetDeployment,\n targetTable: targetTable\n });\n\n let commandHandler: CommandHandlerPlugin;\n try {\n commandHandler = this.getCommandHandler(bundle.command);\n } catch (ex) {\n console.error(ex.message);\n continue;\n }\n\n await commandHandler.handle({\n storer: this.storer,\n items: result.items,\n bundle,\n targetDeployment: targetDeployment,\n targetTable: targetTable\n });\n }\n }\n }\n\n private findTargetTable(params: IFindTargetTableParams): ITable | null {\n const { bundle, targetDeployment } = params;\n\n try {\n return targetDeployment.getTable(bundle.table.type);\n } catch {\n return null;\n }\n }\n\n private getCommandHandler(command: CommandType): CommandHandlerPlugin {\n const handler = this.commandHandlerPlugins.find(plugin => plugin.canHandle(command));\n if (!handler) {\n throw new Error(`Could not find a command handler for command: ${command}`);\n }\n\n return handler;\n }\n}\n\nexport const createRecordHandler = (params: IRecordHandlerParams): IRecordHandler => {\n return new RecordHandler(params);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"resolver/app/RecordHandler.js","sources":["../../../src/resolver/app/RecordHandler.ts"],"sourcesContent":["import type { IRecordHandler, IRecordHandlerHandleParams } from \"./abstractions/RecordHandler.js\";\nimport { CommandHandlerPlugin } from \"../plugins/CommandHandlerPlugin.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { CommandType } from \"~/types.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type { IFetcher } from \"~/resolver/app/fetcher/types.js\";\nimport type { IStoreItem, IStorer } from \"~/resolver/app/storer/types.js\";\nimport type { IBundle, IBundler } from \"~/resolver/app/bundler/types.js\";\nimport type { IDeployment, IDeployments } from \"~/resolver/deployment/types.js\";\nimport type { ITransformHandler } from \"~/resolver/app/transform/TransformHandler.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { ISourceDataContainer } from \"~/resolver/app/data/types.js\";\n\nexport interface IRecordHandlerParams {\n fetcher: IFetcher;\n storer: IStorer;\n plugins: PluginsContainer;\n commandBundler: IBundler;\n tableBundler: IBundler;\n deployments: IDeployments;\n transformHandler: ITransformHandler;\n createSourceDataContainer: () => ISourceDataContainer;\n}\n\ninterface IFindTargetTableParams {\n bundle: IBundle;\n targetDeployment: IDeployment;\n}\n\nexport class RecordHandler implements IRecordHandler {\n private readonly plugins: PluginsContainer;\n private readonly commandHandlerPlugins: CommandHandlerPlugin[];\n private readonly fetcher: IFetcher;\n private readonly storer: IStorer;\n private readonly commandBundler: IBundler;\n private readonly tableBundler: IBundler;\n private readonly deployments: IDeployments;\n private readonly transformHandler: ITransformHandler;\n private readonly createSourceDataContainer: () => ISourceDataContainer;\n\n public constructor(params: IRecordHandlerParams) {\n this.plugins = params.plugins;\n this.fetcher = params.fetcher;\n this.storer = params.storer;\n this.commandBundler = params.commandBundler;\n this.tableBundler = params.tableBundler;\n this.deployments = params.deployments;\n this.transformHandler = params.transformHandler;\n this.createSourceDataContainer = params.createSourceDataContainer;\n\n this.commandHandlerPlugins = this.plugins.byType<CommandHandlerPlugin>(\n CommandHandlerPlugin.type\n );\n }\n\n public async handle(params: IRecordHandlerHandleParams): Promise<void> {\n const { data } = params;\n\n const sources = this.tableBundler.bundle({\n items: data.getItems()\n });\n\n const container = this.createSourceDataContainer();\n\n for (const bundle of sources.getBundles()) {\n /**\n * Need to fetch all the records from the source deployment tables.\n */\n const { items, error } = await this.fetcher.exec({\n deployment: bundle.source,\n table: bundle.table,\n items: bundle.items,\n maxBatchSize: 25\n });\n if (error) {\n console.error(\n `Could not fetch records from the source table (${bundle.source.name} / ${bundle.table.name}). More info in next log line.`\n );\n console.log(convertException(error));\n continue;\n }\n container.merge(items);\n }\n /**\n * We can now handle the records by going through all the items bundled by command, in correct order.\n */\n const bundlesByCommand = this.commandBundler.bundle({\n items: data.getItems()\n });\n for (const bundle of bundlesByCommand.getBundles()) {\n const deployments = this.deployments.without(bundle.source);\n for (const targetDeployment of deployments.all()) {\n /**\n * We need to map keys to actual items from the source deployment.\n */\n const items = bundle.items\n .map(item => {\n return container.get({\n PK: item.PK,\n SK: item.SK,\n table: bundle.table,\n source: bundle.source\n });\n })\n .filter((item): item is IStoreItem => !!item);\n\n const targetTable = this.findTargetTable({\n bundle,\n targetDeployment\n });\n if (!targetTable) {\n console.error(\n `Could not find target table for source table \"${bundle.table.name}\" in deployment \"${bundle.source.name}\".`\n );\n continue;\n }\n\n const result = await this.transformHandler.transform({\n items,\n sourceDeployment: bundle.source,\n sourceTable: bundle.table,\n targetDeployment: targetDeployment,\n targetTable: targetTable\n });\n\n let commandHandler: CommandHandlerPlugin;\n try {\n commandHandler = this.getCommandHandler(bundle.command);\n } catch (ex) {\n console.error(ex.message);\n continue;\n }\n\n await commandHandler.handle({\n storer: this.storer,\n items: result.items,\n bundle,\n targetDeployment: targetDeployment,\n targetTable: targetTable\n });\n }\n }\n }\n\n private findTargetTable(params: IFindTargetTableParams): ITable | null {\n const { bundle, targetDeployment } = params;\n\n try {\n return targetDeployment.getTable(bundle.table.type);\n } catch {\n return null;\n }\n }\n\n private getCommandHandler(command: CommandType): CommandHandlerPlugin {\n const handler = this.commandHandlerPlugins.find(plugin => plugin.canHandle(command));\n if (!handler) {\n throw new Error(`Could not find a command handler for command: ${command}`);\n }\n\n return handler;\n }\n}\n\nexport const createRecordHandler = (params: IRecordHandlerParams): IRecordHandler => {\n return new RecordHandler(params);\n};\n"],"names":["RecordHandler","params","CommandHandlerPlugin","data","sources","container","bundle","items","error","console","convertException","bundlesByCommand","deployments","targetDeployment","item","targetTable","result","commandHandler","ex","command","handler","plugin","Error","createRecordHandler"],"mappings":"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"}
@@ -1,21 +1,18 @@
1
1
  import { createZodError } from "@webiny/utils";
2
2
  import { createEventValidation } from "./validation/event.js";
3
3
  const validation = createEventValidation();
4
- export class RecordsValidation {
5
- async validate(records) {
6
- const result = await validation.safeParseAsync(records);
7
- if (result.error) {
8
- return {
9
- error: createZodError(result.error)
10
- };
4
+ class RecordsValidation {
5
+ async validate(records) {
6
+ const result = await validation.safeParseAsync(records);
7
+ if (result.error) return {
8
+ error: createZodError(result.error)
9
+ };
10
+ return {
11
+ records: result.data
12
+ };
11
13
  }
12
- return {
13
- records: result.data
14
- };
15
- }
16
14
  }
17
- export const createRecordsValidation = () => {
18
- return new RecordsValidation();
19
- };
15
+ const createRecordsValidation = ()=>new RecordsValidation();
16
+ export { RecordsValidation, createRecordsValidation };
20
17
 
21
18
  //# sourceMappingURL=RecordsValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createZodError","createEventValidation","validation","RecordsValidation","validate","records","result","safeParseAsync","error","data","createRecordsValidation"],"sources":["RecordsValidation.ts"],"sourcesContent":["import type { SQSRecord } from \"@webiny/aws-sdk/types/index.js\";\nimport type {\n IRecordsValidation,\n IRecordsValidationResult\n} from \"./abstractions/RecordsValidation.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { createEventValidation } from \"~/resolver/app/validation/event.js\";\n\nconst validation = createEventValidation();\n\nexport class RecordsValidation implements IRecordsValidation {\n public async validate(records: SQSRecord[]): Promise<IRecordsValidationResult> {\n const result = await validation.safeParseAsync(records);\n if (result.error) {\n return {\n error: createZodError(result.error)\n };\n }\n return {\n records: result.data\n };\n }\n}\n\nexport const createRecordsValidation = (): IRecordsValidation => {\n return new RecordsValidation();\n};\n"],"mappings":"AAKA,SAASA,cAAc,QAAQ,eAAe;AAC9C,SAASC,qBAAqB;AAE9B,MAAMC,UAAU,GAAGD,qBAAqB,CAAC,CAAC;AAE1C,OAAO,MAAME,iBAAiB,CAA+B;EACzD,MAAaC,QAAQA,CAACC,OAAoB,EAAqC;IAC3E,MAAMC,MAAM,GAAG,MAAMJ,UAAU,CAACK,cAAc,CAACF,OAAO,CAAC;IACvD,IAAIC,MAAM,CAACE,KAAK,EAAE;MACd,OAAO;QACHA,KAAK,EAAER,cAAc,CAACM,MAAM,CAACE,KAAK;MACtC,CAAC;IACL;IACA,OAAO;MACHH,OAAO,EAAEC,MAAM,CAACG;IACpB,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAA0B;EAC7D,OAAO,IAAIP,iBAAiB,CAAC,CAAC;AAClC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"resolver/app/RecordsValidation.js","sources":["../../../src/resolver/app/RecordsValidation.ts"],"sourcesContent":["import type { SQSRecord } from \"@webiny/aws-sdk/types/index.js\";\nimport type {\n IRecordsValidation,\n IRecordsValidationResult\n} from \"./abstractions/RecordsValidation.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { createEventValidation } from \"~/resolver/app/validation/event.js\";\n\nconst validation = createEventValidation();\n\nexport class RecordsValidation implements IRecordsValidation {\n public async validate(records: SQSRecord[]): Promise<IRecordsValidationResult> {\n const result = await validation.safeParseAsync(records);\n if (result.error) {\n return {\n error: createZodError(result.error)\n };\n }\n return {\n records: result.data\n };\n }\n}\n\nexport const createRecordsValidation = (): IRecordsValidation => {\n return new RecordsValidation();\n};\n"],"names":["validation","createEventValidation","RecordsValidation","records","result","createZodError","createRecordsValidation"],"mappings":";;AAQA,MAAMA,aAAaC;AAEZ,MAAMC;IACT,MAAa,SAASC,OAAoB,EAAqC;QAC3E,MAAMC,SAAS,MAAMJ,WAAW,cAAc,CAACG;QAC/C,IAAIC,OAAO,KAAK,EACZ,OAAO;YACH,OAAOC,eAAeD,OAAO,KAAK;QACtC;QAEJ,OAAO;YACH,SAASA,OAAO,IAAI;QACxB;IACJ;AACJ;AAEO,MAAME,0BAA0B,IAC5B,IAAIJ"}
@@ -2,39 +2,32 @@ import { createRecordsValidation } from "./RecordsValidation.js";
2
2
  import { convertException } from "@webiny/utils";
3
3
  import { createIngestor } from "./ingestor/Ingestor.js";
4
4
  import { createIngestorResult } from "./ingestor/IngestorResult.js";
5
- export class ResolverApplication {
6
- constructor(params) {
7
- this.recordHandler = params.recordHandler;
8
- this.deployments = params.deployments;
9
- }
10
- async resolve(params) {
11
- const validation = createRecordsValidation();
12
- const result = await validation.validate(params.records);
13
- if (result.error) {
14
- throw result.error;
5
+ class ResolverApplication {
6
+ constructor(params){
7
+ this.recordHandler = params.recordHandler;
8
+ this.deployments = params.deployments;
15
9
  }
16
- const ingestor = createIngestor({
17
- createIngestorResult: () => {
18
- return createIngestorResult();
19
- },
20
- getSource: name => {
21
- return this.deployments.get(name);
22
- }
23
- });
24
- const data = await ingestor.ingest({
25
- records: result.records
26
- });
27
- try {
28
- await this.recordHandler.handle({
29
- data
30
- });
31
- } catch (ex) {
32
- console.error(convertException(ex));
10
+ async resolve(params) {
11
+ const validation = createRecordsValidation();
12
+ const result = await validation.validate(params.records);
13
+ if (result.error) throw result.error;
14
+ const ingestor = createIngestor({
15
+ createIngestorResult: ()=>createIngestorResult(),
16
+ getSource: (name)=>this.deployments.get(name)
17
+ });
18
+ const data = await ingestor.ingest({
19
+ records: result.records
20
+ });
21
+ try {
22
+ await this.recordHandler.handle({
23
+ data
24
+ });
25
+ } catch (ex) {
26
+ console.error(convertException(ex));
27
+ }
33
28
  }
34
- }
35
29
  }
36
- export const createResolverApp = params => {
37
- return new ResolverApplication(params);
38
- };
30
+ const createResolverApp = (params)=>new ResolverApplication(params);
31
+ export { ResolverApplication, createResolverApp };
39
32
 
40
33
  //# sourceMappingURL=ResolverApplication.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createRecordsValidation","convertException","createIngestor","createIngestorResult","ResolverApplication","constructor","params","recordHandler","deployments","resolve","validation","result","validate","records","error","ingestor","getSource","name","get","data","ingest","handle","ex","console","createResolverApp"],"sources":["ResolverApplication.ts"],"sourcesContent":["import type {\n IResolverApplication,\n IResolverApplicationResolveParams\n} from \"./abstractions/ResolverApplication.js\";\nimport { createRecordsValidation } from \"./RecordsValidation.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { IRecordHandler } from \"./abstractions/RecordHandler.js\";\nimport type { IDeployments } from \"~/resolver/deployment/types.js\";\nimport { createIngestor } from \"./ingestor/Ingestor.js\";\nimport { createIngestorResult } from \"~/resolver/app/ingestor/IngestorResult.js\";\n\nexport interface IResolverApplicationParams {\n recordHandler: IRecordHandler;\n deployments: IDeployments;\n}\n\nexport class ResolverApplication implements IResolverApplication {\n private readonly recordHandler: IRecordHandler;\n private readonly deployments: IDeployments;\n\n public constructor(params: IResolverApplicationParams) {\n this.recordHandler = params.recordHandler;\n this.deployments = params.deployments;\n }\n\n public async resolve(params: IResolverApplicationResolveParams): Promise<void> {\n const validation = createRecordsValidation();\n\n const result = await validation.validate(params.records);\n if (result.error) {\n throw result.error;\n }\n\n const ingestor = createIngestor({\n createIngestorResult: () => {\n return createIngestorResult();\n },\n getSource: name => {\n return this.deployments.get(name);\n }\n });\n\n const data = await ingestor.ingest({\n records: result.records\n });\n\n try {\n await this.recordHandler.handle({\n data\n });\n } catch (ex) {\n console.error(convertException(ex));\n }\n }\n}\n\nexport const createResolverApp = (params: IResolverApplicationParams): IResolverApplication => {\n return new ResolverApplication(params);\n};\n"],"mappings":"AAIA,SAASA,uBAAuB;AAChC,SAASC,gBAAgB,QAAQ,eAAe;AAGhD,SAASC,cAAc;AACvB,SAASC,oBAAoB;AAO7B,OAAO,MAAMC,mBAAmB,CAAiC;EAItDC,WAAWA,CAACC,MAAkC,EAAE;IACnD,IAAI,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa;IACzC,IAAI,CAACC,WAAW,GAAGF,MAAM,CAACE,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAACH,MAAyC,EAAiB;IAC3E,MAAMI,UAAU,GAAGV,uBAAuB,CAAC,CAAC;IAE5C,MAAMW,MAAM,GAAG,MAAMD,UAAU,CAACE,QAAQ,CAACN,MAAM,CAACO,OAAO,CAAC;IACxD,IAAIF,MAAM,CAACG,KAAK,EAAE;MACd,MAAMH,MAAM,CAACG,KAAK;IACtB;IAEA,MAAMC,QAAQ,GAAGb,cAAc,CAAC;MAC5BC,oBAAoB,EAAEA,CAAA,KAAM;QACxB,OAAOA,oBAAoB,CAAC,CAAC;MACjC,CAAC;MACDa,SAAS,EAAEC,IAAI,IAAI;QACf,OAAO,IAAI,CAACT,WAAW,CAACU,GAAG,CAACD,IAAI,CAAC;MACrC;IACJ,CAAC,CAAC;IAEF,MAAME,IAAI,GAAG,MAAMJ,QAAQ,CAACK,MAAM,CAAC;MAC/BP,OAAO,EAAEF,MAAM,CAACE;IACpB,CAAC,CAAC;IAEF,IAAI;MACA,MAAM,IAAI,CAACN,aAAa,CAACc,MAAM,CAAC;QAC5BF;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOG,EAAE,EAAE;MACTC,OAAO,CAACT,KAAK,CAACb,gBAAgB,CAACqB,EAAE,CAAC,CAAC;IACvC;EACJ;AACJ;AAEA,OAAO,MAAME,iBAAiB,GAAIlB,MAAkC,IAA2B;EAC3F,OAAO,IAAIF,mBAAmB,CAACE,MAAM,CAAC;AAC1C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"resolver/app/ResolverApplication.js","sources":["../../../src/resolver/app/ResolverApplication.ts"],"sourcesContent":["import type {\n IResolverApplication,\n IResolverApplicationResolveParams\n} from \"./abstractions/ResolverApplication.js\";\nimport { createRecordsValidation } from \"./RecordsValidation.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { IRecordHandler } from \"./abstractions/RecordHandler.js\";\nimport type { IDeployments } from \"~/resolver/deployment/types.js\";\nimport { createIngestor } from \"./ingestor/Ingestor.js\";\nimport { createIngestorResult } from \"~/resolver/app/ingestor/IngestorResult.js\";\n\nexport interface IResolverApplicationParams {\n recordHandler: IRecordHandler;\n deployments: IDeployments;\n}\n\nexport class ResolverApplication implements IResolverApplication {\n private readonly recordHandler: IRecordHandler;\n private readonly deployments: IDeployments;\n\n public constructor(params: IResolverApplicationParams) {\n this.recordHandler = params.recordHandler;\n this.deployments = params.deployments;\n }\n\n public async resolve(params: IResolverApplicationResolveParams): Promise<void> {\n const validation = createRecordsValidation();\n\n const result = await validation.validate(params.records);\n if (result.error) {\n throw result.error;\n }\n\n const ingestor = createIngestor({\n createIngestorResult: () => {\n return createIngestorResult();\n },\n getSource: name => {\n return this.deployments.get(name);\n }\n });\n\n const data = await ingestor.ingest({\n records: result.records\n });\n\n try {\n await this.recordHandler.handle({\n data\n });\n } catch (ex) {\n console.error(convertException(ex));\n }\n }\n}\n\nexport const createResolverApp = (params: IResolverApplicationParams): IResolverApplication => {\n return new ResolverApplication(params);\n};\n"],"names":["ResolverApplication","params","validation","createRecordsValidation","result","ingestor","createIngestor","createIngestorResult","name","data","ex","console","convertException","createResolverApp"],"mappings":";;;;AAgBO,MAAMA;IAIT,YAAmBC,MAAkC,CAAE;QACnD,IAAI,CAAC,aAAa,GAAGA,OAAO,aAAa;QACzC,IAAI,CAAC,WAAW,GAAGA,OAAO,WAAW;IACzC;IAEA,MAAa,QAAQA,MAAyC,EAAiB;QAC3E,MAAMC,aAAaC;QAEnB,MAAMC,SAAS,MAAMF,WAAW,QAAQ,CAACD,OAAO,OAAO;QACvD,IAAIG,OAAO,KAAK,EACZ,MAAMA,OAAO,KAAK;QAGtB,MAAMC,WAAWC,eAAe;YAC5B,sBAAsB,IACXC;YAEX,WAAWC,CAAAA,OACA,IAAI,CAAC,WAAW,CAAC,GAAG,CAACA;QAEpC;QAEA,MAAMC,OAAO,MAAMJ,SAAS,MAAM,CAAC;YAC/B,SAASD,OAAO,OAAO;QAC3B;QAEA,IAAI;YACA,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC5BK;YACJ;QACJ,EAAE,OAAOC,IAAI;YACTC,QAAQ,KAAK,CAACC,iBAAiBF;QACnC;IACJ;AACJ;AAEO,MAAMG,oBAAoB,CAACZ,SACvB,IAAID,oBAAoBC"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=RecordHandler.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=RecordsValidation.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=ResolverApplication.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=ResolverRecord.js.map
@@ -1,19 +1,20 @@
1
- export class BaseBundle {
2
- items = [];
3
- constructor(params) {
4
- this.command = this.getCommand(params.command);
5
- this.table = params.table;
6
- this.source = params.source;
7
- }
8
- getCommand(command) {
9
- return command === "delete" ? "delete" : "put";
10
- }
11
- add(item) {
12
- this.items.push({
13
- PK: item.PK,
14
- SK: item.SK
15
- });
16
- }
1
+ class BaseBundle {
2
+ constructor(params){
3
+ this.items = [];
4
+ this.command = this.getCommand(params.command);
5
+ this.table = params.table;
6
+ this.source = params.source;
7
+ }
8
+ getCommand(command) {
9
+ return "delete" === command ? "delete" : "put";
10
+ }
11
+ add(item) {
12
+ this.items.push({
13
+ PK: item.PK,
14
+ SK: item.SK
15
+ });
16
+ }
17
17
  }
18
+ export { BaseBundle };
18
19
 
19
20
  //# sourceMappingURL=BaseBundle.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseBundle","items","constructor","params","command","getCommand","table","source","add","item","push","PK","SK"],"sources":["BaseBundle.ts"],"sourcesContent":["import type { IBundle, IBundleItem } from \"~/resolver/app/bundler/types.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { CommandType } from \"~/types.js\";\nimport { type ExtendedCommandType } from \"~/types.js\";\nimport type { IIngestorResultItem } from \"../ingestor/types.js\";\n\nexport interface IBaseBundleParams {\n command: ExtendedCommandType;\n table: ITable;\n source: IDeployment;\n}\n\nexport abstract class BaseBundle implements IBundle {\n readonly items: IBundleItem[] = [];\n readonly command: CommandType;\n readonly table: ITable;\n readonly source: IDeployment;\n\n public abstract canAdd(item: IIngestorResultItem): boolean;\n\n public constructor(params: IBaseBundleParams) {\n this.command = this.getCommand(params.command);\n this.table = params.table;\n this.source = params.source;\n }\n\n protected getCommand(command: ExtendedCommandType): CommandType {\n return command === \"delete\" ? \"delete\" : \"put\";\n }\n\n public add(item: IIngestorResultItem): void {\n this.items.push({\n PK: item.PK,\n SK: item.SK\n });\n }\n}\n"],"mappings":"AAaA,OAAO,MAAeA,UAAU,CAAoB;EACvCC,KAAK,GAAkB,EAAE;EAO3BC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACC,OAAO,GAAG,IAAI,CAACC,UAAU,CAACF,MAAM,CAACC,OAAO,CAAC;IAC9C,IAAI,CAACE,KAAK,GAAGH,MAAM,CAACG,KAAK;IACzB,IAAI,CAACC,MAAM,GAAGJ,MAAM,CAACI,MAAM;EAC/B;EAEUF,UAAUA,CAACD,OAA4B,EAAe;IAC5D,OAAOA,OAAO,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK;EAClD;EAEOI,GAAGA,CAACC,IAAyB,EAAQ;IACxC,IAAI,CAACR,KAAK,CAACS,IAAI,CAAC;MACZC,EAAE,EAAEF,IAAI,CAACE,EAAE;MACXC,EAAE,EAAEH,IAAI,CAACG;IACb,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"resolver/app/bundler/BaseBundle.js","sources":["../../../../src/resolver/app/bundler/BaseBundle.ts"],"sourcesContent":["import type { IBundle, IBundleItem } from \"~/resolver/app/bundler/types.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { CommandType } from \"~/types.js\";\nimport { type ExtendedCommandType } from \"~/types.js\";\nimport type { IIngestorResultItem } from \"../ingestor/types.js\";\n\nexport interface IBaseBundleParams {\n command: ExtendedCommandType;\n table: ITable;\n source: IDeployment;\n}\n\nexport abstract class BaseBundle implements IBundle {\n readonly items: IBundleItem[] = [];\n readonly command: CommandType;\n readonly table: ITable;\n readonly source: IDeployment;\n\n public abstract canAdd(item: IIngestorResultItem): boolean;\n\n public constructor(params: IBaseBundleParams) {\n this.command = this.getCommand(params.command);\n this.table = params.table;\n this.source = params.source;\n }\n\n protected getCommand(command: ExtendedCommandType): CommandType {\n return command === \"delete\" ? \"delete\" : \"put\";\n }\n\n public add(item: IIngestorResultItem): void {\n this.items.push({\n PK: item.PK,\n SK: item.SK\n });\n }\n}\n"],"names":["BaseBundle","params","command","item"],"mappings":"AAaO,MAAeA;IAQlB,YAAmBC,MAAyB,CAAE;aAPrC,KAAK,GAAkB,EAAE;QAQ9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAACA,OAAO,OAAO;QAC7C,IAAI,CAAC,KAAK,GAAGA,OAAO,KAAK;QACzB,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;IAC/B;IAEU,WAAWC,OAA4B,EAAe;QAC5D,OAAOA,AAAY,aAAZA,UAAuB,WAAW;IAC7C;IAEO,IAAIC,IAAyB,EAAQ;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,IAAIA,KAAK,EAAE;YACX,IAAIA,KAAK,EAAE;QACf;IACJ;AACJ"}
@@ -1,22 +1,17 @@
1
- export class Bundler {
2
- constructor(params) {
3
- this.createBundles = params.createBundles;
4
- }
5
- bundle(params) {
6
- const {
7
- items
8
- } = params;
9
- const bundles = this.createBundles();
10
- for (const item of items) {
11
- bundles.add({
12
- item
13
- });
1
+ class Bundler {
2
+ constructor(params){
3
+ this.createBundles = params.createBundles;
4
+ }
5
+ bundle(params) {
6
+ const { items } = params;
7
+ const bundles = this.createBundles();
8
+ for (const item of items)bundles.add({
9
+ item
10
+ });
11
+ return bundles;
14
12
  }
15
- return bundles;
16
- }
17
13
  }
18
- export const createBundler = params => {
19
- return new Bundler(params);
20
- };
14
+ const createBundler = (params)=>new Bundler(params);
15
+ export { Bundler, createBundler };
21
16
 
22
17
  //# sourceMappingURL=Bundler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Bundler","constructor","params","createBundles","bundle","items","bundles","item","add","createBundler"],"sources":["Bundler.ts"],"sourcesContent":["import type { IBundler, IBundlerBundleParams, IBundles } from \"~/resolver/app/bundler/types.js\";\n\nexport interface IBundlerParams {\n createBundles: () => IBundles;\n}\n\nexport class Bundler implements IBundler {\n private readonly createBundles: () => IBundles;\n\n public constructor(params: IBundlerParams) {\n this.createBundles = params.createBundles;\n }\n\n public bundle(params: IBundlerBundleParams): IBundles {\n const { items } = params;\n\n const bundles = this.createBundles();\n\n for (const item of items) {\n bundles.add({\n item\n });\n }\n\n return bundles;\n }\n}\n\nexport const createBundler = (params: IBundlerParams) => {\n return new Bundler(params);\n};\n"],"mappings":"AAMA,OAAO,MAAMA,OAAO,CAAqB;EAG9BC,WAAWA,CAACC,MAAsB,EAAE;IACvC,IAAI,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa;EAC7C;EAEOC,MAAMA,CAACF,MAA4B,EAAY;IAClD,MAAM;MAAEG;IAAM,CAAC,GAAGH,MAAM;IAExB,MAAMI,OAAO,GAAG,IAAI,CAACH,aAAa,CAAC,CAAC;IAEpC,KAAK,MAAMI,IAAI,IAAIF,KAAK,EAAE;MACtBC,OAAO,CAACE,GAAG,CAAC;QACRD;MACJ,CAAC,CAAC;IACN;IAEA,OAAOD,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMG,aAAa,GAAIP,MAAsB,IAAK;EACrD,OAAO,IAAIF,OAAO,CAACE,MAAM,CAAC;AAC9B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"resolver/app/bundler/Bundler.js","sources":["../../../../src/resolver/app/bundler/Bundler.ts"],"sourcesContent":["import type { IBundler, IBundlerBundleParams, IBundles } from \"~/resolver/app/bundler/types.js\";\n\nexport interface IBundlerParams {\n createBundles: () => IBundles;\n}\n\nexport class Bundler implements IBundler {\n private readonly createBundles: () => IBundles;\n\n public constructor(params: IBundlerParams) {\n this.createBundles = params.createBundles;\n }\n\n public bundle(params: IBundlerBundleParams): IBundles {\n const { items } = params;\n\n const bundles = this.createBundles();\n\n for (const item of items) {\n bundles.add({\n item\n });\n }\n\n return bundles;\n }\n}\n\nexport const createBundler = (params: IBundlerParams) => {\n return new Bundler(params);\n};\n"],"names":["Bundler","params","items","bundles","item","createBundler"],"mappings":"AAMO,MAAMA;IAGT,YAAmBC,MAAsB,CAAE;QACvC,IAAI,CAAC,aAAa,GAAGA,OAAO,aAAa;IAC7C;IAEO,OAAOA,MAA4B,EAAY;QAClD,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAElB,MAAME,UAAU,IAAI,CAAC,aAAa;QAElC,KAAK,MAAMC,QAAQF,MACfC,QAAQ,GAAG,CAAC;YACRC;QACJ;QAGJ,OAAOD;IACX;AACJ;AAEO,MAAME,gBAAgB,CAACJ,SACnB,IAAID,QAAQC"}