@webiny/api-sync-system 0.0.0-unstable.06b2ede40f → 0.0.0-unstable.0d717d18dd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -108
- package/constants.js +2 -7
- package/constants.js.map +1 -1
- package/index.d.ts +11 -3
- package/index.js +8 -40
- package/package.json +31 -26
- 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.d.ts +6 -6
- package/resolver/app/RecordHandler.js +84 -114
- package/resolver/app/RecordHandler.js.map +1 -1
- package/resolver/app/RecordsValidation.js +13 -24
- package/resolver/app/RecordsValidation.js.map +1 -1
- package/resolver/app/ResolverApplication.d.ts +1 -1
- package/resolver/app/ResolverApplication.js +27 -42
- package/resolver/app/ResolverApplication.js.map +1 -1
- package/resolver/app/abstractions/RecordHandler.d.ts +1 -1
- package/resolver/app/abstractions/RecordHandler.js +0 -7
- package/resolver/app/abstractions/RecordsValidation.d.ts +2 -2
- package/resolver/app/abstractions/RecordsValidation.js +0 -7
- package/resolver/app/abstractions/ResolverApplication.js +0 -7
- package/resolver/app/abstractions/ResolverRecord.d.ts +1 -1
- package/resolver/app/abstractions/ResolverRecord.js +0 -7
- package/resolver/app/bundler/BaseBundle.d.ts +6 -6
- package/resolver/app/bundler/BaseBundle.js +16 -22
- package/resolver/app/bundler/BaseBundle.js.map +1 -1
- package/resolver/app/bundler/Bundler.d.ts +1 -1
- package/resolver/app/bundler/Bundler.js +12 -25
- package/resolver/app/bundler/Bundler.js.map +1 -1
- package/resolver/app/bundler/Bundles.d.ts +2 -2
- package/resolver/app/bundler/Bundles.js +20 -33
- package/resolver/app/bundler/Bundles.js.map +1 -1
- package/resolver/app/bundler/CommandBundle.d.ts +1 -1
- package/resolver/app/bundler/CommandBundle.js +8 -25
- package/resolver/app/bundler/CommandBundle.js.map +1 -1
- package/resolver/app/bundler/TableBundle.d.ts +1 -1
- package/resolver/app/bundler/TableBundle.js +7 -22
- package/resolver/app/bundler/TableBundle.js.map +1 -1
- package/resolver/app/bundler/types.d.ts +2 -2
- package/resolver/app/bundler/types.js +0 -7
- package/resolver/app/commandHandler/DeleteCommandHandler.d.ts +3 -3
- package/resolver/app/commandHandler/DeleteCommandHandler.js +21 -35
- package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/PutCommandHandler.d.ts +4 -4
- package/resolver/app/commandHandler/PutCommandHandler.js +15 -28
- package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/delete.d.ts +1 -1
- package/resolver/app/commandHandler/delete.js +13 -21
- package/resolver/app/commandHandler/delete.js.map +1 -1
- package/resolver/app/commandHandler/put.d.ts +1 -1
- package/resolver/app/commandHandler/put.js +13 -21
- package/resolver/app/commandHandler/put.js.map +1 -1
- package/resolver/app/data/SourceDataContainer.d.ts +3 -3
- package/resolver/app/data/SourceDataContainer.js +27 -36
- package/resolver/app/data/SourceDataContainer.js.map +1 -1
- package/resolver/app/data/types.d.ts +2 -2
- package/resolver/app/data/types.js +0 -7
- package/resolver/app/fetcher/Fetcher.d.ts +3 -3
- package/resolver/app/fetcher/Fetcher.js +87 -121
- package/resolver/app/fetcher/Fetcher.js.map +1 -1
- package/resolver/app/fetcher/types.d.ts +2 -2
- package/resolver/app/fetcher/types.js +0 -7
- package/resolver/app/ingestor/Ingestor.d.ts +1 -1
- package/resolver/app/ingestor/Ingestor.js +26 -39
- package/resolver/app/ingestor/Ingestor.js.map +1 -1
- package/resolver/app/ingestor/IngestorResult.js +27 -39
- package/resolver/app/ingestor/IngestorResult.js.map +1 -1
- package/resolver/app/ingestor/types.d.ts +2 -2
- package/resolver/app/ingestor/types.js +0 -7
- package/resolver/app/storer/Storer.d.ts +3 -3
- package/resolver/app/storer/Storer.js +73 -95
- package/resolver/app/storer/Storer.js.map +1 -1
- package/resolver/app/storer/types.d.ts +2 -2
- package/resolver/app/storer/types.js +0 -7
- package/resolver/app/transform/TransformHandler.d.ts +4 -4
- package/resolver/app/transform/TransformHandler.js +46 -64
- package/resolver/app/transform/TransformHandler.js.map +1 -1
- package/resolver/app/transform/middleware.d.ts +1 -1
- package/resolver/app/transform/middleware.js +12 -25
- package/resolver/app/transform/middleware.js.map +1 -1
- package/resolver/app/utils/Retry.js +21 -32
- package/resolver/app/utils/Retry.js.map +1 -1
- package/resolver/app/utils/sleep.js +4 -12
- package/resolver/app/utils/sleep.js.map +1 -1
- package/resolver/app/validation/body.d.ts +25 -124
- package/resolver/app/validation/body.js +31 -44
- package/resolver/app/validation/body.js.map +1 -1
- package/resolver/app/validation/createJsonTransform.d.ts +1 -1
- package/resolver/app/validation/createJsonTransform.js +13 -22
- package/resolver/app/validation/createJsonTransform.js.map +1 -1
- package/resolver/app/validation/detail.d.ts +19 -72
- package/resolver/app/validation/detail.js +33 -46
- package/resolver/app/validation/detail.js.map +1 -1
- package/resolver/app/validation/event.d.ts +29 -188
- package/resolver/app/validation/event.js +21 -30
- package/resolver/app/validation/event.js.map +1 -1
- package/resolver/app/validation/numericString.d.ts +1 -1
- package/resolver/app/validation/numericString.js +9 -20
- package/resolver/app/validation/numericString.js.map +1 -1
- package/resolver/app/validation/system.d.ts +2 -14
- package/resolver/app/validation/system.js +9 -18
- package/resolver/app/validation/system.js.map +1 -1
- package/resolver/deployment/Deployment.d.ts +2 -3
- package/resolver/deployment/Deployment.js +27 -44
- package/resolver/deployment/Deployment.js.map +1 -1
- package/resolver/deployment/Deployments.js +19 -30
- package/resolver/deployment/Deployments.js.map +1 -1
- package/resolver/deployment/DeploymentsFetcher.js +82 -102
- package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
- package/resolver/deployment/types.d.ts +4 -6
- package/resolver/deployment/types.js +0 -7
- package/resolver/lambda/LambdaTrigger.js +25 -34
- package/resolver/lambda/LambdaTrigger.js.map +1 -1
- package/resolver/plugins/CommandHandlerPlugin.d.ts +3 -3
- package/resolver/plugins/CommandHandlerPlugin.js +17 -24
- package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
- package/resolver/plugins/StorerAfterEachPlugin.d.ts +2 -2
- package/resolver/plugins/StorerAfterEachPlugin.js +21 -29
- package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
- package/resolver/plugins/TransformRecordPlugin.d.ts +3 -3
- package/resolver/plugins/TransformRecordPlugin.js +20 -27
- package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
- package/resolver/recordTypes/fileManager/CopyFile.js +44 -74
- package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.d.ts +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.js +40 -65
- package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManager.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManager.js +7 -12
- package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +27 -45
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js +27 -45
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.d.ts +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -34
- package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/fileManager/types.d.ts +2 -2
- package/resolver/recordTypes/fileManager/types.js +0 -7
- package/resolver/recordTypes/users/CopyUser.d.ts +2 -2
- package/resolver/recordTypes/users/CopyUser.js +44 -61
- package/resolver/recordTypes/users/CopyUser.js.map +1 -1
- package/resolver/recordTypes/users/DeleteUser.d.ts +2 -2
- package/resolver/recordTypes/users/DeleteUser.js +40 -58
- package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.d.ts +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.js +10 -33
- package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/users/types.d.ts +1 -1
- package/resolver/recordTypes/users/types.js +0 -7
- package/resolver/recordTypes/users/users.js +7 -12
- package/resolver/recordTypes/users/users.js.map +1 -1
- package/resolver/recordTypes/users/usersOnDelete.d.ts +2 -2
- package/resolver/recordTypes/users/usersOnDelete.js +26 -44
- package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
- package/resolver/recordTypes/users/usersOnPut.d.ts +2 -2
- package/resolver/recordTypes/users/usersOnPut.js +27 -45
- 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.d.ts +2 -2
- package/sync/FilterOutRecord.js +8 -24
- 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.d.ts +1 -1
- package/sync/attachToDynamoDbDocument.js +48 -75
- package/sync/attachToDynamoDbDocument.js.map +1 -1
- package/sync/createHandler.js +44 -60
- package/sync/createHandler.js.map +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.d.ts +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.js +37 -86
- package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
- package/sync/handler/Handler.d.ts +2 -2
- package/sync/handler/Handler.js +66 -86
- package/sync/handler/Handler.js.map +1 -1
- package/sync/handler/HandlerConverter.js +20 -36
- package/sync/handler/HandlerConverter.js.map +1 -1
- package/sync/handler/converter/BatchGetCommandConverter.js +13 -20
- package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
- package/sync/handler/converter/BatchWriteCommandConverter.js +13 -20
- package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
- package/sync/handler/converter/DeleteCommandConverter.js +13 -20
- package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
- package/sync/handler/converter/GetCommandConverter.js +13 -20
- package/sync/handler/converter/GetCommandConverter.js.map +1 -1
- package/sync/handler/converter/PutCommandConverter.js +13 -20
- package/sync/handler/converter/PutCommandConverter.js.map +1 -1
- package/sync/handler/converter/QueryCommandConverter.js +13 -20
- package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
- package/sync/handler/converter/ScanCommandConverter.js +13 -20
- package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
- package/sync/handler/converter/UpdateCommandConverter.js +13 -20
- package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
- package/sync/handler/converter/commands/BatchWriteCommandValue.d.ts +2 -2
- package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -44
- package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/DeleteCommandValue.d.ts +2 -2
- package/sync/handler/converter/commands/DeleteCommandValue.js +19 -23
- package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/NullCommandValue.d.ts +1 -1
- package/sync/handler/converter/commands/NullCommandValue.js +7 -14
- package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/PutCommandValue.d.ts +2 -2
- package/sync/handler/converter/commands/PutCommandValue.js +19 -23
- package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/UpdateCommandValue.d.ts +2 -2
- package/sync/handler/converter/commands/UpdateCommandValue.js +19 -23
- package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
- package/sync/handler/types.d.ts +3 -3
- package/sync/handler/types.js +0 -7
- package/sync/plugins/FilterOutRecordPlugin.d.ts +1 -1
- package/sync/plugins/FilterOutRecordPlugin.js +18 -28
- package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
- package/sync/types.js +0 -7
- package/sync/utils/getTableType.js +11 -19
- package/sync/utils/getTableType.js.map +1 -1
- package/sync/utils/manifest.d.ts +3 -7
- package/sync/utils/manifest.js +30 -47
- package/sync/utils/manifest.js.map +1 -1
- package/sync/utils/validateSystemInput.d.ts +1 -1
- package/sync/utils/validateSystemInput.js +22 -37
- package/sync/utils/validateSystemInput.js.map +1 -1
- package/types.d.ts +1 -5
- package/types.js +6 -12
- package/types.js.map +1 -1
- package/utils/createSystemName.js +5 -10
- 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 +185 -268
- package/worker/actions/copyFile/CopyFile.js.map +1 -1
- package/worker/actions/copyFile/copyFileAction.d.ts +1 -1
- package/worker/actions/copyFile/copyFileAction.js +30 -45
- package/worker/actions/copyFile/copyFileAction.js.map +1 -1
- package/worker/actions/copyFile/copyFileSchema.d.ts +6 -38
- package/worker/actions/copyFile/copyFileSchema.js +14 -23
- package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
- package/worker/actions/copyFile/types.js +0 -7
- package/worker/actions/createUser/CreateUser.d.ts +1 -1
- package/worker/actions/createUser/CreateUser.js +53 -83
- package/worker/actions/createUser/CreateUser.js.map +1 -1
- package/worker/actions/createUser/createUserAction.d.ts +2 -2
- package/worker/actions/createUser/createUserAction.js +28 -39
- package/worker/actions/createUser/createUserAction.js.map +1 -1
- package/worker/actions/createUser/createUserSchema.d.ts +6 -38
- package/worker/actions/createUser/createUserSchema.js +14 -23
- package/worker/actions/createUser/createUserSchema.js.map +1 -1
- package/worker/actions/createUser/types.js +0 -7
- package/worker/actions/deleteFile/DeleteFile.js +52 -74
- package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileAction.d.ts +1 -1
- package/worker/actions/deleteFile/deleteFileAction.js +25 -40
- package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileSchema.d.ts +6 -38
- package/worker/actions/deleteFile/deleteFileSchema.js +14 -23
- package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
- package/worker/actions/deleteFile/types.js +0 -7
- package/worker/actions/deleteUser/DeleteUser.d.ts +2 -2
- package/worker/actions/deleteUser/DeleteUser.js +39 -60
- package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserAction.d.ts +1 -1
- package/worker/actions/deleteUser/deleteUserAction.js +26 -37
- package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserSchema.d.ts +5 -23
- package/worker/actions/deleteUser/deleteUserSchema.js +13 -22
- package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
- package/worker/actions/deleteUser/types.js +0 -7
- package/worker/actions/logValidationError.js +6 -14
- package/worker/actions/logValidationError.js.map +1 -1
- package/worker/actions/removeCognitoUserAttributes.js +9 -22
- package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
- package/worker/actions/updateUser/UpdateUser.d.ts +1 -1
- package/worker/actions/updateUser/UpdateUser.js +50 -74
- package/worker/actions/updateUser/UpdateUser.js.map +1 -1
- package/worker/actions/updateUser/types.js +0 -7
- package/worker/actions/updateUser/updateUserAction.d.ts +2 -2
- package/worker/actions/updateUser/updateUserAction.js +28 -39
- package/worker/actions/updateUser/updateUserAction.js.map +1 -1
- package/worker/actions/updateUser/updateUserSchema.d.ts +6 -38
- package/worker/actions/updateUser/updateUserSchema.js +14 -23
- package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
- package/worker/handler/WorkerActionHandler.d.ts +2 -2
- package/worker/handler/WorkerActionHandler.js +19 -28
- package/worker/handler/WorkerActionHandler.js.map +1 -1
- package/worker/plugins/WorkerActionPlugin.d.ts +1 -1
- package/worker/plugins/WorkerActionPlugin.js +18 -25
- package/worker/plugins/WorkerActionPlugin.js.map +1 -1
- package/worker/types.js +0 -7
- 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 -10
- package/resolver/createEventHandlerPlugin.js +0 -127
- package/resolver/createEventHandlerPlugin.js.map +0 -1
- package/resolver/createResolverHandler.d.ts +0 -21
- package/resolver/createResolverHandler.js +0 -79
- 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 -51
- package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +0 -1
- package/sync/createSyncSystem.d.ts +0 -16
- package/sync/createSyncSystem.js +0 -42
- 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 -59
- 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 -48
- package/worker/createWorkerHandler.js.map +0 -1
- package/worker/handler/eventHandler.d.ts +0 -1
- package/worker/handler/eventHandler.js +0 -31
- package/worker/handler/eventHandler.js.map +0 -1
- package/worker/types.js.map +0 -1
|
@@ -1,33 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.WorkerActionHandler = void 0;
|
|
7
|
-
var _error = require("@webiny/error");
|
|
1
|
+
import { WebinyError } from "@webiny/error";
|
|
8
2
|
class WorkerActionHandler {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
+
});
|
|
21
20
|
}
|
|
22
|
-
throw new _error.WebinyError({
|
|
23
|
-
message: "Unsupported action on payload.",
|
|
24
|
-
code: "UNSUPPORTED_ACTION",
|
|
25
|
-
data: {
|
|
26
|
-
payload
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
21
|
}
|
|
31
|
-
|
|
22
|
+
export { WorkerActionHandler };
|
|
32
23
|
|
|
33
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,5 +1,5 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins/Plugin.js";
|
|
2
|
-
import type { IWorkerAction, IWorkerActionHandleParams } from "../types";
|
|
2
|
+
import type { IWorkerAction, IWorkerActionHandleParams } from "../types.js";
|
|
3
3
|
export declare class WorkerActionPlugin<T = unknown> extends Plugin {
|
|
4
4
|
static readonly type: string;
|
|
5
5
|
private readonly action;
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
handle(params) {
|
|
19
|
-
return this.action.handle(params);
|
|
20
|
-
}
|
|
1
|
+
import { Plugin } from "@webiny/plugins/Plugin.js";
|
|
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
|
+
}
|
|
21
17
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return new WorkerActionPlugin(action);
|
|
25
|
-
};
|
|
26
|
-
exports.createWorkerActionPlugin = createWorkerActionPlugin;
|
|
18
|
+
const createWorkerActionPlugin = (action)=>new WorkerActionPlugin(action);
|
|
19
|
+
export { WorkerActionPlugin, createWorkerActionPlugin };
|
|
27
20
|
|
|
28
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":["_createWorkerHandler","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_createSyncSystem","_createResolverHandler"],"sources":["index.ts"],"sourcesContent":["export * from \"./worker/createWorkerHandler.js\";\nexport * from \"./sync/createSyncSystem.js\";\nexport * from \"./resolver/createResolverHandler.js\";\n"],"mappings":";;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,oBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,oBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,oBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,sBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,sBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,sBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,sBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","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\";\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 elasticsearch 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\";\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,10 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBClientConfig, DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
2
|
-
import { SQSEventHandler } from "@webiny/handler-aws/sqs/plugins/SQSEventHandler.js";
|
|
3
|
-
export interface ICreateEventHandlerPluginParams {
|
|
4
|
-
tableName: string | undefined;
|
|
5
|
-
createDocumentClient: (params: DynamoDBClientConfig) => Pick<DynamoDBDocument, "send">;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* TODO maybe add logger?
|
|
9
|
-
*/
|
|
10
|
-
export declare const createEventHandlerPlugin: (params: ICreateEventHandlerPluginParams) => SQSEventHandler<unknown>;
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createEventHandlerPlugin = void 0;
|
|
7
|
-
var _sqs = require("@webiny/handler-aws/sqs");
|
|
8
|
-
var _ResolverApplication = require("./app/ResolverApplication.js");
|
|
9
|
-
var _utils = require("@webiny/utils");
|
|
10
|
-
var _RecordHandler = require("./app/RecordHandler.js");
|
|
11
|
-
var _Fetcher = require("./app/fetcher/Fetcher.js");
|
|
12
|
-
var _DeploymentsFetcher = require("./deployment/DeploymentsFetcher.js");
|
|
13
|
-
var _index = require("@webiny/error/index.js");
|
|
14
|
-
var _Bundler = require("./app/bundler/Bundler.js");
|
|
15
|
-
var _Bundles = require("./app/bundler/Bundles.js");
|
|
16
|
-
var _CommandBundle = require("./app/bundler/CommandBundle.js");
|
|
17
|
-
var _TableBundle = require("./app/bundler/TableBundle.js");
|
|
18
|
-
var _TransformHandler = require("./app/transform/TransformHandler.js");
|
|
19
|
-
var _SQSEventHandler = require("@webiny/handler-aws/sqs/plugins/SQSEventHandler.js");
|
|
20
|
-
var _Storer = require("./app/storer/Storer.js");
|
|
21
|
-
var _StorerAfterEachPlugin = require("./plugins/StorerAfterEachPlugin.js");
|
|
22
|
-
var _SourceDataContainer = require("./app/data/SourceDataContainer.js");
|
|
23
|
-
/**
|
|
24
|
-
* TODO maybe add logger?
|
|
25
|
-
*/
|
|
26
|
-
const createEventHandlerPlugin = params => {
|
|
27
|
-
const {
|
|
28
|
-
createDocumentClient,
|
|
29
|
-
tableName
|
|
30
|
-
} = params;
|
|
31
|
-
const plugin = (0, _sqs.createEventHandler)(async ({
|
|
32
|
-
event,
|
|
33
|
-
context,
|
|
34
|
-
reply
|
|
35
|
-
}) => {
|
|
36
|
-
if (!tableName) {
|
|
37
|
-
throw new _index.WebinyError({
|
|
38
|
-
message: "Table name variable is not set."
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
const fetcher = (0, _Fetcher.createFetcher)({
|
|
43
|
-
maxRetries: 10,
|
|
44
|
-
retryDelay: 1000,
|
|
45
|
-
createDocumentClient: deployment => {
|
|
46
|
-
return createDocumentClient({
|
|
47
|
-
region: deployment.region
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
const deploymentsFetcher = (0, _DeploymentsFetcher.createDeploymentsFetcher)({
|
|
52
|
-
client: createDocumentClient({
|
|
53
|
-
region: process.env.AWS_REGION
|
|
54
|
-
}),
|
|
55
|
-
table: tableName
|
|
56
|
-
});
|
|
57
|
-
/**
|
|
58
|
-
* Fetch all possible deployments, out of which we will filter out the deployment that the records came from.
|
|
59
|
-
*/
|
|
60
|
-
const deployments = await deploymentsFetcher.fetch();
|
|
61
|
-
const storerAfterEachPlugins = context.plugins.byType(_StorerAfterEachPlugin.StorerAfterEachPlugin.type);
|
|
62
|
-
const storer = (0, _Storer.createStorer)({
|
|
63
|
-
createDocumentClient: deployment => {
|
|
64
|
-
return createDocumentClient({
|
|
65
|
-
region: deployment.region
|
|
66
|
-
});
|
|
67
|
-
},
|
|
68
|
-
afterEach: async params => {
|
|
69
|
-
for (const plugin of storerAfterEachPlugins) {
|
|
70
|
-
if (!plugin.canHandle(params)) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
await plugin.handle(params);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
const transformHandler = new _TransformHandler.TransformHandler({
|
|
78
|
-
plugins: context.plugins
|
|
79
|
-
});
|
|
80
|
-
const recordHandler = (0, _RecordHandler.createRecordHandler)({
|
|
81
|
-
plugins: context.plugins,
|
|
82
|
-
fetcher,
|
|
83
|
-
storer,
|
|
84
|
-
deployments,
|
|
85
|
-
transformHandler,
|
|
86
|
-
commandBundler: (0, _Bundler.createBundler)({
|
|
87
|
-
createBundles: () => {
|
|
88
|
-
return (0, _Bundles.createBundles)({
|
|
89
|
-
createBundle: _CommandBundle.createCommandBundle
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}),
|
|
93
|
-
tableBundler: (0, _Bundler.createBundler)({
|
|
94
|
-
createBundles: () => {
|
|
95
|
-
return (0, _Bundles.createBundles)({
|
|
96
|
-
createBundle: _TableBundle.createTableBundle
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}),
|
|
100
|
-
createSourceDataContainer: () => {
|
|
101
|
-
return _SourceDataContainer.SourceDataContainer.create();
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
const app = (0, _ResolverApplication.createResolverApp)({
|
|
105
|
-
recordHandler,
|
|
106
|
-
deployments
|
|
107
|
-
});
|
|
108
|
-
await app.resolve({
|
|
109
|
-
records: event.Records
|
|
110
|
-
});
|
|
111
|
-
return reply.send({
|
|
112
|
-
ok: true
|
|
113
|
-
});
|
|
114
|
-
} catch (ex) {
|
|
115
|
-
const error = (0, _utils.convertException)(ex);
|
|
116
|
-
console.error(error);
|
|
117
|
-
return reply.send({
|
|
118
|
-
error
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
plugin.name = `${_SQSEventHandler.SQSEventHandler.type}.syncResolver`;
|
|
123
|
-
return plugin;
|
|
124
|
-
};
|
|
125
|
-
exports.createEventHandlerPlugin = createEventHandlerPlugin;
|
|
126
|
-
|
|
127
|
-
//# sourceMappingURL=createEventHandlerPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_sqs","require","_ResolverApplication","_utils","_RecordHandler","_Fetcher","_DeploymentsFetcher","_index","_Bundler","_Bundles","_CommandBundle","_TableBundle","_TransformHandler","_SQSEventHandler","_Storer","_StorerAfterEachPlugin","_SourceDataContainer","createEventHandlerPlugin","params","createDocumentClient","tableName","plugin","createSQSEventHandler","event","context","reply","WebinyError","message","fetcher","createFetcher","maxRetries","retryDelay","deployment","region","deploymentsFetcher","createDeploymentsFetcher","client","process","env","AWS_REGION","table","deployments","fetch","storerAfterEachPlugins","plugins","byType","StorerAfterEachPlugin","type","storer","createStorer","afterEach","canHandle","handle","transformHandler","TransformHandler","recordHandler","createRecordHandler","commandBundler","createBundler","createBundles","createBundle","createCommandBundle","tableBundler","createTableBundle","createSourceDataContainer","SourceDataContainer","create","app","createResolverApp","resolve","records","Records","send","ok","ex","error","convertException","console","name","SQSEventHandler","exports"],"sources":["createEventHandlerPlugin.ts"],"sourcesContent":["import { createEventHandler as createSQSEventHandler } from \"@webiny/handler-aws/sqs\";\nimport { createResolverApp } from \"./app/ResolverApplication.js\";\nimport { convertException } from \"@webiny/utils\";\nimport { createRecordHandler } from \"./app/RecordHandler.js\";\nimport { createFetcher } from \"~/resolver/app/fetcher/Fetcher.js\";\nimport { createDeploymentsFetcher } from \"~/resolver/deployment/DeploymentsFetcher.js\";\nimport { WebinyError } from \"@webiny/error/index.js\";\nimport type {\n DynamoDBClientConfig,\n DynamoDBDocument\n} from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createBundler } from \"~/resolver/app/bundler/Bundler.js\";\nimport { createBundles } from \"~/resolver/app/bundler/Bundles.js\";\nimport { createCommandBundle } from \"~/resolver/app/bundler/CommandBundle.js\";\nimport { createTableBundle } from \"~/resolver/app/bundler/TableBundle.js\";\nimport { TransformHandler } from \"~/resolver/app/transform/TransformHandler.js\";\nimport type { Reply as FastifyReply } from \"@webiny/handler/types.js\";\nimport { SQSEventHandler } from \"@webiny/handler-aws/sqs/plugins/SQSEventHandler.js\";\nimport { createStorer } from \"./app/storer/Storer.js\";\nimport { StorerAfterEachPlugin } from \"./plugins/StorerAfterEachPlugin.js\";\nimport { SourceDataContainer } from \"~/resolver/app/data/SourceDataContainer.js\";\n\nexport interface ICreateEventHandlerPluginParams {\n tableName: string | undefined;\n createDocumentClient: (params: DynamoDBClientConfig) => Pick<DynamoDBDocument, \"send\">;\n}\n/**\n * TODO maybe add logger?\n */\nexport const createEventHandlerPlugin = (params: ICreateEventHandlerPluginParams) => {\n const { createDocumentClient, tableName } = params;\n\n const plugin = createSQSEventHandler(\n async ({ event, context, reply }): Promise<FastifyReply> => {\n if (!tableName) {\n throw new WebinyError({\n message: \"Table name variable is not set.\"\n });\n }\n try {\n const fetcher = createFetcher({\n maxRetries: 10,\n retryDelay: 1000,\n createDocumentClient: deployment => {\n return createDocumentClient({\n region: deployment.region\n });\n }\n });\n\n const deploymentsFetcher = createDeploymentsFetcher({\n client: createDocumentClient({\n region: process.env.AWS_REGION\n }),\n table: tableName\n });\n /**\n * Fetch all possible deployments, out of which we will filter out the deployment that the records came from.\n */\n const deployments = await deploymentsFetcher.fetch();\n\n const storerAfterEachPlugins = context.plugins.byType<StorerAfterEachPlugin>(\n StorerAfterEachPlugin.type\n );\n\n const storer = createStorer({\n createDocumentClient: deployment => {\n return createDocumentClient({\n region: deployment.region\n });\n },\n afterEach: async params => {\n for (const plugin of storerAfterEachPlugins) {\n if (!plugin.canHandle(params)) {\n continue;\n }\n await plugin.handle(params);\n }\n }\n });\n\n const transformHandler = new TransformHandler({\n plugins: context.plugins\n });\n\n const recordHandler = createRecordHandler({\n plugins: context.plugins,\n fetcher,\n storer,\n deployments,\n transformHandler,\n commandBundler: createBundler({\n createBundles: () => {\n return createBundles({\n createBundle: createCommandBundle\n });\n }\n }),\n tableBundler: createBundler({\n createBundles: () => {\n return createBundles({\n createBundle: createTableBundle\n });\n }\n }),\n createSourceDataContainer: () => {\n return SourceDataContainer.create();\n }\n });\n const app = createResolverApp({\n recordHandler,\n deployments\n });\n\n await app.resolve({\n records: event.Records\n });\n return reply.send({\n ok: true\n });\n } catch (ex) {\n const error = convertException(ex);\n console.error(error);\n return reply.send({\n error\n });\n }\n }\n );\n\n plugin.name = `${SQSEventHandler.type}.syncResolver`;\n\n return plugin;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAKA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,iBAAA,GAAAX,OAAA;AAEA,IAAAY,gBAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,sBAAA,GAAAd,OAAA;AACA,IAAAe,oBAAA,GAAAf,OAAA;AAMA;AACA;AACA;AACO,MAAMgB,wBAAwB,GAAIC,MAAuC,IAAK;EACjF,MAAM;IAAEC,oBAAoB;IAAEC;EAAU,CAAC,GAAGF,MAAM;EAElD,MAAMG,MAAM,GAAG,IAAAC,uBAAqB,EAChC,OAAO;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAM,CAAC,KAA4B;IACxD,IAAI,CAACL,SAAS,EAAE;MACZ,MAAM,IAAIM,kBAAW,CAAC;QAClBC,OAAO,EAAE;MACb,CAAC,CAAC;IACN;IACA,IAAI;MACA,MAAMC,OAAO,GAAG,IAAAC,sBAAa,EAAC;QAC1BC,UAAU,EAAE,EAAE;QACdC,UAAU,EAAE,IAAI;QAChBZ,oBAAoB,EAAEa,UAAU,IAAI;UAChC,OAAOb,oBAAoB,CAAC;YACxBc,MAAM,EAAED,UAAU,CAACC;UACvB,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;MAEF,MAAMC,kBAAkB,GAAG,IAAAC,4CAAwB,EAAC;QAChDC,MAAM,EAAEjB,oBAAoB,CAAC;UACzBc,MAAM,EAAEI,OAAO,CAACC,GAAG,CAACC;QACxB,CAAC,CAAC;QACFC,KAAK,EAAEpB;MACX,CAAC,CAAC;MACF;AAChB;AACA;MACgB,MAAMqB,WAAW,GAAG,MAAMP,kBAAkB,CAACQ,KAAK,CAAC,CAAC;MAEpD,MAAMC,sBAAsB,GAAGnB,OAAO,CAACoB,OAAO,CAACC,MAAM,CACjDC,4CAAqB,CAACC,IAC1B,CAAC;MAED,MAAMC,MAAM,GAAG,IAAAC,oBAAY,EAAC;QACxB9B,oBAAoB,EAAEa,UAAU,IAAI;UAChC,OAAOb,oBAAoB,CAAC;YACxBc,MAAM,EAAED,UAAU,CAACC;UACvB,CAAC,CAAC;QACN,CAAC;QACDiB,SAAS,EAAE,MAAMhC,MAAM,IAAI;UACvB,KAAK,MAAMG,MAAM,IAAIsB,sBAAsB,EAAE;YACzC,IAAI,CAACtB,MAAM,CAAC8B,SAAS,CAACjC,MAAM,CAAC,EAAE;cAC3B;YACJ;YACA,MAAMG,MAAM,CAAC+B,MAAM,CAAClC,MAAM,CAAC;UAC/B;QACJ;MACJ,CAAC,CAAC;MAEF,MAAMmC,gBAAgB,GAAG,IAAIC,kCAAgB,CAAC;QAC1CV,OAAO,EAAEpB,OAAO,CAACoB;MACrB,CAAC,CAAC;MAEF,MAAMW,aAAa,GAAG,IAAAC,kCAAmB,EAAC;QACtCZ,OAAO,EAAEpB,OAAO,CAACoB,OAAO;QACxBhB,OAAO;QACPoB,MAAM;QACNP,WAAW;QACXY,gBAAgB;QAChBI,cAAc,EAAE,IAAAC,sBAAa,EAAC;UAC1BC,aAAa,EAAEA,CAAA,KAAM;YACjB,OAAO,IAAAA,sBAAa,EAAC;cACjBC,YAAY,EAAEC;YAClB,CAAC,CAAC;UACN;QACJ,CAAC,CAAC;QACFC,YAAY,EAAE,IAAAJ,sBAAa,EAAC;UACxBC,aAAa,EAAEA,CAAA,KAAM;YACjB,OAAO,IAAAA,sBAAa,EAAC;cACjBC,YAAY,EAAEG;YAClB,CAAC,CAAC;UACN;QACJ,CAAC,CAAC;QACFC,yBAAyB,EAAEA,CAAA,KAAM;UAC7B,OAAOC,wCAAmB,CAACC,MAAM,CAAC,CAAC;QACvC;MACJ,CAAC,CAAC;MACF,MAAMC,GAAG,GAAG,IAAAC,sCAAiB,EAAC;QAC1Bb,aAAa;QACbd;MACJ,CAAC,CAAC;MAEF,MAAM0B,GAAG,CAACE,OAAO,CAAC;QACdC,OAAO,EAAE/C,KAAK,CAACgD;MACnB,CAAC,CAAC;MACF,OAAO9C,KAAK,CAAC+C,IAAI,CAAC;QACdC,EAAE,EAAE;MACR,CAAC,CAAC;IACN,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAMC,KAAK,GAAG,IAAAC,uBAAgB,EAACF,EAAE,CAAC;MAClCG,OAAO,CAACF,KAAK,CAACA,KAAK,CAAC;MACpB,OAAOlD,KAAK,CAAC+C,IAAI,CAAC;QACdG;MACJ,CAAC,CAAC;IACN;EACJ,CACJ,CAAC;EAEDtD,MAAM,CAACyD,IAAI,GAAG,GAAGC,gCAAe,CAAChC,IAAI,eAAe;EAEpD,OAAO1B,MAAM;AACjB,CAAC;AAAC2D,OAAA,CAAA/D,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { HandlerCallable, HandlerParams } from "@webiny/handler-aws/sqs";
|
|
2
|
-
import type { TransformRecordPlugin } from "./plugins/TransformRecordPlugin.js";
|
|
3
|
-
import type { CommandHandlerPlugin } from "./plugins/CommandHandlerPlugin.js";
|
|
4
|
-
import type { DynamoDBClientConfig, DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
5
|
-
import type { LambdaClient, LambdaClientConfig } from "@webiny/aws-sdk/client-lambda/index.js";
|
|
6
|
-
import type { S3Client, S3ClientConfig } from "@webiny/aws-sdk/client-s3/index.js";
|
|
7
|
-
import type { CognitoIdentityProviderClient, CognitoIdentityProviderClientConfig } from "@webiny/aws-sdk/client-cognito-identity-provider/index.js";
|
|
8
|
-
export type AllowedResolverPlugins = TransformRecordPlugin | CommandHandlerPlugin;
|
|
9
|
-
export interface ICreateResolverHandlerParams extends HandlerParams {
|
|
10
|
-
plugins: AllowedResolverPlugins[];
|
|
11
|
-
createS3Client: (params: S3ClientConfig) => Pick<S3Client, "send">;
|
|
12
|
-
createLambdaClient: (config: Partial<LambdaClientConfig>) => Pick<LambdaClient, "send">;
|
|
13
|
-
createDocumentClient: (params: Partial<DynamoDBClientConfig>) => Pick<DynamoDBDocument, "send">;
|
|
14
|
-
createCognitoIdentityProviderClient: (config: Partial<CognitoIdentityProviderClientConfig>) => Pick<CognitoIdentityProviderClient, "send">;
|
|
15
|
-
tableName?: string;
|
|
16
|
-
awsWorkerLambdaArn?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Handler for the Sync System Resolver - based on SQS handler.
|
|
20
|
-
*/
|
|
21
|
-
export declare const createResolverHandler: (params: ICreateResolverHandlerParams) => HandlerCallable;
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createResolverHandler = void 0;
|
|
7
|
-
var _sqs = require("@webiny/handler-aws/sqs");
|
|
8
|
-
var _plugins = require("@webiny/plugins");
|
|
9
|
-
var _createEventHandlerPlugin = require("./createEventHandlerPlugin.js");
|
|
10
|
-
var _put = require("./app/commandHandler/put.js");
|
|
11
|
-
var _delete = require("./app/commandHandler/delete.js");
|
|
12
|
-
var _fileManager = require("./recordTypes/fileManager/fileManager.js");
|
|
13
|
-
var _LambdaTrigger = require("./lambda/LambdaTrigger.js");
|
|
14
|
-
var _CopyFile = require("./recordTypes/fileManager/CopyFile.js");
|
|
15
|
-
var _DeleteFile = require("./recordTypes/fileManager/DeleteFile.js");
|
|
16
|
-
var _users = require("./recordTypes/users/users.js");
|
|
17
|
-
var _CopyUser = require("./recordTypes/users/CopyUser.js");
|
|
18
|
-
var _DeleteUser = require("./recordTypes/users/DeleteUser.js");
|
|
19
|
-
/**
|
|
20
|
-
* Handler for the Sync System Resolver - based on SQS handler.
|
|
21
|
-
*/
|
|
22
|
-
const createResolverHandler = params => {
|
|
23
|
-
const awsWorkerLambdaArn = params.awsWorkerLambdaArn || process.env.AWS_SYNC_WORKER_LAMBDA_ARN;
|
|
24
|
-
if (!awsWorkerLambdaArn) {
|
|
25
|
-
const message = `Missing "process.env.AWS_SYNC_WORKER_LAMBDA_ARN".`;
|
|
26
|
-
console.error(message);
|
|
27
|
-
throw new Error(message);
|
|
28
|
-
}
|
|
29
|
-
const lambdaTrigger = new _LambdaTrigger.LambdaTrigger({
|
|
30
|
-
arn: awsWorkerLambdaArn,
|
|
31
|
-
createLambdaClient: params.createLambdaClient
|
|
32
|
-
});
|
|
33
|
-
const copyFile = new _CopyFile.CopyFile({
|
|
34
|
-
createS3Client: params.createS3Client,
|
|
35
|
-
getLambdaTrigger: () => {
|
|
36
|
-
return lambdaTrigger;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
const deleteFile = new _DeleteFile.DeleteFile({
|
|
40
|
-
createS3Client: params.createS3Client,
|
|
41
|
-
getLambdaTrigger: () => {
|
|
42
|
-
return lambdaTrigger;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const copyUser = new _CopyUser.CopyUser({
|
|
46
|
-
createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,
|
|
47
|
-
getLambdaTrigger: () => {
|
|
48
|
-
return lambdaTrigger;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
const deleteUser = new _DeleteUser.DeleteUser({
|
|
52
|
-
createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,
|
|
53
|
-
getLambdaTrigger: () => {
|
|
54
|
-
return lambdaTrigger;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
const plugins = new _plugins.PluginsContainer([
|
|
58
|
-
// TODO move into related packages
|
|
59
|
-
(0, _fileManager.createFileManagerPlugins)({
|
|
60
|
-
copyFile,
|
|
61
|
-
deleteFile
|
|
62
|
-
}), (0, _users.createUsersPlugins)({
|
|
63
|
-
copyUser,
|
|
64
|
-
deleteUser
|
|
65
|
-
}),
|
|
66
|
-
// leave here
|
|
67
|
-
(0, _createEventHandlerPlugin.createEventHandlerPlugin)({
|
|
68
|
-
createDocumentClient: params.createDocumentClient,
|
|
69
|
-
tableName: params.tableName || process.env.DB_TABLE
|
|
70
|
-
}), (0, _put.createPutCommandHandlerPlugin)(), (0, _delete.createDeleteCommandHandlerPlugin)()]);
|
|
71
|
-
plugins.register(params.plugins);
|
|
72
|
-
return (0, _sqs.createHandler)({
|
|
73
|
-
...params,
|
|
74
|
-
plugins
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
exports.createResolverHandler = createResolverHandler;
|
|
78
|
-
|
|
79
|
-
//# sourceMappingURL=createResolverHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_sqs","require","_plugins","_createEventHandlerPlugin","_put","_delete","_fileManager","_LambdaTrigger","_CopyFile","_DeleteFile","_users","_CopyUser","_DeleteUser","createResolverHandler","params","awsWorkerLambdaArn","process","env","AWS_SYNC_WORKER_LAMBDA_ARN","message","console","error","Error","lambdaTrigger","LambdaTrigger","arn","createLambdaClient","copyFile","CopyFile","createS3Client","getLambdaTrigger","deleteFile","DeleteFile","copyUser","CopyUser","createCognitoIdentityProviderClient","deleteUser","DeleteUser","plugins","PluginsContainer","createFileManagerPlugins","createUsersPlugins","createEventHandlerPlugin","createDocumentClient","tableName","DB_TABLE","createPutCommandHandlerPlugin","createDeleteCommandHandlerPlugin","register","createSQSHandler","exports"],"sources":["createResolverHandler.ts"],"sourcesContent":["import type { HandlerCallable, HandlerParams } from \"@webiny/handler-aws/sqs\";\nimport { createHandler as createSQSHandler } from \"@webiny/handler-aws/sqs\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createEventHandlerPlugin } from \"./createEventHandlerPlugin.js\";\nimport type { TransformRecordPlugin } from \"./plugins/TransformRecordPlugin.js\";\nimport type { CommandHandlerPlugin } from \"./plugins/CommandHandlerPlugin.js\";\nimport { createPutCommandHandlerPlugin } from \"./app/commandHandler/put.js\";\nimport { createDeleteCommandHandlerPlugin } from \"./app/commandHandler/delete.js\";\nimport type {\n DynamoDBClientConfig,\n DynamoDBDocument\n} from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createFileManagerPlugins } from \"./recordTypes/fileManager/fileManager.js\";\nimport { LambdaTrigger } from \"./lambda/LambdaTrigger.js\";\nimport type { LambdaClient, LambdaClientConfig } from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { CopyFile } from \"~/resolver/recordTypes/fileManager/CopyFile.js\";\nimport { DeleteFile } from \"./recordTypes/fileManager/DeleteFile.js\";\nimport { createUsersPlugins } from \"~/resolver/recordTypes/users/users.js\";\nimport { CopyUser } from \"./recordTypes/users/CopyUser.js\";\nimport type {\n CognitoIdentityProviderClient,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { DeleteUser } from \"./recordTypes/users/DeleteUser.js\";\n\nexport type AllowedResolverPlugins = TransformRecordPlugin | CommandHandlerPlugin;\n\nexport interface ICreateResolverHandlerParams extends HandlerParams {\n plugins: AllowedResolverPlugins[];\n createS3Client: (params: S3ClientConfig) => Pick<S3Client, \"send\">;\n createLambdaClient: (config: Partial<LambdaClientConfig>) => Pick<LambdaClient, \"send\">;\n createDocumentClient: (params: Partial<DynamoDBClientConfig>) => Pick<DynamoDBDocument, \"send\">;\n createCognitoIdentityProviderClient: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProviderClient, \"send\">;\n tableName?: string;\n awsWorkerLambdaArn?: string;\n}\n/**\n * Handler for the Sync System Resolver - based on SQS handler.\n */\nexport const createResolverHandler = (params: ICreateResolverHandlerParams): HandlerCallable => {\n const awsWorkerLambdaArn = params.awsWorkerLambdaArn || process.env.AWS_SYNC_WORKER_LAMBDA_ARN;\n if (!awsWorkerLambdaArn) {\n const message = `Missing \"process.env.AWS_SYNC_WORKER_LAMBDA_ARN\".`;\n console.error(message);\n throw new Error(message);\n }\n\n const lambdaTrigger = new LambdaTrigger({\n arn: awsWorkerLambdaArn,\n createLambdaClient: params.createLambdaClient\n });\n\n const copyFile = new CopyFile({\n createS3Client: params.createS3Client,\n getLambdaTrigger: () => {\n return lambdaTrigger;\n }\n });\n const deleteFile = new DeleteFile({\n createS3Client: params.createS3Client,\n getLambdaTrigger: () => {\n return lambdaTrigger;\n }\n });\n\n const copyUser = new CopyUser({\n createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,\n getLambdaTrigger: () => {\n return lambdaTrigger;\n }\n });\n const deleteUser = new DeleteUser({\n createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,\n getLambdaTrigger: () => {\n return lambdaTrigger;\n }\n });\n\n const plugins = new PluginsContainer([\n // TODO move into related packages\n createFileManagerPlugins({\n copyFile,\n deleteFile\n }),\n createUsersPlugins({\n copyUser,\n deleteUser\n }),\n // leave here\n createEventHandlerPlugin({\n createDocumentClient: params.createDocumentClient,\n tableName: params.tableName || process.env.DB_TABLE\n }),\n createPutCommandHandlerPlugin(),\n createDeleteCommandHandlerPlugin()\n ]);\n\n plugins.register(params.plugins);\n\n return createSQSHandler({\n ...params,\n plugins\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,yBAAA,GAAAF,OAAA;AAGA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAKA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAGA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAKA,IAAAW,WAAA,GAAAX,OAAA;AAeA;AACA;AACA;AACO,MAAMY,qBAAqB,GAAIC,MAAoC,IAAsB;EAC5F,MAAMC,kBAAkB,GAAGD,MAAM,CAACC,kBAAkB,IAAIC,OAAO,CAACC,GAAG,CAACC,0BAA0B;EAC9F,IAAI,CAACH,kBAAkB,EAAE;IACrB,MAAMI,OAAO,GAAG,mDAAmD;IACnEC,OAAO,CAACC,KAAK,CAACF,OAAO,CAAC;IACtB,MAAM,IAAIG,KAAK,CAACH,OAAO,CAAC;EAC5B;EAEA,MAAMI,aAAa,GAAG,IAAIC,4BAAa,CAAC;IACpCC,GAAG,EAAEV,kBAAkB;IACvBW,kBAAkB,EAAEZ,MAAM,CAACY;EAC/B,CAAC,CAAC;EAEF,MAAMC,QAAQ,GAAG,IAAIC,kBAAQ,CAAC;IAC1BC,cAAc,EAAEf,MAAM,CAACe,cAAc;IACrCC,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOP,aAAa;IACxB;EACJ,CAAC,CAAC;EACF,MAAMQ,UAAU,GAAG,IAAIC,sBAAU,CAAC;IAC9BH,cAAc,EAAEf,MAAM,CAACe,cAAc;IACrCC,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOP,aAAa;IACxB;EACJ,CAAC,CAAC;EAEF,MAAMU,QAAQ,GAAG,IAAIC,kBAAQ,CAAC;IAC1BC,mCAAmC,EAAErB,MAAM,CAACqB,mCAAmC;IAC/EL,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOP,aAAa;IACxB;EACJ,CAAC,CAAC;EACF,MAAMa,UAAU,GAAG,IAAIC,sBAAU,CAAC;IAC9BF,mCAAmC,EAAErB,MAAM,CAACqB,mCAAmC;IAC/EL,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOP,aAAa;IACxB;EACJ,CAAC,CAAC;EAEF,MAAMe,OAAO,GAAG,IAAIC,yBAAgB,CAAC;EACjC;EACA,IAAAC,qCAAwB,EAAC;IACrBb,QAAQ;IACRI;EACJ,CAAC,CAAC,EACF,IAAAU,yBAAkB,EAAC;IACfR,QAAQ;IACRG;EACJ,CAAC,CAAC;EACF;EACA,IAAAM,kDAAwB,EAAC;IACrBC,oBAAoB,EAAE7B,MAAM,CAAC6B,oBAAoB;IACjDC,SAAS,EAAE9B,MAAM,CAAC8B,SAAS,IAAI5B,OAAO,CAACC,GAAG,CAAC4B;EAC/C,CAAC,CAAC,EACF,IAAAC,kCAA6B,EAAC,CAAC,EAC/B,IAAAC,wCAAgC,EAAC,CAAC,CACrC,CAAC;EAEFT,OAAO,CAACU,QAAQ,CAAClC,MAAM,CAACwB,OAAO,CAAC;EAEhC,OAAO,IAAAW,kBAAgB,EAAC;IACpB,GAAGnC,MAAM;IACTwB;EACJ,CAAC,CAAC;AACN,CAAC;AAACY,OAAA,CAAArC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { DynamoDBTableType } from \"~/types\";\nimport type { SemVer } from \"semver\";\nimport type { ITable } from \"~/sync/types\";\n\nexport interface IDeploymentServices {\n s3Id: string;\n s3Arn: string;\n primaryDynamoDbArn: string;\n primaryDynamoDbName: string;\n primaryDynamoDbHashKey: string;\n primaryDynamoDbRangeKey: string;\n elasticsearchDynamodbTableArn?: string;\n elasticsearchDynamodbTableName?: string;\n logDynamodbTableArn: string;\n logDynamodbTableName: string;\n cognitoUserPoolId: string;\n}\n\nexport interface IDeployment<S = IDeploymentServices> {\n name: string;\n env: string;\n variant: string | undefined;\n region: string;\n services: S;\n version: SemVer;\n getTable(type: DynamoDBTableType): ITable;\n}\n\nexport interface IDeployments {\n hasAny(): boolean;\n all(): IDeployment[];\n get(name: string): IDeployment | null;\n without(deployment: Pick<IDeployment, \"name\">): IDeployments;\n}\n\nexport interface IDeploymentsFetcher {\n fetch(): Promise<IDeployments>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { LambdaTrigger } from \"~/resolver/lambda/LambdaTrigger.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport type { IDeployment } from \"~/resolver/deployment/types.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\n\nexport interface IGetLambdaTriggerCb<T> {\n (): LambdaTrigger<T>;\n}\n\nexport interface ICreateS3ClientCb {\n (params: S3ClientConfig): Pick<S3Client, \"send\">;\n}\n\nexport interface ICopyFileHandleParams {\n key: string;\n source: IDeployment;\n target: IDeployment;\n}\n\nexport interface ICopyFile {\n handle(params: ICopyFileHandleParams): Promise<InvokeCommandOutput | null>;\n}\n\nexport interface IDeleteFileHandleParams {\n key: string;\n source: IDeployment;\n target: IDeployment;\n}\n\nexport interface IDeleteFile {\n handle(params: IDeleteFileHandleParams): Promise<InvokeCommandOutput | null>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IDeployment } from \"~/resolver/deployment/types\";\nimport type {\n CognitoIdentityProviderClient,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport type { InvokeCommandOutput } from \"@webiny/aws-sdk/client-lambda/index.js\";\n\nexport interface IUserDeploymentServices {\n cognitoUserPoolId: string;\n}\n\nexport interface ICopyUserHandleParams {\n username: string;\n source: Pick<IDeployment<IUserDeploymentServices>, \"region\" | \"services\">;\n target: Pick<IDeployment<IUserDeploymentServices>, \"region\" | \"services\">;\n}\n\nexport interface ICopyUser {\n handle(params: ICopyUserHandleParams): Promise<InvokeCommandOutput | null>;\n}\n\nexport interface IDeleteUserHandleParams {\n username: string;\n target: Pick<IDeployment<IUserDeploymentServices>, \"region\" | \"services\">;\n}\n\nexport interface IDeleteUser {\n handle(params: IDeleteUserHandleParams): Promise<InvokeCommandOutput | null>;\n}\n\nexport interface ICreateCognitoIdentityProviderClientCb {\n (config: Partial<CognitoIdentityProviderClientConfig>): Pick<\n CognitoIdentityProviderClient,\n \"send\"\n >;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createSendDataToEventBridgeOnRequestEnd = void 0;
|
|
7
|
-
var _handler = require("@webiny/handler");
|
|
8
|
-
var _exception = require("@webiny/utils/exception.js");
|
|
9
|
-
const execute = async handler => {
|
|
10
|
-
try {
|
|
11
|
-
return await handler.flush();
|
|
12
|
-
} catch (ex) {
|
|
13
|
-
const error = (0, _exception.convertException)(ex);
|
|
14
|
-
console.error({
|
|
15
|
-
flushError: error
|
|
16
|
-
});
|
|
17
|
-
return {
|
|
18
|
-
error
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* We do not want to throw an error here, because we are in the request end.
|
|
22
|
-
*/
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const isOptionsRequest = request => {
|
|
26
|
-
if (!request?.method) {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
return request.method.toUpperCase() === "OPTIONS";
|
|
30
|
-
};
|
|
31
|
-
const createSendDataToEventBridgeOnRequestEnd = handler => {
|
|
32
|
-
const onRequestResponseSend = (0, _handler.createOnRequestResponseSend)(async (request, _, payload) => {
|
|
33
|
-
if (isOptionsRequest(request)) {
|
|
34
|
-
return payload;
|
|
35
|
-
}
|
|
36
|
-
await execute(handler);
|
|
37
|
-
return payload;
|
|
38
|
-
});
|
|
39
|
-
onRequestResponseSend.name = "sync.onRequestResponseSend";
|
|
40
|
-
const onRequestTimeout = (0, _handler.createOnRequestTimeout)(async request => {
|
|
41
|
-
if (isOptionsRequest(request)) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
return await execute(handler);
|
|
45
|
-
});
|
|
46
|
-
onRequestTimeout.name = "sync.onRequestTimeout";
|
|
47
|
-
return [onRequestResponseSend, onRequestTimeout];
|
|
48
|
-
};
|
|
49
|
-
exports.createSendDataToEventBridgeOnRequestEnd = createSendDataToEventBridgeOnRequestEnd;
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=createSendDataToEventBridgeOnRequestEnd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_handler","require","_exception","execute","handler","flush","ex","error","convertException","console","flushError","isOptionsRequest","request","method","toUpperCase","createSendDataToEventBridgeOnRequestEnd","onRequestResponseSend","createOnRequestResponseSend","_","payload","name","onRequestTimeout","createOnRequestTimeout","exports"],"sources":["createSendDataToEventBridgeOnRequestEnd.ts"],"sourcesContent":["import type { IHandler } from \"./types.js\";\nimport { createOnRequestResponseSend, createOnRequestTimeout } from \"@webiny/handler\";\nimport type { Request as FastifyRequest } from \"@webiny/handler/types\";\nimport { convertException } from \"@webiny/utils/exception.js\";\n\nconst execute = async (handler: IHandler) => {\n try {\n return await handler.flush();\n } catch (ex) {\n const error = convertException(ex);\n console.error({\n flushError: error\n });\n return {\n error\n };\n /**\n * We do not want to throw an error here, because we are in the request end.\n */\n }\n};\n\nconst isOptionsRequest = (request: FastifyRequest): boolean => {\n if (!request?.method) {\n return false;\n }\n return request.method.toUpperCase() === \"OPTIONS\";\n};\n\nexport const createSendDataToEventBridgeOnRequestEnd = (handler: IHandler) => {\n const onRequestResponseSend = createOnRequestResponseSend(async (request, _, payload) => {\n if (isOptionsRequest(request)) {\n return payload;\n }\n await execute(handler);\n return payload;\n });\n onRequestResponseSend.name = \"sync.onRequestResponseSend\";\n\n const onRequestTimeout = createOnRequestTimeout(async request => {\n if (isOptionsRequest(request)) {\n return;\n }\n return await execute(handler);\n });\n onRequestTimeout.name = \"sync.onRequestTimeout\";\n\n return [onRequestResponseSend, onRequestTimeout];\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,OAAO,GAAG,MAAOC,OAAiB,IAAK;EACzC,IAAI;IACA,OAAO,MAAMA,OAAO,CAACC,KAAK,CAAC,CAAC;EAChC,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,MAAMC,KAAK,GAAG,IAAAC,2BAAgB,EAACF,EAAE,CAAC;IAClCG,OAAO,CAACF,KAAK,CAAC;MACVG,UAAU,EAAEH;IAChB,CAAC,CAAC;IACF,OAAO;MACHA;IACJ,CAAC;IACD;AACR;AACA;EACI;AACJ,CAAC;AAED,MAAMI,gBAAgB,GAAIC,OAAuB,IAAc;EAC3D,IAAI,CAACA,OAAO,EAAEC,MAAM,EAAE;IAClB,OAAO,KAAK;EAChB;EACA,OAAOD,OAAO,CAACC,MAAM,CAACC,WAAW,CAAC,CAAC,KAAK,SAAS;AACrD,CAAC;AAEM,MAAMC,uCAAuC,GAAIX,OAAiB,IAAK;EAC1E,MAAMY,qBAAqB,GAAG,IAAAC,oCAA2B,EAAC,OAAOL,OAAO,EAAEM,CAAC,EAAEC,OAAO,KAAK;IACrF,IAAIR,gBAAgB,CAACC,OAAO,CAAC,EAAE;MAC3B,OAAOO,OAAO;IAClB;IACA,MAAMhB,OAAO,CAACC,OAAO,CAAC;IACtB,OAAOe,OAAO;EAClB,CAAC,CAAC;EACFH,qBAAqB,CAACI,IAAI,GAAG,4BAA4B;EAEzD,MAAMC,gBAAgB,GAAG,IAAAC,+BAAsB,EAAC,MAAMV,OAAO,IAAI;IAC7D,IAAID,gBAAgB,CAACC,OAAO,CAAC,EAAE;MAC3B;IACJ;IACA,OAAO,MAAMT,OAAO,CAACC,OAAO,CAAC;EACjC,CAAC,CAAC;EACFiB,gBAAgB,CAACD,IAAI,GAAG,uBAAuB;EAE/C,OAAO,CAACJ,qBAAqB,EAAEK,gBAAgB,CAAC;AACpD,CAAC;AAACE,OAAA,CAAAR,uCAAA,GAAAA,uCAAA","ignoreList":[]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Plugin } from "@webiny/plugins/types.js";
|
|
2
|
-
import type { IGetEventBridgeCallable, ISystem } from "./types.js";
|
|
3
|
-
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
4
|
-
import type { PossiblyUndefinedProperties } from "@webiny/api/types";
|
|
5
|
-
import type { FilterOutRecordPlugin } from "./plugins/FilterOutRecordPlugin.js";
|
|
6
|
-
export type IAllowedPlugins = FilterOutRecordPlugin;
|
|
7
|
-
export interface ICreateSyncSystemParams {
|
|
8
|
-
getDocumentClient(): Pick<DynamoDBDocument, "send">;
|
|
9
|
-
getEventBridgeClient: IGetEventBridgeCallable;
|
|
10
|
-
system: PossiblyUndefinedProperties<Omit<ISystem, "name">>;
|
|
11
|
-
plugins?: IAllowedPlugins[];
|
|
12
|
-
}
|
|
13
|
-
export interface ICreateSyncSystemResponse {
|
|
14
|
-
plugins(): Plugin[];
|
|
15
|
-
}
|
|
16
|
-
export declare const createSyncSystem: (params: ICreateSyncSystemParams) => ICreateSyncSystemResponse;
|
package/sync/createSyncSystem.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createSyncSystem = void 0;
|
|
7
|
-
var _validateSystemInput = require("./utils/validateSystemInput.js");
|
|
8
|
-
var _requestPlugin = require("./requestPlugin.js");
|
|
9
|
-
var _createDefaultFilterOutRecordPlugins = require("./filter/createDefaultFilterOutRecordPlugins.js");
|
|
10
|
-
const emptyResponse = {
|
|
11
|
-
plugins() {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
const createSyncSystem = params => {
|
|
16
|
-
const {
|
|
17
|
-
system,
|
|
18
|
-
error
|
|
19
|
-
} = (0, _validateSystemInput.validateSystemInput)(params.system);
|
|
20
|
-
/**
|
|
21
|
-
* We do not want to throw any errors. We will log them and just return a function which returns empty array as plugins.
|
|
22
|
-
*/
|
|
23
|
-
if (error) {
|
|
24
|
-
console.error(error);
|
|
25
|
-
return emptyResponse;
|
|
26
|
-
} else if (!system) {
|
|
27
|
-
console.error("Sync System: No system provided. Sync System will not be attached.");
|
|
28
|
-
return emptyResponse;
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
plugins: () => {
|
|
32
|
-
return [...(params.plugins || []), ...(0, _createDefaultFilterOutRecordPlugins.createDefaultFilterOutRecordPlugins)(), (0, _requestPlugin.createSyncSystemHandlerOnRequestPlugin)({
|
|
33
|
-
getDocumentClient: params.getDocumentClient,
|
|
34
|
-
getEventBridgeClient: params.getEventBridgeClient,
|
|
35
|
-
system
|
|
36
|
-
})];
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
exports.createSyncSystem = createSyncSystem;
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=createSyncSystem.js.map
|