@webiny/api-sync-system 0.0.0-unstable.06b2ede40f → 0.0.0-unstable.0d717d18dd

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 (349) hide show
  1. package/README.md +6 -108
  2. package/constants.js +2 -7
  3. package/constants.js.map +1 -1
  4. package/index.d.ts +11 -3
  5. package/index.js +8 -40
  6. package/package.json +31 -26
  7. package/resolver/SyncResolverConfig.d.ts +17 -0
  8. package/resolver/SyncResolverConfig.js +5 -0
  9. package/resolver/SyncResolverConfig.js.map +1 -0
  10. package/resolver/SyncResolverLambdaHandler.d.ts +14 -0
  11. package/resolver/SyncResolverLambdaHandler.js +159 -0
  12. package/resolver/SyncResolverLambdaHandler.js.map +1 -0
  13. package/resolver/app/RecordHandler.d.ts +6 -6
  14. package/resolver/app/RecordHandler.js +84 -114
  15. package/resolver/app/RecordHandler.js.map +1 -1
  16. package/resolver/app/RecordsValidation.js +13 -24
  17. package/resolver/app/RecordsValidation.js.map +1 -1
  18. package/resolver/app/ResolverApplication.d.ts +1 -1
  19. package/resolver/app/ResolverApplication.js +27 -42
  20. package/resolver/app/ResolverApplication.js.map +1 -1
  21. package/resolver/app/abstractions/RecordHandler.d.ts +1 -1
  22. package/resolver/app/abstractions/RecordHandler.js +0 -7
  23. package/resolver/app/abstractions/RecordsValidation.d.ts +2 -2
  24. package/resolver/app/abstractions/RecordsValidation.js +0 -7
  25. package/resolver/app/abstractions/ResolverApplication.js +0 -7
  26. package/resolver/app/abstractions/ResolverRecord.d.ts +1 -1
  27. package/resolver/app/abstractions/ResolverRecord.js +0 -7
  28. package/resolver/app/bundler/BaseBundle.d.ts +6 -6
  29. package/resolver/app/bundler/BaseBundle.js +16 -22
  30. package/resolver/app/bundler/BaseBundle.js.map +1 -1
  31. package/resolver/app/bundler/Bundler.d.ts +1 -1
  32. package/resolver/app/bundler/Bundler.js +12 -25
  33. package/resolver/app/bundler/Bundler.js.map +1 -1
  34. package/resolver/app/bundler/Bundles.d.ts +2 -2
  35. package/resolver/app/bundler/Bundles.js +20 -33
  36. package/resolver/app/bundler/Bundles.js.map +1 -1
  37. package/resolver/app/bundler/CommandBundle.d.ts +1 -1
  38. package/resolver/app/bundler/CommandBundle.js +8 -25
  39. package/resolver/app/bundler/CommandBundle.js.map +1 -1
  40. package/resolver/app/bundler/TableBundle.d.ts +1 -1
  41. package/resolver/app/bundler/TableBundle.js +7 -22
  42. package/resolver/app/bundler/TableBundle.js.map +1 -1
  43. package/resolver/app/bundler/types.d.ts +2 -2
  44. package/resolver/app/bundler/types.js +0 -7
  45. package/resolver/app/commandHandler/DeleteCommandHandler.d.ts +3 -3
  46. package/resolver/app/commandHandler/DeleteCommandHandler.js +21 -35
  47. package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
  48. package/resolver/app/commandHandler/PutCommandHandler.d.ts +4 -4
  49. package/resolver/app/commandHandler/PutCommandHandler.js +15 -28
  50. package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
  51. package/resolver/app/commandHandler/delete.d.ts +1 -1
  52. package/resolver/app/commandHandler/delete.js +13 -21
  53. package/resolver/app/commandHandler/delete.js.map +1 -1
  54. package/resolver/app/commandHandler/put.d.ts +1 -1
  55. package/resolver/app/commandHandler/put.js +13 -21
  56. package/resolver/app/commandHandler/put.js.map +1 -1
  57. package/resolver/app/data/SourceDataContainer.d.ts +3 -3
  58. package/resolver/app/data/SourceDataContainer.js +27 -36
  59. package/resolver/app/data/SourceDataContainer.js.map +1 -1
  60. package/resolver/app/data/types.d.ts +2 -2
  61. package/resolver/app/data/types.js +0 -7
  62. package/resolver/app/fetcher/Fetcher.d.ts +3 -3
  63. package/resolver/app/fetcher/Fetcher.js +87 -121
  64. package/resolver/app/fetcher/Fetcher.js.map +1 -1
  65. package/resolver/app/fetcher/types.d.ts +2 -2
  66. package/resolver/app/fetcher/types.js +0 -7
  67. package/resolver/app/ingestor/Ingestor.d.ts +1 -1
  68. package/resolver/app/ingestor/Ingestor.js +26 -39
  69. package/resolver/app/ingestor/Ingestor.js.map +1 -1
  70. package/resolver/app/ingestor/IngestorResult.js +27 -39
  71. package/resolver/app/ingestor/IngestorResult.js.map +1 -1
  72. package/resolver/app/ingestor/types.d.ts +2 -2
  73. package/resolver/app/ingestor/types.js +0 -7
  74. package/resolver/app/storer/Storer.d.ts +3 -3
  75. package/resolver/app/storer/Storer.js +73 -95
  76. package/resolver/app/storer/Storer.js.map +1 -1
  77. package/resolver/app/storer/types.d.ts +2 -2
  78. package/resolver/app/storer/types.js +0 -7
  79. package/resolver/app/transform/TransformHandler.d.ts +4 -4
  80. package/resolver/app/transform/TransformHandler.js +46 -64
  81. package/resolver/app/transform/TransformHandler.js.map +1 -1
  82. package/resolver/app/transform/middleware.d.ts +1 -1
  83. package/resolver/app/transform/middleware.js +12 -25
  84. package/resolver/app/transform/middleware.js.map +1 -1
  85. package/resolver/app/utils/Retry.js +21 -32
  86. package/resolver/app/utils/Retry.js.map +1 -1
  87. package/resolver/app/utils/sleep.js +4 -12
  88. package/resolver/app/utils/sleep.js.map +1 -1
  89. package/resolver/app/validation/body.d.ts +25 -124
  90. package/resolver/app/validation/body.js +31 -44
  91. package/resolver/app/validation/body.js.map +1 -1
  92. package/resolver/app/validation/createJsonTransform.d.ts +1 -1
  93. package/resolver/app/validation/createJsonTransform.js +13 -22
  94. package/resolver/app/validation/createJsonTransform.js.map +1 -1
  95. package/resolver/app/validation/detail.d.ts +19 -72
  96. package/resolver/app/validation/detail.js +33 -46
  97. package/resolver/app/validation/detail.js.map +1 -1
  98. package/resolver/app/validation/event.d.ts +29 -188
  99. package/resolver/app/validation/event.js +21 -30
  100. package/resolver/app/validation/event.js.map +1 -1
  101. package/resolver/app/validation/numericString.d.ts +1 -1
  102. package/resolver/app/validation/numericString.js +9 -20
  103. package/resolver/app/validation/numericString.js.map +1 -1
  104. package/resolver/app/validation/system.d.ts +2 -14
  105. package/resolver/app/validation/system.js +9 -18
  106. package/resolver/app/validation/system.js.map +1 -1
  107. package/resolver/deployment/Deployment.d.ts +2 -3
  108. package/resolver/deployment/Deployment.js +27 -44
  109. package/resolver/deployment/Deployment.js.map +1 -1
  110. package/resolver/deployment/Deployments.js +19 -30
  111. package/resolver/deployment/Deployments.js.map +1 -1
  112. package/resolver/deployment/DeploymentsFetcher.js +82 -102
  113. package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
  114. package/resolver/deployment/types.d.ts +4 -6
  115. package/resolver/deployment/types.js +0 -7
  116. package/resolver/lambda/LambdaTrigger.js +25 -34
  117. package/resolver/lambda/LambdaTrigger.js.map +1 -1
  118. package/resolver/plugins/CommandHandlerPlugin.d.ts +3 -3
  119. package/resolver/plugins/CommandHandlerPlugin.js +17 -24
  120. package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
  121. package/resolver/plugins/StorerAfterEachPlugin.d.ts +2 -2
  122. package/resolver/plugins/StorerAfterEachPlugin.js +21 -29
  123. package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
  124. package/resolver/plugins/TransformRecordPlugin.d.ts +3 -3
  125. package/resolver/plugins/TransformRecordPlugin.js +20 -27
  126. package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
  127. package/resolver/recordTypes/fileManager/CopyFile.js +44 -74
  128. package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
  129. package/resolver/recordTypes/fileManager/DeleteFile.d.ts +1 -1
  130. package/resolver/recordTypes/fileManager/DeleteFile.js +40 -65
  131. package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
  132. package/resolver/recordTypes/fileManager/fileManager.d.ts +1 -1
  133. package/resolver/recordTypes/fileManager/fileManager.js +7 -12
  134. package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
  135. package/resolver/recordTypes/fileManager/fileManagerOnDelete.d.ts +1 -1
  136. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +27 -45
  137. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
  138. package/resolver/recordTypes/fileManager/fileManagerOnPut.d.ts +1 -1
  139. package/resolver/recordTypes/fileManager/fileManagerOnPut.js +27 -45
  140. package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
  141. package/resolver/recordTypes/fileManager/shouldBeHandled.d.ts +1 -1
  142. package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -34
  143. package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
  144. package/resolver/recordTypes/fileManager/types.d.ts +2 -2
  145. package/resolver/recordTypes/fileManager/types.js +0 -7
  146. package/resolver/recordTypes/users/CopyUser.d.ts +2 -2
  147. package/resolver/recordTypes/users/CopyUser.js +44 -61
  148. package/resolver/recordTypes/users/CopyUser.js.map +1 -1
  149. package/resolver/recordTypes/users/DeleteUser.d.ts +2 -2
  150. package/resolver/recordTypes/users/DeleteUser.js +40 -58
  151. package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
  152. package/resolver/recordTypes/users/shouldBeHandled.d.ts +1 -1
  153. package/resolver/recordTypes/users/shouldBeHandled.js +10 -33
  154. package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
  155. package/resolver/recordTypes/users/types.d.ts +1 -1
  156. package/resolver/recordTypes/users/types.js +0 -7
  157. package/resolver/recordTypes/users/users.js +7 -12
  158. package/resolver/recordTypes/users/users.js.map +1 -1
  159. package/resolver/recordTypes/users/usersOnDelete.d.ts +2 -2
  160. package/resolver/recordTypes/users/usersOnDelete.js +26 -44
  161. package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
  162. package/resolver/recordTypes/users/usersOnPut.d.ts +2 -2
  163. package/resolver/recordTypes/users/usersOnPut.js +27 -45
  164. package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
  165. package/sync/ApiGatewaySyncDecorator.d.ts +14 -0
  166. package/sync/ApiGatewaySyncDecorator.js +49 -0
  167. package/sync/ApiGatewaySyncDecorator.js.map +1 -0
  168. package/sync/FilterOutRecord.d.ts +2 -2
  169. package/sync/FilterOutRecord.js +8 -24
  170. package/sync/FilterOutRecord.js.map +1 -1
  171. package/sync/SyncSystemConfig.d.ts +11 -0
  172. package/sync/SyncSystemConfig.js +5 -0
  173. package/sync/SyncSystemConfig.js.map +1 -0
  174. package/sync/attachToDynamoDbDocument.d.ts +1 -1
  175. package/sync/attachToDynamoDbDocument.js +48 -75
  176. package/sync/attachToDynamoDbDocument.js.map +1 -1
  177. package/sync/createHandler.js +44 -60
  178. package/sync/createHandler.js.map +1 -1
  179. package/sync/filter/createDefaultFilterOutRecordPlugins.d.ts +1 -1
  180. package/sync/filter/createDefaultFilterOutRecordPlugins.js +37 -86
  181. package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
  182. package/sync/handler/Handler.d.ts +2 -2
  183. package/sync/handler/Handler.js +66 -86
  184. package/sync/handler/Handler.js.map +1 -1
  185. package/sync/handler/HandlerConverter.js +20 -36
  186. package/sync/handler/HandlerConverter.js.map +1 -1
  187. package/sync/handler/converter/BatchGetCommandConverter.js +13 -20
  188. package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
  189. package/sync/handler/converter/BatchWriteCommandConverter.js +13 -20
  190. package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
  191. package/sync/handler/converter/DeleteCommandConverter.js +13 -20
  192. package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
  193. package/sync/handler/converter/GetCommandConverter.js +13 -20
  194. package/sync/handler/converter/GetCommandConverter.js.map +1 -1
  195. package/sync/handler/converter/PutCommandConverter.js +13 -20
  196. package/sync/handler/converter/PutCommandConverter.js.map +1 -1
  197. package/sync/handler/converter/QueryCommandConverter.js +13 -20
  198. package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
  199. package/sync/handler/converter/ScanCommandConverter.js +13 -20
  200. package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
  201. package/sync/handler/converter/UpdateCommandConverter.js +13 -20
  202. package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
  203. package/sync/handler/converter/commands/BatchWriteCommandValue.d.ts +2 -2
  204. package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -44
  205. package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
  206. package/sync/handler/converter/commands/DeleteCommandValue.d.ts +2 -2
  207. package/sync/handler/converter/commands/DeleteCommandValue.js +19 -23
  208. package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
  209. package/sync/handler/converter/commands/NullCommandValue.d.ts +1 -1
  210. package/sync/handler/converter/commands/NullCommandValue.js +7 -14
  211. package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
  212. package/sync/handler/converter/commands/PutCommandValue.d.ts +2 -2
  213. package/sync/handler/converter/commands/PutCommandValue.js +19 -23
  214. package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
  215. package/sync/handler/converter/commands/UpdateCommandValue.d.ts +2 -2
  216. package/sync/handler/converter/commands/UpdateCommandValue.js +19 -23
  217. package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
  218. package/sync/handler/types.d.ts +3 -3
  219. package/sync/handler/types.js +0 -7
  220. package/sync/plugins/FilterOutRecordPlugin.d.ts +1 -1
  221. package/sync/plugins/FilterOutRecordPlugin.js +18 -28
  222. package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
  223. package/sync/types.js +0 -7
  224. package/sync/utils/getTableType.js +11 -19
  225. package/sync/utils/getTableType.js.map +1 -1
  226. package/sync/utils/manifest.d.ts +3 -7
  227. package/sync/utils/manifest.js +30 -47
  228. package/sync/utils/manifest.js.map +1 -1
  229. package/sync/utils/validateSystemInput.d.ts +1 -1
  230. package/sync/utils/validateSystemInput.js +22 -37
  231. package/sync/utils/validateSystemInput.js.map +1 -1
  232. package/types.d.ts +1 -5
  233. package/types.js +6 -12
  234. package/types.js.map +1 -1
  235. package/utils/createSystemName.js +5 -10
  236. package/utils/createSystemName.js.map +1 -1
  237. package/worker/SyncWorkerConfig.d.ts +9 -0
  238. package/worker/SyncWorkerConfig.js +5 -0
  239. package/worker/SyncWorkerConfig.js.map +1 -0
  240. package/worker/SyncWorkerEventHandler.d.ts +14 -0
  241. package/worker/SyncWorkerEventHandler.js +5 -0
  242. package/worker/SyncWorkerEventHandler.js.map +1 -0
  243. package/worker/SyncWorkerEventType.d.ts +10 -0
  244. package/worker/SyncWorkerEventType.js +24 -0
  245. package/worker/SyncWorkerEventType.js.map +1 -0
  246. package/worker/SyncWorkerLambdaHandler.d.ts +13 -0
  247. package/worker/SyncWorkerLambdaHandler.js +61 -0
  248. package/worker/SyncWorkerLambdaHandler.js.map +1 -0
  249. package/worker/actions/copyFile/CopyFile.js +185 -268
  250. package/worker/actions/copyFile/CopyFile.js.map +1 -1
  251. package/worker/actions/copyFile/copyFileAction.d.ts +1 -1
  252. package/worker/actions/copyFile/copyFileAction.js +30 -45
  253. package/worker/actions/copyFile/copyFileAction.js.map +1 -1
  254. package/worker/actions/copyFile/copyFileSchema.d.ts +6 -38
  255. package/worker/actions/copyFile/copyFileSchema.js +14 -23
  256. package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
  257. package/worker/actions/copyFile/types.js +0 -7
  258. package/worker/actions/createUser/CreateUser.d.ts +1 -1
  259. package/worker/actions/createUser/CreateUser.js +53 -83
  260. package/worker/actions/createUser/CreateUser.js.map +1 -1
  261. package/worker/actions/createUser/createUserAction.d.ts +2 -2
  262. package/worker/actions/createUser/createUserAction.js +28 -39
  263. package/worker/actions/createUser/createUserAction.js.map +1 -1
  264. package/worker/actions/createUser/createUserSchema.d.ts +6 -38
  265. package/worker/actions/createUser/createUserSchema.js +14 -23
  266. package/worker/actions/createUser/createUserSchema.js.map +1 -1
  267. package/worker/actions/createUser/types.js +0 -7
  268. package/worker/actions/deleteFile/DeleteFile.js +52 -74
  269. package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
  270. package/worker/actions/deleteFile/deleteFileAction.d.ts +1 -1
  271. package/worker/actions/deleteFile/deleteFileAction.js +25 -40
  272. package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
  273. package/worker/actions/deleteFile/deleteFileSchema.d.ts +6 -38
  274. package/worker/actions/deleteFile/deleteFileSchema.js +14 -23
  275. package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
  276. package/worker/actions/deleteFile/types.js +0 -7
  277. package/worker/actions/deleteUser/DeleteUser.d.ts +2 -2
  278. package/worker/actions/deleteUser/DeleteUser.js +39 -60
  279. package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
  280. package/worker/actions/deleteUser/deleteUserAction.d.ts +1 -1
  281. package/worker/actions/deleteUser/deleteUserAction.js +26 -37
  282. package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
  283. package/worker/actions/deleteUser/deleteUserSchema.d.ts +5 -23
  284. package/worker/actions/deleteUser/deleteUserSchema.js +13 -22
  285. package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
  286. package/worker/actions/deleteUser/types.js +0 -7
  287. package/worker/actions/logValidationError.js +6 -14
  288. package/worker/actions/logValidationError.js.map +1 -1
  289. package/worker/actions/removeCognitoUserAttributes.js +9 -22
  290. package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
  291. package/worker/actions/updateUser/UpdateUser.d.ts +1 -1
  292. package/worker/actions/updateUser/UpdateUser.js +50 -74
  293. package/worker/actions/updateUser/UpdateUser.js.map +1 -1
  294. package/worker/actions/updateUser/types.js +0 -7
  295. package/worker/actions/updateUser/updateUserAction.d.ts +2 -2
  296. package/worker/actions/updateUser/updateUserAction.js +28 -39
  297. package/worker/actions/updateUser/updateUserAction.js.map +1 -1
  298. package/worker/actions/updateUser/updateUserSchema.d.ts +6 -38
  299. package/worker/actions/updateUser/updateUserSchema.js +14 -23
  300. package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
  301. package/worker/handler/WorkerActionHandler.d.ts +2 -2
  302. package/worker/handler/WorkerActionHandler.js +19 -28
  303. package/worker/handler/WorkerActionHandler.js.map +1 -1
  304. package/worker/plugins/WorkerActionPlugin.d.ts +1 -1
  305. package/worker/plugins/WorkerActionPlugin.js +18 -25
  306. package/worker/plugins/WorkerActionPlugin.js.map +1 -1
  307. package/worker/types.js +0 -7
  308. package/index.js.map +0 -1
  309. package/resolver/app/abstractions/RecordHandler.js.map +0 -1
  310. package/resolver/app/abstractions/RecordsValidation.js.map +0 -1
  311. package/resolver/app/abstractions/ResolverApplication.js.map +0 -1
  312. package/resolver/app/abstractions/ResolverRecord.js.map +0 -1
  313. package/resolver/app/bundler/types.js.map +0 -1
  314. package/resolver/app/data/types.js.map +0 -1
  315. package/resolver/app/fetcher/types.js.map +0 -1
  316. package/resolver/app/ingestor/types.js.map +0 -1
  317. package/resolver/app/storer/types.js.map +0 -1
  318. package/resolver/createEventHandlerPlugin.d.ts +0 -10
  319. package/resolver/createEventHandlerPlugin.js +0 -127
  320. package/resolver/createEventHandlerPlugin.js.map +0 -1
  321. package/resolver/createResolverHandler.d.ts +0 -21
  322. package/resolver/createResolverHandler.js +0 -79
  323. package/resolver/createResolverHandler.js.map +0 -1
  324. package/resolver/deployment/types.js.map +0 -1
  325. package/resolver/recordTypes/fileManager/types.js.map +0 -1
  326. package/resolver/recordTypes/users/types.js.map +0 -1
  327. package/sync/createSendDataToEventBridgeOnRequestEnd.d.ts +0 -2
  328. package/sync/createSendDataToEventBridgeOnRequestEnd.js +0 -51
  329. package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +0 -1
  330. package/sync/createSyncSystem.d.ts +0 -16
  331. package/sync/createSyncSystem.js +0 -42
  332. package/sync/createSyncSystem.js.map +0 -1
  333. package/sync/handler/types.js.map +0 -1
  334. package/sync/requestPlugin.d.ts +0 -9
  335. package/sync/requestPlugin.js +0 -59
  336. package/sync/requestPlugin.js.map +0 -1
  337. package/sync/types.js.map +0 -1
  338. package/worker/actions/copyFile/types.js.map +0 -1
  339. package/worker/actions/createUser/types.js.map +0 -1
  340. package/worker/actions/deleteFile/types.js.map +0 -1
  341. package/worker/actions/deleteUser/types.js.map +0 -1
  342. package/worker/actions/updateUser/types.js.map +0 -1
  343. package/worker/createWorkerHandler.d.ts +0 -11
  344. package/worker/createWorkerHandler.js +0 -48
  345. package/worker/createWorkerHandler.js.map +0 -1
  346. package/worker/handler/eventHandler.d.ts +0 -1
  347. package/worker/handler/eventHandler.js +0 -31
  348. package/worker/handler/eventHandler.js.map +0 -1
  349. package/worker/types.js.map +0 -1
package/README.md CHANGED
@@ -1,113 +1,11 @@
1
1
  # @webiny/api-sync-system
2
- [![](https://img.shields.io/npm/dw/@webiny/api-sync-system.svg)](https://www.npmjs.com/package/@webiny/api-sync-system)
3
- [![](https://img.shields.io/npm/v/@webiny/api-sync-system.svg)](https://www.npmjs.com/package/@webiny/api-sync-system)
4
- [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
5
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
6
2
 
7
- ## Install
8
- ```
9
- yarn add @webiny/api-sync-system
10
- ```
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
11
6
 
12
- ## How To Use?
7
+ 📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
13
8
 
14
- ### Information About `env` and `variant` Parameters
15
- We will use `dev` environment in the examples.
9
+ ---
16
10
 
17
- Variants can be anything you like, for our example we use `blue` and `green`, but you can use `orange`, `black`, `car`,
18
- `horse`, `space`, etc.
19
-
20
- ### Deploy the Sync System
21
-
22
- Deploy the Sync System to the `dev` environment.
23
-
24
- ```bash
25
- yarn webiny deploy sync --env=dev
26
- ```
27
-
28
- ### Deploy `blue` and `green` Webiny
29
-
30
- It imperative the two systems to be in the same environment as the Sync System, as it will automatically connect Webiny deployments in the same environment.
31
-
32
- ```bash
33
- yarn webiny deploy --env=dev --variant=blue && yarn webiny deploy --env=dev --variant=green
34
- ```
35
-
36
- Also, there can be more than two systems, so you can deploy as many as you like, just make sure to use different variants.
37
-
38
- ### Install Webiny Blue Variant
39
-
40
- Do a:
41
- ```
42
- yarn webiny info
43
- ```
44
- Find the `blue` variant Admin URL, and open it in your browser. Install the system by following the instructions.
45
-
46
- At that point, green system should be installed as well.
47
-
48
-
49
- # TODO
50
-
51
- ### Add BlueGreen, Resolver and Work Folders to User Projects
52
- We need to deploy the following folders to the user project:
53
- - blueGreen
54
- - sync/resolver
55
- - sync/worker
56
-
57
- Maybe have it as a CLI command?
58
-
59
- ### Test the Blue / Green Deployment
60
-
61
- - create domains api.bg.webiny.com, admin.bg.webiny.com, website.bg.webiny.com, preview.bg.webiny.com
62
- - deploy the blueGreen application
63
- - make sure the domains are pointing correctly
64
- - switch between blue and green deployments to test the resolver
65
- - create / update entries in blue and green and make sure they are correctly transferred to the other deployment
66
-
67
- ### Cognito User Transfer
68
-
69
- User is currently transferred but password is not so it results in error where user cannot log in and cannot reset
70
- password.
71
- This will be resolved by implementing a login function which will send a code to the user email and log in with that
72
- code.
73
-
74
- ### Filtering out models which we do not want to sync
75
-
76
- Currently, models are filtered out when records are being added into the sync pool. That is ok for creating or updating
77
- records, but when deleting, we do not have the modelId in the item being deleted.
78
-
79
- Maybe implement filtering in the resolver ?
80
-
81
- ### Add proper logging?
82
- Use pino to log all events, separated in proper levels (info, warn, error, debug, etc...).
83
-
84
- ### Move Resolver plugins (file manager, users) into their own packages
85
- We should move the resolver plugins for file manager and users into their own packages, and those packages should register them.
86
-
87
- ### Implement Dependency Injection
88
-
89
- Currently, we need to pass a ton of methods to the Sync system handlers. It would be simple as
90
-
91
- ```typescript
92
- const handler = createSyncResolverHandler({
93
- plugins: [],
94
- debug: process.env.DEBUG === "true",
95
- awsWorkerLambdaArn: process.env.AWS_SYNC_WORKER_LAMBDA_ARN,
96
- });
97
- ```
98
-
99
- if we did not need to pass all creator methods:
100
-
101
- ```typescript
102
- const handler = createSyncResolverHandler({
103
- plugins: [],
104
- debug: process.env.DEBUG === "true",
105
- awsWorkerLambdaArn: process.env.AWS_SYNC_WORKER_LAMBDA_ARN,
106
- createS3Client,
107
- createLambdaClient,
108
- createDocumentClient,
109
- createCognitoIdentityProviderClient
110
- });
111
- ```
112
-
113
- And there might be new methods added in the future.
11
+ _This README file is automatically generated during the publish process._
package/constants.js CHANGED
@@ -1,9 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SQS_EVENT_NAME = void 0;
7
- const SQS_EVENT_NAME = exports.SQS_EVENT_NAME = "synchronization-input";
1
+ const SQS_EVENT_NAME = "synchronization-input";
2
+ export { SQS_EVENT_NAME };
8
3
 
9
4
  //# sourceMappingURL=constants.js.map
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SQS_EVENT_NAME","exports"],"sources":["constants.ts"],"sourcesContent":["export const SQS_EVENT_NAME = \"synchronization-input\" as const;\n"],"mappings":";;;;;;AAAO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,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.d.ts CHANGED
@@ -1,3 +1,11 @@
1
- export * from "./worker/createWorkerHandler.js";
2
- export * from "./sync/createSyncSystem.js";
3
- export * from "./resolver/createResolverHandler.js";
1
+ export { SyncResolverConfig } from "./resolver/SyncResolverConfig.js";
2
+ export type { ISyncResolverConfig } from "./resolver/SyncResolverConfig.js";
3
+ export { SyncResolverLambdaHandler } from "./resolver/SyncResolverLambdaHandler.js";
4
+ export { SyncWorkerConfig } from "./worker/SyncWorkerConfig.js";
5
+ export type { ISyncWorkerConfig } from "./worker/SyncWorkerConfig.js";
6
+ export { SyncWorkerEventType } from "./worker/SyncWorkerEventType.js";
7
+ export { SyncWorkerEventHandler } from "./worker/SyncWorkerEventHandler.js";
8
+ export { SyncWorkerLambdaHandler } from "./worker/SyncWorkerLambdaHandler.js";
9
+ export { SyncSystemConfig } from "./sync/SyncSystemConfig.js";
10
+ export type { ISyncSystemConfig } from "./sync/SyncSystemConfig.js";
11
+ export { ApiGatewaySyncDecorator } from "./sync/ApiGatewaySyncDecorator.js";
package/index.js CHANGED
@@ -1,40 +1,8 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _createWorkerHandler = require("./worker/createWorkerHandler.js");
7
- Object.keys(_createWorkerHandler).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _createWorkerHandler[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _createWorkerHandler[key];
14
- }
15
- });
16
- });
17
- var _createSyncSystem = require("./sync/createSyncSystem.js");
18
- Object.keys(_createSyncSystem).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _createSyncSystem[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _createSyncSystem[key];
25
- }
26
- });
27
- });
28
- var _createResolverHandler = require("./resolver/createResolverHandler.js");
29
- Object.keys(_createResolverHandler).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _createResolverHandler[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _createResolverHandler[key];
36
- }
37
- });
38
- });
39
-
40
- //# sourceMappingURL=index.js.map
1
+ export { SyncResolverConfig } from "./resolver/SyncResolverConfig.js";
2
+ export { SyncResolverLambdaHandler } from "./resolver/SyncResolverLambdaHandler.js";
3
+ export { SyncWorkerConfig } from "./worker/SyncWorkerConfig.js";
4
+ export { SyncWorkerEventType } from "./worker/SyncWorkerEventType.js";
5
+ export { SyncWorkerEventHandler } from "./worker/SyncWorkerEventHandler.js";
6
+ export { SyncWorkerLambdaHandler } from "./worker/SyncWorkerLambdaHandler.js";
7
+ export { SyncSystemConfig } from "./sync/SyncSystemConfig.js";
8
+ export { ApiGatewaySyncDecorator } from "./sync/ApiGatewaySyncDecorator.js";
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/api-sync-system",
3
- "version": "0.0.0-unstable.06b2ede40f",
4
- "main": "index.js",
3
+ "version": "0.0.0-unstable.0d717d18dd",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
5
9
  "repository": {
6
10
  "type": "git",
7
11
  "url": "https://github.com/webiny/webiny-js.git"
@@ -10,36 +14,37 @@
10
14
  "author": "Webiny LTD",
11
15
  "license": "MIT",
12
16
  "dependencies": {
13
- "@webiny/api": "0.0.0-unstable.06b2ede40f",
14
- "@webiny/aws-sdk": "0.0.0-unstable.06b2ede40f",
15
- "@webiny/error": "0.0.0-unstable.06b2ede40f",
16
- "@webiny/handler": "0.0.0-unstable.06b2ede40f",
17
- "@webiny/handler-aws": "0.0.0-unstable.06b2ede40f",
18
- "@webiny/plugins": "0.0.0-unstable.06b2ede40f",
19
- "@webiny/utils": "0.0.0-unstable.06b2ede40f",
17
+ "@webiny/api": "0.0.0-unstable.0d717d18dd",
18
+ "@webiny/api-core": "0.0.0-unstable.0d717d18dd",
19
+ "@webiny/aws-sdk": "0.0.0-unstable.0d717d18dd",
20
+ "@webiny/error": "0.0.0-unstable.0d717d18dd",
21
+ "@webiny/event-handler-aws": "0.0.0-unstable.0d717d18dd",
22
+ "@webiny/event-handler-core": "0.0.0-unstable.0d717d18dd",
23
+ "@webiny/feature": "0.0.0-unstable.0d717d18dd",
24
+ "@webiny/handler": "0.0.0-unstable.0d717d18dd",
25
+ "@webiny/plugins": "0.0.0-unstable.0d717d18dd",
26
+ "@webiny/utils": "0.0.0-unstable.0d717d18dd",
20
27
  "bytes": "3.1.2",
21
- "lodash": "4.17.21",
22
- "semver": "7.6.3",
23
- "zod": "3.23.8"
28
+ "lodash": "4.18.1",
29
+ "semver": "7.8.5",
30
+ "zod": "4.4.3"
24
31
  },
25
32
  "devDependencies": {
26
- "@faker-js/faker": "9.3.0",
27
- "@types/lodash": "4.17.13",
28
- "@webiny/cli": "0.0.0-unstable.06b2ede40f",
29
- "@webiny/project-utils": "0.0.0-unstable.06b2ede40f",
33
+ "@faker-js/faker": "10.5.0",
34
+ "@types/lodash": "4.17.25",
35
+ "@webiny/api-core-ddb": "0.0.0-unstable.0d717d18dd",
36
+ "@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
37
+ "@webiny/project-utils": "0.0.0-unstable.0d717d18dd",
30
38
  "aws-sdk-client-mock": "4.1.0",
31
- "jest": "29.7.0",
32
39
  "jest-dynalite": "3.6.1",
33
- "rimraf": "6.0.1",
34
- "typescript": "5.3.3"
40
+ "rimraf": "6.1.3",
41
+ "typescript": "7.0.2",
42
+ "vitest": "4.1.10"
35
43
  },
36
44
  "publishConfig": {
37
- "access": "public",
38
- "directory": "dist"
39
- },
40
- "scripts": {
41
- "build": "node ../cli/bin.js run build",
42
- "watch": "node ../cli/bin.js run watch"
45
+ "access": "public"
43
46
  },
44
- "gitHead": "06b2ede40fc2212a70eeafd74afd50b56fb0ce82"
47
+ "webiny": {
48
+ "publishFrom": "dist"
49
+ }
45
50
  }
@@ -0,0 +1,17 @@
1
+ import type { DynamoDBClientConfig, DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
2
+ import type { LambdaClient, LambdaClientConfig } from "@webiny/aws-sdk/client-lambda/index.js";
3
+ import type { S3Client, S3ClientConfig } from "@webiny/aws-sdk/client-s3/index.js";
4
+ import type { CognitoIdentityProvider, CognitoIdentityProviderClientConfig } from "@webiny/aws-sdk/client-cognito-identity-provider/index.js";
5
+ import type { TransformRecordPlugin } from "./plugins/TransformRecordPlugin.js";
6
+ import type { CommandHandlerPlugin } from "./plugins/CommandHandlerPlugin.js";
7
+ export type AllowedResolverPlugins = TransformRecordPlugin | CommandHandlerPlugin;
8
+ export interface ISyncResolverConfig {
9
+ tableName?: string;
10
+ awsWorkerLambdaArn?: string;
11
+ createDocumentClient(params: Partial<DynamoDBClientConfig>): Pick<DynamoDBDocument, "send">;
12
+ createLambdaClient?(config: Partial<LambdaClientConfig>): Pick<LambdaClient, "send">;
13
+ createS3Client?(config: S3ClientConfig): Pick<S3Client, "send">;
14
+ createCognitoIdentityProviderClient?(config: Partial<CognitoIdentityProviderClientConfig>): Pick<CognitoIdentityProvider, "send">;
15
+ plugins?: AllowedResolverPlugins[];
16
+ }
17
+ export declare const SyncResolverConfig: import("@webiny/di").Abstraction<ISyncResolverConfig>;
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const SyncResolverConfig = createAbstraction("SyncResolverConfig");
3
+ export { SyncResolverConfig };
4
+
5
+ //# sourceMappingURL=SyncResolverConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver/SyncResolverConfig.js","sources":["../../src/resolver/SyncResolverConfig.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n DynamoDBClientConfig,\n DynamoDBDocument\n} from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { LambdaClient, LambdaClientConfig } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type {\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport type { TransformRecordPlugin } from \"./plugins/TransformRecordPlugin.js\";\nimport type { CommandHandlerPlugin } from \"./plugins/CommandHandlerPlugin.js\";\n\nexport type AllowedResolverPlugins = TransformRecordPlugin | CommandHandlerPlugin;\n\nexport interface ISyncResolverConfig {\n tableName?: string;\n awsWorkerLambdaArn?: string;\n createDocumentClient(params: Partial<DynamoDBClientConfig>): Pick<DynamoDBDocument, \"send\">;\n createLambdaClient?(config: Partial<LambdaClientConfig>): Pick<LambdaClient, \"send\">;\n createS3Client?(config: S3ClientConfig): Pick<S3Client, \"send\">;\n createCognitoIdentityProviderClient?(\n config: Partial<CognitoIdentityProviderClientConfig>\n ): Pick<CognitoIdentityProvider, \"send\">;\n plugins?: AllowedResolverPlugins[];\n}\n\nexport const SyncResolverConfig = createAbstraction<ISyncResolverConfig>(\"SyncResolverConfig\");\n"],"names":["SyncResolverConfig","createAbstraction"],"mappings":";AA4BO,MAAMA,qBAAqBC,kBAAuC"}
@@ -0,0 +1,14 @@
1
+ import { SqsEventHandler } from "@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js";
2
+ import type { SqsResult } from "@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js";
3
+ import type { EventContext, NextFunction } from "@webiny/event-handler-core";
4
+ import type { SQSEvent } from "@webiny/aws-sdk/types/index.js";
5
+ import type { ISyncResolverConfig } from "./SyncResolverConfig.js";
6
+ declare class SyncResolverLambdaHandlerImpl implements SqsEventHandler.Interface {
7
+ private config;
8
+ constructor(config: ISyncResolverConfig);
9
+ execute(eventCtx: EventContext<SQSEvent>, _next: NextFunction): Promise<SqsResult>;
10
+ }
11
+ export declare const SyncResolverLambdaHandler: typeof SyncResolverLambdaHandlerImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js").ISqsEventHandler>;
13
+ };
14
+ export {};
@@ -0,0 +1,159 @@
1
+ import { SqsEventHandler } from "@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js";
2
+ import { PluginsContainer } from "@webiny/plugins";
3
+ import { WebinyError } from "@webiny/error";
4
+ import { convertException } from "@webiny/utils";
5
+ import { SyncResolverConfig } from "./SyncResolverConfig.js";
6
+ import { createFetcher } from "./app/fetcher/Fetcher.js";
7
+ import { createDeploymentsFetcher } from "./deployment/DeploymentsFetcher.js";
8
+ import { createStorer } from "./app/storer/Storer.js";
9
+ import { TransformHandler } from "./app/transform/TransformHandler.js";
10
+ import { createRecordHandler } from "./app/RecordHandler.js";
11
+ import { createResolverApp } from "./app/ResolverApplication.js";
12
+ import { createBundler } from "./app/bundler/Bundler.js";
13
+ import { createBundles } from "./app/bundler/Bundles.js";
14
+ import { createCommandBundle } from "./app/bundler/CommandBundle.js";
15
+ import { createTableBundle } from "./app/bundler/TableBundle.js";
16
+ import { SourceDataContainer } from "./app/data/SourceDataContainer.js";
17
+ import { StorerAfterEachPlugin } from "./plugins/StorerAfterEachPlugin.js";
18
+ import { createFileManagerPlugins } from "./recordTypes/fileManager/fileManager.js";
19
+ import { LambdaTrigger } from "./lambda/LambdaTrigger.js";
20
+ import { CopyFile } from "./recordTypes/fileManager/CopyFile.js";
21
+ import { DeleteFile } from "./recordTypes/fileManager/DeleteFile.js";
22
+ import { createUsersPlugins } from "./recordTypes/users/users.js";
23
+ import { CopyUser } from "./recordTypes/users/CopyUser.js";
24
+ import { DeleteUser } from "./recordTypes/users/DeleteUser.js";
25
+ import { createPutCommandHandlerPlugin } from "./app/commandHandler/put.js";
26
+ import { createDeleteCommandHandlerPlugin } from "./app/commandHandler/delete.js";
27
+ async function processResolverEvent(records, config, plugins) {
28
+ const tableName = config.tableName || process.env.DB_TABLE;
29
+ if (!tableName) throw new WebinyError({
30
+ message: "Table name variable is not set."
31
+ });
32
+ const fetcher = createFetcher({
33
+ maxRetries: 10,
34
+ retryDelay: 1000,
35
+ createDocumentClient: (deployment)=>config.createDocumentClient({
36
+ region: deployment.region
37
+ })
38
+ });
39
+ const deploymentsFetcher = createDeploymentsFetcher({
40
+ client: config.createDocumentClient({
41
+ region: process.env.AWS_REGION
42
+ }),
43
+ table: tableName
44
+ });
45
+ const deployments = await deploymentsFetcher.fetch();
46
+ const storerAfterEachPlugins = plugins.byType(StorerAfterEachPlugin.type);
47
+ const storer = createStorer({
48
+ createDocumentClient: (deployment)=>config.createDocumentClient({
49
+ region: deployment.region
50
+ }),
51
+ afterEach: async (params)=>{
52
+ for (const plugin of storerAfterEachPlugins)if (plugin.canHandle(params)) await plugin.handle(params);
53
+ }
54
+ });
55
+ const transformHandler = new TransformHandler({
56
+ plugins
57
+ });
58
+ const recordHandler = createRecordHandler({
59
+ plugins,
60
+ fetcher,
61
+ storer,
62
+ deployments,
63
+ transformHandler,
64
+ commandBundler: createBundler({
65
+ createBundles: ()=>createBundles({
66
+ createBundle: createCommandBundle
67
+ })
68
+ }),
69
+ tableBundler: createBundler({
70
+ createBundles: ()=>createBundles({
71
+ createBundle: createTableBundle
72
+ })
73
+ }),
74
+ createSourceDataContainer: ()=>SourceDataContainer.create()
75
+ });
76
+ const app = createResolverApp({
77
+ recordHandler,
78
+ deployments
79
+ });
80
+ await app.resolve({
81
+ records
82
+ });
83
+ }
84
+ class SyncResolverLambdaHandlerImpl {
85
+ constructor(config){
86
+ this.config = config;
87
+ }
88
+ async execute(eventCtx, _next) {
89
+ const { createLambdaClient, createS3Client, createCognitoIdentityProviderClient } = this.config;
90
+ const awsWorkerLambdaArn = this.config.awsWorkerLambdaArn || process.env.AWS_SYNC_WORKER_LAMBDA_ARN;
91
+ const copyFileTrigger = createLambdaClient && awsWorkerLambdaArn ? new LambdaTrigger({
92
+ arn: awsWorkerLambdaArn,
93
+ createLambdaClient
94
+ }) : void 0;
95
+ const deleteFileTrigger = createLambdaClient && awsWorkerLambdaArn ? new LambdaTrigger({
96
+ arn: awsWorkerLambdaArn,
97
+ createLambdaClient
98
+ }) : void 0;
99
+ const copyUserTrigger = createLambdaClient && awsWorkerLambdaArn ? new LambdaTrigger({
100
+ arn: awsWorkerLambdaArn,
101
+ createLambdaClient
102
+ }) : void 0;
103
+ const deleteUserTrigger = createLambdaClient && awsWorkerLambdaArn ? new LambdaTrigger({
104
+ arn: awsWorkerLambdaArn,
105
+ createLambdaClient
106
+ }) : void 0;
107
+ const copyFile = createS3Client && copyFileTrigger ? new CopyFile({
108
+ createS3Client,
109
+ getLambdaTrigger: ()=>copyFileTrigger
110
+ }) : void 0;
111
+ const deleteFile = createS3Client && deleteFileTrigger ? new DeleteFile({
112
+ createS3Client,
113
+ getLambdaTrigger: ()=>deleteFileTrigger
114
+ }) : void 0;
115
+ const copyUser = createCognitoIdentityProviderClient && copyUserTrigger ? new CopyUser({
116
+ createCognitoIdentityProviderClient,
117
+ getLambdaTrigger: ()=>copyUserTrigger
118
+ }) : void 0;
119
+ const deleteUser = createCognitoIdentityProviderClient && deleteUserTrigger ? new DeleteUser({
120
+ createCognitoIdentityProviderClient,
121
+ getLambdaTrigger: ()=>deleteUserTrigger
122
+ }) : void 0;
123
+ const plugins = new PluginsContainer([
124
+ ...copyFile && deleteFile ? createFileManagerPlugins({
125
+ copyFile,
126
+ deleteFile
127
+ }) : [],
128
+ ...copyUser && deleteUser ? createUsersPlugins({
129
+ copyUser,
130
+ deleteUser
131
+ }) : [],
132
+ createPutCommandHandlerPlugin(),
133
+ createDeleteCommandHandlerPlugin(),
134
+ ...this.config.plugins || []
135
+ ]);
136
+ try {
137
+ await processResolverEvent(eventCtx.event.Records, this.config, plugins);
138
+ return {
139
+ success: true
140
+ };
141
+ } catch (ex) {
142
+ const error = convertException(ex);
143
+ console.error(error);
144
+ return {
145
+ success: false,
146
+ message: error.message
147
+ };
148
+ }
149
+ }
150
+ }
151
+ const SyncResolverLambdaHandler = SqsEventHandler.createImplementation({
152
+ implementation: SyncResolverLambdaHandlerImpl,
153
+ dependencies: [
154
+ SyncResolverConfig
155
+ ]
156
+ });
157
+ export { SyncResolverLambdaHandler };
158
+
159
+ //# sourceMappingURL=SyncResolverLambdaHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver/SyncResolverLambdaHandler.js","sources":["../../src/resolver/SyncResolverLambdaHandler.ts"],"sourcesContent":["import { SqsEventHandler } from \"@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js\";\nimport type { SqsResult } from \"@webiny/event-handler-aws/abstractions/handlers/SqsEventHandler.js\";\nimport type { EventContext, NextFunction } from \"@webiny/event-handler-core\";\nimport type { SQSEvent } from \"@webiny/aws-sdk/types/index.js\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { WebinyError } from \"@webiny/error\";\nimport { convertException } from \"@webiny/utils\";\nimport { SyncResolverConfig } from \"./SyncResolverConfig.js\";\nimport type { ISyncResolverConfig } from \"./SyncResolverConfig.js\";\nimport { createFetcher } from \"~/resolver/app/fetcher/Fetcher.js\";\nimport { createDeploymentsFetcher } from \"~/resolver/deployment/DeploymentsFetcher.js\";\nimport { createStorer } from \"~/resolver/app/storer/Storer.js\";\nimport { TransformHandler } from \"~/resolver/app/transform/TransformHandler.js\";\nimport { createRecordHandler } from \"~/resolver/app/RecordHandler.js\";\nimport { createResolverApp } from \"~/resolver/app/ResolverApplication.js\";\nimport { createBundler } from \"~/resolver/app/bundler/Bundler.js\";\nimport { createBundles } from \"~/resolver/app/bundler/Bundles.js\";\nimport { createCommandBundle } from \"~/resolver/app/bundler/CommandBundle.js\";\nimport { createTableBundle } from \"~/resolver/app/bundler/TableBundle.js\";\nimport { SourceDataContainer } from \"~/resolver/app/data/SourceDataContainer.js\";\nimport { StorerAfterEachPlugin } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\nimport { createFileManagerPlugins } from \"~/resolver/recordTypes/fileManager/fileManager.js\";\nimport { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport { CopyFile } from \"~/resolver/recordTypes/fileManager/CopyFile.js\";\nimport { DeleteFile } from \"~/resolver/recordTypes/fileManager/DeleteFile.js\";\nimport { createUsersPlugins } from \"~/resolver/recordTypes/users/users.js\";\nimport { CopyUser } from \"~/resolver/recordTypes/users/CopyUser.js\";\nimport { DeleteUser } from \"~/resolver/recordTypes/users/DeleteUser.js\";\nimport { createPutCommandHandlerPlugin } from \"~/resolver/app/commandHandler/put.js\";\nimport { createDeleteCommandHandlerPlugin } from \"~/resolver/app/commandHandler/delete.js\";\nimport type {\n ICopyFileLambdaPayload,\n IDeleteFileLambdaPayload,\n ICopyUserLambdaPayload,\n IDeleteUserLambdaPayload\n} from \"~/types.js\";\n\nasync function processResolverEvent(\n records: SQSEvent[\"Records\"],\n config: ISyncResolverConfig,\n plugins: PluginsContainer\n): Promise<void> {\n const tableName = config.tableName || process.env.DB_TABLE;\n if (!tableName) {\n throw new WebinyError({ message: \"Table name variable is not set.\" });\n }\n\n const fetcher = createFetcher({\n maxRetries: 10,\n retryDelay: 1000,\n createDocumentClient: deployment =>\n config.createDocumentClient({ region: deployment.region })\n });\n\n const deploymentsFetcher = createDeploymentsFetcher({\n client: config.createDocumentClient({ region: process.env.AWS_REGION }),\n table: tableName\n });\n\n const deployments = await deploymentsFetcher.fetch();\n\n const storerAfterEachPlugins = plugins.byType<StorerAfterEachPlugin>(\n StorerAfterEachPlugin.type\n );\n\n const storer = createStorer({\n createDocumentClient: deployment =>\n config.createDocumentClient({ region: deployment.region }),\n afterEach: async params => {\n for (const plugin of storerAfterEachPlugins) {\n if (!plugin.canHandle(params)) {\n continue;\n }\n await plugin.handle(params);\n }\n }\n });\n\n const transformHandler = new TransformHandler({ plugins });\n const recordHandler = createRecordHandler({\n plugins,\n fetcher,\n storer,\n deployments,\n transformHandler,\n commandBundler: createBundler({\n createBundles: () => createBundles({ createBundle: createCommandBundle })\n }),\n tableBundler: createBundler({\n createBundles: () => createBundles({ createBundle: createTableBundle })\n }),\n createSourceDataContainer: () => SourceDataContainer.create()\n });\n\n const app = createResolverApp({ recordHandler, deployments });\n await app.resolve({ records });\n}\n\nclass SyncResolverLambdaHandlerImpl implements SqsEventHandler.Interface {\n constructor(private config: ISyncResolverConfig) {}\n\n async execute(eventCtx: EventContext<SQSEvent>, _next: NextFunction): Promise<SqsResult> {\n const { createLambdaClient, createS3Client, createCognitoIdentityProviderClient } =\n this.config;\n\n const awsWorkerLambdaArn =\n this.config.awsWorkerLambdaArn || process.env.AWS_SYNC_WORKER_LAMBDA_ARN;\n\n const copyFileTrigger =\n createLambdaClient && awsWorkerLambdaArn\n ? new LambdaTrigger<ICopyFileLambdaPayload>({\n arn: awsWorkerLambdaArn,\n createLambdaClient\n })\n : undefined;\n\n const deleteFileTrigger =\n createLambdaClient && awsWorkerLambdaArn\n ? new LambdaTrigger<IDeleteFileLambdaPayload>({\n arn: awsWorkerLambdaArn,\n createLambdaClient\n })\n : undefined;\n\n const copyUserTrigger =\n createLambdaClient && awsWorkerLambdaArn\n ? new LambdaTrigger<ICopyUserLambdaPayload>({\n arn: awsWorkerLambdaArn,\n createLambdaClient\n })\n : undefined;\n\n const deleteUserTrigger =\n createLambdaClient && awsWorkerLambdaArn\n ? new LambdaTrigger<IDeleteUserLambdaPayload>({\n arn: awsWorkerLambdaArn,\n createLambdaClient\n })\n : undefined;\n\n const copyFile =\n createS3Client && copyFileTrigger\n ? new CopyFile({\n createS3Client,\n getLambdaTrigger: () => copyFileTrigger\n })\n : undefined;\n\n const deleteFile =\n createS3Client && deleteFileTrigger\n ? new DeleteFile({\n createS3Client,\n getLambdaTrigger: () => deleteFileTrigger\n })\n : undefined;\n\n const copyUser =\n createCognitoIdentityProviderClient && copyUserTrigger\n ? new CopyUser({\n createCognitoIdentityProviderClient,\n getLambdaTrigger: () => copyUserTrigger\n })\n : undefined;\n\n const deleteUser =\n createCognitoIdentityProviderClient && deleteUserTrigger\n ? new DeleteUser({\n createCognitoIdentityProviderClient,\n getLambdaTrigger: () => deleteUserTrigger\n })\n : undefined;\n\n const plugins = new PluginsContainer([\n ...(copyFile && deleteFile ? createFileManagerPlugins({ copyFile, deleteFile }) : []),\n ...(copyUser && deleteUser ? createUsersPlugins({ copyUser, deleteUser }) : []),\n createPutCommandHandlerPlugin(),\n createDeleteCommandHandlerPlugin(),\n ...(this.config.plugins || [])\n ]);\n\n try {\n await processResolverEvent(eventCtx.event.Records, this.config, plugins);\n return { success: true };\n } catch (ex) {\n const error = convertException(ex);\n console.error(error);\n return { success: false, message: error.message };\n }\n }\n}\n\nexport const SyncResolverLambdaHandler = SqsEventHandler.createImplementation({\n implementation: SyncResolverLambdaHandlerImpl,\n dependencies: [SyncResolverConfig]\n});\n"],"names":["processResolverEvent","records","config","plugins","tableName","process","WebinyError","fetcher","createFetcher","deployment","deploymentsFetcher","createDeploymentsFetcher","deployments","storerAfterEachPlugins","StorerAfterEachPlugin","storer","createStorer","params","plugin","transformHandler","TransformHandler","recordHandler","createRecordHandler","createBundler","createBundles","createCommandBundle","createTableBundle","SourceDataContainer","app","createResolverApp","SyncResolverLambdaHandlerImpl","eventCtx","_next","createLambdaClient","createS3Client","createCognitoIdentityProviderClient","awsWorkerLambdaArn","copyFileTrigger","LambdaTrigger","undefined","deleteFileTrigger","copyUserTrigger","deleteUserTrigger","copyFile","CopyFile","deleteFile","DeleteFile","copyUser","CopyUser","deleteUser","DeleteUser","PluginsContainer","createFileManagerPlugins","createUsersPlugins","createPutCommandHandlerPlugin","createDeleteCommandHandlerPlugin","ex","error","convertException","console","SyncResolverLambdaHandler","SqsEventHandler","SyncResolverConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,eAAeA,qBACXC,OAA4B,EAC5BC,MAA2B,EAC3BC,OAAyB;IAEzB,MAAMC,YAAYF,OAAO,SAAS,IAAIG,QAAQ,GAAG,CAAC,QAAQ;IAC1D,IAAI,CAACD,WACD,MAAM,IAAIE,YAAY;QAAE,SAAS;IAAkC;IAGvE,MAAMC,UAAUC,cAAc;QAC1B,YAAY;QACZ,YAAY;QACZ,sBAAsBC,CAAAA,aAClBP,OAAO,oBAAoB,CAAC;gBAAE,QAAQO,WAAW,MAAM;YAAC;IAChE;IAEA,MAAMC,qBAAqBC,yBAAyB;QAChD,QAAQT,OAAO,oBAAoB,CAAC;YAAE,QAAQG,QAAQ,GAAG,CAAC,UAAU;QAAC;QACrE,OAAOD;IACX;IAEA,MAAMQ,cAAc,MAAMF,mBAAmB,KAAK;IAElD,MAAMG,yBAAyBV,QAAQ,MAAM,CACzCW,sBAAsB,IAAI;IAG9B,MAAMC,SAASC,aAAa;QACxB,sBAAsBP,CAAAA,aAClBP,OAAO,oBAAoB,CAAC;gBAAE,QAAQO,WAAW,MAAM;YAAC;QAC5D,WAAW,OAAMQ;YACb,KAAK,MAAMC,UAAUL,uBACjB,IAAKK,OAAO,SAAS,CAACD,SAGtB,MAAMC,OAAO,MAAM,CAACD;QAE5B;IACJ;IAEA,MAAME,mBAAmB,IAAIC,iBAAiB;QAAEjB;IAAQ;IACxD,MAAMkB,gBAAgBC,oBAAoB;QACtCnB;QACAI;QACAQ;QACAH;QACAO;QACA,gBAAgBI,cAAc;YAC1B,eAAe,IAAMC,cAAc;oBAAE,cAAcC;gBAAoB;QAC3E;QACA,cAAcF,cAAc;YACxB,eAAe,IAAMC,cAAc;oBAAE,cAAcE;gBAAkB;QACzE;QACA,2BAA2B,IAAMC,oBAAoB,MAAM;IAC/D;IAEA,MAAMC,MAAMC,kBAAkB;QAAER;QAAeT;IAAY;IAC3D,MAAMgB,IAAI,OAAO,CAAC;QAAE3B;IAAQ;AAChC;AAEA,MAAM6B;IACF,YAAoB5B,MAA2B,CAAE;aAA7BA,MAAM,GAANA;IAA8B;IAElD,MAAM,QAAQ6B,QAAgC,EAAEC,KAAmB,EAAsB;QACrF,MAAM,EAAEC,kBAAkB,EAAEC,cAAc,EAAEC,mCAAmC,EAAE,GAC7E,IAAI,CAAC,MAAM;QAEf,MAAMC,qBACF,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI/B,QAAQ,GAAG,CAAC,0BAA0B;QAE5E,MAAMgC,kBACFJ,sBAAsBG,qBAChB,IAAIE,cAAsC;YACtC,KAAKF;YACLH;QACJ,KACAM;QAEV,MAAMC,oBACFP,sBAAsBG,qBAChB,IAAIE,cAAwC;YACxC,KAAKF;YACLH;QACJ,KACAM;QAEV,MAAME,kBACFR,sBAAsBG,qBAChB,IAAIE,cAAsC;YACtC,KAAKF;YACLH;QACJ,KACAM;QAEV,MAAMG,oBACFT,sBAAsBG,qBAChB,IAAIE,cAAwC;YACxC,KAAKF;YACLH;QACJ,KACAM;QAEV,MAAMI,WACFT,kBAAkBG,kBACZ,IAAIO,SAAS;YACTV;YACA,kBAAkB,IAAMG;QAC5B,KACAE;QAEV,MAAMM,aACFX,kBAAkBM,oBACZ,IAAIM,WAAW;YACXZ;YACA,kBAAkB,IAAMM;QAC5B,KACAD;QAEV,MAAMQ,WACFZ,uCAAuCM,kBACjC,IAAIO,SAAS;YACTb;YACA,kBAAkB,IAAMM;QAC5B,KACAF;QAEV,MAAMU,aACFd,uCAAuCO,oBACjC,IAAIQ,WAAW;YACXf;YACA,kBAAkB,IAAMO;QAC5B,KACAH;QAEV,MAAMpC,UAAU,IAAIgD,iBAAiB;eAC7BR,YAAYE,aAAaO,yBAAyB;gBAAET;gBAAUE;YAAW,KAAK,EAAE;eAChFE,YAAYE,aAAaI,mBAAmB;gBAAEN;gBAAUE;YAAW,KAAK,EAAE;YAC9EK;YACAC;eACI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;SAChC;QAED,IAAI;YACA,MAAMvD,qBAAqB+B,SAAS,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE5B;YAChE,OAAO;gBAAE,SAAS;YAAK;QAC3B,EAAE,OAAOqD,IAAI;YACT,MAAMC,QAAQC,iBAAiBF;YAC/BG,QAAQ,KAAK,CAACF;YACd,OAAO;gBAAE,SAAS;gBAAO,SAASA,MAAM,OAAO;YAAC;QACpD;IACJ;AACJ;AAEO,MAAMG,4BAA4BC,gBAAgB,oBAAoB,CAAC;IAC1E,gBAAgB/B;IAChB,cAAc;QAACgC;KAAmB;AACtC"}
@@ -1,11 +1,11 @@
1
1
  import type { IRecordHandler, IRecordHandlerHandleParams } from "./abstractions/RecordHandler.js";
2
2
  import type { PluginsContainer } from "@webiny/plugins";
3
- import type { IFetcher } from "./fetcher/types.js";
4
- import type { IStorer } from "./storer/types.js";
5
- import type { IBundler } from "./bundler/types.js";
6
- import type { IDeployments } from "../deployment/types.js";
7
- import type { ITransformHandler } from "./transform/TransformHandler.js";
8
- import type { ISourceDataContainer } from "./data/types.js";
3
+ import type { IFetcher } from "../../resolver/app/fetcher/types.js";
4
+ import type { IStorer } from "../../resolver/app/storer/types.js";
5
+ import type { IBundler } from "../../resolver/app/bundler/types.js";
6
+ import type { IDeployments } from "../../resolver/deployment/types.js";
7
+ import type { ITransformHandler } from "../../resolver/app/transform/TransformHandler.js";
8
+ import type { ISourceDataContainer } from "../../resolver/app/data/types.js";
9
9
  export interface IRecordHandlerParams {
10
10
  fetcher: IFetcher;
11
11
  storer: IStorer;