@webiny/api-file-manager 6.3.0 → 6.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/contants.js +2 -1
  2. package/contants.js.map +1 -1
  3. package/delivery/AssetDelivery/Asset.js +50 -56
  4. package/delivery/AssetDelivery/Asset.js.map +1 -1
  5. package/delivery/AssetDelivery/AssetDeliveryConfig.js +70 -83
  6. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -1
  7. package/delivery/AssetDelivery/AssetRequest.js +20 -19
  8. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  9. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +19 -25
  10. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -1
  11. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +5 -4
  12. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -1
  13. package/delivery/AssetDelivery/NullAssetReply.js +10 -9
  14. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -1
  15. package/delivery/AssetDelivery/NullAssetResolver.js +5 -4
  16. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -1
  17. package/delivery/AssetDelivery/NullRequestResolver.js +5 -4
  18. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -1
  19. package/delivery/AssetDelivery/SetCacheControlHeaders.js +11 -14
  20. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -1
  21. package/delivery/AssetDelivery/SetResponseHeaders.js +16 -15
  22. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -1
  23. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -3
  24. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -3
  25. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -3
  26. package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -27
  27. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  28. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -3
  29. package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -3
  30. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -3
  31. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -5
  32. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  33. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -3
  34. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +15 -14
  35. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -1
  36. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +5 -4
  37. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  38. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +14 -16
  39. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  40. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +18 -17
  41. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -1
  42. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +21 -25
  43. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  44. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +44 -51
  45. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  46. package/delivery/AssetDelivery/privateFiles/PublicCache.js +18 -17
  47. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -1
  48. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +16 -15
  49. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  50. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +16 -15
  51. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  52. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +5 -4
  53. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -1
  54. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +5 -4
  55. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -1
  56. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +12 -15
  57. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  58. package/delivery/index.js +0 -2
  59. package/delivery/setupAssetDelivery.js +70 -101
  60. package/delivery/setupAssetDelivery.js.map +1 -1
  61. package/domain/file/abstractions.js +2 -5
  62. package/domain/file/abstractions.js.map +1 -1
  63. package/domain/file/errors.js +67 -76
  64. package/domain/file/errors.js.map +1 -1
  65. package/domain/file/file.model.js +57 -49
  66. package/domain/file/file.model.js.map +1 -1
  67. package/domain/file/types.js +0 -3
  68. package/domain/identity/Identity.js +9 -8
  69. package/domain/identity/Identity.js.map +1 -1
  70. package/domain/permissionsSchema.js +26 -15
  71. package/domain/permissionsSchema.js.map +1 -1
  72. package/domain/settings/constants.js +2 -1
  73. package/domain/settings/constants.js.map +1 -1
  74. package/domain/settings/errors.js +22 -24
  75. package/domain/settings/errors.js.map +1 -1
  76. package/domain/settings/types.js +0 -3
  77. package/domain/settings/validation.js +18 -27
  78. package/domain/settings/validation.js.map +1 -1
  79. package/exports/api/file-manager/file.js +0 -2
  80. package/exports/api/file-manager/permissions.js +0 -2
  81. package/exports/api/file-manager/settings.js +0 -2
  82. package/features/FileManagerFeature.js +16 -15
  83. package/features/FileManagerFeature.js.map +1 -1
  84. package/features/file/CreateFile/CreateFileRepository.js +20 -18
  85. package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
  86. package/features/file/CreateFile/CreateFileUseCase.js +68 -75
  87. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -1
  88. package/features/file/CreateFile/abstractions.js +3 -14
  89. package/features/file/CreateFile/abstractions.js.map +1 -1
  90. package/features/file/CreateFile/events.js +17 -26
  91. package/features/file/CreateFile/events.js.map +1 -1
  92. package/features/file/CreateFile/feature.js +7 -6
  93. package/features/file/CreateFile/feature.js.map +1 -1
  94. package/features/file/CreateFile/index.js +0 -2
  95. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +15 -17
  96. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -1
  97. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +59 -70
  98. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -1
  99. package/features/file/CreateFilesInBatch/abstractions.js +3 -14
  100. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -1
  101. package/features/file/CreateFilesInBatch/events.js +17 -26
  102. package/features/file/CreateFilesInBatch/events.js.map +1 -1
  103. package/features/file/CreateFilesInBatch/feature.js +7 -6
  104. package/features/file/CreateFilesInBatch/feature.js.map +1 -1
  105. package/features/file/CreateFilesInBatch/index.js +0 -2
  106. package/features/file/DeleteFile/DeleteFileRepository.js +21 -20
  107. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
  108. package/features/file/DeleteFile/DeleteFileUseCase.js +31 -33
  109. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -1
  110. package/features/file/DeleteFile/abstractions.js +3 -14
  111. package/features/file/DeleteFile/abstractions.js.map +1 -1
  112. package/features/file/DeleteFile/events.js +17 -26
  113. package/features/file/DeleteFile/events.js.map +1 -1
  114. package/features/file/DeleteFile/feature.js +7 -6
  115. package/features/file/DeleteFile/feature.js.map +1 -1
  116. package/features/file/DeleteFile/index.js +1 -3
  117. package/features/file/FileUrlGenerator/abstractions.js +2 -2
  118. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  119. package/features/file/GetFile/GetFileRepository.js +22 -22
  120. package/features/file/GetFile/GetFileRepository.js.map +1 -1
  121. package/features/file/GetFile/GetFileUseCase.js +19 -21
  122. package/features/file/GetFile/GetFileUseCase.js.map +1 -1
  123. package/features/file/GetFile/abstractions.js +3 -14
  124. package/features/file/GetFile/abstractions.js.map +1 -1
  125. package/features/file/GetFile/feature.js +7 -6
  126. package/features/file/GetFile/feature.js.map +1 -1
  127. package/features/file/GetFile/index.js +0 -2
  128. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  129. package/features/file/GetFileContentsById/abstractions.js +5 -0
  130. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  131. package/features/file/GetFileContentsById/index.d.ts +1 -0
  132. package/features/file/GetFileContentsById/index.js +1 -0
  133. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  134. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  135. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  136. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  137. package/features/file/GetFileContentsByKey/index.js +1 -0
  138. package/features/file/ListFiles/ListFilesRepository.js +42 -40
  139. package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
  140. package/features/file/ListFiles/ListFilesUseCase.js +33 -34
  141. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -1
  142. package/features/file/ListFiles/abstractions.js +3 -14
  143. package/features/file/ListFiles/abstractions.js.map +1 -1
  144. package/features/file/ListFiles/feature.js +7 -6
  145. package/features/file/ListFiles/feature.js.map +1 -1
  146. package/features/file/ListFiles/index.js +0 -2
  147. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +31 -28
  148. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
  149. package/features/file/ListImagesByTagTool/feature.js +6 -5
  150. package/features/file/ListImagesByTagTool/feature.js.map +1 -1
  151. package/features/file/ListTags/ListTagsRepository.js +31 -36
  152. package/features/file/ListTags/ListTagsRepository.js.map +1 -1
  153. package/features/file/ListTags/ListTagsUseCase.js +21 -21
  154. package/features/file/ListTags/ListTagsUseCase.js.map +1 -1
  155. package/features/file/ListTags/abstractions.js +3 -14
  156. package/features/file/ListTags/abstractions.js.map +1 -1
  157. package/features/file/ListTags/feature.js +7 -6
  158. package/features/file/ListTags/feature.js.map +1 -1
  159. package/features/file/ListTags/index.js +0 -2
  160. package/features/file/UpdateFile/UpdateFileRepository.js +26 -28
  161. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
  162. package/features/file/UpdateFile/UpdateFileUseCase.js +57 -65
  163. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -1
  164. package/features/file/UpdateFile/abstractions.js +3 -14
  165. package/features/file/UpdateFile/abstractions.js.map +1 -1
  166. package/features/file/UpdateFile/events.js +17 -26
  167. package/features/file/UpdateFile/events.js.map +1 -1
  168. package/features/file/UpdateFile/feature.js +7 -6
  169. package/features/file/UpdateFile/feature.js.map +1 -1
  170. package/features/file/UpdateFile/index.js +1 -3
  171. package/features/file/shared/EntryToFileMapper.js +25 -24
  172. package/features/file/shared/EntryToFileMapper.js.map +1 -1
  173. package/features/file/shared/FileInputToEntryInputMapper.js +29 -28
  174. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -1
  175. package/features/file/shared/FileToEntryMapper.js +28 -27
  176. package/features/file/shared/FileToEntryMapper.js.map +1 -1
  177. package/features/permissions/abstractions.js +2 -1
  178. package/features/permissions/abstractions.js.map +1 -1
  179. package/features/permissions/feature.js +2 -1
  180. package/features/permissions/feature.js.map +1 -1
  181. package/features/settings/GetSettings/GetSettingsUseCase.js +19 -19
  182. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -1
  183. package/features/settings/GetSettings/abstractions.js +2 -7
  184. package/features/settings/GetSettings/abstractions.js.map +1 -1
  185. package/features/settings/GetSettings/feature.js +6 -5
  186. package/features/settings/GetSettings/feature.js.map +1 -1
  187. package/features/settings/SettingsInstaller/SettingsInstaller.js +25 -24
  188. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  189. package/features/settings/SettingsInstaller/feature.js +6 -5
  190. package/features/settings/SettingsInstaller/feature.js.map +1 -1
  191. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +41 -48
  192. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
  193. package/features/settings/UpdateSettings/abstractions.js +2 -7
  194. package/features/settings/UpdateSettings/abstractions.js.map +1 -1
  195. package/features/settings/UpdateSettings/events.js +17 -26
  196. package/features/settings/UpdateSettings/events.js.map +1 -1
  197. package/features/settings/UpdateSettings/feature.js +6 -5
  198. package/features/settings/UpdateSettings/feature.js.map +1 -1
  199. package/features/settings/UpdateSettings/index.js +0 -2
  200. package/features/shared/abstractions.js +0 -2
  201. package/graphql/baseSchema.js +30 -33
  202. package/graphql/baseSchema.js.map +1 -1
  203. package/graphql/createFilesTypeDefs.js +49 -57
  204. package/graphql/createFilesTypeDefs.js.map +1 -1
  205. package/graphql/filesSchema.js +79 -99
  206. package/graphql/filesSchema.js.map +1 -1
  207. package/graphql/getFileByUrl.js +45 -53
  208. package/graphql/getFileByUrl.js.map +1 -1
  209. package/graphql/index.js +35 -42
  210. package/graphql/index.js.map +1 -1
  211. package/graphql/utils.js +9 -14
  212. package/graphql/utils.js.map +1 -1
  213. package/index.d.ts +2 -2
  214. package/index.js +25 -30
  215. package/index.js.map +1 -1
  216. package/modelModifier/CmsModelModifier.js +40 -43
  217. package/modelModifier/CmsModelModifier.js.map +1 -1
  218. package/package.json +18 -21
  219. package/types.js +0 -2
  220. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
  221. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
  222. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
  223. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
  224. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
  225. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
  226. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
  227. package/delivery/index.js.map +0 -1
  228. package/domain/file/types.js.map +0 -1
  229. package/domain/settings/types.js.map +0 -1
  230. package/exports/api/file-manager/file.js.map +0 -1
  231. package/exports/api/file-manager/permissions.js.map +0 -1
  232. package/exports/api/file-manager/settings.js.map +0 -1
  233. package/features/ai/AiImageEnrichmentAfterCreateHandler.d.ts +0 -11
  234. package/features/ai/AiImageEnrichmentAfterCreateHandler.js +0 -28
  235. package/features/ai/AiImageEnrichmentAfterCreateHandler.js.map +0 -1
  236. package/features/ai/AiImageEnrichmentFeature.d.ts +0 -4
  237. package/features/ai/AiImageEnrichmentFeature.js +0 -12
  238. package/features/ai/AiImageEnrichmentFeature.js.map +0 -1
  239. package/features/file/CreateFile/index.js.map +0 -1
  240. package/features/file/CreateFilesInBatch/index.js.map +0 -1
  241. package/features/file/DeleteFile/index.js.map +0 -1
  242. package/features/file/GetFile/index.js.map +0 -1
  243. package/features/file/ListFiles/index.js.map +0 -1
  244. package/features/file/ListTags/index.js.map +0 -1
  245. package/features/file/UpdateFile/index.js.map +0 -1
  246. package/features/settings/UpdateSettings/index.js.map +0 -1
  247. package/features/shared/abstractions.js.map +0 -1
  248. package/tasks/AiImageEnrichmentTask.d.ts +0 -35
  249. package/tasks/AiImageEnrichmentTask.js +0 -136
  250. package/tasks/AiImageEnrichmentTask.js.map +0 -1
  251. package/types.js.map +0 -1
package/graphql/index.js CHANGED
@@ -8,47 +8,40 @@ import { getFileByUrl } from "./getFileByUrl.js";
8
8
  import { FileModel } from "../domain/file/abstractions.js";
9
9
  import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
10
10
  import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
11
- export const createGraphQLSchemaPlugin = () => {
12
- return [createBaseSchema(),
13
- // Files schema is generated dynamically, based on a CMS model, so we need to
14
- // register it from a ContextPlugin, to perform additional bootstrap.
15
- new ContextPlugin(async context => {
16
- const tenantContext = context.container.resolve(TenantContext);
17
- if (!tenantContext.getTenant()) {
18
- return;
19
- }
20
- const fileModel = context.container.resolve(FileModel);
21
- const listModels = context.container.resolve(ListModelsUseCase);
22
- const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);
23
- await context.security.withoutAuthorization(async () => {
24
- const modelsResult = await listModels.execute();
25
- const models = modelsResult.value;
26
-
27
- /**
28
- * We need to register all plugins for all the CMS fields.
29
- */
30
- const plugins = createGraphQLSchemaPluginFromFieldPlugins({
31
- models,
32
- type: "manage",
33
- fieldRegistry,
34
- createPlugin: ({
35
- schema,
36
- type,
37
- fieldType
38
- }) => {
39
- const plugin = new GraphQLSchemaPlugin(schema);
40
- plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;
41
- return plugin;
42
- }
43
- });
44
- const graphQlPlugin = createFilesSchema({
45
- model: fileModel,
46
- models,
47
- fieldRegistry
48
- });
49
- context.plugins.register([...plugins, graphQlPlugin, getFileByUrl()]);
50
- });
51
- })];
52
- };
11
+ const createGraphQLSchemaPlugin = ()=>[
12
+ createBaseSchema(),
13
+ new ContextPlugin(async (context)=>{
14
+ const tenantContext = context.container.resolve(TenantContext);
15
+ if (!tenantContext.getTenant()) return;
16
+ const fileModel = context.container.resolve(FileModel);
17
+ const listModels = context.container.resolve(ListModelsUseCase);
18
+ const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);
19
+ await context.security.withoutAuthorization(async ()=>{
20
+ const modelsResult = await listModels.execute();
21
+ const models = modelsResult.value;
22
+ const plugins = createGraphQLSchemaPluginFromFieldPlugins({
23
+ models,
24
+ type: "manage",
25
+ fieldRegistry,
26
+ createPlugin: ({ schema, type, fieldType })=>{
27
+ const plugin = new GraphQLSchemaPlugin(schema);
28
+ plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;
29
+ return plugin;
30
+ }
31
+ });
32
+ const graphQlPlugin = createFilesSchema({
33
+ model: fileModel,
34
+ models,
35
+ fieldRegistry
36
+ });
37
+ context.plugins.register([
38
+ ...plugins,
39
+ graphQlPlugin,
40
+ getFileByUrl()
41
+ ]);
42
+ });
43
+ })
44
+ ];
45
+ export { createGraphQLSchemaPlugin };
53
46
 
54
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ContextPlugin","GraphQLSchemaPlugin","ListModelsUseCase","createGraphQLSchemaPluginFromFieldPlugins","createBaseSchema","createFilesSchema","getFileByUrl","FileModel","TenantContext","CmsModelFieldToGraphQLRegistry","createGraphQLSchemaPlugin","context","tenantContext","container","resolve","getTenant","fileModel","listModels","fieldRegistry","security","withoutAuthorization","modelsResult","execute","models","value","plugins","type","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","model","register"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins.js\";\nimport { createBaseSchema } from \"~/graphql/baseSchema.js\";\nimport { createFilesSchema } from \"~/graphql/filesSchema.js\";\nimport { getFileByUrl } from \"~/graphql/getFileByUrl.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\nexport const createGraphQLSchemaPlugin = () => {\n return [\n createBaseSchema(),\n // Files schema is generated dynamically, based on a CMS model, so we need to\n // register it from a ContextPlugin, to perform additional bootstrap.\n new ContextPlugin<ApiCoreContext>(async context => {\n const tenantContext = context.container.resolve(TenantContext);\n if (!tenantContext.getTenant()) {\n return;\n }\n\n const fileModel = context.container.resolve(FileModel);\n const listModels = context.container.resolve(ListModelsUseCase);\n const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n await context.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute();\n const models = modelsResult.value;\n\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldRegistry,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFilesSchema({\n model: fileModel,\n models,\n fieldRegistry\n });\n\n context.plugins.register([...plugins, graphQlPlugin, getFileByUrl()]);\n });\n })\n ];\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,aAAa;AAE3C,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,yCAAyC,QAAQ,6DAA6D;AACvH,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,SAAS;AAClB,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASC,8BAA8B,QAAQ,qDAAqD;AAEpG,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,CACHN,gBAAgB,CAAC,CAAC;EAClB;EACA;EACA,IAAIJ,aAAa,CAAiB,MAAMW,OAAO,IAAI;IAC/C,MAAMC,aAAa,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACN,aAAa,CAAC;IAC9D,IAAI,CAACI,aAAa,CAACG,SAAS,CAAC,CAAC,EAAE;MAC5B;IACJ;IAEA,MAAMC,SAAS,GAAGL,OAAO,CAACE,SAAS,CAACC,OAAO,CAACP,SAAS,CAAC;IACtD,MAAMU,UAAU,GAAGN,OAAO,CAACE,SAAS,CAACC,OAAO,CAACZ,iBAAiB,CAAC;IAC/D,MAAMgB,aAAa,GAAGP,OAAO,CAACE,SAAS,CAACC,OAAO,CAACL,8BAA8B,CAAC;IAE/E,MAAME,OAAO,CAACQ,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACpD,MAAMC,YAAY,GAAG,MAAMJ,UAAU,CAACK,OAAO,CAAC,CAAC;MAC/C,MAAMC,MAAM,GAAGF,YAAY,CAACG,KAAK;;MAEjC;AAChB;AACA;MACgB,MAAMC,OAAO,GAAGtB,yCAAyC,CAAC;QACtDoB,MAAM;QACNG,IAAI,EAAE,QAAQ;QACdR,aAAa;QACbS,YAAY,EAAEA,CAAC;UAAEC,MAAM;UAAEF,IAAI;UAAEG;QAAU,CAAC,KAAK;UAC3C,MAAMC,MAAM,GAAG,IAAI7B,mBAAmB,CAAC2B,MAAM,CAAC;UAC9CE,MAAM,CAACC,IAAI,GAAG,qBAAqBL,IAAI,UAAUG,SAAS,EAAE;UAC5D,OAAOC,MAAM;QACjB;MACJ,CAAC,CAAC;MAEF,MAAME,aAAa,GAAG3B,iBAAiB,CAAC;QACpC4B,KAAK,EAAEjB,SAAS;QAChBO,MAAM;QACNL;MACJ,CAAC,CAAC;MAEFP,OAAO,CAACc,OAAO,CAACS,QAAQ,CAAC,CAAC,GAAGT,OAAO,EAAEO,aAAa,EAAE1B,YAAY,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;EACN,CAAC,CAAC,CACL;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/index.js","sources":["../../src/graphql/index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins.js\";\nimport { createBaseSchema } from \"~/graphql/baseSchema.js\";\nimport { createFilesSchema } from \"~/graphql/filesSchema.js\";\nimport { getFileByUrl } from \"~/graphql/getFileByUrl.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\nexport const createGraphQLSchemaPlugin = () => {\n return [\n createBaseSchema(),\n // Files schema is generated dynamically, based on a CMS model, so we need to\n // register it from a ContextPlugin, to perform additional bootstrap.\n new ContextPlugin<ApiCoreContext>(async context => {\n const tenantContext = context.container.resolve(TenantContext);\n if (!tenantContext.getTenant()) {\n return;\n }\n\n const fileModel = context.container.resolve(FileModel);\n const listModels = context.container.resolve(ListModelsUseCase);\n const fieldRegistry = context.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n await context.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute();\n const models = modelsResult.value;\n\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldRegistry,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFilesSchema({\n model: fileModel,\n models,\n fieldRegistry\n });\n\n context.plugins.register([...plugins, graphQlPlugin, getFileByUrl()]);\n });\n })\n ];\n};\n"],"names":["createGraphQLSchemaPlugin","createBaseSchema","ContextPlugin","context","tenantContext","TenantContext","fileModel","FileModel","listModels","ListModelsUseCase","fieldRegistry","CmsModelFieldToGraphQLRegistry","modelsResult","models","plugins","createGraphQLSchemaPluginFromFieldPlugins","schema","type","fieldType","plugin","GraphQLSchemaPlugin","graphQlPlugin","createFilesSchema","getFileByUrl"],"mappings":";;;;;;;;;;AAYO,MAAMA,4BAA4B,IAC9B;QACHC;QAGA,IAAIC,cAA8B,OAAMC;YACpC,MAAMC,gBAAgBD,QAAQ,SAAS,CAAC,OAAO,CAACE;YAChD,IAAI,CAACD,cAAc,SAAS,IACxB;YAGJ,MAAME,YAAYH,QAAQ,SAAS,CAAC,OAAO,CAACI;YAC5C,MAAMC,aAAaL,QAAQ,SAAS,CAAC,OAAO,CAACM;YAC7C,MAAMC,gBAAgBP,QAAQ,SAAS,CAAC,OAAO,CAACQ;YAEhD,MAAMR,QAAQ,QAAQ,CAAC,oBAAoB,CAAC;gBACxC,MAAMS,eAAe,MAAMJ,WAAW,OAAO;gBAC7C,MAAMK,SAASD,aAAa,KAAK;gBAKjC,MAAME,UAAUC,0CAA0C;oBACtDF;oBACA,MAAM;oBACNH;oBACA,cAAc,CAAC,EAAEM,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE;wBACtC,MAAMC,SAAS,IAAIC,oBAAoBJ;wBACvCG,OAAO,IAAI,GAAG,CAAC,kBAAkB,EAAEF,KAAK,OAAO,EAAEC,WAAW;wBAC5D,OAAOC;oBACX;gBACJ;gBAEA,MAAME,gBAAgBC,kBAAkB;oBACpC,OAAOhB;oBACPO;oBACAH;gBACJ;gBAEAP,QAAQ,OAAO,CAAC,QAAQ,CAAC;uBAAIW;oBAASO;oBAAeE;iBAAe;YACxE;QACJ;KACH"}
package/graphql/utils.js CHANGED
@@ -1,17 +1,12 @@
1
- import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
- export const emptyResolver = () => ({});
3
-
4
- /**
5
- * Use any because it really can be any.
6
- * TODO @ts-refactor maybe use generics at some point?
7
- */
8
-
9
- export const resolve = async fn => {
10
- try {
11
- return new Response(await fn());
12
- } catch (e) {
13
- return new ErrorResponse(e);
14
- }
1
+ import { ErrorResponse, Response } from "@webiny/handler-graphql";
2
+ const emptyResolver = ()=>({});
3
+ const resolve = async (fn)=>{
4
+ try {
5
+ return new Response(await fn());
6
+ } catch (e) {
7
+ return new ErrorResponse(e);
8
+ }
15
9
  };
10
+ export { emptyResolver, resolve };
16
11
 
17
12
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Response","ErrorResponse","emptyResolver","resolve","fn","e"],"sources":["utils.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport const emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nexport const resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,yBAAyB;AAEjE,OAAO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;;AAEvC;AACA;AACA;AACA;;AAKA,OAAO,MAAMC,OAAO,GAAG,MAAOC,EAAmB,IAAK;EAClD,IAAI;IACA,OAAO,IAAIJ,QAAQ,CAAC,MAAMI,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACR,OAAO,IAAIJ,aAAa,CAACI,CAAC,CAAC;EAC/B;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/utils.js","sources":["../../src/graphql/utils.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport const emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nexport const resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","e","ErrorResponse"],"mappings":";AAEO,MAAMA,gBAAgB,IAAO,EAAC;AAU9B,MAAMC,UAAU,OAAOC;IAC1B,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,GAAG;QACR,OAAO,IAAIC,cAAcD;IAC7B;AACJ"}
package/index.d.ts CHANGED
@@ -2,6 +2,6 @@ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
2
2
  import { ContextPlugin } from "@webiny/api";
3
3
  export * from "./modelModifier/CmsModelModifier.js";
4
4
  export * from "./delivery/index.js";
5
- export declare const createFileManagerContext: () => ContextPlugin<ApiCoreContext>;
5
+ export declare const createFileManagerContext: () => (ContextPlugin<ApiCoreContext> | import("@webiny/handler").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>)[];
6
6
  export declare const createFileManagerGraphQL: () => (import("@webiny/handler-graphql/index.js").GraphQLSchemaPlugin<ApiCoreContext> | ContextPlugin<ApiCoreContext>)[];
7
- export declare const createAssetDelivery: () => (import("./index.js").AssetDeliveryConfigModifierPlugin | import("@webiny/handler/index.js").ModifyFastifyPlugin)[];
7
+ export declare const createAssetDelivery: () => (import("./index.js").AssetDeliveryConfigModifierPlugin | import("@webiny/handler").ModifyFastifyPlugin)[];
package/index.js CHANGED
@@ -3,41 +3,36 @@ import { setupAssetDelivery } from "./delivery/setupAssetDelivery.js";
3
3
  import { createGraphQLSchemaPlugin } from "./graphql/index.js";
4
4
  import { FileManagerFeature } from "./features/FileManagerFeature.js";
5
5
  import { FmPermissionsFeature } from "./features/permissions/feature.js";
6
- import { AiImageEnrichmentFeature } from "./features/ai/AiImageEnrichmentFeature.js";
7
6
  import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
8
- import { FileModel as FileModelAbstraction } from "./domain/file/abstractions.js";
7
+ import { FileModel } from "./domain/file/abstractions.js";
9
8
  import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
10
- import { WcpContext } from "@webiny/api-core/features/wcp/WcpContext/index.js";
11
- import { FileModel, FILE_MODEL_ID } from "./domain/file/file.model.js";
9
+ import { FILE_MODEL_ID, FileModel as file_model_js_FileModel } from "./domain/file/file.model.js";
10
+ import { createRegisterExtensionPlugin } from "@webiny/handler";
12
11
  export * from "./modelModifier/CmsModelModifier.js";
13
12
  export * from "./delivery/index.js";
14
- export const createFileManagerContext = () => {
15
- const plugin = new ContextPlugin(async context => {
16
- const tenantContext = context.container.resolve(TenantContext);
17
- const getModel = context.container.resolve(GetModelUseCase);
18
- if (!tenantContext.getTenant()) {
19
- return;
20
- }
21
- context.container.register(FileModel);
22
- await context.security.withoutAuthorization(async () => {
23
- const fileModel = await getModel.execute(FILE_MODEL_ID);
24
- context.container.registerInstance(FileModelAbstraction, fileModel.value);
13
+ const createFileManagerContext = ()=>{
14
+ const fileManagerContextPlugin = new ContextPlugin(async (context)=>{
15
+ const tenantContext = context.container.resolve(TenantContext);
16
+ const getModel = context.container.resolve(GetModelUseCase);
17
+ if (!tenantContext.getTenant()) return;
18
+ await context.security.withoutAuthorization(async ()=>{
19
+ const fileModel = await getModel.execute(FILE_MODEL_ID);
20
+ context.container.registerInstance(FileModel, fileModel.value);
21
+ });
22
+ FmPermissionsFeature.register(context.container);
23
+ FileManagerFeature.register(context.container);
25
24
  });
26
- FmPermissionsFeature.register(context.container);
27
- FileManagerFeature.register(context.container);
28
- const wcpContext = context.container.resolve(WcpContext);
29
- if (wcpContext.canUseAiImageEnrichment()) {
30
- AiImageEnrichmentFeature.register(context.container);
31
- }
32
- });
33
- plugin.name = "file-manager.createContext";
34
- return plugin;
35
- };
36
- export const createFileManagerGraphQL = () => {
37
- return createGraphQLSchemaPlugin();
38
- };
39
- export const createAssetDelivery = () => {
40
- return setupAssetDelivery();
25
+ fileManagerContextPlugin.name = "file-manager.createContext";
26
+ const modelsPlugin = createRegisterExtensionPlugin((context)=>{
27
+ context.container.register(file_model_js_FileModel);
28
+ });
29
+ return [
30
+ fileManagerContextPlugin,
31
+ modelsPlugin
32
+ ];
41
33
  };
34
+ const createFileManagerGraphQL = ()=>createGraphQLSchemaPlugin();
35
+ const createAssetDelivery = ()=>setupAssetDelivery();
36
+ export { createAssetDelivery, createFileManagerContext, createFileManagerGraphQL };
42
37
 
43
38
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ContextPlugin","setupAssetDelivery","createGraphQLSchemaPlugin","FileManagerFeature","FmPermissionsFeature","AiImageEnrichmentFeature","GetModelUseCase","FileModel","FileModelAbstraction","TenantContext","WcpContext","FILE_MODEL_ID","createFileManagerContext","plugin","context","tenantContext","container","resolve","getModel","getTenant","register","security","withoutAuthorization","fileModel","execute","registerInstance","value","wcpContext","canUseAiImageEnrichment","name","createFileManagerGraphQL","createAssetDelivery"],"sources":["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 { AiImageEnrichmentFeature } from \"~/features/ai/AiImageEnrichmentFeature.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 { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\nimport { FileModel, FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\nexport * from \"./modelModifier/CmsModelModifier.js\";\nexport * from \"./delivery/index.js\";\n\nexport const createFileManagerContext = () => {\n const plugin = 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 context.container.register(FileModel);\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 const wcpContext = context.container.resolve(WcpContext);\n if (wcpContext.canUseAiImageEnrichment()) {\n AiImageEnrichmentFeature.register(context.container);\n }\n });\n\n plugin.name = \"file-manager.createContext\";\n\n return plugin;\n};\n\nexport const createFileManagerGraphQL = () => {\n return createGraphQLSchemaPlugin();\n};\n\nexport const createAssetDelivery = () => {\n return setupAssetDelivery();\n};\n"],"mappings":"AACA,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,kBAAkB;AAC3B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,wBAAwB;AACjC,SAASC,eAAe,QAAQ,kEAAkE;AAClG,SAASC,SAAS,IAAIC,oBAAoB;AAC1C,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASC,UAAU,QAAQ,mDAAmD;AAC9E,SAASH,SAAS,EAAEI,aAAa;AAEjC;AACA;AAEA,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,MAAM,GAAG,IAAIb,aAAa,CAAiB,MAAMc,OAAO,IAAI;IAC9D,MAAMC,aAAa,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACR,aAAa,CAAC;IAC9D,MAAMS,QAAQ,GAAGJ,OAAO,CAACE,SAAS,CAACC,OAAO,CAACX,eAAe,CAAC;IAE3D,IAAI,CAACS,aAAa,CAACI,SAAS,CAAC,CAAC,EAAE;MAC5B;IACJ;IAEAL,OAAO,CAACE,SAAS,CAACI,QAAQ,CAACb,SAAS,CAAC;IAErC,MAAMO,OAAO,CAACO,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACpD,MAAMC,SAAS,GAAG,MAAML,QAAQ,CAACM,OAAO,CAACb,aAAa,CAAC;MACvDG,OAAO,CAACE,SAAS,CAACS,gBAAgB,CAACjB,oBAAoB,EAAEe,SAAS,CAACG,KAAK,CAAC;IAC7E,CAAC,CAAC;IAEFtB,oBAAoB,CAACgB,QAAQ,CAACN,OAAO,CAACE,SAAS,CAAC;IAChDb,kBAAkB,CAACiB,QAAQ,CAACN,OAAO,CAACE,SAAS,CAAC;IAE9C,MAAMW,UAAU,GAAGb,OAAO,CAACE,SAAS,CAACC,OAAO,CAACP,UAAU,CAAC;IACxD,IAAIiB,UAAU,CAACC,uBAAuB,CAAC,CAAC,EAAE;MACtCvB,wBAAwB,CAACe,QAAQ,CAACN,OAAO,CAACE,SAAS,CAAC;IACxD;EACJ,CAAC,CAAC;EAEFH,MAAM,CAACgB,IAAI,GAAG,4BAA4B;EAE1C,OAAOhB,MAAM;AACjB,CAAC;AAED,OAAO,MAAMiB,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,OAAO5B,yBAAyB,CAAC,CAAC;AACtC,CAAC;AAED,OAAO,MAAM6B,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO9B,kBAAkB,CAAC,CAAC;AAC/B,CAAC","ignoreList":[]}
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\";\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 setupAssetDelivery();\n};\n"],"names":["createFileManagerContext","fileManagerContextPlugin","ContextPlugin","context","tenantContext","TenantContext","getModel","GetModelUseCase","fileModel","FILE_MODEL_ID","FileModelAbstraction","FmPermissionsFeature","FileManagerFeature","modelsPlugin","createRegisterExtensionPlugin","FileModel","createFileManagerGraphQL","createGraphQLSchemaPlugin","createAssetDelivery","setupAssetDelivery"],"mappings":";;;;;;;;;;;;AAeO,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,IACxBC"}
@@ -2,53 +2,50 @@ import { Plugin } from "@webiny/plugins";
2
2
  import { createModelField } from "@webiny/api-headless-cms";
3
3
  import { FILE_MODEL_ID } from "../domain/file/file.model.js";
4
4
  class CmsModelFieldsModifier {
5
- constructor(fields) {
6
- this.fields = fields;
7
- }
8
- addField(field) {
9
- const {
10
- bulkEdit,
11
- tags,
12
- ...rest
13
- } = field;
14
- this.fields.push({
15
- ...rest,
16
- tags: (tags ?? []).concat(bulkEdit ? ["$bulk-edit"] : []),
17
- storageId: `${field.type}@${field.id}`
18
- });
19
- }
5
+ constructor(fields){
6
+ this.fields = fields;
7
+ }
8
+ addField(field) {
9
+ const { bulkEdit, tags, ...rest } = field;
10
+ this.fields.push({
11
+ ...rest,
12
+ tags: (tags ?? []).concat(bulkEdit ? [
13
+ "$bulk-edit"
14
+ ] : []),
15
+ storageId: `${field.type}@${field.id}`
16
+ });
17
+ }
20
18
  }
21
- export class CmsModelModifierPlugin extends Plugin {
22
- static type = "fm.cms-model-modifier";
23
- constructor(modelId, cb) {
24
- super();
25
- this.modelId = modelId;
26
- this.cb = cb;
27
- }
28
- async modifyModel(model) {
29
- if (model.modelId !== this.modelId) {
30
- return;
19
+ class CmsModelModifierPlugin extends Plugin {
20
+ static{
21
+ this.type = "fm.cms-model-modifier";
22
+ }
23
+ constructor(modelId, cb){
24
+ super();
25
+ this.modelId = modelId;
26
+ this.cb = cb;
31
27
  }
32
- let extensionsField = model.fields.find(field => field.fieldId === "extensions");
33
- if (!extensionsField) {
34
- extensionsField = createModelField({
35
- label: "Extensions",
36
- type: "object",
37
- settings: {
38
- layout: [],
39
- fields: []
28
+ async modifyModel(model) {
29
+ if (model.modelId !== this.modelId) return;
30
+ let extensionsField = model.fields.find((field)=>"extensions" === field.fieldId);
31
+ if (!extensionsField) {
32
+ extensionsField = createModelField({
33
+ label: "Extensions",
34
+ type: "object",
35
+ settings: {
36
+ layout: [],
37
+ fields: []
38
+ }
39
+ });
40
+ model.fields.push(extensionsField);
40
41
  }
41
- });
42
- model.fields.push(extensionsField);
42
+ const modifier = new CmsModelFieldsModifier(extensionsField.settings.fields);
43
+ await this.cb({
44
+ modifier
45
+ });
43
46
  }
44
- const modifier = new CmsModelFieldsModifier(extensionsField.settings.fields);
45
- await this.cb({
46
- modifier
47
- });
48
- }
49
47
  }
50
- export const createFileModelModifier = cb => {
51
- return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);
52
- };
48
+ const createFileModelModifier = (cb)=>new CmsModelModifierPlugin(FILE_MODEL_ID, cb);
49
+ export { CmsModelModifierPlugin, createFileModelModifier };
53
50
 
54
51
  //# sourceMappingURL=CmsModelModifier.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Plugin","createModelField","FILE_MODEL_ID","CmsModelFieldsModifier","constructor","fields","addField","field","bulkEdit","tags","rest","push","concat","storageId","type","id","CmsModelModifierPlugin","modelId","cb","modifyModel","model","extensionsField","find","fieldId","label","settings","layout","modifier","createFileModelModifier"],"sources":["CmsModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport { FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\ntype CmsModelField = Omit<BaseModelField, \"storageId\"> & { bulkEdit?: boolean };\n\nclass CmsModelFieldsModifier {\n private fields: BaseModelField[];\n\n constructor(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { bulkEdit, tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n tags: (tags ?? []).concat(bulkEdit ? [\"$bulk-edit\"] : []),\n storageId: `${field.type}@${field.id}`\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: CmsModelFieldsModifier;\n}\n\ninterface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\nexport class CmsModelModifierPlugin extends Plugin {\n public static override type = \"fm.cms-model-modifier\";\n private readonly modelId: string;\n private readonly cb: CmsModelModifierCallable;\n\n constructor(modelId: string, cb: CmsModelModifierCallable) {\n super();\n this.modelId = modelId;\n this.cb = cb;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== this.modelId) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n const modifier = new CmsModelFieldsModifier(extensionsField.settings!.fields!);\n await this.cb({ modifier });\n }\n}\n\nexport const createFileModelModifier = (cb: CmsModelModifierCallable) => {\n return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAGxC,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa;AAItB,MAAMC,sBAAsB,CAAC;EAGzBC,WAAWA,CAACC,MAAwB,EAAE;IAClC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAC,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGH,KAAK;IAEzC,IAAI,CAACF,MAAM,CAACM,IAAI,CAAC;MACb,GAAGD,IAAI;MACPD,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEG,MAAM,CAACJ,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;MACzDK,SAAS,EAAE,GAAGN,KAAK,CAACO,IAAI,IAAIP,KAAK,CAACQ,EAAE;IACxC,CAAC,CAAC;EACN;AACJ;AAUA,OAAO,MAAMC,sBAAsB,SAAShB,MAAM,CAAC;EAC/C,OAAuBc,IAAI,GAAG,uBAAuB;EAIrDV,WAAWA,CAACa,OAAe,EAAEC,EAA4B,EAAE;IACvD,KAAK,CAAC,CAAC;IACP,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACH,OAAO,KAAK,IAAI,CAACA,OAAO,EAAE;MAChC;IACJ;IAEA,IAAII,eAAe,GAAGD,KAAK,CAACf,MAAM,CAACiB,IAAI,CAACf,KAAK,IAAIA,KAAK,CAACgB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAGpB,gBAAgB,CAAC;QAC/BuB,KAAK,EAAE,YAAY;QACnBV,IAAI,EAAE,QAAQ;QACdW,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVrB,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFe,KAAK,CAACf,MAAM,CAACM,IAAI,CAACU,eAAe,CAAC;IACtC;IAEA,MAAMM,QAAQ,GAAG,IAAIxB,sBAAsB,CAACkB,eAAe,CAACI,QAAQ,CAAEpB,MAAO,CAAC;IAC9E,MAAM,IAAI,CAACa,EAAE,CAAC;MAAES;IAAS,CAAC,CAAC;EAC/B;AACJ;AAEA,OAAO,MAAMC,uBAAuB,GAAIV,EAA4B,IAAK;EACrE,OAAO,IAAIF,sBAAsB,CAACd,aAAa,EAAEgB,EAAE,CAAC;AACxD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"modelModifier/CmsModelModifier.js","sources":["../../src/modelModifier/CmsModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport { FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\ntype CmsModelField = Omit<BaseModelField, \"storageId\"> & { bulkEdit?: boolean };\n\nclass CmsModelFieldsModifier {\n private fields: BaseModelField[];\n\n constructor(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { bulkEdit, tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n tags: (tags ?? []).concat(bulkEdit ? [\"$bulk-edit\"] : []),\n storageId: `${field.type}@${field.id}`\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: CmsModelFieldsModifier;\n}\n\ninterface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\nexport class CmsModelModifierPlugin extends Plugin {\n public static override type = \"fm.cms-model-modifier\";\n private readonly modelId: string;\n private readonly cb: CmsModelModifierCallable;\n\n constructor(modelId: string, cb: CmsModelModifierCallable) {\n super();\n this.modelId = modelId;\n this.cb = cb;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== this.modelId) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n const modifier = new CmsModelFieldsModifier(extensionsField.settings!.fields!);\n await this.cb({ modifier });\n }\n}\n\nexport const createFileModelModifier = (cb: CmsModelModifierCallable) => {\n return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);\n};\n"],"names":["CmsModelFieldsModifier","fields","field","bulkEdit","tags","rest","CmsModelModifierPlugin","Plugin","modelId","cb","model","extensionsField","createModelField","modifier","createFileModelModifier","FILE_MODEL_ID"],"mappings":";;;AAQA,MAAMA;IAGF,YAAYC,MAAwB,CAAE;QAClC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,SAASC,KAAoB,EAAE;QAC3B,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGC,MAAM,GAAGH;QAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,GAAGG,IAAI;YACP,MAAOD,AAAAA,CAAAA,QAAQ,EAAC,EAAG,MAAM,CAACD,WAAW;gBAAC;aAAa,GAAG,EAAE;YACxD,WAAW,GAAGD,MAAM,IAAI,CAAC,CAAC,EAAEA,MAAM,EAAE,EAAE;QAC1C;IACJ;AACJ;AAUO,MAAMI,+BAA+BC;;aACjB,IAAI,GAAG;;IAI9B,YAAYC,OAAe,EAAEC,EAA4B,CAAE;QACvD,KAAK;QACL,IAAI,CAAC,OAAO,GAAGD;QACf,IAAI,CAAC,EAAE,GAAGC;IACd;IAEA,MAAM,YAAYC,KAA0B,EAAiB;QACzD,IAAIA,MAAM,OAAO,KAAK,IAAI,CAAC,OAAO,EAC9B;QAGJ,IAAIC,kBAAkBD,MAAM,MAAM,CAAC,IAAI,CAACR,CAAAA,QAASA,AAAkB,iBAAlBA,MAAM,OAAO;QAC9D,IAAI,CAACS,iBAAiB;YAClBA,kBAAkBC,iBAAiB;gBAC/B,OAAO;gBACP,MAAM;gBACN,UAAU;oBACN,QAAQ,EAAE;oBACV,QAAQ,EAAE;gBACd;YACJ;YACAF,MAAM,MAAM,CAAC,IAAI,CAACC;QACtB;QAEA,MAAME,WAAW,IAAIb,uBAAuBW,gBAAgB,QAAQ,CAAE,MAAM;QAC5E,MAAM,IAAI,CAAC,EAAE,CAAC;YAAEE;QAAS;IAC7B;AACJ;AAEO,MAAMC,0BAA0B,CAACL,KAC7B,IAAIH,uBAAuBS,eAAeN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -22,29 +22,26 @@
22
22
  ],
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@webiny/ai-powerups": "6.3.0",
26
- "@webiny/api": "6.3.0",
27
- "@webiny/api-core": "6.3.0",
28
- "@webiny/api-headless-cms": "6.3.0",
29
- "@webiny/api-websockets": "6.3.0",
30
- "@webiny/build-tools": "6.3.0",
31
- "@webiny/di": "0.2.3",
32
- "@webiny/error": "6.3.0",
33
- "@webiny/feature": "6.3.0",
34
- "@webiny/handler": "6.3.0",
35
- "@webiny/handler-graphql": "6.3.0",
36
- "@webiny/plugins": "6.3.0",
37
- "@webiny/tasks": "6.3.0",
38
- "@webiny/wcp": "6.3.0",
39
- "ai": "6.0.175",
25
+ "@webiny/api": "6.4.0-beta.1",
26
+ "@webiny/api-core": "6.4.0-beta.1",
27
+ "@webiny/api-headless-cms": "6.4.0-beta.1",
28
+ "@webiny/build-tools": "6.4.0-beta.1",
29
+ "@webiny/di": "1.0.0",
30
+ "@webiny/error": "6.4.0-beta.1",
31
+ "@webiny/feature": "6.4.0-beta.1",
32
+ "@webiny/handler": "6.4.0-beta.1",
33
+ "@webiny/handler-graphql": "6.4.0-beta.1",
34
+ "@webiny/plugins": "6.4.0-beta.1",
35
+ "@webiny/tasks": "6.4.0-beta.1",
36
+ "@webiny/wcp": "6.4.0-beta.1",
40
37
  "cache-control-parser": "2.2.0",
41
- "zod": "4.3.6"
38
+ "zod": "4.4.3"
42
39
  },
43
40
  "devDependencies": {
44
41
  "@types/object-hash": "3.0.6",
45
- "@webiny/handler-aws": "6.3.0",
46
- "@webiny/project-utils": "6.3.0",
47
- "@webiny/utils": "6.3.0",
42
+ "@webiny/handler-aws": "6.4.0-beta.1",
43
+ "@webiny/project-utils": "6.4.0-beta.1",
44
+ "@webiny/utils": "6.4.0-beta.1",
48
45
  "@webiny/wcp": "0.0.0",
49
46
  "rimraf": "6.1.3",
50
47
  "typescript": "6.0.3"
@@ -66,5 +63,5 @@
66
63
  ]
67
64
  }
68
65
  },
69
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
66
+ "gitHead": "73237b8243693038c072bae1c0b783387448cbbe"
70
67
  }
package/types.js CHANGED
@@ -1,3 +1 @@
1
1
  import "@webiny/tasks/features/TaskController/augmentation.js";
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetContentsReader.ts"],"sourcesContent":["import type { Asset } from \"~/delivery/index.js\";\n\nexport interface AssetContentsReader {\n read(asset: Asset): Promise<Buffer>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetOutputStrategy.ts"],"sourcesContent":["import type { Asset, AssetReply } from \"~/delivery/index.js\";\n\nexport interface AssetOutputStrategy {\n output(asset: Asset): Promise<AssetReply>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetProcessor.ts"],"sourcesContent":["import type { Asset, AssetRequest } from \"~/delivery/index.js\";\n\nexport interface AssetProcessor {\n process(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetRequestResolver.ts"],"sourcesContent":["import type { Request } from \"@webiny/handler/types.js\";\nimport type { AssetRequest } from \"~/delivery/index.js\";\n\nexport interface AssetRequestResolver {\n resolve(request: Request): Promise<AssetRequest | undefined>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetResolver.ts"],"sourcesContent":["import type { Asset, AssetRequest } from \"~/delivery/index.js\";\n\nexport interface AssetResolver {\n resolve(request: AssetRequest): Promise<Asset | undefined>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetTransformationStrategy.ts"],"sourcesContent":["import type { Asset, AssetRequest } from \"~/delivery/index.js\";\n\nexport interface AssetTransformationStrategy {\n transform(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["AssetAuthorizer.ts"],"sourcesContent":["import { File } from \"~/domain/file/types.js\";\n\nexport interface AssetAuthorizer {\n authorize(file: File): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AssetDelivery/AssetDeliveryConfig.js\";\nexport * from \"./AssetDelivery/Asset.js\";\nexport * from \"./AssetDelivery/AssetRequest.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetRequestResolver.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetResolver.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetProcessor.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetContentsReader.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetOutputStrategy.js\";\nexport type * from \"./AssetDelivery/abstractions/AssetTransformationStrategy.js\";\nexport * from \"./AssetDelivery/abstractions/AssetReply.js\";\nexport * from \"./AssetDelivery/createAssetDeliveryPluginLoader.js\";\nexport * from \"./AssetDelivery/FilesAssetRequestResolver.js\";\nexport * from \"./AssetDelivery/SetCacheControlHeaders.js\";\nexport * from \"./AssetDelivery/SetResponseHeaders.js\";\nexport * from \"./AssetDelivery/privateFiles/PublicCache.js\";\nexport * from \"./AssetDelivery/privateFiles/PrivateCache.js\";\n"],"mappings":"AAAA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type PublicAccess = {\n type: \"public\";\n};\n\nexport type PrivateAuthenticatedAccess = {\n type: \"private-authenticated\";\n};\n\nexport type FileAccess = PublicAccess | PrivateAuthenticatedAccess;\n\nexport interface CreatedBy {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport interface File {\n id: string;\n key: string;\n size: number;\n type: string;\n name: string;\n metadata: Record<string, any>;\n accessControl?: FileAccess;\n location: {\n folderId: string;\n };\n tags: string[];\n description: string;\n createdOn: string;\n modifiedOn: string | undefined;\n savedOn: string;\n createdBy: CreatedBy;\n modifiedBy: CreatedBy | undefined;\n savedBy: CreatedBy;\n extensions?: Record<string, any>;\n}\n\nexport interface FileInput {\n id: string;\n\n // Entry-level fields (we don't use revisions for files)\n createdOn?: string;\n modifiedOn?: string;\n savedOn?: string;\n createdBy?: CreatedBy;\n modifiedBy?: CreatedBy;\n savedBy?: CreatedBy;\n\n key: string;\n name: string;\n size: number;\n type: string;\n metadata: Record<string, any>;\n location?: {\n folderId: string;\n };\n tags: string[];\n description?: string;\n extensions?: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface FileManagerSettings {\n uploadMinFileSize: number;\n uploadMaxFileSize: number;\n srcPrefix: string;\n}\n\nexport interface UpdateSettingsInput {\n uploadMinFileSize?: number;\n uploadMaxFileSize?: number;\n srcPrefix?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["CreateFileRepository","CreateFileUseCase","FileAfterCreateEventHandler","FileBeforeCreateEventHandler","CreateFilesInBatchRepository","CreateFilesInBatchUseCase","FileAfterBatchCreateEventHandler","FileBeforeBatchCreateEventHandler","UpdateFileRepository","UpdateFileUseCase","FileAfterUpdateEventHandler","FileBeforeUpdateEventHandler","DeleteFileRepository","DeleteFileUseCase","FileAfterDeleteEventHandler","FileBeforeDeleteEventHandler","FileUrlGenerator","GetFileRepository","GetFileUseCase","ListFilesRepository","ListFilesUseCase","ListTagsRepository","ListTagsUseCase"],"sources":["file.ts"],"sourcesContent":["export {\n CreateFileRepository,\n CreateFileUseCase\n} from \"~/features/file/CreateFile/abstractions.js\";\nexport {\n FileAfterCreateEventHandler,\n FileBeforeCreateEventHandler\n} from \"~/features/file/CreateFile/events.js\";\n\nexport {\n CreateFilesInBatchRepository,\n CreateFilesInBatchUseCase\n} from \"~/features/file/CreateFilesInBatch/abstractions.js\";\nexport {\n FileAfterBatchCreateEventHandler,\n FileBeforeBatchCreateEventHandler\n} from \"~/features/file/CreateFilesInBatch/events.js\";\n\nexport {\n UpdateFileRepository,\n UpdateFileUseCase\n} from \"~/features/file/UpdateFile/abstractions.js\";\nexport {\n FileAfterUpdateEventHandler,\n FileBeforeUpdateEventHandler\n} from \"~/features/file/UpdateFile/events.js\";\n\nexport {\n DeleteFileRepository,\n DeleteFileUseCase\n} from \"~/features/file/DeleteFile/abstractions.js\";\nexport {\n FileAfterDeleteEventHandler,\n FileBeforeDeleteEventHandler\n} from \"~/features/file/DeleteFile/events.js\";\n\nexport { FileUrlGenerator } from \"~/features/file/FileUrlGenerator/abstractions.js\";\n\nexport { GetFileRepository, GetFileUseCase } from \"~/features/file/GetFile/abstractions.js\";\n\nexport { ListFilesRepository, ListFilesUseCase } from \"~/features/file/ListFiles/abstractions.js\";\n\nexport { ListTagsRepository, ListTagsUseCase } from \"~/features/file/ListTags/abstractions.js\";\n"],"mappings":"AAAA,SACIA,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SACIC,4BAA4B,EAC5BC,yBAAyB;AAE7B,SACIC,gCAAgC,EAChCC,iCAAiC;AAGrC,SACIC,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SACIC,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,EAAEC,cAAc;AAE1C,SAASC,mBAAmB,EAAEC,gBAAgB;AAE9C,SAASC,kBAAkB,EAAEC,eAAe","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["FmPermissions"],"sources":["permissions.ts"],"sourcesContent":["export { FmPermissions } from \"~/features/shared/abstractions.js\";\n"],"mappings":"AAAA,SAASA,aAAa","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["GetSettingsUseCase","UpdateSettingsUseCase","SettingsAfterUpdateEventHandler","SettingsBeforeUpdateEventHandler"],"sources":["settings.ts"],"sourcesContent":["export { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nexport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nexport {\n SettingsAfterUpdateEventHandler,\n SettingsBeforeUpdateEventHandler\n} from \"~/features/settings/UpdateSettings/events.js\";\n"],"mappings":"AAAA,SAASA,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SACIC,+BAA+B,EAC/BC,gCAAgC","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- import { FileAfterCreateEventHandler } from "../../features/file/CreateFile/events.js";
2
- import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
- declare class AiImageEnrichmentAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {
4
- private taskService;
5
- constructor(taskService: TaskService.Interface);
6
- handle(event: FileAfterCreateEventHandler.Event): Promise<void>;
7
- }
8
- export declare const AiImageEnrichmentAfterCreateHandler: typeof AiImageEnrichmentAfterCreateHandlerImpl & {
9
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("~/features/file/CreateFile/events.js").FileAfterCreateEvent>>;
10
- };
11
- export {};
@@ -1,28 +0,0 @@
1
- import { FileAfterCreateEventHandler } from "../file/CreateFile/events.js";
2
- import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
- import { AI_IMAGE_ENRICHMENT_TASK_ID } from "../../tasks/AiImageEnrichmentTask.js";
4
- class AiImageEnrichmentAfterCreateHandlerImpl {
5
- constructor(taskService) {
6
- this.taskService = taskService;
7
- }
8
- async handle(event) {
9
- const {
10
- file
11
- } = event.payload;
12
- if (!file.type.startsWith("image/")) {
13
- return;
14
- }
15
- await this.taskService.trigger({
16
- definition: AI_IMAGE_ENRICHMENT_TASK_ID,
17
- input: {
18
- fileId: file.id
19
- }
20
- });
21
- }
22
- }
23
- export const AiImageEnrichmentAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({
24
- implementation: AiImageEnrichmentAfterCreateHandlerImpl,
25
- dependencies: [TaskService]
26
- });
27
-
28
- //# sourceMappingURL=AiImageEnrichmentAfterCreateHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["FileAfterCreateEventHandler","TaskService","AI_IMAGE_ENRICHMENT_TASK_ID","AiImageEnrichmentAfterCreateHandlerImpl","constructor","taskService","handle","event","file","payload","type","startsWith","trigger","definition","input","fileId","id","AiImageEnrichmentAfterCreateHandler","createImplementation","implementation","dependencies"],"sources":["AiImageEnrichmentAfterCreateHandler.ts"],"sourcesContent":["import { FileAfterCreateEventHandler } from \"~/features/file/CreateFile/events.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { IAiImageEnrichmentTaskInput } from \"~/tasks/AiImageEnrichmentTask.js\";\nimport { AI_IMAGE_ENRICHMENT_TASK_ID } from \"~/tasks/AiImageEnrichmentTask.js\";\n\nclass AiImageEnrichmentAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {\n constructor(private taskService: TaskService.Interface) {}\n\n async handle(event: FileAfterCreateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n\n if (!file.type.startsWith(\"image/\")) {\n return;\n }\n\n await this.taskService.trigger<IAiImageEnrichmentTaskInput>({\n definition: AI_IMAGE_ENRICHMENT_TASK_ID,\n input: {\n fileId: file.id\n }\n });\n }\n}\n\nexport const AiImageEnrichmentAfterCreateHandler = FileAfterCreateEventHandler.createImplementation(\n {\n implementation: AiImageEnrichmentAfterCreateHandlerImpl,\n dependencies: [TaskService]\n }\n);\n"],"mappings":"AAAA,SAASA,2BAA2B;AACpC,SAASC,WAAW,QAAQ,qDAAqD;AAEjF,SAASC,2BAA2B;AAEpC,MAAMC,uCAAuC,CAAkD;EAC3FC,WAAWA,CAASC,WAAkC,EAAE;IAAA,KAApCA,WAAkC,GAAlCA,WAAkC;EAAG;EAEzD,MAAMC,MAAMA,CAACC,KAAwC,EAAiB;IAClE,MAAM;MAAEC;IAAK,CAAC,GAAGD,KAAK,CAACE,OAAO;IAE9B,IAAI,CAACD,IAAI,CAACE,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;MACjC;IACJ;IAEA,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAA8B;MACxDC,UAAU,EAAEX,2BAA2B;MACvCY,KAAK,EAAE;QACHC,MAAM,EAAEP,IAAI,CAACQ;MACjB;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMC,mCAAmC,GAAGjB,2BAA2B,CAACkB,oBAAoB,CAC/F;EACIC,cAAc,EAAEhB,uCAAuC;EACvDiB,YAAY,EAAE,CAACnB,WAAW;AAC9B,CACJ,CAAC","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- export declare const AiImageEnrichmentFeature: {
2
- name: string;
3
- register(container: import("@webiny/di").Container): void;
4
- };
@@ -1,12 +0,0 @@
1
- import { createFeature } from "@webiny/feature/api";
2
- import { AiImageEnrichmentAfterCreateHandler } from "./AiImageEnrichmentAfterCreateHandler.js";
3
- import { AiImageEnrichmentTask } from "../../tasks/AiImageEnrichmentTask.js";
4
- export const AiImageEnrichmentFeature = createFeature({
5
- name: "FileManagerAi/AiImageEnrichment",
6
- register(container) {
7
- container.register(AiImageEnrichmentAfterCreateHandler);
8
- container.register(AiImageEnrichmentTask);
9
- }
10
- });
11
-
12
- //# sourceMappingURL=AiImageEnrichmentFeature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createFeature","AiImageEnrichmentAfterCreateHandler","AiImageEnrichmentTask","AiImageEnrichmentFeature","name","register","container"],"sources":["AiImageEnrichmentFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AiImageEnrichmentAfterCreateHandler } from \"./AiImageEnrichmentAfterCreateHandler.js\";\nimport { AiImageEnrichmentTask } from \"~/tasks/AiImageEnrichmentTask.js\";\n\nexport const AiImageEnrichmentFeature = createFeature({\n name: \"FileManagerAi/AiImageEnrichment\",\n register(container) {\n container.register(AiImageEnrichmentAfterCreateHandler);\n container.register(AiImageEnrichmentTask);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,mCAAmC;AAC5C,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,wBAAwB,GAAGH,aAAa,CAAC;EAClDI,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,mCAAmC,CAAC;IACvDK,SAAS,CAACD,QAAQ,CAACH,qBAAqB,CAAC;EAC7C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["CreateFileUseCase","FileAfterCreateEventHandler","FileBeforeCreateEventHandler"],"sources":["index.ts"],"sourcesContent":["export { CreateFileUseCase } from \"./abstractions.js\";\nexport { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,iBAAiB;AAC1B,SAASC,2BAA2B,EAAEC,4BAA4B","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["CreateFilesInBatchUseCase"],"sources":["index.ts"],"sourcesContent":["export { CreateFilesInBatchUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,yBAAyB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DeleteFileUseCase","FileBeforeDeleteEventHandler","FileAfterDeleteEventHandler"],"sources":["index.ts"],"sourcesContent":["export { DeleteFileUseCase } from \"./abstractions.js\";\nexport { FileBeforeDeleteEventHandler, FileAfterDeleteEventHandler } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,iBAAiB;AAC1B,SAASC,4BAA4B,EAAEC,2BAA2B","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["GetFileUseCase"],"sources":["index.ts"],"sourcesContent":["export { GetFileUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,cAAc","ignoreList":[]}