@webiny/api-file-manager 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.eb81deee7e

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 (518) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/contants.js +2 -1
  5. package/contants.js.map +1 -1
  6. package/delivery/AssetDelivery/Asset.js +50 -56
  7. package/delivery/AssetDelivery/Asset.js.map +1 -1
  8. package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
  9. package/delivery/AssetDelivery/AssetRequest.js +20 -19
  10. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  11. package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -27
  12. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  13. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -5
  14. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  15. package/delivery/AssetDeliveryRoute.d.ts +24 -0
  16. package/delivery/AssetDeliveryRoute.js +69 -0
  17. package/delivery/AssetDeliveryRoute.js.map +1 -0
  18. package/delivery/index.d.ts +3 -12
  19. package/delivery/index.js +2 -8
  20. package/delivery/setupAssetDelivery.d.ts +1 -2
  21. package/delivery/setupAssetDelivery.js +2 -112
  22. package/delivery/setupAssetDelivery.js.map +1 -1
  23. package/domain/file/abstractions.d.ts +13 -5
  24. package/domain/file/abstractions.js +2 -5
  25. package/domain/file/abstractions.js.map +1 -1
  26. package/domain/file/errors.js +67 -76
  27. package/domain/file/errors.js.map +1 -1
  28. package/domain/file/file.model.d.ts +3 -3
  29. package/domain/file/file.model.js +63 -50
  30. package/domain/file/file.model.js.map +1 -1
  31. package/domain/file/types.js +0 -3
  32. package/domain/identity/Identity.js +9 -8
  33. package/domain/identity/Identity.js.map +1 -1
  34. package/domain/permissionsSchema.js +26 -15
  35. package/domain/permissionsSchema.js.map +1 -1
  36. package/domain/settings/constants.js +2 -1
  37. package/domain/settings/constants.js.map +1 -1
  38. package/domain/settings/errors.js +22 -24
  39. package/domain/settings/errors.js.map +1 -1
  40. package/domain/settings/types.js +0 -3
  41. package/domain/settings/validation.js +19 -28
  42. package/domain/settings/validation.js.map +1 -1
  43. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  44. package/exports/api/file-manager/assetDelivery.js +8 -0
  45. package/exports/api/file-manager/file.d.ts +2 -1
  46. package/exports/api/file-manager/file.js +2 -3
  47. package/exports/api/file-manager/permissions.js +0 -2
  48. package/exports/api/file-manager/settings.js +0 -2
  49. package/features/FileManagerFeature.js +22 -15
  50. package/features/FileManagerFeature.js.map +1 -1
  51. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  52. package/features/assetDelivery/Asset/Asset.js +14 -0
  53. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  54. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  55. package/features/assetDelivery/Asset/abstractions.js +5 -0
  56. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  57. package/features/assetDelivery/Asset/index.d.ts +1 -0
  58. package/features/assetDelivery/Asset/index.js +1 -0
  59. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
  60. package/features/assetDelivery/FilesAssetRequestResolver.js +29 -0
  61. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  62. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  63. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  64. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  65. package/features/assetDelivery/NullAssetReply.js +14 -0
  66. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  67. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  68. package/features/assetDelivery/NullAssetResolver.js +13 -0
  69. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  70. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  71. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  72. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  73. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  74. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  75. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  76. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  77. package/features/assetDelivery/ObjectKey/index.js +1 -0
  78. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  79. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  80. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  81. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  82. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  83. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  84. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  85. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  86. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  87. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  88. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  89. package/features/assetDelivery/abstractions.d.ts +65 -0
  90. package/features/assetDelivery/abstractions.js +11 -0
  91. package/features/assetDelivery/abstractions.js.map +1 -0
  92. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  93. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  94. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  95. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  96. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  97. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  98. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  99. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  100. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  101. package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
  102. package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
  103. package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
  104. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  105. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  106. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  107. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  108. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  109. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  110. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  111. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  112. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  113. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  114. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  115. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  116. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  117. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  118. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  119. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  120. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  121. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  122. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  123. package/features/assetDelivery/feature.d.ts +4 -0
  124. package/features/assetDelivery/feature.js +35 -0
  125. package/features/assetDelivery/feature.js.map +1 -0
  126. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  127. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  128. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  129. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  130. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  131. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  132. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  133. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  134. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  135. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  136. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  137. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  138. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +11 -0
  139. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -0
  140. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  141. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  142. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +65 -0
  143. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  144. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  145. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  146. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  147. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +9 -0
  148. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
  149. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  150. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
  151. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
  152. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  153. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  154. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  155. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  156. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +9 -0
  157. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
  158. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  159. package/features/assetDelivery/transformation/index.d.ts +5 -0
  160. package/features/assetDelivery/transformation/index.js +4 -0
  161. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  162. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  163. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  164. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  165. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  166. package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
  167. package/features/file/CreateFile/CreateFileRepository.js +22 -19
  168. package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
  169. package/features/file/CreateFile/CreateFileUseCase.js +68 -75
  170. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -1
  171. package/features/file/CreateFile/abstractions.js +3 -14
  172. package/features/file/CreateFile/abstractions.js.map +1 -1
  173. package/features/file/CreateFile/events.js +17 -26
  174. package/features/file/CreateFile/events.js.map +1 -1
  175. package/features/file/CreateFile/feature.js +7 -6
  176. package/features/file/CreateFile/feature.js.map +1 -1
  177. package/features/file/CreateFile/index.js +0 -2
  178. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +15 -17
  179. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -1
  180. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +59 -70
  181. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -1
  182. package/features/file/CreateFilesInBatch/abstractions.js +3 -14
  183. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -1
  184. package/features/file/CreateFilesInBatch/events.js +17 -26
  185. package/features/file/CreateFilesInBatch/events.js.map +1 -1
  186. package/features/file/CreateFilesInBatch/feature.js +7 -6
  187. package/features/file/CreateFilesInBatch/feature.js.map +1 -1
  188. package/features/file/CreateFilesInBatch/index.js +0 -2
  189. package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
  190. package/features/file/DeleteFile/DeleteFileRepository.js +23 -21
  191. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
  192. package/features/file/DeleteFile/DeleteFileUseCase.js +31 -33
  193. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -1
  194. package/features/file/DeleteFile/abstractions.js +3 -14
  195. package/features/file/DeleteFile/abstractions.js.map +1 -1
  196. package/features/file/DeleteFile/events.js +17 -26
  197. package/features/file/DeleteFile/events.js.map +1 -1
  198. package/features/file/DeleteFile/feature.js +7 -6
  199. package/features/file/DeleteFile/feature.js.map +1 -1
  200. package/features/file/DeleteFile/index.js +1 -3
  201. package/features/file/FileModelProvider.d.ts +31 -0
  202. package/features/file/FileModelProvider.js +22 -0
  203. package/features/file/FileModelProvider.js.map +1 -0
  204. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
  205. package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
  206. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  207. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
  208. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +28 -0
  209. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
  210. package/features/file/FileUrlGenerator/abstractions.d.ts +15 -4
  211. package/features/file/FileUrlGenerator/abstractions.js +3 -2
  212. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  213. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  214. package/features/file/FileUrlGenerator/feature.js +13 -0
  215. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  216. package/features/file/FileUrlGenerator/index.d.ts +2 -0
  217. package/features/file/FileUrlGenerator/index.js +1 -0
  218. package/features/file/GetFile/GetFileRepository.d.ts +3 -3
  219. package/features/file/GetFile/GetFileRepository.js +24 -23
  220. package/features/file/GetFile/GetFileRepository.js.map +1 -1
  221. package/features/file/GetFile/GetFileUseCase.js +19 -21
  222. package/features/file/GetFile/GetFileUseCase.js.map +1 -1
  223. package/features/file/GetFile/abstractions.js +3 -14
  224. package/features/file/GetFile/abstractions.js.map +1 -1
  225. package/features/file/GetFile/feature.js +7 -6
  226. package/features/file/GetFile/feature.js.map +1 -1
  227. package/features/file/GetFile/index.js +0 -2
  228. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  229. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  230. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  231. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  232. package/features/file/GetFileByUrl/abstractions.js +5 -0
  233. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  234. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  235. package/features/file/GetFileByUrl/feature.js +11 -0
  236. package/features/file/GetFileByUrl/feature.js.map +1 -0
  237. package/features/file/GetFileByUrl/index.d.ts +1 -0
  238. package/features/file/GetFileByUrl/index.js +1 -0
  239. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  240. package/features/file/GetFileContentsById/abstractions.js +5 -0
  241. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  242. package/features/file/GetFileContentsById/index.d.ts +1 -0
  243. package/features/file/GetFileContentsById/index.js +1 -0
  244. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  245. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  246. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  247. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  248. package/features/file/GetFileContentsByKey/index.js +1 -0
  249. package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
  250. package/features/file/ListFiles/ListFilesRepository.js +44 -41
  251. package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
  252. package/features/file/ListFiles/ListFilesUseCase.js +33 -34
  253. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -1
  254. package/features/file/ListFiles/abstractions.js +3 -14
  255. package/features/file/ListFiles/abstractions.js.map +1 -1
  256. package/features/file/ListFiles/feature.js +7 -6
  257. package/features/file/ListFiles/feature.js.map +1 -1
  258. package/features/file/ListFiles/index.js +0 -2
  259. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +15 -5
  260. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +46 -29
  261. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
  262. package/features/file/ListImagesByTagTool/feature.js +6 -5
  263. package/features/file/ListImagesByTagTool/feature.js.map +1 -1
  264. package/features/file/ListTags/ListTagsRepository.d.ts +3 -3
  265. package/features/file/ListTags/ListTagsRepository.js +33 -37
  266. package/features/file/ListTags/ListTagsRepository.js.map +1 -1
  267. package/features/file/ListTags/ListTagsUseCase.js +21 -21
  268. package/features/file/ListTags/ListTagsUseCase.js.map +1 -1
  269. package/features/file/ListTags/abstractions.js +3 -14
  270. package/features/file/ListTags/abstractions.js.map +1 -1
  271. package/features/file/ListTags/feature.js +7 -6
  272. package/features/file/ListTags/feature.js.map +1 -1
  273. package/features/file/ListTags/index.js +0 -2
  274. package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
  275. package/features/file/UpdateFile/UpdateFileRepository.js +28 -29
  276. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
  277. package/features/file/UpdateFile/UpdateFileUseCase.js +57 -65
  278. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -1
  279. package/features/file/UpdateFile/abstractions.js +3 -14
  280. package/features/file/UpdateFile/abstractions.js.map +1 -1
  281. package/features/file/UpdateFile/events.js +17 -26
  282. package/features/file/UpdateFile/events.js.map +1 -1
  283. package/features/file/UpdateFile/feature.js +7 -6
  284. package/features/file/UpdateFile/feature.js.map +1 -1
  285. package/features/file/UpdateFile/index.js +1 -3
  286. package/features/file/shared/EntryToFileMapper.js +25 -24
  287. package/features/file/shared/EntryToFileMapper.js.map +1 -1
  288. package/features/file/shared/FileInputToEntryInputMapper.js +29 -28
  289. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -1
  290. package/features/file/shared/FileToEntryMapper.js +28 -27
  291. package/features/file/shared/FileToEntryMapper.js.map +1 -1
  292. package/features/permissions/abstractions.js +2 -1
  293. package/features/permissions/abstractions.js.map +1 -1
  294. package/features/permissions/feature.js +2 -1
  295. package/features/permissions/feature.js.map +1 -1
  296. package/features/settings/GetSettings/GetSettingsUseCase.js +19 -19
  297. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -1
  298. package/features/settings/GetSettings/abstractions.js +2 -7
  299. package/features/settings/GetSettings/abstractions.js.map +1 -1
  300. package/features/settings/GetSettings/feature.js +6 -5
  301. package/features/settings/GetSettings/feature.js.map +1 -1
  302. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +3 -1
  303. package/features/settings/SettingsInstaller/SettingsInstaller.js +29 -25
  304. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  305. package/features/settings/SettingsInstaller/feature.js +6 -5
  306. package/features/settings/SettingsInstaller/feature.js.map +1 -1
  307. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +41 -48
  308. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
  309. package/features/settings/UpdateSettings/abstractions.js +2 -7
  310. package/features/settings/UpdateSettings/abstractions.js.map +1 -1
  311. package/features/settings/UpdateSettings/events.js +17 -26
  312. package/features/settings/UpdateSettings/events.js.map +1 -1
  313. package/features/settings/UpdateSettings/feature.js +6 -5
  314. package/features/settings/UpdateSettings/feature.js.map +1 -1
  315. package/features/settings/UpdateSettings/index.js +0 -2
  316. package/features/shared/abstractions.js +0 -2
  317. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  318. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  319. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  320. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  321. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  322. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  323. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  324. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  325. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  326. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  327. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  328. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  329. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  330. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  331. package/features/upload/GetUploadPayload/index.js +1 -0
  332. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  333. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  334. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  335. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  336. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  337. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  338. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  339. package/features/upload/ReadFileMetadata/feature.js +11 -0
  340. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  341. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  342. package/features/upload/ReadFileMetadata/index.js +1 -0
  343. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  344. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  345. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  346. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  347. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  348. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  349. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  350. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  351. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  352. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  353. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  354. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  355. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  356. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  357. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  358. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  359. package/features/upload/WriteFileMetadata/feature.js +17 -0
  360. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  361. package/features/upload/index.d.ts +17 -0
  362. package/features/upload/index.js +10 -0
  363. package/features/upload/types.d.ts +28 -0
  364. package/features/upload/types.js +0 -0
  365. package/features/upload/utils/FileExtension.d.ts +6 -0
  366. package/features/upload/utils/FileExtension.js +16 -0
  367. package/features/upload/utils/FileExtension.js.map +1 -0
  368. package/features/upload/utils/FileKey.d.ts +11 -0
  369. package/features/upload/utils/FileKey.js +33 -0
  370. package/features/upload/utils/FileKey.js.map +1 -0
  371. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  372. package/features/upload/utils/FileNormalizer.js +41 -0
  373. package/features/upload/utils/FileNormalizer.js.map +1 -0
  374. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  375. package/features/upload/utils/FileUploadModifier.js +39 -0
  376. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  377. package/features/upload/utils/checkPermissions.d.ts +5 -0
  378. package/features/upload/utils/checkPermissions.js +22 -0
  379. package/features/upload/utils/checkPermissions.js.map +1 -0
  380. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  381. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  382. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  383. package/features/upload/utils/mimeTypes.d.ts +1 -0
  384. package/features/upload/utils/mimeTypes.js +9 -0
  385. package/features/upload/utils/mimeTypes.js.map +1 -0
  386. package/graphql/FmGraphQLSchema.d.ts +24 -0
  387. package/graphql/FmGraphQLSchema.js +458 -0
  388. package/graphql/FmGraphQLSchema.js.map +1 -0
  389. package/index.d.ts +3 -6
  390. package/index.js +11 -33
  391. package/index.js.map +1 -1
  392. package/package.json +28 -21
  393. package/types.d.ts +1 -1
  394. package/types.js +1 -3
  395. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +0 -65
  396. package/delivery/AssetDelivery/AssetDeliveryConfig.js +0 -94
  397. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +0 -1
  398. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +0 -6
  399. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +0 -30
  400. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +0 -1
  401. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +0 -4
  402. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +0 -8
  403. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +0 -1
  404. package/delivery/AssetDelivery/NullAssetReply.js +0 -13
  405. package/delivery/AssetDelivery/NullAssetReply.js.map +0 -1
  406. package/delivery/AssetDelivery/NullAssetResolver.d.ts +0 -5
  407. package/delivery/AssetDelivery/NullAssetResolver.js +0 -7
  408. package/delivery/AssetDelivery/NullAssetResolver.js.map +0 -1
  409. package/delivery/AssetDelivery/NullRequestResolver.d.ts +0 -4
  410. package/delivery/AssetDelivery/NullRequestResolver.js +0 -7
  411. package/delivery/AssetDelivery/NullRequestResolver.js.map +0 -1
  412. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +0 -8
  413. package/delivery/AssetDelivery/SetCacheControlHeaders.js +0 -18
  414. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +0 -1
  415. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +0 -18
  416. package/delivery/AssetDelivery/SetResponseHeaders.js +0 -18
  417. package/delivery/AssetDelivery/SetResponseHeaders.js.map +0 -1
  418. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +0 -4
  419. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -3
  420. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
  421. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +0 -4
  422. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -3
  423. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
  424. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +0 -4
  425. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -3
  426. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
  427. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +0 -5
  428. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -3
  429. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
  430. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +0 -4
  431. package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -3
  432. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
  433. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +0 -4
  434. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -3
  435. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
  436. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +0 -4
  437. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -3
  438. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
  439. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +0 -4
  440. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +0 -19
  441. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +0 -1
  442. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +0 -4
  443. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +0 -8
  444. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +0 -1
  445. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +0 -8
  446. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +0 -20
  447. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +0 -1
  448. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +0 -6
  449. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +0 -21
  450. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +0 -1
  451. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +0 -8
  452. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +0 -30
  453. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +0 -1
  454. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +0 -13
  455. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +0 -63
  456. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +0 -1
  457. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +0 -6
  458. package/delivery/AssetDelivery/privateFiles/PublicCache.js +0 -21
  459. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +0 -1
  460. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +0 -7
  461. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +0 -20
  462. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +0 -1
  463. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +0 -7
  464. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +0 -20
  465. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +0 -1
  466. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +0 -4
  467. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +0 -7
  468. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +0 -1
  469. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -4
  470. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -7
  471. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  472. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +0 -6
  473. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +0 -19
  474. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +0 -1
  475. package/delivery/index.js.map +0 -1
  476. package/domain/file/types.js.map +0 -1
  477. package/domain/settings/types.js.map +0 -1
  478. package/exports/api/file-manager/file.js.map +0 -1
  479. package/exports/api/file-manager/permissions.js.map +0 -1
  480. package/exports/api/file-manager/settings.js.map +0 -1
  481. package/features/file/CreateFile/index.js.map +0 -1
  482. package/features/file/CreateFilesInBatch/index.js.map +0 -1
  483. package/features/file/DeleteFile/index.js.map +0 -1
  484. package/features/file/GetFile/index.js.map +0 -1
  485. package/features/file/GetFileContents/abstractions.d.ts +0 -20
  486. package/features/file/GetFileContents/abstractions.js +0 -4
  487. package/features/file/GetFileContents/abstractions.js.map +0 -1
  488. package/features/file/GetFileContents/index.d.ts +0 -1
  489. package/features/file/GetFileContents/index.js +0 -3
  490. package/features/file/GetFileContents/index.js.map +0 -1
  491. package/features/file/ListFiles/index.js.map +0 -1
  492. package/features/file/ListTags/index.js.map +0 -1
  493. package/features/file/UpdateFile/index.js.map +0 -1
  494. package/features/settings/UpdateSettings/index.js.map +0 -1
  495. package/features/shared/abstractions.js.map +0 -1
  496. package/graphql/baseSchema.d.ts +0 -3
  497. package/graphql/baseSchema.js +0 -103
  498. package/graphql/baseSchema.js.map +0 -1
  499. package/graphql/createFilesTypeDefs.d.ts +0 -8
  500. package/graphql/createFilesTypeDefs.js +0 -199
  501. package/graphql/createFilesTypeDefs.js.map +0 -1
  502. package/graphql/filesSchema.d.ts +0 -4
  503. package/graphql/filesSchema.js +0 -116
  504. package/graphql/filesSchema.js.map +0 -1
  505. package/graphql/getFileByUrl.d.ts +0 -3
  506. package/graphql/getFileByUrl.js +0 -69
  507. package/graphql/getFileByUrl.js.map +0 -1
  508. package/graphql/index.d.ts +0 -4
  509. package/graphql/index.js +0 -54
  510. package/graphql/index.js.map +0 -1
  511. package/graphql/utils.d.ts +0 -11
  512. package/graphql/utils.js +0 -17
  513. package/graphql/utils.js.map +0 -1
  514. package/modelModifier/CmsModelModifier.d.ts +0 -26
  515. package/modelModifier/CmsModelModifier.js +0 -54
  516. package/modelModifier/CmsModelModifier.js.map +0 -1
  517. package/types.js.map +0 -1
  518. /package/{delivery/AssetDelivery → features/assetDelivery}/NullAssetReply.d.ts +0 -0
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * ListFiles repository interface
5
- */
6
-
7
- /** Fetch files from storage with filtering. */
8
- export const ListFilesRepository = createAbstraction("ListFilesRepository");
9
-
10
- /**
11
- * ListFiles use case interface
12
- */
13
-
14
- /** List files with filtering and pagination. */
15
- export const ListFilesUseCase = createAbstraction("ListFilesUseCase");
2
+ const ListFilesRepository = createAbstraction("ListFilesRepository");
3
+ const ListFilesUseCase = createAbstraction("ListFilesUseCase");
4
+ export { ListFilesRepository, ListFilesUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListFilesRepository","ListFilesUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { type FilePersistenceError, FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\nexport interface ListFilesInput {\n limit?: number;\n after?: string | null;\n where?: Record<string, any>;\n sort?: Array<`${string}_ASC` | `${string}_DESC`>;\n search?: string;\n}\n\nexport interface ListFilesOutput {\n items: File[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListFiles repository interface\n */\nexport interface IListFilesRepository {\n execute(input: ListFilesInput): Promise<Result<ListFilesOutput, RepositoryError>>;\n}\n\nexport interface IListFilesRepositoryErrors {\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IListFilesRepositoryErrors[keyof IListFilesRepositoryErrors];\n\n/** Fetch files from storage with filtering. */\nexport const ListFilesRepository = createAbstraction<IListFilesRepository>(\"ListFilesRepository\");\n\nexport namespace ListFilesRepository {\n export type Interface = IListFilesRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFiles use case interface\n */\nexport interface IListFilesUseCase {\n execute(input: ListFilesInput): Promise<Result<ListFilesOutput, UseCaseError>>;\n}\n\nexport interface IListFilesUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IListFilesUseCaseErrors[keyof IListFilesUseCaseErrors];\n\n/** List files with filtering and pagination. */\nexport const ListFilesUseCase = createAbstraction<IListFilesUseCase>(\"ListFilesUseCase\");\n\nexport namespace ListFilesUseCase {\n export type Interface = IListFilesUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAmBvD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAOjG;AACA;AACA;;AAYA;AACA,OAAO,MAAME,gBAAgB,GAAGF,iBAAiB,CAAoB,kBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListFiles/abstractions.js","sources":["../../../../src/features/file/ListFiles/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { type FilePersistenceError, FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\nexport interface ListFilesInput {\n limit?: number;\n after?: string | null;\n where?: Record<string, any>;\n sort?: Array<`${string}_ASC` | `${string}_DESC`>;\n search?: string;\n}\n\nexport interface ListFilesOutput {\n items: File[];\n meta: CmsEntryMeta;\n}\n\n/**\n * ListFiles repository interface\n */\nexport interface IListFilesRepository {\n execute(input: ListFilesInput): Promise<Result<ListFilesOutput, RepositoryError>>;\n}\n\nexport interface IListFilesRepositoryErrors {\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IListFilesRepositoryErrors[keyof IListFilesRepositoryErrors];\n\n/** Fetch files from storage with filtering. */\nexport const ListFilesRepository = createAbstraction<IListFilesRepository>(\"ListFilesRepository\");\n\nexport namespace ListFilesRepository {\n export type Interface = IListFilesRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * ListFiles use case interface\n */\nexport interface IListFilesUseCase {\n execute(input: ListFilesInput): Promise<Result<ListFilesOutput, UseCaseError>>;\n}\n\nexport interface IListFilesUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IListFilesUseCaseErrors[keyof IListFilesUseCaseErrors];\n\n/** List files with filtering and pagination. */\nexport const ListFilesUseCase = createAbstraction<IListFilesUseCase>(\"ListFilesUseCase\");\n\nexport namespace ListFilesUseCase {\n export type Interface = IListFilesUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["ListFilesRepository","createAbstraction","ListFilesUseCase"],"mappings":";AAiCO,MAAMA,sBAAsBC,kBAAwC;AAsBpE,MAAMC,mBAAmBD,kBAAqC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListFilesRepository } from "./ListFilesRepository.js";
3
3
  import { ListFilesUseCase } from "./ListFilesUseCase.js";
4
- export const ListFilesFeature = createFeature({
5
- name: "FileManager/ListFiles",
6
- register(container) {
7
- container.register(ListFilesUseCase);
8
- container.register(ListFilesRepository).inSingletonScope();
9
- }
4
+ const ListFilesFeature = createFeature({
5
+ name: "FileManager/ListFiles",
6
+ register (container) {
7
+ container.register(ListFilesUseCase);
8
+ container.register(ListFilesRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { ListFilesFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListFilesRepository","ListFilesUseCase","ListFilesFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListFilesRepository } from \"./ListFilesRepository.js\";\nimport { ListFilesUseCase } from \"./ListFilesUseCase.js\";\n\nexport const ListFilesFeature = createFeature({\n name: \"FileManager/ListFiles\",\n register(container) {\n container.register(ListFilesUseCase);\n container.register(ListFilesRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAC;EAC1CI,IAAI,EAAE,uBAAuB;EAC7BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,gBAAgB,CAAC;IACpCI,SAAS,CAACD,QAAQ,CAACJ,mBAAmB,CAAC,CAACM,gBAAgB,CAAC,CAAC;EAC9D;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListFiles/feature.js","sources":["../../../../src/features/file/ListFiles/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListFilesRepository } from \"./ListFilesRepository.js\";\nimport { ListFilesUseCase } from \"./ListFilesUseCase.js\";\n\nexport const ListFilesFeature = createFeature({\n name: \"FileManager/ListFiles\",\n register(container) {\n container.register(ListFilesUseCase);\n container.register(ListFilesRepository).inSingletonScope();\n }\n});\n"],"names":["ListFilesFeature","createFeature","container","ListFilesUseCase","ListFilesRepository"],"mappings":";;;AAIO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,qBAAqB,gBAAgB;IAC5D;AACJ"}
@@ -1,3 +1 @@
1
1
  export { ListFilesUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { type IAiSdkTool } from "@webiny/api-core/features/ai/index.js";
2
+ import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
3
3
  import { ListFilesUseCase } from "../../../features/file/ListFiles/index.js";
4
4
  declare const inputSchema: z.ZodObject<{
5
5
  tag: z.ZodString;
@@ -11,17 +11,27 @@ interface ImageItem {
11
11
  type: string;
12
12
  tags: string[];
13
13
  }
14
- declare class ListImagesByTagToolImpl implements IAiSdkTool<Input> {
14
+ declare class ListImagesByTagToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {
15
15
  private listFiles;
16
+ constructor(listFiles: ListFilesUseCase.Interface);
17
+ execute(input: Input): Promise<ImageItem[]>;
18
+ }
19
+ declare class ListImagesByTagToolImpl implements AiSdkToolDefinition.Interface<Input> {
16
20
  readonly name = "listImagesByTag";
21
+ readonly title = "List images by tag";
17
22
  readonly description = "Lists images from the file manager filtered by a given tag. Returns name, type, and tags for each image.";
18
23
  readonly inputSchema: z.ZodObject<{
19
24
  tag: z.ZodString;
20
25
  }, z.core.$strip>;
21
- constructor(listFiles: ListFilesUseCase.Interface);
22
- execute(input: Input): Promise<ImageItem[]>;
26
+ readonly annotations: {
27
+ readOnlyHint: boolean;
28
+ idempotentHint: boolean;
29
+ };
30
+ readonly handler: typeof ListImagesByTagToolHandlerImpl & {
31
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions").IAiSdkToolHandler<any>>;
32
+ };
23
33
  }
24
34
  export declare const ListImagesByTagTool: typeof ListImagesByTagToolImpl & {
25
- __abstraction: import("@webiny/di").Abstraction<IAiSdkTool<any>>;
35
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/ai/abstractions").IAiSdkToolDefinition<any>>;
26
36
  };
27
37
  export {};
@@ -1,39 +1,56 @@
1
1
  import { z } from "zod";
2
- import { AiSdkTool } from "@webiny/api-core/features/ai/index.js";
2
+ import { AiSdkToolDefinition, AiSdkToolHandler } from "@webiny/api-core/features/ai/index.js";
3
3
  import { ListFilesUseCase } from "../ListFiles/index.js";
4
4
  const inputSchema = z.object({
5
- tag: z.string().describe("Tag to filter images by")
5
+ tag: z.string().describe("Tag to filter images by")
6
+ });
7
+ class ListImagesByTagToolHandlerImpl {
8
+ constructor(listFiles){
9
+ this.listFiles = listFiles;
10
+ }
11
+ async execute(input) {
12
+ console.log("Call images tool", input);
13
+ const result = await this.listFiles.execute({
14
+ where: {
15
+ type_startsWith: "image/",
16
+ tags_in: [
17
+ input.tag
18
+ ]
19
+ },
20
+ limit: 50
21
+ });
22
+ if (result.isFail()) return [];
23
+ return result.value.items.map((file)=>({
24
+ id: file.id,
25
+ name: file.name,
26
+ type: file.type,
27
+ tags: file.tags
28
+ }));
29
+ }
30
+ }
31
+ const ListImagesByTagToolHandler = AiSdkToolHandler.createImplementation({
32
+ implementation: ListImagesByTagToolHandlerImpl,
33
+ dependencies: [
34
+ ListFilesUseCase
35
+ ]
6
36
  });
7
37
  class ListImagesByTagToolImpl {
8
- name = "listImagesByTag";
9
- description = "Lists images from the file manager filtered by a given tag. Returns name, type, and tags for each image.";
10
- inputSchema = inputSchema;
11
- constructor(listFiles) {
12
- this.listFiles = listFiles;
13
- }
14
- async execute(input) {
15
- console.log("Call images tool", input);
16
- const result = await this.listFiles.execute({
17
- where: {
18
- type_startsWith: "image/",
19
- tags_in: [input.tag]
20
- },
21
- limit: 50
22
- });
23
- if (result.isFail()) {
24
- return [];
38
+ constructor(){
39
+ this.name = "listImagesByTag";
40
+ this.title = "List images by tag";
41
+ this.description = "Lists images from the file manager filtered by a given tag. Returns name, type, and tags for each image.";
42
+ this.inputSchema = inputSchema;
43
+ this.annotations = {
44
+ readOnlyHint: true,
45
+ idempotentHint: true
46
+ };
47
+ this.handler = ListImagesByTagToolHandler;
25
48
  }
26
- return result.value.items.map(file => ({
27
- id: file.id,
28
- name: file.name,
29
- type: file.type,
30
- tags: file.tags
31
- }));
32
- }
33
49
  }
34
- export const ListImagesByTagTool = AiSdkTool.createImplementation({
35
- implementation: ListImagesByTagToolImpl,
36
- dependencies: [ListFilesUseCase]
50
+ const ListImagesByTagTool = AiSdkToolDefinition.createImplementation({
51
+ implementation: ListImagesByTagToolImpl,
52
+ dependencies: []
37
53
  });
54
+ export { ListImagesByTagTool };
38
55
 
39
56
  //# sourceMappingURL=ListImagesByTagTool.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","AiSdkTool","ListFilesUseCase","inputSchema","object","tag","string","describe","ListImagesByTagToolImpl","name","description","constructor","listFiles","execute","input","console","log","result","where","type_startsWith","tags_in","limit","isFail","value","items","map","file","id","type","tags","ListImagesByTagTool","createImplementation","implementation","dependencies"],"sources":["ListImagesByTagTool.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiSdkTool, type IAiSdkTool } from \"@webiny/api-core/features/ai/index.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/index.js\";\n\nconst inputSchema = z.object({\n tag: z.string().describe(\"Tag to filter images by\")\n});\n\ntype Input = z.infer<typeof inputSchema>;\n\ninterface ImageItem {\n id: string;\n name: string;\n type: string;\n tags: string[];\n}\n\nclass ListImagesByTagToolImpl implements IAiSdkTool<Input> {\n readonly name = \"listImagesByTag\";\n readonly description =\n \"Lists images from the file manager filtered by a given tag. Returns name, type, and tags for each image.\";\n readonly inputSchema = inputSchema;\n\n constructor(private listFiles: ListFilesUseCase.Interface) {}\n\n async execute(input: Input): Promise<ImageItem[]> {\n console.log(\"Call images tool\", input);\n const result = await this.listFiles.execute({\n where: {\n type_startsWith: \"image/\",\n tags_in: [input.tag]\n },\n limit: 50\n });\n\n if (result.isFail()) {\n return [];\n }\n\n return result.value.items.map(file => ({\n id: file.id,\n name: file.name,\n type: file.type,\n tags: file.tags\n }));\n }\n}\n\nexport const ListImagesByTagTool = AiSdkTool.createImplementation({\n implementation: ListImagesByTagToolImpl,\n dependencies: [ListFilesUseCase]\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,SAAS,QAAyB,uCAAuC;AAClF,SAASC,gBAAgB;AAEzB,MAAMC,WAAW,GAAGH,CAAC,CAACI,MAAM,CAAC;EACzBC,GAAG,EAAEL,CAAC,CAACM,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,yBAAyB;AACtD,CAAC,CAAC;AAWF,MAAMC,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,iBAAiB;EACxBC,WAAW,GAChB,0GAA0G;EACrGP,WAAW,GAAGA,WAAW;EAElCQ,WAAWA,CAASC,SAAqC,EAAE;IAAA,KAAvCA,SAAqC,GAArCA,SAAqC;EAAG;EAE5D,MAAMC,OAAOA,CAACC,KAAY,EAAwB;IAC9CC,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAEF,KAAK,CAAC;IACtC,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACL,SAAS,CAACC,OAAO,CAAC;MACxCK,KAAK,EAAE;QACHC,eAAe,EAAE,QAAQ;QACzBC,OAAO,EAAE,CAACN,KAAK,CAACT,GAAG;MACvB,CAAC;MACDgB,KAAK,EAAE;IACX,CAAC,CAAC;IAEF,IAAIJ,MAAM,CAACK,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO,EAAE;IACb;IAEA,OAAOL,MAAM,CAACM,KAAK,CAACC,KAAK,CAACC,GAAG,CAACC,IAAI,KAAK;MACnCC,EAAE,EAAED,IAAI,CAACC,EAAE;MACXlB,IAAI,EAAEiB,IAAI,CAACjB,IAAI;MACfmB,IAAI,EAAEF,IAAI,CAACE,IAAI;MACfC,IAAI,EAAEH,IAAI,CAACG;IACf,CAAC,CAAC,CAAC;EACP;AACJ;AAEA,OAAO,MAAMC,mBAAmB,GAAG7B,SAAS,CAAC8B,oBAAoB,CAAC;EAC9DC,cAAc,EAAExB,uBAAuB;EACvCyB,YAAY,EAAE,CAAC/B,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListImagesByTagTool/ListImagesByTagTool.js","sources":["../../../../src/features/file/ListImagesByTagTool/ListImagesByTagTool.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiSdkToolDefinition, AiSdkToolHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/index.js\";\n\nconst inputSchema = z.object({\n tag: z.string().describe(\"Tag to filter images by\")\n});\n\ntype Input = z.infer<typeof inputSchema>;\n\ninterface ImageItem {\n id: string;\n name: string;\n type: string;\n tags: string[];\n}\n\nclass ListImagesByTagToolHandlerImpl implements AiSdkToolHandler.Interface<Input> {\n constructor(private listFiles: ListFilesUseCase.Interface) {}\n\n async execute(input: Input): Promise<ImageItem[]> {\n console.log(\"Call images tool\", input);\n const result = await this.listFiles.execute({\n where: {\n type_startsWith: \"image/\",\n tags_in: [input.tag]\n },\n limit: 50\n });\n\n if (result.isFail()) {\n return [];\n }\n\n return result.value.items.map(file => ({\n id: file.id,\n name: file.name,\n type: file.type,\n tags: file.tags\n }));\n }\n}\n\nconst ListImagesByTagToolHandler = AiSdkToolHandler.createImplementation({\n implementation: ListImagesByTagToolHandlerImpl,\n dependencies: [ListFilesUseCase]\n});\n\nclass ListImagesByTagToolImpl implements AiSdkToolDefinition.Interface<Input> {\n readonly name = \"listImagesByTag\";\n readonly title = \"List images by tag\";\n readonly description =\n \"Lists images from the file manager filtered by a given tag. Returns name, type, and tags for each image.\";\n readonly inputSchema = inputSchema;\n readonly annotations = { readOnlyHint: true, idempotentHint: true };\n readonly handler = ListImagesByTagToolHandler;\n}\n\nexport const ListImagesByTagTool = AiSdkToolDefinition.createImplementation({\n implementation: ListImagesByTagToolImpl,\n dependencies: []\n});\n"],"names":["inputSchema","z","ListImagesByTagToolHandlerImpl","listFiles","input","console","result","file","ListImagesByTagToolHandler","AiSdkToolHandler","ListFilesUseCase","ListImagesByTagToolImpl","ListImagesByTagTool","AiSdkToolDefinition"],"mappings":";;;AAIA,MAAMA,cAAcC,EAAE,MAAM,CAAC;IACzB,KAAKA,EAAE,MAAM,GAAG,QAAQ,CAAC;AAC7B;AAWA,MAAMC;IACF,YAAoBC,SAAqC,CAAE;aAAvCA,SAAS,GAATA;IAAwC;IAE5D,MAAM,QAAQC,KAAY,EAAwB;QAC9CC,QAAQ,GAAG,CAAC,oBAAoBD;QAChC,MAAME,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACxC,OAAO;gBACH,iBAAiB;gBACjB,SAAS;oBAACF,MAAM,GAAG;iBAAC;YACxB;YACA,OAAO;QACX;QAEA,IAAIE,OAAO,MAAM,IACb,OAAO,EAAE;QAGb,OAAOA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAACC,CAAAA,OAAS;gBACnC,IAAIA,KAAK,EAAE;gBACX,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;YACnB;IACJ;AACJ;AAEA,MAAMC,6BAA6BC,iBAAiB,oBAAoB,CAAC;IACrE,gBAAgBP;IAChB,cAAc;QAACQ;KAAiB;AACpC;AAEA,MAAMC;;aACO,IAAI,GAAG;aACP,KAAK,GAAG;aACR,WAAW,GAChB;aACK,WAAW,GAAGX;aACd,WAAW,GAAG;YAAE,cAAc;YAAM,gBAAgB;QAAK;aACzD,OAAO,GAAGQ;;AACvB;AAEO,MAAMI,sBAAsBC,oBAAoB,oBAAoB,CAAC;IACxE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListImagesByTagTool } from "./ListImagesByTagTool.js";
3
- export const ListImagesByTagToolFeature = createFeature({
4
- name: "AiPowerUps/ListImagesByTagTool",
5
- register(container) {
6
- container.register(ListImagesByTagTool);
7
- }
3
+ const ListImagesByTagToolFeature = createFeature({
4
+ name: "AiPowerUps/ListImagesByTagTool",
5
+ register (container) {
6
+ container.register(ListImagesByTagTool);
7
+ }
8
8
  });
9
+ export { ListImagesByTagToolFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListImagesByTagTool","ListImagesByTagToolFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListImagesByTagTool } from \"./ListImagesByTagTool.js\";\n\nexport const ListImagesByTagToolFeature = createFeature({\n name: \"AiPowerUps/ListImagesByTagTool\",\n register(container) {\n container.register(ListImagesByTagTool);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,0BAA0B,GAAGF,aAAa,CAAC;EACpDG,IAAI,EAAE,gCAAgC;EACtCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC;EAC3C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListImagesByTagTool/feature.js","sources":["../../../../src/features/file/ListImagesByTagTool/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListImagesByTagTool } from \"./ListImagesByTagTool.js\";\n\nexport const ListImagesByTagToolFeature = createFeature({\n name: \"AiPowerUps/ListImagesByTagTool\",\n register(container) {\n container.register(ListImagesByTagTool);\n }\n});\n"],"names":["ListImagesByTagToolFeature","createFeature","container","ListImagesByTagTool"],"mappings":";;AAGO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,13 +1,13 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { GetUniqueFieldValuesUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetUniqueFieldValues";
3
3
  import { ListTagsInput, ListTagsRepository as RepositoryAbstraction, TagItem } from "./abstractions.js";
4
- import { FileModel } from "../../../domain/file/abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
6
6
  declare class ListTagsRepositoryImpl implements RepositoryAbstraction.Interface {
7
7
  private getUniqueFieldValues;
8
- private fileModel;
8
+ private fileModelProvider;
9
9
  private cmsWhereMapper;
10
- constructor(getUniqueFieldValues: GetUniqueFieldValuesUseCase.Interface, fileModel: FileModel.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
10
+ constructor(getUniqueFieldValues: GetUniqueFieldValuesUseCase.Interface, fileModelProvider: FileModelProvider.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
11
11
  execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryAbstraction.Error>>;
12
12
  }
13
13
  export declare const ListTagsRepository: typeof ListTagsRepositoryImpl & {
@@ -1,47 +1,43 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { GetUniqueFieldValuesUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetUniqueFieldValues";
3
- import { ListTagsRepository as RepositoryAbstraction } from "./abstractions.js";
4
- import { FileModel } from "../../../domain/file/abstractions.js";
3
+ import { ListTagsRepository } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import { FilePersistenceError } from "../../../domain/file/errors.js";
6
6
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
7
7
  class ListTagsRepositoryImpl {
8
- constructor(getUniqueFieldValues, fileModel, cmsWhereMapper) {
9
- this.getUniqueFieldValues = getUniqueFieldValues;
10
- this.fileModel = fileModel;
11
- this.cmsWhereMapper = cmsWhereMapper;
12
- }
13
- async execute(input) {
14
- const result = await this.getUniqueFieldValues.execute(this.fileModel, {
15
- fieldId: "tags",
16
- // TODO fix with proper types
17
- // @ts-expect-error
18
- where: this.cmsWhereMapper.map({
19
- input: {
20
- ...(input.where || {}),
21
- latest: true
22
- },
23
- fields: this.fileModel.fields
24
- })
25
- });
26
- if (result.isFail()) {
27
- return Result.fail(new FilePersistenceError(result.error));
8
+ constructor(getUniqueFieldValues, fileModelProvider, cmsWhereMapper){
9
+ this.getUniqueFieldValues = getUniqueFieldValues;
10
+ this.fileModelProvider = fileModelProvider;
11
+ this.cmsWhereMapper = cmsWhereMapper;
12
+ }
13
+ async execute(input) {
14
+ const fileModel = await this.fileModelProvider.get();
15
+ const result = await this.getUniqueFieldValues.execute(fileModel, {
16
+ fieldId: "tags",
17
+ where: this.cmsWhereMapper.map({
18
+ input: {
19
+ ...input.where || {},
20
+ latest: true
21
+ },
22
+ fields: fileModel.fields
23
+ })
24
+ });
25
+ if (result.isFail()) return Result.fail(new FilePersistenceError(result.error));
26
+ const tags = result.value.map((uv)=>({
27
+ tag: uv.value,
28
+ count: uv.count
29
+ })).sort((a, b)=>a.tag < b.tag ? -1 : 1).sort((a, b)=>a.count > b.count ? -1 : 1);
30
+ return Result.ok(tags);
28
31
  }
29
-
30
- // Map to TagItem format
31
- const tags = result.value.map(uv => ({
32
- tag: uv.value,
33
- count: uv.count
34
- }))
35
- // Sort by tag name alphabetically
36
- .sort((a, b) => a.tag < b.tag ? -1 : 1)
37
- // Then sort by count descending (most used first)
38
- .sort((a, b) => a.count > b.count ? -1 : 1);
39
- return Result.ok(tags);
40
- }
41
32
  }
42
- export const ListTagsRepository = RepositoryAbstraction.createImplementation({
43
- implementation: ListTagsRepositoryImpl,
44
- dependencies: [GetUniqueFieldValuesUseCase, FileModel, CmsWhereMapper]
33
+ const ListTagsRepository_ListTagsRepository = ListTagsRepository.createImplementation({
34
+ implementation: ListTagsRepositoryImpl,
35
+ dependencies: [
36
+ GetUniqueFieldValuesUseCase,
37
+ FileModelProvider,
38
+ CmsWhereMapper
39
+ ]
45
40
  });
41
+ export { ListTagsRepository_ListTagsRepository as ListTagsRepository };
46
42
 
47
43
  //# sourceMappingURL=ListTagsRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","GetUniqueFieldValuesUseCase","ListTagsRepository","RepositoryAbstraction","FileModel","FilePersistenceError","CmsWhereMapper","ListTagsRepositoryImpl","constructor","getUniqueFieldValues","fileModel","cmsWhereMapper","execute","input","result","fieldId","where","map","latest","fields","isFail","fail","error","tags","value","uv","tag","count","sort","a","b","ok","createImplementation","implementation","dependencies"],"sources":["ListTagsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetUniqueFieldValuesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetUniqueFieldValues\";\nimport {\n ListTagsInput,\n ListTagsRepository as RepositoryAbstraction,\n TagItem\n} from \"./abstractions.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport { FilePersistenceError } from \"~/domain/file/errors.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListTagsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private getUniqueFieldValues: GetUniqueFieldValuesUseCase.Interface,\n private fileModel: FileModel.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryAbstraction.Error>> {\n const result = await this.getUniqueFieldValues.execute(this.fileModel, {\n fieldId: \"tags\",\n // TODO fix with proper types\n // @ts-expect-error\n where: this.cmsWhereMapper.map({\n input: {\n ...(input.where || {}),\n latest: true\n },\n fields: this.fileModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new FilePersistenceError(result.error));\n }\n\n // Map to TagItem format\n const tags: TagItem[] = result.value\n .map(uv => ({\n tag: uv.value as string,\n count: uv.count\n }))\n // Sort by tag name alphabetically\n .sort((a, b) => (a.tag < b.tag ? -1 : 1))\n // Then sort by count descending (most used first)\n .sort((a, b) => (a.count > b.count ? -1 : 1));\n\n return Result.ok(tags);\n }\n}\n\nexport const ListTagsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListTagsRepositoryImpl,\n dependencies: [GetUniqueFieldValuesUseCase, FileModel, CmsWhereMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,2BAA2B,QAAQ,qEAAqE;AACjH,SAEIC,kBAAkB,IAAIC,qBAAqB;AAG/C,SAASC,SAAS;AAClB,SAASC,oBAAoB;AAC7B,SAASC,cAAc,QAAQ,0BAA0B;AAEzD,MAAMC,sBAAsB,CAA4C;EACpEC,WAAWA,CACCC,oBAA2D,EAC3DC,SAA8B,EAC9BC,cAAwC,EAClD;IAAA,KAHUF,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,cAAwC,GAAxCA,cAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAA2D;IACzF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,oBAAoB,CAACG,OAAO,CAAC,IAAI,CAACF,SAAS,EAAE;MACnEK,OAAO,EAAE,MAAM;MACf;MACA;MACAC,KAAK,EAAE,IAAI,CAACL,cAAc,CAACM,GAAG,CAAC;QAC3BJ,KAAK,EAAE;UACH,IAAIA,KAAK,CAACG,KAAK,IAAI,CAAC,CAAC,CAAC;UACtBE,MAAM,EAAE;QACZ,CAAC;QACDC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS;MAC3B,CAAC;IACL,CAAC,CAAC;IAEF,IAAIL,MAAM,CAACM,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAIhB,oBAAoB,CAACS,MAAM,CAACQ,KAAK,CAAC,CAAC;IAC9D;;IAEA;IACA,MAAMC,IAAe,GAAGT,MAAM,CAACU,KAAK,CAC/BP,GAAG,CAACQ,EAAE,KAAK;MACRC,GAAG,EAAED,EAAE,CAACD,KAAe;MACvBG,KAAK,EAAEF,EAAE,CAACE;IACd,CAAC,CAAC;IACF;IAAA,CACCC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACH,GAAG,GAAGI,CAAC,CAACJ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAE;IACxC;IAAA,CACCE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACF,KAAK,GAAGG,CAAC,CAACH,KAAK,GAAG,CAAC,CAAC,GAAG,CAAE,CAAC;IAEjD,OAAO3B,MAAM,CAAC+B,EAAE,CAACR,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMrB,kBAAkB,GAAGC,qBAAqB,CAAC6B,oBAAoB,CAAC;EACzEC,cAAc,EAAE1B,sBAAsB;EACtC2B,YAAY,EAAE,CAACjC,2BAA2B,EAAEG,SAAS,EAAEE,cAAc;AACzE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListTags/ListTagsRepository.js","sources":["../../../../src/features/file/ListTags/ListTagsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetUniqueFieldValuesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetUniqueFieldValues\";\nimport {\n ListTagsInput,\n ListTagsRepository as RepositoryAbstraction,\n TagItem\n} from \"./abstractions.js\";\nimport { FileModelProvider } from \"~/domain/file/abstractions.js\";\nimport { FilePersistenceError } from \"~/domain/file/errors.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListTagsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private getUniqueFieldValues: GetUniqueFieldValuesUseCase.Interface,\n private fileModelProvider: FileModelProvider.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryAbstraction.Error>> {\n const fileModel = await this.fileModelProvider.get();\n\n const result = await this.getUniqueFieldValues.execute(fileModel, {\n fieldId: \"tags\",\n // TODO fix with proper types\n // @ts-expect-error\n where: this.cmsWhereMapper.map({\n input: {\n ...(input.where || {}),\n latest: true\n },\n fields: fileModel.fields\n })\n });\n\n if (result.isFail()) {\n return Result.fail(new FilePersistenceError(result.error));\n }\n\n // Map to TagItem format\n const tags: TagItem[] = result.value\n .map(uv => ({\n tag: uv.value as string,\n count: uv.count\n }))\n // Sort by tag name alphabetically\n .sort((a, b) => (a.tag < b.tag ? -1 : 1))\n // Then sort by count descending (most used first)\n .sort((a, b) => (a.count > b.count ? -1 : 1));\n\n return Result.ok(tags);\n }\n}\n\nexport const ListTagsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListTagsRepositoryImpl,\n dependencies: [GetUniqueFieldValuesUseCase, FileModelProvider, CmsWhereMapper]\n});\n"],"names":["ListTagsRepositoryImpl","getUniqueFieldValues","fileModelProvider","cmsWhereMapper","input","fileModel","result","Result","FilePersistenceError","tags","uv","a","b","ListTagsRepository","RepositoryAbstraction","GetUniqueFieldValuesUseCase","FileModelProvider","CmsWhereMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,oBAA2D,EAC3DC,iBAA8C,EAC9CC,cAAwC,CAClD;aAHUF,oBAAoB,GAApBA;aACAC,iBAAiB,GAAjBA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAA2D;QACzF,MAAMC,YAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG;QAElD,MAAMC,SAAS,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACD,WAAW;YAC9D,SAAS;YAGT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAO;oBACH,GAAID,MAAM,KAAK,IAAI,CAAC,CAAC;oBACrB,QAAQ;gBACZ;gBACA,QAAQC,UAAU,MAAM;YAC5B;QACJ;QAEA,IAAIC,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,qBAAqBF,OAAO,KAAK;QAI5D,MAAMG,OAAkBH,OAAO,KAAK,CAC/B,GAAG,CAACI,CAAAA,KAAO;gBACR,KAAKA,GAAG,KAAK;gBACb,OAAOA,GAAG,KAAK;YACnB,IAEC,IAAI,CAAC,CAACC,GAAGC,IAAOD,EAAE,GAAG,GAAGC,EAAE,GAAG,GAAG,KAAK,GAErC,IAAI,CAAC,CAACD,GAAGC,IAAOD,EAAE,KAAK,GAAGC,EAAE,KAAK,GAAG,KAAK;QAE9C,OAAOL,OAAO,EAAE,CAACE;IACrB;AACJ;AAEO,MAAMI,wCAAqBC,mBAAAA,oBAA0C,CAAC;IACzE,gBAAgBd;IAChB,cAAc;QAACe;QAA6BC;QAAmBC;KAAe;AAClF"}
@@ -1,31 +1,31 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { ListTagsUseCase as UseCaseAbstraction, ListTagsRepository } from "./abstractions.js";
2
+ import { ListTagsRepository, ListTagsUseCase } from "./abstractions.js";
3
3
  import { FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
4
  import { FmPermissions } from "../../shared/abstractions.js";
5
5
  class ListTagsUseCaseImpl {
6
- constructor(permissions, repository) {
7
- this.permissions = permissions;
8
- this.repository = repository;
9
- }
10
- async execute(input) {
11
- const hasPermission = await this.permissions.canAccess("file");
12
- if (!hasPermission) {
13
- return Result.fail(new FileNotAuthorizedError());
6
+ constructor(permissions, repository){
7
+ this.permissions = permissions;
8
+ this.repository = repository;
14
9
  }
15
- const enrichedInput = {
16
- ...input,
17
- limit: input.limit || 1000000
18
- };
19
- const result = await this.repository.execute(enrichedInput);
20
- if (result.isFail()) {
21
- return Result.fail(result.error);
10
+ async execute(input) {
11
+ const hasPermission = await this.permissions.canAccess("file");
12
+ if (!hasPermission) return Result.fail(new FileNotAuthorizedError());
13
+ const enrichedInput = {
14
+ ...input,
15
+ limit: input.limit || 1000000
16
+ };
17
+ const result = await this.repository.execute(enrichedInput);
18
+ if (result.isFail()) return Result.fail(result.error);
19
+ return Result.ok(result.value);
22
20
  }
23
- return Result.ok(result.value);
24
- }
25
21
  }
26
- export const ListTagsUseCase = UseCaseAbstraction.createImplementation({
27
- implementation: ListTagsUseCaseImpl,
28
- dependencies: [FmPermissions, ListTagsRepository]
22
+ const ListTagsUseCase_ListTagsUseCase = ListTagsUseCase.createImplementation({
23
+ implementation: ListTagsUseCaseImpl,
24
+ dependencies: [
25
+ FmPermissions,
26
+ ListTagsRepository
27
+ ]
29
28
  });
29
+ export { ListTagsUseCase_ListTagsUseCase as ListTagsUseCase };
30
30
 
31
31
  //# sourceMappingURL=ListTagsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","ListTagsUseCase","UseCaseAbstraction","ListTagsRepository","FileNotAuthorizedError","FmPermissions","ListTagsUseCaseImpl","constructor","permissions","repository","execute","input","hasPermission","canAccess","fail","enrichedInput","limit","result","isFail","error","ok","value","createImplementation","implementation","dependencies"],"sources":["ListTagsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListTagsUseCase as UseCaseAbstraction,\n ListTagsInput,\n TagItem,\n ListTagsRepository\n} from \"./abstractions.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\n\nclass ListTagsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: FmPermissions.Interface,\n private repository: ListTagsRepository.Interface\n ) {}\n\n async execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canAccess(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n const enrichedInput: ListTagsInput = {\n ...input,\n limit: input.limit || 1000000\n };\n\n const result = await this.repository.execute(enrichedInput);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const ListTagsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListTagsUseCaseImpl,\n dependencies: [FmPermissions, ListTagsRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,eAAe,IAAIC,kBAAkB,EAGrCC,kBAAkB;AAEtB,SAASC,sBAAsB;AAC/B,SAASC,aAAa;AAEtB,MAAMC,mBAAmB,CAAyC;EAC9DC,WAAWA,CACCC,WAAoC,EACpCC,UAAwC,EAClD;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAwC,GAAxCA,UAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAwD;IACtF,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIV,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMW,aAA4B,GAAG;MACjC,GAAGJ,KAAK;MACRK,KAAK,EAAEL,KAAK,CAACK,KAAK,IAAI;IAC1B,CAAC;IAED,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACR,UAAU,CAACC,OAAO,CAACK,aAAa,CAAC;IAE3D,IAAIE,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOlB,MAAM,CAACc,IAAI,CAACG,MAAM,CAACE,KAAK,CAAC;IACpC;IAEA,OAAOnB,MAAM,CAACoB,EAAE,CAACH,MAAM,CAACI,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMpB,eAAe,GAAGC,kBAAkB,CAACoB,oBAAoB,CAAC;EACnEC,cAAc,EAAEjB,mBAAmB;EACnCkB,YAAY,EAAE,CAACnB,aAAa,EAAEF,kBAAkB;AACpD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListTags/ListTagsUseCase.js","sources":["../../../../src/features/file/ListTags/ListTagsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListTagsUseCase as UseCaseAbstraction,\n ListTagsInput,\n TagItem,\n ListTagsRepository\n} from \"./abstractions.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\n\nclass ListTagsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: FmPermissions.Interface,\n private repository: ListTagsRepository.Interface\n ) {}\n\n async execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canAccess(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n const enrichedInput: ListTagsInput = {\n ...input,\n limit: input.limit || 1000000\n };\n\n const result = await this.repository.execute(enrichedInput);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const ListTagsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListTagsUseCaseImpl,\n dependencies: [FmPermissions, ListTagsRepository]\n});\n"],"names":["ListTagsUseCaseImpl","permissions","repository","input","hasPermission","Result","FileNotAuthorizedError","enrichedInput","result","ListTagsUseCase","UseCaseAbstraction","FmPermissions","ListTagsRepository"],"mappings":";;;;AAUA,MAAMA;IACF,YACYC,WAAoC,EACpCC,UAAwC,CAClD;aAFUD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAwD;QACtF,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,gBAA+B;YACjC,GAAGJ,KAAK;YACR,OAAOA,MAAM,KAAK,IAAI;QAC1B;QAEA,MAAMK,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;QAE7C,IAAIC,OAAO,MAAM,IACb,OAAOH,OAAO,IAAI,CAACG,OAAO,KAAK;QAGnC,OAAOH,OAAO,EAAE,CAACG,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMC,kCAAkBC,gBAAAA,oBAAuC,CAAC;IACnE,gBAAgBV;IAChB,cAAc;QAACW;QAAeC;KAAmB;AACrD"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * ListTags repository interface
5
- */
6
-
7
- /** Fetch file tags from storage. */
8
- export const ListTagsRepository = createAbstraction("ListTagsRepository");
9
-
10
- /**
11
- * ListTags use case interface
12
- */
13
-
14
- /** List all file tags. */
15
- export const ListTagsUseCase = createAbstraction("ListTagsUseCase");
2
+ const ListTagsRepository = createAbstraction("ListTagsRepository");
3
+ const ListTagsUseCase = createAbstraction("ListTagsUseCase");
4
+ export { ListTagsRepository, ListTagsUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListTagsRepository","ListTagsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { type FilePersistenceError, FileNotAuthorizedError } from \"~/domain/file/errors.js\";\n\nexport interface ListTagsInput {\n where?: Record<string, any>;\n after?: string | null;\n limit?: number;\n}\n\nexport interface TagItem {\n tag: string;\n count: number;\n}\n\n/**\n * ListTags repository interface\n */\nexport interface IListTagsRepository {\n execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryError>>;\n}\n\nexport interface IListTagsRepositoryErrors {\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IListTagsRepositoryErrors[keyof IListTagsRepositoryErrors];\n\n/** Fetch file tags from storage. */\nexport const ListTagsRepository = createAbstraction<IListTagsRepository>(\"ListTagsRepository\");\n\nexport namespace ListTagsRepository {\n export type Interface = IListTagsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * ListTags use case interface\n */\nexport interface IListTagsUseCase {\n execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseError>>;\n}\n\nexport interface IListTagsUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IListTagsUseCaseErrors[keyof IListTagsUseCaseErrors];\n\n/** List all file tags. */\nexport const ListTagsUseCase = createAbstraction<IListTagsUseCase>(\"ListTagsUseCase\");\n\nexport namespace ListTagsUseCase {\n export type Interface = IListTagsUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAevD;AACA;AACA;;AAWA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,oBAAoB,CAAC;;AAO9F;AACA;AACA;;AAYA;AACA,OAAO,MAAME,eAAe,GAAGF,iBAAiB,CAAmB,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListTags/abstractions.js","sources":["../../../../src/features/file/ListTags/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport { type FilePersistenceError, FileNotAuthorizedError } from \"~/domain/file/errors.js\";\n\nexport interface ListTagsInput {\n where?: Record<string, any>;\n after?: string | null;\n limit?: number;\n}\n\nexport interface TagItem {\n tag: string;\n count: number;\n}\n\n/**\n * ListTags repository interface\n */\nexport interface IListTagsRepository {\n execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryError>>;\n}\n\nexport interface IListTagsRepositoryErrors {\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IListTagsRepositoryErrors[keyof IListTagsRepositoryErrors];\n\n/** Fetch file tags from storage. */\nexport const ListTagsRepository = createAbstraction<IListTagsRepository>(\"ListTagsRepository\");\n\nexport namespace ListTagsRepository {\n export type Interface = IListTagsRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * ListTags use case interface\n */\nexport interface IListTagsUseCase {\n execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseError>>;\n}\n\nexport interface IListTagsUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IListTagsUseCaseErrors[keyof IListTagsUseCaseErrors];\n\n/** List all file tags. */\nexport const ListTagsUseCase = createAbstraction<IListTagsUseCase>(\"ListTagsUseCase\");\n\nexport namespace ListTagsUseCase {\n export type Interface = IListTagsUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["ListTagsRepository","createAbstraction","ListTagsUseCase"],"mappings":";AA6BO,MAAMA,qBAAqBC,kBAAuC;AAsBlE,MAAMC,kBAAkBD,kBAAoC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListTagsRepository } from "./ListTagsRepository.js";
3
3
  import { ListTagsUseCase } from "./ListTagsUseCase.js";
4
- export const ListTagsFeature = createFeature({
5
- name: "FileManager/ListTags",
6
- register(container) {
7
- container.register(ListTagsUseCase);
8
- container.register(ListTagsRepository).inSingletonScope();
9
- }
4
+ const ListTagsFeature = createFeature({
5
+ name: "FileManager/ListTags",
6
+ register (container) {
7
+ container.register(ListTagsUseCase);
8
+ container.register(ListTagsRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { ListTagsFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListTagsRepository","ListTagsUseCase","ListTagsFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListTagsRepository } from \"./ListTagsRepository.js\";\nimport { ListTagsUseCase } from \"./ListTagsUseCase.js\";\n\nexport const ListTagsFeature = createFeature({\n name: \"FileManager/ListTags\",\n register(container) {\n container.register(ListTagsUseCase);\n container.register(ListTagsRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AAExB,OAAO,MAAMC,eAAe,GAAGH,aAAa,CAAC;EACzCI,IAAI,EAAE,sBAAsB;EAC5BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;IACnCI,SAAS,CAACD,QAAQ,CAACJ,kBAAkB,CAAC,CAACM,gBAAgB,CAAC,CAAC;EAC7D;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/ListTags/feature.js","sources":["../../../../src/features/file/ListTags/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListTagsRepository } from \"./ListTagsRepository.js\";\nimport { ListTagsUseCase } from \"./ListTagsUseCase.js\";\n\nexport const ListTagsFeature = createFeature({\n name: \"FileManager/ListTags\",\n register(container) {\n container.register(ListTagsUseCase);\n container.register(ListTagsRepository).inSingletonScope();\n }\n});\n"],"names":["ListTagsFeature","createFeature","container","ListTagsUseCase","ListTagsRepository"],"mappings":";;;AAIO,MAAMA,kBAAkBC,cAAc;IACzC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,oBAAoB,gBAAgB;IAC3D;AACJ"}
@@ -1,3 +1 @@
1
1
  export { ListTagsUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
3
3
  import { UpdateFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
- import { FileModel } from "../../../domain/file/abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import type { File } from "../../../domain/file/types.js";
6
6
  declare class UpdateFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
7
  private updateEntry;
8
- private fileModel;
9
- constructor(updateEntry: UpdateEntryUseCase.Interface, fileModel: FileModel.Interface);
8
+ private fileModelProvider;
9
+ constructor(updateEntry: UpdateEntryUseCase.Interface, fileModelProvider: FileModelProvider.Interface);
10
10
  update(file: File): Promise<Result<void, RepositoryAbstraction.Error>>;
11
11
  }
12
12
  export declare const UpdateFileRepository: typeof UpdateFileRepositoryImpl & {
@@ -1,39 +1,38 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
3
- import { UpdateFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
- import { FileModel } from "../../../domain/file/abstractions.js";
3
+ import { UpdateFileRepository } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import { FileNotAuthorizedError, FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
6
  import { FileToEntryMapper } from "../shared/FileToEntryMapper.js";
7
7
  class UpdateFileRepositoryImpl {
8
- constructor(updateEntry, fileModel) {
9
- this.updateEntry = updateEntry;
10
- this.fileModel = fileModel;
11
- }
12
- async update(file) {
13
- const entry = FileToEntryMapper.toEntry(file);
14
-
15
- // Files are not versioned, so we're always updating the same revision
16
- const id = `${file.id}#0001`;
17
- const result = await this.updateEntry.execute(this.fileModel, id, {
18
- wbyAco_location: file.location,
19
- values: entry.values
20
- });
21
- if (result.isFail()) {
22
- const error = result.error;
23
- if (error.code === "Cms/Entry/NotFound") {
24
- return Result.fail(new FileNotFoundError(id));
25
- }
26
- if (error.code === "Cms/Entry/NotAuthorized") {
27
- return Result.fail(new FileNotAuthorizedError());
28
- }
29
- return Result.fail(new FilePersistenceError(result.error));
8
+ constructor(updateEntry, fileModelProvider){
9
+ this.updateEntry = updateEntry;
10
+ this.fileModelProvider = fileModelProvider;
11
+ }
12
+ async update(file) {
13
+ const entry = FileToEntryMapper.toEntry(file);
14
+ const id = `${file.id}#0001`;
15
+ const fileModel = await this.fileModelProvider.get();
16
+ const result = await this.updateEntry.execute(fileModel, id, {
17
+ wbyAco_location: file.location,
18
+ values: entry.values
19
+ });
20
+ if (result.isFail()) {
21
+ const error = result.error;
22
+ if ("Cms/Entry/NotFound" === error.code) return Result.fail(new FileNotFoundError(id));
23
+ if ("Cms/Entry/NotAuthorized" === error.code) return Result.fail(new FileNotAuthorizedError());
24
+ return Result.fail(new FilePersistenceError(result.error));
25
+ }
26
+ return Result.ok();
30
27
  }
31
- return Result.ok();
32
- }
33
28
  }
34
- export const UpdateFileRepository = RepositoryAbstraction.createImplementation({
35
- implementation: UpdateFileRepositoryImpl,
36
- dependencies: [UpdateEntryUseCase, FileModel]
29
+ const UpdateFileRepository_UpdateFileRepository = UpdateFileRepository.createImplementation({
30
+ implementation: UpdateFileRepositoryImpl,
31
+ dependencies: [
32
+ UpdateEntryUseCase,
33
+ FileModelProvider
34
+ ]
37
35
  });
36
+ export { UpdateFileRepository_UpdateFileRepository as UpdateFileRepository };
38
37
 
39
38
  //# sourceMappingURL=UpdateFileRepository.js.map