@webiny/api-sync-system 0.0.0-unstable.2aaa1916d9

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 (360) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +113 -0
  3. package/constants.d.ts +1 -0
  4. package/constants.js +9 -0
  5. package/constants.js.map +1 -0
  6. package/index.d.ts +3 -0
  7. package/index.js +40 -0
  8. package/index.js.map +1 -0
  9. package/package.json +45 -0
  10. package/resolver/app/RecordHandler.d.ts +34 -0
  11. package/resolver/app/RecordHandler.js +126 -0
  12. package/resolver/app/RecordHandler.js.map +1 -0
  13. package/resolver/app/RecordsValidation.d.ts +6 -0
  14. package/resolver/app/RecordsValidation.js +29 -0
  15. package/resolver/app/RecordsValidation.js.map +1 -0
  16. package/resolver/app/ResolverApplication.d.ts +14 -0
  17. package/resolver/app/ResolverApplication.js +48 -0
  18. package/resolver/app/ResolverApplication.js.map +1 -0
  19. package/resolver/app/abstractions/RecordHandler.d.ts +7 -0
  20. package/resolver/app/abstractions/RecordHandler.js +7 -0
  21. package/resolver/app/abstractions/RecordHandler.js.map +1 -0
  22. package/resolver/app/abstractions/RecordsValidation.d.ts +14 -0
  23. package/resolver/app/abstractions/RecordsValidation.js +7 -0
  24. package/resolver/app/abstractions/RecordsValidation.js.map +1 -0
  25. package/resolver/app/abstractions/ResolverApplication.d.ts +7 -0
  26. package/resolver/app/abstractions/ResolverApplication.js +7 -0
  27. package/resolver/app/abstractions/ResolverApplication.js.map +1 -0
  28. package/resolver/app/abstractions/ResolverRecord.d.ts +42 -0
  29. package/resolver/app/abstractions/ResolverRecord.js +7 -0
  30. package/resolver/app/abstractions/ResolverRecord.js.map +1 -0
  31. package/resolver/app/bundler/BaseBundle.d.ts +21 -0
  32. package/resolver/app/bundler/BaseBundle.js +26 -0
  33. package/resolver/app/bundler/BaseBundle.js.map +1 -0
  34. package/resolver/app/bundler/Bundler.d.ts +10 -0
  35. package/resolver/app/bundler/Bundler.js +30 -0
  36. package/resolver/app/bundler/Bundler.js.map +1 -0
  37. package/resolver/app/bundler/Bundles.d.ts +14 -0
  38. package/resolver/app/bundler/Bundles.js +38 -0
  39. package/resolver/app/bundler/Bundles.js.map +1 -0
  40. package/resolver/app/bundler/CommandBundle.d.ts +15 -0
  41. package/resolver/app/bundler/CommandBundle.js +28 -0
  42. package/resolver/app/bundler/CommandBundle.js.map +1 -0
  43. package/resolver/app/bundler/TableBundle.d.ts +13 -0
  44. package/resolver/app/bundler/TableBundle.js +25 -0
  45. package/resolver/app/bundler/TableBundle.js.map +1 -0
  46. package/resolver/app/bundler/types.d.ts +29 -0
  47. package/resolver/app/bundler/types.js +7 -0
  48. package/resolver/app/bundler/types.js.map +1 -0
  49. package/resolver/app/commandHandler/DeleteCommandHandler.d.ts +18 -0
  50. package/resolver/app/commandHandler/DeleteCommandHandler.js +39 -0
  51. package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -0
  52. package/resolver/app/commandHandler/PutCommandHandler.d.ts +18 -0
  53. package/resolver/app/commandHandler/PutCommandHandler.js +32 -0
  54. package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -0
  55. package/resolver/app/commandHandler/delete.d.ts +2 -0
  56. package/resolver/app/commandHandler/delete.js +24 -0
  57. package/resolver/app/commandHandler/delete.js.map +1 -0
  58. package/resolver/app/commandHandler/put.d.ts +2 -0
  59. package/resolver/app/commandHandler/put.js +24 -0
  60. package/resolver/app/commandHandler/put.js.map +1 -0
  61. package/resolver/app/data/SourceDataContainer.d.ts +12 -0
  62. package/resolver/app/data/SourceDataContainer.js +42 -0
  63. package/resolver/app/data/SourceDataContainer.js.map +1 -0
  64. package/resolver/app/data/types.d.ts +23 -0
  65. package/resolver/app/data/types.js +7 -0
  66. package/resolver/app/data/types.js.map +1 -0
  67. package/resolver/app/fetcher/Fetcher.d.ts +22 -0
  68. package/resolver/app/fetcher/Fetcher.js +132 -0
  69. package/resolver/app/fetcher/Fetcher.js.map +1 -0
  70. package/resolver/app/fetcher/types.d.ts +25 -0
  71. package/resolver/app/fetcher/types.js +7 -0
  72. package/resolver/app/fetcher/types.js.map +1 -0
  73. package/resolver/app/ingestor/Ingestor.d.ts +13 -0
  74. package/resolver/app/ingestor/Ingestor.js +44 -0
  75. package/resolver/app/ingestor/Ingestor.js.map +1 -0
  76. package/resolver/app/ingestor/IngestorResult.d.ts +7 -0
  77. package/resolver/app/ingestor/IngestorResult.js +45 -0
  78. package/resolver/app/ingestor/IngestorResult.js.map +1 -0
  79. package/resolver/app/ingestor/types.d.ts +26 -0
  80. package/resolver/app/ingestor/types.js +7 -0
  81. package/resolver/app/ingestor/types.js.map +1 -0
  82. package/resolver/app/storer/Storer.d.ts +44 -0
  83. package/resolver/app/storer/Storer.js +103 -0
  84. package/resolver/app/storer/Storer.js.map +1 -0
  85. package/resolver/app/storer/types.d.ts +21 -0
  86. package/resolver/app/storer/types.js +7 -0
  87. package/resolver/app/storer/types.js.map +1 -0
  88. package/resolver/app/transform/TransformHandler.d.ts +34 -0
  89. package/resolver/app/transform/TransformHandler.js +70 -0
  90. package/resolver/app/transform/TransformHandler.js.map +1 -0
  91. package/resolver/app/transform/middleware.d.ts +3 -0
  92. package/resolver/app/transform/middleware.js +29 -0
  93. package/resolver/app/transform/middleware.js.map +1 -0
  94. package/resolver/app/utils/Retry.d.ts +18 -0
  95. package/resolver/app/utils/Retry.js +38 -0
  96. package/resolver/app/utils/Retry.js.map +1 -0
  97. package/resolver/app/utils/sleep.d.ts +1 -0
  98. package/resolver/app/utils/sleep.js +14 -0
  99. package/resolver/app/utils/sleep.js.map +1 -0
  100. package/resolver/app/validation/body.d.ts +142 -0
  101. package/resolver/app/validation/body.js +46 -0
  102. package/resolver/app/validation/body.js.map +1 -0
  103. package/resolver/app/validation/createJsonTransform.d.ts +2 -0
  104. package/resolver/app/validation/createJsonTransform.js +24 -0
  105. package/resolver/app/validation/createJsonTransform.js.map +1 -0
  106. package/resolver/app/validation/detail.d.ts +89 -0
  107. package/resolver/app/validation/detail.js +50 -0
  108. package/resolver/app/validation/detail.js.map +1 -0
  109. package/resolver/app/validation/event.d.ts +217 -0
  110. package/resolver/app/validation/event.js +32 -0
  111. package/resolver/app/validation/event.js.map +1 -0
  112. package/resolver/app/validation/numericString.d.ts +2 -0
  113. package/resolver/app/validation/numericString.js +23 -0
  114. package/resolver/app/validation/numericString.js.map +1 -0
  115. package/resolver/app/validation/system.d.ts +20 -0
  116. package/resolver/app/validation/system.js +20 -0
  117. package/resolver/app/validation/system.js.map +1 -0
  118. package/resolver/createEventHandlerPlugin.d.ts +10 -0
  119. package/resolver/createEventHandlerPlugin.js +127 -0
  120. package/resolver/createEventHandlerPlugin.js.map +1 -0
  121. package/resolver/createResolverHandler.d.ts +21 -0
  122. package/resolver/createResolverHandler.js +79 -0
  123. package/resolver/createResolverHandler.js.map +1 -0
  124. package/resolver/deployment/Deployment.d.ts +17 -0
  125. package/resolver/deployment/Deployment.js +50 -0
  126. package/resolver/deployment/Deployment.js.map +1 -0
  127. package/resolver/deployment/Deployments.d.ts +13 -0
  128. package/resolver/deployment/Deployments.js +34 -0
  129. package/resolver/deployment/Deployments.js.map +1 -0
  130. package/resolver/deployment/DeploymentsFetcher.d.ts +16 -0
  131. package/resolver/deployment/DeploymentsFetcher.js +112 -0
  132. package/resolver/deployment/DeploymentsFetcher.js.map +1 -0
  133. package/resolver/deployment/types.d.ts +34 -0
  134. package/resolver/deployment/types.js +7 -0
  135. package/resolver/deployment/types.js.map +1 -0
  136. package/resolver/lambda/LambdaTrigger.d.ts +18 -0
  137. package/resolver/lambda/LambdaTrigger.js +39 -0
  138. package/resolver/lambda/LambdaTrigger.js.map +1 -0
  139. package/resolver/plugins/CommandHandlerPlugin.d.ts +31 -0
  140. package/resolver/plugins/CommandHandlerPlugin.js +27 -0
  141. package/resolver/plugins/CommandHandlerPlugin.js.map +1 -0
  142. package/resolver/plugins/StorerAfterEachPlugin.d.ts +31 -0
  143. package/resolver/plugins/StorerAfterEachPlugin.js +33 -0
  144. package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -0
  145. package/resolver/plugins/TransformRecordPlugin.d.ts +38 -0
  146. package/resolver/plugins/TransformRecordPlugin.js +30 -0
  147. package/resolver/plugins/TransformRecordPlugin.js.map +1 -0
  148. package/resolver/recordTypes/fileManager/CopyFile.d.ts +14 -0
  149. package/resolver/recordTypes/fileManager/CopyFile.js +81 -0
  150. package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -0
  151. package/resolver/recordTypes/fileManager/DeleteFile.d.ts +14 -0
  152. package/resolver/recordTypes/fileManager/DeleteFile.js +72 -0
  153. package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -0
  154. package/resolver/recordTypes/fileManager/fileManager.d.ts +6 -0
  155. package/resolver/recordTypes/fileManager/fileManager.js +14 -0
  156. package/resolver/recordTypes/fileManager/fileManager.js.map +1 -0
  157. package/resolver/recordTypes/fileManager/fileManagerOnDelete.d.ts +5 -0
  158. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +48 -0
  159. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -0
  160. package/resolver/recordTypes/fileManager/fileManagerOnPut.d.ts +5 -0
  161. package/resolver/recordTypes/fileManager/fileManagerOnPut.js +48 -0
  162. package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -0
  163. package/resolver/recordTypes/fileManager/shouldBeHandled.d.ts +2 -0
  164. package/resolver/recordTypes/fileManager/shouldBeHandled.js +37 -0
  165. package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -0
  166. package/resolver/recordTypes/fileManager/types.d.ts +26 -0
  167. package/resolver/recordTypes/fileManager/types.js +7 -0
  168. package/resolver/recordTypes/fileManager/types.js.map +1 -0
  169. package/resolver/recordTypes/users/CopyUser.d.ts +18 -0
  170. package/resolver/recordTypes/users/CopyUser.js +67 -0
  171. package/resolver/recordTypes/users/CopyUser.js.map +1 -0
  172. package/resolver/recordTypes/users/DeleteUser.d.ts +18 -0
  173. package/resolver/recordTypes/users/DeleteUser.js +65 -0
  174. package/resolver/recordTypes/users/DeleteUser.js.map +1 -0
  175. package/resolver/recordTypes/users/shouldBeHandled.d.ts +2 -0
  176. package/resolver/recordTypes/users/shouldBeHandled.js +36 -0
  177. package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -0
  178. package/resolver/recordTypes/users/types.d.ts +24 -0
  179. package/resolver/recordTypes/users/types.js +7 -0
  180. package/resolver/recordTypes/users/types.js.map +1 -0
  181. package/resolver/recordTypes/users/users.d.ts +6 -0
  182. package/resolver/recordTypes/users/users.js +14 -0
  183. package/resolver/recordTypes/users/users.js.map +1 -0
  184. package/resolver/recordTypes/users/usersOnDelete.d.ts +5 -0
  185. package/resolver/recordTypes/users/usersOnDelete.js +47 -0
  186. package/resolver/recordTypes/users/usersOnDelete.js.map +1 -0
  187. package/resolver/recordTypes/users/usersOnPut.d.ts +5 -0
  188. package/resolver/recordTypes/users/usersOnPut.js +48 -0
  189. package/resolver/recordTypes/users/usersOnPut.js.map +1 -0
  190. package/sync/FilterOutRecord.d.ts +11 -0
  191. package/sync/FilterOutRecord.js +29 -0
  192. package/sync/FilterOutRecord.js.map +1 -0
  193. package/sync/attachToDynamoDbDocument.d.ts +11 -0
  194. package/sync/attachToDynamoDbDocument.js +79 -0
  195. package/sync/attachToDynamoDbDocument.js.map +1 -0
  196. package/sync/createHandler.d.ts +14 -0
  197. package/sync/createHandler.js +63 -0
  198. package/sync/createHandler.js.map +1 -0
  199. package/sync/createSendDataToEventBridgeOnRequestEnd.d.ts +2 -0
  200. package/sync/createSendDataToEventBridgeOnRequestEnd.js +51 -0
  201. package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +1 -0
  202. package/sync/createSyncSystem.d.ts +16 -0
  203. package/sync/createSyncSystem.js +42 -0
  204. package/sync/createSyncSystem.js.map +1 -0
  205. package/sync/filter/createDefaultFilterOutRecordPlugins.d.ts +13 -0
  206. package/sync/filter/createDefaultFilterOutRecordPlugins.js +88 -0
  207. package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -0
  208. package/sync/handler/Handler.d.ts +28 -0
  209. package/sync/handler/Handler.js +93 -0
  210. package/sync/handler/Handler.js.map +1 -0
  211. package/sync/handler/HandlerConverter.d.ts +12 -0
  212. package/sync/handler/HandlerConverter.js +43 -0
  213. package/sync/handler/HandlerConverter.js.map +1 -0
  214. package/sync/handler/converter/BatchGetCommandConverter.d.ts +8 -0
  215. package/sync/handler/converter/BatchGetCommandConverter.js +24 -0
  216. package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -0
  217. package/sync/handler/converter/BatchWriteCommandConverter.d.ts +9 -0
  218. package/sync/handler/converter/BatchWriteCommandConverter.js +24 -0
  219. package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -0
  220. package/sync/handler/converter/DeleteCommandConverter.d.ts +9 -0
  221. package/sync/handler/converter/DeleteCommandConverter.js +24 -0
  222. package/sync/handler/converter/DeleteCommandConverter.js.map +1 -0
  223. package/sync/handler/converter/GetCommandConverter.d.ts +8 -0
  224. package/sync/handler/converter/GetCommandConverter.js +24 -0
  225. package/sync/handler/converter/GetCommandConverter.js.map +1 -0
  226. package/sync/handler/converter/PutCommandConverter.d.ts +9 -0
  227. package/sync/handler/converter/PutCommandConverter.js +24 -0
  228. package/sync/handler/converter/PutCommandConverter.js.map +1 -0
  229. package/sync/handler/converter/QueryCommandConverter.d.ts +8 -0
  230. package/sync/handler/converter/QueryCommandConverter.js +24 -0
  231. package/sync/handler/converter/QueryCommandConverter.js.map +1 -0
  232. package/sync/handler/converter/ScanCommandConverter.d.ts +8 -0
  233. package/sync/handler/converter/ScanCommandConverter.js +24 -0
  234. package/sync/handler/converter/ScanCommandConverter.js.map +1 -0
  235. package/sync/handler/converter/UpdateCommandConverter.d.ts +9 -0
  236. package/sync/handler/converter/UpdateCommandConverter.js +24 -0
  237. package/sync/handler/converter/UpdateCommandConverter.js.map +1 -0
  238. package/sync/handler/converter/commands/BatchWriteCommandValue.d.ts +9 -0
  239. package/sync/handler/converter/commands/BatchWriteCommandValue.js +51 -0
  240. package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -0
  241. package/sync/handler/converter/commands/DeleteCommandValue.d.ts +9 -0
  242. package/sync/handler/converter/commands/DeleteCommandValue.js +27 -0
  243. package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -0
  244. package/sync/handler/converter/commands/NullCommandValue.d.ts +8 -0
  245. package/sync/handler/converter/commands/NullCommandValue.js +18 -0
  246. package/sync/handler/converter/commands/NullCommandValue.js.map +1 -0
  247. package/sync/handler/converter/commands/PutCommandValue.d.ts +9 -0
  248. package/sync/handler/converter/commands/PutCommandValue.js +27 -0
  249. package/sync/handler/converter/commands/PutCommandValue.js.map +1 -0
  250. package/sync/handler/converter/commands/UpdateCommandValue.d.ts +9 -0
  251. package/sync/handler/converter/commands/UpdateCommandValue.js +27 -0
  252. package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -0
  253. package/sync/handler/types.d.ts +18 -0
  254. package/sync/handler/types.js +7 -0
  255. package/sync/handler/types.js.map +1 -0
  256. package/sync/plugins/FilterOutRecordPlugin.d.ts +23 -0
  257. package/sync/plugins/FilterOutRecordPlugin.js +31 -0
  258. package/sync/plugins/FilterOutRecordPlugin.js.map +1 -0
  259. package/sync/requestPlugin.d.ts +9 -0
  260. package/sync/requestPlugin.js +59 -0
  261. package/sync/requestPlugin.js.map +1 -0
  262. package/sync/types.d.ts +64 -0
  263. package/sync/types.js +7 -0
  264. package/sync/types.js.map +1 -0
  265. package/sync/utils/getTableType.d.ts +2 -0
  266. package/sync/utils/getTableType.js +22 -0
  267. package/sync/utils/getTableType.js.map +1 -0
  268. package/sync/utils/manifest.d.ts +17 -0
  269. package/sync/utils/manifest.js +52 -0
  270. package/sync/utils/manifest.js.map +1 -0
  271. package/sync/utils/validateSystemInput.d.ts +11 -0
  272. package/sync/utils/validateSystemInput.js +44 -0
  273. package/sync/utils/validateSystemInput.js.map +1 -0
  274. package/types.d.ts +42 -0
  275. package/types.js +15 -0
  276. package/types.js.map +1 -0
  277. package/utils/createSystemName.d.ts +5 -0
  278. package/utils/createSystemName.js +12 -0
  279. package/utils/createSystemName.js.map +1 -0
  280. package/worker/actions/copyFile/CopyFile.d.ts +63 -0
  281. package/worker/actions/copyFile/CopyFile.js +283 -0
  282. package/worker/actions/copyFile/CopyFile.js.map +1 -0
  283. package/worker/actions/copyFile/copyFileAction.d.ts +6 -0
  284. package/worker/actions/copyFile/copyFileAction.js +47 -0
  285. package/worker/actions/copyFile/copyFileAction.js.map +1 -0
  286. package/worker/actions/copyFile/copyFileSchema.d.ts +47 -0
  287. package/worker/actions/copyFile/copyFileSchema.js +25 -0
  288. package/worker/actions/copyFile/copyFileSchema.js.map +1 -0
  289. package/worker/actions/copyFile/types.d.ts +10 -0
  290. package/worker/actions/copyFile/types.js +7 -0
  291. package/worker/actions/copyFile/types.js.map +1 -0
  292. package/worker/actions/createUser/CreateUser.d.ts +17 -0
  293. package/worker/actions/createUser/CreateUser.js +90 -0
  294. package/worker/actions/createUser/CreateUser.js.map +1 -0
  295. package/worker/actions/createUser/createUserAction.d.ts +6 -0
  296. package/worker/actions/createUser/createUserAction.js +42 -0
  297. package/worker/actions/createUser/createUserAction.js.map +1 -0
  298. package/worker/actions/createUser/createUserSchema.d.ts +47 -0
  299. package/worker/actions/createUser/createUserSchema.js +25 -0
  300. package/worker/actions/createUser/createUserSchema.js.map +1 -0
  301. package/worker/actions/createUser/types.d.ts +10 -0
  302. package/worker/actions/createUser/types.js +7 -0
  303. package/worker/actions/createUser/types.js.map +1 -0
  304. package/worker/actions/deleteFile/DeleteFile.d.ts +24 -0
  305. package/worker/actions/deleteFile/DeleteFile.js +82 -0
  306. package/worker/actions/deleteFile/DeleteFile.js.map +1 -0
  307. package/worker/actions/deleteFile/deleteFileAction.d.ts +6 -0
  308. package/worker/actions/deleteFile/deleteFileAction.js +42 -0
  309. package/worker/actions/deleteFile/deleteFileAction.js.map +1 -0
  310. package/worker/actions/deleteFile/deleteFileSchema.d.ts +47 -0
  311. package/worker/actions/deleteFile/deleteFileSchema.js +25 -0
  312. package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -0
  313. package/worker/actions/deleteFile/types.d.ts +9 -0
  314. package/worker/actions/deleteFile/types.js +7 -0
  315. package/worker/actions/deleteFile/types.js.map +1 -0
  316. package/worker/actions/deleteUser/DeleteUser.d.ts +16 -0
  317. package/worker/actions/deleteUser/DeleteUser.js +67 -0
  318. package/worker/actions/deleteUser/DeleteUser.js.map +1 -0
  319. package/worker/actions/deleteUser/deleteUserAction.d.ts +6 -0
  320. package/worker/actions/deleteUser/deleteUserAction.js +40 -0
  321. package/worker/actions/deleteUser/deleteUserAction.js.map +1 -0
  322. package/worker/actions/deleteUser/deleteUserSchema.d.ts +29 -0
  323. package/worker/actions/deleteUser/deleteUserSchema.js +24 -0
  324. package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -0
  325. package/worker/actions/deleteUser/types.d.ts +9 -0
  326. package/worker/actions/deleteUser/types.js +7 -0
  327. package/worker/actions/deleteUser/types.js.map +1 -0
  328. package/worker/actions/logValidationError.d.ts +2 -0
  329. package/worker/actions/logValidationError.js +17 -0
  330. package/worker/actions/logValidationError.js.map +1 -0
  331. package/worker/actions/removeCognitoUserAttributes.d.ts +6 -0
  332. package/worker/actions/removeCognitoUserAttributes.js +24 -0
  333. package/worker/actions/removeCognitoUserAttributes.js.map +1 -0
  334. package/worker/actions/updateUser/UpdateUser.d.ts +17 -0
  335. package/worker/actions/updateUser/UpdateUser.js +81 -0
  336. package/worker/actions/updateUser/UpdateUser.js.map +1 -0
  337. package/worker/actions/updateUser/types.d.ts +10 -0
  338. package/worker/actions/updateUser/types.js +7 -0
  339. package/worker/actions/updateUser/types.js.map +1 -0
  340. package/worker/actions/updateUser/updateUserAction.d.ts +6 -0
  341. package/worker/actions/updateUser/updateUserAction.js +42 -0
  342. package/worker/actions/updateUser/updateUserAction.js.map +1 -0
  343. package/worker/actions/updateUser/updateUserSchema.d.ts +47 -0
  344. package/worker/actions/updateUser/updateUserSchema.js +25 -0
  345. package/worker/actions/updateUser/updateUserSchema.js.map +1 -0
  346. package/worker/createWorkerHandler.d.ts +11 -0
  347. package/worker/createWorkerHandler.js +48 -0
  348. package/worker/createWorkerHandler.js.map +1 -0
  349. package/worker/handler/WorkerActionHandler.d.ts +10 -0
  350. package/worker/handler/WorkerActionHandler.js +33 -0
  351. package/worker/handler/WorkerActionHandler.js.map +1 -0
  352. package/worker/handler/eventHandler.d.ts +1 -0
  353. package/worker/handler/eventHandler.js +31 -0
  354. package/worker/handler/eventHandler.js.map +1 -0
  355. package/worker/plugins/WorkerActionPlugin.d.ts +10 -0
  356. package/worker/plugins/WorkerActionPlugin.js +28 -0
  357. package/worker/plugins/WorkerActionPlugin.js.map +1 -0
  358. package/worker/types.d.ts +14 -0
  359. package/worker/types.js +7 -0
  360. package/worker/types.js.map +1 -0
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CopyFile = void 0;
7
+ var _index = require("@webiny/aws-sdk/client-s3/index.js");
8
+ class CopyFile {
9
+ constructor(params) {
10
+ this.createS3Client = params.createS3Client;
11
+ this.getLambdaTrigger = params.getLambdaTrigger;
12
+ }
13
+ async handle(params) {
14
+ const {
15
+ key,
16
+ source,
17
+ target
18
+ } = params;
19
+ /**
20
+ * We need to check on the target if the file already exists.
21
+ */
22
+ const targetClient = this.createS3Client({
23
+ region: target.region
24
+ });
25
+ const exists = await this.exists({
26
+ client: targetClient,
27
+ bucket: target.services.s3Id,
28
+ key
29
+ });
30
+ if (exists) {
31
+ // If the file already exists, we can skip copying it.
32
+ return null;
33
+ }
34
+
35
+ /**
36
+ * Then we can safely trigger a Lambda function that will copy the file.
37
+ */
38
+
39
+ return await this.getLambdaTrigger().handle({
40
+ invocationType: "Event",
41
+ payload: {
42
+ action: "copyFile",
43
+ key,
44
+ source: {
45
+ region: source.region,
46
+ bucket: source.services.s3Id
47
+ },
48
+ target: {
49
+ region: target.region,
50
+ bucket: target.services.s3Id
51
+ }
52
+ }
53
+ });
54
+ }
55
+ async exists(params) {
56
+ const {
57
+ client,
58
+ bucket,
59
+ key
60
+ } = params;
61
+ const input = {
62
+ Bucket: bucket,
63
+ Key: key
64
+ };
65
+ const cmd = new _index.HeadObjectCommand(input);
66
+ try {
67
+ const result = await client.send(cmd);
68
+ return result.$metadata?.httpStatusCode === 200 && !!result.ETag;
69
+ } catch (ex) {
70
+ /**
71
+ * TODO What happens if this fails? To we continue with the copy or end the process?
72
+ * Do we log the error?
73
+ * For now, we will assume that file does not exist.
74
+ */
75
+ return false;
76
+ }
77
+ }
78
+ }
79
+ exports.CopyFile = CopyFile;
80
+
81
+ //# sourceMappingURL=CopyFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_index","require","CopyFile","constructor","params","createS3Client","getLambdaTrigger","handle","key","source","target","targetClient","region","exists","client","bucket","services","s3Id","invocationType","payload","action","input","Bucket","Key","cmd","HeadObjectCommand","result","send","$metadata","httpStatusCode","ETag","ex","exports"],"sources":["CopyFile.ts"],"sourcesContent":["import type { HeadObjectCommandInput, S3Client } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { HeadObjectCommand } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type {\n ICopyFile,\n ICopyFileHandleParams,\n ICreateS3ClientCb,\n IGetLambdaTriggerCb\n} from \"./types.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { ICopyFileLambdaPayload } from \"~/types.js\";\n\ninterface IExistsParams {\n client: Pick<S3Client, \"send\">;\n bucket: string;\n key: string;\n}\n\nexport interface ICopyFileParams {\n createS3Client: ICreateS3ClientCb;\n getLambdaTrigger: IGetLambdaTriggerCb<ICopyFileLambdaPayload>;\n}\n\nexport class CopyFile implements ICopyFile {\n private readonly createS3Client: ICreateS3ClientCb;\n private readonly getLambdaTrigger: IGetLambdaTriggerCb<ICopyFileLambdaPayload>;\n\n public constructor(params: ICopyFileParams) {\n this.createS3Client = params.createS3Client;\n this.getLambdaTrigger = params.getLambdaTrigger;\n }\n\n public async handle(params: ICopyFileHandleParams): Promise<InvokeCommandOutput | null> {\n const { key, source, target } = params;\n /**\n * We need to check on the target if the file already exists.\n */\n const targetClient = this.createS3Client({\n region: target.region\n });\n\n const exists = await this.exists({\n client: targetClient,\n bucket: target.services.s3Id,\n key\n });\n\n if (exists) {\n // If the file already exists, we can skip copying it.\n return null;\n }\n\n /**\n * Then we can safely trigger a Lambda function that will copy the file.\n */\n\n return await this.getLambdaTrigger().handle({\n invocationType: \"Event\",\n payload: {\n action: \"copyFile\",\n key,\n source: {\n region: source.region,\n bucket: source.services.s3Id\n },\n target: {\n region: target.region,\n bucket: target.services.s3Id\n }\n }\n });\n }\n\n private async exists(params: IExistsParams): Promise<boolean> {\n const { client, bucket, key } = params;\n const input: HeadObjectCommandInput = {\n Bucket: bucket,\n Key: key\n };\n const cmd = new HeadObjectCommand(input);\n try {\n const result = await client.send(cmd);\n return result.$metadata?.httpStatusCode === 200 && !!result.ETag;\n } catch (ex) {\n /**\n * TODO What happens if this fails? To we continue with the copy or end the process?\n * Do we log the error?\n * For now, we will assume that file does not exist.\n */\n return false;\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAqBO,MAAMC,QAAQ,CAAsB;EAIhCC,WAAWA,CAACC,MAAuB,EAAE;IACxC,IAAI,CAACC,cAAc,GAAGD,MAAM,CAACC,cAAc;IAC3C,IAAI,CAACC,gBAAgB,GAAGF,MAAM,CAACE,gBAAgB;EACnD;EAEA,MAAaC,MAAMA,CAACH,MAA6B,EAAuC;IACpF,MAAM;MAAEI,GAAG;MAAEC,MAAM;MAAEC;IAAO,CAAC,GAAGN,MAAM;IACtC;AACR;AACA;IACQ,MAAMO,YAAY,GAAG,IAAI,CAACN,cAAc,CAAC;MACrCO,MAAM,EAAEF,MAAM,CAACE;IACnB,CAAC,CAAC;IAEF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM,CAAC;MAC7BC,MAAM,EAAEH,YAAY;MACpBI,MAAM,EAAEL,MAAM,CAACM,QAAQ,CAACC,IAAI;MAC5BT;IACJ,CAAC,CAAC;IAEF,IAAIK,MAAM,EAAE;MACR;MACA,OAAO,IAAI;IACf;;IAEA;AACR;AACA;;IAEQ,OAAO,MAAM,IAAI,CAACP,gBAAgB,CAAC,CAAC,CAACC,MAAM,CAAC;MACxCW,cAAc,EAAE,OAAO;MACvBC,OAAO,EAAE;QACLC,MAAM,EAAE,UAAU;QAClBZ,GAAG;QACHC,MAAM,EAAE;UACJG,MAAM,EAAEH,MAAM,CAACG,MAAM;UACrBG,MAAM,EAAEN,MAAM,CAACO,QAAQ,CAACC;QAC5B,CAAC;QACDP,MAAM,EAAE;UACJE,MAAM,EAAEF,MAAM,CAACE,MAAM;UACrBG,MAAM,EAAEL,MAAM,CAACM,QAAQ,CAACC;QAC5B;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAcJ,MAAMA,CAACT,MAAqB,EAAoB;IAC1D,MAAM;MAAEU,MAAM;MAAEC,MAAM;MAAEP;IAAI,CAAC,GAAGJ,MAAM;IACtC,MAAMiB,KAA6B,GAAG;MAClCC,MAAM,EAAEP,MAAM;MACdQ,GAAG,EAAEf;IACT,CAAC;IACD,MAAMgB,GAAG,GAAG,IAAIC,wBAAiB,CAACJ,KAAK,CAAC;IACxC,IAAI;MACA,MAAMK,MAAM,GAAG,MAAMZ,MAAM,CAACa,IAAI,CAACH,GAAG,CAAC;MACrC,OAAOE,MAAM,CAACE,SAAS,EAAEC,cAAc,KAAK,GAAG,IAAI,CAAC,CAACH,MAAM,CAACI,IAAI;IACpE,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT;AACZ;AACA;AACA;AACA;MACY,OAAO,KAAK;IAChB;EACJ;AACJ;AAACC,OAAA,CAAA9B,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import type { ICreateS3ClientCb, IDeleteFile, IDeleteFileHandleParams, IGetLambdaTriggerCb } from "./types.js";
2
+ import type { InvokeCommandOutput } from "@webiny/aws-sdk/client-lambda/index.js";
3
+ import type { IDeleteFileLambdaPayload } from "../../../types.js";
4
+ export interface IDeleteFileParams {
5
+ createS3Client: ICreateS3ClientCb;
6
+ getLambdaTrigger: IGetLambdaTriggerCb<IDeleteFileLambdaPayload>;
7
+ }
8
+ export declare class DeleteFile implements IDeleteFile {
9
+ private readonly createS3Client;
10
+ private readonly getLambdaTrigger;
11
+ constructor(params: IDeleteFileParams);
12
+ handle(params: IDeleteFileHandleParams): Promise<InvokeCommandOutput | null>;
13
+ private exists;
14
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeleteFile = void 0;
7
+ var _index = require("@webiny/aws-sdk/client-s3/index.js");
8
+ class DeleteFile {
9
+ constructor(params) {
10
+ this.createS3Client = params.createS3Client;
11
+ this.getLambdaTrigger = params.getLambdaTrigger;
12
+ }
13
+ async handle(params) {
14
+ const {
15
+ key,
16
+ target
17
+ } = params;
18
+
19
+ /**
20
+ * We need to check on the target if the file already exists.
21
+ */
22
+
23
+ const targetClient = this.createS3Client({
24
+ region: target.region
25
+ });
26
+ const exists = await this.exists({
27
+ client: targetClient,
28
+ bucket: target.services.s3Id,
29
+ key
30
+ });
31
+ if (!exists) {
32
+ // If the file does not exist, we can skip the deletion.
33
+ return null;
34
+ }
35
+
36
+ /**
37
+ * Then we can safely trigger a Lambda function that will delete the file.
38
+ */
39
+ return await this.getLambdaTrigger().handle({
40
+ invocationType: "Event",
41
+ payload: {
42
+ action: "deleteFile",
43
+ key,
44
+ target: {
45
+ region: target.region,
46
+ bucket: target.services.s3Id
47
+ }
48
+ }
49
+ });
50
+ }
51
+ async exists(params) {
52
+ const {
53
+ client,
54
+ bucket,
55
+ key
56
+ } = params;
57
+ const input = {
58
+ Bucket: bucket,
59
+ Key: key
60
+ };
61
+ const cmd = new _index.HeadObjectCommand(input);
62
+ try {
63
+ const result = await client.send(cmd);
64
+ return result.$metadata?.httpStatusCode === 200;
65
+ } catch {
66
+ return false;
67
+ }
68
+ }
69
+ }
70
+ exports.DeleteFile = DeleteFile;
71
+
72
+ //# sourceMappingURL=DeleteFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_index","require","DeleteFile","constructor","params","createS3Client","getLambdaTrigger","handle","key","target","targetClient","region","exists","client","bucket","services","s3Id","invocationType","payload","action","input","Bucket","Key","cmd","HeadObjectCommand","result","send","$metadata","httpStatusCode","exports"],"sources":["DeleteFile.ts"],"sourcesContent":["import type {\n ICreateS3ClientCb,\n IDeleteFile,\n IDeleteFileHandleParams,\n IGetLambdaTriggerCb\n} from \"~/resolver/recordTypes/fileManager/types.js\";\nimport type { HeadObjectCommandInput, S3Client } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { HeadObjectCommand } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { IDeleteFileLambdaPayload } from \"~/types.js\";\n\ninterface IExistsParams {\n client: Pick<S3Client, \"send\">;\n bucket: string;\n key: string;\n}\n\nexport interface IDeleteFileParams {\n createS3Client: ICreateS3ClientCb;\n getLambdaTrigger: IGetLambdaTriggerCb<IDeleteFileLambdaPayload>;\n}\n\nexport class DeleteFile implements IDeleteFile {\n private readonly createS3Client: ICreateS3ClientCb;\n private readonly getLambdaTrigger: IGetLambdaTriggerCb<IDeleteFileLambdaPayload>;\n\n public constructor(params: IDeleteFileParams) {\n this.createS3Client = params.createS3Client;\n this.getLambdaTrigger = params.getLambdaTrigger;\n }\n\n public async handle(params: IDeleteFileHandleParams): Promise<InvokeCommandOutput | null> {\n const { key, target } = params;\n\n /**\n * We need to check on the target if the file already exists.\n */\n\n const targetClient = this.createS3Client({\n region: target.region\n });\n\n const exists = await this.exists({\n client: targetClient,\n bucket: target.services.s3Id,\n key\n });\n if (!exists) {\n // If the file does not exist, we can skip the deletion.\n return null;\n }\n\n /**\n * Then we can safely trigger a Lambda function that will delete the file.\n */\n return await this.getLambdaTrigger().handle({\n invocationType: \"Event\",\n payload: {\n action: \"deleteFile\",\n key,\n target: {\n region: target.region,\n bucket: target.services.s3Id\n }\n }\n });\n }\n\n private async exists(params: IExistsParams): Promise<boolean> {\n const { client, bucket, key } = params;\n const input: HeadObjectCommandInput = {\n Bucket: bucket,\n Key: key\n };\n const cmd = new HeadObjectCommand(input);\n try {\n const result = await client.send(cmd);\n return result.$metadata?.httpStatusCode === 200;\n } catch {\n return false;\n }\n }\n}\n"],"mappings":";;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAeO,MAAMC,UAAU,CAAwB;EAIpCC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACC,cAAc,GAAGD,MAAM,CAACC,cAAc;IAC3C,IAAI,CAACC,gBAAgB,GAAGF,MAAM,CAACE,gBAAgB;EACnD;EAEA,MAAaC,MAAMA,CAACH,MAA+B,EAAuC;IACtF,MAAM;MAAEI,GAAG;MAAEC;IAAO,CAAC,GAAGL,MAAM;;IAE9B;AACR;AACA;;IAEQ,MAAMM,YAAY,GAAG,IAAI,CAACL,cAAc,CAAC;MACrCM,MAAM,EAAEF,MAAM,CAACE;IACnB,CAAC,CAAC;IAEF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM,CAAC;MAC7BC,MAAM,EAAEH,YAAY;MACpBI,MAAM,EAAEL,MAAM,CAACM,QAAQ,CAACC,IAAI;MAC5BR;IACJ,CAAC,CAAC;IACF,IAAI,CAACI,MAAM,EAAE;MACT;MACA,OAAO,IAAI;IACf;;IAEA;AACR;AACA;IACQ,OAAO,MAAM,IAAI,CAACN,gBAAgB,CAAC,CAAC,CAACC,MAAM,CAAC;MACxCU,cAAc,EAAE,OAAO;MACvBC,OAAO,EAAE;QACLC,MAAM,EAAE,YAAY;QACpBX,GAAG;QACHC,MAAM,EAAE;UACJE,MAAM,EAAEF,MAAM,CAACE,MAAM;UACrBG,MAAM,EAAEL,MAAM,CAACM,QAAQ,CAACC;QAC5B;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAcJ,MAAMA,CAACR,MAAqB,EAAoB;IAC1D,MAAM;MAAES,MAAM;MAAEC,MAAM;MAAEN;IAAI,CAAC,GAAGJ,MAAM;IACtC,MAAMgB,KAA6B,GAAG;MAClCC,MAAM,EAAEP,MAAM;MACdQ,GAAG,EAAEd;IACT,CAAC;IACD,MAAMe,GAAG,GAAG,IAAIC,wBAAiB,CAACJ,KAAK,CAAC;IACxC,IAAI;MACA,MAAMK,MAAM,GAAG,MAAMZ,MAAM,CAACa,IAAI,CAACH,GAAG,CAAC;MACrC,OAAOE,MAAM,CAACE,SAAS,EAAEC,cAAc,KAAK,GAAG;IACnD,CAAC,CAAC,MAAM;MACJ,OAAO,KAAK;IAChB;EACJ;AACJ;AAACC,OAAA,CAAA3B,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { ICopyFile, IDeleteFile } from "./types.js";
2
+ export interface ICreateFileManagerPluginsParams {
3
+ copyFile: ICopyFile;
4
+ deleteFile: IDeleteFile;
5
+ }
6
+ export declare const createFileManagerPlugins: (params: ICreateFileManagerPluginsParams) => import("../../plugins/StorerAfterEachPlugin.js").StorerAfterEachPlugin[];
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFileManagerPlugins = void 0;
7
+ var _fileManagerOnPut = require("./fileManagerOnPut.js");
8
+ var _fileManagerOnDelete = require("./fileManagerOnDelete.js");
9
+ const createFileManagerPlugins = params => {
10
+ return [(0, _fileManagerOnPut.createFileManagerOnPutPlugin)(params), (0, _fileManagerOnDelete.createFileManagerOnDeletePlugin)(params)];
11
+ };
12
+ exports.createFileManagerPlugins = createFileManagerPlugins;
13
+
14
+ //# sourceMappingURL=fileManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fileManagerOnPut","require","_fileManagerOnDelete","createFileManagerPlugins","params","createFileManagerOnPutPlugin","createFileManagerOnDeletePlugin","exports"],"sources":["fileManager.ts"],"sourcesContent":["import { createFileManagerOnPutPlugin } from \"./fileManagerOnPut.js\";\nimport { createFileManagerOnDeletePlugin } from \"./fileManagerOnDelete.js\";\nimport type { ICopyFile, IDeleteFile } from \"~/resolver/recordTypes/fileManager/types.js\";\n\nexport interface ICreateFileManagerPluginsParams {\n copyFile: ICopyFile;\n deleteFile: IDeleteFile;\n}\n\nexport const createFileManagerPlugins = (params: ICreateFileManagerPluginsParams) => {\n return [createFileManagerOnPutPlugin(params), createFileManagerOnDeletePlugin(params)];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAQO,MAAME,wBAAwB,GAAIC,MAAuC,IAAK;EACjF,OAAO,CAAC,IAAAC,8CAA4B,EAACD,MAAM,CAAC,EAAE,IAAAE,oDAA+B,EAACF,MAAM,CAAC,CAAC;AAC1F,CAAC;AAACG,OAAA,CAAAJ,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { IDeleteFile } from "./types.js";
2
+ export interface ICreateFileManagerOnDeletePluginParams {
3
+ deleteFile: IDeleteFile;
4
+ }
5
+ export declare const createFileManagerOnDeletePlugin: (params: ICreateFileManagerOnDeletePluginParams) => import("../../plugins/StorerAfterEachPlugin.js").StorerAfterEachPlugin;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFileManagerOnDeletePlugin = void 0;
7
+ var _StorerAfterEachPlugin = require("../../plugins/StorerAfterEachPlugin.js");
8
+ var _shouldBeHandled = require("./shouldBeHandled.js");
9
+ var _utils = require("@webiny/utils");
10
+ const createFileManagerOnDeletePlugin = params => {
11
+ const {
12
+ deleteFile
13
+ } = params;
14
+ return (0, _StorerAfterEachPlugin.createStorerAfterEachPluginWithName)("fileManager.onDelete", {
15
+ canHandle: params => {
16
+ const {
17
+ command
18
+ } = params;
19
+ if (command !== "delete") {
20
+ return false;
21
+ }
22
+ return (0, _shouldBeHandled.shouldBeHandled)(params);
23
+ },
24
+ handle: async params => {
25
+ const {
26
+ item
27
+ } = params;
28
+ /**
29
+ * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.
30
+ */
31
+ // @ts-expect-error
32
+ const key = item.values["text@key"] || item.values["key"];
33
+ try {
34
+ await deleteFile.handle({
35
+ target: params.target,
36
+ source: params.source,
37
+ key
38
+ });
39
+ } catch (ex) {
40
+ console.error("Error while handling file manager onDelete plugin.");
41
+ console.log((0, _utils.convertException)(ex));
42
+ }
43
+ }
44
+ });
45
+ };
46
+ exports.createFileManagerOnDeletePlugin = createFileManagerOnDeletePlugin;
47
+
48
+ //# sourceMappingURL=fileManagerOnDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StorerAfterEachPlugin","require","_shouldBeHandled","_utils","createFileManagerOnDeletePlugin","params","deleteFile","createStorerAfterEachPluginWithName","canHandle","command","shouldBeHandled","handle","item","key","values","target","source","ex","console","error","log","convertException","exports"],"sources":["fileManagerOnDelete.ts"],"sourcesContent":["import { createStorerAfterEachPluginWithName } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\nimport { shouldBeHandled } from \"./shouldBeHandled.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { IDeleteFile } from \"./types.js\";\n\nexport interface ICreateFileManagerOnDeletePluginParams {\n deleteFile: IDeleteFile;\n}\n\nexport const createFileManagerOnDeletePlugin = (params: ICreateFileManagerOnDeletePluginParams) => {\n const { deleteFile } = params;\n\n return createStorerAfterEachPluginWithName(\"fileManager.onDelete\", {\n canHandle: params => {\n const { command } = params;\n if (command !== \"delete\") {\n return false;\n }\n return shouldBeHandled(params);\n },\n handle: async params => {\n const { item } = params;\n /**\n * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.\n */\n // @ts-expect-error\n const key = (item.values[\"text@key\"] || item.values[\"key\"]) as string;\n try {\n await deleteFile.handle({\n target: params.target,\n source: params.source,\n key\n });\n } catch (ex) {\n console.error(\"Error while handling file manager onDelete plugin.\");\n console.log(convertException(ex));\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAOO,MAAMG,+BAA+B,GAAIC,MAA8C,IAAK;EAC/F,MAAM;IAAEC;EAAW,CAAC,GAAGD,MAAM;EAE7B,OAAO,IAAAE,0DAAmC,EAAC,sBAAsB,EAAE;IAC/DC,SAAS,EAAEH,MAAM,IAAI;MACjB,MAAM;QAAEI;MAAQ,CAAC,GAAGJ,MAAM;MAC1B,IAAII,OAAO,KAAK,QAAQ,EAAE;QACtB,OAAO,KAAK;MAChB;MACA,OAAO,IAAAC,gCAAe,EAACL,MAAM,CAAC;IAClC,CAAC;IACDM,MAAM,EAAE,MAAMN,MAAM,IAAI;MACpB,MAAM;QAAEO;MAAK,CAAC,GAAGP,MAAM;MACvB;AACZ;AACA;MACY;MACA,MAAMQ,GAAG,GAAID,IAAI,CAACE,MAAM,CAAC,UAAU,CAAC,IAAIF,IAAI,CAACE,MAAM,CAAC,KAAK,CAAY;MACrE,IAAI;QACA,MAAMR,UAAU,CAACK,MAAM,CAAC;UACpBI,MAAM,EAAEV,MAAM,CAACU,MAAM;UACrBC,MAAM,EAAEX,MAAM,CAACW,MAAM;UACrBH;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOI,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CAAC,oDAAoD,CAAC;QACnED,OAAO,CAACE,GAAG,CAAC,IAAAC,uBAAgB,EAACJ,EAAE,CAAC,CAAC;MACrC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAlB,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { ICopyFile } from "./types.js";
2
+ export interface ICreateFileManagerOnPutPluginParams {
3
+ copyFile: ICopyFile;
4
+ }
5
+ export declare const createFileManagerOnPutPlugin: (params: ICreateFileManagerOnPutPluginParams) => import("../../plugins/StorerAfterEachPlugin.js").StorerAfterEachPlugin;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFileManagerOnPutPlugin = void 0;
7
+ var _StorerAfterEachPlugin = require("../../plugins/StorerAfterEachPlugin.js");
8
+ var _shouldBeHandled = require("./shouldBeHandled.js");
9
+ var _utils = require("@webiny/utils");
10
+ const createFileManagerOnPutPlugin = params => {
11
+ const {
12
+ copyFile
13
+ } = params;
14
+ return (0, _StorerAfterEachPlugin.createStorerAfterEachPluginWithName)("fileManager.onPut", {
15
+ canHandle: params => {
16
+ const {
17
+ command
18
+ } = params;
19
+ if (command !== "put") {
20
+ return false;
21
+ }
22
+ return (0, _shouldBeHandled.shouldBeHandled)(params);
23
+ },
24
+ handle: async params => {
25
+ const {
26
+ item
27
+ } = params;
28
+ /**
29
+ * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.
30
+ */
31
+ // @ts-expect-error
32
+ const key = item.values["text@key"] || item.values["key"];
33
+ try {
34
+ await copyFile.handle({
35
+ target: params.target,
36
+ source: params.source,
37
+ key
38
+ });
39
+ } catch (ex) {
40
+ console.error("Error while handling file manager onPut plugin.");
41
+ console.log((0, _utils.convertException)(ex));
42
+ }
43
+ }
44
+ });
45
+ };
46
+ exports.createFileManagerOnPutPlugin = createFileManagerOnPutPlugin;
47
+
48
+ //# sourceMappingURL=fileManagerOnPut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StorerAfterEachPlugin","require","_shouldBeHandled","_utils","createFileManagerOnPutPlugin","params","copyFile","createStorerAfterEachPluginWithName","canHandle","command","shouldBeHandled","handle","item","key","values","target","source","ex","console","error","log","convertException","exports"],"sources":["fileManagerOnPut.ts"],"sourcesContent":["import { createStorerAfterEachPluginWithName } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\nimport { shouldBeHandled } from \"./shouldBeHandled.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { ICopyFile } from \"./types.js\";\n\nexport interface ICreateFileManagerOnPutPluginParams {\n copyFile: ICopyFile;\n}\n\nexport const createFileManagerOnPutPlugin = (params: ICreateFileManagerOnPutPluginParams) => {\n const { copyFile } = params;\n\n return createStorerAfterEachPluginWithName(\"fileManager.onPut\", {\n canHandle: params => {\n const { command } = params;\n if (command !== \"put\") {\n return false;\n }\n return shouldBeHandled(params);\n },\n handle: async params => {\n const { item } = params;\n /**\n * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.\n */\n // @ts-expect-error\n const key = (item.values[\"text@key\"] || item.values[\"key\"]) as string;\n try {\n await copyFile.handle({\n target: params.target,\n source: params.source,\n key\n });\n } catch (ex) {\n console.error(\"Error while handling file manager onPut plugin.\");\n console.log(convertException(ex));\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAOO,MAAMG,4BAA4B,GAAIC,MAA2C,IAAK;EACzF,MAAM;IAAEC;EAAS,CAAC,GAAGD,MAAM;EAE3B,OAAO,IAAAE,0DAAmC,EAAC,mBAAmB,EAAE;IAC5DC,SAAS,EAAEH,MAAM,IAAI;MACjB,MAAM;QAAEI;MAAQ,CAAC,GAAGJ,MAAM;MAC1B,IAAII,OAAO,KAAK,KAAK,EAAE;QACnB,OAAO,KAAK;MAChB;MACA,OAAO,IAAAC,gCAAe,EAACL,MAAM,CAAC;IAClC,CAAC;IACDM,MAAM,EAAE,MAAMN,MAAM,IAAI;MACpB,MAAM;QAAEO;MAAK,CAAC,GAAGP,MAAM;MACvB;AACZ;AACA;MACY;MACA,MAAMQ,GAAG,GAAID,IAAI,CAACE,MAAM,CAAC,UAAU,CAAC,IAAIF,IAAI,CAACE,MAAM,CAAC,KAAK,CAAY;MACrE,IAAI;QACA,MAAMR,QAAQ,CAACK,MAAM,CAAC;UAClBI,MAAM,EAAEV,MAAM,CAACU,MAAM;UACrBC,MAAM,EAAEX,MAAM,CAACW,MAAM;UACrBH;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOI,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CAAC,iDAAiD,CAAC;QAChED,OAAO,CAACE,GAAG,CAAC,IAAAC,uBAAgB,EAACJ,EAAE,CAAC,CAAC;MACrC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAlB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { IStorerAfterEachPluginCanHandleParams } from "../../plugins/StorerAfterEachPlugin.js";
2
+ export declare const shouldBeHandled: (params: IStorerAfterEachPluginCanHandleParams) => boolean;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shouldBeHandled = void 0;
7
+ const shouldBeHandled = params => {
8
+ const {
9
+ item,
10
+ table
11
+ } = params;
12
+ if (table.type !== "regular") {
13
+ return false;
14
+ } else if (item.SK !== "L") {
15
+ return false;
16
+ }
17
+ // TODO use constant from fileManager
18
+ else if (item.modelId !== "fmFile") {
19
+ return false;
20
+ } else if (!item.values) {
21
+ return false;
22
+ }
23
+
24
+ // @ts-expect-error
25
+ const key = item.values["text@key"] || item.values["key"];
26
+ if (!key) {
27
+ return false;
28
+ }
29
+ /**
30
+ * We can check length for being more than 2 characters,
31
+ * because we know that the key is a string.
32
+ */
33
+ return typeof key === "string" && key.length > 2;
34
+ };
35
+ exports.shouldBeHandled = shouldBeHandled;
36
+
37
+ //# sourceMappingURL=shouldBeHandled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["shouldBeHandled","params","item","table","type","SK","modelId","values","key","length","exports"],"sources":["shouldBeHandled.ts"],"sourcesContent":["import type { IStorerAfterEachPluginCanHandleParams } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\n\nexport const shouldBeHandled = (params: IStorerAfterEachPluginCanHandleParams): boolean => {\n const { item, table } = params;\n if (table.type !== \"regular\") {\n return false;\n } else if (item.SK !== \"L\") {\n return false;\n }\n // TODO use constant from fileManager\n else if (item.modelId !== \"fmFile\") {\n return false;\n } else if (!item.values) {\n return false;\n }\n\n // @ts-expect-error\n const key = item.values[\"text@key\"] || item.values[\"key\"];\n if (!key) {\n return false;\n }\n /**\n * We can check length for being more than 2 characters,\n * because we know that the key is a string.\n */\n return typeof key === \"string\" && key.length > 2;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,eAAe,GAAIC,MAA6C,IAAc;EACvF,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGF,MAAM;EAC9B,IAAIE,KAAK,CAACC,IAAI,KAAK,SAAS,EAAE;IAC1B,OAAO,KAAK;EAChB,CAAC,MAAM,IAAIF,IAAI,CAACG,EAAE,KAAK,GAAG,EAAE;IACxB,OAAO,KAAK;EAChB;EACA;EAAA,KACK,IAAIH,IAAI,CAACI,OAAO,KAAK,QAAQ,EAAE;IAChC,OAAO,KAAK;EAChB,CAAC,MAAM,IAAI,CAACJ,IAAI,CAACK,MAAM,EAAE;IACrB,OAAO,KAAK;EAChB;;EAEA;EACA,MAAMC,GAAG,GAAGN,IAAI,CAACK,MAAM,CAAC,UAAU,CAAC,IAAIL,IAAI,CAACK,MAAM,CAAC,KAAK,CAAC;EACzD,IAAI,CAACC,GAAG,EAAE;IACN,OAAO,KAAK;EAChB;EACA;AACJ;AACA;AACA;EACI,OAAO,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACC,MAAM,GAAG,CAAC;AACpD,CAAC;AAACC,OAAA,CAAAV,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import type { LambdaTrigger } from "../../lambda/LambdaTrigger.js";
2
+ import type { S3Client, S3ClientConfig } from "@webiny/aws-sdk/client-s3/index.js";
3
+ import type { IDeployment } from "../../deployment/types.js";
4
+ import type { InvokeCommandOutput } from "@webiny/aws-sdk/client-lambda/index.js";
5
+ export interface IGetLambdaTriggerCb<T> {
6
+ (): LambdaTrigger<T>;
7
+ }
8
+ export interface ICreateS3ClientCb {
9
+ (params: S3ClientConfig): Pick<S3Client, "send">;
10
+ }
11
+ export interface ICopyFileHandleParams {
12
+ key: string;
13
+ source: IDeployment;
14
+ target: IDeployment;
15
+ }
16
+ export interface ICopyFile {
17
+ handle(params: ICopyFileHandleParams): Promise<InvokeCommandOutput | null>;
18
+ }
19
+ export interface IDeleteFileHandleParams {
20
+ key: string;
21
+ source: IDeployment;
22
+ target: IDeployment;
23
+ }
24
+ export interface IDeleteFile {
25
+ handle(params: IDeleteFileHandleParams): Promise<InvokeCommandOutput | null>;
26
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\n\nexport interface IGetLambdaTriggerCb<T> {\n (): LambdaTrigger<T>;\n}\n\nexport interface ICreateS3ClientCb {\n (params: S3ClientConfig): Pick<S3Client, \"send\">;\n}\n\nexport interface ICopyFileHandleParams {\n key: string;\n source: IDeployment;\n target: IDeployment;\n}\n\nexport interface ICopyFile {\n handle(params: ICopyFileHandleParams): Promise<InvokeCommandOutput | null>;\n}\n\nexport interface IDeleteFileHandleParams {\n key: string;\n source: IDeployment;\n target: IDeployment;\n}\n\nexport interface IDeleteFile {\n handle(params: IDeleteFileHandleParams): Promise<InvokeCommandOutput | null>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import type { ICopyUser, ICopyUserHandleParams, ICreateCognitoIdentityProviderClientCb } from "./types";
2
+ import type { LambdaTrigger } from "../../lambda/LambdaTrigger.js";
3
+ import type { InvokeCommandOutput } from "@webiny/aws-sdk/client-lambda/index.js";
4
+ import type { ICopyUserLambdaPayload } from "../../../types.js";
5
+ export interface IGetLambdaTriggerCb {
6
+ (): LambdaTrigger<ICopyUserLambdaPayload>;
7
+ }
8
+ export interface ICopyUserParams {
9
+ createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;
10
+ getLambdaTrigger: IGetLambdaTriggerCb;
11
+ }
12
+ export declare class CopyUser implements ICopyUser {
13
+ private readonly createCognitoIdentityProviderClient;
14
+ private readonly getLambdaTrigger;
15
+ constructor(params: ICopyUserParams);
16
+ handle(params: ICopyUserHandleParams): Promise<InvokeCommandOutput | null>;
17
+ private userExists;
18
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CopyUser = void 0;
7
+ var _clientCognitoIdentityProvider = require("@webiny/aws-sdk/client-cognito-identity-provider");
8
+ class CopyUser {
9
+ constructor(params) {
10
+ this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;
11
+ this.getLambdaTrigger = params.getLambdaTrigger;
12
+ }
13
+ async handle(params) {
14
+ const {
15
+ username,
16
+ target,
17
+ source
18
+ } = params;
19
+ const exists = await this.userExists({
20
+ username,
21
+ userPoolId: target.services.cognitoUserPoolId,
22
+ region: target.region
23
+ });
24
+ return await this.getLambdaTrigger().handle({
25
+ invocationType: "Event",
26
+ payload: {
27
+ /**
28
+ * We need to be able to create or update a user, depending on whether it already exists in the target user pool.
29
+ */
30
+ action: exists ? "updateUser" : "createUser",
31
+ username,
32
+ source: {
33
+ region: source.region,
34
+ userPoolId: source.services.cognitoUserPoolId
35
+ },
36
+ target: {
37
+ region: target.region,
38
+ userPoolId: target.services.cognitoUserPoolId
39
+ }
40
+ }
41
+ });
42
+ }
43
+ async userExists(params) {
44
+ const {
45
+ userPoolId,
46
+ username,
47
+ region
48
+ } = params;
49
+ const provider = this.createCognitoIdentityProviderClient({
50
+ region
51
+ });
52
+ const input = {
53
+ UserPoolId: userPoolId,
54
+ Username: username
55
+ };
56
+ const cmd = new _clientCognitoIdentityProvider.AdminGetUserCommand(input);
57
+ try {
58
+ const result = await provider.send(cmd);
59
+ return result.$metadata?.httpStatusCode === 200;
60
+ } catch {
61
+ return false;
62
+ }
63
+ }
64
+ }
65
+ exports.CopyUser = CopyUser;
66
+
67
+ //# sourceMappingURL=CopyUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clientCognitoIdentityProvider","require","CopyUser","constructor","params","createCognitoIdentityProviderClient","getLambdaTrigger","handle","username","target","source","exists","userExists","userPoolId","services","cognitoUserPoolId","region","invocationType","payload","action","provider","input","UserPoolId","Username","cmd","AdminGetUserCommand","result","send","$metadata","httpStatusCode","exports"],"sources":["CopyUser.ts"],"sourcesContent":["import type {\n ICopyUser,\n ICopyUserHandleParams,\n ICreateCognitoIdentityProviderClientCb\n} from \"./types\";\nimport type { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { AdminGetUserCommandInput } from \"@webiny/aws-sdk/client-cognito-identity-provider\";\nimport { AdminGetUserCommand } from \"@webiny/aws-sdk/client-cognito-identity-provider\";\nimport type { ICopyUserLambdaPayload } from \"~/types.js\";\n\ninterface IGetUserParams {\n username: string;\n userPoolId: string;\n region: string;\n}\n\nexport interface IGetLambdaTriggerCb {\n (): LambdaTrigger<ICopyUserLambdaPayload>;\n}\n\nexport interface ICopyUserParams {\n createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n getLambdaTrigger: IGetLambdaTriggerCb;\n}\n\nexport class CopyUser implements ICopyUser {\n private readonly createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n private readonly getLambdaTrigger: IGetLambdaTriggerCb;\n\n public constructor(params: ICopyUserParams) {\n this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;\n this.getLambdaTrigger = params.getLambdaTrigger;\n }\n\n public async handle(params: ICopyUserHandleParams): Promise<InvokeCommandOutput | null> {\n const { username, target, source } = params;\n\n const exists = await this.userExists({\n username,\n userPoolId: target.services.cognitoUserPoolId,\n region: target.region\n });\n\n return await this.getLambdaTrigger().handle({\n invocationType: \"Event\",\n payload: {\n /**\n * We need to be able to create or update a user, depending on whether it already exists in the target user pool.\n */\n action: exists ? \"updateUser\" : \"createUser\",\n username,\n source: {\n region: source.region,\n userPoolId: source.services.cognitoUserPoolId\n },\n target: {\n region: target.region,\n userPoolId: target.services.cognitoUserPoolId\n }\n }\n });\n }\n\n private async userExists(params: IGetUserParams): Promise<boolean> {\n const { userPoolId, username, region } = params;\n\n const provider = this.createCognitoIdentityProviderClient({\n region\n });\n\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n const cmd = new AdminGetUserCommand(input);\n try {\n const result = await provider.send(cmd);\n return result.$metadata?.httpStatusCode === 200;\n } catch {\n return false;\n }\n }\n}\n"],"mappings":";;;;;;AAQA,IAAAA,8BAAA,GAAAC,OAAA;AAkBO,MAAMC,QAAQ,CAAsB;EAIhCC,WAAWA,CAACC,MAAuB,EAAE;IACxC,IAAI,CAACC,mCAAmC,GAAGD,MAAM,CAACC,mCAAmC;IACrF,IAAI,CAACC,gBAAgB,GAAGF,MAAM,CAACE,gBAAgB;EACnD;EAEA,MAAaC,MAAMA,CAACH,MAA6B,EAAuC;IACpF,MAAM;MAAEI,QAAQ;MAAEC,MAAM;MAAEC;IAAO,CAAC,GAAGN,MAAM;IAE3C,MAAMO,MAAM,GAAG,MAAM,IAAI,CAACC,UAAU,CAAC;MACjCJ,QAAQ;MACRK,UAAU,EAAEJ,MAAM,CAACK,QAAQ,CAACC,iBAAiB;MAC7CC,MAAM,EAAEP,MAAM,CAACO;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM,IAAI,CAACV,gBAAgB,CAAC,CAAC,CAACC,MAAM,CAAC;MACxCU,cAAc,EAAE,OAAO;MACvBC,OAAO,EAAE;QACL;AAChB;AACA;QACgBC,MAAM,EAAER,MAAM,GAAG,YAAY,GAAG,YAAY;QAC5CH,QAAQ;QACRE,MAAM,EAAE;UACJM,MAAM,EAAEN,MAAM,CAACM,MAAM;UACrBH,UAAU,EAAEH,MAAM,CAACI,QAAQ,CAACC;QAChC,CAAC;QACDN,MAAM,EAAE;UACJO,MAAM,EAAEP,MAAM,CAACO,MAAM;UACrBH,UAAU,EAAEJ,MAAM,CAACK,QAAQ,CAACC;QAChC;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAcH,UAAUA,CAACR,MAAsB,EAAoB;IAC/D,MAAM;MAAES,UAAU;MAAEL,QAAQ;MAAEQ;IAAO,CAAC,GAAGZ,MAAM;IAE/C,MAAMgB,QAAQ,GAAG,IAAI,CAACf,mCAAmC,CAAC;MACtDW;IACJ,CAAC,CAAC;IAEF,MAAMK,KAA+B,GAAG;MACpCC,UAAU,EAAET,UAAU;MACtBU,QAAQ,EAAEf;IACd,CAAC;IACD,MAAMgB,GAAG,GAAG,IAAIC,kDAAmB,CAACJ,KAAK,CAAC;IAC1C,IAAI;MACA,MAAMK,MAAM,GAAG,MAAMN,QAAQ,CAACO,IAAI,CAACH,GAAG,CAAC;MACvC,OAAOE,MAAM,CAACE,SAAS,EAAEC,cAAc,KAAK,GAAG;IACnD,CAAC,CAAC,MAAM;MACJ,OAAO,KAAK;IAChB;EACJ;AACJ;AAACC,OAAA,CAAA5B,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import type { ICreateCognitoIdentityProviderClientCb, IDeleteUser, IDeleteUserHandleParams } from "./types";
2
+ import type { LambdaTrigger } from "../../lambda/LambdaTrigger.js";
3
+ import type { InvokeCommandOutput } from "@webiny/aws-sdk/client-lambda/index.js";
4
+ import type { IDeleteUserLambdaPayload } from "../../../types.js";
5
+ export interface IGetLambdaTriggerCb {
6
+ (): LambdaTrigger<IDeleteUserLambdaPayload>;
7
+ }
8
+ export interface IDeleteUserParams {
9
+ createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;
10
+ getLambdaTrigger: IGetLambdaTriggerCb;
11
+ }
12
+ export declare class DeleteUser implements IDeleteUser {
13
+ private readonly createCognitoIdentityProviderClient;
14
+ private readonly getLambdaTrigger;
15
+ constructor(params: IDeleteUserParams);
16
+ handle(params: IDeleteUserHandleParams): Promise<InvokeCommandOutput | null>;
17
+ private userExists;
18
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeleteUser = void 0;
7
+ var _clientCognitoIdentityProvider = require("@webiny/aws-sdk/client-cognito-identity-provider");
8
+ class DeleteUser {
9
+ constructor(params) {
10
+ this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;
11
+ this.getLambdaTrigger = params.getLambdaTrigger;
12
+ }
13
+ async handle(params) {
14
+ const {
15
+ username,
16
+ target
17
+ } = params;
18
+ const exists = await this.userExists({
19
+ username,
20
+ userPoolId: target.services.cognitoUserPoolId,
21
+ region: target.region
22
+ });
23
+ if (!exists) {
24
+ return null;
25
+ }
26
+ return await this.getLambdaTrigger().handle({
27
+ invocationType: "Event",
28
+ payload: {
29
+ /**
30
+ * We need to be able to create or update a user, depending on whether it already exists in the target user pool.
31
+ */
32
+ action: "deleteUser",
33
+ username,
34
+ target: {
35
+ region: target.region,
36
+ userPoolId: target.services.cognitoUserPoolId
37
+ }
38
+ }
39
+ });
40
+ }
41
+ async userExists(params) {
42
+ const {
43
+ userPoolId,
44
+ username,
45
+ region
46
+ } = params;
47
+ const provider = this.createCognitoIdentityProviderClient({
48
+ region
49
+ });
50
+ const input = {
51
+ UserPoolId: userPoolId,
52
+ Username: username
53
+ };
54
+ const cmd = new _clientCognitoIdentityProvider.AdminGetUserCommand(input);
55
+ try {
56
+ const result = await provider.send(cmd);
57
+ return result.$metadata?.httpStatusCode === 200;
58
+ } catch {
59
+ return false;
60
+ }
61
+ }
62
+ }
63
+ exports.DeleteUser = DeleteUser;
64
+
65
+ //# sourceMappingURL=DeleteUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clientCognitoIdentityProvider","require","DeleteUser","constructor","params","createCognitoIdentityProviderClient","getLambdaTrigger","handle","username","target","exists","userExists","userPoolId","services","cognitoUserPoolId","region","invocationType","payload","action","provider","input","UserPoolId","Username","cmd","AdminGetUserCommand","result","send","$metadata","httpStatusCode","exports"],"sources":["DeleteUser.ts"],"sourcesContent":["import type {\n ICreateCognitoIdentityProviderClientCb,\n IDeleteUser,\n IDeleteUserHandleParams\n} from \"./types\";\nimport type { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { AdminGetUserCommandInput } from \"@webiny/aws-sdk/client-cognito-identity-provider\";\nimport { AdminGetUserCommand } from \"@webiny/aws-sdk/client-cognito-identity-provider\";\nimport type { IDeleteUserLambdaPayload } from \"~/types.js\";\n\ninterface IGetUserParams {\n username: string;\n userPoolId: string;\n region: string;\n}\n\nexport interface IGetLambdaTriggerCb {\n (): LambdaTrigger<IDeleteUserLambdaPayload>;\n}\n\nexport interface IDeleteUserParams {\n createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n getLambdaTrigger: IGetLambdaTriggerCb;\n}\n\nexport class DeleteUser implements IDeleteUser {\n private readonly createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n private readonly getLambdaTrigger: IGetLambdaTriggerCb;\n\n public constructor(params: IDeleteUserParams) {\n this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;\n this.getLambdaTrigger = params.getLambdaTrigger;\n }\n\n public async handle(params: IDeleteUserHandleParams): Promise<InvokeCommandOutput | null> {\n const { username, target } = params;\n\n const exists = await this.userExists({\n username,\n userPoolId: target.services.cognitoUserPoolId,\n region: target.region\n });\n if (!exists) {\n return null;\n }\n\n return await this.getLambdaTrigger().handle({\n invocationType: \"Event\",\n payload: {\n /**\n * We need to be able to create or update a user, depending on whether it already exists in the target user pool.\n */\n action: \"deleteUser\",\n username,\n target: {\n region: target.region,\n userPoolId: target.services.cognitoUserPoolId\n }\n }\n });\n }\n\n private async userExists(params: IGetUserParams): Promise<boolean> {\n const { userPoolId, username, region } = params;\n\n const provider = this.createCognitoIdentityProviderClient({\n region\n });\n\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n const cmd = new AdminGetUserCommand(input);\n try {\n const result = await provider.send(cmd);\n return result.$metadata?.httpStatusCode === 200;\n } catch {\n return false;\n }\n }\n}\n"],"mappings":";;;;;;AAQA,IAAAA,8BAAA,GAAAC,OAAA;AAkBO,MAAMC,UAAU,CAAwB;EAIpCC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACC,mCAAmC,GAAGD,MAAM,CAACC,mCAAmC;IACrF,IAAI,CAACC,gBAAgB,GAAGF,MAAM,CAACE,gBAAgB;EACnD;EAEA,MAAaC,MAAMA,CAACH,MAA+B,EAAuC;IACtF,MAAM;MAAEI,QAAQ;MAAEC;IAAO,CAAC,GAAGL,MAAM;IAEnC,MAAMM,MAAM,GAAG,MAAM,IAAI,CAACC,UAAU,CAAC;MACjCH,QAAQ;MACRI,UAAU,EAAEH,MAAM,CAACI,QAAQ,CAACC,iBAAiB;MAC7CC,MAAM,EAAEN,MAAM,CAACM;IACnB,CAAC,CAAC;IACF,IAAI,CAACL,MAAM,EAAE;MACT,OAAO,IAAI;IACf;IAEA,OAAO,MAAM,IAAI,CAACJ,gBAAgB,CAAC,CAAC,CAACC,MAAM,CAAC;MACxCS,cAAc,EAAE,OAAO;MACvBC,OAAO,EAAE;QACL;AAChB;AACA;QACgBC,MAAM,EAAE,YAAY;QACpBV,QAAQ;QACRC,MAAM,EAAE;UACJM,MAAM,EAAEN,MAAM,CAACM,MAAM;UACrBH,UAAU,EAAEH,MAAM,CAACI,QAAQ,CAACC;QAChC;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAcH,UAAUA,CAACP,MAAsB,EAAoB;IAC/D,MAAM;MAAEQ,UAAU;MAAEJ,QAAQ;MAAEO;IAAO,CAAC,GAAGX,MAAM;IAE/C,MAAMe,QAAQ,GAAG,IAAI,CAACd,mCAAmC,CAAC;MACtDU;IACJ,CAAC,CAAC;IAEF,MAAMK,KAA+B,GAAG;MACpCC,UAAU,EAAET,UAAU;MACtBU,QAAQ,EAAEd;IACd,CAAC;IACD,MAAMe,GAAG,GAAG,IAAIC,kDAAmB,CAACJ,KAAK,CAAC;IAC1C,IAAI;MACA,MAAMK,MAAM,GAAG,MAAMN,QAAQ,CAACO,IAAI,CAACH,GAAG,CAAC;MACvC,OAAOE,MAAM,CAACE,SAAS,EAAEC,cAAc,KAAK,GAAG;IACnD,CAAC,CAAC,MAAM;MACJ,OAAO,KAAK;IAChB;EACJ;AACJ;AAACC,OAAA,CAAA3B,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { IStorerAfterEachPluginCanHandleParams } from "../../plugins/StorerAfterEachPlugin.js";
2
+ export declare const shouldBeHandled: (params: IStorerAfterEachPluginCanHandleParams) => boolean;