@webiny/api-file-manager 0.0.0-unstable.b14eaecf38 → 0.0.0-unstable.b6d7105cee

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 (627) hide show
  1. package/README.md +7 -13
  2. package/constants.d.ts +1 -0
  3. package/constants.js +4 -0
  4. package/constants.js.map +1 -0
  5. package/delivery/AssetDelivery/Asset.d.ts +29 -0
  6. package/delivery/AssetDelivery/Asset.js +56 -0
  7. package/delivery/AssetDelivery/Asset.js.map +1 -0
  8. package/delivery/AssetDelivery/AssetRequest.d.ts +26 -0
  9. package/delivery/AssetDelivery/AssetRequest.js +26 -0
  10. package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
  11. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +26 -0
  12. package/delivery/AssetDelivery/abstractions/AssetReply.js +37 -0
  13. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
  14. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
  15. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +7 -0
  16. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
  17. package/delivery/index.d.ts +7 -0
  18. package/delivery/index.js +4 -0
  19. package/delivery/setupAssetDelivery.d.ts +1 -0
  20. package/delivery/setupAssetDelivery.js +72 -0
  21. package/delivery/setupAssetDelivery.js.map +1 -0
  22. package/domain/file/abstractions.d.ts +9 -0
  23. package/domain/file/abstractions.js +5 -0
  24. package/domain/file/abstractions.js.map +1 -0
  25. package/domain/file/errors.d.ts +59 -0
  26. package/domain/file/errors.js +80 -0
  27. package/domain/file/errors.js.map +1 -0
  28. package/domain/file/file.model.d.ts +12 -0
  29. package/domain/file/file.model.js +69 -0
  30. package/domain/file/file.model.js.map +1 -0
  31. package/domain/file/types.d.ts +53 -0
  32. package/domain/identity/Identity.d.ts +9 -0
  33. package/domain/identity/Identity.js +12 -0
  34. package/domain/identity/Identity.js.map +1 -0
  35. package/domain/permissionsSchema.d.ts +16 -0
  36. package/domain/permissionsSchema.js +30 -0
  37. package/domain/permissionsSchema.js.map +1 -0
  38. package/domain/settings/constants.d.ts +1 -0
  39. package/domain/settings/constants.js +4 -0
  40. package/domain/settings/constants.js.map +1 -0
  41. package/domain/settings/errors.d.ts +18 -0
  42. package/domain/settings/errors.js +28 -0
  43. package/domain/settings/errors.js.map +1 -0
  44. package/domain/settings/types.d.ts +10 -0
  45. package/domain/settings/types.js +0 -0
  46. package/domain/settings/validation.d.ts +6 -0
  47. package/domain/settings/validation.js +27 -0
  48. package/domain/settings/validation.js.map +1 -0
  49. package/exports/api/file-manager/assetDelivery.d.ts +18 -0
  50. package/exports/api/file-manager/assetDelivery.js +15 -0
  51. package/exports/api/file-manager/file.d.ts +13 -0
  52. package/exports/api/file-manager/file.js +13 -0
  53. package/exports/api/file-manager/permissions.d.ts +1 -0
  54. package/exports/api/file-manager/permissions.js +1 -0
  55. package/exports/api/file-manager/settings.d.ts +3 -0
  56. package/exports/api/file-manager/settings.js +3 -0
  57. package/features/FileManagerFeature.d.ts +4 -0
  58. package/features/FileManagerFeature.js +43 -0
  59. package/features/FileManagerFeature.js.map +1 -0
  60. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  61. package/features/assetDelivery/Asset/Asset.js +14 -0
  62. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  63. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  64. package/features/assetDelivery/Asset/abstractions.js +5 -0
  65. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  66. package/features/assetDelivery/Asset/index.d.ts +1 -0
  67. package/features/assetDelivery/Asset/index.js +1 -0
  68. package/features/assetDelivery/AssetRequest/AssetRequest.d.ts +8 -0
  69. package/features/assetDelivery/AssetRequest/AssetRequest.js +14 -0
  70. package/features/assetDelivery/AssetRequest/AssetRequest.js.map +1 -0
  71. package/features/assetDelivery/AssetRequest/abstractions.d.ts +11 -0
  72. package/features/assetDelivery/AssetRequest/abstractions.js +5 -0
  73. package/features/assetDelivery/AssetRequest/abstractions.js.map +1 -0
  74. package/features/assetDelivery/AssetRequest/index.d.ts +1 -0
  75. package/features/assetDelivery/AssetRequest/index.js +1 -0
  76. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +11 -0
  77. package/features/assetDelivery/FilesAssetRequestResolver.js +33 -0
  78. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  79. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  80. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  81. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  82. package/features/assetDelivery/NullAssetReply.d.ts +5 -0
  83. package/features/assetDelivery/NullAssetReply.js +17 -0
  84. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  85. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  86. package/features/assetDelivery/NullAssetResolver.js +13 -0
  87. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  88. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  89. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  90. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  91. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  92. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  93. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  94. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  95. package/features/assetDelivery/ObjectKey/index.js +1 -0
  96. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  97. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  98. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  99. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  100. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  101. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  102. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  103. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  104. package/features/assetDelivery/abstractions/AssetAuthorizer.d.ts +9 -0
  105. package/features/assetDelivery/abstractions/AssetAuthorizer.js +5 -0
  106. package/features/assetDelivery/abstractions/AssetAuthorizer.js.map +1 -0
  107. package/features/assetDelivery/abstractions/AssetContentsReader.d.ts +9 -0
  108. package/features/assetDelivery/abstractions/AssetContentsReader.js +5 -0
  109. package/features/assetDelivery/abstractions/AssetContentsReader.js.map +1 -0
  110. package/features/assetDelivery/abstractions/AssetOutputStrategy.d.ts +11 -0
  111. package/features/assetDelivery/abstractions/AssetOutputStrategy.js +5 -0
  112. package/features/assetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
  113. package/features/assetDelivery/abstractions/AssetProcessor.d.ts +11 -0
  114. package/features/assetDelivery/abstractions/AssetProcessor.js +5 -0
  115. package/features/assetDelivery/abstractions/AssetProcessor.js.map +1 -0
  116. package/features/assetDelivery/abstractions/AssetRequestResolver.d.ts +11 -0
  117. package/features/assetDelivery/abstractions/AssetRequestResolver.js +5 -0
  118. package/features/assetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
  119. package/features/assetDelivery/abstractions/AssetResolver.d.ts +11 -0
  120. package/features/assetDelivery/abstractions/AssetResolver.js +5 -0
  121. package/features/assetDelivery/abstractions/AssetResolver.js.map +1 -0
  122. package/features/assetDelivery/abstractions/AssetTransformationStrategy.d.ts +11 -0
  123. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js +5 -0
  124. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
  125. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  126. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  127. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  128. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  129. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  130. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  131. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  132. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  133. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  134. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  135. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  136. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  137. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  138. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  139. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  140. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  141. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  142. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  143. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  144. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  145. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  146. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  147. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  148. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  149. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  150. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  151. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  152. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  153. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  154. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  155. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  156. package/features/assetDelivery/feature.d.ts +4 -0
  157. package/features/assetDelivery/feature.js +38 -0
  158. package/features/assetDelivery/feature.js.map +1 -0
  159. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  160. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  161. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  162. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  163. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  164. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  165. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  166. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  167. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  168. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  169. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  170. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  171. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +12 -0
  172. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +34 -0
  173. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  174. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  175. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +66 -0
  176. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  177. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  178. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  179. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  180. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +10 -0
  181. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +24 -0
  182. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  183. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +10 -0
  184. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +24 -0
  185. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  186. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  187. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  188. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  189. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +7 -0
  190. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
  191. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  192. package/features/assetDelivery/transformation/index.d.ts +5 -0
  193. package/features/assetDelivery/transformation/index.js +4 -0
  194. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  195. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  196. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  197. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  198. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  199. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  200. package/features/file/CreateFile/CreateFileRepository.js +32 -0
  201. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  202. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  203. package/features/file/CreateFile/CreateFileUseCase.js +83 -0
  204. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  205. package/features/file/CreateFile/abstractions.d.ts +60 -0
  206. package/features/file/CreateFile/abstractions.js +6 -0
  207. package/features/file/CreateFile/abstractions.js.map +1 -0
  208. package/features/file/CreateFile/events.d.ts +31 -0
  209. package/features/file/CreateFile/events.js +23 -0
  210. package/features/file/CreateFile/events.js.map +1 -0
  211. package/features/file/CreateFile/feature.d.ts +4 -0
  212. package/features/file/CreateFile/feature.js +13 -0
  213. package/features/file/CreateFile/feature.js.map +1 -0
  214. package/features/file/CreateFile/index.d.ts +2 -0
  215. package/features/file/CreateFile/index.js +2 -0
  216. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  217. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +22 -0
  218. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  219. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  220. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +73 -0
  221. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  222. package/features/file/CreateFilesInBatch/abstractions.d.ts +42 -0
  223. package/features/file/CreateFilesInBatch/abstractions.js +6 -0
  224. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  225. package/features/file/CreateFilesInBatch/events.d.ts +31 -0
  226. package/features/file/CreateFilesInBatch/events.js +23 -0
  227. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  228. package/features/file/CreateFilesInBatch/feature.d.ts +4 -0
  229. package/features/file/CreateFilesInBatch/feature.js +13 -0
  230. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  231. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  232. package/features/file/CreateFilesInBatch/index.js +1 -0
  233. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  234. package/features/file/DeleteFile/DeleteFileRepository.js +31 -0
  235. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  236. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  237. package/features/file/DeleteFile/DeleteFileUseCase.js +43 -0
  238. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  239. package/features/file/DeleteFile/abstractions.d.ts +39 -0
  240. package/features/file/DeleteFile/abstractions.js +6 -0
  241. package/features/file/DeleteFile/abstractions.js.map +1 -0
  242. package/features/file/DeleteFile/events.d.ts +29 -0
  243. package/features/file/DeleteFile/events.js +23 -0
  244. package/features/file/DeleteFile/events.js.map +1 -0
  245. package/features/file/DeleteFile/feature.d.ts +4 -0
  246. package/features/file/DeleteFile/feature.js +13 -0
  247. package/features/file/DeleteFile/feature.js.map +1 -0
  248. package/features/file/DeleteFile/index.d.ts +2 -0
  249. package/features/file/DeleteFile/index.js +2 -0
  250. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +15 -0
  251. package/features/file/FileUrlGenerator/FileUrlGenerator.js +33 -0
  252. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  253. package/features/file/FileUrlGenerator/abstractions.d.ts +8 -0
  254. package/features/file/FileUrlGenerator/abstractions.js +5 -0
  255. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  256. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  257. package/features/file/FileUrlGenerator/feature.js +11 -0
  258. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  259. package/features/file/FileUrlGenerator/index.d.ts +1 -0
  260. package/features/file/FileUrlGenerator/index.js +1 -0
  261. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  262. package/features/file/GetFile/GetFileRepository.js +33 -0
  263. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  264. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  265. package/features/file/GetFile/GetFileUseCase.js +29 -0
  266. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  267. package/features/file/GetFile/abstractions.d.ts +40 -0
  268. package/features/file/GetFile/abstractions.js +6 -0
  269. package/features/file/GetFile/abstractions.js.map +1 -0
  270. package/features/file/GetFile/feature.d.ts +4 -0
  271. package/features/file/GetFile/feature.js +13 -0
  272. package/features/file/GetFile/feature.js.map +1 -0
  273. package/features/file/GetFile/index.d.ts +1 -0
  274. package/features/file/GetFile/index.js +1 -0
  275. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  276. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  277. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  278. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  279. package/features/file/GetFileByUrl/abstractions.js +5 -0
  280. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  281. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  282. package/features/file/GetFileByUrl/feature.js +11 -0
  283. package/features/file/GetFileByUrl/feature.js.map +1 -0
  284. package/features/file/GetFileByUrl/index.d.ts +1 -0
  285. package/features/file/GetFileByUrl/index.js +1 -0
  286. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  287. package/features/file/GetFileContentsById/abstractions.js +5 -0
  288. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  289. package/features/file/GetFileContentsById/index.d.ts +1 -0
  290. package/features/file/GetFileContentsById/index.js +1 -0
  291. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  292. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  293. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  294. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  295. package/features/file/GetFileContentsByKey/index.js +1 -0
  296. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  297. package/features/file/ListFiles/ListFilesRepository.js +53 -0
  298. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  299. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  300. package/features/file/ListFiles/ListFilesUseCase.js +44 -0
  301. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  302. package/features/file/ListFiles/abstractions.d.ts +49 -0
  303. package/features/file/ListFiles/abstractions.js +6 -0
  304. package/features/file/ListFiles/abstractions.js.map +1 -0
  305. package/features/file/ListFiles/feature.d.ts +4 -0
  306. package/features/file/ListFiles/feature.js +13 -0
  307. package/features/file/ListFiles/feature.js.map +1 -0
  308. package/features/file/ListFiles/index.d.ts +1 -0
  309. package/features/file/ListFiles/index.js +1 -0
  310. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +27 -0
  311. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +42 -0
  312. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
  313. package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
  314. package/features/file/ListImagesByTagTool/feature.js +11 -0
  315. package/features/file/ListImagesByTagTool/feature.js.map +1 -0
  316. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  317. package/features/file/ListTags/ListTagsRepository.js +42 -0
  318. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  319. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  320. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  321. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  322. package/features/file/ListTags/abstractions.d.ts +45 -0
  323. package/features/file/ListTags/abstractions.js +6 -0
  324. package/features/file/ListTags/abstractions.js.map +1 -0
  325. package/features/file/ListTags/feature.d.ts +4 -0
  326. package/features/file/ListTags/feature.js +13 -0
  327. package/features/file/ListTags/feature.js.map +1 -0
  328. package/features/file/ListTags/index.d.ts +1 -0
  329. package/features/file/ListTags/index.js +1 -0
  330. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  331. package/features/file/UpdateFile/UpdateFileRepository.js +37 -0
  332. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  333. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  334. package/features/file/UpdateFile/UpdateFileUseCase.js +71 -0
  335. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  336. package/features/file/UpdateFile/abstractions.d.ts +56 -0
  337. package/features/file/UpdateFile/abstractions.js +6 -0
  338. package/features/file/UpdateFile/abstractions.js.map +1 -0
  339. package/features/file/UpdateFile/events.d.ts +34 -0
  340. package/features/file/UpdateFile/events.js +23 -0
  341. package/features/file/UpdateFile/events.js.map +1 -0
  342. package/features/file/UpdateFile/feature.d.ts +4 -0
  343. package/features/file/UpdateFile/feature.js +13 -0
  344. package/features/file/UpdateFile/feature.js.map +1 -0
  345. package/features/file/UpdateFile/index.d.ts +2 -0
  346. package/features/file/UpdateFile/index.js +2 -0
  347. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  348. package/features/file/shared/EntryToFileMapper.js +28 -0
  349. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  350. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  351. package/features/file/shared/FileInputToEntryInputMapper.js +32 -0
  352. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  353. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  354. package/features/file/shared/FileToEntryMapper.js +31 -0
  355. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  356. package/features/permissions/abstractions.d.ts +21 -0
  357. package/features/permissions/abstractions.js +6 -0
  358. package/features/permissions/abstractions.js.map +1 -0
  359. package/features/permissions/feature.d.ts +4 -0
  360. package/features/permissions/feature.js +7 -0
  361. package/features/permissions/feature.js.map +1 -0
  362. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  363. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  364. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  365. package/features/settings/GetSettings/abstractions.d.ts +18 -0
  366. package/features/settings/GetSettings/abstractions.js +5 -0
  367. package/features/settings/GetSettings/abstractions.js.map +1 -0
  368. package/features/settings/GetSettings/feature.d.ts +4 -0
  369. package/features/settings/GetSettings/feature.js +11 -0
  370. package/features/settings/GetSettings/feature.js.map +1 -0
  371. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +15 -0
  372. package/features/settings/SettingsInstaller/SettingsInstaller.js +36 -0
  373. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  374. package/features/settings/SettingsInstaller/feature.d.ts +4 -0
  375. package/features/settings/SettingsInstaller/feature.js +11 -0
  376. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  377. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  378. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +55 -0
  379. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  380. package/features/settings/UpdateSettings/abstractions.d.ts +23 -0
  381. package/features/settings/UpdateSettings/abstractions.js +5 -0
  382. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  383. package/features/settings/UpdateSettings/events.d.ts +34 -0
  384. package/features/settings/UpdateSettings/events.js +23 -0
  385. package/features/settings/UpdateSettings/events.js.map +1 -0
  386. package/features/settings/UpdateSettings/feature.d.ts +4 -0
  387. package/features/settings/UpdateSettings/feature.js +11 -0
  388. package/features/settings/UpdateSettings/feature.js.map +1 -0
  389. package/features/settings/UpdateSettings/index.d.ts +2 -0
  390. package/features/settings/UpdateSettings/index.js +2 -0
  391. package/features/shared/abstractions.d.ts +1 -0
  392. package/features/shared/abstractions.js +1 -0
  393. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  394. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  395. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  396. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  397. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  398. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  399. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  400. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  401. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  402. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  403. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  404. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  405. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  406. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  407. package/features/upload/GetUploadPayload/index.js +1 -0
  408. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  409. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  410. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  411. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  412. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  413. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  414. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  415. package/features/upload/ReadFileMetadata/feature.js +11 -0
  416. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  417. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  418. package/features/upload/ReadFileMetadata/index.js +1 -0
  419. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  420. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  421. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  422. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  423. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  424. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  425. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  426. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  427. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  428. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  429. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  430. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  431. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  432. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  433. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  434. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  435. package/features/upload/WriteFileMetadata/feature.js +17 -0
  436. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  437. package/features/upload/index.d.ts +17 -0
  438. package/features/upload/index.js +10 -0
  439. package/features/upload/types.d.ts +28 -0
  440. package/features/upload/types.js +0 -0
  441. package/features/upload/utils/FileExtension.d.ts +6 -0
  442. package/features/upload/utils/FileExtension.js +16 -0
  443. package/features/upload/utils/FileExtension.js.map +1 -0
  444. package/features/upload/utils/FileKey.d.ts +11 -0
  445. package/features/upload/utils/FileKey.js +33 -0
  446. package/features/upload/utils/FileKey.js.map +1 -0
  447. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  448. package/features/upload/utils/FileNormalizer.js +41 -0
  449. package/features/upload/utils/FileNormalizer.js.map +1 -0
  450. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  451. package/features/upload/utils/FileUploadModifier.js +39 -0
  452. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  453. package/features/upload/utils/checkPermissions.d.ts +5 -0
  454. package/features/upload/utils/checkPermissions.js +22 -0
  455. package/features/upload/utils/checkPermissions.js.map +1 -0
  456. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  457. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  458. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  459. package/features/upload/utils/mimeTypes.d.ts +1 -0
  460. package/features/upload/utils/mimeTypes.js +9 -0
  461. package/features/upload/utils/mimeTypes.js.map +1 -0
  462. package/graphql/FmGraphQLSchema.d.ts +25 -0
  463. package/graphql/FmGraphQLSchema.js +450 -0
  464. package/graphql/FmGraphQLSchema.js.map +1 -0
  465. package/graphql/FmUploadGraphQLSchema.d.ts +11 -0
  466. package/graphql/FmUploadGraphQLSchema.js +229 -0
  467. package/graphql/FmUploadGraphQLSchema.js.map +1 -0
  468. package/index.d.ts +3 -5
  469. package/index.js +41 -66
  470. package/index.js.map +1 -1
  471. package/package.json +40 -40
  472. package/types.d.ts +2 -355
  473. package/types.js +1 -27
  474. package/createFileManager/checkBasePermissions.d.ts +0 -5
  475. package/createFileManager/checkBasePermissions.js +0 -24
  476. package/createFileManager/checkBasePermissions.js.map +0 -1
  477. package/createFileManager/files.crud.d.ts +0 -3
  478. package/createFileManager/files.crud.js +0 -318
  479. package/createFileManager/files.crud.js.map +0 -1
  480. package/createFileManager/filevalidation.disabled.js +0 -55
  481. package/createFileManager/filevalidation.disabled.js.map +0 -1
  482. package/createFileManager/index.d.ts +0 -13
  483. package/createFileManager/index.js +0 -20
  484. package/createFileManager/index.js.map +0 -1
  485. package/createFileManager/settings.crud.d.ts +0 -3
  486. package/createFileManager/settings.crud.js +0 -91
  487. package/createFileManager/settings.crud.js.map +0 -1
  488. package/createFileManager/system.crud.d.ts +0 -3
  489. package/createFileManager/system.crud.js +0 -86
  490. package/createFileManager/system.crud.js.map +0 -1
  491. package/graphql/index.d.ts +0 -3
  492. package/graphql/index.js +0 -288
  493. package/graphql/index.js.map +0 -1
  494. package/handlers/download/byAlias.d.ts +0 -6
  495. package/handlers/download/byAlias.js +0 -89
  496. package/handlers/download/byAlias.js.map +0 -1
  497. package/handlers/download/byExactKey.d.ts +0 -2
  498. package/handlers/download/byExactKey.js +0 -57
  499. package/handlers/download/byExactKey.js.map +0 -1
  500. package/handlers/download/extractFileInformation.d.ts +0 -9
  501. package/handlers/download/extractFileInformation.js +0 -20
  502. package/handlers/download/extractFileInformation.js.map +0 -1
  503. package/handlers/download/getS3Object.d.ts +0 -10
  504. package/handlers/download/getS3Object.js +0 -57
  505. package/handlers/download/getS3Object.js.map +0 -1
  506. package/handlers/download/index.d.ts +0 -2
  507. package/handlers/download/index.js +0 -27
  508. package/handlers/download/index.js.map +0 -1
  509. package/handlers/manage/index.d.ts +0 -5
  510. package/handlers/manage/index.js +0 -55
  511. package/handlers/manage/index.js.map +0 -1
  512. package/handlers/transform/index.d.ts +0 -2
  513. package/handlers/transform/index.js +0 -89
  514. package/handlers/transform/index.js.map +0 -1
  515. package/handlers/transform/legacyUtils.d.ts +0 -17
  516. package/handlers/transform/legacyUtils.js +0 -42
  517. package/handlers/transform/legacyUtils.js.map +0 -1
  518. package/handlers/transform/loaders/imageLoader.d.ts +0 -30
  519. package/handlers/transform/loaders/imageLoader.js +0 -94
  520. package/handlers/transform/loaders/imageLoader.js.map +0 -1
  521. package/handlers/transform/loaders/index.d.ts +0 -8
  522. package/handlers/transform/loaders/index.js +0 -10
  523. package/handlers/transform/loaders/index.js.map +0 -1
  524. package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
  525. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -45
  526. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
  527. package/handlers/transform/managers/imageManager.d.ts +0 -15
  528. package/handlers/transform/managers/imageManager.js +0 -74
  529. package/handlers/transform/managers/imageManager.js.map +0 -1
  530. package/handlers/transform/managers/index.d.ts +0 -5
  531. package/handlers/transform/managers/index.js +0 -10
  532. package/handlers/transform/managers/index.js.map +0 -1
  533. package/handlers/transform/optimizeImage.d.ts +0 -3
  534. package/handlers/transform/optimizeImage.js +0 -42
  535. package/handlers/transform/optimizeImage.js.map +0 -1
  536. package/handlers/transform/transformImage.d.ts +0 -10
  537. package/handlers/transform/transformImage.js +0 -25
  538. package/handlers/transform/transformImage.js.map +0 -1
  539. package/handlers/transform/utils.d.ts +0 -12
  540. package/handlers/transform/utils.js +0 -36
  541. package/handlers/transform/utils.js.map +0 -1
  542. package/handlers/types.d.ts +0 -8
  543. package/handlers/types.js +0 -5
  544. package/handlers/types.js.map +0 -1
  545. package/handlers/utils/getEnvironment.d.ts +0 -5
  546. package/handlers/utils/getEnvironment.js +0 -11
  547. package/handlers/utils/getEnvironment.js.map +0 -1
  548. package/handlers/utils/getObjectParams.d.ts +0 -9
  549. package/handlers/utils/getObjectParams.js +0 -21
  550. package/handlers/utils/getObjectParams.js.map +0 -1
  551. package/handlers/utils/index.d.ts +0 -2
  552. package/handlers/utils/index.js +0 -20
  553. package/handlers/utils/index.js.map +0 -1
  554. package/plugins/FilePhysicalStoragePlugin.d.ts +0 -21
  555. package/plugins/FilePhysicalStoragePlugin.js +0 -31
  556. package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
  557. package/plugins/FileStorageTransformPlugin.d.ts +0 -34
  558. package/plugins/FileStorageTransformPlugin.js +0 -40
  559. package/plugins/FileStorageTransformPlugin.js.map +0 -1
  560. package/plugins/crud/files/validation.d.ts +0 -3
  561. package/plugins/crud/files/validation.js +0 -41
  562. package/plugins/crud/files/validation.js.map +0 -1
  563. package/plugins/crud/files.crud.d.ts +0 -4
  564. package/plugins/crud/files.crud.js +0 -431
  565. package/plugins/crud/files.crud.js.map +0 -1
  566. package/plugins/crud/settings.crud.d.ts +0 -5
  567. package/plugins/crud/settings.crud.js +0 -116
  568. package/plugins/crud/settings.crud.js.map +0 -1
  569. package/plugins/crud/system.crud.d.ts +0 -4
  570. package/plugins/crud/system.crud.js +0 -153
  571. package/plugins/crud/system.crud.js.map +0 -1
  572. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  573. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  574. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  575. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  576. package/plugins/crud/utils/createFileModel.js +0 -77
  577. package/plugins/crud/utils/createFileModel.js.map +0 -1
  578. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  579. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  580. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  581. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
  582. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
  583. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  584. package/plugins/definitions/FilePlugin.d.ts +0 -136
  585. package/plugins/definitions/FilePlugin.js +0 -70
  586. package/plugins/definitions/FilePlugin.js.map +0 -1
  587. package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
  588. package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
  589. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  590. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  591. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  592. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  593. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  594. package/plugins/definitions/InstallationPlugin.js +0 -42
  595. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  596. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  597. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  598. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  599. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  600. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  601. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  602. package/plugins/graphql.d.ts +0 -4
  603. package/plugins/graphql.js +0 -290
  604. package/plugins/graphql.js.map +0 -1
  605. package/plugins/index.d.ts +0 -2
  606. package/plugins/index.js +0 -27
  607. package/plugins/index.js.map +0 -1
  608. package/plugins/storage/FileStorage.d.ts +0 -30
  609. package/plugins/storage/FileStorage.js +0 -103
  610. package/plugins/storage/FileStorage.js.map +0 -1
  611. package/plugins/storage/index.d.ts +0 -4
  612. package/plugins/storage/index.js +0 -26
  613. package/plugins/storage/index.js.map +0 -1
  614. package/storage/FileStorage.d.ts +0 -32
  615. package/storage/FileStorage.js +0 -86
  616. package/storage/FileStorage.js.map +0 -1
  617. package/types/file.d.ts +0 -33
  618. package/types/file.js +0 -5
  619. package/types/file.js.map +0 -1
  620. package/types/file.lifecycle.d.ts +0 -40
  621. package/types/file.lifecycle.js +0 -5
  622. package/types/file.lifecycle.js.map +0 -1
  623. package/types.js.map +0 -1
  624. package/utils.d.ts +0 -4
  625. package/utils.js +0 -16
  626. package/utils.js.map +0 -1
  627. /package/{createFileManager/filevalidation.disabled.d.ts → domain/file/types.js} +0 -0
@@ -0,0 +1,42 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetUniqueFieldValuesUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetUniqueFieldValues";
3
+ import { ListTagsRepository } from "./abstractions.js";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import { FilePersistenceError } from "../../../domain/file/errors.js";
6
+ import { CmsWhereMapper } from "@webiny/api-headless-cms";
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
+ where: this.cmsWhereMapper.map({
17
+ input: {
18
+ ...input.where || {},
19
+ latest: true
20
+ },
21
+ fields: this.fileModel.fields
22
+ })
23
+ });
24
+ if (result.isFail()) return Result.fail(new FilePersistenceError(result.error));
25
+ const tags = result.value.map((uv)=>({
26
+ tag: uv.value,
27
+ count: uv.count
28
+ })).sort((a, b)=>a.tag < b.tag ? -1 : 1).sort((a, b)=>a.count > b.count ? -1 : 1);
29
+ return Result.ok(tags);
30
+ }
31
+ }
32
+ const ListTagsRepository_ListTagsRepository = ListTagsRepository.createImplementation({
33
+ implementation: ListTagsRepositoryImpl,
34
+ dependencies: [
35
+ GetUniqueFieldValuesUseCase,
36
+ FileModel,
37
+ CmsWhereMapper
38
+ ]
39
+ });
40
+ export { ListTagsRepository_ListTagsRepository as ListTagsRepository };
41
+
42
+ //# sourceMappingURL=ListTagsRepository.js.map
@@ -0,0 +1 @@
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 { 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"],"names":["ListTagsRepositoryImpl","getUniqueFieldValues","fileModel","cmsWhereMapper","input","result","Result","FilePersistenceError","tags","uv","a","b","ListTagsRepository","RepositoryAbstraction","GetUniqueFieldValuesUseCase","FileModel","CmsWhereMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,oBAA2D,EAC3DC,SAA8B,EAC9BC,cAAwC,CAClD;aAHUF,oBAAoB,GAApBA;aACAC,SAAS,GAATA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAA2D;QACzF,MAAMC,SAAS,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YACnE,SAAS;YAGT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAC3B,OAAO;oBACH,GAAID,MAAM,KAAK,IAAI,CAAC,CAAC;oBACrB,QAAQ;gBACZ;gBACA,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;YACjC;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,gBAAgBb;IAChB,cAAc;QAACc;QAA6BC;QAAWC;KAAe;AAC1E"}
@@ -0,0 +1,13 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListTagsUseCase as UseCaseAbstraction, ListTagsInput, TagItem, ListTagsRepository } from "./abstractions.js";
3
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
4
+ declare class ListTagsUseCaseImpl implements UseCaseAbstraction.Interface {
5
+ private permissions;
6
+ private repository;
7
+ constructor(permissions: FmPermissions.Interface, repository: ListTagsRepository.Interface);
8
+ execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseAbstraction.Error>>;
9
+ }
10
+ export declare const ListTagsUseCase: typeof ListTagsUseCaseImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListTagsUseCase>;
12
+ };
13
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { ListTagsRepository, ListTagsUseCase } from "./abstractions.js";
3
+ import { FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
+ import { FmPermissions } from "../../shared/abstractions.js";
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) 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);
20
+ }
21
+ }
22
+ const ListTagsUseCase_ListTagsUseCase = ListTagsUseCase.createImplementation({
23
+ implementation: ListTagsUseCaseImpl,
24
+ dependencies: [
25
+ FmPermissions,
26
+ ListTagsRepository
27
+ ]
28
+ });
29
+ export { ListTagsUseCase_ListTagsUseCase as ListTagsUseCase };
30
+
31
+ //# sourceMappingURL=ListTagsUseCase.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,45 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import { type FilePersistenceError, FileNotAuthorizedError } from "../../../domain/file/errors.js";
3
+ export interface ListTagsInput {
4
+ where?: Record<string, any>;
5
+ after?: string | null;
6
+ limit?: number;
7
+ }
8
+ export interface TagItem {
9
+ tag: string;
10
+ count: number;
11
+ }
12
+ /**
13
+ * ListTags repository interface
14
+ */
15
+ export interface IListTagsRepository {
16
+ execute(input: ListTagsInput): Promise<Result<TagItem[], RepositoryError>>;
17
+ }
18
+ export interface IListTagsRepositoryErrors {
19
+ persistence: FilePersistenceError;
20
+ }
21
+ type RepositoryError = IListTagsRepositoryErrors[keyof IListTagsRepositoryErrors];
22
+ /** Fetch file tags from storage. */
23
+ export declare const ListTagsRepository: import("@webiny/di").Abstraction<IListTagsRepository>;
24
+ export declare namespace ListTagsRepository {
25
+ type Interface = IListTagsRepository;
26
+ type Error = RepositoryError;
27
+ }
28
+ /**
29
+ * ListTags use case interface
30
+ */
31
+ export interface IListTagsUseCase {
32
+ execute(input: ListTagsInput): Promise<Result<TagItem[], UseCaseError>>;
33
+ }
34
+ export interface IListTagsUseCaseErrors {
35
+ notAuthorized: FileNotAuthorizedError;
36
+ persistence: FilePersistenceError;
37
+ }
38
+ type UseCaseError = IListTagsUseCaseErrors[keyof IListTagsUseCaseErrors];
39
+ /** List all file tags. */
40
+ export declare const ListTagsUseCase: import("@webiny/di").Abstraction<IListTagsUseCase>;
41
+ export declare namespace ListTagsUseCase {
42
+ type Interface = IListTagsUseCase;
43
+ type Error = UseCaseError;
44
+ }
45
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ListTagsRepository = createAbstraction("ListTagsRepository");
3
+ const ListTagsUseCase = createAbstraction("ListTagsUseCase");
4
+ export { ListTagsRepository, ListTagsUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ export declare const ListTagsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ListTagsRepository } from "./ListTagsRepository.js";
3
+ import { ListTagsUseCase } from "./ListTagsUseCase.js";
4
+ const ListTagsFeature = createFeature({
5
+ name: "FileManager/ListTags",
6
+ register (container) {
7
+ container.register(ListTagsUseCase);
8
+ container.register(ListTagsRepository).inSingletonScope();
9
+ }
10
+ });
11
+ export { ListTagsFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
1
+ export { ListTagsUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { ListTagsUseCase } from "./abstractions.js";
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
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";
5
+ import type { File } from "../../../domain/file/types.js";
6
+ declare class UpdateFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
+ private updateEntry;
8
+ private fileModel;
9
+ constructor(updateEntry: UpdateEntryUseCase.Interface, fileModel: FileModel.Interface);
10
+ update(file: File): Promise<Result<void, RepositoryAbstraction.Error>>;
11
+ }
12
+ export declare const UpdateFileRepository: typeof UpdateFileRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateFileRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,37 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
3
+ import { UpdateFileRepository } from "./abstractions.js";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import { FileNotAuthorizedError, FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
+ import { FileToEntryMapper } from "../shared/FileToEntryMapper.js";
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
+ const id = `${file.id}#0001`;
15
+ const result = await this.updateEntry.execute(this.fileModel, id, {
16
+ wbyAco_location: file.location,
17
+ values: entry.values
18
+ });
19
+ if (result.isFail()) {
20
+ const error = result.error;
21
+ if ("Cms/Entry/NotFound" === error.code) return Result.fail(new FileNotFoundError(id));
22
+ if ("Cms/Entry/NotAuthorized" === error.code) return Result.fail(new FileNotAuthorizedError());
23
+ return Result.fail(new FilePersistenceError(result.error));
24
+ }
25
+ return Result.ok();
26
+ }
27
+ }
28
+ const UpdateFileRepository_UpdateFileRepository = UpdateFileRepository.createImplementation({
29
+ implementation: UpdateFileRepositoryImpl,
30
+ dependencies: [
31
+ UpdateEntryUseCase,
32
+ FileModel
33
+ ]
34
+ });
35
+ export { UpdateFileRepository_UpdateFileRepository as UpdateFileRepository };
36
+
37
+ //# sourceMappingURL=UpdateFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/UpdateFile/UpdateFileRepository.js","sources":["../../../../src/features/file/UpdateFile/UpdateFileRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry\";\nimport { UpdateFileRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport type { File } from \"~/domain/file/types.js\";\nimport {\n FileNotAuthorizedError,\n FileNotFoundError,\n FilePersistenceError\n} from \"~/domain/file/errors.js\";\nimport { FileToEntryMapper } from \"../shared/FileToEntryMapper.js\";\n\nclass UpdateFileRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private fileModel: FileModel.Interface\n ) {}\n\n async update(file: File): Promise<Result<void, RepositoryAbstraction.Error>> {\n const entry = FileToEntryMapper.toEntry(file);\n\n // Files are not versioned, so we're always updating the same revision\n const id = `${file.id}#0001`;\n\n const result = await this.updateEntry.execute(this.fileModel, id, {\n wbyAco_location: file.location,\n values: entry.values\n });\n\n if (result.isFail()) {\n const error = result.error;\n if (error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new FileNotFoundError(id));\n }\n\n if (error.code === \"Cms/Entry/NotAuthorized\") {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n return Result.fail(new FilePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const UpdateFileRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateFileRepositoryImpl,\n dependencies: [UpdateEntryUseCase, FileModel]\n});\n"],"names":["UpdateFileRepositoryImpl","updateEntry","fileModel","file","entry","FileToEntryMapper","id","result","error","Result","FileNotFoundError","FileNotAuthorizedError","FilePersistenceError","UpdateFileRepository","RepositoryAbstraction","UpdateEntryUseCase","FileModel"],"mappings":";;;;;;AAYA,MAAMA;IACF,YACYC,WAAyC,EACzCC,SAA8B,CACxC;aAFUD,WAAW,GAAXA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,OAAOC,IAAU,EAAsD;QACzE,MAAMC,QAAQC,kBAAkB,OAAO,CAACF;QAGxC,MAAMG,KAAK,GAAGH,KAAK,EAAE,CAAC,KAAK,CAAC;QAE5B,MAAMI,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAED,IAAI;YAC9D,iBAAiBH,KAAK,QAAQ;YAC9B,QAAQC,MAAM,MAAM;QACxB;QAEA,IAAIG,OAAO,MAAM,IAAI;YACjB,MAAMC,QAAQD,OAAO,KAAK;YAC1B,IAAIC,AAAe,yBAAfA,MAAM,IAAI,EACV,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBJ;YAG7C,IAAIE,AAAe,8BAAfA,MAAM,IAAI,EACV,OAAOC,OAAO,IAAI,CAAC,IAAIE;YAG3B,OAAOF,OAAO,IAAI,CAAC,IAAIG,qBAAqBL,OAAO,KAAK;QAC5D;QAEA,OAAOE,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMI,4CAAuBC,qBAAAA,oBAA0C,CAAC;IAC3E,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;KAAU;AACjD"}
@@ -0,0 +1,20 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateFileUseCase as UseCaseAbstraction, UpdateFileInput, UpdateFileRepository } from "./abstractions.js";
3
+ import { GetFileUseCase } from "../GetFile/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ import type { File } from "../../../domain/file/types.js";
6
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
7
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
8
+ declare class UpdateFileUseCaseImpl implements UseCaseAbstraction.Interface {
9
+ private identityContext;
10
+ private permissions;
11
+ private getFile;
12
+ private repository;
13
+ private eventPublisher;
14
+ constructor(identityContext: IdentityContext.Interface, permissions: FmPermissions.Interface, getFile: GetFileUseCase.Interface, repository: UpdateFileRepository.Interface, eventPublisher: EventPublisher.Interface);
15
+ execute(input: UpdateFileInput): Promise<Result<File, UseCaseAbstraction.Error>>;
16
+ }
17
+ export declare const UpdateFileUseCase: typeof UpdateFileUseCaseImpl & {
18
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateFileUseCase>;
19
+ };
20
+ export {};
@@ -0,0 +1,71 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateFileRepository, UpdateFileUseCase } from "./abstractions.js";
3
+ import { GetFileUseCase } from "../GetFile/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ import { FileNotAuthorizedError } from "../../../domain/file/errors.js";
6
+ import { FileAfterUpdateEvent, FileBeforeUpdateEvent } from "./events.js";
7
+ import { FmPermissions } from "../../shared/abstractions.js";
8
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
9
+ import { Identity } from "../../../domain/identity/Identity.js";
10
+ class UpdateFileUseCaseImpl {
11
+ constructor(identityContext, permissions, getFile, repository, eventPublisher){
12
+ this.identityContext = identityContext;
13
+ this.permissions = permissions;
14
+ this.getFile = getFile;
15
+ this.repository = repository;
16
+ this.eventPublisher = eventPublisher;
17
+ }
18
+ async execute(input) {
19
+ const hasPermission = await this.permissions.canEdit("file");
20
+ if (!hasPermission) return Result.fail(new FileNotAuthorizedError());
21
+ const getResult = await this.getFile.execute(input.id);
22
+ if (getResult.isFail()) return Result.fail(getResult.error);
23
+ const original = getResult.value;
24
+ const canEditFile = await this.permissions.canEdit("file", original);
25
+ if (!canEditFile) return Result.fail(new FileNotAuthorizedError());
26
+ const currentIdentity = this.identityContext.getIdentity();
27
+ const file = {
28
+ ...original,
29
+ ...input,
30
+ id: original.id,
31
+ key: original.key,
32
+ size: original.size,
33
+ type: original.type,
34
+ tags: void 0 !== input.tags ? input.tags : original.tags,
35
+ description: void 0 !== input.description ? input.description : original.description,
36
+ location: void 0 !== input.location ? input.location : original.location,
37
+ createdOn: input.createdOn ?? original.createdOn,
38
+ modifiedOn: input.modifiedOn ?? void 0,
39
+ savedOn: input.savedOn ?? original.savedOn,
40
+ createdBy: input.createdBy ? Identity.from(input.createdBy) : original.createdBy,
41
+ modifiedBy: input.modifiedBy ? Identity.from(input.modifiedBy) : Identity.from(currentIdentity),
42
+ savedBy: input.savedBy ? Identity.from(input.savedBy) : Identity.from(currentIdentity)
43
+ };
44
+ await this.eventPublisher.publish(new FileBeforeUpdateEvent({
45
+ original,
46
+ file,
47
+ input
48
+ }));
49
+ const result = await this.repository.update(file);
50
+ if (result.isFail()) return Result.fail(result.error);
51
+ await this.eventPublisher.publish(new FileAfterUpdateEvent({
52
+ original,
53
+ file,
54
+ input
55
+ }));
56
+ return Result.ok(file);
57
+ }
58
+ }
59
+ const UpdateFileUseCase_UpdateFileUseCase = UpdateFileUseCase.createImplementation({
60
+ implementation: UpdateFileUseCaseImpl,
61
+ dependencies: [
62
+ IdentityContext,
63
+ FmPermissions,
64
+ GetFileUseCase,
65
+ UpdateFileRepository,
66
+ EventPublisher
67
+ ]
68
+ });
69
+ export { UpdateFileUseCase_UpdateFileUseCase as UpdateFileUseCase };
70
+
71
+ //# sourceMappingURL=UpdateFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/UpdateFile/UpdateFileUseCase.js","sources":["../../../../src/features/file/UpdateFile/UpdateFileUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UpdateFileUseCase as UseCaseAbstraction,\n UpdateFileInput,\n UpdateFileRepository\n} from \"./abstractions.js\";\nimport { GetFileUseCase } from \"../GetFile/abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport { FileBeforeUpdateEvent, FileAfterUpdateEvent } from \"./events.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { Identity } from \"~/domain/identity/Identity.js\";\n\nclass UpdateFileUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private permissions: FmPermissions.Interface,\n private getFile: GetFileUseCase.Interface,\n private repository: UpdateFileRepository.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(input: UpdateFileInput): Promise<Result<File, UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canEdit(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n // Get the original file (includes ownership check).\n const getResult = await this.getFile.execute(input.id);\n\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const original = getResult.value;\n\n // Check ownership-aware edit permission.\n const canEditFile = await this.permissions.canEdit(\"file\", original);\n if (!canEditFile) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n const currentIdentity = this.identityContext.getIdentity();\n\n const file: File = {\n ...original,\n ...input,\n // Preserve immutable fields.\n id: original.id,\n key: original.key,\n size: original.size,\n type: original.type,\n // Update mutable fields.\n tags: input.tags !== undefined ? input.tags : original.tags,\n description: input.description !== undefined ? input.description : original.description,\n location: input.location !== undefined ? input.location : original.location,\n // System fields.\n createdOn: input.createdOn ?? original.createdOn,\n modifiedOn: input.modifiedOn ?? undefined,\n savedOn: input.savedOn ?? original.savedOn,\n createdBy: input.createdBy ? Identity.from(input.createdBy) : original.createdBy,\n modifiedBy: input.modifiedBy\n ? Identity.from(input.modifiedBy)\n : Identity.from(currentIdentity),\n savedBy: input.savedBy ? Identity.from(input.savedBy) : Identity.from(currentIdentity)\n };\n\n await this.eventPublisher.publish(new FileBeforeUpdateEvent({ original, file, input }));\n\n const result = await this.repository.update(file);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(new FileAfterUpdateEvent({ original, file, input }));\n\n return Result.ok(file);\n }\n}\n\nexport const UpdateFileUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateFileUseCaseImpl,\n dependencies: [\n IdentityContext,\n FmPermissions,\n GetFileUseCase,\n UpdateFileRepository,\n EventPublisher\n ]\n});\n"],"names":["UpdateFileUseCaseImpl","identityContext","permissions","getFile","repository","eventPublisher","input","hasPermission","Result","FileNotAuthorizedError","getResult","original","canEditFile","currentIdentity","file","undefined","Identity","FileBeforeUpdateEvent","result","FileAfterUpdateEvent","UpdateFileUseCase","UseCaseAbstraction","IdentityContext","FmPermissions","GetFileUseCase","UpdateFileRepository","EventPublisher"],"mappings":";;;;;;;;;AAeA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,WAAoC,EACpCC,OAAiC,EACjCC,UAA0C,EAC1CC,cAAwC,CAClD;aALUJ,eAAe,GAAfA;aACAC,WAAW,GAAXA;aACAC,OAAO,GAAPA;aACAC,UAAU,GAAVA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAsB,EAAmD;QACnF,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACrD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAACJ,MAAM,EAAE;QAErD,IAAII,UAAU,MAAM,IAChB,OAAOF,OAAO,IAAI,CAACE,UAAU,KAAK;QAGtC,MAAMC,WAAWD,UAAU,KAAK;QAGhC,MAAME,cAAc,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQD;QAC3D,IAAI,CAACC,aACD,OAAOJ,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMI,kBAAkB,IAAI,CAAC,eAAe,CAAC,WAAW;QAExD,MAAMC,OAAa;YACf,GAAGH,QAAQ;YACX,GAAGL,KAAK;YAER,IAAIK,SAAS,EAAE;YACf,KAAKA,SAAS,GAAG;YACjB,MAAMA,SAAS,IAAI;YACnB,MAAMA,SAAS,IAAI;YAEnB,MAAML,AAAeS,WAAfT,MAAM,IAAI,GAAiBA,MAAM,IAAI,GAAGK,SAAS,IAAI;YAC3D,aAAaL,AAAsBS,WAAtBT,MAAM,WAAW,GAAiBA,MAAM,WAAW,GAAGK,SAAS,WAAW;YACvF,UAAUL,AAAmBS,WAAnBT,MAAM,QAAQ,GAAiBA,MAAM,QAAQ,GAAGK,SAAS,QAAQ;YAE3E,WAAWL,MAAM,SAAS,IAAIK,SAAS,SAAS;YAChD,YAAYL,MAAM,UAAU,IAAIS;YAChC,SAAST,MAAM,OAAO,IAAIK,SAAS,OAAO;YAC1C,WAAWL,MAAM,SAAS,GAAGU,SAAS,IAAI,CAACV,MAAM,SAAS,IAAIK,SAAS,SAAS;YAChF,YAAYL,MAAM,UAAU,GACtBU,SAAS,IAAI,CAACV,MAAM,UAAU,IAC9BU,SAAS,IAAI,CAACH;YACpB,SAASP,MAAM,OAAO,GAAGU,SAAS,IAAI,CAACV,MAAM,OAAO,IAAIU,SAAS,IAAI,CAACH;QAC1E;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAII,sBAAsB;YAAEN;YAAUG;YAAMR;QAAM;QAEpF,MAAMY,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAACJ;QAE5C,IAAII,OAAO,MAAM,IACb,OAAOV,OAAO,IAAI,CAACU,OAAO,KAAK;QAGnC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIC,qBAAqB;YAAER;YAAUG;YAAMR;QAAM;QAEnF,OAAOE,OAAO,EAAE,CAACM;IACrB;AACJ;AAEO,MAAMM,sCAAoBC,kBAAAA,oBAAuC,CAAC;IACrE,gBAAgBrB;IAChB,cAAc;QACVsB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,56 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { CreatedBy, File } from "../../../domain/file/types.js";
3
+ import { type FilePersistenceError, type FileNotFoundError, FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
+ export interface UpdateFileInput {
5
+ id: string;
6
+ name?: string;
7
+ metadata?: Record<string, any>;
8
+ tags?: string[];
9
+ description?: string;
10
+ location?: {
11
+ folderId: string;
12
+ };
13
+ createdOn?: string;
14
+ modifiedOn?: string;
15
+ savedOn?: string;
16
+ createdBy?: CreatedBy;
17
+ modifiedBy?: CreatedBy;
18
+ savedBy?: CreatedBy;
19
+ }
20
+ /**
21
+ * UpdateFile repository interface
22
+ */
23
+ export interface IUpdateFileRepository {
24
+ update(file: File): Promise<Result<void, RepositoryError>>;
25
+ }
26
+ export interface IUpdateFileRepositoryErrors {
27
+ notFound: FileNotFoundError;
28
+ notAuthorized: FileNotAuthorizedError;
29
+ persistence: FilePersistenceError;
30
+ }
31
+ type RepositoryError = IUpdateFileRepositoryErrors[keyof IUpdateFileRepositoryErrors];
32
+ /** Persist file metadata updates. */
33
+ export declare const UpdateFileRepository: import("@webiny/di").Abstraction<IUpdateFileRepository>;
34
+ export declare namespace UpdateFileRepository {
35
+ type Interface = IUpdateFileRepository;
36
+ type Error = RepositoryError;
37
+ }
38
+ /**
39
+ * UpdateFile use case interface
40
+ */
41
+ export interface IUpdateFileUseCase {
42
+ execute(input: UpdateFileInput): Promise<Result<File, UseCaseError>>;
43
+ }
44
+ export interface IUpdateFileUseCaseErrors {
45
+ notAuthorized: FileNotAuthorizedError;
46
+ notFound: FileNotFoundError;
47
+ persistence: FilePersistenceError;
48
+ }
49
+ type UseCaseError = IUpdateFileUseCaseErrors[keyof IUpdateFileUseCaseErrors];
50
+ /** Update file metadata. */
51
+ export declare const UpdateFileUseCase: import("@webiny/di").Abstraction<IUpdateFileUseCase>;
52
+ export declare namespace UpdateFileUseCase {
53
+ type Interface = IUpdateFileUseCase;
54
+ type Error = UseCaseError;
55
+ }
56
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const UpdateFileRepository = createAbstraction("UpdateFileRepository");
3
+ const UpdateFileUseCase = createAbstraction("UpdateFileUseCase");
4
+ export { UpdateFileRepository, UpdateFileUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/UpdateFile/abstractions.js","sources":["../../../../src/features/file/UpdateFile/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { CreatedBy, File } from \"~/domain/file/types.js\";\nimport {\n type FilePersistenceError,\n type FileNotFoundError,\n FileNotAuthorizedError\n} from \"~/domain/file/errors.js\";\n\nexport interface UpdateFileInput {\n id: string;\n name?: string;\n metadata?: Record<string, any>;\n tags?: string[];\n description?: string;\n location?: { folderId: string };\n createdOn?: string;\n modifiedOn?: string;\n savedOn?: string;\n createdBy?: CreatedBy;\n modifiedBy?: CreatedBy;\n savedBy?: CreatedBy;\n}\n\n/**\n * UpdateFile repository interface\n */\nexport interface IUpdateFileRepository {\n update(file: File): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IUpdateFileRepositoryErrors {\n notFound: FileNotFoundError;\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IUpdateFileRepositoryErrors[keyof IUpdateFileRepositoryErrors];\n\n/** Persist file metadata updates. */\nexport const UpdateFileRepository =\n createAbstraction<IUpdateFileRepository>(\"UpdateFileRepository\");\n\nexport namespace UpdateFileRepository {\n export type Interface = IUpdateFileRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * UpdateFile use case interface\n */\nexport interface IUpdateFileUseCase {\n execute(input: UpdateFileInput): Promise<Result<File, UseCaseError>>;\n}\n\nexport interface IUpdateFileUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n notFound: FileNotFoundError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IUpdateFileUseCaseErrors[keyof IUpdateFileUseCaseErrors];\n\n/** Update file metadata. */\nexport const UpdateFileUseCase = createAbstraction<IUpdateFileUseCase>(\"UpdateFileUseCase\");\n\nexport namespace UpdateFileUseCase {\n export type Interface = IUpdateFileUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["UpdateFileRepository","createAbstraction","UpdateFileUseCase"],"mappings":";AAwCO,MAAMA,uBACTC,kBAAyC;AAuBtC,MAAMC,oBAAoBD,kBAAsC"}
@@ -0,0 +1,34 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { File } from "../../../domain/file/types.js";
4
+ import type { UpdateFileInput } from "./abstractions.js";
5
+ export interface FileBeforeUpdatePayload {
6
+ original: File;
7
+ file: File;
8
+ input: UpdateFileInput;
9
+ }
10
+ export declare class FileBeforeUpdateEvent extends DomainEvent<FileBeforeUpdatePayload> {
11
+ eventType: "FileManager/File/BeforeUpdate";
12
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeUpdateEvent>>;
13
+ }
14
+ /** Hook into file lifecycle before a file is updated. */
15
+ export declare const FileBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeUpdateEvent>>;
16
+ export declare namespace FileBeforeUpdateEventHandler {
17
+ type Interface = IEventHandler<FileBeforeUpdateEvent>;
18
+ type Event = FileBeforeUpdateEvent;
19
+ }
20
+ export interface FileAfterUpdatePayload {
21
+ original: File;
22
+ file: File;
23
+ input: UpdateFileInput;
24
+ }
25
+ export declare class FileAfterUpdateEvent extends DomainEvent<FileAfterUpdatePayload> {
26
+ eventType: "FileManager/File/AfterUpdate";
27
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterUpdateEvent>>;
28
+ }
29
+ /** Hook into file lifecycle after a file is updated. */
30
+ export declare const FileAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterUpdateEvent>>;
31
+ export declare namespace FileAfterUpdateEventHandler {
32
+ type Interface = IEventHandler<FileAfterUpdateEvent>;
33
+ type Event = FileAfterUpdateEvent;
34
+ }
@@ -0,0 +1,23 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ class FileBeforeUpdateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return FileBeforeUpdateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "FileManager/File/BeforeUpdate";
9
+ }
10
+ }
11
+ const FileBeforeUpdateEventHandler = createAbstraction("FileBeforeUpdateEventHandler");
12
+ class FileAfterUpdateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return FileAfterUpdateEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "FileManager/File/AfterUpdate";
18
+ }
19
+ }
20
+ const FileAfterUpdateEventHandler = createAbstraction("FileAfterUpdateEventHandler");
21
+ export { FileAfterUpdateEvent, FileAfterUpdateEventHandler, FileBeforeUpdateEvent, FileBeforeUpdateEventHandler };
22
+
23
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/UpdateFile/events.js","sources":["../../../../src/features/file/UpdateFile/events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { File } from \"~/domain/file/types.js\";\nimport type { UpdateFileInput } from \"./abstractions.js\";\n\n// ============================================================================\n// FileBeforeUpdate Event\n// ============================================================================\n\nexport interface FileBeforeUpdatePayload {\n original: File;\n file: File;\n input: UpdateFileInput;\n}\n\nexport class FileBeforeUpdateEvent extends DomainEvent<FileBeforeUpdatePayload> {\n eventType = \"FileManager/File/BeforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FileBeforeUpdateEventHandler;\n }\n}\n\n/** Hook into file lifecycle before a file is updated. */\nexport const FileBeforeUpdateEventHandler = createAbstraction<IEventHandler<FileBeforeUpdateEvent>>(\n \"FileBeforeUpdateEventHandler\"\n);\n\nexport namespace FileBeforeUpdateEventHandler {\n export type Interface = IEventHandler<FileBeforeUpdateEvent>;\n export type Event = FileBeforeUpdateEvent;\n}\n\n// ============================================================================\n// FileAfterUpdate Event\n// ============================================================================\n\nexport interface FileAfterUpdatePayload {\n original: File;\n file: File;\n input: UpdateFileInput;\n}\n\nexport class FileAfterUpdateEvent extends DomainEvent<FileAfterUpdatePayload> {\n eventType = \"FileManager/File/AfterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FileAfterUpdateEventHandler;\n }\n}\n\n/** Hook into file lifecycle after a file is updated. */\nexport const FileAfterUpdateEventHandler = createAbstraction<IEventHandler<FileAfterUpdateEvent>>(\n \"FileAfterUpdateEventHandler\"\n);\n\nexport namespace FileAfterUpdateEventHandler {\n export type Interface = IEventHandler<FileAfterUpdateEvent>;\n export type Event = FileAfterUpdateEvent;\n}\n"],"names":["FileBeforeUpdateEvent","DomainEvent","FileBeforeUpdateEventHandler","createAbstraction","FileAfterUpdateEvent","FileAfterUpdateEventHandler"],"mappings":";;AAgBO,MAAMA,8BAA8BC;IAGvC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,+BAA+BC,kBACxC;AAkBG,MAAMC,6BAA6BH;IAGtC,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,8BAA8BF,kBACvC"}
@@ -0,0 +1,4 @@
1
+ export declare const UpdateFileFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdateFileRepository } from "./UpdateFileRepository.js";
3
+ import { UpdateFileUseCase } from "./UpdateFileUseCase.js";
4
+ const UpdateFileFeature = createFeature({
5
+ name: "FileManager/UpdateFile",
6
+ register (container) {
7
+ container.register(UpdateFileUseCase);
8
+ container.register(UpdateFileRepository).inSingletonScope();
9
+ }
10
+ });
11
+ export { UpdateFileFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/UpdateFile/feature.js","sources":["../../../../src/features/file/UpdateFile/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateFileRepository } from \"./UpdateFileRepository.js\";\nimport { UpdateFileUseCase } from \"./UpdateFileUseCase.js\";\n\nexport const UpdateFileFeature = createFeature({\n name: \"FileManager/UpdateFile\",\n register(container) {\n container.register(UpdateFileUseCase);\n container.register(UpdateFileRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateFileFeature","createFeature","container","UpdateFileUseCase","UpdateFileRepository"],"mappings":";;;AAIO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,sBAAsB,gBAAgB;IAC7D;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { UpdateFileUseCase } from "./abstractions.js";
2
+ export { FileBeforeUpdateEventHandler, FileAfterUpdateEventHandler } from "./events.js";
@@ -0,0 +1,2 @@
1
+ export { UpdateFileUseCase } from "./abstractions.js";
2
+ export { FileAfterUpdateEventHandler, FileBeforeUpdateEventHandler } from "./events.js";
@@ -0,0 +1,5 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types";
2
+ import type { File } from "../../../domain/file/types.js";
3
+ export declare class EntryToFileMapper {
4
+ static toFile(entry: CmsEntry): File;
5
+ }
@@ -0,0 +1,28 @@
1
+ class EntryToFileMapper {
2
+ static toFile(entry) {
3
+ return {
4
+ id: entry.entryId,
5
+ createdOn: entry.createdOn,
6
+ modifiedOn: entry.modifiedOn ?? void 0,
7
+ savedOn: entry.savedOn,
8
+ createdBy: entry.createdBy,
9
+ modifiedBy: entry.modifiedBy ?? void 0,
10
+ savedBy: entry.savedBy,
11
+ name: entry.values.name,
12
+ key: entry.values.key,
13
+ size: entry.values.size,
14
+ type: entry.values.type,
15
+ metadata: entry.values.metadata || {},
16
+ accessControl: entry.values.accessControl,
17
+ location: {
18
+ folderId: entry.location?.folderId ?? "root"
19
+ },
20
+ tags: entry.values.tags || [],
21
+ description: entry.values.description ?? "",
22
+ extensions: entry.values.extensions
23
+ };
24
+ }
25
+ }
26
+ export { EntryToFileMapper };
27
+
28
+ //# sourceMappingURL=EntryToFileMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/shared/EntryToFileMapper.js","sources":["../../../../src/features/file/shared/EntryToFileMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { File } from \"~/domain/file/types.js\";\n\nexport class EntryToFileMapper {\n static toFile(entry: CmsEntry): File {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn ?? undefined,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy ?? undefined,\n savedBy: entry.savedBy,\n name: entry.values.name,\n key: entry.values.key,\n size: entry.values.size,\n type: entry.values.type,\n metadata: entry.values.metadata || {},\n accessControl: entry.values.accessControl,\n location: { folderId: entry.location?.folderId ?? \"root\" },\n tags: entry.values.tags || [],\n description: entry.values.description ?? \"\",\n extensions: entry.values.extensions\n };\n }\n}\n"],"names":["EntryToFileMapper","entry","undefined"],"mappings":"AAGO,MAAMA;IACT,OAAO,OAAOC,KAAe,EAAQ;QACjC,OAAO;YACH,IAAIA,MAAM,OAAO;YACjB,WAAWA,MAAM,SAAS;YAC1B,YAAYA,MAAM,UAAU,IAAIC;YAChC,SAASD,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS;YAC1B,YAAYA,MAAM,UAAU,IAAIC;YAChC,SAASD,MAAM,OAAO;YACtB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,KAAKA,MAAM,MAAM,CAAC,GAAG;YACrB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,UAAUA,MAAM,MAAM,CAAC,QAAQ,IAAI,CAAC;YACpC,eAAeA,MAAM,MAAM,CAAC,aAAa;YACzC,UAAU;gBAAE,UAAUA,MAAM,QAAQ,EAAE,YAAY;YAAO;YACzD,MAAMA,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE;YAC7B,aAAaA,MAAM,MAAM,CAAC,WAAW,IAAI;YACzC,YAAYA,MAAM,MAAM,CAAC,UAAU;QACvC;IACJ;AACJ"}
@@ -0,0 +1,5 @@
1
+ import type { CreateCmsEntryInput } from "@webiny/api-headless-cms/types";
2
+ import type { FileInput } from "../../../domain/file/types.js";
3
+ export declare class FileInputToEntryInputMapper {
4
+ static toEntry(file: FileInput): CreateCmsEntryInput;
5
+ }