@webiny/api-sync-system 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7c2def32a7

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 (285) hide show
  1. package/constants.js +2 -1
  2. package/constants.js.map +1 -1
  3. package/index.d.ts +11 -3
  4. package/index.js +8 -5
  5. package/package.json +30 -22
  6. package/resolver/SyncResolverConfig.d.ts +17 -0
  7. package/resolver/SyncResolverConfig.js +5 -0
  8. package/resolver/SyncResolverConfig.js.map +1 -0
  9. package/resolver/SyncResolverLambdaHandler.d.ts +14 -0
  10. package/resolver/SyncResolverLambdaHandler.js +159 -0
  11. package/resolver/SyncResolverLambdaHandler.js.map +1 -0
  12. package/resolver/app/RecordHandler.js +83 -105
  13. package/resolver/app/RecordHandler.js.map +1 -1
  14. package/resolver/app/RecordsValidation.js +11 -14
  15. package/resolver/app/RecordsValidation.js.map +1 -1
  16. package/resolver/app/ResolverApplication.js +24 -31
  17. package/resolver/app/ResolverApplication.js.map +1 -1
  18. package/resolver/app/abstractions/RecordHandler.js +0 -3
  19. package/resolver/app/abstractions/RecordsValidation.js +0 -3
  20. package/resolver/app/abstractions/ResolverApplication.js +0 -3
  21. package/resolver/app/abstractions/ResolverRecord.js +0 -3
  22. package/resolver/app/bundler/BaseBundle.js +17 -16
  23. package/resolver/app/bundler/BaseBundle.js.map +1 -1
  24. package/resolver/app/bundler/Bundler.js +13 -18
  25. package/resolver/app/bundler/Bundler.js.map +1 -1
  26. package/resolver/app/bundler/Bundles.js +21 -26
  27. package/resolver/app/bundler/Bundles.js.map +1 -1
  28. package/resolver/app/bundler/CommandBundle.js +7 -16
  29. package/resolver/app/bundler/CommandBundle.js.map +1 -1
  30. package/resolver/app/bundler/TableBundle.js +6 -13
  31. package/resolver/app/bundler/TableBundle.js.map +1 -1
  32. package/resolver/app/bundler/types.js +0 -3
  33. package/resolver/app/commandHandler/DeleteCommandHandler.js +22 -29
  34. package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
  35. package/resolver/app/commandHandler/PutCommandHandler.js +16 -22
  36. package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
  37. package/resolver/app/commandHandler/delete.js +11 -12
  38. package/resolver/app/commandHandler/delete.js.map +1 -1
  39. package/resolver/app/commandHandler/put.js +11 -12
  40. package/resolver/app/commandHandler/put.js.map +1 -1
  41. package/resolver/app/data/SourceDataContainer.js +28 -30
  42. package/resolver/app/data/SourceDataContainer.js.map +1 -1
  43. package/resolver/app/data/types.js +0 -3
  44. package/resolver/app/fetcher/Fetcher.js +84 -109
  45. package/resolver/app/fetcher/Fetcher.js.map +1 -1
  46. package/resolver/app/fetcher/types.js +0 -3
  47. package/resolver/app/ingestor/Ingestor.js +27 -32
  48. package/resolver/app/ingestor/Ingestor.js.map +1 -1
  49. package/resolver/app/ingestor/IngestorResult.js +28 -32
  50. package/resolver/app/ingestor/IngestorResult.js.map +1 -1
  51. package/resolver/app/ingestor/types.js +0 -3
  52. package/resolver/app/storer/Storer.js +71 -85
  53. package/resolver/app/storer/Storer.js.map +1 -1
  54. package/resolver/app/storer/types.js +0 -3
  55. package/resolver/app/transform/TransformHandler.js +45 -56
  56. package/resolver/app/transform/TransformHandler.js.map +1 -1
  57. package/resolver/app/transform/middleware.js +13 -20
  58. package/resolver/app/transform/middleware.js.map +1 -1
  59. package/resolver/app/utils/Retry.js +21 -24
  60. package/resolver/app/utils/Retry.js.map +1 -1
  61. package/resolver/app/utils/sleep.js +4 -5
  62. package/resolver/app/utils/sleep.js.map +1 -1
  63. package/resolver/app/validation/body.d.ts +25 -124
  64. package/resolver/app/validation/body.js +26 -31
  65. package/resolver/app/validation/body.js.map +1 -1
  66. package/resolver/app/validation/createJsonTransform.d.ts +1 -1
  67. package/resolver/app/validation/createJsonTransform.js +12 -13
  68. package/resolver/app/validation/createJsonTransform.js.map +1 -1
  69. package/resolver/app/validation/detail.d.ts +18 -71
  70. package/resolver/app/validation/detail.js +30 -35
  71. package/resolver/app/validation/detail.js.map +1 -1
  72. package/resolver/app/validation/event.d.ts +29 -188
  73. package/resolver/app/validation/event.js +17 -18
  74. package/resolver/app/validation/event.js.map +1 -1
  75. package/resolver/app/validation/numericString.d.ts +1 -1
  76. package/resolver/app/validation/numericString.js +8 -11
  77. package/resolver/app/validation/numericString.js.map +1 -1
  78. package/resolver/app/validation/system.d.ts +2 -14
  79. package/resolver/app/validation/system.js +8 -9
  80. package/resolver/app/validation/system.js.map +1 -1
  81. package/resolver/deployment/Deployment.js +28 -37
  82. package/resolver/deployment/Deployment.js.map +1 -1
  83. package/resolver/deployment/Deployments.js +20 -23
  84. package/resolver/deployment/Deployments.js.map +1 -1
  85. package/resolver/deployment/DeploymentsFetcher.js +75 -86
  86. package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
  87. package/resolver/deployment/types.d.ts +0 -2
  88. package/resolver/deployment/types.js +0 -3
  89. package/resolver/lambda/LambdaTrigger.js +24 -26
  90. package/resolver/lambda/LambdaTrigger.js.map +1 -1
  91. package/resolver/plugins/CommandHandlerPlugin.js +16 -15
  92. package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
  93. package/resolver/plugins/StorerAfterEachPlugin.js +20 -19
  94. package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
  95. package/resolver/plugins/TransformRecordPlugin.js +19 -18
  96. package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
  97. package/resolver/recordTypes/fileManager/CopyFile.js +44 -67
  98. package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
  99. package/resolver/recordTypes/fileManager/DeleteFile.js +40 -58
  100. package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
  101. package/resolver/recordTypes/fileManager/fileManager.js +5 -3
  102. package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
  103. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +24 -35
  104. package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
  105. package/resolver/recordTypes/fileManager/fileManagerOnPut.js +24 -35
  106. package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
  107. package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -27
  108. package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
  109. package/resolver/recordTypes/fileManager/types.js +0 -3
  110. package/resolver/recordTypes/users/CopyUser.js +44 -54
  111. package/resolver/recordTypes/users/CopyUser.js.map +1 -1
  112. package/resolver/recordTypes/users/DeleteUser.js +40 -51
  113. package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
  114. package/resolver/recordTypes/users/shouldBeHandled.js +10 -26
  115. package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
  116. package/resolver/recordTypes/users/types.js +0 -3
  117. package/resolver/recordTypes/users/users.js +5 -3
  118. package/resolver/recordTypes/users/users.js.map +1 -1
  119. package/resolver/recordTypes/users/usersOnDelete.js +23 -34
  120. package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
  121. package/resolver/recordTypes/users/usersOnPut.js +24 -35
  122. package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
  123. package/sync/ApiGatewaySyncDecorator.d.ts +14 -0
  124. package/sync/ApiGatewaySyncDecorator.js +49 -0
  125. package/sync/ApiGatewaySyncDecorator.js.map +1 -0
  126. package/sync/FilterOutRecord.js +9 -17
  127. package/sync/FilterOutRecord.js.map +1 -1
  128. package/sync/SyncSystemConfig.d.ts +11 -0
  129. package/sync/SyncSystemConfig.js +5 -0
  130. package/sync/SyncSystemConfig.js.map +1 -0
  131. package/sync/attachToDynamoDbDocument.js +46 -65
  132. package/sync/attachToDynamoDbDocument.js.map +1 -1
  133. package/sync/createHandler.js +31 -40
  134. package/sync/createHandler.js.map +1 -1
  135. package/sync/filter/createDefaultFilterOutRecordPlugins.js +37 -76
  136. package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
  137. package/sync/handler/Handler.js +64 -76
  138. package/sync/handler/Handler.js.map +1 -1
  139. package/sync/handler/HandlerConverter.js +21 -29
  140. package/sync/handler/HandlerConverter.js.map +1 -1
  141. package/sync/handler/converter/BatchGetCommandConverter.js +12 -11
  142. package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
  143. package/sync/handler/converter/BatchWriteCommandConverter.js +12 -11
  144. package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
  145. package/sync/handler/converter/DeleteCommandConverter.js +12 -11
  146. package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
  147. package/sync/handler/converter/GetCommandConverter.js +12 -11
  148. package/sync/handler/converter/GetCommandConverter.js.map +1 -1
  149. package/sync/handler/converter/PutCommandConverter.js +12 -11
  150. package/sync/handler/converter/PutCommandConverter.js.map +1 -1
  151. package/sync/handler/converter/QueryCommandConverter.js +12 -11
  152. package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
  153. package/sync/handler/converter/ScanCommandConverter.js +12 -11
  154. package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
  155. package/sync/handler/converter/UpdateCommandConverter.js +12 -11
  156. package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
  157. package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -37
  158. package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
  159. package/sync/handler/converter/commands/DeleteCommandValue.js +19 -16
  160. package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
  161. package/sync/handler/converter/commands/NullCommandValue.js +8 -8
  162. package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
  163. package/sync/handler/converter/commands/PutCommandValue.js +19 -16
  164. package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
  165. package/sync/handler/converter/commands/UpdateCommandValue.js +19 -16
  166. package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
  167. package/sync/handler/types.js +0 -3
  168. package/sync/plugins/FilterOutRecordPlugin.js +17 -19
  169. package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
  170. package/sync/types.js +0 -3
  171. package/sync/utils/getTableType.js +10 -11
  172. package/sync/utils/getTableType.js.map +1 -1
  173. package/sync/utils/manifest.d.ts +3 -7
  174. package/sync/utils/manifest.js +27 -36
  175. package/sync/utils/manifest.js.map +1 -1
  176. package/sync/utils/validateSystemInput.js +21 -29
  177. package/sync/utils/validateSystemInput.js.map +1 -1
  178. package/types.d.ts +0 -3
  179. package/types.js +6 -6
  180. package/types.js.map +1 -1
  181. package/utils/createSystemName.js +5 -3
  182. package/utils/createSystemName.js.map +1 -1
  183. package/worker/SyncWorkerConfig.d.ts +9 -0
  184. package/worker/SyncWorkerConfig.js +5 -0
  185. package/worker/SyncWorkerConfig.js.map +1 -0
  186. package/worker/SyncWorkerEventHandler.d.ts +14 -0
  187. package/worker/SyncWorkerEventHandler.js +5 -0
  188. package/worker/SyncWorkerEventHandler.js.map +1 -0
  189. package/worker/SyncWorkerEventType.d.ts +10 -0
  190. package/worker/SyncWorkerEventType.js +24 -0
  191. package/worker/SyncWorkerEventType.js.map +1 -0
  192. package/worker/SyncWorkerLambdaHandler.d.ts +13 -0
  193. package/worker/SyncWorkerLambdaHandler.js +61 -0
  194. package/worker/SyncWorkerLambdaHandler.js.map +1 -0
  195. package/worker/actions/copyFile/CopyFile.js +183 -258
  196. package/worker/actions/copyFile/CopyFile.js.map +1 -1
  197. package/worker/actions/copyFile/copyFileAction.js +26 -34
  198. package/worker/actions/copyFile/copyFileAction.js.map +1 -1
  199. package/worker/actions/copyFile/copyFileSchema.d.ts +6 -38
  200. package/worker/actions/copyFile/copyFileSchema.js +13 -14
  201. package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
  202. package/worker/actions/copyFile/types.js +0 -3
  203. package/worker/actions/createUser/CreateUser.js +51 -74
  204. package/worker/actions/createUser/CreateUser.js.map +1 -1
  205. package/worker/actions/createUser/createUserAction.js +24 -28
  206. package/worker/actions/createUser/createUserAction.js.map +1 -1
  207. package/worker/actions/createUser/createUserSchema.d.ts +6 -38
  208. package/worker/actions/createUser/createUserSchema.js +13 -14
  209. package/worker/actions/createUser/createUserSchema.js.map +1 -1
  210. package/worker/actions/createUser/types.js +0 -3
  211. package/worker/actions/deleteFile/DeleteFile.js +52 -67
  212. package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
  213. package/worker/actions/deleteFile/deleteFileAction.js +21 -29
  214. package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
  215. package/worker/actions/deleteFile/deleteFileSchema.d.ts +6 -38
  216. package/worker/actions/deleteFile/deleteFileSchema.js +13 -14
  217. package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
  218. package/worker/actions/deleteFile/types.js +0 -3
  219. package/worker/actions/deleteUser/DeleteUser.js +38 -52
  220. package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
  221. package/worker/actions/deleteUser/deleteUserAction.js +22 -26
  222. package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
  223. package/worker/actions/deleteUser/deleteUserSchema.d.ts +5 -23
  224. package/worker/actions/deleteUser/deleteUserSchema.js +12 -13
  225. package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
  226. package/worker/actions/deleteUser/types.js +0 -3
  227. package/worker/actions/logValidationError.js +5 -6
  228. package/worker/actions/logValidationError.js.map +1 -1
  229. package/worker/actions/removeCognitoUserAttributes.js +9 -15
  230. package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
  231. package/worker/actions/updateUser/UpdateUser.js +48 -65
  232. package/worker/actions/updateUser/UpdateUser.js.map +1 -1
  233. package/worker/actions/updateUser/types.js +0 -3
  234. package/worker/actions/updateUser/updateUserAction.js +24 -28
  235. package/worker/actions/updateUser/updateUserAction.js.map +1 -1
  236. package/worker/actions/updateUser/updateUserSchema.d.ts +6 -38
  237. package/worker/actions/updateUser/updateUserSchema.js +13 -14
  238. package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
  239. package/worker/handler/WorkerActionHandler.js +19 -21
  240. package/worker/handler/WorkerActionHandler.js.map +1 -1
  241. package/worker/plugins/WorkerActionPlugin.js +17 -16
  242. package/worker/plugins/WorkerActionPlugin.js.map +1 -1
  243. package/worker/types.js +0 -3
  244. package/index.js.map +0 -1
  245. package/resolver/app/abstractions/RecordHandler.js.map +0 -1
  246. package/resolver/app/abstractions/RecordsValidation.js.map +0 -1
  247. package/resolver/app/abstractions/ResolverApplication.js.map +0 -1
  248. package/resolver/app/abstractions/ResolverRecord.js.map +0 -1
  249. package/resolver/app/bundler/types.js.map +0 -1
  250. package/resolver/app/data/types.js.map +0 -1
  251. package/resolver/app/fetcher/types.js.map +0 -1
  252. package/resolver/app/ingestor/types.js.map +0 -1
  253. package/resolver/app/storer/types.js.map +0 -1
  254. package/resolver/createEventHandlerPlugin.d.ts +0 -11
  255. package/resolver/createEventHandlerPlugin.js +0 -120
  256. package/resolver/createEventHandlerPlugin.js.map +0 -1
  257. package/resolver/createResolverHandler.d.ts +0 -21
  258. package/resolver/createResolverHandler.js +0 -72
  259. package/resolver/createResolverHandler.js.map +0 -1
  260. package/resolver/deployment/types.js.map +0 -1
  261. package/resolver/recordTypes/fileManager/types.js.map +0 -1
  262. package/resolver/recordTypes/users/types.js.map +0 -1
  263. package/sync/createSendDataToEventBridgeOnRequestEnd.d.ts +0 -2
  264. package/sync/createSendDataToEventBridgeOnRequestEnd.js +0 -44
  265. package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +0 -1
  266. package/sync/createSyncSystem.d.ts +0 -16
  267. package/sync/createSyncSystem.js +0 -35
  268. package/sync/createSyncSystem.js.map +0 -1
  269. package/sync/handler/types.js.map +0 -1
  270. package/sync/requestPlugin.d.ts +0 -9
  271. package/sync/requestPlugin.js +0 -58
  272. package/sync/requestPlugin.js.map +0 -1
  273. package/sync/types.js.map +0 -1
  274. package/worker/actions/copyFile/types.js.map +0 -1
  275. package/worker/actions/createUser/types.js.map +0 -1
  276. package/worker/actions/deleteFile/types.js.map +0 -1
  277. package/worker/actions/deleteUser/types.js.map +0 -1
  278. package/worker/actions/updateUser/types.js.map +0 -1
  279. package/worker/createWorkerHandler.d.ts +0 -11
  280. package/worker/createWorkerHandler.js +0 -41
  281. package/worker/createWorkerHandler.js.map +0 -1
  282. package/worker/handler/eventHandler.d.ts +0 -1
  283. package/worker/handler/eventHandler.js +0 -24
  284. package/worker/handler/eventHandler.js.map +0 -1
  285. package/worker/types.js.map +0 -1
@@ -2,39 +2,31 @@ import { createWorkerActionPlugin } from "../../plugins/WorkerActionPlugin.js";
2
2
  import { CopyFile } from "./CopyFile.js";
3
3
  import { createCopyFileSchema } from "./copyFileSchema.js";
4
4
  import { logValidationError } from "../logValidationError.js";
5
- export const createCopyFileAction = ({
6
- createS3Client
7
- }) => {
8
- return createWorkerActionPlugin({
9
- name: "sync.worker.action.copyFile",
10
- parse(input) {
11
- const schema = createCopyFileSchema();
12
- const result = schema.safeParse(input);
13
- if (!result.success || result.error) {
14
- logValidationError(result.error);
15
- return undefined;
16
- }
17
- return result.data;
18
- },
19
- async handle(params) {
20
- const {
21
- data
22
- } = params;
23
- const copyFile = new CopyFile({
24
- createS3Client,
25
- sourceRegion: data.source.region,
26
- targetRegion: data.target.region,
27
- maxConcurrency: undefined,
28
- maxPartSize: undefined,
29
- minPartSize: undefined
30
- });
31
- return copyFile.copy({
32
- key: data.key,
33
- sourceBucket: data.source.bucket,
34
- targetBucket: data.target.bucket
35
- });
36
- }
37
- });
38
- };
5
+ const createCopyFileAction = ({ createS3Client })=>createWorkerActionPlugin({
6
+ name: "sync.worker.action.copyFile",
7
+ parse (input) {
8
+ const schema = createCopyFileSchema();
9
+ const result = schema.safeParse(input);
10
+ if (!result.success || result.error) return void logValidationError(result.error);
11
+ return result.data;
12
+ },
13
+ async handle (params) {
14
+ const { data } = params;
15
+ const copyFile = new CopyFile({
16
+ createS3Client,
17
+ sourceRegion: data.source.region,
18
+ targetRegion: data.target.region,
19
+ maxConcurrency: void 0,
20
+ maxPartSize: void 0,
21
+ minPartSize: void 0
22
+ });
23
+ return copyFile.copy({
24
+ key: data.key,
25
+ sourceBucket: data.source.bucket,
26
+ targetBucket: data.target.bucket
27
+ });
28
+ }
29
+ });
30
+ export { createCopyFileAction };
39
31
 
40
32
  //# sourceMappingURL=copyFileAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createWorkerActionPlugin","CopyFile","createCopyFileSchema","logValidationError","createCopyFileAction","createS3Client","name","parse","input","schema","result","safeParse","success","error","undefined","data","handle","params","copyFile","sourceRegion","source","region","targetRegion","target","maxConcurrency","maxPartSize","minPartSize","copy","key","sourceBucket","bucket","targetBucket"],"sources":["copyFileAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport { CopyFile } from \"./CopyFile.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type { ICopyFileActionEvent } from \"./types.js\";\nimport { createCopyFileSchema } from \"./copyFileSchema.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateCopyFileActionParams {\n createS3Client: (config: Partial<S3ClientConfig>) => Pick<S3Client, \"send\">;\n}\n\nexport const createCopyFileAction = ({ createS3Client }: ICreateCopyFileActionParams) => {\n return createWorkerActionPlugin<ICopyFileActionEvent>({\n name: \"sync.worker.action.copyFile\",\n parse(input) {\n const schema = createCopyFileSchema();\n const result = schema.safeParse(input);\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n const copyFile = new CopyFile({\n createS3Client,\n sourceRegion: data.source.region,\n targetRegion: data.target.region,\n maxConcurrency: undefined,\n maxPartSize: undefined,\n minPartSize: undefined\n });\n return copyFile.copy({\n key: data.key,\n sourceBucket: data.source.bucket,\n targetBucket: data.target.bucket\n });\n }\n });\n};\n"],"mappings":"AAAA,SAASA,wBAAwB;AACjC,SAASC,QAAQ;AAGjB,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAM3B,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC;AAA4C,CAAC,KAAK;EACrF,OAAOL,wBAAwB,CAAuB;IAClDM,IAAI,EAAE,6BAA6B;IACnCC,KAAKA,CAACC,KAAK,EAAE;MACT,MAAMC,MAAM,GAAGP,oBAAoB,CAAC,CAAC;MACrC,MAAMQ,MAAM,GAAGD,MAAM,CAACE,SAAS,CAACH,KAAK,CAAC;MACtC,IAAI,CAACE,MAAM,CAACE,OAAO,IAAIF,MAAM,CAACG,KAAK,EAAE;QACjCV,kBAAkB,CAACO,MAAM,CAACG,KAAK,CAAC;QAChC,OAAOC,SAAS;MACpB;MACA,OAAOJ,MAAM,CAACK,IAAI;IACtB,CAAC;IACD,MAAMC,MAAMA,CAACC,MAAM,EAAE;MACjB,MAAM;QAAEF;MAAK,CAAC,GAAGE,MAAM;MACvB,MAAMC,QAAQ,GAAG,IAAIjB,QAAQ,CAAC;QAC1BI,cAAc;QACdc,YAAY,EAAEJ,IAAI,CAACK,MAAM,CAACC,MAAM;QAChCC,YAAY,EAAEP,IAAI,CAACQ,MAAM,CAACF,MAAM;QAChCG,cAAc,EAAEV,SAAS;QACzBW,WAAW,EAAEX,SAAS;QACtBY,WAAW,EAAEZ;MACjB,CAAC,CAAC;MACF,OAAOI,QAAQ,CAACS,IAAI,CAAC;QACjBC,GAAG,EAAEb,IAAI,CAACa,GAAG;QACbC,YAAY,EAAEd,IAAI,CAACK,MAAM,CAACU,MAAM;QAChCC,YAAY,EAAEhB,IAAI,CAACQ,MAAM,CAACO;MAC9B,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"worker/actions/copyFile/copyFileAction.js","sources":["../../../../src/worker/actions/copyFile/copyFileAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport { CopyFile } from \"./CopyFile.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type { ICopyFileActionEvent } from \"./types.js\";\nimport { createCopyFileSchema } from \"./copyFileSchema.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateCopyFileActionParams {\n createS3Client: (config: Partial<S3ClientConfig>) => Pick<S3Client, \"send\">;\n}\n\nexport const createCopyFileAction = ({ createS3Client }: ICreateCopyFileActionParams) => {\n return createWorkerActionPlugin<ICopyFileActionEvent>({\n name: \"sync.worker.action.copyFile\",\n parse(input) {\n const schema = createCopyFileSchema();\n const result = schema.safeParse(input);\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n const copyFile = new CopyFile({\n createS3Client,\n sourceRegion: data.source.region,\n targetRegion: data.target.region,\n maxConcurrency: undefined,\n maxPartSize: undefined,\n minPartSize: undefined\n });\n return copyFile.copy({\n key: data.key,\n sourceBucket: data.source.bucket,\n targetBucket: data.target.bucket\n });\n }\n });\n};\n"],"names":["createCopyFileAction","createS3Client","createWorkerActionPlugin","input","schema","createCopyFileSchema","result","logValidationError","params","data","copyFile","CopyFile","undefined"],"mappings":";;;;AAWO,MAAMA,uBAAuB,CAAC,EAAEC,cAAc,EAA+B,GACzEC,yBAA+C;QAClD,MAAM;QACN,OAAMC,KAAK;YACP,MAAMC,SAASC;YACf,MAAMC,SAASF,OAAO,SAAS,CAACD;YAChC,IAAI,CAACG,OAAO,OAAO,IAAIA,OAAO,KAAK,EAAE,YACjCC,mBAAmBD,OAAO,KAAK;YAGnC,OAAOA,OAAO,IAAI;QACtB;QACA,MAAM,QAAOE,MAAM;YACf,MAAM,EAAEC,IAAI,EAAE,GAAGD;YACjB,MAAME,WAAW,IAAIC,SAAS;gBAC1BV;gBACA,cAAcQ,KAAK,MAAM,CAAC,MAAM;gBAChC,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,gBAAgBG;gBAChB,aAAaA;gBACb,aAAaA;YACjB;YACA,OAAOF,SAAS,IAAI,CAAC;gBACjB,KAAKD,KAAK,GAAG;gBACb,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,cAAcA,KAAK,MAAM,CAAC,MAAM;YACpC;QACJ;IACJ"}
@@ -1,47 +1,15 @@
1
1
  import zod from "zod";
2
2
  export declare const createCopyFileSchema: () => zod.ZodObject<{
3
- action: zod.ZodEnum<["copyFile"]>;
3
+ action: zod.ZodEnum<{
4
+ copyFile: "copyFile";
5
+ }>;
4
6
  key: zod.ZodString;
5
7
  source: zod.ZodObject<{
6
8
  bucket: zod.ZodString;
7
9
  region: zod.ZodString;
8
- }, "strip", zod.ZodTypeAny, {
9
- region: string;
10
- bucket: string;
11
- }, {
12
- region: string;
13
- bucket: string;
14
- }>;
10
+ }, zod.core.$strip>;
15
11
  target: zod.ZodObject<{
16
12
  bucket: zod.ZodString;
17
13
  region: zod.ZodString;
18
- }, "strip", zod.ZodTypeAny, {
19
- region: string;
20
- bucket: string;
21
- }, {
22
- region: string;
23
- bucket: string;
24
- }>;
25
- }, "strip", zod.ZodTypeAny, {
26
- key: string;
27
- action: "copyFile";
28
- source: {
29
- region: string;
30
- bucket: string;
31
- };
32
- target: {
33
- region: string;
34
- bucket: string;
35
- };
36
- }, {
37
- key: string;
38
- action: "copyFile";
39
- source: {
40
- region: string;
41
- bucket: string;
42
- };
43
- target: {
44
- region: string;
45
- bucket: string;
46
- };
47
- }>;
14
+ }, zod.core.$strip>;
15
+ }, zod.core.$strip>;
@@ -1,17 +1,16 @@
1
1
  import zod from "zod";
2
- const createDataSchema = type => {
3
- return zod.object({
4
- bucket: zod.string().min(1, `${type} Bucket is required.`),
5
- region: zod.string().min(1, `${type} Region is required.`)
6
- });
7
- };
8
- export const createCopyFileSchema = () => {
9
- return zod.object({
10
- action: zod.enum(["copyFile"]),
11
- key: zod.string().min(1, "Key is required."),
12
- source: createDataSchema("Source"),
13
- target: createDataSchema("Target")
14
- });
15
- };
2
+ const createDataSchema = (type)=>zod.object({
3
+ bucket: zod.string().min(1, `${type} Bucket is required.`),
4
+ region: zod.string().min(1, `${type} Region is required.`)
5
+ });
6
+ const createCopyFileSchema = ()=>zod.object({
7
+ action: zod["enum"]([
8
+ "copyFile"
9
+ ]),
10
+ key: zod.string().min(1, "Key is required."),
11
+ source: createDataSchema("Source"),
12
+ target: createDataSchema("Target")
13
+ });
14
+ export { createCopyFileSchema };
16
15
 
17
16
  //# sourceMappingURL=copyFileSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["zod","createDataSchema","type","object","bucket","string","min","region","createCopyFileSchema","action","enum","key","source","target"],"sources":["copyFileSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n bucket: zod.string().min(1, `${type} Bucket is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCopyFileSchema = () => {\n return zod.object({\n action: zod.enum([\"copyFile\"]),\n key: zod.string().min(1, \"Key is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AAErB,MAAMC,gBAAgB,GAAIC,IAAY,IAAK;EACvC,OAAOF,GAAG,CAACG,MAAM,CAAC;IACdC,MAAM,EAAEJ,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGJ,IAAI,sBAAsB,CAAC;IAC1DK,MAAM,EAAEP,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGJ,IAAI,sBAAsB;EAC7D,CAAC,CAAC;AACN,CAAC;AACD,OAAO,MAAMM,oBAAoB,GAAGA,CAAA,KAAM;EACtC,OAAOR,GAAG,CAACG,MAAM,CAAC;IACdM,MAAM,EAAET,GAAG,CAACU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9BC,GAAG,EAAEX,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;IAC5CM,MAAM,EAAEX,gBAAgB,CAAC,QAAQ,CAAC;IAClCY,MAAM,EAAEZ,gBAAgB,CAAC,QAAQ;EACrC,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"worker/actions/copyFile/copyFileSchema.js","sources":["../../../../src/worker/actions/copyFile/copyFileSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n bucket: zod.string().min(1, `${type} Bucket is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCopyFileSchema = () => {\n return zod.object({\n action: zod.enum([\"copyFile\"]),\n key: zod.string().min(1, \"Key is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"names":["createDataSchema","type","zod","createCopyFileSchema"],"mappings":";AAEA,MAAMA,mBAAmB,CAACC,OACfC,IAAI,MAAM,CAAC;QACd,QAAQA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;QACzD,QAAQC,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;IAC7D;AAEG,MAAME,uBAAuB,IACzBD,IAAI,MAAM,CAAC;QACd,QAAQA,GAAG,CAAHA,OAAQ,CAAC;YAAC;SAAW;QAC7B,KAAKA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG;QACzB,QAAQF,iBAAiB;QACzB,QAAQA,iBAAiB;IAC7B"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1,83 +1,60 @@
1
1
  import { AdminCreateUserCommand, AdminGetUserCommand } from "@webiny/aws-sdk/client-cognito-identity-provider/index.js";
2
2
  import { convertException } from "@webiny/utils/exception.js";
3
3
  import { removeCognitoUserAttributes } from "../removeCognitoUserAttributes.js";
4
- export class CreateUser {
5
- constructor(params) {
6
- this.createCognitoProvider = params.createCognitoProvider;
7
- }
8
- async create(params) {
9
- const {
10
- sourceUserPoolId,
11
- targetUserPoolId,
12
- username,
13
- targetRegion,
14
- sourceRegion
15
- } = params;
16
- const sourceProvider = this.createCognitoProvider({
17
- region: sourceRegion
18
- });
19
- const sourceUser = await this.getUser({
20
- userPoolId: sourceUserPoolId,
21
- username,
22
- provider: sourceProvider
23
- });
24
- if (!sourceUser) {
25
- throw new Error(`Source user "${username}" not found in pool "${sourceUserPoolId}".`);
4
+ class CreateUser {
5
+ constructor(params){
6
+ this.createCognitoProvider = params.createCognitoProvider;
26
7
  }
27
- const targetProvider = this.createCognitoProvider({
28
- region: targetRegion
29
- });
30
- const targetUser = await this.getUser({
31
- userPoolId: targetUserPoolId,
32
- username,
33
- provider: targetProvider
34
- });
35
- if (targetUser) {
36
- console.log(`Target user "${username}" already exists in pool "${targetUserPoolId}".`);
37
- return;
8
+ async create(params) {
9
+ const { sourceUserPoolId, targetUserPoolId, username, targetRegion, sourceRegion } = params;
10
+ const sourceProvider = this.createCognitoProvider({
11
+ region: sourceRegion
12
+ });
13
+ const sourceUser = await this.getUser({
14
+ userPoolId: sourceUserPoolId,
15
+ username,
16
+ provider: sourceProvider
17
+ });
18
+ if (!sourceUser) throw new Error(`Source user "${username}" not found in pool "${sourceUserPoolId}".`);
19
+ const targetProvider = this.createCognitoProvider({
20
+ region: targetRegion
21
+ });
22
+ const targetUser = await this.getUser({
23
+ userPoolId: targetUserPoolId,
24
+ username,
25
+ provider: targetProvider
26
+ });
27
+ if (targetUser) return void console.log(`Target user "${username}" already exists in pool "${targetUserPoolId}".`);
28
+ const input = {
29
+ DesiredDeliveryMediums: [],
30
+ ForceAliasCreation: false,
31
+ MessageAction: "SUPPRESS",
32
+ UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),
33
+ UserPoolId: targetUserPoolId,
34
+ Username: username
35
+ };
36
+ const cmd = new AdminCreateUserCommand(input);
37
+ try {
38
+ await targetProvider.send(cmd);
39
+ } catch (ex) {
40
+ console.error(`Failed to create user "${username}" in pool "${targetUserPoolId}". More info in next log line.`);
41
+ console.log(convertException(ex));
42
+ }
38
43
  }
39
- /**
40
- * TODO: verify that this is everything that is required to create a user.
41
- * We cannot just spread the sourceUser as it causes an exception:
42
- * `Cannot modify the non-mutable attribute sub`
43
- */
44
- const input = {
45
- DesiredDeliveryMediums: [],
46
- ForceAliasCreation: false,
47
- MessageAction: "SUPPRESS",
48
- UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),
49
- UserPoolId: targetUserPoolId,
50
- Username: username
51
- };
52
- const cmd = new AdminCreateUserCommand(input);
53
- try {
54
- await targetProvider.send(cmd);
55
- } catch (ex) {
56
- console.error(`Failed to create user "${username}" in pool "${targetUserPoolId}". More info in next log line.`);
57
- console.log(convertException(ex));
44
+ async getUser(params) {
45
+ const { userPoolId, username, provider } = params;
46
+ const input = {
47
+ UserPoolId: userPoolId,
48
+ Username: username
49
+ };
50
+ const cmd = new AdminGetUserCommand(input);
51
+ try {
52
+ const result = await provider.send(cmd);
53
+ if (result.$metadata?.httpStatusCode === 200) return result;
54
+ } catch {}
55
+ return null;
58
56
  }
59
- }
60
- async getUser(params) {
61
- const {
62
- userPoolId,
63
- username,
64
- provider
65
- } = params;
66
- const input = {
67
- UserPoolId: userPoolId,
68
- Username: username
69
- };
70
- const cmd = new AdminGetUserCommand(input);
71
- try {
72
- const result = await provider.send(cmd);
73
- if (result.$metadata?.httpStatusCode === 200) {
74
- return result;
75
- }
76
- } catch {
77
- //
78
- }
79
- return null;
80
- }
81
57
  }
58
+ export { CreateUser };
82
59
 
83
60
  //# sourceMappingURL=CreateUser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AdminCreateUserCommand","AdminGetUserCommand","convertException","removeCognitoUserAttributes","CreateUser","constructor","params","createCognitoProvider","create","sourceUserPoolId","targetUserPoolId","username","targetRegion","sourceRegion","sourceProvider","region","sourceUser","getUser","userPoolId","provider","Error","targetProvider","targetUser","console","log","input","DesiredDeliveryMediums","ForceAliasCreation","MessageAction","UserAttributes","UserPoolId","Username","cmd","send","ex","error","result","$metadata","httpStatusCode"],"sources":["CreateUser.ts"],"sourcesContent":["import type {\n AdminCreateUserCommandInput,\n AdminGetUserCommandInput,\n AdminGetUserCommandOutput,\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport {\n AdminCreateUserCommand,\n AdminGetUserCommand\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { convertException } from \"@webiny/utils/exception.js\";\nimport { removeCognitoUserAttributes } from \"~/worker/actions/removeCognitoUserAttributes.js\";\n\nexport interface ICreateUserParams {\n createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport interface ICreateUserCreateParams {\n username: string;\n sourceRegion: string;\n targetRegion: string;\n sourceUserPoolId: string;\n targetUserPoolId: string;\n}\n\ninterface ICreateUserGetUserParams {\n userPoolId: string;\n username: string;\n provider: Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport class CreateUser {\n private readonly createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n\n public constructor(params: ICreateUserParams) {\n this.createCognitoProvider = params.createCognitoProvider;\n }\n\n public async create(params: ICreateUserCreateParams): Promise<void> {\n const { sourceUserPoolId, targetUserPoolId, username, targetRegion, sourceRegion } = params;\n\n const sourceProvider = this.createCognitoProvider({\n region: sourceRegion\n });\n\n const sourceUser = await this.getUser({\n userPoolId: sourceUserPoolId,\n username,\n provider: sourceProvider\n });\n if (!sourceUser) {\n throw new Error(`Source user \"${username}\" not found in pool \"${sourceUserPoolId}\".`);\n }\n const targetProvider = this.createCognitoProvider({\n region: targetRegion\n });\n const targetUser = await this.getUser({\n userPoolId: targetUserPoolId,\n username,\n provider: targetProvider\n });\n if (targetUser) {\n console.log(`Target user \"${username}\" already exists in pool \"${targetUserPoolId}\".`);\n return;\n }\n /**\n * TODO: verify that this is everything that is required to create a user.\n * We cannot just spread the sourceUser as it causes an exception:\n * `Cannot modify the non-mutable attribute sub`\n */\n const input: AdminCreateUserCommandInput = {\n DesiredDeliveryMediums: [],\n ForceAliasCreation: false,\n MessageAction: \"SUPPRESS\",\n UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),\n UserPoolId: targetUserPoolId,\n Username: username\n };\n\n const cmd = new AdminCreateUserCommand(input);\n\n try {\n await targetProvider.send(cmd);\n } catch (ex) {\n console.error(\n `Failed to create user \"${username}\" in pool \"${targetUserPoolId}\". More info in next log line.`\n );\n console.log(convertException(ex));\n }\n }\n\n private async getUser(\n params: ICreateUserGetUserParams\n ): Promise<AdminGetUserCommandOutput | null> {\n const { userPoolId, username, provider } = params;\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n\n const cmd = new AdminGetUserCommand(input);\n\n try {\n const result = await provider.send(cmd);\n if (result.$metadata?.httpStatusCode === 200) {\n return result;\n }\n } catch {\n //\n }\n return null;\n }\n}\n"],"mappings":"AAOA,SACIA,sBAAsB,EACtBC,mBAAmB,QAChB,2DAA2D;AAClE,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,2BAA2B;AAsBpC,OAAO,MAAMC,UAAU,CAAC;EAKbC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACC,qBAAqB,GAAGD,MAAM,CAACC,qBAAqB;EAC7D;EAEA,MAAaC,MAAMA,CAACF,MAA+B,EAAiB;IAChE,MAAM;MAAEG,gBAAgB;MAAEC,gBAAgB;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAa,CAAC,GAAGP,MAAM;IAE3F,MAAMQ,cAAc,GAAG,IAAI,CAACP,qBAAqB,CAAC;MAC9CQ,MAAM,EAAEF;IACZ,CAAC,CAAC;IAEF,MAAMG,UAAU,GAAG,MAAM,IAAI,CAACC,OAAO,CAAC;MAClCC,UAAU,EAAET,gBAAgB;MAC5BE,QAAQ;MACRQ,QAAQ,EAAEL;IACd,CAAC,CAAC;IACF,IAAI,CAACE,UAAU,EAAE;MACb,MAAM,IAAII,KAAK,CAAC,gBAAgBT,QAAQ,wBAAwBF,gBAAgB,IAAI,CAAC;IACzF;IACA,MAAMY,cAAc,GAAG,IAAI,CAACd,qBAAqB,CAAC;MAC9CQ,MAAM,EAAEH;IACZ,CAAC,CAAC;IACF,MAAMU,UAAU,GAAG,MAAM,IAAI,CAACL,OAAO,CAAC;MAClCC,UAAU,EAAER,gBAAgB;MAC5BC,QAAQ;MACRQ,QAAQ,EAAEE;IACd,CAAC,CAAC;IACF,IAAIC,UAAU,EAAE;MACZC,OAAO,CAACC,GAAG,CAAC,gBAAgBb,QAAQ,6BAA6BD,gBAAgB,IAAI,CAAC;MACtF;IACJ;IACA;AACR;AACA;AACA;AACA;IACQ,MAAMe,KAAkC,GAAG;MACvCC,sBAAsB,EAAE,EAAE;MAC1BC,kBAAkB,EAAE,KAAK;MACzBC,aAAa,EAAE,UAAU;MACzBC,cAAc,EAAE1B,2BAA2B,CAACa,UAAU,CAACa,cAAc,IAAI,EAAE,CAAC;MAC5EC,UAAU,EAAEpB,gBAAgB;MAC5BqB,QAAQ,EAAEpB;IACd,CAAC;IAED,MAAMqB,GAAG,GAAG,IAAIhC,sBAAsB,CAACyB,KAAK,CAAC;IAE7C,IAAI;MACA,MAAMJ,cAAc,CAACY,IAAI,CAACD,GAAG,CAAC;IAClC,CAAC,CAAC,OAAOE,EAAE,EAAE;MACTX,OAAO,CAACY,KAAK,CACT,0BAA0BxB,QAAQ,cAAcD,gBAAgB,gCACpE,CAAC;MACDa,OAAO,CAACC,GAAG,CAACtB,gBAAgB,CAACgC,EAAE,CAAC,CAAC;IACrC;EACJ;EAEA,MAAcjB,OAAOA,CACjBX,MAAgC,EACS;IACzC,MAAM;MAAEY,UAAU;MAAEP,QAAQ;MAAEQ;IAAS,CAAC,GAAGb,MAAM;IACjD,MAAMmB,KAA+B,GAAG;MACpCK,UAAU,EAAEZ,UAAU;MACtBa,QAAQ,EAAEpB;IACd,CAAC;IAED,MAAMqB,GAAG,GAAG,IAAI/B,mBAAmB,CAACwB,KAAK,CAAC;IAE1C,IAAI;MACA,MAAMW,MAAM,GAAG,MAAMjB,QAAQ,CAACc,IAAI,CAACD,GAAG,CAAC;MACvC,IAAII,MAAM,CAACC,SAAS,EAAEC,cAAc,KAAK,GAAG,EAAE;QAC1C,OAAOF,MAAM;MACjB;IACJ,CAAC,CAAC,MAAM;MACJ;IAAA;IAEJ,OAAO,IAAI;EACf;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"worker/actions/createUser/CreateUser.js","sources":["../../../../src/worker/actions/createUser/CreateUser.ts"],"sourcesContent":["import type {\n AdminCreateUserCommandInput,\n AdminGetUserCommandInput,\n AdminGetUserCommandOutput,\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport {\n AdminCreateUserCommand,\n AdminGetUserCommand\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { convertException } from \"@webiny/utils/exception.js\";\nimport { removeCognitoUserAttributes } from \"~/worker/actions/removeCognitoUserAttributes.js\";\n\nexport interface ICreateUserParams {\n createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport interface ICreateUserCreateParams {\n username: string;\n sourceRegion: string;\n targetRegion: string;\n sourceUserPoolId: string;\n targetUserPoolId: string;\n}\n\ninterface ICreateUserGetUserParams {\n userPoolId: string;\n username: string;\n provider: Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport class CreateUser {\n private readonly createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n\n public constructor(params: ICreateUserParams) {\n this.createCognitoProvider = params.createCognitoProvider;\n }\n\n public async create(params: ICreateUserCreateParams): Promise<void> {\n const { sourceUserPoolId, targetUserPoolId, username, targetRegion, sourceRegion } = params;\n\n const sourceProvider = this.createCognitoProvider({\n region: sourceRegion\n });\n\n const sourceUser = await this.getUser({\n userPoolId: sourceUserPoolId,\n username,\n provider: sourceProvider\n });\n if (!sourceUser) {\n throw new Error(`Source user \"${username}\" not found in pool \"${sourceUserPoolId}\".`);\n }\n const targetProvider = this.createCognitoProvider({\n region: targetRegion\n });\n const targetUser = await this.getUser({\n userPoolId: targetUserPoolId,\n username,\n provider: targetProvider\n });\n if (targetUser) {\n console.log(`Target user \"${username}\" already exists in pool \"${targetUserPoolId}\".`);\n return;\n }\n /**\n * TODO: verify that this is everything that is required to create a user.\n * We cannot just spread the sourceUser as it causes an exception:\n * `Cannot modify the non-mutable attribute sub`\n */\n const input: AdminCreateUserCommandInput = {\n DesiredDeliveryMediums: [],\n ForceAliasCreation: false,\n MessageAction: \"SUPPRESS\",\n UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),\n UserPoolId: targetUserPoolId,\n Username: username\n };\n\n const cmd = new AdminCreateUserCommand(input);\n\n try {\n await targetProvider.send(cmd);\n } catch (ex) {\n console.error(\n `Failed to create user \"${username}\" in pool \"${targetUserPoolId}\". More info in next log line.`\n );\n console.log(convertException(ex));\n }\n }\n\n private async getUser(\n params: ICreateUserGetUserParams\n ): Promise<AdminGetUserCommandOutput | null> {\n const { userPoolId, username, provider } = params;\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n\n const cmd = new AdminGetUserCommand(input);\n\n try {\n const result = await provider.send(cmd);\n if (result.$metadata?.httpStatusCode === 200) {\n return result;\n }\n } catch {\n //\n }\n return null;\n }\n}\n"],"names":["CreateUser","params","sourceUserPoolId","targetUserPoolId","username","targetRegion","sourceRegion","sourceProvider","sourceUser","Error","targetProvider","targetUser","console","input","removeCognitoUserAttributes","cmd","AdminCreateUserCommand","ex","convertException","userPoolId","provider","AdminGetUserCommand","result"],"mappings":";;;AAkCO,MAAMA;IAKT,YAAmBC,MAAyB,CAAE;QAC1C,IAAI,CAAC,qBAAqB,GAAGA,OAAO,qBAAqB;IAC7D;IAEA,MAAa,OAAOA,MAA+B,EAAiB;QAChE,MAAM,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGL;QAErF,MAAMM,iBAAiB,IAAI,CAAC,qBAAqB,CAAC;YAC9C,QAAQD;QACZ;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,YAAYN;YACZE;YACA,UAAUG;QACd;QACA,IAAI,CAACC,YACD,MAAM,IAAIC,MAAM,CAAC,aAAa,EAAEL,SAAS,qBAAqB,EAAEF,iBAAiB,EAAE,CAAC;QAExF,MAAMQ,iBAAiB,IAAI,CAAC,qBAAqB,CAAC;YAC9C,QAAQL;QACZ;QACA,MAAMM,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,YAAYR;YACZC;YACA,UAAUM;QACd;QACA,IAAIC,YAAY,YACZC,QAAQ,GAAG,CAAC,CAAC,aAAa,EAAER,SAAS,0BAA0B,EAAED,iBAAiB,EAAE,CAAC;QAQzF,MAAMU,QAAqC;YACvC,wBAAwB,EAAE;YAC1B,oBAAoB;YACpB,eAAe;YACf,gBAAgBC,4BAA4BN,WAAW,cAAc,IAAI,EAAE;YAC3E,YAAYL;YACZ,UAAUC;QACd;QAEA,MAAMW,MAAM,IAAIC,uBAAuBH;QAEvC,IAAI;YACA,MAAMH,eAAe,IAAI,CAACK;QAC9B,EAAE,OAAOE,IAAI;YACTL,QAAQ,KAAK,CACT,CAAC,uBAAuB,EAAER,SAAS,WAAW,EAAED,iBAAiB,8BAA8B,CAAC;YAEpGS,QAAQ,GAAG,CAACM,iBAAiBD;QACjC;IACJ;IAEA,MAAc,QACVhB,MAAgC,EACS;QACzC,MAAM,EAAEkB,UAAU,EAAEf,QAAQ,EAAEgB,QAAQ,EAAE,GAAGnB;QAC3C,MAAMY,QAAkC;YACpC,YAAYM;YACZ,UAAUf;QACd;QAEA,MAAMW,MAAM,IAAIM,oBAAoBR;QAEpC,IAAI;YACA,MAAMS,SAAS,MAAMF,SAAS,IAAI,CAACL;YACnC,IAAIO,OAAO,SAAS,EAAE,mBAAmB,KACrC,OAAOA;QAEf,EAAE,OAAM,CAER;QACA,OAAO;IACX;AACJ"}
@@ -2,34 +2,30 @@ import { createWorkerActionPlugin } from "../../plugins/WorkerActionPlugin.js";
2
2
  import { createCreateUserSchema } from "./createUserSchema.js";
3
3
  import { CreateUser } from "./CreateUser.js";
4
4
  import { logValidationError } from "../logValidationError.js";
5
- export const createCreateUserAction = params => {
6
- const createUser = new CreateUser({
7
- createCognitoProvider: params.createCognitoProvider
8
- });
9
- return createWorkerActionPlugin({
10
- name: "sync.worker.action.createUser",
11
- parse: input => {
12
- const schema = createCreateUserSchema();
13
- const result = schema.safeParse(input);
14
- if (!result.success || result.error) {
15
- logValidationError(result.error);
16
- return undefined;
17
- }
18
- return result.data;
19
- },
20
- async handle(params) {
21
- const {
22
- data
23
- } = params;
24
- return createUser.create({
25
- username: data.username,
26
- sourceRegion: data.source.region,
27
- sourceUserPoolId: data.source.userPoolId,
28
- targetRegion: data.target.region,
29
- targetUserPoolId: data.target.userPoolId
30
- });
31
- }
32
- });
5
+ const createCreateUserAction = (params)=>{
6
+ const createUser = new CreateUser({
7
+ createCognitoProvider: params.createCognitoProvider
8
+ });
9
+ return createWorkerActionPlugin({
10
+ name: "sync.worker.action.createUser",
11
+ parse: (input)=>{
12
+ const schema = createCreateUserSchema();
13
+ const result = schema.safeParse(input);
14
+ if (!result.success || result.error) return void logValidationError(result.error);
15
+ return result.data;
16
+ },
17
+ async handle (params) {
18
+ const { data } = params;
19
+ return createUser.create({
20
+ username: data.username,
21
+ sourceRegion: data.source.region,
22
+ sourceUserPoolId: data.source.userPoolId,
23
+ targetRegion: data.target.region,
24
+ targetUserPoolId: data.target.userPoolId
25
+ });
26
+ }
27
+ });
33
28
  };
29
+ export { createCreateUserAction };
34
30
 
35
31
  //# sourceMappingURL=createUserAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createWorkerActionPlugin","createCreateUserSchema","CreateUser","logValidationError","createCreateUserAction","params","createUser","createCognitoProvider","name","parse","input","schema","result","safeParse","success","error","undefined","data","handle","create","username","sourceRegion","source","region","sourceUserPoolId","userPoolId","targetRegion","target","targetUserPoolId"],"sources":["createUserAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport type { ICreateUserActionEvent } from \"~/worker/actions/createUser/types.js\";\nimport { createCreateUserSchema } from \"./createUserSchema.js\";\nimport type {\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { CreateUser } from \"~/worker/actions/createUser/CreateUser.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateCreateUserActionParams {\n createCognitoProvider(\n config: Partial<CognitoIdentityProviderClientConfig>\n ): Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport const createCreateUserAction = (params: ICreateCreateUserActionParams) => {\n const createUser = new CreateUser({\n createCognitoProvider: params.createCognitoProvider\n });\n return createWorkerActionPlugin<ICreateUserActionEvent>({\n name: \"sync.worker.action.createUser\",\n parse: input => {\n const schema = createCreateUserSchema();\n\n const result = schema.safeParse(input);\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n return createUser.create({\n username: data.username,\n sourceRegion: data.source.region,\n sourceUserPoolId: data.source.userPoolId,\n targetRegion: data.target.region,\n targetUserPoolId: data.target.userPoolId\n });\n }\n });\n};\n"],"mappings":"AAAA,SAASA,wBAAwB;AAEjC,SAASC,sBAAsB;AAK/B,SAASC,UAAU;AACnB,SAASC,kBAAkB;AAQ3B,OAAO,MAAMC,sBAAsB,GAAIC,MAAqC,IAAK;EAC7E,MAAMC,UAAU,GAAG,IAAIJ,UAAU,CAAC;IAC9BK,qBAAqB,EAAEF,MAAM,CAACE;EAClC,CAAC,CAAC;EACF,OAAOP,wBAAwB,CAAyB;IACpDQ,IAAI,EAAE,+BAA+B;IACrCC,KAAK,EAAEC,KAAK,IAAI;MACZ,MAAMC,MAAM,GAAGV,sBAAsB,CAAC,CAAC;MAEvC,MAAMW,MAAM,GAAGD,MAAM,CAACE,SAAS,CAACH,KAAK,CAAC;MACtC,IAAI,CAACE,MAAM,CAACE,OAAO,IAAIF,MAAM,CAACG,KAAK,EAAE;QACjCZ,kBAAkB,CAACS,MAAM,CAACG,KAAK,CAAC;QAChC,OAAOC,SAAS;MACpB;MACA,OAAOJ,MAAM,CAACK,IAAI;IACtB,CAAC;IACD,MAAMC,MAAMA,CAACb,MAAM,EAAE;MACjB,MAAM;QAAEY;MAAK,CAAC,GAAGZ,MAAM;MACvB,OAAOC,UAAU,CAACa,MAAM,CAAC;QACrBC,QAAQ,EAAEH,IAAI,CAACG,QAAQ;QACvBC,YAAY,EAAEJ,IAAI,CAACK,MAAM,CAACC,MAAM;QAChCC,gBAAgB,EAAEP,IAAI,CAACK,MAAM,CAACG,UAAU;QACxCC,YAAY,EAAET,IAAI,CAACU,MAAM,CAACJ,MAAM;QAChCK,gBAAgB,EAAEX,IAAI,CAACU,MAAM,CAACF;MAClC,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"worker/actions/createUser/createUserAction.js","sources":["../../../../src/worker/actions/createUser/createUserAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport type { ICreateUserActionEvent } from \"~/worker/actions/createUser/types.js\";\nimport { createCreateUserSchema } from \"./createUserSchema.js\";\nimport type {\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { CreateUser } from \"~/worker/actions/createUser/CreateUser.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateCreateUserActionParams {\n createCognitoProvider(\n config: Partial<CognitoIdentityProviderClientConfig>\n ): Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport const createCreateUserAction = (params: ICreateCreateUserActionParams) => {\n const createUser = new CreateUser({\n createCognitoProvider: params.createCognitoProvider\n });\n return createWorkerActionPlugin<ICreateUserActionEvent>({\n name: \"sync.worker.action.createUser\",\n parse: input => {\n const schema = createCreateUserSchema();\n\n const result = schema.safeParse(input);\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n return createUser.create({\n username: data.username,\n sourceRegion: data.source.region,\n sourceUserPoolId: data.source.userPoolId,\n targetRegion: data.target.region,\n targetUserPoolId: data.target.userPoolId\n });\n }\n });\n};\n"],"names":["createCreateUserAction","params","createUser","CreateUser","createWorkerActionPlugin","input","schema","createCreateUserSchema","result","logValidationError","data"],"mappings":";;;;AAgBO,MAAMA,yBAAyB,CAACC;IACnC,MAAMC,aAAa,IAAIC,WAAW;QAC9B,uBAAuBF,OAAO,qBAAqB;IACvD;IACA,OAAOG,yBAAiD;QACpD,MAAM;QACN,OAAOC,CAAAA;YACH,MAAMC,SAASC;YAEf,MAAMC,SAASF,OAAO,SAAS,CAACD;YAChC,IAAI,CAACG,OAAO,OAAO,IAAIA,OAAO,KAAK,EAAE,YACjCC,mBAAmBD,OAAO,KAAK;YAGnC,OAAOA,OAAO,IAAI;QACtB;QACA,MAAM,QAAOP,MAAM;YACf,MAAM,EAAES,IAAI,EAAE,GAAGT;YACjB,OAAOC,WAAW,MAAM,CAAC;gBACrB,UAAUQ,KAAK,QAAQ;gBACvB,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,kBAAkBA,KAAK,MAAM,CAAC,UAAU;gBACxC,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,kBAAkBA,KAAK,MAAM,CAAC,UAAU;YAC5C;QACJ;IACJ;AACJ"}
@@ -1,47 +1,15 @@
1
1
  import zod from "zod";
2
2
  export declare const createCreateUserSchema: () => zod.ZodObject<{
3
- action: zod.ZodEnum<["createUser"]>;
3
+ action: zod.ZodEnum<{
4
+ createUser: "createUser";
5
+ }>;
4
6
  username: zod.ZodString;
5
7
  source: zod.ZodObject<{
6
8
  userPoolId: zod.ZodString;
7
9
  region: zod.ZodString;
8
- }, "strip", zod.ZodTypeAny, {
9
- region: string;
10
- userPoolId: string;
11
- }, {
12
- region: string;
13
- userPoolId: string;
14
- }>;
10
+ }, zod.core.$strip>;
15
11
  target: zod.ZodObject<{
16
12
  userPoolId: zod.ZodString;
17
13
  region: zod.ZodString;
18
- }, "strip", zod.ZodTypeAny, {
19
- region: string;
20
- userPoolId: string;
21
- }, {
22
- region: string;
23
- userPoolId: string;
24
- }>;
25
- }, "strip", zod.ZodTypeAny, {
26
- action: "createUser";
27
- source: {
28
- region: string;
29
- userPoolId: string;
30
- };
31
- target: {
32
- region: string;
33
- userPoolId: string;
34
- };
35
- username: string;
36
- }, {
37
- action: "createUser";
38
- source: {
39
- region: string;
40
- userPoolId: string;
41
- };
42
- target: {
43
- region: string;
44
- userPoolId: string;
45
- };
46
- username: string;
47
- }>;
14
+ }, zod.core.$strip>;
15
+ }, zod.core.$strip>;
@@ -1,17 +1,16 @@
1
1
  import zod from "zod";
2
- const createDataSchema = type => {
3
- return zod.object({
4
- userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),
5
- region: zod.string().min(1, `${type} Region is required.`)
6
- });
7
- };
8
- export const createCreateUserSchema = () => {
9
- return zod.object({
10
- action: zod.enum(["createUser"]),
11
- username: zod.string().min(1, "Username is required."),
12
- source: createDataSchema("Source"),
13
- target: createDataSchema("Target")
14
- });
15
- };
2
+ const createDataSchema = (type)=>zod.object({
3
+ userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),
4
+ region: zod.string().min(1, `${type} Region is required.`)
5
+ });
6
+ const createCreateUserSchema = ()=>zod.object({
7
+ action: zod["enum"]([
8
+ "createUser"
9
+ ]),
10
+ username: zod.string().min(1, "Username is required."),
11
+ source: createDataSchema("Source"),
12
+ target: createDataSchema("Target")
13
+ });
14
+ export { createCreateUserSchema };
16
15
 
17
16
  //# sourceMappingURL=createUserSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["zod","createDataSchema","type","object","userPoolId","string","min","region","createCreateUserSchema","action","enum","username","source","target"],"sources":["createUserSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCreateUserSchema = () => {\n return zod.object({\n action: zod.enum([\"createUser\"]),\n username: zod.string().min(1, \"Username is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AAErB,MAAMC,gBAAgB,GAAIC,IAAY,IAAK;EACvC,OAAOF,GAAG,CAACG,MAAM,CAAC;IACdC,UAAU,EAAEJ,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGJ,IAAI,0BAA0B,CAAC;IAClEK,MAAM,EAAEP,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGJ,IAAI,sBAAsB;EAC7D,CAAC,CAAC;AACN,CAAC;AACD,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAAM;EACxC,OAAOR,GAAG,CAACG,MAAM,CAAC;IACdM,MAAM,EAAET,GAAG,CAACU,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IAChCC,QAAQ,EAAEX,GAAG,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACtDM,MAAM,EAAEX,gBAAgB,CAAC,QAAQ,CAAC;IAClCY,MAAM,EAAEZ,gBAAgB,CAAC,QAAQ;EACrC,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"worker/actions/createUser/createUserSchema.js","sources":["../../../../src/worker/actions/createUser/createUserSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCreateUserSchema = () => {\n return zod.object({\n action: zod.enum([\"createUser\"]),\n username: zod.string().min(1, \"Username is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"names":["createDataSchema","type","zod","createCreateUserSchema"],"mappings":";AAEA,MAAMA,mBAAmB,CAACC,OACfC,IAAI,MAAM,CAAC;QACd,YAAYA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,wBAAwB,CAAC;QACjE,QAAQC,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;IAC7D;AAEG,MAAME,yBAAyB,IAC3BD,IAAI,MAAM,CAAC;QACd,QAAQA,GAAG,CAAHA,OAAQ,CAAC;YAAC;SAAa;QAC/B,UAAUA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG;QAC9B,QAAQF,iBAAiB;QACzB,QAAQA,iBAAiB;IAC7B"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map