@webiny/api-file-manager-s3 6.4.5 → 6.6.0-alpha.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.
Files changed (40) hide show
  1. package/FileManagerS3Feature.d.ts +9 -0
  2. package/FileManagerS3Feature.js +34 -0
  3. package/FileManagerS3Feature.js.map +1 -0
  4. package/assetDelivery/assetDeliveryConfig.d.ts +1 -1
  5. package/assetDelivery/assetDeliveryConfig.js +0 -2
  6. package/assetDelivery/assetDeliveryConfig.js.map +1 -1
  7. package/assetDelivery/s3/SharpTransform.js +13 -6
  8. package/assetDelivery/s3/SharpTransform.js.map +1 -1
  9. package/assetDelivery/threatDetection/createThreatDetectionEventHandler.d.ts +21 -1
  10. package/assetDelivery/threatDetection/createThreatDetectionEventHandler.js +43 -27
  11. package/assetDelivery/threatDetection/createThreatDetectionEventHandler.js.map +1 -1
  12. package/assetDelivery/threatDetection/processThreatScanResult.js +9 -7
  13. package/assetDelivery/threatDetection/processThreatScanResult.js.map +1 -1
  14. package/features/DeleteFileFromBucket/DeleteS3FolderTask.d.ts +1 -1
  15. package/features/ExtractMetadata/ExtractMetadataTask.d.ts +1 -1
  16. package/features/FlushCache/FlushCacheOnFileDeleteHandler.js +1 -1
  17. package/features/FlushCache/FlushCacheOnFileDeleteHandler.js.map +1 -1
  18. package/features/FlushCache/FlushCacheOnFileUpdateHandler.js +1 -1
  19. package/features/FlushCache/FlushCacheOnFileUpdateHandler.js.map +1 -1
  20. package/features/FlushCache/InvalidateCacheTask.d.ts +2 -2
  21. package/features/FlushCache/InvalidateCacheTask.js +2 -2
  22. package/features/FlushCache/InvalidateCacheTask.js.map +1 -1
  23. package/features/WriteFileMetadata/MetadataWriter.js +3 -1
  24. package/features/WriteFileMetadata/MetadataWriter.js.map +1 -1
  25. package/graphql/S3GraphQLSchema.d.ts +9 -0
  26. package/graphql/S3GraphQLSchema.js +229 -0
  27. package/graphql/S3GraphQLSchema.js.map +1 -0
  28. package/index.d.ts +2 -2
  29. package/index.js +1 -29
  30. package/package.json +20 -18
  31. package/utils/FileUploadModifier.d.ts +8 -2
  32. package/utils/FileUploadModifier.js +5 -3
  33. package/utils/FileUploadModifier.js.map +1 -1
  34. package/utils/createFileNormalizerFromContext.js +2 -2
  35. package/utils/createFileNormalizerFromContext.js.map +1 -1
  36. package/utils/uploadFileToS3.d.ts +1 -1
  37. package/graphql/schema.d.ts +0 -1
  38. package/graphql/schema.js +0 -201
  39. package/graphql/schema.js.map +0 -1
  40. package/index.js.map +0 -1
package/graphql/schema.js DELETED
@@ -1,201 +0,0 @@
1
- import p_map from "p-map";
2
- import { createGraphQLSchemaPlugin } from "@webiny/handler-graphql";
3
- import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
- import { S3 } from "@webiny/aws-sdk/client-s3/index.js";
5
- import { ErrorResponse, Response } from "@webiny/handler-graphql/responses.js";
6
- import { getPresignedPostPayload } from "../utils/getPresignedPostPayload.js";
7
- import { checkPermissions } from "./checkPermissions.js";
8
- import { CreateMultiPartUploadUseCase } from "../multiPartUpload/CreateMultiPartUploadUseCase.js";
9
- import { CompleteMultiPartUploadUseCase } from "../multiPartUpload/CompleteMultiPartUploadUseCase.js";
10
- import { createFileNormalizerFromContext } from "../utils/createFileNormalizerFromContext.js";
11
- import { GetSettingsUseCase } from "@webiny/api-file-manager/features/settings/GetSettings/abstractions.js";
12
- import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
13
- const createS3GraphQLSchema = ()=>createGraphQLSchemaPlugin({
14
- typeDefs: `
15
- type UploadFileResponseDataFile {
16
- id: ID!
17
- name: String!
18
- type: String!
19
- size: Long!
20
- key: String!
21
- }
22
-
23
- input PreSignedPostPayloadInput {
24
- id: ID
25
- name: String!
26
- type: String!
27
- size: Long!
28
- key: String
29
- keyPrefix: String
30
- }
31
-
32
- type GetPreSignedPostPayloadResponseDataFile {
33
- id: ID!
34
- name: String!
35
- type: String!
36
- size: Long!
37
- key: String!
38
- }
39
-
40
- type GetPreSignedPostPayloadResponseData {
41
- # Contains data that is necessary for initiating a file upload.
42
- data: JSON!
43
- file: UploadFileResponseDataFile!
44
- }
45
-
46
- type GetPreSignedPostPayloadResponse {
47
- error: FmError
48
- data: GetPreSignedPostPayloadResponseData
49
- }
50
-
51
- type MultiPartUploadFilePart {
52
- partNumber: Int!
53
- url: String!
54
- }
55
-
56
- type CreateMultiPartUploadResponseData {
57
- file: GetPreSignedPostPayloadResponseDataFile!
58
- uploadId: String!
59
- parts: [MultiPartUploadFilePart!]!
60
- }
61
-
62
- type CompleteMultiPartUploadResponse {
63
- data: Boolean
64
- error: FmError
65
- }
66
-
67
- type GetPreSignedPostPayloadsResponse {
68
- error: FmError
69
- data: [GetPreSignedPostPayloadResponseData!]!
70
- }
71
-
72
- extend type FmQuery {
73
- getPreSignedPostPayload(
74
- data: PreSignedPostPayloadInput!
75
- ): GetPreSignedPostPayloadResponse
76
- getPreSignedPostPayloads(
77
- data: [PreSignedPostPayloadInput]!
78
- ): GetPreSignedPostPayloadsResponse
79
- }
80
-
81
- type CreateMultiPartUploadResponse {
82
- data: CreateMultiPartUploadResponseData
83
- error: FmError
84
- }
85
-
86
- input MultiPartUploadFilePartInput {
87
- partNumber: Int!
88
- etag: String!
89
- }
90
-
91
- extend type FmMutation {
92
- createMultiPartUpload(
93
- data: PreSignedPostPayloadInput!
94
- numberOfParts: Number!
95
- ): CreateMultiPartUploadResponse
96
-
97
- completeMultiPartUpload(
98
- fileKey: String!
99
- uploadId: String!
100
- ): CompleteMultiPartUploadResponse
101
- }
102
- `,
103
- resolvers: {
104
- FmQuery: {
105
- getPreSignedPostPayload: async (_, args, context)=>{
106
- const identityContext = context.container.resolve(IdentityContext);
107
- const getSettings = context.container.resolve(GetSettingsUseCase);
108
- try {
109
- await checkPermissions(identityContext, {
110
- rwd: "w"
111
- });
112
- const data = args.data;
113
- const settingsResult = await getSettings.execute();
114
- const settings = settingsResult.value;
115
- const normalizer = createFileNormalizerFromContext(context);
116
- const presignedPayload = await getPresignedPostPayload(await normalizer.normalizeFile(data), settings, context.container.resolve(TenantContext));
117
- return new Response(presignedPayload);
118
- } catch (e) {
119
- return new ErrorResponse({
120
- message: e.message,
121
- code: e.code,
122
- data: e.data
123
- });
124
- }
125
- },
126
- getPreSignedPostPayloads: async (_, args, context)=>{
127
- const identityContext = context.container.resolve(IdentityContext);
128
- const getSettings = context.container.resolve(GetSettingsUseCase);
129
- await checkPermissions(identityContext, {
130
- rwd: "w"
131
- });
132
- const files = args.data;
133
- try {
134
- const settingsResult = await getSettings.execute();
135
- const settings = settingsResult.value;
136
- const normalizer = createFileNormalizerFromContext(context);
137
- const presignedPayloads = await p_map(files, async (data)=>getPresignedPostPayload(await normalizer.normalizeFile(data), settings, context.container.resolve(TenantContext)));
138
- return new Response(presignedPayloads);
139
- } catch (e) {
140
- return new ErrorResponse({
141
- message: e.message,
142
- code: e.code,
143
- data: e.data
144
- });
145
- }
146
- }
147
- },
148
- FmMutation: {
149
- createMultiPartUpload: async (_, args, context)=>{
150
- const identityContext = context.container.resolve(IdentityContext);
151
- await checkPermissions(identityContext, {
152
- rwd: "w"
153
- });
154
- const s3Client = new S3({
155
- region: process.env.AWS_REGION
156
- });
157
- try {
158
- const useCase = new CreateMultiPartUploadUseCase(String(process.env.S3_BUCKET), s3Client);
159
- const normalizer = createFileNormalizerFromContext(context);
160
- const multiPartUpload = await useCase.execute({
161
- file: await normalizer.normalizeFile(args.data),
162
- numberOfParts: args.numberOfParts
163
- });
164
- return new Response(multiPartUpload);
165
- } catch (e) {
166
- return new ErrorResponse({
167
- message: e.message,
168
- code: e.code,
169
- data: e.data
170
- });
171
- }
172
- },
173
- completeMultiPartUpload: async (_, args, context)=>{
174
- const identityContext = context.container.resolve(IdentityContext);
175
- await checkPermissions(identityContext, {
176
- rwd: "w"
177
- });
178
- const s3Client = new S3({
179
- region: process.env.AWS_REGION
180
- });
181
- try {
182
- const useCase = new CompleteMultiPartUploadUseCase(String(process.env.S3_BUCKET), s3Client);
183
- await useCase.execute({
184
- fileKey: args.fileKey,
185
- uploadId: args.uploadId
186
- });
187
- return new Response(true);
188
- } catch (e) {
189
- return new ErrorResponse({
190
- message: e.message,
191
- code: e.code,
192
- data: e.data
193
- });
194
- }
195
- }
196
- }
197
- }
198
- });
199
- export { createS3GraphQLSchema };
200
-
201
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphql/schema.js","sources":["../../src/graphql/schema.ts"],"sourcesContent":["import pMap from \"p-map\";\nimport { createGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { S3 } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses.js\";\nimport { getPresignedPostPayload } from \"~/utils/getPresignedPostPayload.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { PresignedPostPayloadData } from \"~/types.js\";\nimport { CreateMultiPartUploadUseCase } from \"~/multiPartUpload/CreateMultiPartUploadUseCase.js\";\nimport { CompleteMultiPartUploadUseCase } from \"~/multiPartUpload/CompleteMultiPartUploadUseCase.js\";\nimport { createFileNormalizerFromContext } from \"~/utils/createFileNormalizerFromContext.js\";\nimport { GetSettingsUseCase } from \"@webiny/api-file-manager/features/settings/GetSettings/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\n\nexport const createS3GraphQLSchema = () => {\n return createGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type UploadFileResponseDataFile {\n id: ID!\n name: String!\n type: String!\n size: Long!\n key: String!\n }\n\n input PreSignedPostPayloadInput {\n id: ID\n name: String!\n type: String!\n size: Long!\n key: String\n keyPrefix: String\n }\n\n type GetPreSignedPostPayloadResponseDataFile {\n id: ID!\n name: String!\n type: String!\n size: Long!\n key: String!\n }\n\n type GetPreSignedPostPayloadResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON!\n file: UploadFileResponseDataFile!\n }\n\n type GetPreSignedPostPayloadResponse {\n error: FmError\n data: GetPreSignedPostPayloadResponseData\n }\n\n type MultiPartUploadFilePart {\n partNumber: Int!\n url: String!\n }\n\n type CreateMultiPartUploadResponseData {\n file: GetPreSignedPostPayloadResponseDataFile!\n uploadId: String!\n parts: [MultiPartUploadFilePart!]!\n }\n\n type CompleteMultiPartUploadResponse {\n data: Boolean\n error: FmError\n }\n\n type GetPreSignedPostPayloadsResponse {\n error: FmError\n data: [GetPreSignedPostPayloadResponseData!]!\n }\n\n extend type FmQuery {\n getPreSignedPostPayload(\n data: PreSignedPostPayloadInput!\n ): GetPreSignedPostPayloadResponse\n getPreSignedPostPayloads(\n data: [PreSignedPostPayloadInput]!\n ): GetPreSignedPostPayloadsResponse\n }\n\n type CreateMultiPartUploadResponse {\n data: CreateMultiPartUploadResponseData\n error: FmError\n }\n\n input MultiPartUploadFilePartInput {\n partNumber: Int!\n etag: String!\n }\n\n extend type FmMutation {\n createMultiPartUpload(\n data: PreSignedPostPayloadInput!\n numberOfParts: Number!\n ): CreateMultiPartUploadResponse\n\n completeMultiPartUpload(\n fileKey: String!\n uploadId: String!\n ): CompleteMultiPartUploadResponse\n }\n `,\n resolvers: {\n FmQuery: {\n getPreSignedPostPayload: async (_, args: any, context) => {\n const identityContext = context.container.resolve(IdentityContext);\n const getSettings = context.container.resolve(GetSettingsUseCase);\n\n try {\n await checkPermissions(identityContext, { rwd: \"w\" });\n\n const data = args.data as PresignedPostPayloadData;\n\n const settingsResult = await getSettings.execute();\n const settings = settingsResult.value;\n\n const normalizer = createFileNormalizerFromContext(context);\n const presignedPayload = await getPresignedPostPayload(\n await normalizer.normalizeFile(data),\n settings,\n context.container.resolve(TenantContext)\n );\n\n return new Response(presignedPayload);\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n },\n getPreSignedPostPayloads: async (_, args, context) => {\n const identityContext = context.container.resolve(IdentityContext);\n const getSettings = context.container.resolve(GetSettingsUseCase);\n await checkPermissions(identityContext, { rwd: \"w\" });\n\n const files = args.data as PresignedPostPayloadData[];\n\n try {\n const settingsResult = await getSettings.execute();\n const settings = settingsResult.value;\n\n const normalizer = createFileNormalizerFromContext(context);\n\n const presignedPayloads = await pMap(files, async data => {\n return getPresignedPostPayload(\n await normalizer.normalizeFile(data),\n settings,\n context.container.resolve(TenantContext)\n );\n });\n\n return new Response(presignedPayloads);\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n }\n },\n FmMutation: {\n createMultiPartUpload: async (_, args, context) => {\n const identityContext = context.container.resolve(IdentityContext);\n await checkPermissions(identityContext, { rwd: \"w\" });\n\n const s3Client = new S3({\n region: process.env.AWS_REGION\n });\n\n try {\n const useCase = new CreateMultiPartUploadUseCase(\n String(process.env.S3_BUCKET),\n s3Client\n );\n\n const normalizer = createFileNormalizerFromContext(context);\n\n const multiPartUpload = await useCase.execute({\n file: await normalizer.normalizeFile(args.data),\n numberOfParts: args.numberOfParts\n });\n\n return new Response(multiPartUpload);\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n },\n completeMultiPartUpload: async (_, args, context) => {\n const identityContext = context.container.resolve(IdentityContext);\n await checkPermissions(identityContext, { rwd: \"w\" });\n\n const s3Client = new S3({\n region: process.env.AWS_REGION\n });\n\n try {\n const useCase = new CompleteMultiPartUploadUseCase(\n String(process.env.S3_BUCKET),\n s3Client\n );\n\n await useCase.execute({\n fileKey: args.fileKey,\n uploadId: args.uploadId\n });\n\n return new Response(true);\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n }\n }\n }\n });\n};\n"],"names":["createS3GraphQLSchema","createGraphQLSchemaPlugin","_","args","context","identityContext","IdentityContext","getSettings","GetSettingsUseCase","checkPermissions","data","settingsResult","settings","normalizer","createFileNormalizerFromContext","presignedPayload","getPresignedPostPayload","TenantContext","Response","e","ErrorResponse","files","presignedPayloads","pMap","s3Client","S3","process","useCase","CreateMultiPartUploadUseCase","String","multiPartUpload","CompleteMultiPartUploadUseCase"],"mappings":"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"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\nimport { createS3GraphQLSchema } from \"./graphql/schema.js\";\nimport { DeleteFileFromBucketFeature } from \"~/features/DeleteFileFromBucket/feature.js\";\nimport { WriteFileMetadataFeature } from \"~/features/WriteFileMetadata/feature.js\";\nimport { ApplyThreatScanningFeature } from \"~/enterprise/ApplyThreatScanning/feature.js\";\nimport { FlushCacheFeature } from \"~/features/FlushCache/feature.js\";\nimport { ExtractMetadataFeature } from \"~/features/ExtractMetadata/feature.js\";\nimport { GetFileContentsByIdFeature } from \"~/features/GetFileContentsById/feature.js\";\nimport { GetFileContentsByKeyFeature } from \"~/features/GetFileContentsByKey/feature.js\";\nexport { createFileUploadModifier } from \"./utils/FileUploadModifier.js\";\nexport { createAssetDelivery } from \"./assetDelivery/createAssetDelivery.js\";\n\nconst contextPlugin = new ContextPlugin(context => {\n const container = context.container;\n\n FlushCacheFeature.register(container);\n DeleteFileFromBucketFeature.register(container);\n ExtractMetadataFeature.register(container);\n WriteFileMetadataFeature.register(container);\n GetFileContentsByIdFeature.register(container);\n GetFileContentsByKeyFeature.register(container);\n\n const wcp = container.resolve(WcpContext);\n if (wcp.canUseFileManagerThreatDetection()) {\n ApplyThreatScanningFeature.register(container);\n }\n});\n\ncontextPlugin.name = `fileManagerS3.context`;\n\nexport const createFileManagerS3 = () => [contextPlugin, createS3GraphQLSchema()];\n"],"names":["contextPlugin","ContextPlugin","context","container","FlushCacheFeature","DeleteFileFromBucketFeature","ExtractMetadataFeature","WriteFileMetadataFeature","GetFileContentsByIdFeature","GetFileContentsByKeyFeature","wcp","WcpContext","ApplyThreatScanningFeature","createFileManagerS3","createS3GraphQLSchema"],"mappings":";;;;;;;;;;AAaA,MAAMA,gBAAgB,IAAIC,cAAcC,CAAAA;IACpC,MAAMC,YAAYD,QAAQ,SAAS;IAEnCE,kBAAkB,QAAQ,CAACD;IAC3BE,4BAA4B,QAAQ,CAACF;IACrCG,uBAAuB,QAAQ,CAACH;IAChCI,yBAAyB,QAAQ,CAACJ;IAClCK,2BAA2B,QAAQ,CAACL;IACpCM,4BAA4B,QAAQ,CAACN;IAErC,MAAMO,MAAMP,UAAU,OAAO,CAACQ;IAC9B,IAAID,IAAI,gCAAgC,IACpCE,2BAA2B,QAAQ,CAACT;AAE5C;AAEAH,cAAc,IAAI,GAAG;AAEd,MAAMa,sBAAsB,IAAM;QAACb;QAAec;KAAwB"}