@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.
- 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 +30 -22
- 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 +37 -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,58 +1,47 @@
|
|
|
1
1
|
import { AdminGetUserCommand } from "@webiny/aws-sdk/client-cognito-identity-provider/index.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
async handle(params) {
|
|
8
|
-
const {
|
|
9
|
-
username,
|
|
10
|
-
target
|
|
11
|
-
} = params;
|
|
12
|
-
const exists = await this.userExists({
|
|
13
|
-
username,
|
|
14
|
-
userPoolId: target.services.cognitoUserPoolId,
|
|
15
|
-
region: target.region
|
|
16
|
-
});
|
|
17
|
-
if (!exists) {
|
|
18
|
-
return null;
|
|
2
|
+
class DeleteUser {
|
|
3
|
+
constructor(params){
|
|
4
|
+
this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;
|
|
5
|
+
this.getLambdaTrigger = params.getLambdaTrigger;
|
|
19
6
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
7
|
+
async handle(params) {
|
|
8
|
+
const { username, target } = params;
|
|
9
|
+
const exists = await this.userExists({
|
|
10
|
+
username,
|
|
11
|
+
userPoolId: target.services.cognitoUserPoolId,
|
|
12
|
+
region: target.region
|
|
13
|
+
});
|
|
14
|
+
if (!exists) return null;
|
|
15
|
+
return await this.getLambdaTrigger().handle({
|
|
16
|
+
invocationType: "Event",
|
|
17
|
+
payload: {
|
|
18
|
+
action: "deleteUser",
|
|
19
|
+
username,
|
|
20
|
+
target: {
|
|
21
|
+
region: target.region,
|
|
22
|
+
userPoolId: target.services.cognitoUserPoolId
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async userExists(params) {
|
|
28
|
+
const { userPoolId, username, region } = params;
|
|
29
|
+
const provider = this.createCognitoIdentityProviderClient({
|
|
30
|
+
region
|
|
31
|
+
});
|
|
32
|
+
const input = {
|
|
33
|
+
UserPoolId: userPoolId,
|
|
34
|
+
Username: username
|
|
35
|
+
};
|
|
36
|
+
const cmd = new AdminGetUserCommand(input);
|
|
37
|
+
try {
|
|
38
|
+
const result = await provider.send(cmd);
|
|
39
|
+
return result.$metadata?.httpStatusCode === 200;
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
31
42
|
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
async userExists(params) {
|
|
36
|
-
const {
|
|
37
|
-
userPoolId,
|
|
38
|
-
username,
|
|
39
|
-
region
|
|
40
|
-
} = params;
|
|
41
|
-
const provider = this.createCognitoIdentityProviderClient({
|
|
42
|
-
region
|
|
43
|
-
});
|
|
44
|
-
const input = {
|
|
45
|
-
UserPoolId: userPoolId,
|
|
46
|
-
Username: username
|
|
47
|
-
};
|
|
48
|
-
const cmd = new AdminGetUserCommand(input);
|
|
49
|
-
try {
|
|
50
|
-
const result = await provider.send(cmd);
|
|
51
|
-
return result.$metadata?.httpStatusCode === 200;
|
|
52
|
-
} catch {
|
|
53
|
-
return false;
|
|
54
43
|
}
|
|
55
|
-
}
|
|
56
44
|
}
|
|
45
|
+
export { DeleteUser };
|
|
57
46
|
|
|
58
47
|
//# sourceMappingURL=DeleteUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"resolver/recordTypes/users/DeleteUser.js","sources":["../../../../src/resolver/recordTypes/users/DeleteUser.ts"],"sourcesContent":["import type {\n ICreateCognitoIdentityProviderClientCb,\n IDeleteUser,\n IDeleteUserHandleParams\n} from \"./types.js\";\nimport type { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { AdminGetUserCommandInput } from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { AdminGetUserCommand } from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport type { IDeleteUserLambdaPayload } from \"~/types.js\";\n\ninterface IGetUserParams {\n username: string;\n userPoolId: string;\n region: string;\n}\n\nexport interface IGetLambdaTriggerCb {\n (): LambdaTrigger<IDeleteUserLambdaPayload>;\n}\n\nexport interface IDeleteUserParams {\n createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n getLambdaTrigger: IGetLambdaTriggerCb;\n}\n\nexport class DeleteUser implements IDeleteUser {\n private readonly createCognitoIdentityProviderClient: ICreateCognitoIdentityProviderClientCb;\n private readonly getLambdaTrigger: IGetLambdaTriggerCb;\n\n public constructor(params: IDeleteUserParams) {\n this.createCognitoIdentityProviderClient = params.createCognitoIdentityProviderClient;\n this.getLambdaTrigger = params.getLambdaTrigger;\n }\n\n public async handle(params: IDeleteUserHandleParams): Promise<InvokeCommandOutput | null> {\n const { username, target } = params;\n\n const exists = await this.userExists({\n username,\n userPoolId: target.services.cognitoUserPoolId,\n region: target.region\n });\n if (!exists) {\n return null;\n }\n\n return await this.getLambdaTrigger().handle({\n invocationType: \"Event\",\n payload: {\n /**\n * We need to be able to create or update a user, depending on whether it already exists in the target user pool.\n */\n action: \"deleteUser\",\n username,\n target: {\n region: target.region,\n userPoolId: target.services.cognitoUserPoolId\n }\n }\n });\n }\n\n private async userExists(params: IGetUserParams): Promise<boolean> {\n const { userPoolId, username, region } = params;\n\n const provider = this.createCognitoIdentityProviderClient({\n region\n });\n\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n const cmd = new AdminGetUserCommand(input);\n try {\n const result = await provider.send(cmd);\n return result.$metadata?.httpStatusCode === 200;\n } catch {\n return false;\n }\n }\n}\n"],"names":["DeleteUser","params","username","target","exists","userPoolId","region","provider","input","cmd","AdminGetUserCommand","result"],"mappings":";AA0BO,MAAMA;IAIT,YAAmBC,MAAyB,CAAE;QAC1C,IAAI,CAAC,mCAAmC,GAAGA,OAAO,mCAAmC;QACrF,IAAI,CAAC,gBAAgB,GAAGA,OAAO,gBAAgB;IACnD;IAEA,MAAa,OAAOA,MAA+B,EAAuC;QACtF,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGF;QAE7B,MAAMG,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC;YACjCF;YACA,YAAYC,OAAO,QAAQ,CAAC,iBAAiB;YAC7C,QAAQA,OAAO,MAAM;QACzB;QACA,IAAI,CAACC,QACD,OAAO;QAGX,OAAO,MAAM,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;YACxC,gBAAgB;YAChB,SAAS;gBAIL,QAAQ;gBACRF;gBACA,QAAQ;oBACJ,QAAQC,OAAO,MAAM;oBACrB,YAAYA,OAAO,QAAQ,CAAC,iBAAiB;gBACjD;YACJ;QACJ;IACJ;IAEA,MAAc,WAAWF,MAAsB,EAAoB;QAC/D,MAAM,EAAEI,UAAU,EAAEH,QAAQ,EAAEI,MAAM,EAAE,GAAGL;QAEzC,MAAMM,WAAW,IAAI,CAAC,mCAAmC,CAAC;YACtDD;QACJ;QAEA,MAAME,QAAkC;YACpC,YAAYH;YACZ,UAAUH;QACd;QACA,MAAMO,MAAM,IAAIC,oBAAoBF;QACpC,IAAI;YACA,MAAMG,SAAS,MAAMJ,SAAS,IAAI,CAACE;YACnC,OAAOE,OAAO,SAAS,EAAE,mBAAmB;QAChD,EAAE,OAAM;YACJ,OAAO;QACX;IACJ;AACJ"}
|
|
@@ -1,29 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
} else if (item.PK.includes("#ADMIN_USER#") === false) {
|
|
11
|
-
return false;
|
|
12
|
-
} else if (item.SK !== "A") {
|
|
13
|
-
return false;
|
|
14
|
-
} else if (item.TYPE !== "adminUsers.user") {
|
|
15
|
-
return false;
|
|
16
|
-
} else if (!source.services.cognitoUserPoolId || !target.services.cognitoUserPoolId) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* TODO verify that email is always present in Cognito users.
|
|
21
|
-
*/
|
|
22
|
-
// @ts-expect-error
|
|
23
|
-
else if (!item.data?.email) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
return true;
|
|
1
|
+
const shouldBeHandled = (params)=>{
|
|
2
|
+
const { item, table, source, target } = params;
|
|
3
|
+
if ("regular" !== table.type) return false;
|
|
4
|
+
if (false === item.PK.includes("#ADMIN_USER#")) return false;
|
|
5
|
+
if ("A" !== item.SK) return false;
|
|
6
|
+
if ("adminUsers.user" !== item.TYPE) return false;
|
|
7
|
+
if (!source.services.cognitoUserPoolId || !target.services.cognitoUserPoolId) return false;
|
|
8
|
+
else if (!item.data?.email) return false;
|
|
9
|
+
return true;
|
|
27
10
|
};
|
|
11
|
+
export { shouldBeHandled };
|
|
28
12
|
|
|
29
13
|
//# sourceMappingURL=shouldBeHandled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"resolver/recordTypes/users/shouldBeHandled.js","sources":["../../../../src/resolver/recordTypes/users/shouldBeHandled.ts"],"sourcesContent":["import type { IStorerAfterEachPluginCanHandleParams } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\n\nexport const shouldBeHandled = (params: IStorerAfterEachPluginCanHandleParams): boolean => {\n const { item, table, source, target } = params;\n if (table.type !== \"regular\") {\n return false;\n } else if (item.PK.includes(\"#ADMIN_USER#\") === false) {\n return false;\n } else if (item.SK !== \"A\") {\n return false;\n } else if (item.TYPE !== \"adminUsers.user\") {\n return false;\n } else if (!source.services.cognitoUserPoolId || !target.services.cognitoUserPoolId) {\n return false;\n }\n /**\n * TODO verify that email is always present in Cognito users.\n */\n // @ts-expect-error\n else if (!item.data?.email) {\n return false;\n }\n return true;\n};\n"],"names":["shouldBeHandled","params","item","table","source","target"],"mappings":"AAEO,MAAMA,kBAAkB,CAACC;IAC5B,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGJ;IACxC,IAAIE,AAAe,cAAfA,MAAM,IAAI,EACV,OAAO;IACJ,IAAID,AAAqC,UAArCA,KAAK,EAAE,CAAC,QAAQ,CAAC,iBACxB,OAAO;IACJ,IAAIA,AAAY,QAAZA,KAAK,EAAE,EACd,OAAO;IACJ,IAAIA,AAAc,sBAAdA,KAAK,IAAI,EAChB,OAAO;IACJ,IAAI,CAACE,OAAO,QAAQ,CAAC,iBAAiB,IAAI,CAACC,OAAO,QAAQ,CAAC,iBAAiB,EAC/E,OAAO;SAMN,IAAI,CAACH,KAAK,IAAI,EAAE,OACjB,OAAO;IAEX,OAAO;AACX"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createUserOnPutPlugin } from "./usersOnPut.js";
|
|
2
2
|
import { createUserOnDeletePlugin } from "./usersOnDelete.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const createUsersPlugins = (params)=>[
|
|
4
|
+
createUserOnPutPlugin(params),
|
|
5
|
+
createUserOnDeletePlugin(params)
|
|
6
|
+
];
|
|
7
|
+
export { createUsersPlugins };
|
|
6
8
|
|
|
7
9
|
//# sourceMappingURL=users.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"resolver/recordTypes/users/users.js","sources":["../../../../src/resolver/recordTypes/users/users.ts"],"sourcesContent":["import { createUserOnPutPlugin } from \"./usersOnPut.js\";\nimport { createUserOnDeletePlugin } from \"./usersOnDelete.js\";\nimport type { ICopyUser, IDeleteUser } from \"./types.js\";\n\nexport interface ICreateUsersPluginsParams {\n copyUser: ICopyUser;\n deleteUser: IDeleteUser;\n}\n\nexport const createUsersPlugins = (params: ICreateUsersPluginsParams) => {\n return [createUserOnPutPlugin(params), createUserOnDeletePlugin(params)];\n};\n"],"names":["createUsersPlugins","params","createUserOnPutPlugin","createUserOnDeletePlugin"],"mappings":";;AASO,MAAMA,qBAAqB,CAACC,SACxB;QAACC,sBAAsBD;QAASE,yBAAyBF;KAAQ"}
|
|
@@ -1,40 +1,29 @@
|
|
|
1
1
|
import { createStorerAfterEachPluginWithName } from "../../plugins/StorerAfterEachPlugin.js";
|
|
2
2
|
import { shouldBeHandled } from "./shouldBeHandled.js";
|
|
3
3
|
import { convertException } from "@webiny/utils";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const username = item.data.email;
|
|
27
|
-
try {
|
|
28
|
-
await deleteUser.handle({
|
|
29
|
-
target: params.target,
|
|
30
|
-
username
|
|
31
|
-
});
|
|
32
|
-
} catch (ex) {
|
|
33
|
-
console.error("Error while handling users onDelete plugin.");
|
|
34
|
-
console.log(convertException(ex));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|
|
4
|
+
const createUserOnDeletePlugin = (params)=>{
|
|
5
|
+
const { deleteUser } = params;
|
|
6
|
+
return createStorerAfterEachPluginWithName("users.onDelete", {
|
|
7
|
+
canHandle: (params)=>{
|
|
8
|
+
const { command } = params;
|
|
9
|
+
if ("delete" !== command) return false;
|
|
10
|
+
return shouldBeHandled(params);
|
|
11
|
+
},
|
|
12
|
+
handle: async (params)=>{
|
|
13
|
+
const { item } = params;
|
|
14
|
+
const username = item.data.email;
|
|
15
|
+
try {
|
|
16
|
+
await deleteUser.handle({
|
|
17
|
+
target: params.target,
|
|
18
|
+
username
|
|
19
|
+
});
|
|
20
|
+
} catch (ex) {
|
|
21
|
+
console.error("Error while handling users onDelete plugin.");
|
|
22
|
+
console.log(convertException(ex));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
});
|
|
38
26
|
};
|
|
27
|
+
export { createUserOnDeletePlugin };
|
|
39
28
|
|
|
40
29
|
//# sourceMappingURL=usersOnDelete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"resolver/recordTypes/users/usersOnDelete.js","sources":["../../../../src/resolver/recordTypes/users/usersOnDelete.ts"],"sourcesContent":["import { createStorerAfterEachPluginWithName } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\nimport { shouldBeHandled } from \"./shouldBeHandled.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { IDeleteUser } from \"~/resolver/recordTypes/users/types.js\";\n\nexport interface IDeleteUserOnDeletePluginParams {\n deleteUser: IDeleteUser;\n}\n\nexport const createUserOnDeletePlugin = (params: IDeleteUserOnDeletePluginParams) => {\n const { deleteUser } = params;\n\n return createStorerAfterEachPluginWithName(\"users.onDelete\", {\n canHandle: params => {\n const { command } = params;\n if (command !== \"delete\") {\n return false;\n }\n return shouldBeHandled(params);\n },\n handle: async params => {\n const { item } = params;\n /**\n * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.\n */\n // @ts-expect-error\n const username = item.data.email as string;\n try {\n await deleteUser.handle({\n target: params.target,\n username\n });\n } catch (ex) {\n console.error(\"Error while handling users onDelete plugin.\");\n console.log(convertException(ex));\n }\n }\n });\n};\n"],"names":["createUserOnDeletePlugin","params","deleteUser","createStorerAfterEachPluginWithName","command","shouldBeHandled","item","username","ex","console","convertException"],"mappings":";;;AASO,MAAMA,2BAA2B,CAACC;IACrC,MAAM,EAAEC,UAAU,EAAE,GAAGD;IAEvB,OAAOE,oCAAoC,kBAAkB;QACzD,WAAWF,CAAAA;YACP,MAAM,EAAEG,OAAO,EAAE,GAAGH;YACpB,IAAIG,AAAY,aAAZA,SACA,OAAO;YAEX,OAAOC,gBAAgBJ;QAC3B;QACA,QAAQ,OAAMA;YACV,MAAM,EAAEK,IAAI,EAAE,GAAGL;YAKjB,MAAMM,WAAWD,KAAK,IAAI,CAAC,KAAK;YAChC,IAAI;gBACA,MAAMJ,WAAW,MAAM,CAAC;oBACpB,QAAQD,OAAO,MAAM;oBACrBM;gBACJ;YACJ,EAAE,OAAOC,IAAI;gBACTC,QAAQ,KAAK,CAAC;gBACdA,QAAQ,GAAG,CAACC,iBAAiBF;YACjC;QACJ;IACJ;AACJ"}
|
|
@@ -1,41 +1,30 @@
|
|
|
1
1
|
import { createStorerAfterEachPluginWithName } from "../../plugins/StorerAfterEachPlugin.js";
|
|
2
2
|
import { shouldBeHandled } from "./shouldBeHandled.js";
|
|
3
3
|
import { convertException } from "@webiny/utils";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
try {
|
|
28
|
-
await copyUser.handle({
|
|
29
|
-
target: params.target,
|
|
30
|
-
source: params.source,
|
|
31
|
-
username
|
|
32
|
-
});
|
|
33
|
-
} catch (ex) {
|
|
34
|
-
console.error("Error while handling users onPut plugin.");
|
|
35
|
-
console.log(convertException(ex));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
});
|
|
4
|
+
const createUserOnPutPlugin = (params)=>{
|
|
5
|
+
const { copyUser } = params;
|
|
6
|
+
return createStorerAfterEachPluginWithName("users.onPut", {
|
|
7
|
+
canHandle: (params)=>{
|
|
8
|
+
const { command } = params;
|
|
9
|
+
if ("put" !== command) return false;
|
|
10
|
+
return shouldBeHandled(params);
|
|
11
|
+
},
|
|
12
|
+
handle: async (params)=>{
|
|
13
|
+
const { item } = params;
|
|
14
|
+
const username = item.data.email;
|
|
15
|
+
try {
|
|
16
|
+
await copyUser.handle({
|
|
17
|
+
target: params.target,
|
|
18
|
+
source: params.source,
|
|
19
|
+
username
|
|
20
|
+
});
|
|
21
|
+
} catch (ex) {
|
|
22
|
+
console.error("Error while handling users onPut plugin.");
|
|
23
|
+
console.log(convertException(ex));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
39
27
|
};
|
|
28
|
+
export { createUserOnPutPlugin };
|
|
40
29
|
|
|
41
30
|
//# sourceMappingURL=usersOnPut.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"resolver/recordTypes/users/usersOnPut.js","sources":["../../../../src/resolver/recordTypes/users/usersOnPut.ts"],"sourcesContent":["import { createStorerAfterEachPluginWithName } from \"~/resolver/plugins/StorerAfterEachPlugin.js\";\nimport { shouldBeHandled } from \"./shouldBeHandled.js\";\nimport { convertException } from \"@webiny/utils\";\nimport type { ICopyUser } from \"~/resolver/recordTypes/users/types.js\";\n\nexport interface ICreateUserOnPutPluginParams {\n copyUser: ICopyUser;\n}\n\nexport const createUserOnPutPlugin = (params: ICreateUserOnPutPluginParams) => {\n const { copyUser } = params;\n\n return createStorerAfterEachPluginWithName(\"users.onPut\", {\n canHandle: params => {\n const { command } = params;\n if (command !== \"put\") {\n return false;\n }\n return shouldBeHandled(params);\n },\n handle: async params => {\n const { item } = params;\n /**\n * We are 100% positive that the key exists here because canHandle would not allow for handle to be called.\n */\n // @ts-expect-error\n const username = item.data.email as string;\n try {\n await copyUser.handle({\n target: params.target,\n source: params.source,\n username\n });\n } catch (ex) {\n console.error(\"Error while handling users onPut plugin.\");\n console.log(convertException(ex));\n }\n }\n });\n};\n"],"names":["createUserOnPutPlugin","params","copyUser","createStorerAfterEachPluginWithName","command","shouldBeHandled","item","username","ex","console","convertException"],"mappings":";;;AASO,MAAMA,wBAAwB,CAACC;IAClC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,OAAOE,oCAAoC,eAAe;QACtD,WAAWF,CAAAA;YACP,MAAM,EAAEG,OAAO,EAAE,GAAGH;YACpB,IAAIG,AAAY,UAAZA,SACA,OAAO;YAEX,OAAOC,gBAAgBJ;QAC3B;QACA,QAAQ,OAAMA;YACV,MAAM,EAAEK,IAAI,EAAE,GAAGL;YAKjB,MAAMM,WAAWD,KAAK,IAAI,CAAC,KAAK;YAChC,IAAI;gBACA,MAAMJ,SAAS,MAAM,CAAC;oBAClB,QAAQD,OAAO,MAAM;oBACrB,QAAQA,OAAO,MAAM;oBACrBM;gBACJ;YACJ,EAAE,OAAOC,IAAI;gBACTC,QAAQ,KAAK,CAAC;gBACdA,QAAQ,GAAG,CAACC,iBAAiBF;YACjC;QACJ;IACJ;AACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { APIGatewayProxyEvent } from "@webiny/aws-sdk/types/index.js";
|
|
2
|
+
import { ApiGatewayEventHandler } from "@webiny/event-handler-aws/abstractions/handlers/ApiGatewayEventHandler.js";
|
|
3
|
+
import type { EventContext, NextFunction } from "@webiny/event-handler-core";
|
|
4
|
+
import type { ISyncSystemConfig } from "./SyncSystemConfig.js";
|
|
5
|
+
declare class ApiGatewaySyncDecoratorImpl implements ApiGatewayEventHandler.Interface {
|
|
6
|
+
private config;
|
|
7
|
+
private inner;
|
|
8
|
+
constructor(config: ISyncSystemConfig, inner: ApiGatewayEventHandler.Interface);
|
|
9
|
+
execute(ctx: EventContext<APIGatewayProxyEvent>, next: NextFunction): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
export declare const ApiGatewaySyncDecorator: typeof ApiGatewaySyncDecoratorImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/event-handler-aws/abstractions/handlers/ApiGatewayEventHandler.js").IApiGatewayEventHandler>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ApiGatewayEventHandler } from "@webiny/event-handler-aws/abstractions/handlers/ApiGatewayEventHandler.js";
|
|
2
|
+
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
import { SyncSystemConfig } from "./SyncSystemConfig.js";
|
|
4
|
+
import { createHandler } from "./createHandler.js";
|
|
5
|
+
import { getManifest } from "./utils/manifest.js";
|
|
6
|
+
import { decorateClientWithHandler } from "./attachToDynamoDbDocument.js";
|
|
7
|
+
import { createDefaultFilterOutRecordPlugins } from "./filter/createDefaultFilterOutRecordPlugins.js";
|
|
8
|
+
class ApiGatewaySyncDecoratorImpl {
|
|
9
|
+
constructor(config, inner){
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.inner = inner;
|
|
12
|
+
}
|
|
13
|
+
async execute(ctx, next) {
|
|
14
|
+
const { data: manifest, error } = await getManifest();
|
|
15
|
+
if (error || !manifest?.sync?.region) {
|
|
16
|
+
if ("true" === process.env.DEBUG) console.warn("[ApiGatewaySyncDecorator] Manifest not available — sync disabled.");
|
|
17
|
+
return this.inner.execute(ctx, next);
|
|
18
|
+
}
|
|
19
|
+
const filterPlugins = [
|
|
20
|
+
...createDefaultFilterOutRecordPlugins(),
|
|
21
|
+
...this.config.plugins || []
|
|
22
|
+
];
|
|
23
|
+
const { handler } = createHandler({
|
|
24
|
+
getEventBridgeClient: this.config.getEventBridgeClient,
|
|
25
|
+
system: this.config.system,
|
|
26
|
+
manifest,
|
|
27
|
+
getPlugins: ()=>new PluginsContainer(filterPlugins)
|
|
28
|
+
});
|
|
29
|
+
const documentClient = this.config.getDocumentClient();
|
|
30
|
+
decorateClientWithHandler({
|
|
31
|
+
handler,
|
|
32
|
+
client: documentClient
|
|
33
|
+
});
|
|
34
|
+
try {
|
|
35
|
+
return await this.inner.execute(ctx, next);
|
|
36
|
+
} finally{
|
|
37
|
+
await handler.flush();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const ApiGatewaySyncDecorator = ApiGatewayEventHandler.createDecorator({
|
|
42
|
+
decorator: ApiGatewaySyncDecoratorImpl,
|
|
43
|
+
dependencies: [
|
|
44
|
+
SyncSystemConfig
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
export { ApiGatewaySyncDecorator };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=ApiGatewaySyncDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync/ApiGatewaySyncDecorator.js","sources":["../../src/sync/ApiGatewaySyncDecorator.ts"],"sourcesContent":["import type { APIGatewayProxyEvent } from \"@webiny/aws-sdk/types/index.js\";\nimport { ApiGatewayEventHandler } from \"@webiny/event-handler-aws/abstractions/handlers/ApiGatewayEventHandler.js\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport type { EventContext, NextFunction } from \"@webiny/event-handler-core\";\nimport { SyncSystemConfig } from \"./SyncSystemConfig.js\";\nimport type { ISyncSystemConfig } from \"./SyncSystemConfig.js\";\nimport { createHandler } from \"~/sync/createHandler.js\";\nimport { getManifest } from \"~/sync/utils/manifest.js\";\nimport { decorateClientWithHandler } from \"~/sync/attachToDynamoDbDocument.js\";\nimport { createDefaultFilterOutRecordPlugins } from \"~/sync/filter/createDefaultFilterOutRecordPlugins.js\";\n\nclass ApiGatewaySyncDecoratorImpl implements ApiGatewayEventHandler.Interface {\n constructor(\n private config: ISyncSystemConfig,\n private inner: ApiGatewayEventHandler.Interface\n ) {}\n\n async execute(ctx: EventContext<APIGatewayProxyEvent>, next: NextFunction): Promise<any> {\n const { data: manifest, error } = await getManifest();\n if (error || !manifest?.sync?.region) {\n if (process.env.DEBUG === \"true\") {\n console.warn(\"[ApiGatewaySyncDecorator] Manifest not available — sync disabled.\");\n }\n return this.inner.execute(ctx, next);\n }\n\n const filterPlugins = [\n ...createDefaultFilterOutRecordPlugins(),\n ...(this.config.plugins || [])\n ];\n\n const { handler } = createHandler({\n getEventBridgeClient: this.config.getEventBridgeClient,\n system: this.config.system,\n manifest,\n getPlugins: () => new PluginsContainer(filterPlugins)\n });\n\n const documentClient = this.config.getDocumentClient();\n decorateClientWithHandler({ handler, client: documentClient as any });\n\n try {\n return await this.inner.execute(ctx, next);\n } finally {\n await handler.flush();\n }\n }\n}\n\nexport const ApiGatewaySyncDecorator = ApiGatewayEventHandler.createDecorator({\n decorator: ApiGatewaySyncDecoratorImpl,\n dependencies: [SyncSystemConfig]\n});\n"],"names":["ApiGatewaySyncDecoratorImpl","config","inner","ctx","next","manifest","error","getManifest","process","console","filterPlugins","createDefaultFilterOutRecordPlugins","handler","createHandler","PluginsContainer","documentClient","decorateClientWithHandler","ApiGatewaySyncDecorator","ApiGatewayEventHandler","SyncSystemConfig"],"mappings":";;;;;;;AAWA,MAAMA;IACF,YACYC,MAAyB,EACzBC,KAAuC,CACjD;aAFUD,MAAM,GAANA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,GAAuC,EAAEC,IAAkB,EAAgB;QACrF,MAAM,EAAE,MAAMC,QAAQ,EAAEC,KAAK,EAAE,GAAG,MAAMC;QACxC,IAAID,SAAS,CAACD,UAAU,MAAM,QAAQ;YAClC,IAAIG,AAAsB,WAAtBA,QAAQ,GAAG,CAAC,KAAK,EACjBC,QAAQ,IAAI,CAAC;YAEjB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAACN,KAAKC;QACnC;QAEA,MAAMM,gBAAgB;eACfC;eACC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;SAChC;QAED,MAAM,EAAEC,OAAO,EAAE,GAAGC,cAAc;YAC9B,sBAAsB,IAAI,CAAC,MAAM,CAAC,oBAAoB;YACtD,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1BR;YACA,YAAY,IAAM,IAAIS,iBAAiBJ;QAC3C;QAEA,MAAMK,iBAAiB,IAAI,CAAC,MAAM,CAAC,iBAAiB;QACpDC,0BAA0B;YAAEJ;YAAS,QAAQG;QAAsB;QAEnE,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAACZ,KAAKC;QACzC,SAAU;YACN,MAAMQ,QAAQ,KAAK;QACvB;IACJ;AACJ;AAEO,MAAMK,0BAA0BC,uBAAuB,eAAe,CAAC;IAC1E,WAAWlB;IACX,cAAc;QAACmB;KAAiB;AACpC"}
|
package/sync/FilterOutRecord.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
filterOut(item) {
|
|
9
|
-
for (const plugin of this.plugins) {
|
|
10
|
-
if (plugin.execute(item)) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
1
|
+
class FilterOutRecord {
|
|
2
|
+
constructor(plugins){
|
|
3
|
+
this.plugins = plugins;
|
|
4
|
+
}
|
|
5
|
+
filterOut(item) {
|
|
6
|
+
for (const plugin of this.plugins)if (plugin.execute(item)) return true;
|
|
7
|
+
return false;
|
|
13
8
|
}
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
9
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
10
|
+
const createFilterOutRecord = (plugins)=>new FilterOutRecord(plugins);
|
|
11
|
+
export { FilterOutRecord, createFilterOutRecord };
|
|
20
12
|
|
|
21
13
|
//# sourceMappingURL=FilterOutRecord.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"sync/FilterOutRecord.js","sources":["../../src/sync/FilterOutRecord.ts"],"sourcesContent":["import type { FilterOutRecordPlugin } from \"~/sync/plugins/FilterOutRecordPlugin.js\";\nimport type { ICommandValueItemExtended } from \"~/sync/types.js\";\n\nexport class FilterOutRecord {\n private readonly plugins: FilterOutRecordPlugin[];\n\n public constructor(plugins: FilterOutRecordPlugin[]) {\n this.plugins = plugins;\n }\n /**\n * If method returns `true`, the record will be filtered out.\n */\n public filterOut(item: ICommandValueItemExtended): boolean {\n for (const plugin of this.plugins) {\n if (plugin.execute(item)) {\n return true;\n }\n }\n return false;\n }\n}\n\nexport const createFilterOutRecord = (plugins: FilterOutRecordPlugin[]): FilterOutRecord => {\n return new FilterOutRecord(plugins);\n};\n"],"names":["FilterOutRecord","plugins","item","plugin","createFilterOutRecord"],"mappings":"AAGO,MAAMA;IAGT,YAAmBC,OAAgC,CAAE;QACjD,IAAI,CAAC,OAAO,GAAGA;IACnB;IAIO,UAAUC,IAA+B,EAAW;QACvD,KAAK,MAAMC,UAAU,IAAI,CAAC,OAAO,CAC7B,IAAIA,OAAO,OAAO,CAACD,OACf,OAAO;QAGf,OAAO;IACX;AACJ;AAEO,MAAME,wBAAwB,CAACH,UAC3B,IAAID,gBAAgBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EventBridgeClient } from "@webiny/aws-sdk/client-eventbridge/index.js";
|
|
2
|
+
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
3
|
+
import type { ISystem } from "./types.js";
|
|
4
|
+
import type { FilterOutRecordPlugin } from "./plugins/FilterOutRecordPlugin.js";
|
|
5
|
+
export interface ISyncSystemConfig {
|
|
6
|
+
getDocumentClient(): Pick<DynamoDBDocument, "send">;
|
|
7
|
+
getEventBridgeClient(): Pick<EventBridgeClient, "send">;
|
|
8
|
+
system: ISystem;
|
|
9
|
+
plugins?: FilterOutRecordPlugin[];
|
|
10
|
+
}
|
|
11
|
+
export declare const SyncSystemConfig: import("@webiny/di").Abstraction<ISyncSystemConfig>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync/SyncSystemConfig.js","sources":["../../src/sync/SyncSystemConfig.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { EventBridgeClient } from \"@webiny/aws-sdk/client-eventbridge/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { ISystem } from \"./types.js\";\nimport type { FilterOutRecordPlugin } from \"./plugins/FilterOutRecordPlugin.js\";\n\nexport interface ISyncSystemConfig {\n getDocumentClient(): Pick<DynamoDBDocument, \"send\">;\n getEventBridgeClient(): Pick<EventBridgeClient, \"send\">;\n system: ISystem;\n plugins?: FilterOutRecordPlugin[];\n}\n\nexport const SyncSystemConfig = createAbstraction<ISyncSystemConfig>(\"SyncSystemConfig\");\n"],"names":["SyncSystemConfig","createAbstraction"],"mappings":";AAaO,MAAMA,mBAAmBC,kBAAqC"}
|