@webiny/api-file-manager 6.4.12-beta.4 → 6.5.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.
Files changed (289) hide show
  1. package/{contants.js → constants.js} +1 -1
  2. package/constants.js.map +1 -0
  3. package/delivery/AssetDelivery/Asset.d.ts +2 -1
  4. package/delivery/AssetDelivery/Asset.js +4 -1
  5. package/delivery/AssetDelivery/Asset.js.map +1 -1
  6. package/delivery/AssetDelivery/AssetRequest.d.ts +4 -3
  7. package/delivery/AssetDelivery/AssetRequest.js +3 -0
  8. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  9. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +2 -1
  10. package/delivery/AssetDelivery/abstractions/AssetReply.js +5 -0
  11. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  12. package/delivery/index.d.ts +3 -3
  13. package/delivery/index.js +0 -2
  14. package/delivery/setupAssetDelivery.js +4 -1
  15. package/delivery/setupAssetDelivery.js.map +1 -1
  16. package/domain/file/file.model.js +5 -1
  17. package/domain/file/file.model.js.map +1 -1
  18. package/domain/settings/validation.js +1 -1
  19. package/domain/settings/validation.js.map +1 -1
  20. package/exports/api/file-manager/assetDelivery.d.ts +18 -0
  21. package/exports/api/file-manager/assetDelivery.js +15 -0
  22. package/exports/api/file-manager/file.d.ts +1 -0
  23. package/exports/api/file-manager/file.js +1 -0
  24. package/features/FileManagerFeature.js +12 -0
  25. package/features/FileManagerFeature.js.map +1 -1
  26. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  27. package/features/assetDelivery/Asset/Asset.js +14 -0
  28. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  29. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  30. package/features/assetDelivery/Asset/abstractions.js +5 -0
  31. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  32. package/features/assetDelivery/Asset/index.d.ts +1 -0
  33. package/features/assetDelivery/Asset/index.js +1 -0
  34. package/features/assetDelivery/AssetRequest/AssetRequest.d.ts +8 -0
  35. package/features/assetDelivery/AssetRequest/AssetRequest.js +14 -0
  36. package/features/assetDelivery/AssetRequest/AssetRequest.js.map +1 -0
  37. package/features/assetDelivery/AssetRequest/abstractions.d.ts +11 -0
  38. package/features/assetDelivery/AssetRequest/abstractions.js +5 -0
  39. package/features/assetDelivery/AssetRequest/abstractions.js.map +1 -0
  40. package/features/assetDelivery/AssetRequest/index.d.ts +1 -0
  41. package/features/assetDelivery/AssetRequest/index.js +1 -0
  42. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -7
  43. package/features/assetDelivery/FilesAssetRequestResolver.js +19 -15
  44. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
  45. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +6 -6
  46. package/features/assetDelivery/NullAssetOutputStrategy.js +6 -6
  47. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -1
  48. package/features/assetDelivery/NullAssetReply.d.ts +2 -1
  49. package/features/assetDelivery/NullAssetReply.js +3 -0
  50. package/features/assetDelivery/NullAssetReply.js.map +1 -1
  51. package/features/assetDelivery/NullAssetResolver.d.ts +6 -6
  52. package/features/assetDelivery/NullAssetResolver.js +5 -5
  53. package/features/assetDelivery/NullAssetResolver.js.map +1 -1
  54. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  55. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  56. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  57. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  58. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  59. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  60. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  61. package/features/assetDelivery/ObjectKey/index.js +1 -0
  62. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  63. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  64. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  65. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  66. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  67. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  68. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  69. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  70. package/features/assetDelivery/abstractions/AssetAuthorizer.d.ts +9 -0
  71. package/features/assetDelivery/abstractions/AssetAuthorizer.js +5 -0
  72. package/features/assetDelivery/abstractions/AssetAuthorizer.js.map +1 -0
  73. package/features/assetDelivery/abstractions/AssetContentsReader.d.ts +9 -0
  74. package/features/assetDelivery/abstractions/AssetContentsReader.js +5 -0
  75. package/features/assetDelivery/abstractions/AssetContentsReader.js.map +1 -0
  76. package/features/assetDelivery/abstractions/AssetOutputStrategy.d.ts +11 -0
  77. package/features/assetDelivery/abstractions/AssetOutputStrategy.js +5 -0
  78. package/features/assetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
  79. package/features/assetDelivery/abstractions/AssetProcessor.d.ts +11 -0
  80. package/features/assetDelivery/abstractions/AssetProcessor.js +5 -0
  81. package/features/assetDelivery/abstractions/AssetProcessor.js.map +1 -0
  82. package/features/assetDelivery/abstractions/AssetRequestResolver.d.ts +11 -0
  83. package/features/assetDelivery/abstractions/AssetRequestResolver.js +5 -0
  84. package/features/assetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
  85. package/features/assetDelivery/abstractions/AssetResolver.d.ts +11 -0
  86. package/features/assetDelivery/abstractions/AssetResolver.js +5 -0
  87. package/features/assetDelivery/abstractions/AssetResolver.js.map +1 -0
  88. package/features/assetDelivery/abstractions/AssetTransformationStrategy.d.ts +11 -0
  89. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js +5 -0
  90. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
  91. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  92. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  93. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  94. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  95. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  96. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  97. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  98. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  99. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  100. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  101. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  102. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  103. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  104. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  105. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  106. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  107. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  108. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  109. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  110. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  111. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  112. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  113. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  114. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  115. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  116. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  117. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  118. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  119. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  120. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  121. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  122. package/features/assetDelivery/feature.js +25 -16
  123. package/features/assetDelivery/feature.js.map +1 -1
  124. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +2 -2
  125. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  126. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +3 -3
  127. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +1 -1
  128. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  129. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +3 -3
  130. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -1
  131. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +9 -8
  132. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +15 -12
  133. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  134. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +8 -8
  135. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +8 -7
  136. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  137. package/features/assetDelivery/privateFiles/PublicCache.d.ts +3 -3
  138. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -1
  139. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +5 -4
  140. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +4 -1
  141. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  142. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +5 -4
  143. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +4 -1
  144. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  145. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  146. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  147. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  148. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -10
  149. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
  150. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  151. package/features/assetDelivery/transformation/index.d.ts +5 -0
  152. package/features/assetDelivery/transformation/index.js +4 -0
  153. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  154. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  155. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  156. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  157. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  158. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +15 -0
  159. package/features/file/FileUrlGenerator/FileUrlGenerator.js +33 -0
  160. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  161. package/features/file/FileUrlGenerator/abstractions.d.ts +3 -4
  162. package/features/file/FileUrlGenerator/abstractions.js +1 -1
  163. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  164. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  165. package/features/file/FileUrlGenerator/feature.js +11 -0
  166. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  167. package/features/file/FileUrlGenerator/index.d.ts +1 -0
  168. package/features/file/FileUrlGenerator/index.js +1 -0
  169. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  170. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  171. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  172. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  173. package/features/file/GetFileByUrl/abstractions.js +5 -0
  174. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  175. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  176. package/features/file/GetFileByUrl/feature.js +11 -0
  177. package/features/file/GetFileByUrl/feature.js.map +1 -0
  178. package/features/file/GetFileByUrl/index.d.ts +1 -0
  179. package/features/file/GetFileByUrl/index.js +1 -0
  180. package/features/settings/SettingsInstaller/SettingsInstaller.js +1 -1
  181. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  182. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  183. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  184. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  185. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  186. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  187. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  188. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  189. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  190. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  191. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  192. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  193. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  194. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  195. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  196. package/features/upload/GetUploadPayload/index.js +1 -0
  197. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  198. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  199. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  200. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  201. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  202. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  203. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  204. package/features/upload/ReadFileMetadata/feature.js +11 -0
  205. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  206. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  207. package/features/upload/ReadFileMetadata/index.js +1 -0
  208. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  209. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  210. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  211. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  212. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  213. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  214. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  215. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  216. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  217. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  218. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  219. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  220. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  221. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  222. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  223. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  224. package/features/upload/WriteFileMetadata/feature.js +17 -0
  225. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  226. package/features/upload/index.d.ts +17 -0
  227. package/features/upload/index.js +10 -0
  228. package/features/upload/types.d.ts +28 -0
  229. package/features/upload/types.js +0 -0
  230. package/features/upload/utils/FileExtension.d.ts +6 -0
  231. package/features/upload/utils/FileExtension.js +16 -0
  232. package/features/upload/utils/FileExtension.js.map +1 -0
  233. package/features/upload/utils/FileKey.d.ts +11 -0
  234. package/features/upload/utils/FileKey.js +33 -0
  235. package/features/upload/utils/FileKey.js.map +1 -0
  236. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  237. package/features/upload/utils/FileNormalizer.js +41 -0
  238. package/features/upload/utils/FileNormalizer.js.map +1 -0
  239. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  240. package/features/upload/utils/FileUploadModifier.js +39 -0
  241. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  242. package/features/upload/utils/checkPermissions.d.ts +5 -0
  243. package/features/upload/utils/checkPermissions.js +22 -0
  244. package/features/upload/utils/checkPermissions.js.map +1 -0
  245. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  246. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  247. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  248. package/features/upload/utils/mimeTypes.d.ts +1 -0
  249. package/features/upload/utils/mimeTypes.js +9 -0
  250. package/features/upload/utils/mimeTypes.js.map +1 -0
  251. package/graphql/FmGraphQLSchema.d.ts +25 -0
  252. package/graphql/FmGraphQLSchema.js +451 -0
  253. package/graphql/FmGraphQLSchema.js.map +1 -0
  254. package/graphql/FmUploadGraphQLSchema.d.ts +11 -0
  255. package/graphql/FmUploadGraphQLSchema.js +231 -0
  256. package/graphql/FmUploadGraphQLSchema.js.map +1 -0
  257. package/index.d.ts +0 -3
  258. package/index.js +16 -17
  259. package/index.js.map +1 -1
  260. package/package.json +24 -18
  261. package/contants.js.map +0 -1
  262. package/features/assetDelivery/abstractions.d.ts +0 -54
  263. package/features/assetDelivery/abstractions.js +0 -11
  264. package/features/assetDelivery/abstractions.js.map +0 -1
  265. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
  266. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
  267. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  268. package/graphql/baseSchema.d.ts +0 -3
  269. package/graphql/baseSchema.js +0 -100
  270. package/graphql/baseSchema.js.map +0 -1
  271. package/graphql/createFilesTypeDefs.d.ts +0 -8
  272. package/graphql/createFilesTypeDefs.js +0 -191
  273. package/graphql/createFilesTypeDefs.js.map +0 -1
  274. package/graphql/filesSchema.d.ts +0 -4
  275. package/graphql/filesSchema.js +0 -97
  276. package/graphql/filesSchema.js.map +0 -1
  277. package/graphql/getFileByUrl.d.ts +0 -3
  278. package/graphql/getFileByUrl.js +0 -64
  279. package/graphql/getFileByUrl.js.map +0 -1
  280. package/graphql/index.d.ts +0 -4
  281. package/graphql/index.js +0 -48
  282. package/graphql/index.js.map +0 -1
  283. package/graphql/utils.d.ts +0 -11
  284. package/graphql/utils.js +0 -12
  285. package/graphql/utils.js.map +0 -1
  286. package/modelModifier/CmsModelModifier.d.ts +0 -26
  287. package/modelModifier/CmsModelModifier.js +0 -51
  288. package/modelModifier/CmsModelModifier.js.map +0 -1
  289. /package/{contants.d.ts → constants.d.ts} +0 -0
@@ -0,0 +1,451 @@
1
+ import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, ListResponse, NotFoundResponse, Response } from "@webiny/handler-graphql";
3
+ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
4
+ import { renderInputFields } from "@webiny/api-headless-cms/utils/renderInputFields.js";
5
+ import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
6
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
7
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
8
+ import { IdentityContext } from "@webiny/api-core/exports/api/security.js";
9
+ import { GetFileUseCase } from "../features/file/GetFile/abstractions.js";
10
+ import { ListFilesUseCase } from "../features/file/ListFiles/abstractions.js";
11
+ import { ListTagsUseCase } from "../features/file/ListTags/abstractions.js";
12
+ import { CreateFileUseCase } from "../features/file/CreateFile/abstractions.js";
13
+ import { CreateFilesInBatchUseCase } from "../features/file/CreateFilesInBatch/abstractions.js";
14
+ import { UpdateFileUseCase } from "../features/file/UpdateFile/abstractions.js";
15
+ import { DeleteFileUseCase } from "../features/file/DeleteFile/abstractions.js";
16
+ import { GetFileByUrlUseCase } from "../features/file/GetFileByUrl/abstractions.js";
17
+ import { GetSettingsUseCase } from "../features/settings/GetSettings/abstractions.js";
18
+ import { UpdateSettingsUseCase } from "../features/settings/UpdateSettings/abstractions.js";
19
+ import { FileUrlGenerator } from "../features/file/FileUrlGenerator/abstractions.js";
20
+ import { FileModel } from "../domain/file/abstractions.js";
21
+ const removeFieldRequiredValidation = (field)=>{
22
+ if (field.validation) field.validation = field.validation.filter((validation)=>"required" !== validation.name);
23
+ if (field.listValidation) field.listValidation = field.listValidation.filter((v)=>"required" !== v.name);
24
+ return field;
25
+ };
26
+ const createUpdateFields = (fields)=>fields.reduce((collection, field)=>{
27
+ collection.push(removeFieldRequiredValidation({
28
+ ...field
29
+ }));
30
+ return collection;
31
+ }, []);
32
+ class FmGraphQLSchemaImpl {
33
+ constructor(identityContext, listModelsUseCase, fieldRegistry, fileModel, fileUrlGenerator){
34
+ this.identityContext = identityContext;
35
+ this.listModelsUseCase = listModelsUseCase;
36
+ this.fieldRegistry = fieldRegistry;
37
+ this.fileModel = fileModel;
38
+ this.fileUrlGenerator = fileUrlGenerator;
39
+ }
40
+ async execute(builder) {
41
+ this.addBaseTypeDefs(builder);
42
+ await this.addFileTypeDefs(builder);
43
+ this.addSettingsResolvers(builder);
44
+ this.addFileQueryResolvers(builder);
45
+ this.addFileMutationResolvers(builder);
46
+ return builder;
47
+ }
48
+ addBaseTypeDefs(builder) {
49
+ builder.addTypeDefs(`
50
+ type FmError {
51
+ code: String
52
+ message: String
53
+ data: JSON
54
+ stack: String
55
+ }
56
+
57
+ type FmCreatedBy {
58
+ id: ID
59
+ displayName: String
60
+ type: String
61
+ }
62
+
63
+ type FmListMeta {
64
+ cursor: String
65
+ totalCount: Int
66
+ hasMoreItems: Boolean
67
+ }
68
+
69
+ type FmBooleanResponse {
70
+ data: Boolean
71
+ error: FmError
72
+ }
73
+
74
+ type FmSettings {
75
+ uploadMinFileSize: Number
76
+ uploadMaxFileSize: Number
77
+ srcPrefix: String
78
+ }
79
+
80
+ input FmSettingsInput {
81
+ uploadMinFileSize: Number
82
+ uploadMaxFileSize: Number
83
+ srcPrefix: String
84
+ }
85
+
86
+ type FmSettingsResponse {
87
+ data: FmSettings
88
+ error: FmError
89
+ }
90
+
91
+ type FmDeleteResponse {
92
+ data: Boolean
93
+ error: FmError
94
+ }
95
+
96
+ type FmQuery {
97
+ getSettings: FmSettingsResponse
98
+ }
99
+
100
+ type FmMutation {
101
+ updateSettings(data: FmSettingsInput): FmSettingsResponse
102
+ }
103
+
104
+ extend type Query {
105
+ fileManager: FmQuery
106
+ }
107
+
108
+ extend type Mutation {
109
+ fileManager: FmMutation
110
+ }
111
+ `);
112
+ builder.addResolver({
113
+ path: "Query.fileManager",
114
+ resolver: ()=>()=>({})
115
+ });
116
+ builder.addResolver({
117
+ path: "Mutation.fileManager",
118
+ resolver: ()=>()=>({})
119
+ });
120
+ }
121
+ async addFileTypeDefs(builder) {
122
+ const models = await this.loadModels();
123
+ const { fields } = this.fileModel;
124
+ const fieldTypes = renderFields({
125
+ models,
126
+ model: this.fileModel,
127
+ fields,
128
+ type: "manage",
129
+ fieldRegistry: this.fieldRegistry
130
+ });
131
+ const inputCreateFields = renderInputFields({
132
+ models,
133
+ model: this.fileModel,
134
+ fields,
135
+ fieldRegistry: this.fieldRegistry
136
+ });
137
+ const inputUpdateFields = renderInputFields({
138
+ models,
139
+ model: this.fileModel,
140
+ fields: createUpdateFields(fields),
141
+ fieldRegistry: this.fieldRegistry
142
+ });
143
+ const listFilterFieldsRender = renderListFilterFields({
144
+ model: this.fileModel,
145
+ fields: this.fileModel.fields,
146
+ type: "manage",
147
+ fieldRegistry: this.fieldRegistry,
148
+ excludeFields: [
149
+ "entryId",
150
+ "status"
151
+ ]
152
+ });
153
+ builder.addTypeDefs(`
154
+ type FmFile_Location {
155
+ folderId: ID!
156
+ }
157
+
158
+ input FmFile_LocationInput {
159
+ folderId: ID!
160
+ }
161
+
162
+ input FmFile_LocationWhereInput {
163
+ folderId: ID
164
+ folderId_in: [ID!]
165
+ folderId_not: ID
166
+ folderId_not_in: [ID!]
167
+ }
168
+
169
+ ${fieldTypes.map((f)=>f.typeDefs).join("\n")}
170
+
171
+ type FmFile {
172
+ id: ID!
173
+ createdOn: DateTime!
174
+ modifiedOn: DateTime
175
+ savedOn: DateTime!
176
+ createdBy: FmCreatedBy!
177
+ modifiedBy: FmCreatedBy
178
+ savedBy: FmCreatedBy!
179
+ location: FmFile_Location!
180
+ src: String
181
+ ${fieldTypes.map((f)=>f.fields).join("\n")}
182
+ }
183
+
184
+ ${inputCreateFields.map((f)=>f.typeDefs).join("\n")}
185
+
186
+ input FmCreatedByInput {
187
+ id: ID!
188
+ displayName: String!
189
+ type: String!
190
+ }
191
+
192
+ input FmFileCreateInput {
193
+ id: ID!
194
+ createdOn: DateTime
195
+ modifiedOn: DateTime
196
+ savedOn: DateTime
197
+ createdBy: FmCreatedByInput
198
+ modifiedBy: FmCreatedByInput
199
+ savedBy: FmCreatedByInput
200
+ location: FmFile_LocationInput
201
+ ${inputCreateFields.map((f)=>f.fields).join("\n")}
202
+ }
203
+
204
+ input FmFileUpdateInput {
205
+ createdOn: DateTime
206
+ modifiedOn: DateTime
207
+ savedOn: DateTime
208
+ createdBy: FmCreatedByInput
209
+ modifiedBy: FmCreatedByInput
210
+ savedBy: FmCreatedByInput
211
+ location: FmFile_LocationInput
212
+ ${inputUpdateFields.map((f)=>f.fields).join("\n")}
213
+ }
214
+
215
+ type FmFileResponse {
216
+ data: FmFile
217
+ error: FmError
218
+ }
219
+
220
+ input FmFileListWhereInput {
221
+ ${listFilterFieldsRender.allFiltersAsString()}
222
+ location: FmFile_LocationWhereInput
223
+ AND: [FmFileListWhereInput!]
224
+ OR: [FmFileListWhereInput!]
225
+ }
226
+
227
+ type FmFileListResponse {
228
+ data: [FmFile!]
229
+ error: FmError
230
+ meta: FmListMeta
231
+ }
232
+
233
+ enum FmFileListSorter {
234
+ savedOn_ASC
235
+ savedOn_DESC
236
+ createdOn_ASC
237
+ createdOn_DESC
238
+ name_ASC
239
+ name_DESC
240
+ key_ASC
241
+ key_DESC
242
+ type_ASC
243
+ type_DESC
244
+ size_ASC
245
+ size_DESC
246
+ }
247
+
248
+ input FmTagsListWhereInput {
249
+ createdBy: String
250
+ tags_startsWith: String
251
+ tags_not_startsWith: String
252
+ }
253
+
254
+ type FmTag {
255
+ tag: String!
256
+ count: Number!
257
+ }
258
+
259
+ type FmTagsListResponse {
260
+ data: [FmTag!]
261
+ error: FmError
262
+ }
263
+
264
+ type FmCreateFilesResponse {
265
+ data: [FmFile!]
266
+ error: FmError
267
+ }
268
+
269
+ type FmFileModelResponse {
270
+ data: JSON
271
+ error: FmError
272
+ }
273
+
274
+ extend type FmQuery {
275
+ getFileModel: FmFileModelResponse!
276
+ getFile(id: ID!): FmFileResponse!
277
+ getFileByUrl(url: String!): FmFileResponse
278
+ listFiles(
279
+ search: String
280
+ where: FmFileListWhereInput
281
+ limit: Int
282
+ after: String
283
+ sort: [FmFileListSorter!]
284
+ ): FmFileListResponse!
285
+ listTags(where: FmTagsListWhereInput): FmTagsListResponse!
286
+ }
287
+
288
+ extend type FmMutation {
289
+ createFile(data: FmFileCreateInput!): FmFileResponse!
290
+ createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!
291
+ updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!
292
+ deleteFile(id: ID!): FmBooleanResponse!
293
+ }
294
+ `);
295
+ }
296
+ addSettingsResolvers(builder) {
297
+ builder.addResolver({
298
+ path: "FmQuery.getSettings",
299
+ dependencies: [
300
+ GetSettingsUseCase
301
+ ],
302
+ resolver: (getSettings)=>async ()=>{
303
+ const result = await getSettings.execute();
304
+ if (result.isFail()) return new ErrorResponse(result.error);
305
+ return new Response(result.value);
306
+ }
307
+ });
308
+ builder.addResolver({
309
+ path: "FmMutation.updateSettings",
310
+ dependencies: [
311
+ UpdateSettingsUseCase
312
+ ],
313
+ resolver: (updateSettings)=>async ({ args })=>{
314
+ const result = await updateSettings.execute(args.data);
315
+ if (result.isFail()) return new ErrorResponse(result.error);
316
+ return new Response(result.value);
317
+ }
318
+ });
319
+ }
320
+ addFileQueryResolvers(builder) {
321
+ builder.addResolver({
322
+ path: "FmFile.src",
323
+ dependencies: [
324
+ FileUrlGenerator
325
+ ],
326
+ resolver: (urlGenerator)=>async ({ parent })=>await urlGenerator.generateUrl(parent)
327
+ });
328
+ builder.addResolver({
329
+ path: "FmQuery.getFileModel",
330
+ dependencies: [
331
+ FileModel
332
+ ],
333
+ resolver: (fileModel)=>()=>new Response(fileModel)
334
+ });
335
+ builder.addResolver({
336
+ path: "FmQuery.getFile",
337
+ dependencies: [
338
+ GetFileUseCase
339
+ ],
340
+ resolver: (getFile)=>async ({ args })=>{
341
+ const result = await getFile.execute(args.id);
342
+ if (result.isFail()) return new ErrorResponse(result.error);
343
+ return new Response(result.value);
344
+ }
345
+ });
346
+ builder.addResolver({
347
+ path: "FmQuery.listFiles",
348
+ dependencies: [
349
+ ListFilesUseCase
350
+ ],
351
+ resolver: (listFiles)=>async ({ args })=>{
352
+ const result = await listFiles.execute(args);
353
+ if (result.isFail()) return new ErrorResponse(result.error);
354
+ return new ListResponse(result.value.items, result.value.meta);
355
+ }
356
+ });
357
+ builder.addResolver({
358
+ path: "FmQuery.listTags",
359
+ dependencies: [
360
+ ListTagsUseCase
361
+ ],
362
+ resolver: (listTags)=>async ({ args })=>{
363
+ const result = await listTags.execute(args || {});
364
+ if (result.isFail()) return new ErrorResponse(result.error);
365
+ return new Response(result.value);
366
+ }
367
+ });
368
+ builder.addResolver({
369
+ path: "FmQuery.getFileByUrl",
370
+ dependencies: [
371
+ GetFileByUrlUseCase
372
+ ],
373
+ resolver: (getFileByUrl)=>async ({ args })=>{
374
+ const result = await getFileByUrl.execute(args.url);
375
+ if (result.isFail()) return new ErrorResponse(result.error);
376
+ if (!result.value) return new NotFoundResponse("File not found!");
377
+ return new Response(result.value);
378
+ }
379
+ });
380
+ }
381
+ addFileMutationResolvers(builder) {
382
+ builder.addResolver({
383
+ path: "FmMutation.createFile",
384
+ dependencies: [
385
+ CreateFileUseCase
386
+ ],
387
+ resolver: (createFile)=>async ({ args })=>{
388
+ const result = await createFile.execute(args.data);
389
+ if (result.isFail()) return new ErrorResponse(result.error);
390
+ return new Response(result.value);
391
+ }
392
+ });
393
+ builder.addResolver({
394
+ path: "FmMutation.createFiles",
395
+ dependencies: [
396
+ CreateFilesInBatchUseCase
397
+ ],
398
+ resolver: (createFilesInBatch)=>async ({ args })=>{
399
+ const result = await createFilesInBatch.execute({
400
+ files: args.data,
401
+ meta: args.meta
402
+ });
403
+ if (result.isFail()) return new ErrorResponse(result.error);
404
+ return new Response(result.value);
405
+ }
406
+ });
407
+ builder.addResolver({
408
+ path: "FmMutation.updateFile",
409
+ dependencies: [
410
+ UpdateFileUseCase
411
+ ],
412
+ resolver: (updateFile)=>async ({ args })=>{
413
+ const result = await updateFile.execute({
414
+ id: args.id,
415
+ ...args.data
416
+ });
417
+ if (result.isFail()) return new ErrorResponse(result.error);
418
+ return new Response(result.value);
419
+ }
420
+ });
421
+ builder.addResolver({
422
+ path: "FmMutation.deleteFile",
423
+ dependencies: [
424
+ DeleteFileUseCase
425
+ ],
426
+ resolver: (deleteFile)=>async ({ args })=>{
427
+ const result = await deleteFile.execute(args.id);
428
+ if (result.isFail()) return new ErrorResponse(result.error);
429
+ return new Response(true);
430
+ }
431
+ });
432
+ }
433
+ async loadModels() {
434
+ const modelsResult = await this.identityContext.withoutAuthorization(()=>this.listModelsUseCase.execute());
435
+ if (modelsResult.isFail()) throw modelsResult.error;
436
+ return modelsResult.value;
437
+ }
438
+ }
439
+ const FmGraphQLSchema = GraphQLSchemaFactory.createImplementation({
440
+ implementation: FmGraphQLSchemaImpl,
441
+ dependencies: [
442
+ IdentityContext,
443
+ ListModelsUseCase,
444
+ CmsModelFieldToGraphQLRegistry,
445
+ FileModel,
446
+ FileUrlGenerator
447
+ ]
448
+ });
449
+ export { FmGraphQLSchema };
450
+
451
+ //# sourceMappingURL=FmGraphQLSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/FmGraphQLSchema.js","sources":["../../src/graphql/FmGraphQLSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { ListResponse } from \"@webiny/handler-graphql\";\nimport { NotFoundResponse } from \"@webiny/handler-graphql\";\nimport { Response } from \"@webiny/handler-graphql\";\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 { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport { IdentityContext } from \"@webiny/api-core/exports/api/security.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 { GetFileByUrlUseCase } from \"~/features/file/GetFileByUrl/abstractions.js\";\nimport { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport { FileUrlGenerator } from \"~/features/file/FileUrlGenerator/abstractions.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport type { CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\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\nclass FmGraphQLSchemaImpl implements GraphQLSchemaFactory.Interface {\n public constructor(\n private readonly identityContext: IdentityContext.Interface,\n private readonly listModelsUseCase: ListModelsUseCase.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface,\n private readonly fileModel: FileModel.Interface,\n private readonly fileUrlGenerator: FileUrlGenerator.Interface\n ) {}\n\n public async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n this.addBaseTypeDefs(builder);\n await this.addFileTypeDefs(builder);\n this.addSettingsResolvers(builder);\n this.addFileQueryResolvers(builder);\n this.addFileMutationResolvers(builder);\n\n return builder;\n }\n\n private addBaseTypeDefs(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addTypeDefs(/* 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 FmDeleteResponse {\n data: Boolean\n error: FmError\n }\n\n type FmQuery {\n getSettings: FmSettingsResponse\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\n builder.addResolver({\n path: \"Query.fileManager\",\n resolver: () => {\n return () => ({});\n }\n });\n\n builder.addResolver({\n path: \"Mutation.fileManager\",\n resolver: () => {\n return () => ({});\n }\n });\n }\n\n private async addFileTypeDefs(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<void> {\n const models = await this.loadModels();\n const { fields } = this.fileModel;\n\n const fieldTypes = renderFields({\n models,\n model: this.fileModel,\n fields,\n type: \"manage\",\n fieldRegistry: this.fieldRegistry\n });\n\n const inputCreateFields = renderInputFields({\n models,\n model: this.fileModel,\n fields,\n fieldRegistry: this.fieldRegistry\n });\n\n const inputUpdateFields = renderInputFields({\n models,\n model: this.fileModel,\n fields: createUpdateFields(fields),\n fieldRegistry: this.fieldRegistry\n });\n\n const listFilterFieldsRender = renderListFilterFields({\n model: this.fileModel,\n fields: this.fileModel.fields,\n type: \"manage\",\n fieldRegistry: this.fieldRegistry,\n excludeFields: [\"entryId\", \"status\"]\n });\n\n builder.addTypeDefs(/* 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 getFileByUrl(url: String!): 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\n private addSettingsResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"FmQuery.getSettings\",\n dependencies: [GetSettingsUseCase],\n resolver: (getSettings: GetSettingsUseCase.Interface) => {\n return async () => {\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 });\n\n builder.addResolver({\n path: \"FmMutation.updateSettings\",\n dependencies: [UpdateSettingsUseCase],\n resolver: (updateSettings: UpdateSettingsUseCase.Interface) => {\n return async ({ args }) => {\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\n private addFileQueryResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"FmFile.src\",\n dependencies: [FileUrlGenerator],\n resolver: (urlGenerator: FileUrlGenerator.Interface) => {\n return async ({ parent }) => {\n return await urlGenerator.generateUrl(parent);\n };\n }\n });\n\n builder.addResolver({\n path: \"FmQuery.getFileModel\",\n dependencies: [FileModel],\n resolver: (fileModel: FileModel.Interface) => {\n return () => {\n return new Response(fileModel);\n };\n }\n });\n\n builder.addResolver<{ id: string }>({\n path: \"FmQuery.getFile\",\n dependencies: [GetFileUseCase],\n resolver: (getFile: GetFileUseCase.Interface) => {\n return async ({ args }) => {\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 }\n });\n\n builder.addResolver({\n path: \"FmQuery.listFiles\",\n dependencies: [ListFilesUseCase],\n resolver: (listFiles: ListFilesUseCase.Interface) => {\n return async ({ args }) => {\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 }\n });\n\n builder.addResolver({\n path: \"FmQuery.listTags\",\n dependencies: [ListTagsUseCase],\n resolver: (listTags: ListTagsUseCase.Interface) => {\n return async ({ args }) => {\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 });\n\n builder.addResolver<{ url: string }>({\n path: \"FmQuery.getFileByUrl\",\n dependencies: [GetFileByUrlUseCase],\n resolver: (getFileByUrl: GetFileByUrlUseCase.Interface) => {\n return async ({ args }) => {\n const result = await getFileByUrl.execute(args.url);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n if (!result.value) {\n return new NotFoundResponse(\"File not found!\");\n }\n\n return new Response(result.value);\n };\n }\n });\n }\n\n private addFileMutationResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"FmMutation.createFile\",\n dependencies: [CreateFileUseCase],\n resolver: (createFile: CreateFileUseCase.Interface) => {\n return async ({ args }) => {\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 }\n });\n\n builder.addResolver({\n path: \"FmMutation.createFiles\",\n dependencies: [CreateFilesInBatchUseCase],\n resolver: (createFilesInBatch: CreateFilesInBatchUseCase.Interface) => {\n return async ({ args }) => {\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 }\n });\n\n builder.addResolver({\n path: \"FmMutation.updateFile\",\n dependencies: [UpdateFileUseCase],\n resolver: (updateFile: UpdateFileUseCase.Interface) => {\n return async ({ args }) => {\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 }\n });\n\n builder.addResolver({\n path: \"FmMutation.deleteFile\",\n dependencies: [DeleteFileUseCase],\n resolver: (deleteFile: DeleteFileUseCase.Interface) => {\n return async ({ args }) => {\n const result = await deleteFile.execute(args.id);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(true);\n };\n }\n });\n }\n\n private async loadModels() {\n const modelsResult = await this.identityContext.withoutAuthorization(() => {\n return this.listModelsUseCase.execute();\n });\n\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n\n return modelsResult.value;\n }\n}\n\nexport const FmGraphQLSchema = GraphQLSchemaFactory.createImplementation({\n implementation: FmGraphQLSchemaImpl,\n dependencies: [\n IdentityContext,\n ListModelsUseCase,\n CmsModelFieldToGraphQLRegistry,\n FileModel,\n FileUrlGenerator\n ]\n});\n"],"names":["removeFieldRequiredValidation","field","validation","v","createUpdateFields","fields","collection","FmGraphQLSchemaImpl","identityContext","listModelsUseCase","fieldRegistry","fileModel","fileUrlGenerator","builder","models","fieldTypes","renderFields","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","f","GetSettingsUseCase","getSettings","result","ErrorResponse","Response","UpdateSettingsUseCase","updateSettings","args","FileUrlGenerator","urlGenerator","parent","FileModel","GetFileUseCase","getFile","ListFilesUseCase","listFiles","ListResponse","ListTagsUseCase","listTags","GetFileByUrlUseCase","getFileByUrl","NotFoundResponse","CreateFileUseCase","createFile","CreateFilesInBatchUseCase","createFilesInBatch","UpdateFileUseCase","updateFile","DeleteFileUseCase","deleteFile","modelsResult","FmGraphQLSchema","GraphQLSchemaFactory","IdentityContext","ListModelsUseCase","CmsModelFieldToGraphQLRegistry"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
2
+ declare class FmUploadGraphQLSchema_ implements GraphQLSchemaFactory.Interface {
3
+ execute(builder: GraphQLSchemaFactory.SchemaBuilder): Promise<GraphQLSchemaFactory.SchemaBuilder>;
4
+ private addTypeDefs;
5
+ private addQueryResolvers;
6
+ private addMutationResolvers;
7
+ }
8
+ export declare const FmUploadGraphQLSchema: typeof FmUploadGraphQLSchema_ & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/handler-graphql/graphql/abstractions.public").IGraphQLSchemaFactory>;
10
+ };
11
+ export {};