@webiny/api-file-manager 0.0.0-unstable.496cf268ac → 0.0.0-unstable.5387e5f7c8

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 (613) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/README.md +7 -13
  5. package/contants.d.ts +1 -0
  6. package/contants.js +4 -0
  7. package/contants.js.map +1 -0
  8. package/delivery/AssetDelivery/Asset.d.ts +28 -0
  9. package/delivery/AssetDelivery/Asset.js +53 -0
  10. package/delivery/AssetDelivery/Asset.js.map +1 -0
  11. package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
  12. package/delivery/AssetDelivery/AssetRequest.js +23 -0
  13. package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
  14. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
  15. package/delivery/AssetDelivery/abstractions/AssetReply.js +32 -0
  16. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
  17. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
  18. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +7 -0
  19. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
  20. package/delivery/AssetDeliveryRoute.d.ts +24 -0
  21. package/delivery/AssetDeliveryRoute.js +69 -0
  22. package/delivery/AssetDeliveryRoute.js.map +1 -0
  23. package/delivery/index.d.ts +7 -0
  24. package/delivery/index.js +6 -0
  25. package/delivery/setupAssetDelivery.d.ts +1 -0
  26. package/delivery/setupAssetDelivery.js +4 -0
  27. package/delivery/setupAssetDelivery.js.map +1 -0
  28. package/domain/file/abstractions.d.ts +17 -0
  29. package/domain/file/abstractions.js +5 -0
  30. package/domain/file/abstractions.js.map +1 -0
  31. package/domain/file/errors.d.ts +59 -0
  32. package/domain/file/errors.js +80 -0
  33. package/domain/file/errors.js.map +1 -0
  34. package/domain/file/file.model.d.ts +12 -0
  35. package/domain/file/file.model.js +70 -0
  36. package/domain/file/file.model.js.map +1 -0
  37. package/domain/file/types.d.ts +53 -0
  38. package/domain/identity/Identity.d.ts +9 -0
  39. package/domain/identity/Identity.js +12 -0
  40. package/domain/identity/Identity.js.map +1 -0
  41. package/domain/permissionsSchema.d.ts +16 -0
  42. package/domain/permissionsSchema.js +30 -0
  43. package/domain/permissionsSchema.js.map +1 -0
  44. package/domain/settings/constants.d.ts +1 -0
  45. package/domain/settings/constants.js +4 -0
  46. package/domain/settings/constants.js.map +1 -0
  47. package/domain/settings/errors.d.ts +18 -0
  48. package/domain/settings/errors.js +28 -0
  49. package/domain/settings/errors.js.map +1 -0
  50. package/domain/settings/types.d.ts +10 -0
  51. package/domain/settings/types.js +0 -0
  52. package/domain/settings/validation.d.ts +6 -0
  53. package/domain/settings/validation.js +27 -0
  54. package/domain/settings/validation.js.map +1 -0
  55. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  56. package/exports/api/file-manager/assetDelivery.js +8 -0
  57. package/exports/api/file-manager/file.d.ts +13 -0
  58. package/exports/api/file-manager/file.js +13 -0
  59. package/exports/api/file-manager/permissions.d.ts +1 -0
  60. package/exports/api/file-manager/permissions.js +1 -0
  61. package/exports/api/file-manager/settings.d.ts +3 -0
  62. package/exports/api/file-manager/settings.js +3 -0
  63. package/features/FileManagerFeature.d.ts +4 -0
  64. package/features/FileManagerFeature.js +37 -0
  65. package/features/FileManagerFeature.js.map +1 -0
  66. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  67. package/features/assetDelivery/Asset/Asset.js +14 -0
  68. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  69. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  70. package/features/assetDelivery/Asset/abstractions.js +5 -0
  71. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  72. package/features/assetDelivery/Asset/index.d.ts +1 -0
  73. package/features/assetDelivery/Asset/index.js +1 -0
  74. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
  75. package/features/assetDelivery/FilesAssetRequestResolver.js +29 -0
  76. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  77. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  78. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  79. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  80. package/features/assetDelivery/NullAssetReply.d.ts +4 -0
  81. package/features/assetDelivery/NullAssetReply.js +14 -0
  82. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  83. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  84. package/features/assetDelivery/NullAssetResolver.js +13 -0
  85. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  86. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  87. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  88. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  89. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  90. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  91. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  92. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  93. package/features/assetDelivery/ObjectKey/index.js +1 -0
  94. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  95. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  96. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  97. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  98. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  99. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  100. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  101. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  102. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  103. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  104. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  105. package/features/assetDelivery/abstractions.d.ts +65 -0
  106. package/features/assetDelivery/abstractions.js +11 -0
  107. package/features/assetDelivery/abstractions.js.map +1 -0
  108. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  109. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  110. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  111. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  112. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  113. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  114. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  115. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  116. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  117. package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
  118. package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
  119. package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
  120. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  121. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  122. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  123. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  124. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  125. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  126. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  127. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  128. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  129. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  130. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  131. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  132. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  133. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  134. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  135. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  136. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  137. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  138. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  139. package/features/assetDelivery/feature.d.ts +4 -0
  140. package/features/assetDelivery/feature.js +35 -0
  141. package/features/assetDelivery/feature.js.map +1 -0
  142. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  143. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  144. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  145. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  146. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  147. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  148. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  149. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  150. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  151. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  152. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  153. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  154. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +11 -0
  155. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -0
  156. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  157. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  158. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +65 -0
  159. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  160. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  161. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  162. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  163. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +9 -0
  164. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
  165. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  166. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
  167. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
  168. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  169. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  170. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  171. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  172. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +9 -0
  173. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
  174. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  175. package/features/assetDelivery/transformation/index.d.ts +5 -0
  176. package/features/assetDelivery/transformation/index.js +4 -0
  177. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  178. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  179. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  180. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  181. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  182. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  183. package/features/file/CreateFile/CreateFileRepository.js +33 -0
  184. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  185. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  186. package/features/file/CreateFile/CreateFileUseCase.js +83 -0
  187. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  188. package/features/file/CreateFile/abstractions.d.ts +60 -0
  189. package/features/file/CreateFile/abstractions.js +6 -0
  190. package/features/file/CreateFile/abstractions.js.map +1 -0
  191. package/features/file/CreateFile/events.d.ts +31 -0
  192. package/features/file/CreateFile/events.js +23 -0
  193. package/features/file/CreateFile/events.js.map +1 -0
  194. package/features/file/CreateFile/feature.d.ts +4 -0
  195. package/features/file/CreateFile/feature.js +13 -0
  196. package/features/file/CreateFile/feature.js.map +1 -0
  197. package/features/file/CreateFile/index.d.ts +2 -0
  198. package/features/file/CreateFile/index.js +2 -0
  199. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  200. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +22 -0
  201. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  202. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  203. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +73 -0
  204. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  205. package/features/file/CreateFilesInBatch/abstractions.d.ts +42 -0
  206. package/features/file/CreateFilesInBatch/abstractions.js +6 -0
  207. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  208. package/features/file/CreateFilesInBatch/events.d.ts +31 -0
  209. package/features/file/CreateFilesInBatch/events.js +23 -0
  210. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  211. package/features/file/CreateFilesInBatch/feature.d.ts +4 -0
  212. package/features/file/CreateFilesInBatch/feature.js +13 -0
  213. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  214. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  215. package/features/file/CreateFilesInBatch/index.js +1 -0
  216. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  217. package/features/file/DeleteFile/DeleteFileRepository.js +32 -0
  218. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  219. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  220. package/features/file/DeleteFile/DeleteFileUseCase.js +43 -0
  221. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  222. package/features/file/DeleteFile/abstractions.d.ts +39 -0
  223. package/features/file/DeleteFile/abstractions.js +6 -0
  224. package/features/file/DeleteFile/abstractions.js.map +1 -0
  225. package/features/file/DeleteFile/events.d.ts +29 -0
  226. package/features/file/DeleteFile/events.js +23 -0
  227. package/features/file/DeleteFile/events.js.map +1 -0
  228. package/features/file/DeleteFile/feature.d.ts +4 -0
  229. package/features/file/DeleteFile/feature.js +13 -0
  230. package/features/file/DeleteFile/feature.js.map +1 -0
  231. package/features/file/DeleteFile/index.d.ts +2 -0
  232. package/features/file/DeleteFile/index.js +2 -0
  233. package/features/file/FileModelProvider.d.ts +31 -0
  234. package/features/file/FileModelProvider.js +22 -0
  235. package/features/file/FileModelProvider.js.map +1 -0
  236. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
  237. package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
  238. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  239. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
  240. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +28 -0
  241. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
  242. package/features/file/FileUrlGenerator/abstractions.d.ts +20 -0
  243. package/features/file/FileUrlGenerator/abstractions.js +6 -0
  244. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  245. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  246. package/features/file/FileUrlGenerator/feature.js +13 -0
  247. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  248. package/features/file/FileUrlGenerator/index.d.ts +2 -0
  249. package/features/file/FileUrlGenerator/index.js +1 -0
  250. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  251. package/features/file/GetFile/GetFileRepository.js +34 -0
  252. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  253. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  254. package/features/file/GetFile/GetFileUseCase.js +29 -0
  255. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  256. package/features/file/GetFile/abstractions.d.ts +40 -0
  257. package/features/file/GetFile/abstractions.js +6 -0
  258. package/features/file/GetFile/abstractions.js.map +1 -0
  259. package/features/file/GetFile/feature.d.ts +4 -0
  260. package/features/file/GetFile/feature.js +13 -0
  261. package/features/file/GetFile/feature.js.map +1 -0
  262. package/features/file/GetFile/index.d.ts +1 -0
  263. package/features/file/GetFile/index.js +1 -0
  264. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  265. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  266. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  267. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  268. package/features/file/GetFileByUrl/abstractions.js +5 -0
  269. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  270. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  271. package/features/file/GetFileByUrl/feature.js +11 -0
  272. package/features/file/GetFileByUrl/feature.js.map +1 -0
  273. package/features/file/GetFileByUrl/index.d.ts +1 -0
  274. package/features/file/GetFileByUrl/index.js +1 -0
  275. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  276. package/features/file/GetFileContentsById/abstractions.js +5 -0
  277. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  278. package/features/file/GetFileContentsById/index.d.ts +1 -0
  279. package/features/file/GetFileContentsById/index.js +1 -0
  280. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  281. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  282. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  283. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  284. package/features/file/GetFileContentsByKey/index.js +1 -0
  285. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  286. package/features/file/ListFiles/ListFilesRepository.js +54 -0
  287. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  288. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  289. package/features/file/ListFiles/ListFilesUseCase.js +44 -0
  290. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  291. package/features/file/ListFiles/abstractions.d.ts +49 -0
  292. package/features/file/ListFiles/abstractions.js +6 -0
  293. package/features/file/ListFiles/abstractions.js.map +1 -0
  294. package/features/file/ListFiles/feature.d.ts +4 -0
  295. package/features/file/ListFiles/feature.js +13 -0
  296. package/features/file/ListFiles/feature.js.map +1 -0
  297. package/features/file/ListFiles/index.d.ts +1 -0
  298. package/features/file/ListFiles/index.js +1 -0
  299. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +37 -0
  300. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +56 -0
  301. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
  302. package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
  303. package/features/file/ListImagesByTagTool/feature.js +11 -0
  304. package/features/file/ListImagesByTagTool/feature.js.map +1 -0
  305. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  306. package/features/file/ListTags/ListTagsRepository.js +43 -0
  307. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  308. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  309. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  310. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  311. package/features/file/ListTags/abstractions.d.ts +45 -0
  312. package/features/file/ListTags/abstractions.js +6 -0
  313. package/features/file/ListTags/abstractions.js.map +1 -0
  314. package/features/file/ListTags/feature.d.ts +4 -0
  315. package/features/file/ListTags/feature.js +13 -0
  316. package/features/file/ListTags/feature.js.map +1 -0
  317. package/features/file/ListTags/index.d.ts +1 -0
  318. package/features/file/ListTags/index.js +1 -0
  319. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  320. package/features/file/UpdateFile/UpdateFileRepository.js +38 -0
  321. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  322. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  323. package/features/file/UpdateFile/UpdateFileUseCase.js +71 -0
  324. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  325. package/features/file/UpdateFile/abstractions.d.ts +56 -0
  326. package/features/file/UpdateFile/abstractions.js +6 -0
  327. package/features/file/UpdateFile/abstractions.js.map +1 -0
  328. package/features/file/UpdateFile/events.d.ts +34 -0
  329. package/features/file/UpdateFile/events.js +23 -0
  330. package/features/file/UpdateFile/events.js.map +1 -0
  331. package/features/file/UpdateFile/feature.d.ts +4 -0
  332. package/features/file/UpdateFile/feature.js +13 -0
  333. package/features/file/UpdateFile/feature.js.map +1 -0
  334. package/features/file/UpdateFile/index.d.ts +2 -0
  335. package/features/file/UpdateFile/index.js +2 -0
  336. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  337. package/features/file/shared/EntryToFileMapper.js +28 -0
  338. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  339. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  340. package/features/file/shared/FileInputToEntryInputMapper.js +32 -0
  341. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  342. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  343. package/features/file/shared/FileToEntryMapper.js +31 -0
  344. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  345. package/features/permissions/abstractions.d.ts +21 -0
  346. package/features/permissions/abstractions.js +6 -0
  347. package/features/permissions/abstractions.js.map +1 -0
  348. package/features/permissions/feature.d.ts +4 -0
  349. package/features/permissions/feature.js +7 -0
  350. package/features/permissions/feature.js.map +1 -0
  351. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  352. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  353. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  354. package/features/settings/GetSettings/abstractions.d.ts +18 -0
  355. package/features/settings/GetSettings/abstractions.js +5 -0
  356. package/features/settings/GetSettings/abstractions.js.map +1 -0
  357. package/features/settings/GetSettings/feature.d.ts +4 -0
  358. package/features/settings/GetSettings/feature.js +11 -0
  359. package/features/settings/GetSettings/feature.js.map +1 -0
  360. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +17 -0
  361. package/features/settings/SettingsInstaller/SettingsInstaller.js +39 -0
  362. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  363. package/features/settings/SettingsInstaller/feature.d.ts +4 -0
  364. package/features/settings/SettingsInstaller/feature.js +11 -0
  365. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  366. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  367. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +55 -0
  368. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  369. package/features/settings/UpdateSettings/abstractions.d.ts +23 -0
  370. package/features/settings/UpdateSettings/abstractions.js +5 -0
  371. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  372. package/features/settings/UpdateSettings/events.d.ts +34 -0
  373. package/features/settings/UpdateSettings/events.js +23 -0
  374. package/features/settings/UpdateSettings/events.js.map +1 -0
  375. package/features/settings/UpdateSettings/feature.d.ts +4 -0
  376. package/features/settings/UpdateSettings/feature.js +11 -0
  377. package/features/settings/UpdateSettings/feature.js.map +1 -0
  378. package/features/settings/UpdateSettings/index.d.ts +2 -0
  379. package/features/settings/UpdateSettings/index.js +2 -0
  380. package/features/shared/abstractions.d.ts +1 -0
  381. package/features/shared/abstractions.js +1 -0
  382. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  383. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  384. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  385. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  386. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  387. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  388. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  389. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  390. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  391. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  392. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  393. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  394. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  395. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  396. package/features/upload/GetUploadPayload/index.js +1 -0
  397. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  398. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  399. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  400. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  401. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  402. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  403. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  404. package/features/upload/ReadFileMetadata/feature.js +11 -0
  405. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  406. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  407. package/features/upload/ReadFileMetadata/index.js +1 -0
  408. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  409. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  410. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  411. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  412. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  413. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  414. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  415. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  416. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  417. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  418. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  419. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  420. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  421. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  422. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  423. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  424. package/features/upload/WriteFileMetadata/feature.js +17 -0
  425. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  426. package/features/upload/index.d.ts +17 -0
  427. package/features/upload/index.js +10 -0
  428. package/features/upload/types.d.ts +28 -0
  429. package/features/upload/types.js +0 -0
  430. package/features/upload/utils/FileExtension.d.ts +6 -0
  431. package/features/upload/utils/FileExtension.js +16 -0
  432. package/features/upload/utils/FileExtension.js.map +1 -0
  433. package/features/upload/utils/FileKey.d.ts +11 -0
  434. package/features/upload/utils/FileKey.js +33 -0
  435. package/features/upload/utils/FileKey.js.map +1 -0
  436. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  437. package/features/upload/utils/FileNormalizer.js +41 -0
  438. package/features/upload/utils/FileNormalizer.js.map +1 -0
  439. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  440. package/features/upload/utils/FileUploadModifier.js +39 -0
  441. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  442. package/features/upload/utils/checkPermissions.d.ts +5 -0
  443. package/features/upload/utils/checkPermissions.js +22 -0
  444. package/features/upload/utils/checkPermissions.js.map +1 -0
  445. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  446. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  447. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  448. package/features/upload/utils/mimeTypes.d.ts +1 -0
  449. package/features/upload/utils/mimeTypes.js +9 -0
  450. package/features/upload/utils/mimeTypes.js.map +1 -0
  451. package/graphql/FmGraphQLSchema.d.ts +24 -0
  452. package/graphql/FmGraphQLSchema.js +458 -0
  453. package/graphql/FmGraphQLSchema.js.map +1 -0
  454. package/index.d.ts +4 -6
  455. package/index.js +14 -67
  456. package/index.js.map +1 -1
  457. package/package.json +40 -40
  458. package/types.d.ts +2 -351
  459. package/types.js +1 -27
  460. package/createFileManager/checkBasePermissions.d.ts +0 -5
  461. package/createFileManager/checkBasePermissions.js +0 -24
  462. package/createFileManager/checkBasePermissions.js.map +0 -1
  463. package/createFileManager/files.crud.d.ts +0 -3
  464. package/createFileManager/files.crud.js +0 -325
  465. package/createFileManager/files.crud.js.map +0 -1
  466. package/createFileManager/filevalidation.disabled.js +0 -55
  467. package/createFileManager/filevalidation.disabled.js.map +0 -1
  468. package/createFileManager/index.d.ts +0 -13
  469. package/createFileManager/index.js +0 -20
  470. package/createFileManager/index.js.map +0 -1
  471. package/createFileManager/settings.crud.d.ts +0 -3
  472. package/createFileManager/settings.crud.js +0 -91
  473. package/createFileManager/settings.crud.js.map +0 -1
  474. package/createFileManager/system.crud.d.ts +0 -3
  475. package/createFileManager/system.crud.js +0 -86
  476. package/createFileManager/system.crud.js.map +0 -1
  477. package/graphql/index.d.ts +0 -3
  478. package/graphql/index.js +0 -277
  479. package/graphql/index.js.map +0 -1
  480. package/handlers/download/byAlias.d.ts +0 -6
  481. package/handlers/download/byAlias.js +0 -89
  482. package/handlers/download/byAlias.js.map +0 -1
  483. package/handlers/download/byExactKey.d.ts +0 -2
  484. package/handlers/download/byExactKey.js +0 -57
  485. package/handlers/download/byExactKey.js.map +0 -1
  486. package/handlers/download/extractFileInformation.d.ts +0 -9
  487. package/handlers/download/extractFileInformation.js +0 -20
  488. package/handlers/download/extractFileInformation.js.map +0 -1
  489. package/handlers/download/getS3Object.d.ts +0 -10
  490. package/handlers/download/getS3Object.js +0 -57
  491. package/handlers/download/getS3Object.js.map +0 -1
  492. package/handlers/download/index.d.ts +0 -2
  493. package/handlers/download/index.js +0 -27
  494. package/handlers/download/index.js.map +0 -1
  495. package/handlers/manage/index.d.ts +0 -5
  496. package/handlers/manage/index.js +0 -55
  497. package/handlers/manage/index.js.map +0 -1
  498. package/handlers/transform/index.d.ts +0 -2
  499. package/handlers/transform/index.js +0 -89
  500. package/handlers/transform/index.js.map +0 -1
  501. package/handlers/transform/legacyUtils.d.ts +0 -17
  502. package/handlers/transform/legacyUtils.js +0 -42
  503. package/handlers/transform/legacyUtils.js.map +0 -1
  504. package/handlers/transform/loaders/imageLoader.d.ts +0 -30
  505. package/handlers/transform/loaders/imageLoader.js +0 -94
  506. package/handlers/transform/loaders/imageLoader.js.map +0 -1
  507. package/handlers/transform/loaders/index.d.ts +0 -8
  508. package/handlers/transform/loaders/index.js +0 -10
  509. package/handlers/transform/loaders/index.js.map +0 -1
  510. package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
  511. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -45
  512. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
  513. package/handlers/transform/managers/imageManager.d.ts +0 -15
  514. package/handlers/transform/managers/imageManager.js +0 -74
  515. package/handlers/transform/managers/imageManager.js.map +0 -1
  516. package/handlers/transform/managers/index.d.ts +0 -5
  517. package/handlers/transform/managers/index.js +0 -10
  518. package/handlers/transform/managers/index.js.map +0 -1
  519. package/handlers/transform/optimizeImage.d.ts +0 -3
  520. package/handlers/transform/optimizeImage.js +0 -42
  521. package/handlers/transform/optimizeImage.js.map +0 -1
  522. package/handlers/transform/transformImage.d.ts +0 -10
  523. package/handlers/transform/transformImage.js +0 -25
  524. package/handlers/transform/transformImage.js.map +0 -1
  525. package/handlers/transform/utils.d.ts +0 -12
  526. package/handlers/transform/utils.js +0 -36
  527. package/handlers/transform/utils.js.map +0 -1
  528. package/handlers/types.d.ts +0 -8
  529. package/handlers/types.js +0 -5
  530. package/handlers/types.js.map +0 -1
  531. package/handlers/utils/getEnvironment.d.ts +0 -5
  532. package/handlers/utils/getEnvironment.js +0 -11
  533. package/handlers/utils/getEnvironment.js.map +0 -1
  534. package/handlers/utils/getObjectParams.d.ts +0 -9
  535. package/handlers/utils/getObjectParams.js +0 -21
  536. package/handlers/utils/getObjectParams.js.map +0 -1
  537. package/handlers/utils/index.d.ts +0 -2
  538. package/handlers/utils/index.js +0 -20
  539. package/handlers/utils/index.js.map +0 -1
  540. package/plugins/FilePhysicalStoragePlugin.d.ts +0 -21
  541. package/plugins/FilePhysicalStoragePlugin.js +0 -31
  542. package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
  543. package/plugins/FileStorageTransformPlugin.d.ts +0 -34
  544. package/plugins/FileStorageTransformPlugin.js +0 -40
  545. package/plugins/FileStorageTransformPlugin.js.map +0 -1
  546. package/plugins/crud/files/validation.d.ts +0 -3
  547. package/plugins/crud/files/validation.js +0 -41
  548. package/plugins/crud/files/validation.js.map +0 -1
  549. package/plugins/crud/files.crud.d.ts +0 -4
  550. package/plugins/crud/files.crud.js +0 -431
  551. package/plugins/crud/files.crud.js.map +0 -1
  552. package/plugins/crud/settings.crud.d.ts +0 -5
  553. package/plugins/crud/settings.crud.js +0 -116
  554. package/plugins/crud/settings.crud.js.map +0 -1
  555. package/plugins/crud/system.crud.d.ts +0 -4
  556. package/plugins/crud/system.crud.js +0 -153
  557. package/plugins/crud/system.crud.js.map +0 -1
  558. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  559. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  560. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  561. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  562. package/plugins/crud/utils/createFileModel.js +0 -77
  563. package/plugins/crud/utils/createFileModel.js.map +0 -1
  564. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  565. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  566. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  567. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
  568. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
  569. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  570. package/plugins/definitions/FilePlugin.d.ts +0 -136
  571. package/plugins/definitions/FilePlugin.js +0 -70
  572. package/plugins/definitions/FilePlugin.js.map +0 -1
  573. package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
  574. package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
  575. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  576. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  577. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  578. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  579. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  580. package/plugins/definitions/InstallationPlugin.js +0 -42
  581. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  582. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  583. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  584. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  585. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  586. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  587. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  588. package/plugins/graphql.d.ts +0 -4
  589. package/plugins/graphql.js +0 -290
  590. package/plugins/graphql.js.map +0 -1
  591. package/plugins/index.d.ts +0 -2
  592. package/plugins/index.js +0 -27
  593. package/plugins/index.js.map +0 -1
  594. package/plugins/storage/FileStorage.d.ts +0 -30
  595. package/plugins/storage/FileStorage.js +0 -103
  596. package/plugins/storage/FileStorage.js.map +0 -1
  597. package/plugins/storage/index.d.ts +0 -4
  598. package/plugins/storage/index.js +0 -26
  599. package/plugins/storage/index.js.map +0 -1
  600. package/storage/FileStorage.d.ts +0 -32
  601. package/storage/FileStorage.js +0 -86
  602. package/storage/FileStorage.js.map +0 -1
  603. package/types/file.d.ts +0 -33
  604. package/types/file.js +0 -5
  605. package/types/file.js.map +0 -1
  606. package/types/file.lifecycle.d.ts +0 -40
  607. package/types/file.lifecycle.js +0 -5
  608. package/types/file.lifecycle.js.map +0 -1
  609. package/types.js.map +0 -1
  610. package/utils.d.ts +0 -4
  611. package/utils.js +0 -16
  612. package/utils.js.map +0 -1
  613. /package/{createFileManager/filevalidation.disabled.d.ts → domain/file/types.js} +0 -0
@@ -0,0 +1,32 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
3
+ import { DeleteFileRepository } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
+ import { FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
+ class DeleteFileRepositoryImpl {
7
+ constructor(deleteEntry, fileModelProvider){
8
+ this.deleteEntry = deleteEntry;
9
+ this.fileModelProvider = fileModelProvider;
10
+ }
11
+ async delete(file) {
12
+ const entryId = `${file.id}#0001`;
13
+ const fileModel = await this.fileModelProvider.get();
14
+ const result = await this.deleteEntry.execute(fileModel, entryId);
15
+ if (result.isFail()) {
16
+ const error = result.error;
17
+ if ("Cms/Entry/NotFound" === error.code) return Result.fail(new FileNotFoundError(file.id));
18
+ return Result.fail(new FilePersistenceError(result.error));
19
+ }
20
+ return Result.ok();
21
+ }
22
+ }
23
+ const DeleteFileRepository_DeleteFileRepository = DeleteFileRepository.createImplementation({
24
+ implementation: DeleteFileRepositoryImpl,
25
+ dependencies: [
26
+ DeleteEntryUseCase,
27
+ FileModelProvider
28
+ ]
29
+ });
30
+ export { DeleteFileRepository_DeleteFileRepository as DeleteFileRepository };
31
+
32
+ //# sourceMappingURL=DeleteFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/DeleteFile/DeleteFileRepository.js","sources":["../../../../src/features/file/DeleteFile/DeleteFileRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { DeleteFileRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { FileModelProvider } from \"~/domain/file/abstractions.js\";\nimport { FileNotFoundError, FilePersistenceError } from \"~/domain/file/errors.js\";\nimport { File } from \"~/domain/file/types.js\";\n\nclass DeleteFileRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private fileModelProvider: FileModelProvider.Interface\n ) {}\n\n async delete(file: File): Promise<Result<void, RepositoryAbstraction.Error>> {\n // Files are not versioned, so we're always deleting the same revision\n const entryId = `${file.id}#0001`;\n\n const fileModel = await this.fileModelProvider.get();\n const result = await this.deleteEntry.execute(fileModel, entryId);\n\n if (result.isFail()) {\n const error = result.error;\n if (error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new FileNotFoundError(file.id));\n }\n return Result.fail(new FilePersistenceError(result.error));\n }\n\n return Result.ok();\n }\n}\n\nexport const DeleteFileRepository = RepositoryAbstraction.createImplementation({\n implementation: DeleteFileRepositoryImpl,\n dependencies: [DeleteEntryUseCase, FileModelProvider]\n});\n"],"names":["DeleteFileRepositoryImpl","deleteEntry","fileModelProvider","file","entryId","fileModel","result","error","Result","FileNotFoundError","FilePersistenceError","DeleteFileRepository","RepositoryAbstraction","DeleteEntryUseCase","FileModelProvider"],"mappings":";;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,iBAA8C,CACxD;aAFUD,WAAW,GAAXA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,OAAOC,IAAU,EAAsD;QAEzE,MAAMC,UAAU,GAAGD,KAAK,EAAE,CAAC,KAAK,CAAC;QAEjC,MAAME,YAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG;QAClD,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACD,WAAWD;QAEzD,IAAIE,OAAO,MAAM,IAAI;YACjB,MAAMC,QAAQD,OAAO,KAAK;YAC1B,IAAIC,AAAe,yBAAfA,MAAM,IAAI,EACV,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBN,KAAK,EAAE;YAEpD,OAAOK,OAAO,IAAI,CAAC,IAAIE,qBAAqBJ,OAAO,KAAK;QAC5D;QAEA,OAAOE,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMG,4CAAuBC,qBAAAA,oBAA0C,CAAC;IAC3E,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;KAAkB;AACzD"}
@@ -0,0 +1,17 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteFileUseCase as UseCaseAbstraction, DeleteFileRepository } from "./abstractions.js";
3
+ import { GetFileUseCase } from "../GetFile/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
6
+ declare class DeleteFileUseCaseImpl implements UseCaseAbstraction.Interface {
7
+ private permissions;
8
+ private getFile;
9
+ private repository;
10
+ private eventPublisher;
11
+ constructor(permissions: FmPermissions.Interface, getFile: GetFileUseCase.Interface, repository: DeleteFileRepository.Interface, eventPublisher: EventPublisher.Interface);
12
+ execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>>;
13
+ }
14
+ export declare const DeleteFileUseCase: typeof DeleteFileUseCaseImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteFileUseCase>;
16
+ };
17
+ export {};
@@ -0,0 +1,43 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteFileRepository, DeleteFileUseCase } 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 { FileAfterDeleteEvent, FileBeforeDeleteEvent } from "./events.js";
7
+ import { FmPermissions } from "../../shared/abstractions.js";
8
+ class DeleteFileUseCaseImpl {
9
+ constructor(permissions, getFile, repository, eventPublisher){
10
+ this.permissions = permissions;
11
+ this.getFile = getFile;
12
+ this.repository = repository;
13
+ this.eventPublisher = eventPublisher;
14
+ }
15
+ async execute(id) {
16
+ const hasPermission = await this.permissions.canDelete("file");
17
+ if (!hasPermission) return Result.fail(new FileNotAuthorizedError());
18
+ const getResult = await this.getFile.execute(id);
19
+ if (getResult.isFail()) return Result.fail(getResult.error);
20
+ const file = getResult.value;
21
+ await this.eventPublisher.publish(new FileBeforeDeleteEvent({
22
+ file
23
+ }));
24
+ const result = await this.repository.delete(file);
25
+ if (result.isFail()) return Result.fail(result.error);
26
+ await this.eventPublisher.publish(new FileAfterDeleteEvent({
27
+ file
28
+ }));
29
+ return Result.ok();
30
+ }
31
+ }
32
+ const DeleteFileUseCase_DeleteFileUseCase = DeleteFileUseCase.createImplementation({
33
+ implementation: DeleteFileUseCaseImpl,
34
+ dependencies: [
35
+ FmPermissions,
36
+ GetFileUseCase,
37
+ DeleteFileRepository,
38
+ EventPublisher
39
+ ]
40
+ });
41
+ export { DeleteFileUseCase_DeleteFileUseCase as DeleteFileUseCase };
42
+
43
+ //# sourceMappingURL=DeleteFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/DeleteFile/DeleteFileUseCase.js","sources":["../../../../src/features/file/DeleteFile/DeleteFileUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { DeleteFileUseCase as UseCaseAbstraction, DeleteFileRepository } from \"./abstractions.js\";\nimport { GetFileUseCase } from \"../GetFile/abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport { FileBeforeDeleteEvent, FileAfterDeleteEvent } from \"./events.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\n\nclass DeleteFileUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: FmPermissions.Interface,\n private getFile: GetFileUseCase.Interface,\n private repository: DeleteFileRepository.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canDelete(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n // Get file (includes ownership check)\n const getResult = await this.getFile.execute(id);\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const file = getResult.value;\n\n await this.eventPublisher.publish(new FileBeforeDeleteEvent({ file }));\n\n const result = await this.repository.delete(file);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(new FileAfterDeleteEvent({ file }));\n\n return Result.ok();\n }\n}\n\nexport const DeleteFileUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeleteFileUseCaseImpl,\n dependencies: [FmPermissions, GetFileUseCase, DeleteFileRepository, EventPublisher]\n});\n"],"names":["DeleteFileUseCaseImpl","permissions","getFile","repository","eventPublisher","id","hasPermission","Result","FileNotAuthorizedError","getResult","file","FileBeforeDeleteEvent","result","FileAfterDeleteEvent","DeleteFileUseCase","UseCaseAbstraction","FmPermissions","GetFileUseCase","DeleteFileRepository","EventPublisher"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,WAAoC,EACpCC,OAAiC,EACjCC,UAA0C,EAC1CC,cAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,OAAO,GAAPA;aACAC,UAAU,GAAVA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAmD;QACvE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAACJ;QAC7C,IAAII,UAAU,MAAM,IAChB,OAAOF,OAAO,IAAI,CAACE,UAAU,KAAK;QAGtC,MAAMC,OAAOD,UAAU,KAAK;QAE5B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIE,sBAAsB;YAAED;QAAK;QAEnE,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAACF;QAE5C,IAAIE,OAAO,MAAM,IACb,OAAOL,OAAO,IAAI,CAACK,OAAO,KAAK;QAGnC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIC,qBAAqB;YAAEH;QAAK;QAElE,OAAOH,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMO,sCAAoBC,kBAAAA,oBAAuC,CAAC;IACrE,gBAAgBf;IAChB,cAAc;QAACgB;QAAeC;QAAgBC;QAAsBC;KAAe;AACvF"}
@@ -0,0 +1,39 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import { type FilePersistenceError, type FileNotFoundError, FileNotAuthorizedError } from "../../../domain/file/errors.js";
3
+ import { File } from "../../../domain/file/types.js";
4
+ /**
5
+ * DeleteFile repository interface
6
+ */
7
+ export interface IDeleteFileRepository {
8
+ delete(file: File): Promise<Result<void, RepositoryError>>;
9
+ }
10
+ export interface IDeleteFileRepositoryErrors {
11
+ notFound: FileNotFoundError;
12
+ persistence: FilePersistenceError;
13
+ }
14
+ type RepositoryError = IDeleteFileRepositoryErrors[keyof IDeleteFileRepositoryErrors];
15
+ /** Persist file deletion. */
16
+ export declare const DeleteFileRepository: import("@webiny/di").Abstraction<IDeleteFileRepository>;
17
+ export declare namespace DeleteFileRepository {
18
+ type Interface = IDeleteFileRepository;
19
+ type Error = RepositoryError;
20
+ }
21
+ /**
22
+ * DeleteFile use case interface
23
+ */
24
+ export interface IDeleteFileUseCase {
25
+ execute(id: string): Promise<Result<void, UseCaseError>>;
26
+ }
27
+ export interface IDeleteFileUseCaseErrors {
28
+ notAuthorized: FileNotAuthorizedError;
29
+ notFound: FileNotFoundError;
30
+ persistence: FilePersistenceError;
31
+ }
32
+ type UseCaseError = IDeleteFileUseCaseErrors[keyof IDeleteFileUseCaseErrors];
33
+ /** Delete a file. */
34
+ export declare const DeleteFileUseCase: import("@webiny/di").Abstraction<IDeleteFileUseCase>;
35
+ export declare namespace DeleteFileUseCase {
36
+ type Interface = IDeleteFileUseCase;
37
+ type Error = UseCaseError;
38
+ }
39
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const DeleteFileRepository = createAbstraction("DeleteFileRepository");
3
+ const DeleteFileUseCase = createAbstraction("DeleteFileUseCase");
4
+ export { DeleteFileRepository, DeleteFileUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/DeleteFile/abstractions.js","sources":["../../../../src/features/file/DeleteFile/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport {\n type FilePersistenceError,\n type FileNotFoundError,\n FileNotAuthorizedError\n} from \"~/domain/file/errors.js\";\nimport { File } from \"~/domain/file/types.js\";\n\n/**\n * DeleteFile repository interface\n */\nexport interface IDeleteFileRepository {\n delete(file: File): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeleteFileRepositoryErrors {\n notFound: FileNotFoundError;\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = IDeleteFileRepositoryErrors[keyof IDeleteFileRepositoryErrors];\n\n/** Persist file deletion. */\nexport const DeleteFileRepository =\n createAbstraction<IDeleteFileRepository>(\"DeleteFileRepository\");\n\nexport namespace DeleteFileRepository {\n export type Interface = IDeleteFileRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * DeleteFile use case interface\n */\nexport interface IDeleteFileUseCase {\n execute(id: string): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeleteFileUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n notFound: FileNotFoundError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IDeleteFileUseCaseErrors[keyof IDeleteFileUseCaseErrors];\n\n/** Delete a file. */\nexport const DeleteFileUseCase = createAbstraction<IDeleteFileUseCase>(\"DeleteFileUseCase\");\n\nexport namespace DeleteFileUseCase {\n export type Interface = IDeleteFileUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["DeleteFileRepository","createAbstraction","DeleteFileUseCase"],"mappings":";AAwBO,MAAMA,uBACTC,kBAAyC;AAuBtC,MAAMC,oBAAoBD,kBAAsC"}
@@ -0,0 +1,29 @@
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
+ export interface FileBeforeDeletePayload {
5
+ file: File;
6
+ }
7
+ export declare class FileBeforeDeleteEvent extends DomainEvent<FileBeforeDeletePayload> {
8
+ eventType: "FileManager/File/BeforeDelete";
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeDeleteEvent>>;
10
+ }
11
+ /** Hook into file lifecycle before a file is deleted. */
12
+ export declare const FileBeforeDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeDeleteEvent>>;
13
+ export declare namespace FileBeforeDeleteEventHandler {
14
+ type Interface = IEventHandler<FileBeforeDeleteEvent>;
15
+ type Event = FileBeforeDeleteEvent;
16
+ }
17
+ export interface FileAfterDeletePayload {
18
+ file: File;
19
+ }
20
+ export declare class FileAfterDeleteEvent extends DomainEvent<FileAfterDeletePayload> {
21
+ eventType: "FileManager/File/AfterDelete";
22
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterDeleteEvent>>;
23
+ }
24
+ /** Hook into file lifecycle after a file is deleted. */
25
+ export declare const FileAfterDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterDeleteEvent>>;
26
+ export declare namespace FileAfterDeleteEventHandler {
27
+ type Interface = IEventHandler<FileAfterDeleteEvent>;
28
+ type Event = FileAfterDeleteEvent;
29
+ }
@@ -0,0 +1,23 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ class FileBeforeDeleteEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return FileBeforeDeleteEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "FileManager/File/BeforeDelete";
9
+ }
10
+ }
11
+ const FileBeforeDeleteEventHandler = createAbstraction("FileBeforeDeleteEventHandler");
12
+ class FileAfterDeleteEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return FileAfterDeleteEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "FileManager/File/AfterDelete";
18
+ }
19
+ }
20
+ const FileAfterDeleteEventHandler = createAbstraction("FileAfterDeleteEventHandler");
21
+ export { FileAfterDeleteEvent, FileAfterDeleteEventHandler, FileBeforeDeleteEvent, FileBeforeDeleteEventHandler };
22
+
23
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/DeleteFile/events.js","sources":["../../../../src/features/file/DeleteFile/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\";\n\n// ============================================================================\n// FileBeforeDelete Event\n// ============================================================================\n\nexport interface FileBeforeDeletePayload {\n file: File;\n}\n\nexport class FileBeforeDeleteEvent extends DomainEvent<FileBeforeDeletePayload> {\n eventType = \"FileManager/File/BeforeDelete\" as const;\n\n getHandlerAbstraction() {\n return FileBeforeDeleteEventHandler;\n }\n}\n\n/** Hook into file lifecycle before a file is deleted. */\nexport const FileBeforeDeleteEventHandler = createAbstraction<IEventHandler<FileBeforeDeleteEvent>>(\n \"FileBeforeDeleteEventHandler\"\n);\n\nexport namespace FileBeforeDeleteEventHandler {\n export type Interface = IEventHandler<FileBeforeDeleteEvent>;\n export type Event = FileBeforeDeleteEvent;\n}\n\n// ============================================================================\n// FileAfterDelete Event\n// ============================================================================\n\nexport interface FileAfterDeletePayload {\n file: File;\n}\n\nexport class FileAfterDeleteEvent extends DomainEvent<FileAfterDeletePayload> {\n eventType = \"FileManager/File/AfterDelete\" as const;\n\n getHandlerAbstraction() {\n return FileAfterDeleteEventHandler;\n }\n}\n\n/** Hook into file lifecycle after a file is deleted. */\nexport const FileAfterDeleteEventHandler = createAbstraction<IEventHandler<FileAfterDeleteEvent>>(\n \"FileAfterDeleteEventHandler\"\n);\n\nexport namespace FileAfterDeleteEventHandler {\n export type Interface = IEventHandler<FileAfterDeleteEvent>;\n export type Event = FileAfterDeleteEvent;\n}\n"],"names":["FileBeforeDeleteEvent","DomainEvent","FileBeforeDeleteEventHandler","createAbstraction","FileAfterDeleteEvent","FileAfterDeleteEventHandler"],"mappings":";;AAaO,MAAMA,8BAA8BC;IAGvC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,+BAA+BC,kBACxC;AAgBG,MAAMC,6BAA6BH;IAGtC,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,8BAA8BF,kBACvC"}
@@ -0,0 +1,4 @@
1
+ export declare const DeleteFileFeature: {
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 { DeleteFileRepository } from "./DeleteFileRepository.js";
3
+ import { DeleteFileUseCase } from "./DeleteFileUseCase.js";
4
+ const DeleteFileFeature = createFeature({
5
+ name: "FileManager/DeleteFile",
6
+ register (container) {
7
+ container.register(DeleteFileUseCase);
8
+ container.register(DeleteFileRepository).inSingletonScope();
9
+ }
10
+ });
11
+ export { DeleteFileFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/DeleteFile/feature.js","sources":["../../../../src/features/file/DeleteFile/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteFileRepository } from \"./DeleteFileRepository.js\";\nimport { DeleteFileUseCase } from \"./DeleteFileUseCase.js\";\n\nexport const DeleteFileFeature = createFeature({\n name: \"FileManager/DeleteFile\",\n register(container) {\n container.register(DeleteFileUseCase);\n container.register(DeleteFileRepository).inSingletonScope();\n }\n});\n"],"names":["DeleteFileFeature","createFeature","container","DeleteFileUseCase","DeleteFileRepository"],"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 { DeleteFileUseCase } from "./abstractions.js";
2
+ export { FileBeforeDeleteEventHandler, FileAfterDeleteEventHandler } from "./events.js";
@@ -0,0 +1,2 @@
1
+ export { DeleteFileUseCase } from "./abstractions.js";
2
+ export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "./events.js";
@@ -0,0 +1,31 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
3
+ import { FileModelProvider as Abstraction } from "../../domain/file/abstractions.js";
4
+ /**
5
+ * Resolves the tenant's `fmFile` model on demand.
6
+ *
7
+ * Two things this deliberately does NOT do, both of which the initializer it replaces did:
8
+ *
9
+ * - **No memoization.** `ModelsFetcher` already caches the model list per request (`ModelCache` is a
10
+ * per-request `createMemoryCache()`, see `ContentModelFeature`), so a second cache would buy only
11
+ * a repeat access-control check and an array lookup, at the cost of two lifetimes to reason about.
12
+ * - **No `withoutAuthorization`.** `fmFile` is a private model and `PrivateModelBuilder` sets
13
+ * `authorization: false`, which makes `AccessControl.modelAuthorizationDisabled()` short-circuit
14
+ * `canAccessModel()` to true for every identity — so the wrapper changed nothing. Confirmed
15
+ * against `filesSecurity.test.ts`, which exercises `fm.file`-only identities holding no CMS
16
+ * content-model permissions.
17
+ *
18
+ * `GetModelUseCase` is an ordinary constructor dependency: this provider is only constructed when a
19
+ * consumer first awaits `get()`, which happens during request handling — after the CMS has
20
+ * registered everything the use case needs. That timing is what previously forced the lazy
21
+ * `container.resolve()` inside the initializer.
22
+ */
23
+ declare class FileModelProviderImpl implements Abstraction.Interface {
24
+ private getModel;
25
+ constructor(getModel: GetModelUseCase.Interface);
26
+ get(): Promise<CmsModel>;
27
+ }
28
+ export declare const FileModelProvider: typeof FileModelProviderImpl & {
29
+ __abstraction: import("@webiny/di").Abstraction<import("~/domain/file/abstractions.js").IFileModelProvider>;
30
+ };
31
+ export {};
@@ -0,0 +1,22 @@
1
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
2
+ import { FileModelProvider } from "../../domain/file/abstractions.js";
3
+ import { FILE_MODEL_ID } from "../../domain/file/file.model.js";
4
+ class FileModelProviderImpl {
5
+ constructor(getModel){
6
+ this.getModel = getModel;
7
+ }
8
+ async get() {
9
+ const result = await this.getModel.execute(FILE_MODEL_ID);
10
+ if (result.isFail()) throw result.error;
11
+ return result.value;
12
+ }
13
+ }
14
+ const FileModelProvider_FileModelProvider = FileModelProvider.createImplementation({
15
+ implementation: FileModelProviderImpl,
16
+ dependencies: [
17
+ GetModelUseCase
18
+ ]
19
+ });
20
+ export { FileModelProvider_FileModelProvider as FileModelProvider };
21
+
22
+ //# sourceMappingURL=FileModelProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/FileModelProvider.js","sources":["../../../src/features/file/FileModelProvider.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { FileModelProvider as Abstraction } from \"~/domain/file/abstractions.js\";\nimport { FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\n/**\n * Resolves the tenant's `fmFile` model on demand.\n *\n * Two things this deliberately does NOT do, both of which the initializer it replaces did:\n *\n * - **No memoization.** `ModelsFetcher` already caches the model list per request (`ModelCache` is a\n * per-request `createMemoryCache()`, see `ContentModelFeature`), so a second cache would buy only\n * a repeat access-control check and an array lookup, at the cost of two lifetimes to reason about.\n * - **No `withoutAuthorization`.** `fmFile` is a private model and `PrivateModelBuilder` sets\n * `authorization: false`, which makes `AccessControl.modelAuthorizationDisabled()` short-circuit\n * `canAccessModel()` to true for every identity — so the wrapper changed nothing. Confirmed\n * against `filesSecurity.test.ts`, which exercises `fm.file`-only identities holding no CMS\n * content-model permissions.\n *\n * `GetModelUseCase` is an ordinary constructor dependency: this provider is only constructed when a\n * consumer first awaits `get()`, which happens during request handling — after the CMS has\n * registered everything the use case needs. That timing is what previously forced the lazy\n * `container.resolve()` inside the initializer.\n */\nclass FileModelProviderImpl implements Abstraction.Interface {\n constructor(private getModel: GetModelUseCase.Interface) {}\n\n async get(): Promise<CmsModel> {\n const result = await this.getModel.execute(FILE_MODEL_ID);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n }\n}\n\nexport const FileModelProvider = Abstraction.createImplementation({\n implementation: FileModelProviderImpl,\n dependencies: [GetModelUseCase]\n});\n"],"names":["FileModelProviderImpl","getModel","result","FILE_MODEL_ID","FileModelProvider","Abstraction","GetModelUseCase"],"mappings":";;;AAwBA,MAAMA;IACF,YAAoBC,QAAmC,CAAE;aAArCA,QAAQ,GAARA;IAAsC;IAE1D,MAAM,MAAyB;QAC3B,MAAMC,SAAS,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACC;QAC3C,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;QAEtB,OAAOA,OAAO,KAAK;IACvB;AACJ;AAEO,MAAME,sCAAoBC,kBAAAA,oBAAgC,CAAC;IAC9D,gBAAgBL;IAChB,cAAc;QAACM;KAAgB;AACnC"}
@@ -0,0 +1,12 @@
1
+ import { FileUrlGenerator as Abstraction } from "./abstractions.js";
2
+ import { FileUrlPrefixProvider } from "./abstractions.js";
3
+ import type { File } from "../../../domain/file/types.js";
4
+ declare class FileUrlGeneratorImpl implements Abstraction.Interface {
5
+ private readonly prefixProvider;
6
+ constructor(prefixProvider: FileUrlPrefixProvider.Interface);
7
+ generateUrl(file: File): Promise<string>;
8
+ }
9
+ export declare const FileUrlGenerator: typeof FileUrlGeneratorImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IFileUrlGenerator>;
11
+ };
12
+ export {};
@@ -0,0 +1,19 @@
1
+ import { FileUrlGenerator, FileUrlPrefixProvider } from "./abstractions.js";
2
+ class FileUrlGeneratorImpl {
3
+ constructor(prefixProvider){
4
+ this.prefixProvider = prefixProvider;
5
+ }
6
+ async generateUrl(file) {
7
+ const prefix = await this.prefixProvider.getPrefix();
8
+ return prefix + file.key;
9
+ }
10
+ }
11
+ const FileUrlGenerator_FileUrlGenerator = FileUrlGenerator.createImplementation({
12
+ implementation: FileUrlGeneratorImpl,
13
+ dependencies: [
14
+ FileUrlPrefixProvider
15
+ ]
16
+ });
17
+ export { FileUrlGenerator_FileUrlGenerator as FileUrlGenerator };
18
+
19
+ //# sourceMappingURL=FileUrlGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/FileUrlGenerator/FileUrlGenerator.js","sources":["../../../../src/features/file/FileUrlGenerator/FileUrlGenerator.ts"],"sourcesContent":["import { FileUrlGenerator as Abstraction } from \"./abstractions.js\";\nimport { FileUrlPrefixProvider } from \"./abstractions.js\";\nimport type { File } from \"~/domain/file/types.js\";\n\nclass FileUrlGeneratorImpl implements Abstraction.Interface {\n public constructor(private readonly prefixProvider: FileUrlPrefixProvider.Interface) {}\n\n public async generateUrl(file: File): Promise<string> {\n const prefix = await this.prefixProvider.getPrefix();\n return prefix + file.key;\n }\n}\n\nexport const FileUrlGenerator = Abstraction.createImplementation({\n implementation: FileUrlGeneratorImpl,\n dependencies: [FileUrlPrefixProvider]\n});\n"],"names":["FileUrlGeneratorImpl","prefixProvider","file","prefix","FileUrlGenerator","Abstraction","FileUrlPrefixProvider"],"mappings":";AAIA,MAAMA;IACF,YAAoCC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAEtF,MAAa,YAAYC,IAAU,EAAmB;QAClD,MAAMC,SAAS,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS;QAClD,OAAOA,SAASD,KAAK,GAAG;IAC5B;AACJ;AAEO,MAAME,oCAAmBC,iBAAAA,oBAAgC,CAAC;IAC7D,gBAAgBL;IAChB,cAAc;QAACM;KAAsB;AACzC"}
@@ -0,0 +1,13 @@
1
+ import { FileUrlPrefixProvider as Abstraction } from "./abstractions.js";
2
+ import { GetSettingsUseCase } from "../../../features/settings/GetSettings/abstractions.js";
3
+ declare class SettingsFileUrlPrefixProviderImpl implements Abstraction.Interface {
4
+ private readonly getSettings;
5
+ private prefix;
6
+ constructor(getSettings: GetSettingsUseCase.Interface);
7
+ getPrefix(): Promise<string>;
8
+ private loadPrefix;
9
+ }
10
+ export declare const SettingsFileUrlPrefixProvider: typeof SettingsFileUrlPrefixProviderImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IFileUrlPrefixProvider>;
12
+ };
13
+ export {};
@@ -0,0 +1,28 @@
1
+ import { FileUrlPrefixProvider } from "./abstractions.js";
2
+ import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
3
+ class SettingsFileUrlPrefixProviderImpl {
4
+ constructor(getSettings){
5
+ this.getSettings = getSettings;
6
+ this.prefix = null;
7
+ }
8
+ getPrefix() {
9
+ if (!this.prefix) this.prefix = this.loadPrefix().catch((error)=>{
10
+ this.prefix = null;
11
+ throw error;
12
+ });
13
+ return this.prefix;
14
+ }
15
+ async loadPrefix() {
16
+ const result = await this.getSettings.execute();
17
+ return result.value?.srcPrefix ?? "";
18
+ }
19
+ }
20
+ const SettingsFileUrlPrefixProvider = FileUrlPrefixProvider.createImplementation({
21
+ implementation: SettingsFileUrlPrefixProviderImpl,
22
+ dependencies: [
23
+ GetSettingsUseCase
24
+ ]
25
+ });
26
+ export { SettingsFileUrlPrefixProvider };
27
+
28
+ //# sourceMappingURL=SettingsFileUrlPrefixProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js","sources":["../../../../src/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.ts"],"sourcesContent":["import { FileUrlPrefixProvider as Abstraction } from \"./abstractions.js\";\nimport { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\n\nclass SettingsFileUrlPrefixProviderImpl implements Abstraction.Interface {\n private prefix: Promise<string> | null = null;\n\n public constructor(private readonly getSettings: GetSettingsUseCase.Interface) {}\n\n // Read once per instance, when the first URL is needed. A failed read is forgotten, so the next\n // call tries again.\n public getPrefix(): Promise<string> {\n if (!this.prefix) {\n this.prefix = this.loadPrefix().catch(error => {\n this.prefix = null;\n throw error;\n });\n }\n return this.prefix;\n }\n\n private async loadPrefix(): Promise<string> {\n const result = await this.getSettings.execute();\n return result.value?.srcPrefix ?? \"\";\n }\n}\n\nexport const SettingsFileUrlPrefixProvider = Abstraction.createImplementation({\n implementation: SettingsFileUrlPrefixProviderImpl,\n dependencies: [GetSettingsUseCase]\n});\n"],"names":["SettingsFileUrlPrefixProviderImpl","getSettings","error","result","SettingsFileUrlPrefixProvider","Abstraction","GetSettingsUseCase"],"mappings":";;AAGA,MAAMA;IAGF,YAAoCC,WAAyC,CAAE;aAA3CA,WAAW,GAAXA;aAF5B,MAAM,GAA2B;IAEuC;IAIzE,YAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAACC,CAAAA;YAClC,IAAI,CAAC,MAAM,GAAG;YACd,MAAMA;QACV;QAEJ,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,MAAc,aAA8B;QACxC,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;QAC7C,OAAOA,OAAO,KAAK,EAAE,aAAa;IACtC;AACJ;AAEO,MAAMC,gCAAgCC,sBAAAA,oBAAgC,CAAC;IAC1E,gBAAgBL;IAChB,cAAc;QAACM;KAAmB;AACtC"}
@@ -0,0 +1,20 @@
1
+ import type { File } from "../../../domain/file/types.js";
2
+ export interface IFileUrlGenerator {
3
+ generateUrl(file: File): Promise<string>;
4
+ }
5
+ export declare const FileUrlGenerator: import("@webiny/di").Abstraction<IFileUrlGenerator>;
6
+ export declare namespace FileUrlGenerator {
7
+ type Interface = IFileUrlGenerator;
8
+ }
9
+ export interface IFileUrlPrefixProvider {
10
+ getPrefix(): Promise<string>;
11
+ }
12
+ /**
13
+ * Provides the prefix the default FileUrlGenerator puts in front of a file's key. The default
14
+ * implementation reads `srcPrefix` from the File Manager settings. Replace it to load the prefix
15
+ * from somewhere else, without touching how URLs are put together.
16
+ */
17
+ export declare const FileUrlPrefixProvider: import("@webiny/di").Abstraction<IFileUrlPrefixProvider>;
18
+ export declare namespace FileUrlPrefixProvider {
19
+ type Interface = IFileUrlPrefixProvider;
20
+ }
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const FileUrlGenerator = createAbstraction("FileManager/FileUrlGenerator");
3
+ const FileUrlPrefixProvider = createAbstraction("FileManager/FileUrlPrefixProvider");
4
+ export { FileUrlGenerator, FileUrlPrefixProvider };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/FileUrlGenerator/abstractions.js","sources":["../../../../src/features/file/FileUrlGenerator/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { File } from \"~/domain/file/types.js\";\n\nexport interface IFileUrlGenerator {\n generateUrl(file: File): Promise<string>;\n}\n\n/* Generate URLs for uploaded files. */\nexport const FileUrlGenerator = createAbstraction<IFileUrlGenerator>(\n \"FileManager/FileUrlGenerator\"\n);\n\nexport namespace FileUrlGenerator {\n export type Interface = IFileUrlGenerator;\n}\n\nexport interface IFileUrlPrefixProvider {\n getPrefix(): Promise<string>;\n}\n\n/**\n * Provides the prefix the default FileUrlGenerator puts in front of a file's key. The default\n * implementation reads `srcPrefix` from the File Manager settings. Replace it to load the prefix\n * from somewhere else, without touching how URLs are put together.\n */\nexport const FileUrlPrefixProvider = createAbstraction<IFileUrlPrefixProvider>(\n \"FileManager/FileUrlPrefixProvider\"\n);\n\nexport namespace FileUrlPrefixProvider {\n export type Interface = IFileUrlPrefixProvider;\n}\n"],"names":["FileUrlGenerator","createAbstraction","FileUrlPrefixProvider"],"mappings":";AAQO,MAAMA,mBAAmBC,kBAC5B;AAgBG,MAAMC,wBAAwBD,kBACjC"}
@@ -0,0 +1,4 @@
1
+ export declare const FileUrlGeneratorFeature: {
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 { FileUrlGenerator } from "./FileUrlGenerator.js";
3
+ import { SettingsFileUrlPrefixProvider } from "./SettingsFileUrlPrefixProvider.js";
4
+ const FileUrlGeneratorFeature = createFeature({
5
+ name: "FileManager/FileUrlGenerator",
6
+ register (container) {
7
+ container.register(FileUrlGenerator).inSingletonScope();
8
+ container.register(SettingsFileUrlPrefixProvider).inSingletonScope();
9
+ }
10
+ });
11
+ export { FileUrlGeneratorFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/FileUrlGenerator/feature.js","sources":["../../../../src/features/file/FileUrlGenerator/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { FileUrlGenerator } from \"./FileUrlGenerator.js\";\nimport { SettingsFileUrlPrefixProvider } from \"./SettingsFileUrlPrefixProvider.js\";\n\nexport const FileUrlGeneratorFeature = createFeature({\n name: \"FileManager/FileUrlGenerator\",\n register(container) {\n container.register(FileUrlGenerator).inSingletonScope();\n // A singleton, so the settings are read once per request however many URLs are generated.\n container.register(SettingsFileUrlPrefixProvider).inSingletonScope();\n }\n});\n"],"names":["FileUrlGeneratorFeature","createFeature","container","FileUrlGenerator","SettingsFileUrlPrefixProvider"],"mappings":";;;AAIO,MAAMA,0BAA0BC,cAAc;IACjD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,kBAAkB,gBAAgB;QAErDD,UAAU,QAAQ,CAACE,+BAA+B,gBAAgB;IACtE;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { FileUrlGenerator } from "./abstractions.js";
2
+ export { FileUrlPrefixProvider } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { FileUrlGenerator, FileUrlPrefixProvider } from "./abstractions.js";
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
3
+ import { GetFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
+ import type { File } from "../../../domain/file/types.js";
6
+ declare class GetFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
+ private getEntryById;
8
+ private fileModelProvider;
9
+ constructor(getEntryById: GetEntryByIdUseCase.Interface, fileModelProvider: FileModelProvider.Interface);
10
+ execute(id: string): Promise<Result<File, RepositoryAbstraction.Error>>;
11
+ }
12
+ export declare const GetFileRepository: typeof GetFileRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetFileRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,34 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
3
+ import { GetFileRepository } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
+ import { FileNotAuthorizedError, FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
+ import { EntryToFileMapper } from "../shared/EntryToFileMapper.js";
7
+ class GetFileRepositoryImpl {
8
+ constructor(getEntryById, fileModelProvider){
9
+ this.getEntryById = getEntryById;
10
+ this.fileModelProvider = fileModelProvider;
11
+ }
12
+ async execute(id) {
13
+ const fileModel = await this.fileModelProvider.get();
14
+ const result = await this.getEntryById.execute(fileModel, `${id}#0001`);
15
+ if (result.isFail()) {
16
+ const error = result.error;
17
+ if ("Cms/Entry/NotFound" === error.code) return Result.fail(new FileNotFoundError(id));
18
+ if ("Cms/Entry/NotAuthorized" === error.code) return Result.fail(new FileNotAuthorizedError());
19
+ return Result.fail(new FilePersistenceError(result.error));
20
+ }
21
+ const file = EntryToFileMapper.toFile(result.value);
22
+ return Result.ok(file);
23
+ }
24
+ }
25
+ const GetFileRepository_GetFileRepository = GetFileRepository.createImplementation({
26
+ implementation: GetFileRepositoryImpl,
27
+ dependencies: [
28
+ GetEntryByIdUseCase,
29
+ FileModelProvider
30
+ ]
31
+ });
32
+ export { GetFileRepository_GetFileRepository as GetFileRepository };
33
+
34
+ //# sourceMappingURL=GetFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/GetFile/GetFileRepository.js","sources":["../../../../src/features/file/GetFile/GetFileRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { GetFileRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { FileModelProvider } 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 { EntryToFileMapper } from \"../shared/EntryToFileMapper.js\";\n\nclass GetFileRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private fileModelProvider: FileModelProvider.Interface\n ) {}\n\n async execute(id: string): Promise<Result<File, RepositoryAbstraction.Error>> {\n const fileModel = await this.fileModelProvider.get();\n const result = await this.getEntryById.execute(fileModel, `${id}#0001`);\n\n if (result.isFail()) {\n const error = result.error;\n\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 return Result.fail(new FilePersistenceError(result.error));\n }\n\n const file = EntryToFileMapper.toFile(result.value);\n\n return Result.ok(file);\n }\n}\n\nexport const GetFileRepository = RepositoryAbstraction.createImplementation({\n implementation: GetFileRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, FileModelProvider]\n});\n"],"names":["GetFileRepositoryImpl","getEntryById","fileModelProvider","id","fileModel","result","error","Result","FileNotFoundError","FileNotAuthorizedError","FilePersistenceError","file","EntryToFileMapper","GetFileRepository","RepositoryAbstraction","GetEntryByIdUseCase","FileModelProvider"],"mappings":";;;;;;AAYA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,iBAA8C,CACxD;aAFUD,YAAY,GAAZA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAsD;QAC1E,MAAMC,YAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG;QAClD,MAAMC,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAACD,WAAW,GAAGD,GAAG,KAAK,CAAC;QAEtE,IAAIE,OAAO,MAAM,IAAI;YACjB,MAAMC,QAAQD,OAAO,KAAK;YAE1B,IAAIC,AAAe,yBAAfA,MAAM,IAAI,EACV,OAAOC,OAAO,IAAI,CAAC,IAAIC,kBAAkBL;YAG7C,IAAIG,AAAe,8BAAfA,MAAM,IAAI,EACV,OAAOC,OAAO,IAAI,CAAC,IAAIE;YAE3B,OAAOF,OAAO,IAAI,CAAC,IAAIG,qBAAqBL,OAAO,KAAK;QAC5D;QAEA,MAAMM,OAAOC,kBAAkB,MAAM,CAACP,OAAO,KAAK;QAElD,OAAOE,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAME,sCAAoBC,kBAAAA,oBAA0C,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QAACe;QAAqBC;KAAkB;AAC1D"}
@@ -0,0 +1,14 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFileUseCase as UseCaseAbstraction, GetFileRepository } from "./abstractions.js";
3
+ import type { File } from "../../../domain/file/types.js";
4
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
5
+ declare class GetFileUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private permissions;
7
+ private repository;
8
+ constructor(permissions: FmPermissions.Interface, repository: GetFileRepository.Interface);
9
+ execute(id: string): Promise<Result<File, UseCaseAbstraction.Error>>;
10
+ }
11
+ export declare const GetFileUseCase: typeof GetFileUseCaseImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetFileUseCase>;
13
+ };
14
+ export {};
@@ -0,0 +1,29 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetFileRepository, GetFileUseCase } from "./abstractions.js";
3
+ import { FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
+ import { FmPermissions } from "../../shared/abstractions.js";
5
+ class GetFileUseCaseImpl {
6
+ constructor(permissions, repository){
7
+ this.permissions = permissions;
8
+ this.repository = repository;
9
+ }
10
+ async execute(id) {
11
+ const hasPermission = await this.permissions.canRead("file");
12
+ if (!hasPermission) return Result.fail(new FileNotAuthorizedError());
13
+ const result = await this.repository.execute(id);
14
+ if (result.isFail()) return Result.fail(result.error);
15
+ const file = result.value;
16
+ if (!await this.permissions.canAccess("file", file)) return Result.fail(new FileNotAuthorizedError());
17
+ return Result.ok(file);
18
+ }
19
+ }
20
+ const GetFileUseCase_GetFileUseCase = GetFileUseCase.createImplementation({
21
+ implementation: GetFileUseCaseImpl,
22
+ dependencies: [
23
+ FmPermissions,
24
+ GetFileRepository
25
+ ]
26
+ });
27
+ export { GetFileUseCase_GetFileUseCase as GetFileUseCase };
28
+
29
+ //# sourceMappingURL=GetFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/GetFile/GetFileUseCase.js","sources":["../../../../src/features/file/GetFile/GetFileUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetFileUseCase as UseCaseAbstraction, GetFileRepository } from \"./abstractions.js\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\n\nclass GetFileUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: FmPermissions.Interface,\n private repository: GetFileRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<File, UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canRead(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n const result = await this.repository.execute(id);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const file = result.value;\n\n if (!(await this.permissions.canAccess(\"file\", file))) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n return Result.ok(file);\n }\n}\n\nexport const GetFileUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetFileUseCaseImpl,\n dependencies: [FmPermissions, GetFileRepository]\n});\n"],"names":["GetFileUseCaseImpl","permissions","repository","id","hasPermission","Result","FileNotAuthorizedError","result","file","GetFileUseCase","UseCaseAbstraction","FmPermissions","GetFileRepository"],"mappings":";;;;AAMA,MAAMA;IACF,YACYC,WAAoC,EACpCC,UAAuC,CACjD;aAFUD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAmD;QACvE,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACrD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACJ;QAE7C,IAAII,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAACE,OAAO,KAAK;QAGnC,MAAMC,OAAOD,OAAO,KAAK;QAEzB,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQC,OAC3C,OAAOH,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAOD,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAMC,gCAAiBC,eAAAA,oBAAuC,CAAC;IAClE,gBAAgBV;IAChB,cAAc;QAACW;QAAeC;KAAkB;AACpD"}