@webiny/api-file-manager 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7

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 (261) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
  5. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  6. package/delivery/AssetDeliveryRoute.d.ts +24 -0
  7. package/delivery/AssetDeliveryRoute.js +69 -0
  8. package/delivery/AssetDeliveryRoute.js.map +1 -0
  9. package/delivery/setupAssetDelivery.d.ts +1 -1
  10. package/delivery/setupAssetDelivery.js +1 -66
  11. package/delivery/setupAssetDelivery.js.map +1 -1
  12. package/domain/file/abstractions.d.ts +13 -5
  13. package/domain/file/abstractions.js +2 -2
  14. package/domain/file/abstractions.js.map +1 -1
  15. package/domain/file/file.model.d.ts +3 -3
  16. package/domain/file/file.model.js +12 -7
  17. package/domain/file/file.model.js.map +1 -1
  18. package/domain/settings/validation.js +3 -10
  19. package/domain/settings/validation.js.map +1 -1
  20. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  21. package/exports/api/file-manager/assetDelivery.js +8 -0
  22. package/exports/api/file-manager/file.d.ts +2 -1
  23. package/exports/api/file-manager/file.js +2 -1
  24. package/features/FileManagerFeature.js +6 -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/FilesAssetRequestResolver.js +2 -2
  35. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
  36. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  37. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  38. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  39. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  40. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  41. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  42. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  43. package/features/assetDelivery/ObjectKey/index.js +1 -0
  44. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  45. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  46. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  47. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  48. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  49. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  50. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  51. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  52. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  53. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  54. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  55. package/features/assetDelivery/abstractions.d.ts +23 -12
  56. package/features/assetDelivery/abstractions.js.map +1 -1
  57. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  58. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  59. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  60. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  61. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  62. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  63. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  64. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  65. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  66. package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
  67. package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
  68. package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
  69. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  70. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  71. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  72. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  73. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  74. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  75. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  76. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  77. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  78. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  79. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  80. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  81. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  82. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  83. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  84. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  85. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  86. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  87. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  88. package/features/assetDelivery/feature.js +13 -7
  89. package/features/assetDelivery/feature.js.map +1 -1
  90. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +2 -2
  91. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  92. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  93. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  94. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  95. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  96. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +4 -6
  97. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
  98. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  99. package/features/assetDelivery/transformation/index.d.ts +5 -0
  100. package/features/assetDelivery/transformation/index.js +4 -0
  101. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  102. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  103. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  104. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  105. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  106. package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
  107. package/features/file/CreateFile/CreateFileRepository.js +6 -5
  108. package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
  109. package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
  110. package/features/file/DeleteFile/DeleteFileRepository.js +6 -5
  111. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
  112. package/features/file/FileModelProvider.d.ts +31 -0
  113. package/features/file/FileModelProvider.js +22 -0
  114. package/features/file/FileModelProvider.js.map +1 -0
  115. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
  116. package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
  117. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  118. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
  119. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +29 -0
  120. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
  121. package/features/file/FileUrlGenerator/abstractions.d.ts +15 -4
  122. package/features/file/FileUrlGenerator/abstractions.js +3 -2
  123. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  124. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  125. package/features/file/FileUrlGenerator/feature.js +13 -0
  126. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  127. package/features/file/FileUrlGenerator/index.d.ts +2 -0
  128. package/features/file/FileUrlGenerator/index.js +1 -0
  129. package/features/file/GetFile/GetFileRepository.d.ts +3 -3
  130. package/features/file/GetFile/GetFileRepository.js +6 -5
  131. package/features/file/GetFile/GetFileRepository.js.map +1 -1
  132. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  133. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  134. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  135. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  136. package/features/file/GetFileByUrl/abstractions.js +5 -0
  137. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  138. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  139. package/features/file/GetFileByUrl/feature.js +11 -0
  140. package/features/file/GetFileByUrl/feature.js.map +1 -0
  141. package/features/file/GetFileByUrl/index.d.ts +1 -0
  142. package/features/file/GetFileByUrl/index.js +1 -0
  143. package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
  144. package/features/file/ListFiles/ListFilesRepository.js +8 -7
  145. package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
  146. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +15 -5
  147. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +21 -7
  148. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
  149. package/features/file/ListTags/ListTagsRepository.d.ts +3 -3
  150. package/features/file/ListTags/ListTagsRepository.js +7 -6
  151. package/features/file/ListTags/ListTagsRepository.js.map +1 -1
  152. package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
  153. package/features/file/UpdateFile/UpdateFileRepository.js +6 -5
  154. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
  155. package/features/settings/SettingsInstaller/SettingsInstaller.js +1 -4
  156. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  157. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +3 -1
  158. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +10 -2
  159. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
  160. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  161. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  162. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  163. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  164. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  165. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  166. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  167. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  168. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  169. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  170. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  171. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  172. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  173. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  174. package/features/upload/GetUploadPayload/index.js +1 -0
  175. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  176. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  177. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  178. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  179. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  180. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  181. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  182. package/features/upload/ReadFileMetadata/feature.js +11 -0
  183. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  184. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  185. package/features/upload/ReadFileMetadata/index.js +1 -0
  186. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  187. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  188. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  189. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  190. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  191. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  192. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  193. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  194. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  195. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  196. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  197. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  198. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  199. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  200. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  201. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  202. package/features/upload/WriteFileMetadata/feature.js +17 -0
  203. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  204. package/features/upload/index.d.ts +17 -0
  205. package/features/upload/index.js +10 -0
  206. package/features/upload/types.d.ts +28 -0
  207. package/features/upload/types.js +0 -0
  208. package/features/upload/utils/FileExtension.d.ts +6 -0
  209. package/features/upload/utils/FileExtension.js +16 -0
  210. package/features/upload/utils/FileExtension.js.map +1 -0
  211. package/features/upload/utils/FileKey.d.ts +11 -0
  212. package/features/upload/utils/FileKey.js +33 -0
  213. package/features/upload/utils/FileKey.js.map +1 -0
  214. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  215. package/features/upload/utils/FileNormalizer.js +41 -0
  216. package/features/upload/utils/FileNormalizer.js.map +1 -0
  217. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  218. package/features/upload/utils/FileUploadModifier.js +39 -0
  219. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  220. package/features/upload/utils/checkPermissions.d.ts +5 -0
  221. package/features/upload/utils/checkPermissions.js +22 -0
  222. package/features/upload/utils/checkPermissions.js.map +1 -0
  223. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  224. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  225. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  226. package/features/upload/utils/mimeTypes.d.ts +1 -0
  227. package/features/upload/utils/mimeTypes.js +9 -0
  228. package/features/upload/utils/mimeTypes.js.map +1 -0
  229. package/graphql/FmGraphQLSchema.d.ts +24 -0
  230. package/graphql/FmGraphQLSchema.js +459 -0
  231. package/graphql/FmGraphQLSchema.js.map +1 -0
  232. package/index.d.ts +3 -6
  233. package/index.js +3 -32
  234. package/index.js.map +1 -1
  235. package/package.json +23 -17
  236. package/types.d.ts +1 -1
  237. package/types.js +1 -1
  238. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
  239. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
  240. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  241. package/graphql/baseSchema.d.ts +0 -3
  242. package/graphql/baseSchema.js +0 -100
  243. package/graphql/baseSchema.js.map +0 -1
  244. package/graphql/createFilesTypeDefs.d.ts +0 -8
  245. package/graphql/createFilesTypeDefs.js +0 -191
  246. package/graphql/createFilesTypeDefs.js.map +0 -1
  247. package/graphql/filesSchema.d.ts +0 -4
  248. package/graphql/filesSchema.js +0 -96
  249. package/graphql/filesSchema.js.map +0 -1
  250. package/graphql/getFileByUrl.d.ts +0 -3
  251. package/graphql/getFileByUrl.js +0 -61
  252. package/graphql/getFileByUrl.js.map +0 -1
  253. package/graphql/index.d.ts +0 -4
  254. package/graphql/index.js +0 -47
  255. package/graphql/index.js.map +0 -1
  256. package/graphql/utils.d.ts +0 -11
  257. package/graphql/utils.js +0 -12
  258. package/graphql/utils.js.map +0 -1
  259. package/modelModifier/CmsModelModifier.d.ts +0 -26
  260. package/modelModifier/CmsModelModifier.js +0 -51
  261. package/modelModifier/CmsModelModifier.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/FmGraphQLSchema.js","sources":["../../src/graphql/FmGraphQLSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { createModelSchemaKey } from \"@webiny/api-headless-cms/utils/createModelSchemaKey.js\";\nimport { ErrorResponse } from \"@webiny/api-graphql\";\nimport { ListResponse } from \"@webiny/api-graphql\";\nimport { NotFoundResponse } from \"@webiny/api-graphql\";\nimport { Response } from \"@webiny/api-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 { FileModelProvider } 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 FmGraphQLSchema_ 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 fileModelProvider: FileModelProvider.Interface\n ) {}\n\n public async getSchemaKey(): Promise<string> {\n const models = await this.loadModels();\n const fileModel = await this.fileModelProvider.get();\n const modelKey = createModelSchemaKey([fileModel], models);\n return `FileManager:${modelKey}`;\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 fileModel = await this.fileModelProvider.get();\n const { fields } = fileModel;\n\n const fieldTypes = renderFields({\n models,\n model: fileModel,\n fields,\n type: \"manage\",\n fieldRegistry: this.fieldRegistry\n });\n\n const inputCreateFields = renderInputFields({\n models,\n model: fileModel,\n fields,\n fieldRegistry: this.fieldRegistry\n });\n\n const inputUpdateFields = renderInputFields({\n models,\n model: fileModel,\n fields: createUpdateFields(fields),\n fieldRegistry: this.fieldRegistry\n });\n\n const listFilterFieldsRender = renderListFilterFields({\n model: fileModel,\n fields: 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 ({ parent }) => {\n return urlGenerator.generateUrl(parent);\n };\n }\n });\n\n builder.addResolver({\n path: \"FmQuery.getFileModel\",\n dependencies: [FileModelProvider],\n resolver: (fileModelProvider: FileModelProvider.Interface) => {\n return async () => {\n return new Response(await fileModelProvider.get());\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: FmGraphQLSchema_,\n dependencies: [\n IdentityContext,\n ListModelsUseCase,\n CmsModelFieldToGraphQLRegistry,\n FileModelProvider\n ]\n});\n"],"names":["removeFieldRequiredValidation","field","validation","v","createUpdateFields","fields","collection","FmGraphQLSchema_","identityContext","listModelsUseCase","fieldRegistry","fileModelProvider","models","fileModel","modelKey","createModelSchemaKey","builder","fieldTypes","renderFields","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","f","GetSettingsUseCase","getSettings","result","ErrorResponse","Response","UpdateSettingsUseCase","updateSettings","args","FileUrlGenerator","urlGenerator","parent","FileModelProvider","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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"}
package/index.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
2
- import { ContextPlugin } from "@webiny/api";
3
- export * from "./modelModifier/CmsModelModifier.js";
4
1
  export * from "./delivery/index.js";
5
- export declare const createFileManagerContext: () => (ContextPlugin<ApiCoreContext> | import("@webiny/handler").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>)[];
6
- export declare const createFileManagerGraphQL: () => (import("@webiny/handler-graphql/index.js").GraphQLSchemaPlugin<ApiCoreContext> | ContextPlugin<ApiCoreContext>)[];
7
- export declare const createAssetDelivery: () => (import("@webiny/handler").ModifyFastifyPlugin | import("@webiny/handler").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>)[];
2
+ export declare const createAssetDelivery: () => import("@webiny/handler").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>[];
3
+ export { FileManagerAppFeature } from "./FileManagerAppFeature.js";
4
+ export { AssetDeliveryRoute } from "./delivery/AssetDeliveryRoute.js";
package/index.js CHANGED
@@ -1,44 +1,15 @@
1
- import { ContextPlugin } from "@webiny/api";
2
1
  import { setupAssetDelivery } from "./delivery/setupAssetDelivery.js";
3
- import { createGraphQLSchemaPlugin } from "./graphql/index.js";
4
- import { FileManagerFeature } from "./features/FileManagerFeature.js";
5
- import { FmPermissionsFeature } from "./features/permissions/feature.js";
6
- import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
7
- import { FileModel } from "./domain/file/abstractions.js";
8
- import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
9
- import { FILE_MODEL_ID, FileModel as file_model_js_FileModel } from "./domain/file/file.model.js";
10
2
  import { createRegisterExtensionPlugin } from "@webiny/handler";
11
3
  import { AssetDeliveryFeature } from "./features/assetDelivery/feature.js";
12
- export * from "./modelModifier/CmsModelModifier.js";
13
4
  export * from "./delivery/index.js";
14
- const createFileManagerContext = ()=>{
15
- const fileManagerContextPlugin = new ContextPlugin(async (context)=>{
16
- const tenantContext = context.container.resolve(TenantContext);
17
- const getModel = context.container.resolve(GetModelUseCase);
18
- if (!tenantContext.getTenant()) return;
19
- await context.security.withoutAuthorization(async ()=>{
20
- const fileModel = await getModel.execute(FILE_MODEL_ID);
21
- context.container.registerInstance(FileModel, fileModel.value);
22
- });
23
- FmPermissionsFeature.register(context.container);
24
- FileManagerFeature.register(context.container);
25
- });
26
- fileManagerContextPlugin.name = "file-manager.createContext";
27
- const modelsPlugin = createRegisterExtensionPlugin((context)=>{
28
- context.container.register(file_model_js_FileModel);
29
- });
30
- return [
31
- fileManagerContextPlugin,
32
- modelsPlugin
33
- ];
34
- };
35
- const createFileManagerGraphQL = ()=>createGraphQLSchemaPlugin();
36
5
  const createAssetDelivery = ()=>[
37
6
  createRegisterExtensionPlugin((context)=>{
38
7
  AssetDeliveryFeature.register(context.container);
39
8
  }),
40
9
  ...setupAssetDelivery()
41
10
  ];
42
- export { createAssetDelivery, createFileManagerContext, createFileManagerGraphQL };
11
+ export { FileManagerAppFeature } from "./FileManagerAppFeature.js";
12
+ export { AssetDeliveryRoute } from "./delivery/AssetDeliveryRoute.js";
13
+ export { createAssetDelivery };
43
14
 
44
15
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { setupAssetDelivery } from \"./delivery/setupAssetDelivery.js\";\nimport { createGraphQLSchemaPlugin } from \"./graphql/index.js\";\nimport { FileManagerFeature } from \"~/features/FileManagerFeature.js\";\nimport { FmPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { FileModel as FileModelAbstraction } from \"~/domain/file/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { FileModel, FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\nimport { createRegisterExtensionPlugin } from \"@webiny/handler\";\nimport { AssetDeliveryFeature } from \"~/features/assetDelivery/feature.js\";\n\nexport * from \"./modelModifier/CmsModelModifier.js\";\nexport * from \"./delivery/index.js\";\n\nexport const createFileManagerContext = () => {\n const fileManagerContextPlugin = new ContextPlugin<ApiCoreContext>(async context => {\n const tenantContext = context.container.resolve(TenantContext);\n const getModel = context.container.resolve(GetModelUseCase);\n\n if (!tenantContext.getTenant()) {\n return;\n }\n\n await context.security.withoutAuthorization(async () => {\n const fileModel = await getModel.execute(FILE_MODEL_ID);\n context.container.registerInstance(FileModelAbstraction, fileModel.value);\n });\n\n FmPermissionsFeature.register(context.container);\n FileManagerFeature.register(context.container);\n });\n\n fileManagerContextPlugin.name = \"file-manager.createContext\";\n\n const modelsPlugin = createRegisterExtensionPlugin(context => {\n context.container.register(FileModel);\n });\n\n return [fileManagerContextPlugin, modelsPlugin];\n};\n\nexport const createFileManagerGraphQL = () => {\n return createGraphQLSchemaPlugin();\n};\n\nexport const createAssetDelivery = () => {\n return [\n createRegisterExtensionPlugin(context => {\n AssetDeliveryFeature.register(context.container);\n }),\n ...setupAssetDelivery()\n ];\n};\n"],"names":["createFileManagerContext","fileManagerContextPlugin","ContextPlugin","context","tenantContext","TenantContext","getModel","GetModelUseCase","fileModel","FILE_MODEL_ID","FileModelAbstraction","FmPermissionsFeature","FileManagerFeature","modelsPlugin","createRegisterExtensionPlugin","FileModel","createFileManagerGraphQL","createGraphQLSchemaPlugin","createAssetDelivery","AssetDeliveryFeature","setupAssetDelivery"],"mappings":";;;;;;;;;;;;;AAgBO,MAAMA,2BAA2B;IACpC,MAAMC,2BAA2B,IAAIC,cAA8B,OAAMC;QACrE,MAAMC,gBAAgBD,QAAQ,SAAS,CAAC,OAAO,CAACE;QAChD,MAAMC,WAAWH,QAAQ,SAAS,CAAC,OAAO,CAACI;QAE3C,IAAI,CAACH,cAAc,SAAS,IACxB;QAGJ,MAAMD,QAAQ,QAAQ,CAAC,oBAAoB,CAAC;YACxC,MAAMK,YAAY,MAAMF,SAAS,OAAO,CAACG;YACzCN,QAAQ,SAAS,CAAC,gBAAgB,CAACO,WAAsBF,UAAU,KAAK;QAC5E;QAEAG,qBAAqB,QAAQ,CAACR,QAAQ,SAAS;QAC/CS,mBAAmB,QAAQ,CAACT,QAAQ,SAAS;IACjD;IAEAF,yBAAyB,IAAI,GAAG;IAEhC,MAAMY,eAAeC,8BAA8BX,CAAAA;QAC/CA,QAAQ,SAAS,CAAC,QAAQ,CAACY;IAC/B;IAEA,OAAO;QAACd;QAA0BY;KAAa;AACnD;AAEO,MAAMG,2BAA2B,IAC7BC;AAGJ,MAAMC,sBAAsB,IACxB;QACHJ,8BAA8BX,CAAAA;YAC1BgB,qBAAqB,QAAQ,CAAChB,QAAQ,SAAS;QACnD;WACGiB;KACN"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { setupAssetDelivery } from \"./delivery/setupAssetDelivery.js\";\nimport { createRegisterExtensionPlugin } from \"@webiny/handler\";\nimport { AssetDeliveryFeature } from \"~/features/assetDelivery/feature.js\";\n\nexport * from \"./delivery/index.js\";\n\nexport const createAssetDelivery = () => {\n return [\n createRegisterExtensionPlugin(context => {\n AssetDeliveryFeature.register(context.container);\n }),\n ...setupAssetDelivery()\n ];\n};\n\nexport { FileManagerAppFeature } from \"./FileManagerAppFeature.js\";\nexport { AssetDeliveryRoute } from \"./delivery/AssetDeliveryRoute.js\";\n"],"names":["createAssetDelivery","createRegisterExtensionPlugin","context","AssetDeliveryFeature","setupAssetDelivery"],"mappings":";;;;AAMO,MAAMA,sBAAsB,IACxB;QACHC,8BAA8BC,CAAAA;YAC1BC,qBAAqB,QAAQ,CAACD,QAAQ,SAAS;QACnD;WACGE;KACN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager",
3
- "version": "0.0.0-unstable.7be00a75a9",
3
+ "version": "0.0.0-unstable.7c2def32a7",
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": "0.0.0-unstable.7be00a75a9",
26
- "@webiny/api-core": "0.0.0-unstable.7be00a75a9",
27
- "@webiny/api-headless-cms": "0.0.0-unstable.7be00a75a9",
28
- "@webiny/build-tools": "0.0.0-unstable.7be00a75a9",
29
- "@webiny/error": "0.0.0-unstable.7be00a75a9",
30
- "@webiny/feature": "0.0.0-unstable.7be00a75a9",
31
- "@webiny/handler": "0.0.0-unstable.7be00a75a9",
32
- "@webiny/handler-graphql": "0.0.0-unstable.7be00a75a9",
33
- "@webiny/plugins": "0.0.0-unstable.7be00a75a9",
34
- "@webiny/tasks": "0.0.0-unstable.7be00a75a9",
35
- "@webiny/wcp": "0.0.0-unstable.7be00a75a9",
25
+ "@webiny/api": "0.0.0-unstable.7c2def32a7",
26
+ "@webiny/api-core": "0.0.0-unstable.7c2def32a7",
27
+ "@webiny/api-graphql": "0.0.0-unstable.7c2def32a7",
28
+ "@webiny/api-headless-cms": "0.0.0-unstable.7c2def32a7",
29
+ "@webiny/background-tasks": "0.0.0-unstable.7c2def32a7",
30
+ "@webiny/build-tools": "0.0.0-unstable.7c2def32a7",
31
+ "@webiny/di": "2.0.0",
32
+ "@webiny/error": "0.0.0-unstable.7c2def32a7",
33
+ "@webiny/event-handler-core": "0.0.0-unstable.7c2def32a7",
34
+ "@webiny/feature": "0.0.0-unstable.7c2def32a7",
35
+ "@webiny/handler": "0.0.0-unstable.7c2def32a7",
36
+ "@webiny/plugins": "0.0.0-unstable.7c2def32a7",
37
+ "@webiny/wcp": "0.0.0-unstable.7c2def32a7",
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/handler-aws": "0.0.0-unstable.7be00a75a9",
42
- "@webiny/project-utils": "0.0.0-unstable.7be00a75a9",
43
- "@webiny/utils": "0.0.0-unstable.7be00a75a9",
44
- "@webiny/wcp": "0.0.0-unstable.7be00a75a9",
48
+ "@webiny/api-core-testing": "0.0.0-unstable.7c2def32a7",
49
+ "@webiny/utils": "0.0.0-unstable.7c2def32a7",
50
+ "@webiny/wcp": "0.0.0-unstable.7c2def32a7",
45
51
  "rimraf": "6.1.3",
46
- "typescript": "6.0.3"
52
+ "typescript": "7.0.2"
47
53
  },
48
54
  "publishConfig": {
49
55
  "access": "public"
package/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import "@webiny/tasks/features/TaskController/augmentation.js";
1
+ import "@webiny/background-tasks/api/features/TaskController/augmentation.js";
2
2
  import type { SecurityPermission } from "@webiny/api-core/types/security.js";
3
3
  export interface FilePermission extends SecurityPermission {
4
4
  name: "fm.file";
package/types.js CHANGED
@@ -1 +1 @@
1
- import "@webiny/tasks/features/TaskController/augmentation.js";
1
+ import "@webiny/background-tasks/api/features/TaskController/augmentation.js";
@@ -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"}
@@ -1,3 +0,0 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
- import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
3
- export declare const createBaseSchema: () => GraphQLSchemaPlugin<ApiCoreContext>;
@@ -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"}
@@ -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>;