@webiny/api-sync-system 6.0.0-alpha.5 → 6.0.0-rc.1
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 +1 -7
- package/constants.js.map +1 -1
- package/index.js +3 -38
- package/index.js.map +1 -1
- package/package.json +20 -23
- package/resolver/app/RecordHandler.d.ts +6 -6
- package/resolver/app/RecordHandler.js +7 -15
- package/resolver/app/RecordHandler.js.map +1 -1
- package/resolver/app/RecordsValidation.js +6 -14
- package/resolver/app/RecordsValidation.js.map +1 -1
- package/resolver/app/ResolverApplication.d.ts +1 -1
- package/resolver/app/ResolverApplication.js +10 -18
- package/resolver/app/ResolverApplication.js.map +1 -1
- package/resolver/app/abstractions/RecordHandler.d.ts +1 -1
- package/resolver/app/abstractions/RecordHandler.js +1 -5
- package/resolver/app/abstractions/RecordsValidation.d.ts +2 -2
- package/resolver/app/abstractions/RecordsValidation.js +1 -5
- package/resolver/app/abstractions/RecordsValidation.js.map +1 -1
- package/resolver/app/abstractions/ResolverApplication.js +1 -5
- package/resolver/app/abstractions/ResolverRecord.d.ts +1 -1
- package/resolver/app/abstractions/ResolverRecord.js +1 -5
- package/resolver/app/abstractions/ResolverRecord.js.map +1 -1
- package/resolver/app/bundler/BaseBundle.d.ts +6 -6
- package/resolver/app/bundler/BaseBundle.js +1 -8
- package/resolver/app/bundler/BaseBundle.js.map +1 -1
- package/resolver/app/bundler/Bundler.d.ts +1 -1
- package/resolver/app/bundler/Bundler.js +2 -10
- package/resolver/app/bundler/Bundler.js.map +1 -1
- package/resolver/app/bundler/Bundles.d.ts +2 -2
- package/resolver/app/bundler/Bundles.js +2 -10
- package/resolver/app/bundler/Bundles.js.map +1 -1
- package/resolver/app/bundler/CommandBundle.d.ts +1 -1
- package/resolver/app/bundler/CommandBundle.js +3 -11
- package/resolver/app/bundler/CommandBundle.js.map +1 -1
- package/resolver/app/bundler/TableBundle.d.ts +1 -1
- package/resolver/app/bundler/TableBundle.js +3 -11
- package/resolver/app/bundler/TableBundle.js.map +1 -1
- package/resolver/app/bundler/types.d.ts +2 -2
- package/resolver/app/bundler/types.js +1 -5
- package/resolver/app/commandHandler/DeleteCommandHandler.d.ts +3 -3
- package/resolver/app/commandHandler/DeleteCommandHandler.js +1 -8
- package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/PutCommandHandler.d.ts +4 -4
- package/resolver/app/commandHandler/PutCommandHandler.js +1 -8
- package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/delete.d.ts +1 -1
- package/resolver/app/commandHandler/delete.js +6 -13
- package/resolver/app/commandHandler/delete.js.map +1 -1
- package/resolver/app/commandHandler/put.d.ts +1 -1
- package/resolver/app/commandHandler/put.js +6 -13
- package/resolver/app/commandHandler/put.js.map +1 -1
- package/resolver/app/data/SourceDataContainer.d.ts +3 -3
- package/resolver/app/data/SourceDataContainer.js +1 -8
- package/resolver/app/data/SourceDataContainer.js.map +1 -1
- package/resolver/app/data/types.d.ts +2 -2
- package/resolver/app/data/types.js +1 -5
- package/resolver/app/fetcher/Fetcher.d.ts +3 -3
- package/resolver/app/fetcher/Fetcher.js +13 -22
- package/resolver/app/fetcher/Fetcher.js.map +1 -1
- package/resolver/app/fetcher/types.d.ts +2 -2
- package/resolver/app/fetcher/types.js +1 -5
- package/resolver/app/ingestor/Ingestor.d.ts +1 -1
- package/resolver/app/ingestor/Ingestor.js +2 -10
- package/resolver/app/ingestor/Ingestor.js.map +1 -1
- package/resolver/app/ingestor/IngestorResult.js +3 -11
- package/resolver/app/ingestor/IngestorResult.js.map +1 -1
- package/resolver/app/ingestor/types.d.ts +2 -2
- package/resolver/app/ingestor/types.js +1 -5
- package/resolver/app/storer/Storer.d.ts +3 -3
- package/resolver/app/storer/Storer.js +12 -20
- package/resolver/app/storer/Storer.js.map +1 -1
- package/resolver/app/storer/types.d.ts +2 -2
- package/resolver/app/storer/types.js +1 -5
- package/resolver/app/storer/types.js.map +1 -1
- package/resolver/app/transform/TransformHandler.d.ts +4 -4
- package/resolver/app/transform/TransformHandler.js +5 -12
- package/resolver/app/transform/TransformHandler.js.map +1 -1
- package/resolver/app/transform/middleware.d.ts +1 -1
- package/resolver/app/transform/middleware.js +1 -7
- package/resolver/app/transform/middleware.js.map +1 -1
- package/resolver/app/utils/Retry.js +4 -12
- package/resolver/app/utils/Retry.js.map +1 -1
- package/resolver/app/utils/sleep.js +1 -8
- package/resolver/app/utils/sleep.js.map +1 -1
- package/resolver/app/validation/body.d.ts +6 -6
- package/resolver/app/validation/body.js +22 -30
- package/resolver/app/validation/body.js.map +1 -1
- package/resolver/app/validation/createJsonTransform.js +6 -14
- package/resolver/app/validation/createJsonTransform.js.map +1 -1
- package/resolver/app/validation/detail.d.ts +6 -6
- package/resolver/app/validation/detail.js +16 -24
- package/resolver/app/validation/detail.js.map +1 -1
- package/resolver/app/validation/event.d.ts +6 -6
- package/resolver/app/validation/event.js +19 -27
- package/resolver/app/validation/event.js.map +1 -1
- package/resolver/app/validation/numericString.js +5 -13
- package/resolver/app/validation/numericString.js.map +1 -1
- package/resolver/app/validation/system.js +8 -16
- package/resolver/app/validation/system.js.map +1 -1
- package/resolver/createEventHandlerPlugin.d.ts +2 -1
- package/resolver/createEventHandlerPlugin.js +35 -42
- package/resolver/createEventHandlerPlugin.js.map +1 -1
- package/resolver/createResolverHandler.d.ts +1 -1
- package/resolver/createResolverHandler.js +24 -31
- package/resolver/createResolverHandler.js.map +1 -1
- package/resolver/deployment/Deployment.d.ts +2 -3
- package/resolver/deployment/Deployment.js +6 -14
- package/resolver/deployment/Deployment.js.map +1 -1
- package/resolver/deployment/Deployments.js +2 -10
- package/resolver/deployment/Deployments.js.map +1 -1
- package/resolver/deployment/DeploymentsFetcher.js +33 -42
- package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
- package/resolver/deployment/types.d.ts +4 -4
- package/resolver/deployment/types.js +1 -5
- package/resolver/deployment/types.js.map +1 -1
- package/resolver/lambda/LambdaTrigger.js +5 -12
- package/resolver/lambda/LambdaTrigger.js.map +1 -1
- package/resolver/plugins/CommandHandlerPlugin.d.ts +3 -3
- package/resolver/plugins/CommandHandlerPlugin.js +3 -11
- package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
- package/resolver/plugins/StorerAfterEachPlugin.d.ts +2 -2
- package/resolver/plugins/StorerAfterEachPlugin.js +4 -13
- package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
- package/resolver/plugins/TransformRecordPlugin.d.ts +3 -3
- package/resolver/plugins/TransformRecordPlugin.js +3 -11
- package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
- package/resolver/recordTypes/fileManager/CopyFile.js +4 -11
- package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.d.ts +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.js +3 -10
- package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManager.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManager.js +4 -11
- package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +7 -14
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.d.ts +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js +7 -14
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.d.ts +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.js +1 -8
- package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/fileManager/types.d.ts +2 -2
- package/resolver/recordTypes/fileManager/types.js +1 -5
- package/resolver/recordTypes/users/CopyUser.d.ts +2 -2
- package/resolver/recordTypes/users/CopyUser.js +3 -10
- package/resolver/recordTypes/users/CopyUser.js.map +1 -1
- package/resolver/recordTypes/users/DeleteUser.d.ts +2 -2
- package/resolver/recordTypes/users/DeleteUser.js +3 -10
- package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.d.ts +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.js +1 -8
- package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/users/types.d.ts +1 -1
- package/resolver/recordTypes/users/types.js +1 -5
- package/resolver/recordTypes/users/types.js.map +1 -1
- package/resolver/recordTypes/users/users.js +4 -11
- package/resolver/recordTypes/users/users.js.map +1 -1
- package/resolver/recordTypes/users/usersOnDelete.d.ts +2 -2
- package/resolver/recordTypes/users/usersOnDelete.js +7 -14
- package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
- package/resolver/recordTypes/users/usersOnPut.d.ts +2 -2
- package/resolver/recordTypes/users/usersOnPut.js +7 -14
- package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
- package/sync/FilterOutRecord.d.ts +2 -2
- package/sync/FilterOutRecord.js +2 -10
- package/sync/FilterOutRecord.js.map +1 -1
- package/sync/attachToDynamoDbDocument.d.ts +1 -1
- package/sync/attachToDynamoDbDocument.js +9 -17
- package/sync/attachToDynamoDbDocument.js.map +1 -1
- package/sync/createHandler.js +27 -34
- package/sync/createHandler.js.map +1 -1
- package/sync/createSendDataToEventBridgeOnRequestEnd.js +6 -13
- package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +1 -1
- package/sync/createSyncSystem.d.ts +1 -1
- package/sync/createSyncSystem.js +6 -13
- package/sync/createSyncSystem.js.map +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.d.ts +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.js +9 -19
- package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
- package/sync/handler/Handler.d.ts +2 -2
- package/sync/handler/Handler.js +9 -17
- package/sync/handler/Handler.js.map +1 -1
- package/sync/handler/HandlerConverter.js +2 -10
- package/sync/handler/HandlerConverter.js.map +1 -1
- package/sync/handler/converter/BatchGetCommandConverter.js +6 -14
- package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
- package/sync/handler/converter/BatchWriteCommandConverter.js +6 -14
- package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
- package/sync/handler/converter/DeleteCommandConverter.js +6 -14
- package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
- package/sync/handler/converter/GetCommandConverter.js +6 -14
- package/sync/handler/converter/GetCommandConverter.js.map +1 -1
- package/sync/handler/converter/PutCommandConverter.js +6 -14
- package/sync/handler/converter/PutCommandConverter.js.map +1 -1
- package/sync/handler/converter/QueryCommandConverter.js +6 -14
- package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
- package/sync/handler/converter/ScanCommandConverter.js +6 -14
- package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
- package/sync/handler/converter/UpdateCommandConverter.js +6 -14
- 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 +4 -11
- 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 +3 -10
- 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 +1 -8
- 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 +3 -10
- 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 +3 -10
- package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
- package/sync/handler/types.d.ts +3 -3
- package/sync/handler/types.js +1 -5
- package/sync/handler/types.js.map +1 -1
- package/sync/plugins/FilterOutRecordPlugin.d.ts +1 -1
- package/sync/plugins/FilterOutRecordPlugin.js +3 -11
- package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
- package/sync/requestPlugin.d.ts +1 -1
- package/sync/requestPlugin.js +19 -20
- package/sync/requestPlugin.js.map +1 -1
- package/sync/types.js +1 -5
- package/sync/utils/getTableType.js +7 -14
- package/sync/utils/getTableType.js.map +1 -1
- package/sync/utils/manifest.d.ts +1 -1
- package/sync/utils/manifest.js +12 -20
- package/sync/utils/manifest.js.map +1 -1
- package/sync/utils/validateSystemInput.d.ts +1 -1
- package/sync/utils/validateSystemInput.js +3 -10
- package/sync/utils/validateSystemInput.js.map +1 -1
- package/types.d.ts +3 -4
- package/types.js +2 -8
- package/types.js.map +1 -1
- package/utils/createSystemName.js +1 -8
- package/utils/createSystemName.js.map +1 -1
- package/worker/actions/copyFile/CopyFile.js +13 -21
- package/worker/actions/copyFile/CopyFile.js.map +1 -1
- package/worker/actions/copyFile/copyFileAction.d.ts +1 -1
- package/worker/actions/copyFile/copyFileAction.js +9 -16
- package/worker/actions/copyFile/copyFileAction.js.map +1 -1
- package/worker/actions/copyFile/copyFileSchema.js +8 -16
- package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
- package/worker/actions/copyFile/types.js +1 -5
- package/worker/actions/createUser/CreateUser.d.ts +1 -1
- package/worker/actions/createUser/CreateUser.js +9 -16
- package/worker/actions/createUser/CreateUser.js.map +1 -1
- package/worker/actions/createUser/createUserAction.d.ts +2 -2
- package/worker/actions/createUser/createUserAction.js +9 -16
- package/worker/actions/createUser/createUserAction.js.map +1 -1
- package/worker/actions/createUser/createUserSchema.js +8 -16
- package/worker/actions/createUser/createUserSchema.js.map +1 -1
- package/worker/actions/createUser/types.js +1 -5
- package/worker/actions/deleteFile/DeleteFile.js +4 -11
- package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileAction.d.ts +1 -1
- package/worker/actions/deleteFile/deleteFileAction.js +9 -16
- package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileSchema.js +8 -16
- package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
- package/worker/actions/deleteFile/types.js +1 -5
- package/worker/actions/deleteUser/DeleteUser.d.ts +2 -2
- package/worker/actions/deleteUser/DeleteUser.js +7 -14
- package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserAction.d.ts +1 -1
- package/worker/actions/deleteUser/deleteUserAction.js +9 -16
- package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserSchema.js +8 -16
- package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
- package/worker/actions/deleteUser/types.js +1 -5
- package/worker/actions/logValidationError.js +4 -11
- package/worker/actions/logValidationError.js.map +1 -1
- package/worker/actions/removeCognitoUserAttributes.js +1 -8
- package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
- package/worker/actions/updateUser/UpdateUser.d.ts +1 -1
- package/worker/actions/updateUser/UpdateUser.js +9 -16
- package/worker/actions/updateUser/UpdateUser.js.map +1 -1
- package/worker/actions/updateUser/types.js +1 -5
- package/worker/actions/updateUser/updateUserAction.d.ts +2 -2
- package/worker/actions/updateUser/updateUserAction.js +9 -16
- package/worker/actions/updateUser/updateUserAction.js.map +1 -1
- package/worker/actions/updateUser/updateUserSchema.js +8 -16
- package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
- package/worker/createWorkerHandler.js +17 -24
- package/worker/createWorkerHandler.js.map +1 -1
- package/worker/handler/WorkerActionHandler.d.ts +2 -2
- package/worker/handler/WorkerActionHandler.js +3 -10
- package/worker/handler/WorkerActionHandler.js.map +1 -1
- package/worker/handler/eventHandler.js +9 -16
- package/worker/handler/eventHandler.js.map +1 -1
- package/worker/plugins/WorkerActionPlugin.d.ts +1 -1
- package/worker/plugins/WorkerActionPlugin.js +3 -11
- package/worker/plugins/WorkerActionPlugin.js.map +1 -1
- package/worker/types.js +1 -5
|
@@ -1,45 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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");
|
|
1
|
+
import { createEventHandler as createSQSEventHandler } from "@webiny/handler-aws/sqs/index.js";
|
|
2
|
+
import { createResolverApp } from "./app/ResolverApplication.js";
|
|
3
|
+
import { convertException } from "@webiny/utils";
|
|
4
|
+
import { createRecordHandler } from "./app/RecordHandler.js";
|
|
5
|
+
import { createFetcher } from "./app/fetcher/Fetcher.js";
|
|
6
|
+
import { createDeploymentsFetcher } from "./deployment/DeploymentsFetcher.js";
|
|
7
|
+
import { WebinyError } from "@webiny/error";
|
|
8
|
+
import { createBundler } from "./app/bundler/Bundler.js";
|
|
9
|
+
import { createBundles } from "./app/bundler/Bundles.js";
|
|
10
|
+
import { createCommandBundle } from "./app/bundler/CommandBundle.js";
|
|
11
|
+
import { createTableBundle } from "./app/bundler/TableBundle.js";
|
|
12
|
+
import { TransformHandler } from "./app/transform/TransformHandler.js";
|
|
13
|
+
import { SQSEventHandler } from "@webiny/handler-aws/sqs/plugins/SQSEventHandler.js";
|
|
14
|
+
import { createStorer } from "./app/storer/Storer.js";
|
|
15
|
+
import { StorerAfterEachPlugin } from "./plugins/StorerAfterEachPlugin.js";
|
|
16
|
+
import { SourceDataContainer } from "./app/data/SourceDataContainer.js";
|
|
23
17
|
/**
|
|
24
18
|
* TODO maybe add logger?
|
|
25
19
|
*/
|
|
26
|
-
const createEventHandlerPlugin = params => {
|
|
20
|
+
export const createEventHandlerPlugin = params => {
|
|
27
21
|
const {
|
|
28
22
|
createDocumentClient,
|
|
29
23
|
tableName
|
|
30
24
|
} = params;
|
|
31
|
-
const plugin = (
|
|
25
|
+
const plugin = createSQSEventHandler(async ({
|
|
32
26
|
event,
|
|
33
27
|
context,
|
|
34
28
|
reply
|
|
35
29
|
}) => {
|
|
36
30
|
if (!tableName) {
|
|
37
|
-
throw new
|
|
31
|
+
throw new WebinyError({
|
|
38
32
|
message: "Table name variable is not set."
|
|
39
33
|
});
|
|
40
34
|
}
|
|
41
35
|
try {
|
|
42
|
-
const fetcher =
|
|
36
|
+
const fetcher = createFetcher({
|
|
43
37
|
maxRetries: 10,
|
|
44
38
|
retryDelay: 1000,
|
|
45
39
|
createDocumentClient: deployment => {
|
|
@@ -48,7 +42,7 @@ const createEventHandlerPlugin = params => {
|
|
|
48
42
|
});
|
|
49
43
|
}
|
|
50
44
|
});
|
|
51
|
-
const deploymentsFetcher =
|
|
45
|
+
const deploymentsFetcher = createDeploymentsFetcher({
|
|
52
46
|
client: createDocumentClient({
|
|
53
47
|
region: process.env.AWS_REGION
|
|
54
48
|
}),
|
|
@@ -58,8 +52,8 @@ const createEventHandlerPlugin = params => {
|
|
|
58
52
|
* Fetch all possible deployments, out of which we will filter out the deployment that the records came from.
|
|
59
53
|
*/
|
|
60
54
|
const deployments = await deploymentsFetcher.fetch();
|
|
61
|
-
const storerAfterEachPlugins = context.plugins.byType(
|
|
62
|
-
const storer =
|
|
55
|
+
const storerAfterEachPlugins = context.plugins.byType(StorerAfterEachPlugin.type);
|
|
56
|
+
const storer = createStorer({
|
|
63
57
|
createDocumentClient: deployment => {
|
|
64
58
|
return createDocumentClient({
|
|
65
59
|
region: deployment.region
|
|
@@ -74,34 +68,34 @@ const createEventHandlerPlugin = params => {
|
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
70
|
});
|
|
77
|
-
const transformHandler = new
|
|
71
|
+
const transformHandler = new TransformHandler({
|
|
78
72
|
plugins: context.plugins
|
|
79
73
|
});
|
|
80
|
-
const recordHandler =
|
|
74
|
+
const recordHandler = createRecordHandler({
|
|
81
75
|
plugins: context.plugins,
|
|
82
76
|
fetcher,
|
|
83
77
|
storer,
|
|
84
78
|
deployments,
|
|
85
79
|
transformHandler,
|
|
86
|
-
commandBundler:
|
|
80
|
+
commandBundler: createBundler({
|
|
87
81
|
createBundles: () => {
|
|
88
|
-
return
|
|
89
|
-
createBundle:
|
|
82
|
+
return createBundles({
|
|
83
|
+
createBundle: createCommandBundle
|
|
90
84
|
});
|
|
91
85
|
}
|
|
92
86
|
}),
|
|
93
|
-
tableBundler:
|
|
87
|
+
tableBundler: createBundler({
|
|
94
88
|
createBundles: () => {
|
|
95
|
-
return
|
|
96
|
-
createBundle:
|
|
89
|
+
return createBundles({
|
|
90
|
+
createBundle: createTableBundle
|
|
97
91
|
});
|
|
98
92
|
}
|
|
99
93
|
}),
|
|
100
94
|
createSourceDataContainer: () => {
|
|
101
|
-
return
|
|
95
|
+
return SourceDataContainer.create();
|
|
102
96
|
}
|
|
103
97
|
});
|
|
104
|
-
const app =
|
|
98
|
+
const app = createResolverApp({
|
|
105
99
|
recordHandler,
|
|
106
100
|
deployments
|
|
107
101
|
});
|
|
@@ -112,16 +106,15 @@ const createEventHandlerPlugin = params => {
|
|
|
112
106
|
ok: true
|
|
113
107
|
});
|
|
114
108
|
} catch (ex) {
|
|
115
|
-
const error =
|
|
109
|
+
const error = convertException(ex);
|
|
116
110
|
console.error(error);
|
|
117
111
|
return reply.send({
|
|
118
112
|
error
|
|
119
113
|
});
|
|
120
114
|
}
|
|
121
115
|
});
|
|
122
|
-
plugin.name = `${
|
|
116
|
+
plugin.name = `${SQSEventHandler.type}.syncResolver`;
|
|
123
117
|
return plugin;
|
|
124
118
|
};
|
|
125
|
-
exports.createEventHandlerPlugin = createEventHandlerPlugin;
|
|
126
119
|
|
|
127
120
|
//# sourceMappingURL=createEventHandlerPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createEventHandler","createSQSEventHandler","createResolverApp","convertException","createRecordHandler","createFetcher","createDeploymentsFetcher","WebinyError","createBundler","createBundles","createCommandBundle","createTableBundle","TransformHandler","SQSEventHandler","createStorer","StorerAfterEachPlugin","SourceDataContainer","createEventHandlerPlugin","params","createDocumentClient","tableName","plugin","event","context","reply","message","fetcher","maxRetries","retryDelay","deployment","region","deploymentsFetcher","client","process","env","AWS_REGION","table","deployments","fetch","storerAfterEachPlugins","plugins","byType","type","storer","afterEach","canHandle","handle","transformHandler","recordHandler","commandBundler","createBundle","tableBundler","createSourceDataContainer","create","app","resolve","records","Records","send","ok","ex","error","console","name"],"sources":["createEventHandlerPlugin.ts"],"sourcesContent":["import { createEventHandler as createSQSEventHandler } from \"@webiny/handler-aws/sqs/index.js\";\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\";\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":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HandlerCallable, HandlerParams } from "@webiny/handler-aws/sqs";
|
|
1
|
+
import type { HandlerCallable, HandlerParams } from "@webiny/handler-aws/sqs/index.js";
|
|
2
2
|
import type { TransformRecordPlugin } from "./plugins/TransformRecordPlugin.js";
|
|
3
3
|
import type { CommandHandlerPlugin } from "./plugins/CommandHandlerPlugin.js";
|
|
4
4
|
import type { DynamoDBClientConfig, DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
@@ -1,79 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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");
|
|
1
|
+
import { createHandler as createSQSHandler } from "@webiny/handler-aws/sqs/index.js";
|
|
2
|
+
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
import { createEventHandlerPlugin } from "./createEventHandlerPlugin.js";
|
|
4
|
+
import { createPutCommandHandlerPlugin } from "./app/commandHandler/put.js";
|
|
5
|
+
import { createDeleteCommandHandlerPlugin } from "./app/commandHandler/delete.js";
|
|
6
|
+
import { createFileManagerPlugins } from "./recordTypes/fileManager/fileManager.js";
|
|
7
|
+
import { LambdaTrigger } from "./lambda/LambdaTrigger.js";
|
|
8
|
+
import { CopyFile } from "./recordTypes/fileManager/CopyFile.js";
|
|
9
|
+
import { DeleteFile } from "./recordTypes/fileManager/DeleteFile.js";
|
|
10
|
+
import { createUsersPlugins } from "./recordTypes/users/users.js";
|
|
11
|
+
import { CopyUser } from "./recordTypes/users/CopyUser.js";
|
|
12
|
+
import { DeleteUser } from "./recordTypes/users/DeleteUser.js";
|
|
19
13
|
/**
|
|
20
14
|
* Handler for the Sync System Resolver - based on SQS handler.
|
|
21
15
|
*/
|
|
22
|
-
const createResolverHandler = params => {
|
|
16
|
+
export const createResolverHandler = params => {
|
|
23
17
|
const awsWorkerLambdaArn = params.awsWorkerLambdaArn || process.env.AWS_SYNC_WORKER_LAMBDA_ARN;
|
|
24
18
|
if (!awsWorkerLambdaArn) {
|
|
25
19
|
const message = `Missing "process.env.AWS_SYNC_WORKER_LAMBDA_ARN".`;
|
|
26
20
|
console.error(message);
|
|
27
21
|
throw new Error(message);
|
|
28
22
|
}
|
|
29
|
-
const lambdaTrigger = new
|
|
23
|
+
const lambdaTrigger = new LambdaTrigger({
|
|
30
24
|
arn: awsWorkerLambdaArn,
|
|
31
25
|
createLambdaClient: params.createLambdaClient
|
|
32
26
|
});
|
|
33
|
-
const copyFile = new
|
|
27
|
+
const copyFile = new CopyFile({
|
|
34
28
|
createS3Client: params.createS3Client,
|
|
35
29
|
getLambdaTrigger: () => {
|
|
36
30
|
return lambdaTrigger;
|
|
37
31
|
}
|
|
38
32
|
});
|
|
39
|
-
const deleteFile = new
|
|
33
|
+
const deleteFile = new DeleteFile({
|
|
40
34
|
createS3Client: params.createS3Client,
|
|
41
35
|
getLambdaTrigger: () => {
|
|
42
36
|
return lambdaTrigger;
|
|
43
37
|
}
|
|
44
38
|
});
|
|
45
|
-
const copyUser = new
|
|
39
|
+
const copyUser = new CopyUser({
|
|
46
40
|
createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,
|
|
47
41
|
getLambdaTrigger: () => {
|
|
48
42
|
return lambdaTrigger;
|
|
49
43
|
}
|
|
50
44
|
});
|
|
51
|
-
const deleteUser = new
|
|
45
|
+
const deleteUser = new DeleteUser({
|
|
52
46
|
createCognitoIdentityProviderClient: params.createCognitoIdentityProviderClient,
|
|
53
47
|
getLambdaTrigger: () => {
|
|
54
48
|
return lambdaTrigger;
|
|
55
49
|
}
|
|
56
50
|
});
|
|
57
|
-
const plugins = new
|
|
51
|
+
const plugins = new PluginsContainer([
|
|
58
52
|
// TODO move into related packages
|
|
59
|
-
|
|
53
|
+
createFileManagerPlugins({
|
|
60
54
|
copyFile,
|
|
61
55
|
deleteFile
|
|
62
|
-
}),
|
|
56
|
+
}), createUsersPlugins({
|
|
63
57
|
copyUser,
|
|
64
58
|
deleteUser
|
|
65
59
|
}),
|
|
66
60
|
// leave here
|
|
67
|
-
|
|
61
|
+
createEventHandlerPlugin({
|
|
68
62
|
createDocumentClient: params.createDocumentClient,
|
|
69
63
|
tableName: params.tableName || process.env.DB_TABLE
|
|
70
|
-
}),
|
|
64
|
+
}), createPutCommandHandlerPlugin(), createDeleteCommandHandlerPlugin()]);
|
|
71
65
|
plugins.register(params.plugins);
|
|
72
|
-
return (
|
|
66
|
+
return createSQSHandler({
|
|
73
67
|
...params,
|
|
74
68
|
plugins
|
|
75
69
|
});
|
|
76
70
|
};
|
|
77
|
-
exports.createResolverHandler = createResolverHandler;
|
|
78
71
|
|
|
79
72
|
//# sourceMappingURL=createResolverHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createHandler","createSQSHandler","PluginsContainer","createEventHandlerPlugin","createPutCommandHandlerPlugin","createDeleteCommandHandlerPlugin","createFileManagerPlugins","LambdaTrigger","CopyFile","DeleteFile","createUsersPlugins","CopyUser","DeleteUser","createResolverHandler","params","awsWorkerLambdaArn","process","env","AWS_SYNC_WORKER_LAMBDA_ARN","message","console","error","Error","lambdaTrigger","arn","createLambdaClient","copyFile","createS3Client","getLambdaTrigger","deleteFile","copyUser","createCognitoIdentityProviderClient","deleteUser","plugins","createDocumentClient","tableName","DB_TABLE","register"],"sources":["createResolverHandler.ts"],"sourcesContent":["import type { HandlerCallable, HandlerParams } from \"@webiny/handler-aws/sqs/index.js\";\nimport { createHandler as createSQSHandler } from \"@webiny/handler-aws/sqs/index.js\";\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,SAASA,aAAa,IAAIC,gBAAgB,QAAQ,kCAAkC;AACpF,SAASC,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,wBAAwB;AAGjC,SAASC,6BAA6B;AACtC,SAASC,gCAAgC;AAKzC,SAASC,wBAAwB;AACjC,SAASC,aAAa;AAGtB,SAASC,QAAQ;AACjB,SAASC,UAAU;AACnB,SAASC,kBAAkB;AAC3B,SAASC,QAAQ;AAKjB,SAASC,UAAU;AAenB;AACA;AACA;AACA,OAAO,MAAMC,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,IAAIhB,aAAa,CAAC;IACpCiB,GAAG,EAAET,kBAAkB;IACvBU,kBAAkB,EAAEX,MAAM,CAACW;EAC/B,CAAC,CAAC;EAEF,MAAMC,QAAQ,GAAG,IAAIlB,QAAQ,CAAC;IAC1BmB,cAAc,EAAEb,MAAM,CAACa,cAAc;IACrCC,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOL,aAAa;IACxB;EACJ,CAAC,CAAC;EACF,MAAMM,UAAU,GAAG,IAAIpB,UAAU,CAAC;IAC9BkB,cAAc,EAAEb,MAAM,CAACa,cAAc;IACrCC,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOL,aAAa;IACxB;EACJ,CAAC,CAAC;EAEF,MAAMO,QAAQ,GAAG,IAAInB,QAAQ,CAAC;IAC1BoB,mCAAmC,EAAEjB,MAAM,CAACiB,mCAAmC;IAC/EH,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOL,aAAa;IACxB;EACJ,CAAC,CAAC;EACF,MAAMS,UAAU,GAAG,IAAIpB,UAAU,CAAC;IAC9BmB,mCAAmC,EAAEjB,MAAM,CAACiB,mCAAmC;IAC/EH,gBAAgB,EAAEA,CAAA,KAAM;MACpB,OAAOL,aAAa;IACxB;EACJ,CAAC,CAAC;EAEF,MAAMU,OAAO,GAAG,IAAI/B,gBAAgB,CAAC;EACjC;EACAI,wBAAwB,CAAC;IACrBoB,QAAQ;IACRG;EACJ,CAAC,CAAC,EACFnB,kBAAkB,CAAC;IACfoB,QAAQ;IACRE;EACJ,CAAC,CAAC;EACF;EACA7B,wBAAwB,CAAC;IACrB+B,oBAAoB,EAAEpB,MAAM,CAACoB,oBAAoB;IACjDC,SAAS,EAAErB,MAAM,CAACqB,SAAS,IAAInB,OAAO,CAACC,GAAG,CAACmB;EAC/C,CAAC,CAAC,EACFhC,6BAA6B,CAAC,CAAC,EAC/BC,gCAAgC,CAAC,CAAC,CACrC,CAAC;EAEF4B,OAAO,CAACI,QAAQ,CAACvB,MAAM,CAACmB,OAAO,CAAC;EAEhC,OAAOhC,gBAAgB,CAAC;IACpB,GAAGa,MAAM;IACTmB;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { SemVer } from "semver";
|
|
2
|
-
import type { IDeployment, IDeploymentServices } from "./types";
|
|
2
|
+
import type { IDeployment, IDeploymentServices } from "./types.js";
|
|
3
3
|
import type { DynamoDBTableType } from "../../types.js";
|
|
4
4
|
import type { ITable } from "../../sync/types.js";
|
|
5
|
-
export
|
|
6
|
-
}
|
|
5
|
+
export type IDeploymentParams = Omit<IDeployment, "getTable">;
|
|
7
6
|
export declare class Deployment implements IDeployment {
|
|
8
7
|
readonly name: string;
|
|
9
8
|
readonly env: string;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createDeployment = exports.Deployment = void 0;
|
|
7
|
-
class Deployment {
|
|
1
|
+
export class Deployment {
|
|
8
2
|
constructor(params) {
|
|
9
3
|
this.name = params.name;
|
|
10
4
|
this.env = params.env;
|
|
@@ -21,13 +15,13 @@ class Deployment {
|
|
|
21
15
|
arn: this.services.primaryDynamoDbArn,
|
|
22
16
|
type
|
|
23
17
|
};
|
|
24
|
-
case "
|
|
25
|
-
if (!this.services.
|
|
18
|
+
case "opensearch":
|
|
19
|
+
if (!this.services.opensearchDynamodbTableName || !this.services.opensearchDynamodbTableArn) {
|
|
26
20
|
throw new Error(`Unknown table type "${type}" - no data.`);
|
|
27
21
|
}
|
|
28
22
|
return {
|
|
29
|
-
name: this.services.
|
|
30
|
-
arn: this.services.
|
|
23
|
+
name: this.services.opensearchDynamodbTableName,
|
|
24
|
+
arn: this.services.opensearchDynamodbTableArn,
|
|
31
25
|
type
|
|
32
26
|
};
|
|
33
27
|
case "log":
|
|
@@ -41,10 +35,8 @@ class Deployment {
|
|
|
41
35
|
}
|
|
42
36
|
}
|
|
43
37
|
}
|
|
44
|
-
|
|
45
|
-
const createDeployment = params => {
|
|
38
|
+
export const createDeployment = params => {
|
|
46
39
|
return new Deployment(params);
|
|
47
40
|
};
|
|
48
|
-
exports.createDeployment = createDeployment;
|
|
49
41
|
|
|
50
42
|
//# sourceMappingURL=Deployment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Deployment","constructor","params","name","env","variant","region","services","version","getTable","type","primaryDynamoDbName","arn","primaryDynamoDbArn","
|
|
1
|
+
{"version":3,"names":["Deployment","constructor","params","name","env","variant","region","services","version","getTable","type","primaryDynamoDbName","arn","primaryDynamoDbArn","opensearchDynamodbTableName","opensearchDynamodbTableArn","Error","logDynamodbTableName","logDynamodbTableArn","createDeployment"],"sources":["Deployment.ts"],"sourcesContent":["import type { SemVer } from \"semver\";\nimport type { IDeployment, IDeploymentServices } from \"./types.js\";\nimport type { DynamoDBTableType } from \"~/types.js\";\nimport type { ITable } from \"~/sync/types.js\";\n\nexport type IDeploymentParams = Omit<IDeployment, \"getTable\">;\n\nexport class Deployment implements IDeployment {\n public readonly name: string;\n public readonly env: string;\n public readonly variant: string | undefined;\n public readonly region: string;\n public readonly services: IDeploymentServices;\n public readonly version: SemVer;\n\n public constructor(params: IDeploymentParams) {\n this.name = params.name;\n this.env = params.env;\n this.variant = params.variant;\n this.region = params.region;\n this.services = params.services;\n this.version = params.version;\n }\n\n public getTable(type: DynamoDBTableType): ITable {\n switch (type) {\n case \"regular\":\n return {\n name: this.services.primaryDynamoDbName,\n arn: this.services.primaryDynamoDbArn,\n type\n };\n case \"opensearch\":\n if (\n !this.services.opensearchDynamodbTableName ||\n !this.services.opensearchDynamodbTableArn\n ) {\n throw new Error(`Unknown table type \"${type}\" - no data.`);\n }\n return {\n name: this.services.opensearchDynamodbTableName,\n arn: this.services.opensearchDynamodbTableArn,\n type\n };\n case \"log\":\n return {\n name: this.services.logDynamodbTableName,\n arn: this.services.logDynamodbTableArn,\n type\n };\n default:\n throw new Error(`Unknown table type \"${type}\".`);\n }\n }\n}\n\nexport const createDeployment = (params: IDeploymentParams): IDeployment => {\n return new Deployment(params);\n};\n"],"mappings":"AAOA,OAAO,MAAMA,UAAU,CAAwB;EAQpCC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACC,IAAI,GAAGD,MAAM,CAACC,IAAI;IACvB,IAAI,CAACC,GAAG,GAAGF,MAAM,CAACE,GAAG;IACrB,IAAI,CAACC,OAAO,GAAGH,MAAM,CAACG,OAAO;IAC7B,IAAI,CAACC,MAAM,GAAGJ,MAAM,CAACI,MAAM;IAC3B,IAAI,CAACC,QAAQ,GAAGL,MAAM,CAACK,QAAQ;IAC/B,IAAI,CAACC,OAAO,GAAGN,MAAM,CAACM,OAAO;EACjC;EAEOC,QAAQA,CAACC,IAAuB,EAAU;IAC7C,QAAQA,IAAI;MACR,KAAK,SAAS;QACV,OAAO;UACHP,IAAI,EAAE,IAAI,CAACI,QAAQ,CAACI,mBAAmB;UACvCC,GAAG,EAAE,IAAI,CAACL,QAAQ,CAACM,kBAAkB;UACrCH;QACJ,CAAC;MACL,KAAK,YAAY;QACb,IACI,CAAC,IAAI,CAACH,QAAQ,CAACO,2BAA2B,IAC1C,CAAC,IAAI,CAACP,QAAQ,CAACQ,0BAA0B,EAC3C;UACE,MAAM,IAAIC,KAAK,CAAC,uBAAuBN,IAAI,cAAc,CAAC;QAC9D;QACA,OAAO;UACHP,IAAI,EAAE,IAAI,CAACI,QAAQ,CAACO,2BAA2B;UAC/CF,GAAG,EAAE,IAAI,CAACL,QAAQ,CAACQ,0BAA0B;UAC7CL;QACJ,CAAC;MACL,KAAK,KAAK;QACN,OAAO;UACHP,IAAI,EAAE,IAAI,CAACI,QAAQ,CAACU,oBAAoB;UACxCL,GAAG,EAAE,IAAI,CAACL,QAAQ,CAACW,mBAAmB;UACtCR;QACJ,CAAC;MACL;QACI,MAAM,IAAIM,KAAK,CAAC,uBAAuBN,IAAI,IAAI,CAAC;IACxD;EACJ;AACJ;AAEA,OAAO,MAAMS,gBAAgB,GAAIjB,MAAyB,IAAkB;EACxE,OAAO,IAAIF,UAAU,CAACE,MAAM,CAAC;AACjC,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createDeployments = exports.Deployments = void 0;
|
|
7
|
-
class Deployments {
|
|
1
|
+
export class Deployments {
|
|
8
2
|
constructor(params) {
|
|
9
3
|
this.deployments = params.deployments;
|
|
10
4
|
}
|
|
@@ -25,10 +19,8 @@ class Deployments {
|
|
|
25
19
|
});
|
|
26
20
|
}
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
const createDeployments = params => {
|
|
22
|
+
export const createDeployments = params => {
|
|
30
23
|
return new Deployments(params);
|
|
31
24
|
};
|
|
32
|
-
exports.createDeployments = createDeployments;
|
|
33
25
|
|
|
34
26
|
//# sourceMappingURL=Deployments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Deployments","constructor","params","deployments","hasAny","length","all","get","name","find","deployment","without","input","createDeployments","filter"
|
|
1
|
+
{"version":3,"names":["Deployments","constructor","params","deployments","hasAny","length","all","get","name","find","deployment","without","input","createDeployments","filter"],"sources":["Deployments.ts"],"sourcesContent":["import type { IDeployment, IDeployments } from \"./types.js\";\n\nexport interface IDeploymentsParams {\n deployments: IDeployment[];\n}\n\nexport class Deployments implements IDeployments {\n private readonly deployments: IDeployment[];\n\n public constructor(params: IDeploymentsParams) {\n this.deployments = params.deployments;\n }\n\n public hasAny(): boolean {\n return this.deployments.length > 0;\n }\n\n public all(): IDeployment[] {\n return this.deployments;\n }\n\n public get(name: string): IDeployment | null {\n return this.deployments.find(deployment => deployment.name === name) || null;\n }\n\n public without(input: Pick<IDeployment, \"name\">): IDeployments {\n return createDeployments({\n deployments: this.deployments.filter(deployment => {\n return deployment.name !== input.name;\n })\n });\n }\n}\n\nexport const createDeployments = (params: IDeploymentsParams): IDeployments => {\n return new Deployments(params);\n};\n"],"mappings":"AAMA,OAAO,MAAMA,WAAW,CAAyB;EAGtCC,WAAWA,CAACC,MAA0B,EAAE;IAC3C,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACC,WAAW;EACzC;EAEOC,MAAMA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACD,WAAW,CAACE,MAAM,GAAG,CAAC;EACtC;EAEOC,GAAGA,CAAA,EAAkB;IACxB,OAAO,IAAI,CAACH,WAAW;EAC3B;EAEOI,GAAGA,CAACC,IAAY,EAAsB;IACzC,OAAO,IAAI,CAACL,WAAW,CAACM,IAAI,CAACC,UAAU,IAAIA,UAAU,CAACF,IAAI,KAAKA,IAAI,CAAC,IAAI,IAAI;EAChF;EAEOG,OAAOA,CAACC,KAAgC,EAAgB;IAC3D,OAAOC,iBAAiB,CAAC;MACrBV,WAAW,EAAE,IAAI,CAACA,WAAW,CAACW,MAAM,CAACJ,UAAU,IAAI;QAC/C,OAAOA,UAAU,CAACF,IAAI,KAAKI,KAAK,CAACJ,IAAI;MACzC,CAAC;IACL,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,iBAAiB,GAAIX,MAA0B,IAAmB;EAC3E,OAAO,IAAIF,WAAW,CAACE,MAAM,CAAC;AAClC,CAAC","ignoreList":[]}
|
|
@@ -1,48 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
cognitoUserPoolId: _zod.default.string().optional().transform(input => input || ""),
|
|
24
|
-
primaryDynamoDbArn: _zod.default.string(),
|
|
25
|
-
primaryDynamoDbName: _zod.default.string(),
|
|
26
|
-
primaryDynamoDbHashKey: _zod.default.string(),
|
|
27
|
-
primaryDynamoDbRangeKey: _zod.default.string(),
|
|
28
|
-
elasticsearchDynamodbTableArn: _zod.default.string().optional(),
|
|
29
|
-
elasticsearchDynamodbTableName: _zod.default.string().optional()
|
|
1
|
+
import { QueryCommand, unmarshall } from "@webiny/aws-sdk/client-dynamodb/index.js";
|
|
2
|
+
import { WebinyError } from "@webiny/error";
|
|
3
|
+
import { createDeployments } from "./Deployments.js";
|
|
4
|
+
import zod from "zod";
|
|
5
|
+
import { createZodError } from "@webiny/utils/createZodError.js";
|
|
6
|
+
import { createDeployment } from "./Deployment.js";
|
|
7
|
+
import { SemVer } from "semver";
|
|
8
|
+
const deploymentsValidation = zod.array(zod.object({
|
|
9
|
+
name: zod.string(),
|
|
10
|
+
env: zod.string(),
|
|
11
|
+
variant: zod.string().optional(),
|
|
12
|
+
region: zod.string(),
|
|
13
|
+
version: zod.string(),
|
|
14
|
+
s3Id: zod.string(),
|
|
15
|
+
s3Arn: zod.string(),
|
|
16
|
+
cognitoUserPoolId: zod.string().optional().transform(input => input || ""),
|
|
17
|
+
primaryDynamoDbArn: zod.string(),
|
|
18
|
+
primaryDynamoDbName: zod.string(),
|
|
19
|
+
primaryDynamoDbHashKey: zod.string(),
|
|
20
|
+
primaryDynamoDbRangeKey: zod.string(),
|
|
21
|
+
opensearchDynamodbTableArn: zod.string().optional(),
|
|
22
|
+
opensearchDynamodbTableName: zod.string().optional()
|
|
30
23
|
}));
|
|
31
|
-
class DeploymentsFetcher {
|
|
24
|
+
export class DeploymentsFetcher {
|
|
32
25
|
constructor(params) {
|
|
33
26
|
this.client = params.client;
|
|
34
27
|
this.table = params.table;
|
|
35
28
|
}
|
|
36
29
|
async fetch() {
|
|
37
30
|
if (!this.deployments) {
|
|
38
|
-
this.deployments =
|
|
31
|
+
this.deployments = createDeployments({
|
|
39
32
|
deployments: await this.load()
|
|
40
33
|
});
|
|
41
34
|
}
|
|
42
35
|
return this.deployments;
|
|
43
36
|
}
|
|
44
37
|
async load() {
|
|
45
|
-
const cmd = new
|
|
38
|
+
const cmd = new QueryCommand({
|
|
46
39
|
TableName: this.table,
|
|
47
40
|
IndexName: "GSI1",
|
|
48
41
|
KeyConditionExpression: `GSI1_PK = :pk`,
|
|
@@ -63,11 +56,11 @@ class DeploymentsFetcher {
|
|
|
63
56
|
}
|
|
64
57
|
output(output) {
|
|
65
58
|
const items = (output.Items || []).map(item => {
|
|
66
|
-
const result =
|
|
59
|
+
const result = unmarshall(item);
|
|
67
60
|
return result.item;
|
|
68
61
|
});
|
|
69
62
|
if (items.length === 0) {
|
|
70
|
-
throw new
|
|
63
|
+
throw new WebinyError({
|
|
71
64
|
message: "No deployments found which need to be synced.",
|
|
72
65
|
code: "NO_DEPLOYMENTS",
|
|
73
66
|
data: {
|
|
@@ -77,15 +70,15 @@ class DeploymentsFetcher {
|
|
|
77
70
|
}
|
|
78
71
|
const result = deploymentsValidation.safeParse(items);
|
|
79
72
|
if (!result.success) {
|
|
80
|
-
throw
|
|
73
|
+
throw createZodError(result.error);
|
|
81
74
|
}
|
|
82
75
|
return result.data.map(item => {
|
|
83
|
-
return
|
|
76
|
+
return createDeployment({
|
|
84
77
|
name: item.name,
|
|
85
78
|
env: item.env,
|
|
86
79
|
variant: item.variant,
|
|
87
80
|
region: item.region,
|
|
88
|
-
version: new
|
|
81
|
+
version: new SemVer(item.version),
|
|
89
82
|
services: {
|
|
90
83
|
s3Id: item.s3Id,
|
|
91
84
|
s3Arn: item.s3Arn,
|
|
@@ -94,8 +87,8 @@ class DeploymentsFetcher {
|
|
|
94
87
|
primaryDynamoDbName: item.primaryDynamoDbName,
|
|
95
88
|
primaryDynamoDbHashKey: item.primaryDynamoDbHashKey,
|
|
96
89
|
primaryDynamoDbRangeKey: item.primaryDynamoDbRangeKey,
|
|
97
|
-
|
|
98
|
-
|
|
90
|
+
opensearchDynamodbTableArn: item.opensearchDynamodbTableArn,
|
|
91
|
+
opensearchDynamodbTableName: item.opensearchDynamodbTableName,
|
|
99
92
|
logDynamodbTableName: item.primaryDynamoDbName,
|
|
100
93
|
logDynamodbTableArn: item.primaryDynamoDbArn
|
|
101
94
|
}
|
|
@@ -103,10 +96,8 @@ class DeploymentsFetcher {
|
|
|
103
96
|
});
|
|
104
97
|
}
|
|
105
98
|
}
|
|
106
|
-
|
|
107
|
-
const createDeploymentsFetcher = params => {
|
|
99
|
+
export const createDeploymentsFetcher = params => {
|
|
108
100
|
return new DeploymentsFetcher(params);
|
|
109
101
|
};
|
|
110
|
-
exports.createDeploymentsFetcher = createDeploymentsFetcher;
|
|
111
102
|
|
|
112
103
|
//# sourceMappingURL=DeploymentsFetcher.js.map
|