@webiny/api-sync-system 6.3.0 → 6.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- package/index.js +0 -2
- package/package.json +14 -14
- package/resolver/app/RecordHandler.js +83 -105
- package/resolver/app/RecordHandler.js.map +1 -1
- package/resolver/app/RecordsValidation.js +11 -14
- package/resolver/app/RecordsValidation.js.map +1 -1
- package/resolver/app/ResolverApplication.js +24 -31
- package/resolver/app/ResolverApplication.js.map +1 -1
- package/resolver/app/abstractions/RecordHandler.js +0 -3
- package/resolver/app/abstractions/RecordsValidation.js +0 -3
- package/resolver/app/abstractions/ResolverApplication.js +0 -3
- package/resolver/app/abstractions/ResolverRecord.js +0 -3
- package/resolver/app/bundler/BaseBundle.js +17 -16
- package/resolver/app/bundler/BaseBundle.js.map +1 -1
- package/resolver/app/bundler/Bundler.js +13 -18
- package/resolver/app/bundler/Bundler.js.map +1 -1
- package/resolver/app/bundler/Bundles.js +21 -26
- package/resolver/app/bundler/Bundles.js.map +1 -1
- package/resolver/app/bundler/CommandBundle.js +7 -16
- package/resolver/app/bundler/CommandBundle.js.map +1 -1
- package/resolver/app/bundler/TableBundle.js +6 -13
- package/resolver/app/bundler/TableBundle.js.map +1 -1
- package/resolver/app/bundler/types.js +0 -3
- package/resolver/app/commandHandler/DeleteCommandHandler.js +22 -29
- package/resolver/app/commandHandler/DeleteCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/PutCommandHandler.js +16 -22
- package/resolver/app/commandHandler/PutCommandHandler.js.map +1 -1
- package/resolver/app/commandHandler/delete.js +11 -12
- package/resolver/app/commandHandler/delete.js.map +1 -1
- package/resolver/app/commandHandler/put.js +11 -12
- package/resolver/app/commandHandler/put.js.map +1 -1
- package/resolver/app/data/SourceDataContainer.js +28 -30
- package/resolver/app/data/SourceDataContainer.js.map +1 -1
- package/resolver/app/data/types.js +0 -3
- package/resolver/app/fetcher/Fetcher.js +84 -109
- package/resolver/app/fetcher/Fetcher.js.map +1 -1
- package/resolver/app/fetcher/types.js +0 -3
- package/resolver/app/ingestor/Ingestor.js +27 -32
- package/resolver/app/ingestor/Ingestor.js.map +1 -1
- package/resolver/app/ingestor/IngestorResult.js +28 -32
- package/resolver/app/ingestor/IngestorResult.js.map +1 -1
- package/resolver/app/ingestor/types.js +0 -3
- package/resolver/app/storer/Storer.js +71 -85
- package/resolver/app/storer/Storer.js.map +1 -1
- package/resolver/app/storer/types.js +0 -3
- package/resolver/app/transform/TransformHandler.js +45 -56
- package/resolver/app/transform/TransformHandler.js.map +1 -1
- package/resolver/app/transform/middleware.js +13 -20
- package/resolver/app/transform/middleware.js.map +1 -1
- package/resolver/app/utils/Retry.js +21 -24
- package/resolver/app/utils/Retry.js.map +1 -1
- package/resolver/app/utils/sleep.js +4 -5
- package/resolver/app/utils/sleep.js.map +1 -1
- package/resolver/app/validation/body.js +26 -31
- package/resolver/app/validation/body.js.map +1 -1
- package/resolver/app/validation/createJsonTransform.js +12 -13
- package/resolver/app/validation/createJsonTransform.js.map +1 -1
- package/resolver/app/validation/detail.js +30 -35
- package/resolver/app/validation/detail.js.map +1 -1
- package/resolver/app/validation/event.js +17 -18
- package/resolver/app/validation/event.js.map +1 -1
- package/resolver/app/validation/numericString.js +8 -11
- package/resolver/app/validation/numericString.js.map +1 -1
- package/resolver/app/validation/system.js +8 -9
- package/resolver/app/validation/system.js.map +1 -1
- package/resolver/createEventHandlerPlugin.js +70 -99
- package/resolver/createEventHandlerPlugin.js.map +1 -1
- package/resolver/createResolverHandler.js +49 -57
- package/resolver/createResolverHandler.js.map +1 -1
- package/resolver/deployment/Deployment.js +28 -31
- package/resolver/deployment/Deployment.js.map +1 -1
- package/resolver/deployment/Deployments.js +20 -23
- package/resolver/deployment/Deployments.js.map +1 -1
- package/resolver/deployment/DeploymentsFetcher.js +75 -84
- package/resolver/deployment/DeploymentsFetcher.js.map +1 -1
- package/resolver/deployment/types.js +0 -3
- package/resolver/lambda/LambdaTrigger.js +24 -26
- package/resolver/lambda/LambdaTrigger.js.map +1 -1
- package/resolver/plugins/CommandHandlerPlugin.js +16 -15
- package/resolver/plugins/CommandHandlerPlugin.js.map +1 -1
- package/resolver/plugins/StorerAfterEachPlugin.js +20 -19
- package/resolver/plugins/StorerAfterEachPlugin.js.map +1 -1
- package/resolver/plugins/TransformRecordPlugin.js +19 -18
- package/resolver/plugins/TransformRecordPlugin.js.map +1 -1
- package/resolver/recordTypes/fileManager/CopyFile.js +44 -67
- package/resolver/recordTypes/fileManager/CopyFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/DeleteFile.js +40 -58
- package/resolver/recordTypes/fileManager/DeleteFile.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManager.js +5 -3
- package/resolver/recordTypes/fileManager/fileManager.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js +24 -35
- package/resolver/recordTypes/fileManager/fileManagerOnDelete.js.map +1 -1
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js +24 -35
- package/resolver/recordTypes/fileManager/fileManagerOnPut.js.map +1 -1
- package/resolver/recordTypes/fileManager/shouldBeHandled.js +10 -27
- package/resolver/recordTypes/fileManager/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/fileManager/types.js +0 -3
- package/resolver/recordTypes/users/CopyUser.js +44 -54
- package/resolver/recordTypes/users/CopyUser.js.map +1 -1
- package/resolver/recordTypes/users/DeleteUser.js +40 -51
- package/resolver/recordTypes/users/DeleteUser.js.map +1 -1
- package/resolver/recordTypes/users/shouldBeHandled.js +10 -26
- package/resolver/recordTypes/users/shouldBeHandled.js.map +1 -1
- package/resolver/recordTypes/users/types.js +0 -3
- package/resolver/recordTypes/users/users.js +5 -3
- package/resolver/recordTypes/users/users.js.map +1 -1
- package/resolver/recordTypes/users/usersOnDelete.js +23 -34
- package/resolver/recordTypes/users/usersOnDelete.js.map +1 -1
- package/resolver/recordTypes/users/usersOnPut.js +24 -35
- package/resolver/recordTypes/users/usersOnPut.js.map +1 -1
- package/sync/FilterOutRecord.js +9 -17
- package/sync/FilterOutRecord.js.map +1 -1
- package/sync/attachToDynamoDbDocument.js +46 -65
- package/sync/attachToDynamoDbDocument.js.map +1 -1
- package/sync/createHandler.js +31 -40
- package/sync/createHandler.js.map +1 -1
- package/sync/createSendDataToEventBridgeOnRequestEnd.js +32 -37
- package/sync/createSendDataToEventBridgeOnRequestEnd.js.map +1 -1
- package/sync/createSyncSystem.js +24 -26
- package/sync/createSyncSystem.js.map +1 -1
- package/sync/filter/createDefaultFilterOutRecordPlugins.js +37 -76
- package/sync/filter/createDefaultFilterOutRecordPlugins.js.map +1 -1
- package/sync/handler/Handler.js +64 -76
- package/sync/handler/Handler.js.map +1 -1
- package/sync/handler/HandlerConverter.js +21 -29
- package/sync/handler/HandlerConverter.js.map +1 -1
- package/sync/handler/converter/BatchGetCommandConverter.js +12 -11
- package/sync/handler/converter/BatchGetCommandConverter.js.map +1 -1
- package/sync/handler/converter/BatchWriteCommandConverter.js +12 -11
- package/sync/handler/converter/BatchWriteCommandConverter.js.map +1 -1
- package/sync/handler/converter/DeleteCommandConverter.js +12 -11
- package/sync/handler/converter/DeleteCommandConverter.js.map +1 -1
- package/sync/handler/converter/GetCommandConverter.js +12 -11
- package/sync/handler/converter/GetCommandConverter.js.map +1 -1
- package/sync/handler/converter/PutCommandConverter.js +12 -11
- package/sync/handler/converter/PutCommandConverter.js.map +1 -1
- package/sync/handler/converter/QueryCommandConverter.js +12 -11
- package/sync/handler/converter/QueryCommandConverter.js.map +1 -1
- package/sync/handler/converter/ScanCommandConverter.js +12 -11
- package/sync/handler/converter/ScanCommandConverter.js.map +1 -1
- package/sync/handler/converter/UpdateCommandConverter.js +12 -11
- package/sync/handler/converter/UpdateCommandConverter.js.map +1 -1
- package/sync/handler/converter/commands/BatchWriteCommandValue.js +34 -37
- package/sync/handler/converter/commands/BatchWriteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/DeleteCommandValue.js +19 -16
- package/sync/handler/converter/commands/DeleteCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/NullCommandValue.js +8 -8
- package/sync/handler/converter/commands/NullCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/PutCommandValue.js +19 -16
- package/sync/handler/converter/commands/PutCommandValue.js.map +1 -1
- package/sync/handler/converter/commands/UpdateCommandValue.js +19 -16
- package/sync/handler/converter/commands/UpdateCommandValue.js.map +1 -1
- package/sync/handler/types.js +0 -3
- package/sync/plugins/FilterOutRecordPlugin.js +17 -19
- package/sync/plugins/FilterOutRecordPlugin.js.map +1 -1
- package/sync/requestPlugin.js +33 -48
- package/sync/requestPlugin.js.map +1 -1
- package/sync/types.js +0 -3
- package/sync/utils/getTableType.js +10 -9
- package/sync/utils/getTableType.js.map +1 -1
- package/sync/utils/manifest.js +28 -35
- package/sync/utils/manifest.js.map +1 -1
- package/sync/utils/validateSystemInput.js +21 -29
- package/sync/utils/validateSystemInput.js.map +1 -1
- package/types.js +6 -5
- package/types.js.map +1 -1
- package/utils/createSystemName.js +5 -3
- package/utils/createSystemName.js.map +1 -1
- package/worker/actions/copyFile/CopyFile.js +183 -258
- package/worker/actions/copyFile/CopyFile.js.map +1 -1
- package/worker/actions/copyFile/copyFileAction.js +26 -34
- package/worker/actions/copyFile/copyFileAction.js.map +1 -1
- package/worker/actions/copyFile/copyFileSchema.js +13 -14
- package/worker/actions/copyFile/copyFileSchema.js.map +1 -1
- package/worker/actions/copyFile/types.js +0 -3
- package/worker/actions/createUser/CreateUser.js +51 -74
- package/worker/actions/createUser/CreateUser.js.map +1 -1
- package/worker/actions/createUser/createUserAction.js +24 -28
- package/worker/actions/createUser/createUserAction.js.map +1 -1
- package/worker/actions/createUser/createUserSchema.js +13 -14
- package/worker/actions/createUser/createUserSchema.js.map +1 -1
- package/worker/actions/createUser/types.js +0 -3
- package/worker/actions/deleteFile/DeleteFile.js +52 -67
- package/worker/actions/deleteFile/DeleteFile.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileAction.js +21 -29
- package/worker/actions/deleteFile/deleteFileAction.js.map +1 -1
- package/worker/actions/deleteFile/deleteFileSchema.js +13 -14
- package/worker/actions/deleteFile/deleteFileSchema.js.map +1 -1
- package/worker/actions/deleteFile/types.js +0 -3
- package/worker/actions/deleteUser/DeleteUser.js +38 -52
- package/worker/actions/deleteUser/DeleteUser.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserAction.js +22 -26
- package/worker/actions/deleteUser/deleteUserAction.js.map +1 -1
- package/worker/actions/deleteUser/deleteUserSchema.js +12 -13
- package/worker/actions/deleteUser/deleteUserSchema.js.map +1 -1
- package/worker/actions/deleteUser/types.js +0 -3
- package/worker/actions/logValidationError.js +5 -6
- package/worker/actions/logValidationError.js.map +1 -1
- package/worker/actions/removeCognitoUserAttributes.js +9 -15
- package/worker/actions/removeCognitoUserAttributes.js.map +1 -1
- package/worker/actions/updateUser/UpdateUser.js +48 -65
- package/worker/actions/updateUser/UpdateUser.js.map +1 -1
- package/worker/actions/updateUser/types.js +0 -3
- package/worker/actions/updateUser/updateUserAction.js +24 -28
- package/worker/actions/updateUser/updateUserAction.js.map +1 -1
- package/worker/actions/updateUser/updateUserSchema.js +13 -14
- package/worker/actions/updateUser/updateUserSchema.js.map +1 -1
- package/worker/createWorkerHandler.js +24 -30
- package/worker/createWorkerHandler.js.map +1 -1
- package/worker/handler/WorkerActionHandler.js +19 -21
- package/worker/handler/WorkerActionHandler.js.map +1 -1
- package/worker/handler/eventHandler.js +14 -16
- package/worker/handler/eventHandler.js.map +1 -1
- package/worker/plugins/WorkerActionPlugin.js +17 -16
- package/worker/plugins/WorkerActionPlugin.js.map +1 -1
- package/worker/types.js +0 -3
- package/index.js.map +0 -1
- package/resolver/app/abstractions/RecordHandler.js.map +0 -1
- package/resolver/app/abstractions/RecordsValidation.js.map +0 -1
- package/resolver/app/abstractions/ResolverApplication.js.map +0 -1
- package/resolver/app/abstractions/ResolverRecord.js.map +0 -1
- package/resolver/app/bundler/types.js.map +0 -1
- package/resolver/app/data/types.js.map +0 -1
- package/resolver/app/fetcher/types.js.map +0 -1
- package/resolver/app/ingestor/types.js.map +0 -1
- package/resolver/app/storer/types.js.map +0 -1
- package/resolver/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/handler/types.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/types.js.map +0 -1
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import zod from "zod";
|
|
2
|
-
const createDataSchema = type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
2
|
+
const createDataSchema = (type)=>zod.object({
|
|
3
|
+
bucket: zod.string().min(1, `${type} Bucket is required.`),
|
|
4
|
+
region: zod.string().min(1, `${type} Region is required.`)
|
|
5
|
+
});
|
|
6
|
+
const createCopyFileSchema = ()=>zod.object({
|
|
7
|
+
action: zod["enum"]([
|
|
8
|
+
"copyFile"
|
|
9
|
+
]),
|
|
10
|
+
key: zod.string().min(1, "Key is required."),
|
|
11
|
+
source: createDataSchema("Source"),
|
|
12
|
+
target: createDataSchema("Target")
|
|
13
|
+
});
|
|
14
|
+
export { createCopyFileSchema };
|
|
16
15
|
|
|
17
16
|
//# sourceMappingURL=copyFileSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/copyFile/copyFileSchema.js","sources":["../../../../src/worker/actions/copyFile/copyFileSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n bucket: zod.string().min(1, `${type} Bucket is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCopyFileSchema = () => {\n return zod.object({\n action: zod.enum([\"copyFile\"]),\n key: zod.string().min(1, \"Key is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"names":["createDataSchema","type","zod","createCopyFileSchema"],"mappings":";AAEA,MAAMA,mBAAmB,CAACC,OACfC,IAAI,MAAM,CAAC;QACd,QAAQA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;QACzD,QAAQC,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;IAC7D;AAEG,MAAME,uBAAuB,IACzBD,IAAI,MAAM,CAAC;QACd,QAAQA,GAAG,CAAHA,OAAQ,CAAC;YAAC;SAAW;QAC7B,KAAKA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG;QACzB,QAAQF,iBAAiB;QACzB,QAAQA,iBAAiB;IAC7B"}
|
|
@@ -1,83 +1,60 @@
|
|
|
1
1
|
import { AdminCreateUserCommand, AdminGetUserCommand } from "@webiny/aws-sdk/client-cognito-identity-provider/index.js";
|
|
2
2
|
import { convertException } from "@webiny/utils/exception.js";
|
|
3
3
|
import { removeCognitoUserAttributes } from "../removeCognitoUserAttributes.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
async create(params) {
|
|
9
|
-
const {
|
|
10
|
-
sourceUserPoolId,
|
|
11
|
-
targetUserPoolId,
|
|
12
|
-
username,
|
|
13
|
-
targetRegion,
|
|
14
|
-
sourceRegion
|
|
15
|
-
} = params;
|
|
16
|
-
const sourceProvider = this.createCognitoProvider({
|
|
17
|
-
region: sourceRegion
|
|
18
|
-
});
|
|
19
|
-
const sourceUser = await this.getUser({
|
|
20
|
-
userPoolId: sourceUserPoolId,
|
|
21
|
-
username,
|
|
22
|
-
provider: sourceProvider
|
|
23
|
-
});
|
|
24
|
-
if (!sourceUser) {
|
|
25
|
-
throw new Error(`Source user "${username}" not found in pool "${sourceUserPoolId}".`);
|
|
4
|
+
class CreateUser {
|
|
5
|
+
constructor(params){
|
|
6
|
+
this.createCognitoProvider = params.createCognitoProvider;
|
|
26
7
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
8
|
+
async create(params) {
|
|
9
|
+
const { sourceUserPoolId, targetUserPoolId, username, targetRegion, sourceRegion } = params;
|
|
10
|
+
const sourceProvider = this.createCognitoProvider({
|
|
11
|
+
region: sourceRegion
|
|
12
|
+
});
|
|
13
|
+
const sourceUser = await this.getUser({
|
|
14
|
+
userPoolId: sourceUserPoolId,
|
|
15
|
+
username,
|
|
16
|
+
provider: sourceProvider
|
|
17
|
+
});
|
|
18
|
+
if (!sourceUser) throw new Error(`Source user "${username}" not found in pool "${sourceUserPoolId}".`);
|
|
19
|
+
const targetProvider = this.createCognitoProvider({
|
|
20
|
+
region: targetRegion
|
|
21
|
+
});
|
|
22
|
+
const targetUser = await this.getUser({
|
|
23
|
+
userPoolId: targetUserPoolId,
|
|
24
|
+
username,
|
|
25
|
+
provider: targetProvider
|
|
26
|
+
});
|
|
27
|
+
if (targetUser) return void console.log(`Target user "${username}" already exists in pool "${targetUserPoolId}".`);
|
|
28
|
+
const input = {
|
|
29
|
+
DesiredDeliveryMediums: [],
|
|
30
|
+
ForceAliasCreation: false,
|
|
31
|
+
MessageAction: "SUPPRESS",
|
|
32
|
+
UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),
|
|
33
|
+
UserPoolId: targetUserPoolId,
|
|
34
|
+
Username: username
|
|
35
|
+
};
|
|
36
|
+
const cmd = new AdminCreateUserCommand(input);
|
|
37
|
+
try {
|
|
38
|
+
await targetProvider.send(cmd);
|
|
39
|
+
} catch (ex) {
|
|
40
|
+
console.error(`Failed to create user "${username}" in pool "${targetUserPoolId}". More info in next log line.`);
|
|
41
|
+
console.log(convertException(ex));
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
};
|
|
52
|
-
const cmd = new AdminCreateUserCommand(input);
|
|
53
|
-
try {
|
|
54
|
-
await targetProvider.send(cmd);
|
|
55
|
-
} catch (ex) {
|
|
56
|
-
console.error(`Failed to create user "${username}" in pool "${targetUserPoolId}". More info in next log line.`);
|
|
57
|
-
console.log(convertException(ex));
|
|
44
|
+
async getUser(params) {
|
|
45
|
+
const { userPoolId, username, provider } = params;
|
|
46
|
+
const input = {
|
|
47
|
+
UserPoolId: userPoolId,
|
|
48
|
+
Username: username
|
|
49
|
+
};
|
|
50
|
+
const cmd = new AdminGetUserCommand(input);
|
|
51
|
+
try {
|
|
52
|
+
const result = await provider.send(cmd);
|
|
53
|
+
if (result.$metadata?.httpStatusCode === 200) return result;
|
|
54
|
+
} catch {}
|
|
55
|
+
return null;
|
|
58
56
|
}
|
|
59
|
-
}
|
|
60
|
-
async getUser(params) {
|
|
61
|
-
const {
|
|
62
|
-
userPoolId,
|
|
63
|
-
username,
|
|
64
|
-
provider
|
|
65
|
-
} = params;
|
|
66
|
-
const input = {
|
|
67
|
-
UserPoolId: userPoolId,
|
|
68
|
-
Username: username
|
|
69
|
-
};
|
|
70
|
-
const cmd = new AdminGetUserCommand(input);
|
|
71
|
-
try {
|
|
72
|
-
const result = await provider.send(cmd);
|
|
73
|
-
if (result.$metadata?.httpStatusCode === 200) {
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
} catch {
|
|
77
|
-
//
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
57
|
}
|
|
58
|
+
export { CreateUser };
|
|
82
59
|
|
|
83
60
|
//# sourceMappingURL=CreateUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/createUser/CreateUser.js","sources":["../../../../src/worker/actions/createUser/CreateUser.ts"],"sourcesContent":["import type {\n AdminCreateUserCommandInput,\n AdminGetUserCommandInput,\n AdminGetUserCommandOutput,\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport {\n AdminCreateUserCommand,\n AdminGetUserCommand\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { convertException } from \"@webiny/utils/exception.js\";\nimport { removeCognitoUserAttributes } from \"~/worker/actions/removeCognitoUserAttributes.js\";\n\nexport interface ICreateUserParams {\n createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport interface ICreateUserCreateParams {\n username: string;\n sourceRegion: string;\n targetRegion: string;\n sourceUserPoolId: string;\n targetUserPoolId: string;\n}\n\ninterface ICreateUserGetUserParams {\n userPoolId: string;\n username: string;\n provider: Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport class CreateUser {\n private readonly createCognitoProvider: (\n config: Partial<CognitoIdentityProviderClientConfig>\n ) => Pick<CognitoIdentityProvider, \"send\">;\n\n public constructor(params: ICreateUserParams) {\n this.createCognitoProvider = params.createCognitoProvider;\n }\n\n public async create(params: ICreateUserCreateParams): Promise<void> {\n const { sourceUserPoolId, targetUserPoolId, username, targetRegion, sourceRegion } = params;\n\n const sourceProvider = this.createCognitoProvider({\n region: sourceRegion\n });\n\n const sourceUser = await this.getUser({\n userPoolId: sourceUserPoolId,\n username,\n provider: sourceProvider\n });\n if (!sourceUser) {\n throw new Error(`Source user \"${username}\" not found in pool \"${sourceUserPoolId}\".`);\n }\n const targetProvider = this.createCognitoProvider({\n region: targetRegion\n });\n const targetUser = await this.getUser({\n userPoolId: targetUserPoolId,\n username,\n provider: targetProvider\n });\n if (targetUser) {\n console.log(`Target user \"${username}\" already exists in pool \"${targetUserPoolId}\".`);\n return;\n }\n /**\n * TODO: verify that this is everything that is required to create a user.\n * We cannot just spread the sourceUser as it causes an exception:\n * `Cannot modify the non-mutable attribute sub`\n */\n const input: AdminCreateUserCommandInput = {\n DesiredDeliveryMediums: [],\n ForceAliasCreation: false,\n MessageAction: \"SUPPRESS\",\n UserAttributes: removeCognitoUserAttributes(sourceUser.UserAttributes || []),\n UserPoolId: targetUserPoolId,\n Username: username\n };\n\n const cmd = new AdminCreateUserCommand(input);\n\n try {\n await targetProvider.send(cmd);\n } catch (ex) {\n console.error(\n `Failed to create user \"${username}\" in pool \"${targetUserPoolId}\". More info in next log line.`\n );\n console.log(convertException(ex));\n }\n }\n\n private async getUser(\n params: ICreateUserGetUserParams\n ): Promise<AdminGetUserCommandOutput | null> {\n const { userPoolId, username, provider } = params;\n const input: AdminGetUserCommandInput = {\n UserPoolId: userPoolId,\n Username: username\n };\n\n const cmd = new AdminGetUserCommand(input);\n\n try {\n const result = await provider.send(cmd);\n if (result.$metadata?.httpStatusCode === 200) {\n return result;\n }\n } catch {\n //\n }\n return null;\n }\n}\n"],"names":["CreateUser","params","sourceUserPoolId","targetUserPoolId","username","targetRegion","sourceRegion","sourceProvider","sourceUser","Error","targetProvider","targetUser","console","input","removeCognitoUserAttributes","cmd","AdminCreateUserCommand","ex","convertException","userPoolId","provider","AdminGetUserCommand","result"],"mappings":";;;AAkCO,MAAMA;IAKT,YAAmBC,MAAyB,CAAE;QAC1C,IAAI,CAAC,qBAAqB,GAAGA,OAAO,qBAAqB;IAC7D;IAEA,MAAa,OAAOA,MAA+B,EAAiB;QAChE,MAAM,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGL;QAErF,MAAMM,iBAAiB,IAAI,CAAC,qBAAqB,CAAC;YAC9C,QAAQD;QACZ;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,YAAYN;YACZE;YACA,UAAUG;QACd;QACA,IAAI,CAACC,YACD,MAAM,IAAIC,MAAM,CAAC,aAAa,EAAEL,SAAS,qBAAqB,EAAEF,iBAAiB,EAAE,CAAC;QAExF,MAAMQ,iBAAiB,IAAI,CAAC,qBAAqB,CAAC;YAC9C,QAAQL;QACZ;QACA,MAAMM,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,YAAYR;YACZC;YACA,UAAUM;QACd;QACA,IAAIC,YAAY,YACZC,QAAQ,GAAG,CAAC,CAAC,aAAa,EAAER,SAAS,0BAA0B,EAAED,iBAAiB,EAAE,CAAC;QAQzF,MAAMU,QAAqC;YACvC,wBAAwB,EAAE;YAC1B,oBAAoB;YACpB,eAAe;YACf,gBAAgBC,4BAA4BN,WAAW,cAAc,IAAI,EAAE;YAC3E,YAAYL;YACZ,UAAUC;QACd;QAEA,MAAMW,MAAM,IAAIC,uBAAuBH;QAEvC,IAAI;YACA,MAAMH,eAAe,IAAI,CAACK;QAC9B,EAAE,OAAOE,IAAI;YACTL,QAAQ,KAAK,CACT,CAAC,uBAAuB,EAAER,SAAS,WAAW,EAAED,iBAAiB,8BAA8B,CAAC;YAEpGS,QAAQ,GAAG,CAACM,iBAAiBD;QACjC;IACJ;IAEA,MAAc,QACVhB,MAAgC,EACS;QACzC,MAAM,EAAEkB,UAAU,EAAEf,QAAQ,EAAEgB,QAAQ,EAAE,GAAGnB;QAC3C,MAAMY,QAAkC;YACpC,YAAYM;YACZ,UAAUf;QACd;QAEA,MAAMW,MAAM,IAAIM,oBAAoBR;QAEpC,IAAI;YACA,MAAMS,SAAS,MAAMF,SAAS,IAAI,CAACL;YACnC,IAAIO,OAAO,SAAS,EAAE,mBAAmB,KACrC,OAAOA;QAEf,EAAE,OAAM,CAER;QACA,OAAO;IACX;AACJ"}
|
|
@@ -2,34 +2,30 @@ import { createWorkerActionPlugin } from "../../plugins/WorkerActionPlugin.js";
|
|
|
2
2
|
import { createCreateUserSchema } from "./createUserSchema.js";
|
|
3
3
|
import { CreateUser } from "./CreateUser.js";
|
|
4
4
|
import { logValidationError } from "../logValidationError.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
targetRegion: data.target.region,
|
|
29
|
-
targetUserPoolId: data.target.userPoolId
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
5
|
+
const createCreateUserAction = (params)=>{
|
|
6
|
+
const createUser = new CreateUser({
|
|
7
|
+
createCognitoProvider: params.createCognitoProvider
|
|
8
|
+
});
|
|
9
|
+
return createWorkerActionPlugin({
|
|
10
|
+
name: "sync.worker.action.createUser",
|
|
11
|
+
parse: (input)=>{
|
|
12
|
+
const schema = createCreateUserSchema();
|
|
13
|
+
const result = schema.safeParse(input);
|
|
14
|
+
if (!result.success || result.error) return void logValidationError(result.error);
|
|
15
|
+
return result.data;
|
|
16
|
+
},
|
|
17
|
+
async handle (params) {
|
|
18
|
+
const { data } = params;
|
|
19
|
+
return createUser.create({
|
|
20
|
+
username: data.username,
|
|
21
|
+
sourceRegion: data.source.region,
|
|
22
|
+
sourceUserPoolId: data.source.userPoolId,
|
|
23
|
+
targetRegion: data.target.region,
|
|
24
|
+
targetUserPoolId: data.target.userPoolId
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
33
28
|
};
|
|
29
|
+
export { createCreateUserAction };
|
|
34
30
|
|
|
35
31
|
//# sourceMappingURL=createUserAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/createUser/createUserAction.js","sources":["../../../../src/worker/actions/createUser/createUserAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport type { ICreateUserActionEvent } from \"~/worker/actions/createUser/types.js\";\nimport { createCreateUserSchema } from \"./createUserSchema.js\";\nimport type {\n CognitoIdentityProvider,\n CognitoIdentityProviderClientConfig\n} from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { CreateUser } from \"~/worker/actions/createUser/CreateUser.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateCreateUserActionParams {\n createCognitoProvider(\n config: Partial<CognitoIdentityProviderClientConfig>\n ): Pick<CognitoIdentityProvider, \"send\">;\n}\n\nexport const createCreateUserAction = (params: ICreateCreateUserActionParams) => {\n const createUser = new CreateUser({\n createCognitoProvider: params.createCognitoProvider\n });\n return createWorkerActionPlugin<ICreateUserActionEvent>({\n name: \"sync.worker.action.createUser\",\n parse: input => {\n const schema = createCreateUserSchema();\n\n const result = schema.safeParse(input);\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n return createUser.create({\n username: data.username,\n sourceRegion: data.source.region,\n sourceUserPoolId: data.source.userPoolId,\n targetRegion: data.target.region,\n targetUserPoolId: data.target.userPoolId\n });\n }\n });\n};\n"],"names":["createCreateUserAction","params","createUser","CreateUser","createWorkerActionPlugin","input","schema","createCreateUserSchema","result","logValidationError","data"],"mappings":";;;;AAgBO,MAAMA,yBAAyB,CAACC;IACnC,MAAMC,aAAa,IAAIC,WAAW;QAC9B,uBAAuBF,OAAO,qBAAqB;IACvD;IACA,OAAOG,yBAAiD;QACpD,MAAM;QACN,OAAOC,CAAAA;YACH,MAAMC,SAASC;YAEf,MAAMC,SAASF,OAAO,SAAS,CAACD;YAChC,IAAI,CAACG,OAAO,OAAO,IAAIA,OAAO,KAAK,EAAE,YACjCC,mBAAmBD,OAAO,KAAK;YAGnC,OAAOA,OAAO,IAAI;QACtB;QACA,MAAM,QAAOP,MAAM;YACf,MAAM,EAAES,IAAI,EAAE,GAAGT;YACjB,OAAOC,WAAW,MAAM,CAAC;gBACrB,UAAUQ,KAAK,QAAQ;gBACvB,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,kBAAkBA,KAAK,MAAM,CAAC,UAAU;gBACxC,cAAcA,KAAK,MAAM,CAAC,MAAM;gBAChC,kBAAkBA,KAAK,MAAM,CAAC,UAAU;YAC5C;QACJ;IACJ;AACJ"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import zod from "zod";
|
|
2
|
-
const createDataSchema = type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
2
|
+
const createDataSchema = (type)=>zod.object({
|
|
3
|
+
userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),
|
|
4
|
+
region: zod.string().min(1, `${type} Region is required.`)
|
|
5
|
+
});
|
|
6
|
+
const createCreateUserSchema = ()=>zod.object({
|
|
7
|
+
action: zod["enum"]([
|
|
8
|
+
"createUser"
|
|
9
|
+
]),
|
|
10
|
+
username: zod.string().min(1, "Username is required."),
|
|
11
|
+
source: createDataSchema("Source"),
|
|
12
|
+
target: createDataSchema("Target")
|
|
13
|
+
});
|
|
14
|
+
export { createCreateUserSchema };
|
|
16
15
|
|
|
17
16
|
//# sourceMappingURL=createUserSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/createUser/createUserSchema.js","sources":["../../../../src/worker/actions/createUser/createUserSchema.ts"],"sourcesContent":["import zod from \"zod\";\n\nconst createDataSchema = (type: string) => {\n return zod.object({\n userPoolId: zod.string().min(1, `${type} UserPoolId is required.`),\n region: zod.string().min(1, `${type} Region is required.`)\n });\n};\nexport const createCreateUserSchema = () => {\n return zod.object({\n action: zod.enum([\"createUser\"]),\n username: zod.string().min(1, \"Username is required.\"),\n source: createDataSchema(\"Source\"),\n target: createDataSchema(\"Target\")\n });\n};\n"],"names":["createDataSchema","type","zod","createCreateUserSchema"],"mappings":";AAEA,MAAMA,mBAAmB,CAACC,OACfC,IAAI,MAAM,CAAC;QACd,YAAYA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,wBAAwB,CAAC;QACjE,QAAQC,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,GAAGD,KAAK,oBAAoB,CAAC;IAC7D;AAEG,MAAME,yBAAyB,IAC3BD,IAAI,MAAM,CAAC;QACd,QAAQA,GAAG,CAAHA,OAAQ,CAAC;YAAC;SAAa;QAC/B,UAAUA,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG;QAC9B,QAAQF,iBAAiB;QACzB,QAAQA,iBAAiB;IAC7B"}
|
|
@@ -1,75 +1,60 @@
|
|
|
1
1
|
import { DeleteObjectCommand, HeadObjectCommand } from "@webiny/aws-sdk/client-s3/index.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} = params;
|
|
10
|
-
this.region = region;
|
|
11
|
-
this.createS3Client = createS3Client;
|
|
12
|
-
this.maxRetries = maxRetries;
|
|
13
|
-
this.baseDelayMs = baseDelayMs;
|
|
14
|
-
}
|
|
15
|
-
async delete(params) {
|
|
16
|
-
const {
|
|
17
|
-
bucket,
|
|
18
|
-
key
|
|
19
|
-
} = params;
|
|
20
|
-
const client = this.createS3Client({
|
|
21
|
-
region: this.region
|
|
22
|
-
});
|
|
23
|
-
if (!(await this.objectExists({
|
|
24
|
-
client,
|
|
25
|
-
bucket,
|
|
26
|
-
key
|
|
27
|
-
}))) {
|
|
28
|
-
return;
|
|
2
|
+
class DeleteFile {
|
|
3
|
+
constructor(params){
|
|
4
|
+
const { createS3Client, region, maxRetries = 5, baseDelayMs = 100 } = params;
|
|
5
|
+
this.region = region;
|
|
6
|
+
this.createS3Client = createS3Client;
|
|
7
|
+
this.maxRetries = maxRetries;
|
|
8
|
+
this.baseDelayMs = baseDelayMs;
|
|
29
9
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
return await client.send(cmd);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
async objectExists(params) {
|
|
39
|
-
const {
|
|
40
|
-
client,
|
|
41
|
-
bucket,
|
|
42
|
-
key
|
|
43
|
-
} = params;
|
|
44
|
-
try {
|
|
45
|
-
const result = await this.withRetry(async () => {
|
|
46
|
-
const cmd = new HeadObjectCommand({
|
|
47
|
-
Bucket: bucket,
|
|
48
|
-
Key: key
|
|
10
|
+
async delete(params) {
|
|
11
|
+
const { bucket, key } = params;
|
|
12
|
+
const client = this.createS3Client({
|
|
13
|
+
region: this.region
|
|
49
14
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
15
|
+
if (!await this.objectExists({
|
|
16
|
+
client,
|
|
17
|
+
bucket,
|
|
18
|
+
key
|
|
19
|
+
})) return;
|
|
20
|
+
await this.withRetry(async ()=>{
|
|
21
|
+
const cmd = new DeleteObjectCommand({
|
|
22
|
+
Bucket: bucket,
|
|
23
|
+
Key: key
|
|
24
|
+
});
|
|
25
|
+
return await client.send(cmd);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async objectExists(params) {
|
|
29
|
+
const { client, bucket, key } = params;
|
|
30
|
+
try {
|
|
31
|
+
const result = await this.withRetry(async ()=>{
|
|
32
|
+
const cmd = new HeadObjectCommand({
|
|
33
|
+
Bucket: bucket,
|
|
34
|
+
Key: key
|
|
35
|
+
});
|
|
36
|
+
return await client.send(cmd);
|
|
37
|
+
});
|
|
38
|
+
return result.$metadata?.httpStatusCode === 200;
|
|
39
|
+
} catch (ex) {
|
|
40
|
+
if (ex?.$metadata?.httpStatusCode === 404) return false;
|
|
41
|
+
throw ex;
|
|
42
|
+
}
|
|
58
43
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
44
|
+
async withRetry(operation, attempt = 0) {
|
|
45
|
+
try {
|
|
46
|
+
return await operation();
|
|
47
|
+
} catch (error) {
|
|
48
|
+
const retryable = error?.name === "Throttling" || error?.name === "TooManyRequestsException" || error?.name === "SlowDown";
|
|
49
|
+
if (retryable && attempt < this.maxRetries) {
|
|
50
|
+
const delay = this.baseDelayMs * Math.pow(2, attempt);
|
|
51
|
+
await new Promise((resolve)=>setTimeout(resolve, delay));
|
|
52
|
+
return this.withRetry(operation, attempt + 1);
|
|
53
|
+
}
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
71
56
|
}
|
|
72
|
-
}
|
|
73
57
|
}
|
|
58
|
+
export { DeleteFile };
|
|
74
59
|
|
|
75
60
|
//# sourceMappingURL=DeleteFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/deleteFile/DeleteFile.js","sources":["../../../../src/worker/actions/deleteFile/DeleteFile.ts"],"sourcesContent":["import type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { DeleteObjectCommand, HeadObjectCommand } from \"@webiny/aws-sdk/client-s3/index.js\";\n\nexport interface IDeleteFileParamsGetS3ClientCb {\n (config: Partial<S3ClientConfig>): Pick<S3Client, \"send\">;\n}\n\nexport interface IDeleteFileParams {\n region: string;\n createS3Client: IDeleteFileParamsGetS3ClientCb;\n maxRetries?: number;\n baseDelayMs?: number;\n}\n\nexport interface IDeleteFileInput {\n bucket: string;\n key: string;\n}\n\ninterface IDeleteFileObjectExistsParams {\n client: Pick<S3Client, \"send\">;\n bucket: string;\n key: string;\n}\n\nexport class DeleteFile {\n private readonly region: string;\n private readonly createS3Client: IDeleteFileParamsGetS3ClientCb;\n private readonly maxRetries: number;\n private readonly baseDelayMs: number;\n\n public constructor(params: IDeleteFileParams) {\n const { createS3Client, region, maxRetries = 5, baseDelayMs = 100 } = params;\n this.region = region;\n this.createS3Client = createS3Client;\n this.maxRetries = maxRetries;\n this.baseDelayMs = baseDelayMs;\n }\n\n public async delete(params: IDeleteFileInput): Promise<void> {\n const { bucket, key } = params;\n const client = this.createS3Client({\n region: this.region\n });\n\n if (!(await this.objectExists({ client, bucket, key }))) {\n return;\n }\n\n await this.withRetry(async () => {\n const cmd = new DeleteObjectCommand({\n Bucket: bucket,\n Key: key\n });\n return await client.send(cmd);\n });\n }\n\n private async objectExists(params: IDeleteFileObjectExistsParams): Promise<boolean> {\n const { client, bucket, key } = params;\n try {\n const result = await this.withRetry(async () => {\n const cmd = new HeadObjectCommand({\n Bucket: bucket,\n Key: key\n });\n return await client.send(cmd);\n });\n return result.$metadata?.httpStatusCode === 200;\n } catch (ex) {\n if (ex?.$metadata?.httpStatusCode === 404) {\n return false;\n }\n throw ex;\n }\n }\n\n private async withRetry<T>(operation: () => Promise<T>, attempt = 0): Promise<T> {\n try {\n return await operation();\n } catch (error: any) {\n const retryable =\n error?.name === \"Throttling\" ||\n error?.name === \"TooManyRequestsException\" ||\n error?.name === \"SlowDown\";\n\n if (retryable && attempt < this.maxRetries) {\n const delay = this.baseDelayMs * Math.pow(2, attempt);\n await new Promise(resolve => setTimeout(resolve, delay));\n return this.withRetry(operation, attempt + 1);\n }\n\n throw error;\n }\n }\n}\n"],"names":["DeleteFile","params","createS3Client","region","maxRetries","baseDelayMs","bucket","key","client","cmd","DeleteObjectCommand","result","HeadObjectCommand","ex","operation","attempt","error","retryable","delay","Math","Promise","resolve","setTimeout"],"mappings":";AAyBO,MAAMA;IAMT,YAAmBC,MAAyB,CAAE;QAC1C,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAEC,aAAa,CAAC,EAAEC,cAAc,GAAG,EAAE,GAAGJ;QACtE,IAAI,CAAC,MAAM,GAAGE;QACd,IAAI,CAAC,cAAc,GAAGD;QACtB,IAAI,CAAC,UAAU,GAAGE;QAClB,IAAI,CAAC,WAAW,GAAGC;IACvB;IAEA,MAAa,OAAOJ,MAAwB,EAAiB;QACzD,MAAM,EAAEK,MAAM,EAAEC,GAAG,EAAE,GAAGN;QACxB,MAAMO,SAAS,IAAI,CAAC,cAAc,CAAC;YAC/B,QAAQ,IAAI,CAAC,MAAM;QACvB;QAEA,IAAI,CAAE,MAAM,IAAI,CAAC,YAAY,CAAC;YAAEA;YAAQF;YAAQC;QAAI,IAChD;QAGJ,MAAM,IAAI,CAAC,SAAS,CAAC;YACjB,MAAME,MAAM,IAAIC,oBAAoB;gBAChC,QAAQJ;gBACR,KAAKC;YACT;YACA,OAAO,MAAMC,OAAO,IAAI,CAACC;QAC7B;IACJ;IAEA,MAAc,aAAaR,MAAqC,EAAoB;QAChF,MAAM,EAAEO,MAAM,EAAEF,MAAM,EAAEC,GAAG,EAAE,GAAGN;QAChC,IAAI;YACA,MAAMU,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC;gBAChC,MAAMF,MAAM,IAAIG,kBAAkB;oBAC9B,QAAQN;oBACR,KAAKC;gBACT;gBACA,OAAO,MAAMC,OAAO,IAAI,CAACC;YAC7B;YACA,OAAOE,OAAO,SAAS,EAAE,mBAAmB;QAChD,EAAE,OAAOE,IAAI;YACT,IAAIA,IAAI,WAAW,mBAAmB,KAClC,OAAO;YAEX,MAAMA;QACV;IACJ;IAEA,MAAc,UAAaC,SAA2B,EAAEC,UAAU,CAAC,EAAc;QAC7E,IAAI;YACA,OAAO,MAAMD;QACjB,EAAE,OAAOE,OAAY;YACjB,MAAMC,YACFD,OAAO,SAAS,gBAChBA,OAAO,SAAS,8BAChBA,OAAO,SAAS;YAEpB,IAAIC,aAAaF,UAAU,IAAI,CAAC,UAAU,EAAE;gBACxC,MAAMG,QAAQ,IAAI,CAAC,WAAW,GAAGC,KAAK,GAAG,CAAC,GAAGJ;gBAC7C,MAAM,IAAIK,QAAQC,CAAAA,UAAWC,WAAWD,SAASH;gBACjD,OAAO,IAAI,CAAC,SAAS,CAACJ,WAAWC,UAAU;YAC/C;YAEA,MAAMC;QACV;IACJ;AACJ"}
|
|
@@ -2,34 +2,26 @@ import { createWorkerActionPlugin } from "../../plugins/WorkerActionPlugin.js";
|
|
|
2
2
|
import { DeleteFile } from "./DeleteFile.js";
|
|
3
3
|
import { createDeleteFileSchema } from "./deleteFileSchema.js";
|
|
4
4
|
import { logValidationError } from "../logValidationError.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
27
|
-
return deleteFile.delete({
|
|
28
|
-
key: data.key,
|
|
29
|
-
bucket: data.target.bucket
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
};
|
|
5
|
+
const createDeleteFileAction = ({ createS3Client })=>createWorkerActionPlugin({
|
|
6
|
+
name: "sync.worker.action.deleteFile",
|
|
7
|
+
parse (input) {
|
|
8
|
+
const schema = createDeleteFileSchema();
|
|
9
|
+
const result = schema.safeParse(input);
|
|
10
|
+
if (!result.success || result.error) return void logValidationError(result.error);
|
|
11
|
+
return result.data;
|
|
12
|
+
},
|
|
13
|
+
async handle (params) {
|
|
14
|
+
const { data } = params;
|
|
15
|
+
const deleteFile = new DeleteFile({
|
|
16
|
+
createS3Client,
|
|
17
|
+
region: data.target.region
|
|
18
|
+
});
|
|
19
|
+
return deleteFile.delete({
|
|
20
|
+
key: data.key,
|
|
21
|
+
bucket: data.target.bucket
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
export { createDeleteFileAction };
|
|
34
26
|
|
|
35
27
|
//# sourceMappingURL=deleteFileAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"worker/actions/deleteFile/deleteFileAction.js","sources":["../../../../src/worker/actions/deleteFile/deleteFileAction.ts"],"sourcesContent":["import { createWorkerActionPlugin } from \"~/worker/plugins/WorkerActionPlugin.js\";\nimport { DeleteFile } from \"./DeleteFile.js\";\nimport type { S3Client, S3ClientConfig } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { createDeleteFileSchema } from \"./deleteFileSchema.js\";\nimport type { IDeleteFileActionEvent } from \"./types.js\";\nimport { logValidationError } from \"~/worker/actions/logValidationError.js\";\n\nexport interface ICreateDeleteFileActionParams {\n createS3Client: (config: Partial<S3ClientConfig>) => Pick<S3Client, \"send\">;\n}\n\nexport const createDeleteFileAction = ({ createS3Client }: ICreateDeleteFileActionParams) => {\n return createWorkerActionPlugin<IDeleteFileActionEvent>({\n name: \"sync.worker.action.deleteFile\",\n parse(input) {\n const schema = createDeleteFileSchema();\n const result = schema.safeParse(input);\n\n if (!result.success || result.error) {\n logValidationError(result.error);\n return undefined;\n }\n return result.data;\n },\n async handle(params) {\n const { data } = params;\n const deleteFile = new DeleteFile({\n createS3Client,\n region: data.target.region\n });\n return deleteFile.delete({\n key: data.key,\n bucket: data.target.bucket\n });\n }\n });\n};\n"],"names":["createDeleteFileAction","createS3Client","createWorkerActionPlugin","input","schema","createDeleteFileSchema","result","logValidationError","params","data","deleteFile","DeleteFile"],"mappings":";;;;AAWO,MAAMA,yBAAyB,CAAC,EAAEC,cAAc,EAAiC,GAC7EC,yBAAiD;QACpD,MAAM;QACN,OAAMC,KAAK;YACP,MAAMC,SAASC;YACf,MAAMC,SAASF,OAAO,SAAS,CAACD;YAEhC,IAAI,CAACG,OAAO,OAAO,IAAIA,OAAO,KAAK,EAAE,YACjCC,mBAAmBD,OAAO,KAAK;YAGnC,OAAOA,OAAO,IAAI;QACtB;QACA,MAAM,QAAOE,MAAM;YACf,MAAM,EAAEC,IAAI,EAAE,GAAGD;YACjB,MAAME,aAAa,IAAIC,WAAW;gBAC9BV;gBACA,QAAQQ,KAAK,MAAM,CAAC,MAAM;YAC9B;YACA,OAAOC,WAAW,MAAM,CAAC;gBACrB,KAAKD,KAAK,GAAG;gBACb,QAAQA,KAAK,MAAM,CAAC,MAAM;YAC9B;QACJ;IACJ"}
|