@webiny/api-file-manager 6.0.0-alpha.5 → 6.0.0-rc.0

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 (410) hide show
  1. package/README.md +7 -13
  2. package/contants.js +1 -7
  3. package/contants.js.map +1 -1
  4. package/delivery/AssetDelivery/Asset.d.ts +3 -7
  5. package/delivery/AssetDelivery/Asset.js +1 -11
  6. package/delivery/AssetDelivery/Asset.js.map +1 -1
  7. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +11 -9
  8. package/delivery/AssetDelivery/AssetDeliveryConfig.js +18 -26
  9. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -1
  10. package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
  11. package/delivery/AssetDelivery/AssetRequest.js +1 -8
  12. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  13. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +3 -3
  14. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +3 -10
  15. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -1
  16. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +1 -1
  17. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +3 -10
  18. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -1
  19. package/delivery/AssetDelivery/NullAssetReply.d.ts +1 -1
  20. package/delivery/AssetDelivery/NullAssetReply.js +2 -9
  21. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -1
  22. package/delivery/AssetDelivery/NullAssetResolver.d.ts +2 -2
  23. package/delivery/AssetDelivery/NullAssetResolver.js +1 -8
  24. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -1
  25. package/delivery/AssetDelivery/NullRequestResolver.d.ts +1 -1
  26. package/delivery/AssetDelivery/NullRequestResolver.js +1 -8
  27. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -1
  28. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +1 -1
  29. package/delivery/AssetDelivery/SetCacheControlHeaders.js +1 -8
  30. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -1
  31. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +3 -3
  32. package/delivery/AssetDelivery/SetResponseHeaders.js +1 -8
  33. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -1
  34. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +1 -3
  35. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +1 -5
  36. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -1
  37. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +1 -1
  38. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +1 -5
  39. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -1
  40. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +1 -1
  41. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +1 -5
  42. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -1
  43. package/delivery/AssetDelivery/abstractions/AssetReply.js +3 -10
  44. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  45. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +2 -2
  46. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +1 -5
  47. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -1
  48. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +1 -1
  49. package/delivery/AssetDelivery/abstractions/AssetResolver.js +1 -5
  50. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -1
  51. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +1 -1
  52. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +1 -5
  53. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -1
  54. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +1 -1
  55. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +1 -8
  56. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  57. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +1 -1
  58. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +1 -5
  59. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -1
  60. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +1 -1
  61. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +4 -11
  62. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -1
  63. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +1 -1
  64. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +3 -10
  65. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  66. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +4 -3
  67. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +3 -11
  68. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  69. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +1 -1
  70. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +4 -11
  71. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -1
  72. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +3 -3
  73. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +3 -10
  74. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  75. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +4 -4
  76. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +21 -21
  77. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  78. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +1 -1
  79. package/delivery/AssetDelivery/privateFiles/PublicCache.js +4 -11
  80. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -1
  81. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +2 -2
  82. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +5 -12
  83. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  84. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +2 -2
  85. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +5 -12
  86. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  87. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +1 -1
  88. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +1 -8
  89. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -1
  90. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +1 -1
  91. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +1 -8
  92. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -1
  93. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +1 -1
  94. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +1 -8
  95. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  96. package/delivery/index.d.ts +16 -17
  97. package/delivery/index.js +10 -192
  98. package/delivery/index.js.map +1 -1
  99. package/delivery/setupAssetDelivery.d.ts +2 -6
  100. package/delivery/setupAssetDelivery.js +21 -35
  101. package/delivery/setupAssetDelivery.js.map +1 -1
  102. package/domain/file/abstractions.d.ts +9 -0
  103. package/domain/file/abstractions.js +8 -0
  104. package/domain/file/abstractions.js.map +1 -0
  105. package/domain/file/errors.d.ts +59 -0
  106. package/domain/file/errors.js +89 -0
  107. package/domain/file/errors.js.map +1 -0
  108. package/domain/file/file.model.d.ts +12 -0
  109. package/domain/file/file.model.js +56 -0
  110. package/domain/file/file.model.js.map +1 -0
  111. package/domain/file/types.d.ts +51 -0
  112. package/domain/file/types.js +3 -0
  113. package/domain/file/types.js.map +1 -0
  114. package/domain/identity/Identity.d.ts +9 -0
  115. package/domain/identity/Identity.js +11 -0
  116. package/domain/identity/Identity.js.map +1 -0
  117. package/domain/settings/constants.d.ts +1 -0
  118. package/domain/settings/constants.js +3 -0
  119. package/domain/settings/constants.js.map +1 -0
  120. package/domain/settings/errors.d.ts +18 -0
  121. package/domain/settings/errors.js +30 -0
  122. package/domain/settings/errors.js.map +1 -0
  123. package/domain/settings/types.d.ts +10 -0
  124. package/domain/settings/types.js +3 -0
  125. package/domain/settings/types.js.map +1 -0
  126. package/domain/settings/validation.d.ts +14 -0
  127. package/domain/settings/validation.js +36 -0
  128. package/domain/settings/validation.js.map +1 -0
  129. package/features/FileManagerFeature.d.ts +1 -0
  130. package/features/FileManagerFeature.js +28 -0
  131. package/features/FileManagerFeature.js.map +1 -0
  132. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  133. package/features/file/CreateFile/CreateFileRepository.js +30 -0
  134. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  135. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  136. package/features/file/CreateFile/CreateFileUseCase.js +89 -0
  137. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  138. package/features/file/CreateFile/abstractions.d.ts +57 -0
  139. package/features/file/CreateFile/abstractions.js +15 -0
  140. package/features/file/CreateFile/abstractions.js.map +1 -0
  141. package/features/file/CreateFile/events.d.ts +29 -0
  142. package/features/file/CreateFile/events.js +28 -0
  143. package/features/file/CreateFile/events.js.map +1 -0
  144. package/features/file/CreateFile/feature.d.ts +1 -0
  145. package/features/file/CreateFile/feature.js +12 -0
  146. package/features/file/CreateFile/feature.js.map +1 -0
  147. package/features/file/CreateFile/index.d.ts +2 -0
  148. package/features/file/CreateFile/index.js +4 -0
  149. package/features/file/CreateFile/index.js.map +1 -0
  150. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  151. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +24 -0
  152. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  153. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  154. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +84 -0
  155. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  156. package/features/file/CreateFilesInBatch/abstractions.d.ts +40 -0
  157. package/features/file/CreateFilesInBatch/abstractions.js +15 -0
  158. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  159. package/features/file/CreateFilesInBatch/events.d.ts +29 -0
  160. package/features/file/CreateFilesInBatch/events.js +28 -0
  161. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  162. package/features/file/CreateFilesInBatch/feature.d.ts +1 -0
  163. package/features/file/CreateFilesInBatch/feature.js +12 -0
  164. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  165. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  166. package/features/file/CreateFilesInBatch/index.js +3 -0
  167. package/features/file/CreateFilesInBatch/index.js.map +1 -0
  168. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  169. package/features/file/DeleteFile/DeleteFileRepository.js +30 -0
  170. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  171. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  172. package/features/file/DeleteFile/DeleteFileUseCase.js +45 -0
  173. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  174. package/features/file/DeleteFile/abstractions.d.ts +37 -0
  175. package/features/file/DeleteFile/abstractions.js +15 -0
  176. package/features/file/DeleteFile/abstractions.js.map +1 -0
  177. package/features/file/DeleteFile/events.d.ts +27 -0
  178. package/features/file/DeleteFile/events.js +28 -0
  179. package/features/file/DeleteFile/events.js.map +1 -0
  180. package/features/file/DeleteFile/feature.d.ts +1 -0
  181. package/features/file/DeleteFile/feature.js +12 -0
  182. package/features/file/DeleteFile/feature.js.map +1 -0
  183. package/features/file/DeleteFile/index.d.ts +2 -0
  184. package/features/file/DeleteFile/index.js +4 -0
  185. package/features/file/DeleteFile/index.js.map +1 -0
  186. package/features/file/FileUrlGenerator/abstractions.d.ts +8 -0
  187. package/features/file/FileUrlGenerator/abstractions.js +4 -0
  188. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  189. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  190. package/features/file/GetFile/GetFileRepository.js +33 -0
  191. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  192. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  193. package/features/file/GetFile/GetFileUseCase.js +31 -0
  194. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  195. package/features/file/GetFile/abstractions.d.ts +38 -0
  196. package/features/file/GetFile/abstractions.js +15 -0
  197. package/features/file/GetFile/abstractions.js.map +1 -0
  198. package/features/file/GetFile/feature.d.ts +1 -0
  199. package/features/file/GetFile/feature.js +12 -0
  200. package/features/file/GetFile/feature.js.map +1 -0
  201. package/features/file/GetFile/index.d.ts +1 -0
  202. package/features/file/GetFile/index.js +3 -0
  203. package/features/file/GetFile/index.js.map +1 -0
  204. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  205. package/features/file/ListFiles/ListFilesRepository.js +51 -0
  206. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  207. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  208. package/features/file/ListFiles/ListFilesUseCase.js +45 -0
  209. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  210. package/features/file/ListFiles/abstractions.d.ts +47 -0
  211. package/features/file/ListFiles/abstractions.js +15 -0
  212. package/features/file/ListFiles/abstractions.js.map +1 -0
  213. package/features/file/ListFiles/feature.d.ts +1 -0
  214. package/features/file/ListFiles/feature.js +12 -0
  215. package/features/file/ListFiles/feature.js.map +1 -0
  216. package/features/file/ListFiles/index.d.ts +1 -0
  217. package/features/file/ListFiles/index.js +3 -0
  218. package/features/file/ListFiles/index.js.map +1 -0
  219. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  220. package/features/file/ListTags/ListTagsRepository.js +47 -0
  221. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  222. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  223. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  224. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  225. package/features/file/ListTags/abstractions.d.ts +43 -0
  226. package/features/file/ListTags/abstractions.js +15 -0
  227. package/features/file/ListTags/abstractions.js.map +1 -0
  228. package/features/file/ListTags/feature.d.ts +1 -0
  229. package/features/file/ListTags/feature.js +12 -0
  230. package/features/file/ListTags/feature.js.map +1 -0
  231. package/features/file/ListTags/index.d.ts +1 -0
  232. package/features/file/ListTags/index.js +3 -0
  233. package/features/file/ListTags/index.js.map +1 -0
  234. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  235. package/features/file/UpdateFile/UpdateFileRepository.js +39 -0
  236. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  237. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  238. package/features/file/UpdateFile/UpdateFileUseCase.js +78 -0
  239. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  240. package/features/file/UpdateFile/abstractions.d.ts +53 -0
  241. package/features/file/UpdateFile/abstractions.js +15 -0
  242. package/features/file/UpdateFile/abstractions.js.map +1 -0
  243. package/features/file/UpdateFile/events.d.ts +32 -0
  244. package/features/file/UpdateFile/events.js +28 -0
  245. package/features/file/UpdateFile/events.js.map +1 -0
  246. package/features/file/UpdateFile/feature.d.ts +1 -0
  247. package/features/file/UpdateFile/feature.js +12 -0
  248. package/features/file/UpdateFile/feature.js.map +1 -0
  249. package/features/file/UpdateFile/index.d.ts +2 -0
  250. package/features/file/UpdateFile/index.js +4 -0
  251. package/features/file/UpdateFile/index.js.map +1 -0
  252. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  253. package/features/file/shared/EntryToFileMapper.js +26 -0
  254. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  255. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  256. package/features/file/shared/FileInputToEntryInputMapper.js +30 -0
  257. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  258. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  259. package/features/file/shared/FileToEntryMapper.js +29 -0
  260. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  261. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  262. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  263. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  264. package/features/settings/GetSettings/abstractions.d.ts +17 -0
  265. package/features/settings/GetSettings/abstractions.js +9 -0
  266. package/features/settings/GetSettings/abstractions.js.map +1 -0
  267. package/features/settings/GetSettings/feature.d.ts +1 -0
  268. package/features/settings/GetSettings/feature.js +10 -0
  269. package/features/settings/GetSettings/feature.js.map +1 -0
  270. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +15 -0
  271. package/features/settings/SettingsInstaller/SettingsInstaller.js +35 -0
  272. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  273. package/features/settings/SettingsInstaller/feature.d.ts +1 -0
  274. package/features/settings/SettingsInstaller/feature.js +10 -0
  275. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  276. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  277. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +62 -0
  278. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  279. package/features/settings/UpdateSettings/abstractions.d.ts +22 -0
  280. package/features/settings/UpdateSettings/abstractions.js +9 -0
  281. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  282. package/features/settings/UpdateSettings/events.d.ts +32 -0
  283. package/features/settings/UpdateSettings/events.js +28 -0
  284. package/features/settings/UpdateSettings/events.js.map +1 -0
  285. package/features/settings/UpdateSettings/feature.d.ts +1 -0
  286. package/features/settings/UpdateSettings/feature.js +10 -0
  287. package/features/settings/UpdateSettings/feature.js.map +1 -0
  288. package/features/settings/UpdateSettings/index.d.ts +2 -0
  289. package/features/settings/UpdateSettings/index.js +4 -0
  290. package/features/settings/UpdateSettings/index.js.map +1 -0
  291. package/features/shared/abstractions.d.ts +1 -0
  292. package/features/shared/abstractions.js +3 -0
  293. package/features/shared/abstractions.js.map +1 -0
  294. package/graphql/baseSchema.d.ts +2 -2
  295. package/graphql/baseSchema.js +20 -38
  296. package/graphql/baseSchema.js.map +1 -1
  297. package/graphql/createFilesTypeDefs.d.ts +1 -1
  298. package/graphql/createFilesTypeDefs.js +40 -25
  299. package/graphql/createFilesTypeDefs.js.map +1 -1
  300. package/graphql/filesSchema.d.ts +3 -3
  301. package/graphql/filesSchema.js +73 -46
  302. package/graphql/filesSchema.js.map +1 -1
  303. package/graphql/getFileByUrl.d.ts +2 -2
  304. package/graphql/getFileByUrl.js +17 -26
  305. package/graphql/getFileByUrl.js.map +1 -1
  306. package/graphql/index.d.ts +2 -2
  307. package/graphql/index.js +24 -26
  308. package/graphql/index.js.map +1 -1
  309. package/graphql/utils.js +6 -13
  310. package/graphql/utils.js.map +1 -1
  311. package/index.d.ts +6 -9
  312. package/index.js +28 -67
  313. package/index.js.map +1 -1
  314. package/modelModifier/CmsModelModifier.d.ts +1 -1
  315. package/modelModifier/CmsModelModifier.js +7 -15
  316. package/modelModifier/CmsModelModifier.js.map +1 -1
  317. package/package.json +26 -28
  318. package/permissions/schema.d.ts +81 -0
  319. package/permissions/schema.js +22 -0
  320. package/permissions/schema.js.map +1 -0
  321. package/types.d.ts +1 -367
  322. package/types.js +1 -27
  323. package/types.js.map +1 -1
  324. package/FileManagerContextSetup.d.ts +0 -13
  325. package/FileManagerContextSetup.js +0 -115
  326. package/FileManagerContextSetup.js.map +0 -1
  327. package/cmsFileStorage/CmsFilesStorage.d.ts +0 -27
  328. package/cmsFileStorage/CmsFilesStorage.js +0 -164
  329. package/cmsFileStorage/CmsFilesStorage.js.map +0 -1
  330. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +0 -7
  331. package/cmsFileStorage/ListFilesWhereProcessor.js +0 -33
  332. package/cmsFileStorage/ListFilesWhereProcessor.js.map +0 -1
  333. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +0 -7
  334. package/cmsFileStorage/ListTagsWhereProcessor.js +0 -33
  335. package/cmsFileStorage/ListTagsWhereProcessor.js.map +0 -1
  336. package/cmsFileStorage/file.model.d.ts +0 -6
  337. package/cmsFileStorage/file.model.js +0 -158
  338. package/cmsFileStorage/file.model.js.map +0 -1
  339. package/createFileManager/files.crud.d.ts +0 -3
  340. package/createFileManager/files.crud.js +0 -328
  341. package/createFileManager/files.crud.js.map +0 -1
  342. package/createFileManager/index.d.ts +0 -3
  343. package/createFileManager/index.js +0 -23
  344. package/createFileManager/index.js.map +0 -1
  345. package/createFileManager/permissions/FilesPermissions.d.ts +0 -4
  346. package/createFileManager/permissions/FilesPermissions.js +0 -11
  347. package/createFileManager/permissions/FilesPermissions.js.map +0 -1
  348. package/createFileManager/permissions/SettingsPermissions.d.ts +0 -4
  349. package/createFileManager/permissions/SettingsPermissions.js +0 -11
  350. package/createFileManager/permissions/SettingsPermissions.js.map +0 -1
  351. package/createFileManager/settings.crud.d.ts +0 -3
  352. package/createFileManager/settings.crud.js +0 -117
  353. package/createFileManager/settings.crud.js.map +0 -1
  354. package/createFileManager/system.crud.d.ts +0 -3
  355. package/createFileManager/system.crud.js +0 -88
  356. package/createFileManager/system.crud.js.map +0 -1
  357. package/createFileManager/types.d.ts +0 -16
  358. package/createFileManager/types.js +0 -7
  359. package/createFileManager/types.js.map +0 -1
  360. package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +0 -11
  361. package/delivery/AssetDelivery/AliasAssetRequestResolver.js +0 -74
  362. package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +0 -1
  363. package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +0 -7
  364. package/delivery/AssetDelivery/privateFiles/internalIdentity.js +0 -18
  365. package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +0 -1
  366. package/enterprise/applyThreatScanning.d.ts +0 -2
  367. package/enterprise/applyThreatScanning.js +0 -20
  368. package/enterprise/applyThreatScanning.js.map +0 -1
  369. package/handlers/manage/imageManager.d.ts +0 -14
  370. package/handlers/manage/imageManager.js +0 -75
  371. package/handlers/manage/imageManager.js.map +0 -1
  372. package/handlers/manage/index.d.ts +0 -5
  373. package/handlers/manage/index.js +0 -59
  374. package/handlers/manage/index.js.map +0 -1
  375. package/handlers/manage/legacyUtils.d.ts +0 -12
  376. package/handlers/manage/legacyUtils.js +0 -34
  377. package/handlers/manage/legacyUtils.js.map +0 -1
  378. package/handlers/manage/utils.d.ts +0 -12
  379. package/handlers/manage/utils.js +0 -34
  380. package/handlers/manage/utils.js.map +0 -1
  381. package/handlers/types.d.ts +0 -8
  382. package/handlers/types.js +0 -7
  383. package/handlers/types.js.map +0 -1
  384. package/handlers/utils/getEnvironment.d.ts +0 -5
  385. package/handlers/utils/getEnvironment.js +0 -13
  386. package/handlers/utils/getEnvironment.js.map +0 -1
  387. package/handlers/utils/getObjectParams.d.ts +0 -9
  388. package/handlers/utils/getObjectParams.js +0 -23
  389. package/handlers/utils/getObjectParams.js.map +0 -1
  390. package/handlers/utils/index.d.ts +0 -2
  391. package/handlers/utils/index.js +0 -22
  392. package/handlers/utils/index.js.map +0 -1
  393. package/plugins/FilePhysicalStoragePlugin.d.ts +0 -22
  394. package/plugins/FilePhysicalStoragePlugin.js +0 -31
  395. package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
  396. package/plugins/FileStorageTransformPlugin.d.ts +0 -34
  397. package/plugins/FileStorageTransformPlugin.js +0 -39
  398. package/plugins/FileStorageTransformPlugin.js.map +0 -1
  399. package/plugins/index.d.ts +0 -2
  400. package/plugins/index.js +0 -29
  401. package/plugins/index.js.map +0 -1
  402. package/storage/FileStorage.d.ts +0 -34
  403. package/storage/FileStorage.js +0 -90
  404. package/storage/FileStorage.js.map +0 -1
  405. package/types/file.d.ts +0 -49
  406. package/types/file.js +0 -7
  407. package/types/file.js.map +0 -1
  408. package/types/file.lifecycle.d.ts +0 -44
  409. package/types/file.lifecycle.js +0 -7
  410. package/types/file.lifecycle.js.map +0 -1
@@ -0,0 +1,84 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFilesInBatchUseCase as UseCaseAbstraction, CreateFilesInBatchRepository } from "./abstractions.js";
3
+ import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
5
+ import { FileNotAuthorizedError, InvalidFileSizeError } from "../../../domain/file/errors.js";
6
+ import { FileBeforeBatchCreateEvent, FileAfterBatchCreateEvent } from "./events.js";
7
+ import { FmPermissions } from "../../shared/abstractions.js";
8
+ class CreateFilesInBatchUseCaseImpl {
9
+ constructor(permissions, repository, getSettings, eventPublisher) {
10
+ this.permissions = permissions;
11
+ this.repository = repository;
12
+ this.getSettings = getSettings;
13
+ this.eventPublisher = eventPublisher;
14
+ }
15
+ async execute(input) {
16
+ const hasPermission = await this.permissions.canCreate("file");
17
+ if (!hasPermission) {
18
+ return Result.fail(new FileNotAuthorizedError());
19
+ }
20
+
21
+ // Validate all files
22
+ const validationResult = await this.validateInput(input.files);
23
+ if (validationResult.isFail()) {
24
+ return Result.fail(validationResult.error);
25
+ }
26
+
27
+ // Prepare file inputs with defaults
28
+ const fileInputs = input.files.map(file => {
29
+ const [id] = file.key.split("/");
30
+ return {
31
+ id: file.id || id,
32
+ key: file.key,
33
+ name: file.name,
34
+ size: file.size,
35
+ type: file.type,
36
+ metadata: file.metadata || {},
37
+ location: file.location || {
38
+ folderId: "root"
39
+ },
40
+ tags: file.tags || [],
41
+ extensions: input.meta || {}
42
+ };
43
+ });
44
+ await this.eventPublisher.publish(new FileBeforeBatchCreateEvent({
45
+ files: fileInputs,
46
+ meta: input.meta
47
+ }));
48
+ const result = await this.repository.createBatch(fileInputs);
49
+ if (result.isFail()) {
50
+ return Result.fail(result.error);
51
+ }
52
+ await this.eventPublisher.publish(new FileAfterBatchCreateEvent({
53
+ files: result.value,
54
+ meta: input.meta
55
+ }));
56
+ return Result.ok(result.value);
57
+ }
58
+ async validateInput(files) {
59
+ const settingsResult = await this.getSettings.execute();
60
+ if (settingsResult.isFail()) {
61
+ return Result.ok();
62
+ }
63
+ const settings = settingsResult.value;
64
+ if (settings) {
65
+ for (const input of files) {
66
+ // Validate file size
67
+ if (input.size < settings.uploadMinFileSize || input.size > settings.uploadMaxFileSize) {
68
+ return Result.fail(new InvalidFileSizeError({
69
+ size: input.size,
70
+ minSize: settings.uploadMinFileSize,
71
+ maxSize: settings.uploadMaxFileSize
72
+ }));
73
+ }
74
+ }
75
+ }
76
+ return Result.ok();
77
+ }
78
+ }
79
+ export const CreateFilesInBatchUseCase = UseCaseAbstraction.createImplementation({
80
+ implementation: CreateFilesInBatchUseCaseImpl,
81
+ dependencies: [FmPermissions.Abstraction, CreateFilesInBatchRepository, GetSettingsUseCase, EventPublisher]
82
+ });
83
+
84
+ //# sourceMappingURL=CreateFilesInBatchUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","CreateFilesInBatchUseCase","UseCaseAbstraction","CreateFilesInBatchRepository","GetSettingsUseCase","EventPublisher","FileNotAuthorizedError","InvalidFileSizeError","FileBeforeBatchCreateEvent","FileAfterBatchCreateEvent","FmPermissions","CreateFilesInBatchUseCaseImpl","constructor","permissions","repository","getSettings","eventPublisher","execute","input","hasPermission","canCreate","fail","validationResult","validateInput","files","isFail","error","fileInputs","map","file","id","key","split","name","size","type","metadata","location","folderId","tags","extensions","meta","publish","result","createBatch","value","ok","settingsResult","settings","uploadMinFileSize","uploadMaxFileSize","minSize","maxSize","createImplementation","implementation","dependencies","Abstraction"],"sources":["CreateFilesInBatchUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateFilesInBatchUseCase as UseCaseAbstraction,\n CreateFilesInBatchInput,\n CreateFilesInBatchRepository\n} from \"./abstractions.js\";\nimport { GetSettingsUseCase } from \"../../settings/GetSettings/abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError, InvalidFileSizeError } from \"~/domain/file/errors.js\";\nimport { FileBeforeBatchCreateEvent, FileAfterBatchCreateEvent } from \"./events.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\nimport { CreateFileInput } from \"~/features/file/CreateFile/abstractions.js\";\n\nclass CreateFilesInBatchUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private permissions: FmPermissions.Interface,\n private repository: CreateFilesInBatchRepository.Interface,\n private getSettings: GetSettingsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n public async execute(\n input: CreateFilesInBatchInput\n ): Promise<Result<File[], UseCaseAbstraction.Error>> {\n const hasPermission = await this.permissions.canCreate(\"file\");\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n // Validate all files\n const validationResult = await this.validateInput(input.files);\n if (validationResult.isFail()) {\n return Result.fail(validationResult.error);\n }\n\n // Prepare file inputs with defaults\n const fileInputs: FileInput[] = input.files.map(file => {\n const [id] = file.key.split(\"/\");\n return {\n id: file.id || id,\n key: file.key,\n name: file.name,\n size: file.size,\n type: file.type,\n metadata: file.metadata || {},\n location: file.location || { folderId: \"root\" },\n tags: file.tags || [],\n extensions: input.meta || {}\n };\n });\n\n await this.eventPublisher.publish(\n new FileBeforeBatchCreateEvent({ files: fileInputs, meta: input.meta })\n );\n\n const result = await this.repository.createBatch(fileInputs);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(\n new FileAfterBatchCreateEvent({ files: result.value, meta: input.meta })\n );\n\n return Result.ok(result.value);\n }\n\n private async validateInput(\n files: CreateFileInput[]\n ): Promise<Result<void, InvalidFileSizeError>> {\n const settingsResult = await this.getSettings.execute();\n\n if (settingsResult.isFail()) {\n return Result.ok();\n }\n\n const settings = settingsResult.value;\n\n if (settings) {\n for (const input of files) {\n // Validate file size\n if (\n input.size < settings.uploadMinFileSize ||\n input.size > settings.uploadMaxFileSize\n ) {\n return Result.fail(\n new InvalidFileSizeError({\n size: input.size,\n minSize: settings.uploadMinFileSize,\n maxSize: settings.uploadMaxFileSize\n })\n );\n }\n }\n }\n\n return Result.ok();\n }\n}\n\nexport const CreateFilesInBatchUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateFilesInBatchUseCaseImpl,\n dependencies: [\n FmPermissions.Abstraction,\n CreateFilesInBatchRepository,\n GetSettingsUseCase,\n EventPublisher\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAE/CC,4BAA4B;AAEhC,SAASC,kBAAkB;AAC3B,SAASC,cAAc,QAAQ,0CAA0C;AAEzE,SAASC,sBAAsB,EAAEC,oBAAoB;AACrD,SAASC,0BAA0B,EAAEC,yBAAyB;AAC9D,SAASC,aAAa;AAGtB,MAAMC,6BAA6B,CAAyC;EACjEC,WAAWA,CACNC,WAAoC,EACpCC,UAAkD,EAClDC,WAAyC,EACzCC,cAAwC,EAClD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAkD,GAAlDA,UAAkD;IAAA,KAClDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,cAAwC,GAAxCA,cAAwC;EACjD;EAEH,MAAaC,OAAOA,CAChBC,KAA8B,EACmB;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIf,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMgB,gBAAgB,GAAG,MAAM,IAAI,CAACC,aAAa,CAACL,KAAK,CAACM,KAAK,CAAC;IAC9D,IAAIF,gBAAgB,CAACG,MAAM,CAAC,CAAC,EAAE;MAC3B,OAAOzB,MAAM,CAACqB,IAAI,CAACC,gBAAgB,CAACI,KAAK,CAAC;IAC9C;;IAEA;IACA,MAAMC,UAAuB,GAAGT,KAAK,CAACM,KAAK,CAACI,GAAG,CAACC,IAAI,IAAI;MACpD,MAAM,CAACC,EAAE,CAAC,GAAGD,IAAI,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC;MAChC,OAAO;QACHF,EAAE,EAAED,IAAI,CAACC,EAAE,IAAIA,EAAE;QACjBC,GAAG,EAAEF,IAAI,CAACE,GAAG;QACbE,IAAI,EAAEJ,IAAI,CAACI,IAAI;QACfC,IAAI,EAAEL,IAAI,CAACK,IAAI;QACfC,IAAI,EAAEN,IAAI,CAACM,IAAI;QACfC,QAAQ,EAAEP,IAAI,CAACO,QAAQ,IAAI,CAAC,CAAC;QAC7BC,QAAQ,EAAER,IAAI,CAACQ,QAAQ,IAAI;UAAEC,QAAQ,EAAE;QAAO,CAAC;QAC/CC,IAAI,EAAEV,IAAI,CAACU,IAAI,IAAI,EAAE;QACrBC,UAAU,EAAEtB,KAAK,CAACuB,IAAI,IAAI,CAAC;MAC/B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,CAACzB,cAAc,CAAC0B,OAAO,CAC7B,IAAIlC,0BAA0B,CAAC;MAAEgB,KAAK,EAAEG,UAAU;MAAEc,IAAI,EAAEvB,KAAK,CAACuB;IAAK,CAAC,CAC1E,CAAC;IAED,MAAME,MAAM,GAAG,MAAM,IAAI,CAAC7B,UAAU,CAAC8B,WAAW,CAACjB,UAAU,CAAC;IAE5D,IAAIgB,MAAM,CAAClB,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOzB,MAAM,CAACqB,IAAI,CAACsB,MAAM,CAACjB,KAAK,CAAC;IACpC;IAEA,MAAM,IAAI,CAACV,cAAc,CAAC0B,OAAO,CAC7B,IAAIjC,yBAAyB,CAAC;MAAEe,KAAK,EAAEmB,MAAM,CAACE,KAAK;MAAEJ,IAAI,EAAEvB,KAAK,CAACuB;IAAK,CAAC,CAC3E,CAAC;IAED,OAAOzC,MAAM,CAAC8C,EAAE,CAACH,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAActB,aAAaA,CACvBC,KAAwB,EACmB;IAC3C,MAAMuB,cAAc,GAAG,MAAM,IAAI,CAAChC,WAAW,CAACE,OAAO,CAAC,CAAC;IAEvD,IAAI8B,cAAc,CAACtB,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOzB,MAAM,CAAC8C,EAAE,CAAC,CAAC;IACtB;IAEA,MAAME,QAAQ,GAAGD,cAAc,CAACF,KAAK;IAErC,IAAIG,QAAQ,EAAE;MACV,KAAK,MAAM9B,KAAK,IAAIM,KAAK,EAAE;QACvB;QACA,IACIN,KAAK,CAACgB,IAAI,GAAGc,QAAQ,CAACC,iBAAiB,IACvC/B,KAAK,CAACgB,IAAI,GAAGc,QAAQ,CAACE,iBAAiB,EACzC;UACE,OAAOlD,MAAM,CAACqB,IAAI,CACd,IAAId,oBAAoB,CAAC;YACrB2B,IAAI,EAAEhB,KAAK,CAACgB,IAAI;YAChBiB,OAAO,EAAEH,QAAQ,CAACC,iBAAiB;YACnCG,OAAO,EAAEJ,QAAQ,CAACE;UACtB,CAAC,CACL,CAAC;QACL;MACJ;IACJ;IAEA,OAAOlD,MAAM,CAAC8C,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM7C,yBAAyB,GAAGC,kBAAkB,CAACmD,oBAAoB,CAAC;EAC7EC,cAAc,EAAE3C,6BAA6B;EAC7C4C,YAAY,EAAE,CACV7C,aAAa,CAAC8C,WAAW,EACzBrD,4BAA4B,EAC5BC,kBAAkB,EAClBC,cAAc;AAEtB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { File, FileInput } from "../../../domain/file/types.js";
3
+ import { type FilePersistenceError, type InvalidFileSizeError, FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
+ export interface CreateFilesInBatchInput {
5
+ files: FileInput[];
6
+ meta?: Record<string, any>;
7
+ }
8
+ /**
9
+ * CreateFilesInBatch repository interface
10
+ */
11
+ export interface ICreateFilesInBatchRepository {
12
+ createBatch(files: FileInput[]): Promise<Result<File[], RepositoryError>>;
13
+ }
14
+ export interface ICreateFilesInBatchRepositoryErrors {
15
+ persistence: FilePersistenceError;
16
+ }
17
+ type RepositoryError = ICreateFilesInBatchRepositoryErrors[keyof ICreateFilesInBatchRepositoryErrors];
18
+ export declare const CreateFilesInBatchRepository: import("@webiny/di").Abstraction<ICreateFilesInBatchRepository>;
19
+ export declare namespace CreateFilesInBatchRepository {
20
+ type Interface = ICreateFilesInBatchRepository;
21
+ type Error = RepositoryError;
22
+ }
23
+ /**
24
+ * CreateFilesInBatch use case interface
25
+ */
26
+ export interface ICreateFilesInBatchUseCase {
27
+ execute(input: CreateFilesInBatchInput): Promise<Result<File[], UseCaseError>>;
28
+ }
29
+ export interface ICreateFilesInBatchUseCaseErrors {
30
+ notAuthorized: FileNotAuthorizedError;
31
+ persistence: FilePersistenceError;
32
+ invalidSize: InvalidFileSizeError;
33
+ }
34
+ type UseCaseError = ICreateFilesInBatchUseCaseErrors[keyof ICreateFilesInBatchUseCaseErrors];
35
+ export declare const CreateFilesInBatchUseCase: import("@webiny/di").Abstraction<ICreateFilesInBatchUseCase>;
36
+ export declare namespace CreateFilesInBatchUseCase {
37
+ type Interface = ICreateFilesInBatchUseCase;
38
+ type Error = UseCaseError;
39
+ }
40
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * CreateFilesInBatch repository interface
5
+ */
6
+
7
+ export const CreateFilesInBatchRepository = createAbstraction("CreateFilesInBatchRepository");
8
+
9
+ /**
10
+ * CreateFilesInBatch use case interface
11
+ */
12
+
13
+ export const CreateFilesInBatchUseCase = createAbstraction("CreateFilesInBatchUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","CreateFilesInBatchRepository","CreateFilesInBatchUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport {\n type FilePersistenceError,\n type InvalidFileSizeError,\n FileNotAuthorizedError\n} from \"~/domain/file/errors.js\";\n\nexport interface CreateFilesInBatchInput {\n files: FileInput[];\n meta?: Record<string, any>;\n}\n\n/**\n * CreateFilesInBatch repository interface\n */\nexport interface ICreateFilesInBatchRepository {\n createBatch(files: FileInput[]): Promise<Result<File[], RepositoryError>>;\n}\n\nexport interface ICreateFilesInBatchRepositoryErrors {\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError =\n ICreateFilesInBatchRepositoryErrors[keyof ICreateFilesInBatchRepositoryErrors];\n\nexport const CreateFilesInBatchRepository = createAbstraction<ICreateFilesInBatchRepository>(\n \"CreateFilesInBatchRepository\"\n);\n\nexport namespace CreateFilesInBatchRepository {\n export type Interface = ICreateFilesInBatchRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFilesInBatch use case interface\n */\nexport interface ICreateFilesInBatchUseCase {\n execute(input: CreateFilesInBatchInput): Promise<Result<File[], UseCaseError>>;\n}\n\nexport interface ICreateFilesInBatchUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n invalidSize: InvalidFileSizeError;\n}\n\ntype UseCaseError = ICreateFilesInBatchUseCaseErrors[keyof ICreateFilesInBatchUseCaseErrors];\n\nexport const CreateFilesInBatchUseCase = createAbstraction<ICreateFilesInBatchUseCase>(\n \"CreateFilesInBatchUseCase\"\n);\n\nexport namespace CreateFilesInBatchUseCase {\n export type Interface = ICreateFilesInBatchUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAcvD;AACA;AACA;;AAYA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAaA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
3
+ import type { File, FileInput } from "../../../domain/file/types.js";
4
+ export interface FileBeforeBatchCreatePayload {
5
+ files: FileInput[];
6
+ meta?: Record<string, any>;
7
+ }
8
+ export declare class FileBeforeBatchCreateEvent extends DomainEvent<FileBeforeBatchCreatePayload> {
9
+ eventType: "FileManager/File/BeforeBatchCreate";
10
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeBatchCreateEvent>>;
11
+ }
12
+ export declare const FileBeforeBatchCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeBatchCreateEvent>>;
13
+ export declare namespace FileBeforeBatchCreateHandler {
14
+ type Interface = IEventHandler<FileBeforeBatchCreateEvent>;
15
+ type Event = FileBeforeBatchCreateEvent;
16
+ }
17
+ export interface FileAfterBatchCreatePayload {
18
+ files: File[];
19
+ meta?: Record<string, any>;
20
+ }
21
+ export declare class FileAfterBatchCreateEvent extends DomainEvent<FileAfterBatchCreatePayload> {
22
+ eventType: "FileManager/File/AfterBatchCreate";
23
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterBatchCreateEvent>>;
24
+ }
25
+ export declare const FileAfterBatchCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterBatchCreateEvent>>;
26
+ export declare namespace FileAfterBatchCreateHandler {
27
+ type Interface = IEventHandler<FileAfterBatchCreateEvent>;
28
+ type Event = FileAfterBatchCreateEvent;
29
+ }
@@ -0,0 +1,28 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
+
4
+ // ============================================================================
5
+ // FileBeforeBatchCreate Event
6
+ // ============================================================================
7
+
8
+ export class FileBeforeBatchCreateEvent extends DomainEvent {
9
+ eventType = "FileManager/File/BeforeBatchCreate";
10
+ getHandlerAbstraction() {
11
+ return FileBeforeBatchCreateHandler;
12
+ }
13
+ }
14
+ export const FileBeforeBatchCreateHandler = createAbstraction("FileBeforeBatchCreateHandler");
15
+
16
+ // ============================================================================
17
+ // FileAfterBatchCreate Event
18
+ // ============================================================================
19
+
20
+ export class FileAfterBatchCreateEvent extends DomainEvent {
21
+ eventType = "FileManager/File/AfterBatchCreate";
22
+ getHandlerAbstraction() {
23
+ return FileAfterBatchCreateHandler;
24
+ }
25
+ }
26
+ export const FileAfterBatchCreateHandler = createAbstraction("FileAfterBatchCreateHandler");
27
+
28
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DomainEvent","FileBeforeBatchCreateEvent","eventType","getHandlerAbstraction","FileBeforeBatchCreateHandler","FileAfterBatchCreateEvent","FileAfterBatchCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\n\n// ============================================================================\n// FileBeforeBatchCreate Event\n// ============================================================================\n\nexport interface FileBeforeBatchCreatePayload {\n files: FileInput[];\n meta?: Record<string, any>;\n}\n\nexport class FileBeforeBatchCreateEvent extends DomainEvent<FileBeforeBatchCreatePayload> {\n eventType = \"FileManager/File/BeforeBatchCreate\" as const;\n\n getHandlerAbstraction() {\n return FileBeforeBatchCreateHandler;\n }\n}\n\nexport const FileBeforeBatchCreateHandler = createAbstraction<\n IEventHandler<FileBeforeBatchCreateEvent>\n>(\"FileBeforeBatchCreateHandler\");\n\nexport namespace FileBeforeBatchCreateHandler {\n export type Interface = IEventHandler<FileBeforeBatchCreateEvent>;\n export type Event = FileBeforeBatchCreateEvent;\n}\n\n// ============================================================================\n// FileAfterBatchCreate Event\n// ============================================================================\n\nexport interface FileAfterBatchCreatePayload {\n files: File[];\n meta?: Record<string, any>;\n}\n\nexport class FileAfterBatchCreateEvent extends DomainEvent<FileAfterBatchCreatePayload> {\n eventType = \"FileManager/File/AfterBatchCreate\" as const;\n\n getHandlerAbstraction() {\n return FileAfterBatchCreateHandler;\n }\n}\n\nexport const FileAfterBatchCreateHandler = createAbstraction<\n IEventHandler<FileAfterBatchCreateEvent>\n>(\"FileAfterBatchCreateHandler\");\n\nexport namespace FileAfterBatchCreateHandler {\n export type Interface = IEventHandler<FileAfterBatchCreateEvent>;\n export type Event = FileAfterBatchCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;;AAItE;AACA;AACA;;AAOA,OAAO,MAAMC,0BAA0B,SAASD,WAAW,CAA+B;EACtFE,SAAS,GAAG,oCAAoC;EAEhDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,4BAA4B;EACvC;AACJ;AAEA,OAAO,MAAMA,4BAA4B,GAAGL,iBAAiB,CAE3D,8BAA8B,CAAC;;AAOjC;AACA;AACA;;AAOA,OAAO,MAAMM,yBAAyB,SAASL,WAAW,CAA8B;EACpFE,SAAS,GAAG,mCAAmC;EAE/CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGP,iBAAiB,CAE1D,6BAA6B,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const CreateFilesInBatchFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFilesInBatchRepository } from "./CreateFilesInBatchRepository.js";
3
+ import { CreateFilesInBatchUseCase } from "./CreateFilesInBatchUseCase.js";
4
+ export const CreateFilesInBatchFeature = createFeature({
5
+ name: "FileManager/CreateFilesInBatch",
6
+ register(container) {
7
+ container.register(CreateFilesInBatchUseCase);
8
+ container.register(CreateFilesInBatchRepository).inSingletonScope();
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateFilesInBatchRepository","CreateFilesInBatchUseCase","CreateFilesInBatchFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFilesInBatchRepository } from \"./CreateFilesInBatchRepository.js\";\nimport { CreateFilesInBatchUseCase } from \"./CreateFilesInBatchUseCase.js\";\n\nexport const CreateFilesInBatchFeature = createFeature({\n name: \"FileManager/CreateFilesInBatch\",\n register(container) {\n container.register(CreateFilesInBatchUseCase);\n container.register(CreateFilesInBatchRepository).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,4BAA4B;AACrC,SAASC,yBAAyB;AAElC,OAAO,MAAMC,yBAAyB,GAAGH,aAAa,CAAC;EACnDI,IAAI,EAAE,gCAAgC;EACtCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,yBAAyB,CAAC;IAC7CI,SAAS,CAACD,QAAQ,CAACJ,4BAA4B,CAAC,CAACM,gBAAgB,CAAC,CAAC;EACvE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { CreateFilesInBatchUseCase } from "./abstractions.js";
@@ -0,0 +1,3 @@
1
+ export { CreateFilesInBatchUseCase } from "./abstractions.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateFilesInBatchUseCase"],"sources":["index.ts"],"sourcesContent":["export { CreateFilesInBatchUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,yBAAyB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
3
+ import { DeleteFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import { File } from "../../../domain/file/types.js";
6
+ declare class DeleteFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
+ private deleteEntry;
8
+ private fileModel;
9
+ constructor(deleteEntry: DeleteEntryUseCase.Interface, fileModel: FileModel.Interface);
10
+ delete(file: File): Promise<Result<void, RepositoryAbstraction.Error>>;
11
+ }
12
+ export declare const DeleteFileRepository: typeof DeleteFileRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteFileRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,30 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
3
+ import { DeleteFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import { FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
+ class DeleteFileRepositoryImpl {
7
+ constructor(deleteEntry, fileModel) {
8
+ this.deleteEntry = deleteEntry;
9
+ this.fileModel = fileModel;
10
+ }
11
+ async delete(file) {
12
+ // Files are not versioned, so we're always deleting the same revision
13
+ const entryId = `${file.id}#0001`;
14
+ const result = await this.deleteEntry.execute(this.fileModel, entryId);
15
+ if (result.isFail()) {
16
+ const error = result.error;
17
+ if (error.code === "Cms/Entry/NotFound") {
18
+ return Result.fail(new FileNotFoundError(file.id));
19
+ }
20
+ return Result.fail(new FilePersistenceError(result.error));
21
+ }
22
+ return Result.ok();
23
+ }
24
+ }
25
+ export const DeleteFileRepository = RepositoryAbstraction.createImplementation({
26
+ implementation: DeleteFileRepositoryImpl,
27
+ dependencies: [DeleteEntryUseCase, FileModel]
28
+ });
29
+
30
+ //# sourceMappingURL=DeleteFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","DeleteEntryUseCase","DeleteFileRepository","RepositoryAbstraction","FileModel","FileNotFoundError","FilePersistenceError","DeleteFileRepositoryImpl","constructor","deleteEntry","fileModel","delete","file","entryId","id","result","execute","isFail","error","code","fail","ok","createImplementation","implementation","dependencies"],"sources":["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 { FileModel } 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 fileModel: FileModel.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 result = await this.deleteEntry.execute(this.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, FileModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,SAAS;AAClB,SAASC,iBAAiB,EAAEC,oBAAoB;AAGhD,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,SAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,MAAMA,CAACC,IAAU,EAAsD;IACzE;IACA,MAAMC,OAAO,GAAG,GAAGD,IAAI,CAACE,EAAE,OAAO;IAEjC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,OAAO,CAAC,IAAI,CAACN,SAAS,EAAEG,OAAO,CAAC;IAEtE,IAAIE,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,MAAMC,KAAK,GAAGH,MAAM,CAACG,KAAK;MAC1B,IAAIA,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QACrC,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAIf,iBAAiB,CAACO,IAAI,CAACE,EAAE,CAAC,CAAC;MACtD;MACA,OAAOd,MAAM,CAACoB,IAAI,CAAC,IAAId,oBAAoB,CAACS,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,OAAOlB,MAAM,CAACqB,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAMnB,oBAAoB,GAAGC,qBAAqB,CAACmB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEhB,wBAAwB;EACxCiB,YAAY,EAAE,CAACvB,kBAAkB,EAAEG,SAAS;AAChD,CAAC,CAAC","ignoreList":[]}
@@ -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";
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,45 @@
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";
5
+ import { FileNotAuthorizedError } from "../../../domain/file/errors.js";
6
+ import { FileBeforeDeleteEvent, FileAfterDeleteEvent } 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) {
18
+ return Result.fail(new FileNotAuthorizedError());
19
+ }
20
+
21
+ // Get file (includes ownership check)
22
+ const getResult = await this.getFile.execute(id);
23
+ if (getResult.isFail()) {
24
+ return Result.fail(getResult.error);
25
+ }
26
+ const file = getResult.value;
27
+ await this.eventPublisher.publish(new FileBeforeDeleteEvent({
28
+ file
29
+ }));
30
+ const result = await this.repository.delete(file);
31
+ if (result.isFail()) {
32
+ return Result.fail(result.error);
33
+ }
34
+ await this.eventPublisher.publish(new FileAfterDeleteEvent({
35
+ file
36
+ }));
37
+ return Result.ok();
38
+ }
39
+ }
40
+ export const DeleteFileUseCase = UseCaseAbstraction.createImplementation({
41
+ implementation: DeleteFileUseCaseImpl,
42
+ dependencies: [FmPermissions.Abstraction, GetFileUseCase, DeleteFileRepository, EventPublisher]
43
+ });
44
+
45
+ //# sourceMappingURL=DeleteFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","DeleteFileUseCase","UseCaseAbstraction","DeleteFileRepository","GetFileUseCase","EventPublisher","FileNotAuthorizedError","FileBeforeDeleteEvent","FileAfterDeleteEvent","FmPermissions","DeleteFileUseCaseImpl","constructor","permissions","getFile","repository","eventPublisher","execute","id","hasPermission","canDelete","fail","getResult","isFail","error","file","value","publish","result","delete","ok","createImplementation","implementation","dependencies","Abstraction"],"sources":["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\";\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.Abstraction, GetFileUseCase, DeleteFileRepository, EventPublisher]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,iBAAiB,IAAIC,kBAAkB,EAAEC,oBAAoB;AACtE,SAASC,cAAc;AACvB,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB,EAAEC,oBAAoB;AACpD,SAASC,aAAa;AAEtB,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,WAAoC,EACpCC,OAAiC,EACjCC,UAA0C,EAC1CC,cAAwC,EAClD;IAAA,KAJUH,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,OAAiC,GAAjCA,OAAiC;IAAA,KACjCC,UAA0C,GAA1CA,UAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAmD;IACvE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,WAAW,CAACO,SAAS,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAId,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMe,SAAS,GAAG,MAAM,IAAI,CAACR,OAAO,CAACG,OAAO,CAACC,EAAE,CAAC;IAChD,IAAII,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOtB,MAAM,CAACoB,IAAI,CAACC,SAAS,CAACE,KAAK,CAAC;IACvC;IAEA,MAAMC,IAAI,GAAGH,SAAS,CAACI,KAAK;IAE5B,MAAM,IAAI,CAACV,cAAc,CAACW,OAAO,CAAC,IAAInB,qBAAqB,CAAC;MAAEiB;IAAK,CAAC,CAAC,CAAC;IAEtE,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACb,UAAU,CAACc,MAAM,CAACJ,IAAI,CAAC;IAEjD,IAAIG,MAAM,CAACL,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOtB,MAAM,CAACoB,IAAI,CAACO,MAAM,CAACJ,KAAK,CAAC;IACpC;IAEA,MAAM,IAAI,CAACR,cAAc,CAACW,OAAO,CAAC,IAAIlB,oBAAoB,CAAC;MAAEgB;IAAK,CAAC,CAAC,CAAC;IAErE,OAAOxB,MAAM,CAAC6B,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM5B,iBAAiB,GAAGC,kBAAkB,CAAC4B,oBAAoB,CAAC;EACrEC,cAAc,EAAErB,qBAAqB;EACrCsB,YAAY,EAAE,CAACvB,aAAa,CAACwB,WAAW,EAAE7B,cAAc,EAAED,oBAAoB,EAAEE,cAAc;AAClG,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,37 @@
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
+ export declare const DeleteFileRepository: import("@webiny/di").Abstraction<IDeleteFileRepository>;
16
+ export declare namespace DeleteFileRepository {
17
+ type Interface = IDeleteFileRepository;
18
+ type Error = RepositoryError;
19
+ }
20
+ /**
21
+ * DeleteFile use case interface
22
+ */
23
+ export interface IDeleteFileUseCase {
24
+ execute(id: string): Promise<Result<void, UseCaseError>>;
25
+ }
26
+ export interface IDeleteFileUseCaseErrors {
27
+ notAuthorized: FileNotAuthorizedError;
28
+ notFound: FileNotFoundError;
29
+ persistence: FilePersistenceError;
30
+ }
31
+ type UseCaseError = IDeleteFileUseCaseErrors[keyof IDeleteFileUseCaseErrors];
32
+ export declare const DeleteFileUseCase: import("@webiny/di").Abstraction<IDeleteFileUseCase>;
33
+ export declare namespace DeleteFileUseCase {
34
+ type Interface = IDeleteFileUseCase;
35
+ type Error = UseCaseError;
36
+ }
37
+ export {};
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * DeleteFile repository interface
5
+ */
6
+
7
+ export const DeleteFileRepository = createAbstraction("DeleteFileRepository");
8
+
9
+ /**
10
+ * DeleteFile use case interface
11
+ */
12
+
13
+ export const DeleteFileUseCase = createAbstraction("DeleteFileUseCase");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DeleteFileRepository","DeleteFileUseCase"],"sources":["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\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\nexport const DeleteFileUseCase = createAbstraction<IDeleteFileUseCase>(\"DeleteFileUseCase\");\n\nexport namespace DeleteFileUseCase {\n export type Interface = IDeleteFileUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAOpE;AACA;AACA;;AAaA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
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
+ export declare const FileBeforeDeleteHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeDeleteEvent>>;
12
+ export declare namespace FileBeforeDeleteHandler {
13
+ type Interface = IEventHandler<FileBeforeDeleteEvent>;
14
+ type Event = FileBeforeDeleteEvent;
15
+ }
16
+ export interface FileAfterDeletePayload {
17
+ file: File;
18
+ }
19
+ export declare class FileAfterDeleteEvent extends DomainEvent<FileAfterDeletePayload> {
20
+ eventType: "FileManager/File/AfterDelete";
21
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterDeleteEvent>>;
22
+ }
23
+ export declare const FileAfterDeleteHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterDeleteEvent>>;
24
+ export declare namespace FileAfterDeleteHandler {
25
+ type Interface = IEventHandler<FileAfterDeleteEvent>;
26
+ type Event = FileAfterDeleteEvent;
27
+ }
@@ -0,0 +1,28 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
+
4
+ // ============================================================================
5
+ // FileBeforeDelete Event
6
+ // ============================================================================
7
+
8
+ export class FileBeforeDeleteEvent extends DomainEvent {
9
+ eventType = "FileManager/File/BeforeDelete";
10
+ getHandlerAbstraction() {
11
+ return FileBeforeDeleteHandler;
12
+ }
13
+ }
14
+ export const FileBeforeDeleteHandler = createAbstraction("FileBeforeDeleteHandler");
15
+
16
+ // ============================================================================
17
+ // FileAfterDelete Event
18
+ // ============================================================================
19
+
20
+ export class FileAfterDeleteEvent extends DomainEvent {
21
+ eventType = "FileManager/File/AfterDelete";
22
+ getHandlerAbstraction() {
23
+ return FileAfterDeleteHandler;
24
+ }
25
+ }
26
+ export const FileAfterDeleteHandler = createAbstraction("FileAfterDeleteHandler");
27
+
28
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DomainEvent","FileBeforeDeleteEvent","eventType","getHandlerAbstraction","FileBeforeDeleteHandler","FileAfterDeleteEvent","FileAfterDeleteHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\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 FileBeforeDeleteHandler;\n }\n}\n\nexport const FileBeforeDeleteHandler =\n createAbstraction<IEventHandler<FileBeforeDeleteEvent>>(\"FileBeforeDeleteHandler\");\n\nexport namespace FileBeforeDeleteHandler {\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 FileAfterDeleteHandler;\n }\n}\n\nexport const FileAfterDeleteHandler =\n createAbstraction<IEventHandler<FileAfterDeleteEvent>>(\"FileAfterDeleteHandler\");\n\nexport namespace FileAfterDeleteHandler {\n export type Interface = IEventHandler<FileAfterDeleteEvent>;\n export type Event = FileAfterDeleteEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;;AAItE;AACA;AACA;;AAMA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,uBAAuB;EAClC;AACJ;AAEA,OAAO,MAAMA,uBAAuB,GAChCL,iBAAiB,CAAuC,yBAAyB,CAAC;;AAOtF;AACA;AACA;;AAMA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,sBAAsB;EACjC;AACJ;AAEA,OAAO,MAAMA,sBAAsB,GAC/BP,iBAAiB,CAAsC,wBAAwB,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const DeleteFileFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { DeleteFileRepository } from "./DeleteFileRepository.js";
3
+ import { DeleteFileUseCase } from "./DeleteFileUseCase.js";
4
+ export const DeleteFileFeature = createFeature({
5
+ name: "FileManager/DeleteFile",
6
+ register(container) {
7
+ container.register(DeleteFileUseCase);
8
+ container.register(DeleteFileRepository).inSingletonScope();
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DeleteFileRepository","DeleteFileUseCase","DeleteFileFeature","name","register","container","inSingletonScope"],"sources":["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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,iBAAiB,GAAGH,aAAa,CAAC;EAC3CI,IAAI,EAAE,wBAAwB;EAC9BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;IACrCI,SAAS,CAACD,QAAQ,CAACJ,oBAAoB,CAAC,CAACM,gBAAgB,CAAC,CAAC;EAC/D;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { DeleteFileUseCase } from "./abstractions.js";
2
+ export { FileBeforeDeleteHandler, FileAfterDeleteHandler } from "./events.js";
@@ -0,0 +1,4 @@
1
+ export { DeleteFileUseCase } from "./abstractions.js";
2
+ export { FileBeforeDeleteHandler, FileAfterDeleteHandler } from "./events.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeleteFileUseCase","FileBeforeDeleteHandler","FileAfterDeleteHandler"],"sources":["index.ts"],"sourcesContent":["export { DeleteFileUseCase } from \"./abstractions.js\";\nexport { FileBeforeDeleteHandler, FileAfterDeleteHandler } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,iBAAiB;AAC1B,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ interface IFileUrlGenerator {
2
+ generateUrl(file: File): string;
3
+ }
4
+ export declare const FileUrlGenerator: import("@webiny/di").Abstraction<IFileUrlGenerator>;
5
+ export declare namespace FileUrlGenerator {
6
+ type Interface = IFileUrlGenerator;
7
+ }
8
+ export {};
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const FileUrlGenerator = createAbstraction("IFileUrlGenerator");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","FileUrlGenerator"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\ninterface IFileUrlGenerator {\n generateUrl(file: File): string;\n}\n\nexport const FileUrlGenerator = createAbstraction<IFileUrlGenerator>(\"IFileUrlGenerator\");\n\nexport namespace FileUrlGenerator {\n export type Interface = IFileUrlGenerator;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAMvD,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAoB,mBAAmB,CAAC","ignoreList":[]}
@@ -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 { FileModel } 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 fileModel;
9
+ constructor(getEntryById: GetEntryByIdUseCase.Interface, fileModel: FileModel.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 {};