@webiny/api-sync-system 0.0.0-unstable.b9b64acb6d → 0.0.0-unstable.d0f34a8194
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.
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- package/index.d.ts +11 -3
- package/index.js +8 -5
- package/package.json +29 -21
- package/resolver/SyncResolverConfig.d.ts +17 -0
- package/resolver/SyncResolverConfig.js +5 -0
- package/resolver/SyncResolverConfig.js.map +1 -0
- package/resolver/SyncResolverLambdaHandler.d.ts +14 -0
- package/resolver/SyncResolverLambdaHandler.js +159 -0
- package/resolver/SyncResolverLambdaHandler.js.map +1 -0
- package/resolver/app/RecordHandler.js +83 -105
- package/resolver/app/RecordHandler.js.map +1 -1
- package/resolver/app/RecordsValidation.js +11 -14
- package/resolver/app/RecordsValidation.js.map +1 -1
- package/resolver/app/ResolverApplication.js +24 -31
- package/resolver/app/ResolverApplication.js.map +1 -1
- package/resolver/app/abstractions/RecordHandler.js +0 -3
- package/resolver/app/abstractions/RecordsValidation.js +0 -3
- package/resolver/app/abstractions/ResolverApplication.js +0 -3
- package/resolver/app/abstractions/ResolverRecord.js +0 -3
- package/resolver/app/bundler/BaseBundle.js +17 -16
- package/resolver/app/bundler/BaseBundle.js.map +1 -1
- package/resolver/app/bundler/Bundler.js +13 -18
- package/resolver/app/bundler/Bundler.js.map +1 -1
- package/resolver/app/bundler/Bundles.js +21 -26
- package/resolver/app/bundler/Bundles.js.map +1 -1
- package/resolver/app/bundler/CommandBundle.js +7 -16
- package/resolver/app/bundler/CommandBundle.js.map +1 -1
- package/resolver/app/bundler/TableBundle.js +6 -13
- package/resolver/app/bundler/TableBundle.js.map +1 -1
- package/resolver/app/bundler/types.js +0 -3
- package/resolver/app/commandHandler/DeleteCommandHandler.js +22 -29
- package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/PutCommandHandler.js +16 -22
- package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/delete.js +11 -12
- package/resolver/app/commandHandler/delete.js.map +1 -1
- package/resolver/app/commandHandler/put.js +11 -12
- package/resolver/app/commandHandler/put.js.map +1 -1
- package/resolver/app/data/SourceDataContainer.js +28 -30
- package/resolver/app/data/SourceDataContainer.js.map +1 -1
- package/resolver/app/data/types.js +0 -3
- package/resolver/app/fetcher/Fetcher.js +84 -109
- package/resolver/app/fetcher/Fetcher.js.map +1 -1
- package/resolver/app/fetcher/types.js +0 -3
- package/resolver/app/ingestor/Ingestor.js +27 -32
- package/resolver/app/ingestor/Ingestor.js.map +1 -1
- package/resolver/app/ingestor/IngestorResult.js +28 -32
- package/resolver/app/ingestor/IngestorResult.js.map +1 -1
- package/resolver/app/ingestor/types.js +0 -3
- package/resolver/app/storer/Storer.js +71 -85
- package/resolver/app/storer/Storer.js.map +1 -1
- package/resolver/app/storer/types.js +0 -3
- package/resolver/app/transform/TransformHandler.js +45 -56
- package/resolver/app/transform/TransformHandler.js.map +1 -1
- package/resolver/app/transform/middleware.js +13 -20
- package/resolver/app/transform/middleware.js.map +1 -1
- package/resolver/app/utils/Retry.js +21 -24
- package/resolver/app/utils/Retry.js.map +1 -1
- package/resolver/app/utils/sleep.js +4 -5
- package/resolver/app/utils/sleep.js.map +1 -1
- package/resolver/app/validation/body.d.ts +25 -124
- package/resolver/app/validation/body.js +26 -31
- package/resolver/app/validation/body.js.map +1 -1
- package/resolver/app/validation/createJsonTransform.d.ts +1 -1
- package/resolver/app/validation/createJsonTransform.js +12 -13
- package/resolver/app/validation/createJsonTransform.js.map +1 -1
- package/resolver/app/validation/detail.d.ts +18 -71
- package/resolver/app/validation/detail.js +30 -35
- package/resolver/app/validation/detail.js.map +1 -1
- package/resolver/app/validation/event.d.ts +29 -188
- package/resolver/app/validation/event.js +17 -18
- package/resolver/app/validation/event.js.map +1 -1
- package/resolver/app/validation/numericString.d.ts +1 -1
- package/resolver/app/validation/numericString.js +8 -11
- package/resolver/app/validation/numericString.js.map +1 -1
- package/resolver/app/validation/system.d.ts +2 -14
- package/resolver/app/validation/system.js +8 -9
- package/resolver/app/validation/system.js.map +1 -1
- package/resolver/deployment/Deployment.js +28 -37
- package/resolver/deployment/Deployment.js.map +1 -1
- package/resolver/deployment/Deployments.js +20 -23
- package/resolver/deployment/Deployments.js.map +1 -1
- package/resolver/deployment/DeploymentsFetcher.js +75 -86
- package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
- package/resolver/deployment/types.d.ts +0 -2
- package/resolver/deployment/types.js +0 -3
- package/resolver/lambda/LambdaTrigger.js +24 -26
- package/resolver/lambda/LambdaTrigger.js.map +1 -1
- package/resolver/plugins/CommandHandlerPlugin.js +16 -15
- package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
- package/resolver/plugins/StorerAfterEachPlugin.js +20 -19
- package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
- package/resolver/plugins/TransformRecordPlugin.js +19 -18
- package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
- package/resolver/recordTypes/fileManager/CopyFile.js +44 -67
- package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.js +40 -58
- package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManager.js +5 -3
- package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +24 -35
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js +24 -35
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -27
- package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/fileManager/types.js +0 -3
- package/resolver/recordTypes/users/CopyUser.js +44 -54
- package/resolver/recordTypes/users/CopyUser.js.map +1 -1
- package/resolver/recordTypes/users/DeleteUser.js +40 -51
- package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.js +10 -26
- package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/users/types.js +0 -3
- package/resolver/recordTypes/users/users.js +5 -3
- package/resolver/recordTypes/users/users.js.map +1 -1
- package/resolver/recordTypes/users/usersOnDelete.js +23 -34
- package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
- package/resolver/recordTypes/users/usersOnPut.js +24 -35
- package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
- package/sync/ApiGatewaySyncDecorator.d.ts +14 -0
- package/sync/ApiGatewaySyncDecorator.js +49 -0
- package/sync/ApiGatewaySyncDecorator.js.map +1 -0
- package/sync/FilterOutRecord.js +9 -17
- package/sync/FilterOutRecord.js.map +1 -1
- package/sync/SyncSystemConfig.d.ts +11 -0
- package/sync/SyncSystemConfig.js +5 -0
- package/sync/SyncSystemConfig.js.map +1 -0
- package/sync/attachToDynamoDbDocument.js +46 -65
- package/sync/attachToDynamoDbDocument.js.map +1 -1
- package/sync/createHandler.js +31 -40
- package/sync/createHandler.js.map +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.js +36 -76
- package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
- package/sync/handler/Handler.js +64 -76
- package/sync/handler/Handler.js.map +1 -1
- package/sync/handler/HandlerConverter.js +21 -29
- package/sync/handler/HandlerConverter.js.map +1 -1
- package/sync/handler/converter/BatchGetCommandConverter.js +12 -11
- package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
- package/sync/handler/converter/BatchWriteCommandConverter.js +12 -11
- package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
- package/sync/handler/converter/DeleteCommandConverter.js +12 -11
- package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
- package/sync/handler/converter/GetCommandConverter.js +12 -11
- package/sync/handler/converter/GetCommandConverter.js.map +1 -1
- package/sync/handler/converter/PutCommandConverter.js +12 -11
- package/sync/handler/converter/PutCommandConverter.js.map +1 -1
- package/sync/handler/converter/QueryCommandConverter.js +12 -11
- package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
- package/sync/handler/converter/ScanCommandConverter.js +12 -11
- package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
- package/sync/handler/converter/UpdateCommandConverter.js +12 -11
- package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
- package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -37
- package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/DeleteCommandValue.js +19 -16
- package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/NullCommandValue.js +8 -8
- package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/PutCommandValue.js +19 -16
- package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/UpdateCommandValue.js +19 -16
- package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
- package/sync/handler/types.js +0 -3
- package/sync/plugins/FilterOutRecordPlugin.js +17 -19
- package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
- package/sync/types.js +0 -3
- package/sync/utils/getTableType.js +10 -11
- package/sync/utils/getTableType.js.map +1 -1
- package/sync/utils/manifest.d.ts +3 -7
- package/sync/utils/manifest.js +27 -36
- package/sync/utils/manifest.js.map +1 -1
- package/sync/utils/validateSystemInput.js +21 -29
- package/sync/utils/validateSystemInput.js.map +1 -1
- package/types.d.ts +0 -3
- package/types.js +6 -6
- package/types.js.map +1 -1
- package/utils/createSystemName.js +5 -3
- package/utils/createSystemName.js.map +1 -1
- package/worker/SyncWorkerConfig.d.ts +9 -0
- package/worker/SyncWorkerConfig.js +5 -0
- package/worker/SyncWorkerConfig.js.map +1 -0
- package/worker/SyncWorkerEventHandler.d.ts +14 -0
- package/worker/SyncWorkerEventHandler.js +5 -0
- package/worker/SyncWorkerEventHandler.js.map +1 -0
- package/worker/SyncWorkerEventType.d.ts +10 -0
- package/worker/SyncWorkerEventType.js +24 -0
- package/worker/SyncWorkerEventType.js.map +1 -0
- package/worker/SyncWorkerLambdaHandler.d.ts +13 -0
- package/worker/SyncWorkerLambdaHandler.js +61 -0
- package/worker/SyncWorkerLambdaHandler.js.map +1 -0
- package/worker/actions/copyFile/CopyFile.js +183 -258
- package/worker/actions/copyFile/CopyFile.js.map +1 -1
- package/worker/actions/copyFile/copyFileAction.js +26 -34
- package/worker/actions/copyFile/copyFileAction.js.map +1 -1
- package/worker/actions/copyFile/copyFileSchema.d.ts +6 -38
- package/worker/actions/copyFile/copyFileSchema.js +13 -14
- package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
- package/worker/actions/copyFile/types.js +0 -3
- package/worker/actions/createUser/CreateUser.js +51 -74
- package/worker/actions/createUser/CreateUser.js.map +1 -1
- package/worker/actions/createUser/createUserAction.js +24 -28
- package/worker/actions/createUser/createUserAction.js.map +1 -1
- package/worker/actions/createUser/createUserSchema.d.ts +6 -38
- package/worker/actions/createUser/createUserSchema.js +13 -14
- package/worker/actions/createUser/createUserSchema.js.map +1 -1
- package/worker/actions/createUser/types.js +0 -3
- package/worker/actions/deleteFile/DeleteFile.js +52 -67
- package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileAction.js +21 -29
- package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileSchema.d.ts +6 -38
- package/worker/actions/deleteFile/deleteFileSchema.js +13 -14
- package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
- package/worker/actions/deleteFile/types.js +0 -3
- package/worker/actions/deleteUser/DeleteUser.js +38 -52
- package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserAction.js +22 -26
- package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserSchema.d.ts +5 -23
- package/worker/actions/deleteUser/deleteUserSchema.js +12 -13
- package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
- package/worker/actions/deleteUser/types.js +0 -3
- package/worker/actions/logValidationError.js +5 -6
- package/worker/actions/logValidationError.js.map +1 -1
- package/worker/actions/removeCognitoUserAttributes.js +9 -15
- package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
- package/worker/actions/updateUser/UpdateUser.js +48 -65
- package/worker/actions/updateUser/UpdateUser.js.map +1 -1
- package/worker/actions/updateUser/types.js +0 -3
- package/worker/actions/updateUser/updateUserAction.js +24 -28
- package/worker/actions/updateUser/updateUserAction.js.map +1 -1
- package/worker/actions/updateUser/updateUserSchema.d.ts +6 -38
- package/worker/actions/updateUser/updateUserSchema.js +13 -14
- package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
- package/worker/handler/WorkerActionHandler.js +19 -21
- package/worker/handler/WorkerActionHandler.js.map +1 -1
- package/worker/plugins/WorkerActionPlugin.js +17 -16
- package/worker/plugins/WorkerActionPlugin.js.map +1 -1
- package/worker/types.js +0 -3
- package/index.js.map +0 -1
- package/resolver/app/abstractions/RecordHandler.js.map +0 -1
- package/resolver/app/abstractions/RecordsValidation.js.map +0 -1
- package/resolver/app/abstractions/ResolverApplication.js.map +0 -1
- package/resolver/app/abstractions/ResolverRecord.js.map +0 -1
- package/resolver/app/bundler/types.js.map +0 -1
- package/resolver/app/data/types.js.map +0 -1
- package/resolver/app/fetcher/types.js.map +0 -1
- package/resolver/app/ingestor/types.js.map +0 -1
- package/resolver/app/storer/types.js.map +0 -1
- package/resolver/createEventHandlerPlugin.d.ts +0 -11
- package/resolver/createEventHandlerPlugin.js +0 -120
- package/resolver/createEventHandlerPlugin.js.map +0 -1
- package/resolver/createResolverHandler.d.ts +0 -21
- package/resolver/createResolverHandler.js +0 -72
- package/resolver/createResolverHandler.js.map +0 -1
- package/resolver/deployment/types.js.map +0 -1
- package/resolver/recordTypes/fileManager/types.js.map +0 -1
- package/resolver/recordTypes/users/types.js.map +0 -1
- package/sync/createSendDataToEventBridgeOnRequestEnd.d.ts +0 -2
- package/sync/createSendDataToEventBridgeOnRequestEnd.js +0 -44
- package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +0 -1
- package/sync/createSyncSystem.d.ts +0 -16
- package/sync/createSyncSystem.js +0 -35
- package/sync/createSyncSystem.js.map +0 -1
- package/sync/handler/types.js.map +0 -1
- package/sync/requestPlugin.d.ts +0 -9
- package/sync/requestPlugin.js +0 -58
- package/sync/requestPlugin.js.map +0 -1
- package/sync/types.js.map +0 -1
- package/worker/actions/copyFile/types.js.map +0 -1
- package/worker/actions/createUser/types.js.map +0 -1
- package/worker/actions/deleteFile/types.js.map +0 -1
- package/worker/actions/deleteUser/types.js.map +0 -1
- package/worker/actions/updateUser/types.js.map +0 -1
- package/worker/createWorkerHandler.d.ts +0 -11
- package/worker/createWorkerHandler.js +0 -41
- package/worker/createWorkerHandler.js.map +0 -1
- package/worker/handler/eventHandler.d.ts +0 -1
- package/worker/handler/eventHandler.js +0 -24
- package/worker/handler/eventHandler.js.map +0 -1
- package/worker/types.js.map +0 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { convertException, createZodError } from "@webiny/utils";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const ex = createZodError(error);
|
|
7
|
-
console.log(convertException(ex));
|
|
2
|
+
const logValidationError = (error)=>{
|
|
3
|
+
if ("true" !== process.env.DEBUG || !error) return;
|
|
4
|
+
const ex = createZodError(error);
|
|
5
|
+
console.log(convertException(ex));
|
|
8
6
|
};
|
|
7
|
+
export { logValidationError };
|
|
9
8
|
|
|
10
9
|
//# sourceMappingURL=logValidationError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/logValidationError.js","sources":["../../../src/worker/actions/logValidationError.ts"],"sourcesContent":["import type { ZodError } from \"zod\";\nimport { convertException, createZodError } from \"@webiny/utils\";\n\nexport const logValidationError = (error?: ZodError): void => {\n if (process.env.DEBUG !== \"true\" || !error) {\n return;\n }\n const ex = createZodError(error);\n console.log(convertException(ex));\n};\n"],"names":["logValidationError","error","process","ex","createZodError","console","convertException"],"mappings":";AAGO,MAAMA,qBAAqB,CAACC;IAC/B,IAAIC,AAAsB,WAAtBA,QAAQ,GAAG,CAAC,KAAK,IAAe,CAACD,OACjC;IAEJ,MAAME,KAAKC,eAAeH;IAC1BI,QAAQ,GAAG,CAACC,iBAAiBH;AACjC"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (removeAttributes.includes(name)) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
return true;
|
|
14
|
-
});
|
|
15
|
-
};
|
|
1
|
+
const removeAttributes = [
|
|
2
|
+
"sub"
|
|
3
|
+
];
|
|
4
|
+
const removeCognitoUserAttributes = (attributes)=>attributes.filter((attr)=>{
|
|
5
|
+
const name = (attr.Name || "").toLowerCase();
|
|
6
|
+
if (removeAttributes.includes(name)) return false;
|
|
7
|
+
return true;
|
|
8
|
+
});
|
|
9
|
+
export { removeCognitoUserAttributes };
|
|
16
10
|
|
|
17
11
|
//# sourceMappingURL=removeCognitoUserAttributes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/removeCognitoUserAttributes.js","sources":["../../../src/worker/actions/removeCognitoUserAttributes.ts"],"sourcesContent":["/**\n * We need to remove some of the attributes from the Cognito user object before we store it via the Sync System.\n * sub - not allowed to be set by our code\n */\nimport type { AttributeType } from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\n\nconst removeAttributes: string[] = [\"sub\"];\n\nexport const removeCognitoUserAttributes = (attributes: AttributeType[]): AttributeType[] => {\n return attributes.filter(attr => {\n const name = (attr.Name || \"\").toLowerCase();\n if (removeAttributes.includes(name)) {\n return false;\n }\n return true;\n });\n};\n"],"names":["removeAttributes","removeCognitoUserAttributes","attributes","attr","name"],"mappings":"AAMA,MAAMA,mBAA6B;IAAC;CAAM;AAEnC,MAAMC,8BAA8B,CAACC,aACjCA,WAAW,MAAM,CAACC,CAAAA;QACrB,MAAMC,OAAQD,AAAAA,CAAAA,KAAK,IAAI,IAAI,EAAC,EAAG,WAAW;QAC1C,IAAIH,iBAAiB,QAAQ,CAACI,OAC1B,OAAO;QAEX,OAAO;IACX"}
|
|
@@ -1,74 +1,57 @@
|
|
|
1
1
|
import { AdminGetUserCommand, AdminUpdateUserAttributesCommand } 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
async update(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 UpdateUser {
|
|
5
|
+
constructor(params){
|
|
6
|
+
this.createCognitoProvider = params.createCognitoProvider;
|
|
26
7
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
8
|
+
async update(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) throw new Error(`Target user "${username}" does not exist in pool "${targetUserPoolId}".`);
|
|
28
|
+
const input = {
|
|
29
|
+
UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),
|
|
30
|
+
UserPoolId: targetUserPoolId,
|
|
31
|
+
Username: username
|
|
32
|
+
};
|
|
33
|
+
const cmd = new AdminUpdateUserAttributesCommand(input);
|
|
34
|
+
try {
|
|
35
|
+
await targetProvider.send(cmd);
|
|
36
|
+
} catch (ex) {
|
|
37
|
+
console.error(`Failed to update user "${username}" in pool "${targetUserPoolId}". More info in next log line.`);
|
|
38
|
+
console.log(convertException(ex));
|
|
39
|
+
}
|
|
37
40
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
async getUser(params) {
|
|
42
|
+
const { userPoolId, username, provider } = params;
|
|
43
|
+
const input = {
|
|
44
|
+
UserPoolId: userPoolId,
|
|
45
|
+
Username: username
|
|
46
|
+
};
|
|
47
|
+
const cmd = new AdminGetUserCommand(input);
|
|
48
|
+
try {
|
|
49
|
+
const result = await provider.send(cmd);
|
|
50
|
+
if (result.$metadata?.httpStatusCode === 200) return result;
|
|
51
|
+
} catch {}
|
|
52
|
+
return null;
|
|
49
53
|
}
|
|
50
|
-
}
|
|
51
|
-
async getUser(params) {
|
|
52
|
-
const {
|
|
53
|
-
userPoolId,
|
|
54
|
-
username,
|
|
55
|
-
provider
|
|
56
|
-
} = params;
|
|
57
|
-
const input = {
|
|
58
|
-
UserPoolId: userPoolId,
|
|
59
|
-
Username: username
|
|
60
|
-
};
|
|
61
|
-
const cmd = new AdminGetUserCommand(input);
|
|
62
|
-
try {
|
|
63
|
-
const result = await provider.send(cmd);
|
|
64
|
-
if (result.$metadata?.httpStatusCode === 200) {
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
} catch {
|
|
68
|
-
//
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
54
|
}
|
|
55
|
+
export { UpdateUser };
|
|
73
56
|
|
|
74
57
|
//# sourceMappingURL=UpdateUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/updateUser/UpdateUser.js","sources":["../../../../src/worker/actions/updateUser/UpdateUser.ts"],"sourcesContent":["import type {\n AdminGetUserCommandInput,\n AdminGetUserCommandOutput,\n AdminUpdateUserAttributesCommandInput,\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport {\n AdminGetUserCommand,\n AdminUpdateUserAttributesCommand\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 IUpdateUserParams {\n createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport interface IUpdateUserUpdateParams {\n username: string;\n sourceRegion: string;\n targetRegion: string;\n sourceUserPoolId: string;\n targetUserPoolId: string;\n}\n\ninterface IUpdateUserGetUserParams {\n userPoolId: string;\n username: string;\n provider: Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport class UpdateUser {\n private readonly createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n\n public constructor(params: IUpdateUserParams) {\n this.createCognitoProvider = params.createCognitoProvider;\n }\n\n public async update(params: IUpdateUserUpdateParams): 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 throw new Error(\n `Target user \"${username}\" does not exist in pool \"${targetUserPoolId}\".`\n );\n }\n\n const input: AdminUpdateUserAttributesCommandInput = {\n UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),\n UserPoolId: targetUserPoolId,\n Username: username\n };\n\n const cmd = new AdminUpdateUserAttributesCommand(input);\n\n try {\n await targetProvider.send(cmd);\n } catch (ex) {\n console.error(\n `Failed to update 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: IUpdateUserGetUserParams\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 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":["UpdateUser","params","sourceUserPoolId","targetUserPoolId","username","targetRegion","sourceRegion","sourceProvider","sourceUser","Error","targetProvider","targetUser","input","removeCognitoUserAttributes","cmd","AdminUpdateUserAttributesCommand","ex","console","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,IAAI,CAACC,YACD,MAAM,IAAIF,MACN,CAAC,aAAa,EAAEL,SAAS,0BAA0B,EAAED,iBAAiB,EAAE,CAAC;QAIjF,MAAMS,QAA+C;YACjD,gBAAgBC,4BAA4BL,WAAW,cAAc,IAAI,EAAE;YAC3E,YAAYL;YACZ,UAAUC;QACd;QAEA,MAAMU,MAAM,IAAIC,iCAAiCH;QAEjD,IAAI;YACA,MAAMF,eAAe,IAAI,CAACI;QAC9B,EAAE,OAAOE,IAAI;YACTC,QAAQ,KAAK,CACT,CAAC,uBAAuB,EAAEb,SAAS,WAAW,EAAED,iBAAiB,8BAA8B,CAAC;YAEpGc,QAAQ,GAAG,CAACC,iBAAiBF;QACjC;IACJ;IAEA,MAAc,QACVf,MAAgC,EACS;QACzC,MAAM,EAAEkB,UAAU,EAAEf,QAAQ,EAAEgB,QAAQ,EAAE,GAAGnB;QAC3C,MAAMW,QAAkC;YACpC,YAAYO;YACZ,UAAUf;QACd;QAEA,MAAMU,MAAM,IAAIO,oBAAoBT;QACpC,IAAI;YACA,MAAMU,SAAS,MAAMF,SAAS,IAAI,CAACN;YACnC,IAAIQ,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 { createUpdateUserSchema } from "./updateUserSchema.js";
|
|
3
3
|
import { UpdateUser } from "./UpdateUser.js";
|
|
4
4
|
import { logValidationError } from "../logValidationError.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
targetRegion: data.target.region,
|
|
29
|
-
targetUserPoolId: data.target.userPoolId
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
5
|
+
const createUpdateUserAction = (params)=>{
|
|
6
|
+
const updateUser = new UpdateUser({
|
|
7
|
+
createCognitoProvider: params.createCognitoProvider
|
|
8
|
+
});
|
|
9
|
+
return createWorkerActionPlugin({
|
|
10
|
+
name: "sync.worker.action.updateUser",
|
|
11
|
+
parse: (input)=>{
|
|
12
|
+
const schema = createUpdateUserSchema();
|
|
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 updateUser.update({
|
|
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 { createUpdateUserAction };
|
|
34
30
|
|
|
35
31
|
//# sourceMappingURL=updateUserAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/updateUser/updateUserAction.js","sources":["../../../../src/worker/actions/updateUser/updateUserAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport type { IUpdateUserActionEvent } from \"~/worker/actions/updateUser/types.js\";\nimport { createUpdateUserSchema } from \"./updateUserSchema.js\";\nimport type {\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { UpdateUser } from \"~/worker/actions/updateUser/UpdateUser.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateUpdateUserActionParams {\n createCognitoProvider(\n config: Partial<CognitoIdentityProviderClientConfig>\n ): Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport const createUpdateUserAction = (params: ICreateUpdateUserActionParams) => {\n const updateUser = new UpdateUser({\n createCognitoProvider: params.createCognitoProvider\n });\n return createWorkerActionPlugin<IUpdateUserActionEvent>({\n name: \"sync.worker.action.updateUser\",\n parse: input => {\n const schema = createUpdateUserSchema();\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 updateUser.update({\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":["createUpdateUserAction","params","updateUser","UpdateUser","createWorkerActionPlugin","input","schema","createUpdateUserSchema","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 createUpdateUserSchema: () => zod.ZodObject<{
|
|
3
|
-
action: zod.ZodEnum<
|
|
3
|
+
action: zod.ZodEnum<{
|
|
4
|
+
updateUser: "updateUser";
|
|
5
|
+
}>;
|
|
4
6
|
username: zod.ZodString;
|
|
5
7
|
source: zod.ZodObject<{
|
|
6
8
|
userPoolId: zod.ZodString;
|
|
7
9
|
region: zod.ZodString;
|
|
8
|
-
},
|
|
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
|
-
},
|
|
19
|
-
|
|
20
|
-
userPoolId: string;
|
|
21
|
-
}, {
|
|
22
|
-
region: string;
|
|
23
|
-
userPoolId: string;
|
|
24
|
-
}>;
|
|
25
|
-
}, "strip", zod.ZodTypeAny, {
|
|
26
|
-
action: "updateUser";
|
|
27
|
-
source: {
|
|
28
|
-
region: string;
|
|
29
|
-
userPoolId: string;
|
|
30
|
-
};
|
|
31
|
-
target: {
|
|
32
|
-
region: string;
|
|
33
|
-
userPoolId: string;
|
|
34
|
-
};
|
|
35
|
-
username: string;
|
|
36
|
-
}, {
|
|
37
|
-
action: "updateUser";
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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 createUpdateUserSchema = ()=>zod.object({
|
|
7
|
+
action: zod["enum"]([
|
|
8
|
+
"updateUser"
|
|
9
|
+
]),
|
|
10
|
+
username: zod.string().min(1, "Username is required."),
|
|
11
|
+
source: createDataSchema("Source"),
|
|
12
|
+
target: createDataSchema("Target")
|
|
13
|
+
});
|
|
14
|
+
export { createUpdateUserSchema };
|
|
16
15
|
|
|
17
16
|
//# sourceMappingURL=updateUserSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/updateUser/updateUserSchema.js","sources":["../../../../src/worker/actions/updateUser/updateUserSchema.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 createUpdateUserSchema = () => {\n return zod.object({\n action: zod.enum([\"updateUser\"]),\n username: zod.string().min(1, \"Username is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"names":["createDataSchema","type","zod","createUpdateUserSchema"],"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,26 +1,24 @@
|
|
|
1
1
|
import { WebinyError } from "@webiny/error";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
class WorkerActionHandler {
|
|
3
|
+
constructor(params){
|
|
4
|
+
this.plugins = params.plugins;
|
|
5
|
+
}
|
|
6
|
+
async handle(payload) {
|
|
7
|
+
for (const plugin of this.plugins){
|
|
8
|
+
const data = plugin.parse(payload);
|
|
9
|
+
if (data) return await plugin.handle({
|
|
10
|
+
data
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
throw new WebinyError({
|
|
14
|
+
message: "Unsupported action on payload.",
|
|
15
|
+
code: "UNSUPPORTED_ACTION",
|
|
16
|
+
data: {
|
|
17
|
+
payload
|
|
18
|
+
}
|
|
19
|
+
});
|
|
15
20
|
}
|
|
16
|
-
throw new WebinyError({
|
|
17
|
-
message: "Unsupported action on payload.",
|
|
18
|
-
code: "UNSUPPORTED_ACTION",
|
|
19
|
-
data: {
|
|
20
|
-
payload
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
21
|
}
|
|
22
|
+
export { WorkerActionHandler };
|
|
25
23
|
|
|
26
24
|
//# sourceMappingURL=WorkerActionHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/handler/WorkerActionHandler.js","sources":["../../../src/worker/handler/WorkerActionHandler.ts"],"sourcesContent":["import type { IActionHandler } from \"~/worker/types.js\";\nimport type { WorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface IActionHandlerParams {\n plugins: WorkerActionPlugin[];\n}\n\nexport class WorkerActionHandler implements IActionHandler {\n private readonly plugins: WorkerActionPlugin[];\n\n public constructor(params: IActionHandlerParams) {\n this.plugins = params.plugins;\n }\n\n public async handle(payload: unknown): Promise<void> {\n for (const plugin of this.plugins) {\n const data = plugin.parse(payload);\n if (!data) {\n continue;\n }\n return await plugin.handle({\n data\n });\n }\n throw new WebinyError({\n message: \"Unsupported action on payload.\",\n code: \"UNSUPPORTED_ACTION\",\n data: {\n payload\n }\n });\n }\n}\n"],"names":["WorkerActionHandler","params","payload","plugin","data","WebinyError"],"mappings":";AAQO,MAAMA;IAGT,YAAmBC,MAA4B,CAAE;QAC7C,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO;IACjC;IAEA,MAAa,OAAOC,OAAgB,EAAiB;QACjD,KAAK,MAAMC,UAAU,IAAI,CAAC,OAAO,CAAE;YAC/B,MAAMC,OAAOD,OAAO,KAAK,CAACD;YAC1B,IAAKE,MAGL,OAAO,MAAMD,OAAO,MAAM,CAAC;gBACvBC;YACJ;QACJ;QACA,MAAM,IAAIC,YAAY;YAClB,SAAS;YACT,MAAM;YACN,MAAM;gBACFH;YACJ;QACJ;IACJ;AACJ"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins/Plugin.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
class WorkerActionPlugin extends Plugin {
|
|
3
|
+
static{
|
|
4
|
+
this.type = "sync.worker.action";
|
|
5
|
+
}
|
|
6
|
+
constructor(action){
|
|
7
|
+
super();
|
|
8
|
+
this.name = action.name;
|
|
9
|
+
this.action = action;
|
|
10
|
+
}
|
|
11
|
+
parse(input) {
|
|
12
|
+
return this.action.parse(input);
|
|
13
|
+
}
|
|
14
|
+
handle(params) {
|
|
15
|
+
return this.action.handle(params);
|
|
16
|
+
}
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
18
|
+
const createWorkerActionPlugin = (action)=>new WorkerActionPlugin(action);
|
|
19
|
+
export { WorkerActionPlugin, createWorkerActionPlugin };
|
|
19
20
|
|
|
20
21
|
//# sourceMappingURL=WorkerActionPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/plugins/WorkerActionPlugin.js","sources":["../../../src/worker/plugins/WorkerActionPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin.js\";\nimport type { IWorkerAction, IWorkerActionHandleParams } from \"../types.js\";\n\nexport class WorkerActionPlugin<T = unknown> extends Plugin {\n public static override readonly type: string = \"sync.worker.action\";\n\n private readonly action: IWorkerAction<T>;\n\n public constructor(action: IWorkerAction<T>) {\n super();\n this.name = action.name;\n this.action = action;\n }\n\n public parse(input: unknown): T | undefined {\n return this.action.parse(input);\n }\n\n public handle(params: IWorkerActionHandleParams<T>): Promise<void> {\n return this.action.handle(params);\n }\n}\n\nexport const createWorkerActionPlugin = <T>(action: IWorkerAction<T>): WorkerActionPlugin<T> => {\n return new WorkerActionPlugin<T>(action);\n};\n"],"names":["WorkerActionPlugin","Plugin","action","input","params","createWorkerActionPlugin"],"mappings":";AAGO,MAAMA,2BAAwCC;;aACjB,IAAI,GAAW;;IAI/C,YAAmBC,MAAwB,CAAE;QACzC,KAAK;QACL,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEO,MAAMC,KAAc,EAAiB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAACA;IAC7B;IAEO,OAAOC,MAAoC,EAAiB;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA;IAC9B;AACJ;AAEO,MAAMC,2BAA2B,CAAIH,SACjC,IAAIF,mBAAsBE"}
|
package/worker/types.js
CHANGED
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./worker/createWorkerHandler.js\";\nexport * from \"./sync/createSyncSystem.js\";\nexport * from \"./resolver/createResolverHandler.js\";\n"],"mappings":"AAAA;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["RecordHandler.ts"],"sourcesContent":["import type { IIngestorResult } from \"~/resolver/app/ingestor/types.js\";\n\nexport interface IRecordHandlerHandleParams {\n data: IIngestorResult;\n}\n\nexport interface IRecordHandler {\n handle(params: IRecordHandlerHandleParams): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["RecordsValidation.ts"],"sourcesContent":["import type { SQSRecord } from \"@webiny/aws-sdk/types/index.js\";\nimport type { IResolverSQSRecord } from \"~/resolver/app/abstractions/ResolverRecord.js\";\n\nexport interface IRecordsValidationValid {\n records: IResolverSQSRecord[];\n error?: never;\n}\n\nexport interface IRecordsValidationError {\n records?: never;\n error: Error;\n}\n\nexport type IRecordsValidationResult = IRecordsValidationValid | IRecordsValidationError;\n\nexport interface IRecordsValidation {\n validate(records: SQSRecord[]): Promise<IRecordsValidationResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["ResolverApplication.ts"],"sourcesContent":["import type { SQSRecord } from \"@webiny/aws-sdk/types/index.js\";\n\nexport interface IResolverApplicationResolveParams {\n records: SQSRecord[];\n}\n\nexport interface IResolverApplication {\n resolve(params: IResolverApplicationResolveParams): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["ResolverRecord.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IDetail } from \"~/sync/handler/types.js\";\nimport type { DynamoDBTableType, ExtendedCommandType } from \"~/types.js\";\nimport type { SQS_EVENT_NAME } from \"~/constants.js\";\n\nexport interface IResolverRecordBodyItem {\n PK: string;\n SK: string;\n command: ExtendedCommandType;\n /**\n * There will be multiple tables that will get populated through the system (regular table and opensearch for start).\n */\n tableName: string;\n tableType: DynamoDBTableType;\n}\n\nexport interface IResolverSQSRecordBody {\n version: `${number}`;\n id: string;\n \"detail-type\": typeof SQS_EVENT_NAME;\n source: `webiny:${string}`;\n account: `${number}`;\n time: Date;\n region: string;\n resources: unknown[];\n detail: IDetail;\n}\n\nexport interface IResolverSQSRecordAttributes {\n ApproximateReceiveCount: string;\n SentTimestamp: string;\n SenderId: string;\n ApproximateFirstReceiveTimestamp: string;\n}\n\nexport interface IResolverSQSRecord {\n messageId: string;\n receiptHandle: string;\n body: IResolverSQSRecordBody;\n attributes: IResolverSQSRecordAttributes;\n messageAttributes?: GenericRecord;\n md5OfBody: string;\n eventSource: string;\n eventSourceARN: string;\n awsRegion: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IIngestorResultItem } from \"~/resolver/app/ingestor/types.js\";\nimport type { CommandType } from \"~/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\n\nexport interface IBundleItem {\n PK: string;\n SK: string;\n}\n\nexport interface IBundle {\n readonly items: IBundleItem[];\n readonly command: CommandType;\n readonly table: ITable;\n readonly source: IDeployment;\n canAdd(item: IIngestorResultItem): boolean;\n add(item: IIngestorResultItem): void;\n}\n\nexport interface IBundlerBundleParams {\n items: IIngestorResultItem[];\n}\n\nexport interface IBundler {\n bundle(params: IBundlerBundleParams): IBundles;\n}\n\nexport interface IBundlesAddParams {\n item: IIngestorResultItem;\n}\n\nexport interface IBundles {\n add(params: IBundlesAddParams): void;\n getBundles(): IBundle[];\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ITable } from \"~/sync/types.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IStoreItem } from \"~/resolver/app/storer/types.js\";\n\nexport interface IInputItem {\n PK: string;\n SK: string;\n table: Pick<ITable, \"name\">;\n source: Pick<IDeployment, \"name\">;\n}\n\nexport interface IItem {\n PK: string;\n SK: string;\n table: Pick<ITable, \"name\">;\n source: Pick<IDeployment, \"name\">;\n data: IStoreItem | null;\n}\n\nexport interface ISourceDataContainer {\n items: GenericRecord<string, IItem>;\n get(item: IInputItem): IStoreItem | null;\n add(item: IInputItem, data: IStoreItem | null): void;\n merge(container: ISourceDataContainer): void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { ISourceDataContainer } from \"~/resolver/app/data/types.js\";\n\nexport interface IFetcherExecParamsItem {\n PK: string;\n SK: string;\n}\n\nexport interface IFetcherExecParams {\n maxBatchSize?: number;\n deployment: IDeployment;\n table: ITable;\n items: IFetcherExecParamsItem[];\n}\n\nexport interface IFetcherExecValidResult {\n error?: never;\n items: ISourceDataContainer;\n}\n\nexport interface IFetcherExecErrorResult {\n error: Error;\n items?: never;\n}\n\nexport type IFetcherExecResult = IFetcherExecValidResult | IFetcherExecErrorResult;\n\nexport interface IFetcher {\n exec(params: IFetcherExecParams): Promise<IFetcherExecResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { CommandType } from \"~/types.js\";\nimport type { IResolverSQSRecord } from \"~/resolver/app/abstractions/ResolverRecord.js\";\nimport type { IDetailItem } from \"~/sync/handler/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\n\nexport interface IIngestorIngestParams {\n records: IResolverSQSRecord[];\n}\n\nexport interface IIngestorResultItem {\n PK: string;\n SK: string;\n command: CommandType;\n table: ITable;\n source: IDeployment;\n}\n\nexport interface IIngestorResultAddParams {\n item: IDetailItem;\n source: IDeployment;\n}\n\nexport interface IIngestorResult {\n getItems(): IIngestorResultItem[];\n add(params: IIngestorResultAddParams): void;\n}\n\nexport interface IIngestor {\n ingest(params: IIngestorIngestParams): Promise<IIngestorResult>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\nimport type { CommandType } from \"~/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IBundle } from \"../bundler/types.js\";\n\nexport type StoreItemPossibleValues =\n | string\n | number\n | boolean\n | undefined\n | null\n | GenericRecord\n | StoreItemPossibleValues[];\n\nexport interface IStoreItem {\n PK: string;\n SK: string;\n [key: string]: StoreItemPossibleValues;\n}\n\nexport interface IStorerExecParams {\n deployment: IDeployment;\n bundle: IBundle;\n command: CommandType;\n table: ITable;\n items: IStoreItem[];\n}\n\nexport interface IStorer {\n store(params: IStorerExecParams): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBClientConfig, DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
2
|
-
import type { Reply as FastifyReply } from "@webiny/handler/types.js";
|
|
3
|
-
import { SQSEventHandler } from "@webiny/handler-aws/sqs/plugins/SQSEventHandler.js";
|
|
4
|
-
export interface ICreateEventHandlerPluginParams {
|
|
5
|
-
tableName: string | undefined;
|
|
6
|
-
createDocumentClient: (params: DynamoDBClientConfig) => Pick<DynamoDBDocument, "send">;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* TODO maybe add logger?
|
|
10
|
-
*/
|
|
11
|
-
export declare const createEventHandlerPlugin: (params: ICreateEventHandlerPluginParams) => SQSEventHandler<FastifyReply>;
|