@webiny/api-file-manager 6.4.11 → 6.6.0-alpha.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/FileManagerAppFeature.d.ts +5 -0
- package/FileManagerAppFeature.js +21 -0
- package/FileManagerAppFeature.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
- package/delivery/AssetDeliveryRoute.d.ts +23 -0
- package/delivery/AssetDeliveryRoute.js +58 -0
- package/delivery/AssetDeliveryRoute.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +1 -1
- package/delivery/setupAssetDelivery.js +1 -66
- package/delivery/setupAssetDelivery.js.map +1 -1
- package/domain/file/abstractions.d.ts +13 -5
- package/domain/file/abstractions.js +2 -2
- package/domain/file/abstractions.js.map +1 -1
- package/domain/file/file.model.d.ts +3 -3
- package/domain/file/file.model.js +10 -6
- package/domain/file/file.model.js.map +1 -1
- package/domain/settings/validation.js +1 -1
- package/domain/settings/validation.js.map +1 -1
- package/exports/api/file-manager/assetDelivery.d.ts +10 -0
- package/exports/api/file-manager/assetDelivery.js +8 -0
- package/exports/api/file-manager/file.d.ts +1 -0
- package/exports/api/file-manager/file.js +1 -0
- package/features/FileManagerFeature.js +6 -0
- package/features/FileManagerFeature.js.map +1 -1
- package/features/assetDelivery/Asset/Asset.d.ts +8 -0
- package/features/assetDelivery/Asset/Asset.js +14 -0
- package/features/assetDelivery/Asset/Asset.js.map +1 -0
- package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
- package/features/assetDelivery/Asset/abstractions.js +5 -0
- package/features/assetDelivery/Asset/abstractions.js.map +1 -0
- package/features/assetDelivery/Asset/index.d.ts +1 -0
- package/features/assetDelivery/Asset/index.js +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.js +2 -2
- package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
- package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
- package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
- package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
- package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
- package/features/assetDelivery/ObjectKey/index.js +1 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
- package/features/assetDelivery/StreamAssetReply/index.js +1 -0
- package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
- package/features/assetDelivery/abstractions/AssetType.js +5 -0
- package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
- package/features/assetDelivery/abstractions.d.ts +23 -12
- package/features/assetDelivery/abstractions.js.map +1 -1
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
- package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
- package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/index.js +4 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/utils.js +47 -0
- package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
- package/features/assetDelivery/feature.js +13 -7
- package/features/assetDelivery/feature.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +2 -2
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
- package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +4 -6
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
- package/features/assetDelivery/transformation/index.d.ts +5 -0
- package/features/assetDelivery/transformation/index.js +4 -0
- package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
- package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
- package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
- package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
- package/features/extractMetadata/ExtractMetadataInput.js +0 -0
- package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
- package/features/file/CreateFile/CreateFileRepository.js +6 -5
- package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
- package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
- package/features/file/DeleteFile/DeleteFileRepository.js +6 -5
- package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
- package/features/file/FileModelProvider.d.ts +31 -0
- package/features/file/FileModelProvider.js +22 -0
- package/features/file/FileModelProvider.js.map +1 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +14 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +25 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +3 -3
- package/features/file/FileUrlGenerator/abstractions.js +1 -1
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
- package/features/file/FileUrlGenerator/feature.d.ts +4 -0
- package/features/file/FileUrlGenerator/feature.js +11 -0
- package/features/file/FileUrlGenerator/feature.js.map +1 -0
- package/features/file/FileUrlGenerator/index.d.ts +1 -0
- package/features/file/FileUrlGenerator/index.js +1 -0
- package/features/file/GetFile/GetFileRepository.d.ts +3 -3
- package/features/file/GetFile/GetFileRepository.js +6 -5
- package/features/file/GetFile/GetFileRepository.js.map +1 -1
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
- package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
- package/features/file/GetFileByUrl/abstractions.js +5 -0
- package/features/file/GetFileByUrl/abstractions.js.map +1 -0
- package/features/file/GetFileByUrl/feature.d.ts +4 -0
- package/features/file/GetFileByUrl/feature.js +11 -0
- package/features/file/GetFileByUrl/feature.js.map +1 -0
- package/features/file/GetFileByUrl/index.d.ts +1 -0
- package/features/file/GetFileByUrl/index.js +1 -0
- package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
- package/features/file/ListFiles/ListFilesRepository.js +8 -7
- package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +5 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +5 -0
- package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
- package/features/file/ListTags/ListTagsRepository.d.ts +3 -3
- package/features/file/ListTags/ListTagsRepository.js +7 -6
- package/features/file/ListTags/ListTagsRepository.js.map +1 -1
- package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
- package/features/file/UpdateFile/UpdateFileRepository.js +6 -5
- package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +3 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.js +7 -4
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +0 -1
- package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
- package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CompleteMultiPartUpload/index.js +1 -0
- package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CreateMultiPartUpload/index.js +1 -0
- package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
- package/features/upload/GetUploadPayload/abstractions.js +5 -0
- package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
- package/features/upload/GetUploadPayload/index.d.ts +1 -0
- package/features/upload/GetUploadPayload/index.js +1 -0
- package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
- package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
- package/features/upload/ReadFileMetadata/abstractions.js +5 -0
- package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
- package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
- package/features/upload/ReadFileMetadata/feature.js +11 -0
- package/features/upload/ReadFileMetadata/feature.js.map +1 -0
- package/features/upload/ReadFileMetadata/index.d.ts +1 -0
- package/features/upload/ReadFileMetadata/index.js +1 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
- package/features/upload/WriteFileMetadata/abstractions.js +5 -0
- package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
- package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
- package/features/upload/WriteFileMetadata/feature.js +17 -0
- package/features/upload/WriteFileMetadata/feature.js.map +1 -0
- package/features/upload/index.d.ts +17 -0
- package/features/upload/index.js +10 -0
- package/features/upload/types.d.ts +28 -0
- package/features/upload/types.js +0 -0
- package/features/upload/utils/FileExtension.d.ts +6 -0
- package/features/upload/utils/FileExtension.js +16 -0
- package/features/upload/utils/FileExtension.js.map +1 -0
- package/features/upload/utils/FileKey.d.ts +11 -0
- package/features/upload/utils/FileKey.js +33 -0
- package/features/upload/utils/FileKey.js.map +1 -0
- package/features/upload/utils/FileNormalizer.d.ts +13 -0
- package/features/upload/utils/FileNormalizer.js +41 -0
- package/features/upload/utils/FileNormalizer.js.map +1 -0
- package/features/upload/utils/FileUploadModifier.d.ts +30 -0
- package/features/upload/utils/FileUploadModifier.js +39 -0
- package/features/upload/utils/FileUploadModifier.js.map +1 -0
- package/features/upload/utils/checkPermissions.d.ts +5 -0
- package/features/upload/utils/checkPermissions.js +22 -0
- package/features/upload/utils/checkPermissions.js.map +1 -0
- package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
- package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
- package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
- package/features/upload/utils/mimeTypes.d.ts +1 -0
- package/features/upload/utils/mimeTypes.js +9 -0
- package/features/upload/utils/mimeTypes.js.map +1 -0
- package/graphql/FmGraphQLSchema.d.ts +25 -0
- package/graphql/FmGraphQLSchema.js +452 -0
- package/graphql/FmGraphQLSchema.js.map +1 -0
- package/index.d.ts +3 -6
- package/index.js +3 -33
- package/index.js.map +1 -1
- package/package.json +23 -17
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
- package/graphql/baseSchema.d.ts +0 -3
- package/graphql/baseSchema.js +0 -100
- package/graphql/baseSchema.js.map +0 -1
- package/graphql/createFilesTypeDefs.d.ts +0 -8
- package/graphql/createFilesTypeDefs.js +0 -191
- package/graphql/createFilesTypeDefs.js.map +0 -1
- package/graphql/filesSchema.d.ts +0 -4
- package/graphql/filesSchema.js +0 -97
- package/graphql/filesSchema.js.map +0 -1
- package/graphql/getFileByUrl.d.ts +0 -3
- package/graphql/getFileByUrl.js +0 -64
- package/graphql/getFileByUrl.js.map +0 -1
- package/graphql/index.d.ts +0 -4
- package/graphql/index.js +0 -48
- package/graphql/index.js.map +0 -1
- package/graphql/utils.d.ts +0 -11
- package/graphql/utils.js +0 -12
- package/graphql/utils.js.map +0 -1
- package/modelModifier/CmsModelModifier.d.ts +0 -26
- package/modelModifier/CmsModelModifier.js +0 -51
- package/modelModifier/CmsModelModifier.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.6.0-alpha.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -22,28 +22,34 @@
|
|
|
22
22
|
],
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@webiny/api": "6.
|
|
26
|
-
"@webiny/api-core": "6.
|
|
27
|
-
"@webiny/api-
|
|
28
|
-
"@webiny/
|
|
29
|
-
"@webiny/
|
|
30
|
-
"@webiny/
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/
|
|
33
|
-
"@webiny/handler-
|
|
34
|
-
"@webiny/
|
|
35
|
-
"@webiny/
|
|
25
|
+
"@webiny/api": "6.6.0-alpha.1",
|
|
26
|
+
"@webiny/api-core": "6.6.0-alpha.1",
|
|
27
|
+
"@webiny/api-graphql": "6.6.0-alpha.1",
|
|
28
|
+
"@webiny/api-headless-cms": "6.6.0-alpha.1",
|
|
29
|
+
"@webiny/background-tasks": "6.6.0-alpha.1",
|
|
30
|
+
"@webiny/build-tools": "6.6.0-alpha.1",
|
|
31
|
+
"@webiny/di": "1.1.0",
|
|
32
|
+
"@webiny/error": "6.6.0-alpha.1",
|
|
33
|
+
"@webiny/event-handler-core": "6.6.0-alpha.1",
|
|
34
|
+
"@webiny/feature": "6.6.0-alpha.1",
|
|
35
|
+
"@webiny/handler": "6.6.0-alpha.1",
|
|
36
|
+
"@webiny/plugins": "6.6.0-alpha.1",
|
|
37
|
+
"@webiny/wcp": "6.6.0-alpha.1",
|
|
36
38
|
"cache-control-parser": "2.2.0",
|
|
39
|
+
"graphql": "16.14.2",
|
|
40
|
+
"mime": "4.1.0",
|
|
41
|
+
"object-hash": "3.0.0",
|
|
42
|
+
"p-reduce": "3.0.0",
|
|
43
|
+
"sanitize-filename": "1.6.4",
|
|
37
44
|
"zod": "4.4.3"
|
|
38
45
|
},
|
|
39
46
|
"devDependencies": {
|
|
40
47
|
"@types/object-hash": "3.0.6",
|
|
41
|
-
"@webiny/
|
|
42
|
-
"@webiny/
|
|
43
|
-
"@webiny/
|
|
44
|
-
"@webiny/wcp": "6.4.11",
|
|
48
|
+
"@webiny/api-core-testing": "6.6.0-alpha.1",
|
|
49
|
+
"@webiny/utils": "6.6.0-alpha.1",
|
|
50
|
+
"@webiny/wcp": "6.6.0-alpha.1",
|
|
45
51
|
"rimraf": "6.1.3",
|
|
46
|
-
"typescript": "
|
|
52
|
+
"typescript": "7.0.2"
|
|
47
53
|
},
|
|
48
54
|
"publishConfig": {
|
|
49
55
|
"access": "public"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
|
|
2
|
-
import type { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
3
|
-
import { type IAssetTransformationStrategy } from "../abstractions.js";
|
|
4
|
-
export declare class PassthroughAssetTransformationStrategy implements IAssetTransformationStrategy {
|
|
5
|
-
transform(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;
|
|
6
|
-
}
|
|
7
|
-
export declare const PassthroughAssetTransformationStrategyImpl: typeof PassthroughAssetTransformationStrategy & {
|
|
8
|
-
__abstraction: import("@webiny/di").Abstraction<IAssetTransformationStrategy>;
|
|
9
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AssetTransformationStrategy } from "../abstractions.js";
|
|
2
|
-
class PassthroughAssetTransformationStrategy {
|
|
3
|
-
transform(assetRequest, asset) {
|
|
4
|
-
return Promise.resolve(asset);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
const PassthroughAssetTransformationStrategyImpl = AssetTransformationStrategy.createImplementation({
|
|
8
|
-
implementation: PassthroughAssetTransformationStrategy,
|
|
9
|
-
dependencies: []
|
|
10
|
-
});
|
|
11
|
-
export { PassthroughAssetTransformationStrategy, PassthroughAssetTransformationStrategyImpl };
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=PassthroughAssetTransformationStrategy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js","sources":["../../../../src/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.ts"],"sourcesContent":["import type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport { AssetTransformationStrategy, type IAssetTransformationStrategy } from \"../abstractions.js\";\n\nexport class PassthroughAssetTransformationStrategy implements IAssetTransformationStrategy {\n transform(assetRequest: AssetRequest, asset: Asset): Promise<Asset> {\n return Promise.resolve(asset);\n }\n}\n\nexport const PassthroughAssetTransformationStrategyImpl =\n AssetTransformationStrategy.createImplementation({\n implementation: PassthroughAssetTransformationStrategy,\n dependencies: []\n });\n"],"names":["PassthroughAssetTransformationStrategy","assetRequest","asset","Promise","PassthroughAssetTransformationStrategyImpl","AssetTransformationStrategy"],"mappings":";AAIO,MAAMA;IACT,UAAUC,YAA0B,EAAEC,KAAY,EAAkB;QAChE,OAAOC,QAAQ,OAAO,CAACD;IAC3B;AACJ;AAEO,MAAME,6CACTC,4BAA4B,oBAAoB,CAAC;IAC7C,gBAAgBL;IAChB,cAAc,EAAE;AACpB"}
|
package/graphql/baseSchema.d.ts
DELETED
package/graphql/baseSchema.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { ErrorResponse, GraphQLSchemaPlugin, Response } from "@webiny/handler-graphql";
|
|
2
|
-
import { emptyResolver } from "./utils.js";
|
|
3
|
-
import { GetSettingsUseCase } from "../features/settings/GetSettings/abstractions.js";
|
|
4
|
-
import { UpdateSettingsUseCase } from "../features/settings/UpdateSettings/abstractions.js";
|
|
5
|
-
const createBaseSchema = ()=>{
|
|
6
|
-
const fileManagerGraphQL = new GraphQLSchemaPlugin({
|
|
7
|
-
typeDefs: `
|
|
8
|
-
type FmError {
|
|
9
|
-
code: String
|
|
10
|
-
message: String
|
|
11
|
-
data: JSON
|
|
12
|
-
stack: String
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
type FmCreatedBy {
|
|
16
|
-
id: ID
|
|
17
|
-
displayName: String
|
|
18
|
-
type: String
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
type FmListMeta {
|
|
22
|
-
cursor: String
|
|
23
|
-
totalCount: Int
|
|
24
|
-
hasMoreItems: Boolean
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type FmBooleanResponse {
|
|
28
|
-
data: Boolean
|
|
29
|
-
error: FmError
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
type FmSettings {
|
|
33
|
-
uploadMinFileSize: Number
|
|
34
|
-
uploadMaxFileSize: Number
|
|
35
|
-
srcPrefix: String
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
input FmSettingsInput {
|
|
39
|
-
uploadMinFileSize: Number
|
|
40
|
-
uploadMaxFileSize: Number
|
|
41
|
-
srcPrefix: String
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
type FmSettingsResponse {
|
|
45
|
-
data: FmSettings
|
|
46
|
-
error: FmError
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
type FmQuery {
|
|
50
|
-
getSettings: FmSettingsResponse
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
type FmDeleteResponse {
|
|
54
|
-
data: Boolean
|
|
55
|
-
error: FmError
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
type FmMutation {
|
|
59
|
-
updateSettings(data: FmSettingsInput): FmSettingsResponse
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
extend type Query {
|
|
63
|
-
fileManager: FmQuery
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
extend type Mutation {
|
|
67
|
-
fileManager: FmMutation
|
|
68
|
-
}
|
|
69
|
-
`,
|
|
70
|
-
resolvers: {
|
|
71
|
-
Query: {
|
|
72
|
-
fileManager: emptyResolver
|
|
73
|
-
},
|
|
74
|
-
Mutation: {
|
|
75
|
-
fileManager: emptyResolver
|
|
76
|
-
},
|
|
77
|
-
FmQuery: {
|
|
78
|
-
async getSettings (_, __, context) {
|
|
79
|
-
const getSettings = context.container.resolve(GetSettingsUseCase);
|
|
80
|
-
const result = await getSettings.execute();
|
|
81
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
82
|
-
return new Response(result.value);
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
FmMutation: {
|
|
86
|
-
async updateSettings (_, args, context) {
|
|
87
|
-
const updateSettings = context.container.resolve(UpdateSettingsUseCase);
|
|
88
|
-
const result = await updateSettings.execute(args.data);
|
|
89
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
90
|
-
return new Response(result.value);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
fileManagerGraphQL.name = "fm.graphql.base";
|
|
96
|
-
return fileManagerGraphQL;
|
|
97
|
-
};
|
|
98
|
-
export { createBaseSchema };
|
|
99
|
-
|
|
100
|
-
//# sourceMappingURL=baseSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql/baseSchema.js","sources":["../../src/graphql/baseSchema.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin, Response } from \"@webiny/handler-graphql\";\nimport { emptyResolver } from \"./utils.js\";\nimport { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\n\nexport const createBaseSchema = () => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n type FmError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FmCreatedBy {\n id: ID\n displayName: String\n type: String\n }\n\n type FmListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FmBooleanResponse {\n data: Boolean\n error: FmError\n }\n\n type FmSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FmSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FmSettingsResponse {\n data: FmSettings\n error: FmError\n }\n\n type FmQuery {\n getSettings: FmSettingsResponse\n }\n\n type FmDeleteResponse {\n data: Boolean\n error: FmError\n }\n\n type FmMutation {\n updateSettings(data: FmSettingsInput): FmSettingsResponse\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n async getSettings(_, __, context) {\n const getSettings = context.container.resolve(GetSettingsUseCase);\n const result = await getSettings.execute();\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n }\n },\n FmMutation: {\n async updateSettings(_, args: any, context) {\n const updateSettings = context.container.resolve(UpdateSettingsUseCase);\n const result = await updateSettings.execute(args.data);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.base\";\n\n return fileManagerGraphQL;\n};\n"],"names":["createBaseSchema","fileManagerGraphQL","GraphQLSchemaPlugin","emptyResolver","_","__","context","getSettings","GetSettingsUseCase","result","ErrorResponse","Response","args","updateSettings","UpdateSettingsUseCase"],"mappings":";;;;AAMO,MAAMA,mBAAmB;IAC5B,MAAMC,qBAAqB,IAAIC,oBAAoC;QAC/D,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8DzB,CAAC;QACD,WAAW;YACP,OAAO;gBACH,aAAaC;YACjB;YACA,UAAU;gBACN,aAAaA;YACjB;YACA,SAAS;gBACL,MAAM,aAAYC,CAAC,EAAEC,EAAE,EAAEC,OAAO;oBAC5B,MAAMC,cAAcD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBAC9C,MAAMC,SAAS,MAAMF,YAAY,OAAO;oBAExC,IAAIE,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;YACJ;YACA,YAAY;gBACR,MAAM,gBAAeL,CAAC,EAAEQ,IAAS,EAAEN,OAAO;oBACtC,MAAMO,iBAAiBP,QAAQ,SAAS,CAAC,OAAO,CAACQ;oBACjD,MAAML,SAAS,MAAMI,eAAe,OAAO,CAACD,KAAK,IAAI;oBAErD,IAAIH,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;YACJ;QACJ;IACJ;IACAR,mBAAmB,IAAI,GAAG;IAE1B,OAAOA;AACX"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
2
|
-
import type { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
|
|
3
|
-
export interface CreateFilesTypeDefsParams {
|
|
4
|
-
model: CmsModel;
|
|
5
|
-
models: CmsModel[];
|
|
6
|
-
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
|
|
7
|
-
}
|
|
8
|
-
export declare const createFilesTypeDefs: (params: CreateFilesTypeDefsParams) => string;
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
|
|
2
|
-
import { renderInputFields } from "@webiny/api-headless-cms/utils/renderInputFields.js";
|
|
3
|
-
import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
|
|
4
|
-
const removeFieldRequiredValidation = (field)=>{
|
|
5
|
-
if (field.validation) field.validation = field.validation.filter((validation)=>"required" !== validation.name);
|
|
6
|
-
if (field.listValidation) field.listValidation = field.listValidation.filter((v)=>"required" !== v.name);
|
|
7
|
-
return field;
|
|
8
|
-
};
|
|
9
|
-
const createUpdateFields = (fields)=>fields.reduce((collection, field)=>{
|
|
10
|
-
collection.push(removeFieldRequiredValidation({
|
|
11
|
-
...field
|
|
12
|
-
}));
|
|
13
|
-
return collection;
|
|
14
|
-
}, []);
|
|
15
|
-
const createFilesTypeDefs = (params)=>{
|
|
16
|
-
const { model, models, fieldRegistry } = params;
|
|
17
|
-
const { fields } = model;
|
|
18
|
-
const fieldTypes = renderFields({
|
|
19
|
-
models,
|
|
20
|
-
model,
|
|
21
|
-
fields,
|
|
22
|
-
type: "manage",
|
|
23
|
-
fieldRegistry
|
|
24
|
-
});
|
|
25
|
-
const inputCreateFields = renderInputFields({
|
|
26
|
-
models,
|
|
27
|
-
model,
|
|
28
|
-
fields,
|
|
29
|
-
fieldRegistry
|
|
30
|
-
});
|
|
31
|
-
const inputUpdateFields = renderInputFields({
|
|
32
|
-
models,
|
|
33
|
-
model,
|
|
34
|
-
fields: createUpdateFields(fields),
|
|
35
|
-
fieldRegistry
|
|
36
|
-
});
|
|
37
|
-
const listFilterFieldsRender = renderListFilterFields({
|
|
38
|
-
model,
|
|
39
|
-
fields: model.fields,
|
|
40
|
-
type: "manage",
|
|
41
|
-
fieldRegistry,
|
|
42
|
-
excludeFields: [
|
|
43
|
-
"entryId",
|
|
44
|
-
"status"
|
|
45
|
-
]
|
|
46
|
-
});
|
|
47
|
-
return `
|
|
48
|
-
type FmFile_Location {
|
|
49
|
-
folderId: ID!
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
input FmFile_LocationInput {
|
|
53
|
-
folderId: ID!
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
input FmFile_LocationWhereInput {
|
|
57
|
-
folderId: ID
|
|
58
|
-
folderId_in: [ID!]
|
|
59
|
-
folderId_not: ID
|
|
60
|
-
folderId_not_in: [ID!]
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
${fieldTypes.map((f)=>f.typeDefs).join("\n")}
|
|
64
|
-
|
|
65
|
-
type FmFile {
|
|
66
|
-
id: ID!
|
|
67
|
-
createdOn: DateTime!
|
|
68
|
-
modifiedOn: DateTime
|
|
69
|
-
savedOn: DateTime!
|
|
70
|
-
createdBy: FmCreatedBy!
|
|
71
|
-
modifiedBy: FmCreatedBy
|
|
72
|
-
savedBy: FmCreatedBy!
|
|
73
|
-
location: FmFile_Location!
|
|
74
|
-
src: String
|
|
75
|
-
${fieldTypes.map((f)=>f.fields).join("\n")}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
${inputCreateFields.map((f)=>f.typeDefs).join("\n")}
|
|
79
|
-
|
|
80
|
-
input FmCreatedByInput {
|
|
81
|
-
id: ID!
|
|
82
|
-
displayName: String!
|
|
83
|
-
type: String!
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
input FmFileCreateInput {
|
|
87
|
-
id: ID!
|
|
88
|
-
createdOn: DateTime
|
|
89
|
-
modifiedOn: DateTime
|
|
90
|
-
savedOn: DateTime
|
|
91
|
-
createdBy: FmCreatedByInput
|
|
92
|
-
modifiedBy: FmCreatedByInput
|
|
93
|
-
savedBy: FmCreatedByInput
|
|
94
|
-
location: FmFile_LocationInput
|
|
95
|
-
${inputCreateFields.map((f)=>f.fields).join("\n")}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
input FmFileUpdateInput {
|
|
99
|
-
createdOn: DateTime
|
|
100
|
-
modifiedOn: DateTime
|
|
101
|
-
savedOn: DateTime
|
|
102
|
-
createdBy: FmCreatedByInput
|
|
103
|
-
modifiedBy: FmCreatedByInput
|
|
104
|
-
savedBy: FmCreatedByInput
|
|
105
|
-
location: FmFile_LocationInput
|
|
106
|
-
${inputUpdateFields.map((f)=>f.fields).join("\n")}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
type FmFileResponse {
|
|
110
|
-
data: FmFile
|
|
111
|
-
error: FmError
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
input FmFileListWhereInput {
|
|
115
|
-
${listFilterFieldsRender.allFiltersAsString()}
|
|
116
|
-
location: FmFile_LocationWhereInput
|
|
117
|
-
AND: [FmFileListWhereInput!]
|
|
118
|
-
OR: [FmFileListWhereInput!]
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
type FmFileListResponse {
|
|
122
|
-
data: [FmFile!]
|
|
123
|
-
error: FmError
|
|
124
|
-
meta: FmListMeta
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
enum FmFileListSorter {
|
|
128
|
-
savedOn_ASC
|
|
129
|
-
savedOn_DESC
|
|
130
|
-
createdOn_ASC
|
|
131
|
-
createdOn_DESC
|
|
132
|
-
name_ASC
|
|
133
|
-
name_DESC
|
|
134
|
-
key_ASC
|
|
135
|
-
key_DESC
|
|
136
|
-
type_ASC
|
|
137
|
-
type_DESC
|
|
138
|
-
size_ASC
|
|
139
|
-
size_DESC
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
input FmTagsListWhereInput {
|
|
143
|
-
createdBy: String
|
|
144
|
-
tags_startsWith: String
|
|
145
|
-
tags_not_startsWith: String
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
type FmTag {
|
|
149
|
-
tag: String!
|
|
150
|
-
count: Number!
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
type FmTagsListResponse {
|
|
154
|
-
data: [FmTag!]
|
|
155
|
-
error: FmError
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
type FmCreateFilesResponse {
|
|
159
|
-
data: [FmFile!]
|
|
160
|
-
error: FmError
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
type FmFileModelResponse {
|
|
164
|
-
data: JSON
|
|
165
|
-
error: FmError
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
extend type FmQuery {
|
|
169
|
-
getFileModel: FmFileModelResponse!
|
|
170
|
-
getFile(id: ID!): FmFileResponse!
|
|
171
|
-
listFiles(
|
|
172
|
-
search: String
|
|
173
|
-
where: FmFileListWhereInput
|
|
174
|
-
limit: Int
|
|
175
|
-
after: String
|
|
176
|
-
sort: [FmFileListSorter!]
|
|
177
|
-
): FmFileListResponse!
|
|
178
|
-
listTags(where: FmTagsListWhereInput): FmTagsListResponse!
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
extend type FmMutation {
|
|
182
|
-
createFile(data: FmFileCreateInput!): FmFileResponse!
|
|
183
|
-
createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!
|
|
184
|
-
updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!
|
|
185
|
-
deleteFile(id: ID!): FmBooleanResponse!
|
|
186
|
-
}
|
|
187
|
-
`;
|
|
188
|
-
};
|
|
189
|
-
export { createFilesTypeDefs };
|
|
190
|
-
|
|
191
|
-
//# sourceMappingURL=createFilesTypeDefs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql/createFilesTypeDefs.js","sources":["../../src/graphql/createFilesTypeDefs.ts"],"sourcesContent":["import type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\nexport interface CreateFilesTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFilesTypeDefs = (params: CreateFilesTypeDefsParams): string => {\n const { model, models, fieldRegistry } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldRegistry\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldRegistry\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldRegistry\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\", \"status\"]\n });\n\n return /* GraphQL */ `\n type FmFile_Location {\n folderId: ID!\n }\n\n input FmFile_LocationInput {\n folderId: ID!\n }\n\n input FmFile_LocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n \n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n type FmFile {\n id: ID!\n createdOn: DateTime!\n modifiedOn: DateTime\n savedOn: DateTime!\n createdBy: FmCreatedBy!\n modifiedBy: FmCreatedBy\n savedBy: FmCreatedBy!\n location: FmFile_Location!\n src: String\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FmCreatedByInput {\n id: ID!\n displayName: String!\n type: String!\n }\n\n input FmFileCreateInput {\n id: ID!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: FmCreatedByInput\n modifiedBy: FmCreatedByInput\n savedBy: FmCreatedByInput\n location: FmFile_LocationInput\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input FmFileUpdateInput {\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: FmCreatedByInput\n modifiedBy: FmCreatedByInput\n savedBy: FmCreatedByInput\n location: FmFile_LocationInput\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type FmFileResponse {\n data: FmFile\n error: FmError\n }\n\n input FmFileListWhereInput {\n ${listFilterFieldsRender.allFiltersAsString()}\n location: FmFile_LocationWhereInput\n AND: [FmFileListWhereInput!]\n OR: [FmFileListWhereInput!]\n }\n\n type FmFileListResponse {\n data: [FmFile!]\n error: FmError\n meta: FmListMeta\n }\n\n enum FmFileListSorter {\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n name_ASC\n name_DESC\n key_ASC\n key_DESC\n type_ASC\n type_DESC\n size_ASC\n size_DESC\n }\n\n input FmTagsListWhereInput {\n createdBy: String\n tags_startsWith: String\n tags_not_startsWith: String\n }\n\n type FmTag {\n tag: String!\n count: Number!\n }\n\n type FmTagsListResponse {\n data: [FmTag!]\n error: FmError\n }\n\n type FmCreateFilesResponse {\n data: [FmFile!]\n error: FmError\n }\n \n type FmFileModelResponse {\n data: JSON\n error: FmError\n }\n\n extend type FmQuery {\n getFileModel: FmFileModelResponse!\n getFile(id: ID!): FmFileResponse!\n listFiles(\n search: String\n where: FmFileListWhereInput\n limit: Int\n after: String\n sort: [FmFileListSorter!]\n ): FmFileListResponse!\n listTags(where: FmTagsListWhereInput): FmTagsListResponse!\n }\n\n extend type FmMutation {\n createFile(data: FmFileCreateInput!): FmFileResponse!\n createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!\n updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!\n deleteFile(id: ID!): FmBooleanResponse!\n }\n `;\n};\n"],"names":["removeFieldRequiredValidation","field","validation","v","createUpdateFields","fields","collection","createFilesTypeDefs","params","model","models","fieldRegistry","fieldTypes","renderFields","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","f"],"mappings":";;;AAYA,MAAMA,gCAAgC,CAACC;IACnC,IAAIA,MAAM,UAAU,EAChBA,MAAM,UAAU,GAAGA,MAAM,UAAU,CAAC,MAAM,CAACC,CAAAA,aAAcA,AAAoB,eAApBA,WAAW,IAAI;IAE5E,IAAID,MAAM,cAAc,EACpBA,MAAM,cAAc,GAAGA,MAAM,cAAc,CAAC,MAAM,CAACE,CAAAA,IAAKA,AAAW,eAAXA,EAAE,IAAI;IAElE,OAAOF;AACX;AAEA,MAAMG,qBAAqB,CAACC,SACjBA,OAAO,MAAM,CAAkB,CAACC,YAAYL;QAC/CK,WAAW,IAAI,CAACN,8BAA8B;YAAE,GAAGC,KAAK;QAAC;QACzD,OAAOK;IACX,GAAG,EAAE;AAGF,MAAMC,sBAAsB,CAACC;IAChC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,aAAa,EAAE,GAAGH;IACzC,MAAM,EAAEH,MAAM,EAAE,GAAGI;IAEnB,MAAMG,aAAaC,aAAa;QAC5BH;QACAD;QACAJ;QACA,MAAM;QACNM;IACJ;IACA,MAAMG,oBAAoBC,kBAAkB;QACxCL;QACAD;QACAJ;QACAM;IACJ;IACA,MAAMK,oBAAoBD,kBAAkB;QACxCL;QACAD;QACA,QAAQL,mBAAmBC;QAC3BM;IACJ;IACA,MAAMM,yBAAyBC,uBAAuB;QAClDT;QACA,QAAQA,MAAM,MAAM;QACpB,MAAM;QACNE;QACA,eAAe;YAAC;YAAW;SAAS;IACxC;IAEA,OAAqB,CAAC;;;;;;;;;;;;;;;;QAgBlB,EAAEC,WAAW,GAAG,CAACO,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;;;;;;;YAYzC,EAAEP,WAAW,GAAG,CAACO,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;QAG/C,EAAEL,kBAAkB,GAAG,CAACK,CAAAA,IAAKA,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;;YAiBhD,EAAEL,kBAAkB,GAAG,CAACK,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;;;;;;;;;YAWlD,EAAEH,kBAAkB,GAAG,CAACG,CAAAA,IAAKA,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;;;;;;;;;YASlD,EAAEF,uBAAuB,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwEtD,CAAC;AACL"}
|
package/graphql/filesSchema.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
-
import type { CreateFilesTypeDefsParams } from "../graphql/createFilesTypeDefs.js";
|
|
3
|
-
import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
|
|
4
|
-
export declare const createFilesSchema: (params: CreateFilesTypeDefsParams) => GraphQLSchemaPlugin<ApiCoreContext>;
|
package/graphql/filesSchema.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { ErrorResponse, GraphQLSchemaPlugin, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
-
import { emptyResolver, resolve } from "./utils.js";
|
|
3
|
-
import { createFilesTypeDefs } from "./createFilesTypeDefs.js";
|
|
4
|
-
import NotAuthorizedResponse from "@webiny/api-core/graphql/security/NotAuthorizedResponse.js";
|
|
5
|
-
import { GetFileUseCase } from "../features/file/GetFile/abstractions.js";
|
|
6
|
-
import { ListFilesUseCase } from "../features/file/ListFiles/abstractions.js";
|
|
7
|
-
import { ListTagsUseCase } from "../features/file/ListTags/abstractions.js";
|
|
8
|
-
import { CreateFileUseCase } from "../features/file/CreateFile/abstractions.js";
|
|
9
|
-
import { CreateFilesInBatchUseCase } from "../features/file/CreateFilesInBatch/abstractions.js";
|
|
10
|
-
import { UpdateFileUseCase } from "../features/file/UpdateFile/abstractions.js";
|
|
11
|
-
import { DeleteFileUseCase } from "../features/file/DeleteFile/abstractions.js";
|
|
12
|
-
import { GetSettingsUseCase } from "../features/settings/GetSettings/abstractions.js";
|
|
13
|
-
import { FileModel } from "../domain/file/abstractions.js";
|
|
14
|
-
const createFilesSchema = (params)=>{
|
|
15
|
-
const fileManagerGraphQL = new GraphQLSchemaPlugin({
|
|
16
|
-
typeDefs: createFilesTypeDefs(params),
|
|
17
|
-
resolvers: {
|
|
18
|
-
Query: {
|
|
19
|
-
fileManager: emptyResolver
|
|
20
|
-
},
|
|
21
|
-
Mutation: {
|
|
22
|
-
fileManager: emptyResolver
|
|
23
|
-
},
|
|
24
|
-
FmFile: {
|
|
25
|
-
async src (file, _, context) {
|
|
26
|
-
const getSettings = context.container.resolve(GetSettingsUseCase);
|
|
27
|
-
const result = await getSettings.execute();
|
|
28
|
-
if (result.isFail()) throw result.error;
|
|
29
|
-
const settings = result.value;
|
|
30
|
-
return (settings?.srcPrefix || "") + file.key;
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
FmQuery: {
|
|
34
|
-
getFileModel (_, __, context) {
|
|
35
|
-
const identity = context.security.getIdentity();
|
|
36
|
-
if (!identity) return new NotAuthorizedResponse();
|
|
37
|
-
return resolve(async ()=>context.container.resolve(FileModel));
|
|
38
|
-
},
|
|
39
|
-
async getFile (_, args, context) {
|
|
40
|
-
const getFile = context.container.resolve(GetFileUseCase);
|
|
41
|
-
const result = await getFile.execute(args.id);
|
|
42
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
43
|
-
return new Response(result.value);
|
|
44
|
-
},
|
|
45
|
-
async listFiles (_, args, context) {
|
|
46
|
-
const listFiles = context.container.resolve(ListFilesUseCase);
|
|
47
|
-
const result = await listFiles.execute(args);
|
|
48
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
49
|
-
return new ListResponse(result.value.items, result.value.meta);
|
|
50
|
-
},
|
|
51
|
-
async listTags (_, args, context) {
|
|
52
|
-
const listTags = context.container.resolve(ListTagsUseCase);
|
|
53
|
-
const result = await listTags.execute(args || {});
|
|
54
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
55
|
-
return new Response(result.value);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
FmMutation: {
|
|
59
|
-
async createFile (_, args, context) {
|
|
60
|
-
const createFile = context.container.resolve(CreateFileUseCase);
|
|
61
|
-
const result = await createFile.execute(args.data);
|
|
62
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
63
|
-
return new Response(result.value);
|
|
64
|
-
},
|
|
65
|
-
async createFiles (_, args, context) {
|
|
66
|
-
const createFilesInBatch = context.container.resolve(CreateFilesInBatchUseCase);
|
|
67
|
-
const result = await createFilesInBatch.execute({
|
|
68
|
-
files: args.data,
|
|
69
|
-
meta: args.meta
|
|
70
|
-
});
|
|
71
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
72
|
-
return new Response(result.value);
|
|
73
|
-
},
|
|
74
|
-
async updateFile (_, args, context) {
|
|
75
|
-
const updateFile = context.container.resolve(UpdateFileUseCase);
|
|
76
|
-
const result = await updateFile.execute({
|
|
77
|
-
id: args.id,
|
|
78
|
-
...args.data
|
|
79
|
-
});
|
|
80
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
81
|
-
return new Response(result.value);
|
|
82
|
-
},
|
|
83
|
-
async deleteFile (_, args, context) {
|
|
84
|
-
const deleteFile = context.container.resolve(DeleteFileUseCase);
|
|
85
|
-
const result = await deleteFile.execute(args.id);
|
|
86
|
-
if (result.isFail()) return new ErrorResponse(result.error);
|
|
87
|
-
return new Response(true);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
fileManagerGraphQL.name = "fm.graphql.files";
|
|
93
|
-
return fileManagerGraphQL;
|
|
94
|
-
};
|
|
95
|
-
export { createFilesSchema };
|
|
96
|
-
|
|
97
|
-
//# sourceMappingURL=filesSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql/filesSchema.js","sources":["../../src/graphql/filesSchema.ts"],"sourcesContent":["import {\n ErrorResponse,\n GraphQLSchemaPlugin,\n ListResponse,\n Response\n} from \"@webiny/handler-graphql\";\nimport { emptyResolver, resolve } from \"./utils.js\";\nimport type { CreateFilesTypeDefsParams } from \"~/graphql/createFilesTypeDefs.js\";\nimport { createFilesTypeDefs } from \"~/graphql/createFilesTypeDefs.js\";\nimport NotAuthorizedResponse from \"@webiny/api-core/graphql/security/NotAuthorizedResponse.js\";\nimport { GetFileUseCase } from \"~/features/file/GetFile/abstractions.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/abstractions.js\";\nimport { ListTagsUseCase } from \"~/features/file/ListTags/abstractions.js\";\nimport { CreateFileUseCase } from \"~/features/file/CreateFile/abstractions.js\";\nimport { CreateFilesInBatchUseCase } from \"~/features/file/CreateFilesInBatch/abstractions.js\";\nimport { UpdateFileUseCase } from \"~/features/file/UpdateFile/abstractions.js\";\nimport { DeleteFileUseCase } from \"~/features/file/DeleteFile/abstractions.js\";\nimport { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\n\nexport const createFilesSchema = (params: CreateFilesTypeDefsParams) => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: createFilesTypeDefs(params),\n resolvers: {\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmFile: {\n async src(file, _, context) {\n // TODO: create `FileUrlGenerator` service to use here\n const getSettings = context.container.resolve(GetSettingsUseCase);\n const result = await getSettings.execute();\n if (result.isFail()) {\n throw result.error;\n }\n const settings = result.value;\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n FmQuery: {\n getFileModel(_, __, context) {\n const identity = context.security.getIdentity();\n if (!identity) {\n return new NotAuthorizedResponse();\n }\n\n return resolve(async () => {\n return context.container.resolve(FileModel);\n });\n },\n async getFile(_, args: any, context) {\n const getFile = context.container.resolve(GetFileUseCase);\n const result = await getFile.execute(args.id);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async listFiles(_, args, context) {\n const listFiles = context.container.resolve(ListFilesUseCase);\n const result = await listFiles.execute(args);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new ListResponse(result.value.items, result.value.meta);\n },\n async listTags(_, args: any, context) {\n const listTags = context.container.resolve(ListTagsUseCase);\n const result = await listTags.execute(args || {});\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n const createFile = context.container.resolve(CreateFileUseCase);\n const result = await createFile.execute(args.data);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async createFiles(_, args: any, context) {\n const createFilesInBatch = context.container.resolve(CreateFilesInBatchUseCase);\n const result = await createFilesInBatch.execute({\n files: args.data,\n meta: args.meta\n });\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async updateFile(_, args: any, context) {\n const updateFile = context.container.resolve(UpdateFileUseCase);\n const result = await updateFile.execute({\n id: args.id,\n ...args.data\n });\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async deleteFile(_, args: any, context) {\n const deleteFile = context.container.resolve(DeleteFileUseCase);\n const result = await deleteFile.execute(args.id);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n // TODO: deletion from Cloud storage should be implemented in the `api-file-manager-s3` as an event handler\n return new Response(true);\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.files\";\n\n return fileManagerGraphQL;\n};\n"],"names":["createFilesSchema","params","fileManagerGraphQL","GraphQLSchemaPlugin","createFilesTypeDefs","emptyResolver","file","_","context","getSettings","GetSettingsUseCase","result","settings","__","identity","NotAuthorizedResponse","resolve","FileModel","args","getFile","GetFileUseCase","ErrorResponse","Response","listFiles","ListFilesUseCase","ListResponse","listTags","ListTagsUseCase","createFile","CreateFileUseCase","createFilesInBatch","CreateFilesInBatchUseCase","updateFile","UpdateFileUseCase","deleteFile","DeleteFileUseCase"],"mappings":"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"}
|
package/graphql/getFileByUrl.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ErrorResponse, GraphQLSchemaPlugin, NotFoundResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
-
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
|
|
3
|
-
import { ListFilesUseCase } from "../features/file/ListFiles/index.js";
|
|
4
|
-
import { Logger } from "@webiny/api-core/exports/api/logger";
|
|
5
|
-
const getFileByUrl = ()=>{
|
|
6
|
-
const fileManagerGraphQL = new GraphQLSchemaPlugin({
|
|
7
|
-
typeDefs: `
|
|
8
|
-
extend type FmQuery {
|
|
9
|
-
getFileByUrl(url: String!): FmFileResponse
|
|
10
|
-
}
|
|
11
|
-
`,
|
|
12
|
-
resolvers: {
|
|
13
|
-
FmQuery: {
|
|
14
|
-
async getFileByUrl (_, args, context) {
|
|
15
|
-
const { url } = args;
|
|
16
|
-
const useCase = new SecureGetFileByUrl(context.security, new GetFileByUrlUseCase(context.container.resolve(ListFilesUseCase), context.container.resolve(Logger)));
|
|
17
|
-
try {
|
|
18
|
-
const file = await useCase.execute(url);
|
|
19
|
-
if (file) return new Response(file);
|
|
20
|
-
return new NotFoundResponse("File not found!");
|
|
21
|
-
} catch (error) {
|
|
22
|
-
return new ErrorResponse(error);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
fileManagerGraphQL.name = "fm.graphql.getFileByUrl";
|
|
29
|
-
return fileManagerGraphQL;
|
|
30
|
-
};
|
|
31
|
-
class GetFileByUrlUseCase {
|
|
32
|
-
constructor(listFiles, logger){
|
|
33
|
-
this.listFiles = listFiles;
|
|
34
|
-
this.logger = logger;
|
|
35
|
-
}
|
|
36
|
-
async execute(url) {
|
|
37
|
-
const { pathname } = new URL(url);
|
|
38
|
-
const query = pathname.replace("/files/", "").replace("/private/", "");
|
|
39
|
-
const filesResult = await this.listFiles.execute({
|
|
40
|
-
where: {
|
|
41
|
-
key: query
|
|
42
|
-
},
|
|
43
|
-
limit: 1
|
|
44
|
-
});
|
|
45
|
-
if (filesResult.isFail()) return void this.logger.error(filesResult.error);
|
|
46
|
-
const files = filesResult.value.items;
|
|
47
|
-
return files.length ? files[0] : void 0;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
class SecureGetFileByUrl {
|
|
51
|
-
constructor(security, useCase){
|
|
52
|
-
this.security = security;
|
|
53
|
-
this.useCase = useCase;
|
|
54
|
-
}
|
|
55
|
-
execute(url) {
|
|
56
|
-
if (!this.security.getIdentity()) throw new NotAuthorizedError({
|
|
57
|
-
message: "You're not authorized to edit this file!"
|
|
58
|
-
});
|
|
59
|
-
return this.useCase.execute(url);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export { getFileByUrl };
|
|
63
|
-
|
|
64
|
-
//# sourceMappingURL=getFileByUrl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql/getFileByUrl.js","sources":["../../src/graphql/getFileByUrl.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { Response, NotFoundResponse } from \"@webiny/handler-graphql\";\nimport type { File } from \"~/domain/file/types.js\";\nimport type { Security } from \"@webiny/api-core/types/security.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/index.js\";\nimport { Logger } from \"@webiny/api-core/exports/api/logger\";\n\nexport const getFileByUrl = () => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n extend type FmQuery {\n getFileByUrl(url: String!): FmFileResponse\n }\n `,\n resolvers: {\n FmQuery: {\n async getFileByUrl(_, args, context) {\n const { url } = args as { url: string };\n const useCase = new SecureGetFileByUrl(\n context.security,\n new GetFileByUrlUseCase(\n context.container.resolve(ListFilesUseCase),\n context.container.resolve(Logger)\n )\n );\n try {\n const file = await useCase.execute(url);\n if (file) {\n return new Response(file);\n }\n return new NotFoundResponse(\"File not found!\");\n } catch (error) {\n return new ErrorResponse(error);\n }\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.getFileByUrl\";\n\n return fileManagerGraphQL;\n};\n\ninterface IGetFileByUrl {\n execute(url: string): Promise<File | undefined>;\n}\n\nclass GetFileByUrlUseCase implements IGetFileByUrl {\n constructor(\n private readonly listFiles: ListFilesUseCase.Interface,\n private readonly logger: Logger.Interface\n ) {}\n\n async execute(url: string): Promise<File | undefined> {\n const { pathname } = new URL(url);\n const query = pathname.replace(\"/files/\", \"\").replace(\"/private/\", \"\");\n\n const filesResult = await this.listFiles.execute({\n where: {\n key: query\n },\n limit: 1\n });\n if (filesResult.isFail()) {\n this.logger.error(filesResult.error);\n return undefined;\n }\n\n const files = filesResult.value.items;\n\n return files.length ? files[0] : undefined;\n }\n}\n\nclass SecureGetFileByUrl implements IGetFileByUrl {\n private security: Security;\n private useCase: IGetFileByUrl;\n\n constructor(security: Security, useCase: IGetFileByUrl) {\n this.security = security;\n this.useCase = useCase;\n }\n\n execute(url: string): Promise<File | undefined> {\n if (!this.security.getIdentity()) {\n throw new NotAuthorizedError({ message: \"You're not authorized to edit this file!\" });\n }\n\n return this.useCase.execute(url);\n }\n}\n"],"names":["getFileByUrl","fileManagerGraphQL","GraphQLSchemaPlugin","_","args","context","url","useCase","SecureGetFileByUrl","GetFileByUrlUseCase","ListFilesUseCase","Logger","file","Response","NotFoundResponse","error","ErrorResponse","listFiles","logger","pathname","URL","query","filesResult","files","undefined","security","NotAuthorizedError"],"mappings":";;;;AASO,MAAMA,eAAe;IACxB,MAAMC,qBAAqB,IAAIC,oBAAoC;QAC/D,UAAwB,CAAC;;;;QAIzB,CAAC;QACD,WAAW;YACP,SAAS;gBACL,MAAM,cAAaC,CAAC,EAAEC,IAAI,EAAEC,OAAO;oBAC/B,MAAM,EAAEC,GAAG,EAAE,GAAGF;oBAChB,MAAMG,UAAU,IAAIC,mBAChBH,QAAQ,QAAQ,EAChB,IAAII,oBACAJ,QAAQ,SAAS,CAAC,OAAO,CAACK,mBAC1BL,QAAQ,SAAS,CAAC,OAAO,CAACM;oBAGlC,IAAI;wBACA,MAAMC,OAAO,MAAML,QAAQ,OAAO,CAACD;wBACnC,IAAIM,MACA,OAAO,IAAIC,SAASD;wBAExB,OAAO,IAAIE,iBAAiB;oBAChC,EAAE,OAAOC,OAAO;wBACZ,OAAO,IAAIC,cAAcD;oBAC7B;gBACJ;YACJ;QACJ;IACJ;IACAd,mBAAmB,IAAI,GAAG;IAE1B,OAAOA;AACX;AAMA,MAAMQ;IACF,YACqBQ,SAAqC,EACrCC,MAAwB,CAC3C;aAFmBD,SAAS,GAATA;aACAC,MAAM,GAANA;IAClB;IAEH,MAAM,QAAQZ,GAAW,EAA6B;QAClD,MAAM,EAAEa,QAAQ,EAAE,GAAG,IAAIC,IAAId;QAC7B,MAAMe,QAAQF,SAAS,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa;QAEnE,MAAMG,cAAc,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7C,OAAO;gBACH,KAAKD;YACT;YACA,OAAO;QACX;QACA,IAAIC,YAAY,MAAM,IAAI,YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAACA,YAAY,KAAK;QAIvC,MAAMC,QAAQD,YAAY,KAAK,CAAC,KAAK;QAErC,OAAOC,MAAM,MAAM,GAAGA,KAAK,CAAC,EAAE,GAAGC;IACrC;AACJ;AAEA,MAAMhB;IAIF,YAAYiB,QAAkB,EAAElB,OAAsB,CAAE;QACpD,IAAI,CAAC,QAAQ,GAAGkB;QAChB,IAAI,CAAC,OAAO,GAAGlB;IACnB;IAEA,QAAQD,GAAW,EAA6B;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAC1B,MAAM,IAAIoB,mBAAmB;YAAE,SAAS;QAA2C;QAGvF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAACpB;IAChC;AACJ"}
|
package/graphql/index.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ContextPlugin } from "@webiny/api";
|
|
2
|
-
import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
|
|
3
|
-
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
4
|
-
export declare const createGraphQLSchemaPlugin: () => (GraphQLSchemaPlugin<ApiCoreContext> | ContextPlugin<ApiCoreContext>)[];
|