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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/contants.js +2 -1
  5. package/contants.js.map +1 -1
  6. package/delivery/AssetDelivery/Asset.js +50 -56
  7. package/delivery/AssetDelivery/Asset.js.map +1 -1
  8. package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
  9. package/delivery/AssetDelivery/AssetRequest.js +20 -19
  10. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  11. package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -27
  12. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  13. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -5
  14. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  15. package/delivery/AssetDeliveryRoute.d.ts +24 -0
  16. package/delivery/AssetDeliveryRoute.js +69 -0
  17. package/delivery/AssetDeliveryRoute.js.map +1 -0
  18. package/delivery/index.d.ts +3 -12
  19. package/delivery/index.js +2 -8
  20. package/delivery/setupAssetDelivery.d.ts +1 -2
  21. package/delivery/setupAssetDelivery.js +2 -112
  22. package/delivery/setupAssetDelivery.js.map +1 -1
  23. package/domain/file/abstractions.d.ts +13 -5
  24. package/domain/file/abstractions.js +2 -5
  25. package/domain/file/abstractions.js.map +1 -1
  26. package/domain/file/errors.js +67 -76
  27. package/domain/file/errors.js.map +1 -1
  28. package/domain/file/file.model.d.ts +3 -3
  29. package/domain/file/file.model.js +63 -50
  30. package/domain/file/file.model.js.map +1 -1
  31. package/domain/file/types.js +0 -3
  32. package/domain/identity/Identity.js +9 -8
  33. package/domain/identity/Identity.js.map +1 -1
  34. package/domain/permissionsSchema.js +26 -15
  35. package/domain/permissionsSchema.js.map +1 -1
  36. package/domain/settings/constants.js +2 -1
  37. package/domain/settings/constants.js.map +1 -1
  38. package/domain/settings/errors.js +22 -24
  39. package/domain/settings/errors.js.map +1 -1
  40. package/domain/settings/types.js +0 -3
  41. package/domain/settings/validation.js +19 -28
  42. package/domain/settings/validation.js.map +1 -1
  43. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  44. package/exports/api/file-manager/assetDelivery.js +8 -0
  45. package/exports/api/file-manager/file.d.ts +2 -1
  46. package/exports/api/file-manager/file.js +2 -3
  47. package/exports/api/file-manager/permissions.js +0 -2
  48. package/exports/api/file-manager/settings.js +0 -2
  49. package/features/FileManagerFeature.js +22 -15
  50. package/features/FileManagerFeature.js.map +1 -1
  51. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  52. package/features/assetDelivery/Asset/Asset.js +14 -0
  53. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  54. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  55. package/features/assetDelivery/Asset/abstractions.js +5 -0
  56. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  57. package/features/assetDelivery/Asset/index.d.ts +1 -0
  58. package/features/assetDelivery/Asset/index.js +1 -0
  59. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
  60. package/features/assetDelivery/FilesAssetRequestResolver.js +29 -0
  61. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  62. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  63. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  64. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  65. package/features/assetDelivery/NullAssetReply.js +14 -0
  66. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  67. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  68. package/features/assetDelivery/NullAssetResolver.js +13 -0
  69. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  70. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  71. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  72. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  73. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  74. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  75. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  76. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  77. package/features/assetDelivery/ObjectKey/index.js +1 -0
  78. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  79. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  80. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  81. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  82. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  83. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  84. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  85. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  86. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  87. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  88. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  89. package/features/assetDelivery/abstractions.d.ts +65 -0
  90. package/features/assetDelivery/abstractions.js +11 -0
  91. package/features/assetDelivery/abstractions.js.map +1 -0
  92. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  93. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  94. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  95. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  96. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  97. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  98. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  99. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  100. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  101. package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
  102. package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
  103. package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
  104. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  105. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  106. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  107. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  108. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  109. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  110. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  111. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  112. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  113. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  114. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  115. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  116. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  117. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  118. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  119. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  120. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  121. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  122. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  123. package/features/assetDelivery/feature.d.ts +4 -0
  124. package/features/assetDelivery/feature.js +35 -0
  125. package/features/assetDelivery/feature.js.map +1 -0
  126. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  127. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  128. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  129. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  130. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  131. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  132. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  133. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  134. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  135. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  136. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  137. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  138. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +11 -0
  139. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -0
  140. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  141. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  142. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +65 -0
  143. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  144. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  145. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  146. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  147. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +9 -0
  148. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
  149. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  150. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
  151. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
  152. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  153. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  154. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  155. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  156. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +9 -0
  157. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
  158. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  159. package/features/assetDelivery/transformation/index.d.ts +5 -0
  160. package/features/assetDelivery/transformation/index.js +4 -0
  161. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  162. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  163. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  164. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  165. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  166. package/features/file/CreateFile/CreateFileRepository.d.ts +3 -3
  167. package/features/file/CreateFile/CreateFileRepository.js +22 -19
  168. package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
  169. package/features/file/CreateFile/CreateFileUseCase.js +68 -75
  170. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -1
  171. package/features/file/CreateFile/abstractions.js +3 -14
  172. package/features/file/CreateFile/abstractions.js.map +1 -1
  173. package/features/file/CreateFile/events.js +17 -26
  174. package/features/file/CreateFile/events.js.map +1 -1
  175. package/features/file/CreateFile/feature.js +7 -6
  176. package/features/file/CreateFile/feature.js.map +1 -1
  177. package/features/file/CreateFile/index.js +0 -2
  178. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +15 -17
  179. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -1
  180. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +59 -70
  181. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -1
  182. package/features/file/CreateFilesInBatch/abstractions.js +3 -14
  183. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -1
  184. package/features/file/CreateFilesInBatch/events.js +17 -26
  185. package/features/file/CreateFilesInBatch/events.js.map +1 -1
  186. package/features/file/CreateFilesInBatch/feature.js +7 -6
  187. package/features/file/CreateFilesInBatch/feature.js.map +1 -1
  188. package/features/file/CreateFilesInBatch/index.js +0 -2
  189. package/features/file/DeleteFile/DeleteFileRepository.d.ts +3 -3
  190. package/features/file/DeleteFile/DeleteFileRepository.js +23 -21
  191. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
  192. package/features/file/DeleteFile/DeleteFileUseCase.js +31 -33
  193. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -1
  194. package/features/file/DeleteFile/abstractions.js +3 -14
  195. package/features/file/DeleteFile/abstractions.js.map +1 -1
  196. package/features/file/DeleteFile/events.js +17 -26
  197. package/features/file/DeleteFile/events.js.map +1 -1
  198. package/features/file/DeleteFile/feature.js +7 -6
  199. package/features/file/DeleteFile/feature.js.map +1 -1
  200. package/features/file/DeleteFile/index.js +1 -3
  201. package/features/file/FileModelProvider.d.ts +31 -0
  202. package/features/file/FileModelProvider.js +22 -0
  203. package/features/file/FileModelProvider.js.map +1 -0
  204. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
  205. package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
  206. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  207. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
  208. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +28 -0
  209. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
  210. package/features/file/FileUrlGenerator/abstractions.d.ts +15 -4
  211. package/features/file/FileUrlGenerator/abstractions.js +3 -2
  212. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  213. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  214. package/features/file/FileUrlGenerator/feature.js +13 -0
  215. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  216. package/features/file/FileUrlGenerator/index.d.ts +2 -0
  217. package/features/file/FileUrlGenerator/index.js +1 -0
  218. package/features/file/GetFile/GetFileRepository.d.ts +3 -3
  219. package/features/file/GetFile/GetFileRepository.js +24 -23
  220. package/features/file/GetFile/GetFileRepository.js.map +1 -1
  221. package/features/file/GetFile/GetFileUseCase.js +19 -21
  222. package/features/file/GetFile/GetFileUseCase.js.map +1 -1
  223. package/features/file/GetFile/abstractions.js +3 -14
  224. package/features/file/GetFile/abstractions.js.map +1 -1
  225. package/features/file/GetFile/feature.js +7 -6
  226. package/features/file/GetFile/feature.js.map +1 -1
  227. package/features/file/GetFile/index.js +0 -2
  228. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  229. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  230. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  231. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  232. package/features/file/GetFileByUrl/abstractions.js +5 -0
  233. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  234. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  235. package/features/file/GetFileByUrl/feature.js +11 -0
  236. package/features/file/GetFileByUrl/feature.js.map +1 -0
  237. package/features/file/GetFileByUrl/index.d.ts +1 -0
  238. package/features/file/GetFileByUrl/index.js +1 -0
  239. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  240. package/features/file/GetFileContentsById/abstractions.js +5 -0
  241. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  242. package/features/file/GetFileContentsById/index.d.ts +1 -0
  243. package/features/file/GetFileContentsById/index.js +1 -0
  244. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  245. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  246. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  247. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  248. package/features/file/GetFileContentsByKey/index.js +1 -0
  249. package/features/file/ListFiles/ListFilesRepository.d.ts +3 -3
  250. package/features/file/ListFiles/ListFilesRepository.js +44 -41
  251. package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
  252. package/features/file/ListFiles/ListFilesUseCase.js +33 -34
  253. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -1
  254. package/features/file/ListFiles/abstractions.js +3 -14
  255. package/features/file/ListFiles/abstractions.js.map +1 -1
  256. package/features/file/ListFiles/feature.js +7 -6
  257. package/features/file/ListFiles/feature.js.map +1 -1
  258. package/features/file/ListFiles/index.js +0 -2
  259. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +15 -5
  260. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +46 -29
  261. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -1
  262. package/features/file/ListImagesByTagTool/feature.js +6 -5
  263. package/features/file/ListImagesByTagTool/feature.js.map +1 -1
  264. package/features/file/ListTags/ListTagsRepository.d.ts +3 -3
  265. package/features/file/ListTags/ListTagsRepository.js +33 -37
  266. package/features/file/ListTags/ListTagsRepository.js.map +1 -1
  267. package/features/file/ListTags/ListTagsUseCase.js +21 -21
  268. package/features/file/ListTags/ListTagsUseCase.js.map +1 -1
  269. package/features/file/ListTags/abstractions.js +3 -14
  270. package/features/file/ListTags/abstractions.js.map +1 -1
  271. package/features/file/ListTags/feature.js +7 -6
  272. package/features/file/ListTags/feature.js.map +1 -1
  273. package/features/file/ListTags/index.js +0 -2
  274. package/features/file/UpdateFile/UpdateFileRepository.d.ts +3 -3
  275. package/features/file/UpdateFile/UpdateFileRepository.js +28 -29
  276. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
  277. package/features/file/UpdateFile/UpdateFileUseCase.js +57 -65
  278. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -1
  279. package/features/file/UpdateFile/abstractions.js +3 -14
  280. package/features/file/UpdateFile/abstractions.js.map +1 -1
  281. package/features/file/UpdateFile/events.js +17 -26
  282. package/features/file/UpdateFile/events.js.map +1 -1
  283. package/features/file/UpdateFile/feature.js +7 -6
  284. package/features/file/UpdateFile/feature.js.map +1 -1
  285. package/features/file/UpdateFile/index.js +1 -3
  286. package/features/file/shared/EntryToFileMapper.js +25 -24
  287. package/features/file/shared/EntryToFileMapper.js.map +1 -1
  288. package/features/file/shared/FileInputToEntryInputMapper.js +29 -28
  289. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -1
  290. package/features/file/shared/FileToEntryMapper.js +28 -27
  291. package/features/file/shared/FileToEntryMapper.js.map +1 -1
  292. package/features/permissions/abstractions.js +2 -1
  293. package/features/permissions/abstractions.js.map +1 -1
  294. package/features/permissions/feature.js +2 -1
  295. package/features/permissions/feature.js.map +1 -1
  296. package/features/settings/GetSettings/GetSettingsUseCase.js +19 -19
  297. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -1
  298. package/features/settings/GetSettings/abstractions.js +2 -7
  299. package/features/settings/GetSettings/abstractions.js.map +1 -1
  300. package/features/settings/GetSettings/feature.js +6 -5
  301. package/features/settings/GetSettings/feature.js.map +1 -1
  302. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +3 -1
  303. package/features/settings/SettingsInstaller/SettingsInstaller.js +29 -25
  304. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  305. package/features/settings/SettingsInstaller/feature.js +6 -5
  306. package/features/settings/SettingsInstaller/feature.js.map +1 -1
  307. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +41 -48
  308. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
  309. package/features/settings/UpdateSettings/abstractions.js +2 -7
  310. package/features/settings/UpdateSettings/abstractions.js.map +1 -1
  311. package/features/settings/UpdateSettings/events.js +17 -26
  312. package/features/settings/UpdateSettings/events.js.map +1 -1
  313. package/features/settings/UpdateSettings/feature.js +6 -5
  314. package/features/settings/UpdateSettings/feature.js.map +1 -1
  315. package/features/settings/UpdateSettings/index.js +0 -2
  316. package/features/shared/abstractions.js +0 -2
  317. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  318. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  319. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  320. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  321. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  322. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  323. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  324. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  325. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  326. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  327. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  328. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  329. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  330. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  331. package/features/upload/GetUploadPayload/index.js +1 -0
  332. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  333. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  334. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  335. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  336. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  337. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  338. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  339. package/features/upload/ReadFileMetadata/feature.js +11 -0
  340. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  341. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  342. package/features/upload/ReadFileMetadata/index.js +1 -0
  343. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  344. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  345. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  346. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  347. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  348. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  349. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  350. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  351. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  352. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  353. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  354. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  355. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  356. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  357. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  358. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  359. package/features/upload/WriteFileMetadata/feature.js +17 -0
  360. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  361. package/features/upload/index.d.ts +17 -0
  362. package/features/upload/index.js +10 -0
  363. package/features/upload/types.d.ts +28 -0
  364. package/features/upload/types.js +0 -0
  365. package/features/upload/utils/FileExtension.d.ts +6 -0
  366. package/features/upload/utils/FileExtension.js +16 -0
  367. package/features/upload/utils/FileExtension.js.map +1 -0
  368. package/features/upload/utils/FileKey.d.ts +11 -0
  369. package/features/upload/utils/FileKey.js +33 -0
  370. package/features/upload/utils/FileKey.js.map +1 -0
  371. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  372. package/features/upload/utils/FileNormalizer.js +41 -0
  373. package/features/upload/utils/FileNormalizer.js.map +1 -0
  374. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  375. package/features/upload/utils/FileUploadModifier.js +39 -0
  376. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  377. package/features/upload/utils/checkPermissions.d.ts +5 -0
  378. package/features/upload/utils/checkPermissions.js +22 -0
  379. package/features/upload/utils/checkPermissions.js.map +1 -0
  380. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  381. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  382. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  383. package/features/upload/utils/mimeTypes.d.ts +1 -0
  384. package/features/upload/utils/mimeTypes.js +9 -0
  385. package/features/upload/utils/mimeTypes.js.map +1 -0
  386. package/graphql/FmGraphQLSchema.d.ts +24 -0
  387. package/graphql/FmGraphQLSchema.js +458 -0
  388. package/graphql/FmGraphQLSchema.js.map +1 -0
  389. package/index.d.ts +3 -6
  390. package/index.js +11 -33
  391. package/index.js.map +1 -1
  392. package/package.json +28 -21
  393. package/types.d.ts +1 -1
  394. package/types.js +1 -3
  395. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +0 -65
  396. package/delivery/AssetDelivery/AssetDeliveryConfig.js +0 -94
  397. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +0 -1
  398. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +0 -6
  399. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +0 -30
  400. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +0 -1
  401. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +0 -4
  402. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +0 -8
  403. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +0 -1
  404. package/delivery/AssetDelivery/NullAssetReply.js +0 -13
  405. package/delivery/AssetDelivery/NullAssetReply.js.map +0 -1
  406. package/delivery/AssetDelivery/NullAssetResolver.d.ts +0 -5
  407. package/delivery/AssetDelivery/NullAssetResolver.js +0 -7
  408. package/delivery/AssetDelivery/NullAssetResolver.js.map +0 -1
  409. package/delivery/AssetDelivery/NullRequestResolver.d.ts +0 -4
  410. package/delivery/AssetDelivery/NullRequestResolver.js +0 -7
  411. package/delivery/AssetDelivery/NullRequestResolver.js.map +0 -1
  412. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +0 -8
  413. package/delivery/AssetDelivery/SetCacheControlHeaders.js +0 -18
  414. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +0 -1
  415. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +0 -18
  416. package/delivery/AssetDelivery/SetResponseHeaders.js +0 -18
  417. package/delivery/AssetDelivery/SetResponseHeaders.js.map +0 -1
  418. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +0 -4
  419. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -3
  420. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
  421. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +0 -4
  422. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -3
  423. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
  424. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +0 -4
  425. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -3
  426. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
  427. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +0 -5
  428. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -3
  429. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
  430. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +0 -4
  431. package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -3
  432. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
  433. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +0 -4
  434. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -3
  435. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
  436. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +0 -4
  437. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -3
  438. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
  439. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +0 -4
  440. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +0 -19
  441. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +0 -1
  442. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +0 -4
  443. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +0 -8
  444. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +0 -1
  445. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +0 -8
  446. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +0 -20
  447. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +0 -1
  448. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +0 -6
  449. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +0 -21
  450. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +0 -1
  451. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +0 -8
  452. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +0 -30
  453. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +0 -1
  454. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +0 -13
  455. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +0 -63
  456. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +0 -1
  457. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +0 -6
  458. package/delivery/AssetDelivery/privateFiles/PublicCache.js +0 -21
  459. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +0 -1
  460. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +0 -7
  461. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +0 -20
  462. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +0 -1
  463. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +0 -7
  464. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +0 -20
  465. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +0 -1
  466. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +0 -4
  467. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +0 -7
  468. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +0 -1
  469. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -4
  470. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -7
  471. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  472. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +0 -6
  473. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +0 -19
  474. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +0 -1
  475. package/delivery/index.js.map +0 -1
  476. package/domain/file/types.js.map +0 -1
  477. package/domain/settings/types.js.map +0 -1
  478. package/exports/api/file-manager/file.js.map +0 -1
  479. package/exports/api/file-manager/permissions.js.map +0 -1
  480. package/exports/api/file-manager/settings.js.map +0 -1
  481. package/features/file/CreateFile/index.js.map +0 -1
  482. package/features/file/CreateFilesInBatch/index.js.map +0 -1
  483. package/features/file/DeleteFile/index.js.map +0 -1
  484. package/features/file/GetFile/index.js.map +0 -1
  485. package/features/file/GetFileContents/abstractions.d.ts +0 -20
  486. package/features/file/GetFileContents/abstractions.js +0 -4
  487. package/features/file/GetFileContents/abstractions.js.map +0 -1
  488. package/features/file/GetFileContents/index.d.ts +0 -1
  489. package/features/file/GetFileContents/index.js +0 -3
  490. package/features/file/GetFileContents/index.js.map +0 -1
  491. package/features/file/ListFiles/index.js.map +0 -1
  492. package/features/file/ListTags/index.js.map +0 -1
  493. package/features/file/UpdateFile/index.js.map +0 -1
  494. package/features/settings/UpdateSettings/index.js.map +0 -1
  495. package/features/shared/abstractions.js.map +0 -1
  496. package/graphql/baseSchema.d.ts +0 -3
  497. package/graphql/baseSchema.js +0 -103
  498. package/graphql/baseSchema.js.map +0 -1
  499. package/graphql/createFilesTypeDefs.d.ts +0 -8
  500. package/graphql/createFilesTypeDefs.js +0 -199
  501. package/graphql/createFilesTypeDefs.js.map +0 -1
  502. package/graphql/filesSchema.d.ts +0 -4
  503. package/graphql/filesSchema.js +0 -116
  504. package/graphql/filesSchema.js.map +0 -1
  505. package/graphql/getFileByUrl.d.ts +0 -3
  506. package/graphql/getFileByUrl.js +0 -69
  507. package/graphql/getFileByUrl.js.map +0 -1
  508. package/graphql/index.d.ts +0 -4
  509. package/graphql/index.js +0 -54
  510. package/graphql/index.js.map +0 -1
  511. package/graphql/utils.d.ts +0 -11
  512. package/graphql/utils.js +0 -17
  513. package/graphql/utils.js.map +0 -1
  514. package/modelModifier/CmsModelModifier.d.ts +0 -26
  515. package/modelModifier/CmsModelModifier.js +0 -54
  516. package/modelModifier/CmsModelModifier.js.map +0 -1
  517. package/types.js.map +0 -1
  518. /package/{delivery/AssetDelivery → features/assetDelivery}/NullAssetReply.d.ts +0 -0
@@ -1,32 +1,23 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
2
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
-
4
- // ============================================================================
5
- // FileBeforeCreate Event
6
- // ============================================================================
7
-
8
- export class FileBeforeCreateEvent extends DomainEvent {
9
- eventType = "FileManager/File/BeforeCreate";
10
- getHandlerAbstraction() {
11
- return FileBeforeCreateEventHandler;
12
- }
3
+ class FileBeforeCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return FileBeforeCreateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "FileManager/File/BeforeCreate";
9
+ }
13
10
  }
14
-
15
- /** Hook into file lifecycle before a file is created. */
16
- export const FileBeforeCreateEventHandler = createAbstraction("FileBeforeCreateEventHandler");
17
-
18
- // ============================================================================
19
- // FileAfterCreate Event
20
- // ============================================================================
21
-
22
- export class FileAfterCreateEvent extends DomainEvent {
23
- eventType = "FileManager/File/AfterCreate";
24
- getHandlerAbstraction() {
25
- return FileAfterCreateEventHandler;
26
- }
11
+ const FileBeforeCreateEventHandler = createAbstraction("FileBeforeCreateEventHandler");
12
+ class FileAfterCreateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return FileAfterCreateEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "FileManager/File/AfterCreate";
18
+ }
27
19
  }
28
-
29
- /** Hook into file lifecycle after a file is created. */
30
- export const FileAfterCreateEventHandler = createAbstraction("FileAfterCreateEventHandler");
20
+ const FileAfterCreateEventHandler = createAbstraction("FileAfterCreateEventHandler");
21
+ export { FileAfterCreateEvent, FileAfterCreateEventHandler, FileBeforeCreateEvent, FileBeforeCreateEventHandler };
31
22
 
32
23
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","FileBeforeCreateEvent","eventType","getHandlerAbstraction","FileBeforeCreateEventHandler","FileAfterCreateEvent","FileAfterCreateEventHandler"],"sources":["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, FileInput } from \"~/domain/file/types.js\";\n\n// ============================================================================\n// FileBeforeCreate Event\n// ============================================================================\n\nexport interface FileBeforeCreatePayload {\n file: FileInput;\n meta?: Record<string, any>;\n}\n\nexport class FileBeforeCreateEvent extends DomainEvent<FileBeforeCreatePayload> {\n eventType = \"FileManager/File/BeforeCreate\" as const;\n\n getHandlerAbstraction() {\n return FileBeforeCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle before a file is created. */\nexport const FileBeforeCreateEventHandler = createAbstraction<IEventHandler<FileBeforeCreateEvent>>(\n \"FileBeforeCreateEventHandler\"\n);\n\nexport namespace FileBeforeCreateEventHandler {\n export type Interface = IEventHandler<FileBeforeCreateEvent>;\n export type Event = FileBeforeCreateEvent;\n}\n\n// ============================================================================\n// FileAfterCreate Event\n// ============================================================================\n\nexport interface FileAfterCreatePayload {\n file: File;\n meta?: Record<string, any>;\n}\n\nexport class FileAfterCreateEvent extends DomainEvent<FileAfterCreatePayload> {\n eventType = \"FileManager/File/AfterCreate\" as const;\n\n getHandlerAbstraction() {\n return FileAfterCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle after a file is created. */\nexport const FileAfterCreateEventHandler = createAbstraction<IEventHandler<FileAfterCreateEvent>>(\n \"FileAfterCreateEventHandler\"\n);\n\nexport namespace FileAfterCreateEventHandler {\n export type Interface = IEventHandler<FileAfterCreateEvent>;\n export type Event = FileAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;;AAI/E;AACA;AACA;;AAOA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMA,4BAA4B,GAAGL,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAOA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,2BAA2B;EACtC;AACJ;;AAEA;AACA,OAAO,MAAMA,2BAA2B,GAAGP,iBAAiB,CACxD,6BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFile/events.js","sources":["../../../../src/features/file/CreateFile/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, FileInput } from \"~/domain/file/types.js\";\n\n// ============================================================================\n// FileBeforeCreate Event\n// ============================================================================\n\nexport interface FileBeforeCreatePayload {\n file: FileInput;\n meta?: Record<string, any>;\n}\n\nexport class FileBeforeCreateEvent extends DomainEvent<FileBeforeCreatePayload> {\n eventType = \"FileManager/File/BeforeCreate\" as const;\n\n getHandlerAbstraction() {\n return FileBeforeCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle before a file is created. */\nexport const FileBeforeCreateEventHandler = createAbstraction<IEventHandler<FileBeforeCreateEvent>>(\n \"FileBeforeCreateEventHandler\"\n);\n\nexport namespace FileBeforeCreateEventHandler {\n export type Interface = IEventHandler<FileBeforeCreateEvent>;\n export type Event = FileBeforeCreateEvent;\n}\n\n// ============================================================================\n// FileAfterCreate Event\n// ============================================================================\n\nexport interface FileAfterCreatePayload {\n file: File;\n meta?: Record<string, any>;\n}\n\nexport class FileAfterCreateEvent extends DomainEvent<FileAfterCreatePayload> {\n eventType = \"FileManager/File/AfterCreate\" as const;\n\n getHandlerAbstraction() {\n return FileAfterCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle after a file is created. */\nexport const FileAfterCreateEventHandler = createAbstraction<IEventHandler<FileAfterCreateEvent>>(\n \"FileAfterCreateEventHandler\"\n);\n\nexport namespace FileAfterCreateEventHandler {\n export type Interface = IEventHandler<FileAfterCreateEvent>;\n export type Event = FileAfterCreateEvent;\n}\n"],"names":["FileBeforeCreateEvent","DomainEvent","FileBeforeCreateEventHandler","createAbstraction","FileAfterCreateEvent","FileAfterCreateEventHandler"],"mappings":";;AAcO,MAAMA,8BAA8BC;IAGvC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,+BAA+BC,kBACxC;AAiBG,MAAMC,6BAA6BH;IAGtC,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,8BAA8BF,kBACvC"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { CreateFileRepository } from "./CreateFileRepository.js";
3
3
  import { CreateFileUseCase } from "./CreateFileUseCase.js";
4
- export const CreateFileFeature = createFeature({
5
- name: "FileManager/CreateFile",
6
- register(container) {
7
- container.register(CreateFileUseCase);
8
- container.register(CreateFileRepository).inSingletonScope();
9
- }
4
+ const CreateFileFeature = createFeature({
5
+ name: "FileManager/CreateFile",
6
+ register (container) {
7
+ container.register(CreateFileUseCase);
8
+ container.register(CreateFileRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { CreateFileFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","CreateFileRepository","CreateFileUseCase","CreateFileFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileRepository } from \"./CreateFileRepository.js\";\nimport { CreateFileUseCase } from \"./CreateFileUseCase.js\";\n\nexport const CreateFileFeature = createFeature({\n name: \"FileManager/CreateFile\",\n register(container) {\n container.register(CreateFileUseCase);\n container.register(CreateFileRepository).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":[]}
1
+ {"version":3,"file":"features/file/CreateFile/feature.js","sources":["../../../../src/features/file/CreateFile/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileRepository } from \"./CreateFileRepository.js\";\nimport { CreateFileUseCase } from \"./CreateFileUseCase.js\";\n\nexport const CreateFileFeature = createFeature({\n name: \"FileManager/CreateFile\",\n register(container) {\n container.register(CreateFileUseCase);\n container.register(CreateFileRepository).inSingletonScope();\n }\n});\n"],"names":["CreateFileFeature","createFeature","container","CreateFileUseCase","CreateFileRepository"],"mappings":";;;AAIO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,sBAAsB,gBAAgB;IAC7D;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { CreateFileUseCase } from "./abstractions.js";
2
2
  export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "./events.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,24 +1,22 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { CreateFilesInBatchRepository as RepositoryAbstraction } from "./abstractions.js";
2
+ import { CreateFilesInBatchRepository } from "./abstractions.js";
3
3
  import { CreateFileRepository } from "../CreateFile/abstractions.js";
4
4
  class CreateFilesInBatchRepositoryImpl {
5
- constructor(createFileRepository) {
6
- this.createFileRepository = createFileRepository;
7
- }
8
- async createBatch(files) {
9
- const results = await Promise.all(files.map(async input => {
10
- return this.createFileRepository.execute(input);
11
- }));
12
-
13
- // Return only successful results.
14
- // TODO: group files into successful and failed
15
- const createdFiles = results.filter(result => result.isOk()).map(result => result.value);
16
- return Result.ok(createdFiles);
17
- }
5
+ constructor(createFileRepository){
6
+ this.createFileRepository = createFileRepository;
7
+ }
8
+ async createBatch(files) {
9
+ const results = await Promise.all(files.map(async (input)=>this.createFileRepository.execute(input)));
10
+ const createdFiles = results.filter((result)=>result.isOk()).map((result)=>result.value);
11
+ return Result.ok(createdFiles);
12
+ }
18
13
  }
19
- export const CreateFilesInBatchRepository = RepositoryAbstraction.createImplementation({
20
- implementation: CreateFilesInBatchRepositoryImpl,
21
- dependencies: [CreateFileRepository]
14
+ const CreateFilesInBatchRepository_CreateFilesInBatchRepository = CreateFilesInBatchRepository.createImplementation({
15
+ implementation: CreateFilesInBatchRepositoryImpl,
16
+ dependencies: [
17
+ CreateFileRepository
18
+ ]
22
19
  });
20
+ export { CreateFilesInBatchRepository_CreateFilesInBatchRepository as CreateFilesInBatchRepository };
23
21
 
24
22
  //# sourceMappingURL=CreateFilesInBatchRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","CreateFilesInBatchRepository","RepositoryAbstraction","CreateFileRepository","CreateFilesInBatchRepositoryImpl","constructor","createFileRepository","createBatch","files","results","Promise","all","map","input","execute","createdFiles","filter","result","isOk","value","ok","createImplementation","implementation","dependencies"],"sources":["CreateFilesInBatchRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateFilesInBatchRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport { CreateFileRepository } from \"~/features/file/CreateFile/abstractions.js\";\n\nclass CreateFilesInBatchRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(private createFileRepository: CreateFileRepository.Interface) {}\n\n async createBatch(files: FileInput[]): Promise<Result<File[], RepositoryAbstraction.Error>> {\n const results = await Promise.all(\n files.map(async input => {\n return this.createFileRepository.execute(input);\n })\n );\n\n // Return only successful results.\n // TODO: group files into successful and failed\n const createdFiles = results.filter(result => result.isOk()).map(result => result.value);\n\n return Result.ok(createdFiles);\n }\n}\n\nexport const CreateFilesInBatchRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFilesInBatchRepositoryImpl,\n dependencies: [CreateFileRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,4BAA4B,IAAIC,qBAAqB;AAE9D,SAASC,oBAAoB;AAE7B,MAAMC,gCAAgC,CAA4C;EAC9EC,WAAWA,CAASC,oBAAoD,EAAE;IAAA,KAAtDA,oBAAoD,GAApDA,oBAAoD;EAAG;EAE3E,MAAMC,WAAWA,CAACC,KAAkB,EAAwD;IACxF,MAAMC,OAAO,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC7BH,KAAK,CAACI,GAAG,CAAC,MAAMC,KAAK,IAAI;MACrB,OAAO,IAAI,CAACP,oBAAoB,CAACQ,OAAO,CAACD,KAAK,CAAC;IACnD,CAAC,CACL,CAAC;;IAED;IACA;IACA,MAAME,YAAY,GAAGN,OAAO,CAACO,MAAM,CAACC,MAAM,IAAIA,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC,CAACN,GAAG,CAACK,MAAM,IAAIA,MAAM,CAACE,KAAK,CAAC;IAExF,OAAOnB,MAAM,CAACoB,EAAE,CAACL,YAAY,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMd,4BAA4B,GAAGC,qBAAqB,CAACmB,oBAAoB,CAAC;EACnFC,cAAc,EAAElB,gCAAgC;EAChDmB,YAAY,EAAE,CAACpB,oBAAoB;AACvC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js","sources":["../../../../src/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateFilesInBatchRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport { CreateFileRepository } from \"~/features/file/CreateFile/abstractions.js\";\n\nclass CreateFilesInBatchRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(private createFileRepository: CreateFileRepository.Interface) {}\n\n async createBatch(files: FileInput[]): Promise<Result<File[], RepositoryAbstraction.Error>> {\n const results = await Promise.all(\n files.map(async input => {\n return this.createFileRepository.execute(input);\n })\n );\n\n // Return only successful results.\n // TODO: group files into successful and failed\n const createdFiles = results.filter(result => result.isOk()).map(result => result.value);\n\n return Result.ok(createdFiles);\n }\n}\n\nexport const CreateFilesInBatchRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFilesInBatchRepositoryImpl,\n dependencies: [CreateFileRepository]\n});\n"],"names":["CreateFilesInBatchRepositoryImpl","createFileRepository","files","results","Promise","input","createdFiles","result","Result","CreateFilesInBatchRepository","RepositoryAbstraction","CreateFileRepository"],"mappings":";;;AAKA,MAAMA;IACF,YAAoBC,oBAAoD,CAAE;aAAtDA,oBAAoB,GAApBA;IAAuD;IAE3E,MAAM,YAAYC,KAAkB,EAAwD;QACxF,MAAMC,UAAU,MAAMC,QAAQ,GAAG,CAC7BF,MAAM,GAAG,CAAC,OAAMG,QACL,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACA;QAMjD,MAAMC,eAAeH,QAAQ,MAAM,CAACI,CAAAA,SAAUA,OAAO,IAAI,IAAI,GAAG,CAACA,CAAAA,SAAUA,OAAO,KAAK;QAEvF,OAAOC,OAAO,EAAE,CAACF;IACrB;AACJ;AAEO,MAAMG,4DAA+BC,6BAAAA,oBAA0C,CAAC;IACnF,gBAAgBV;IAChB,cAAc;QAACW;KAAqB;AACxC"}
@@ -1,84 +1,73 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { CreateFilesInBatchUseCase as UseCaseAbstraction, CreateFilesInBatchRepository } from "./abstractions.js";
2
+ import { CreateFilesInBatchRepository, CreateFilesInBatchUseCase } from "./abstractions.js";
3
3
  import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
4
4
  import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
5
  import { FileNotAuthorizedError, InvalidFileSizeError } from "../../../domain/file/errors.js";
6
- import { FileBeforeBatchCreateEvent, FileAfterBatchCreateEvent } from "./events.js";
6
+ import { FileAfterBatchCreateEvent, FileBeforeBatchCreateEvent } from "./events.js";
7
7
  import { FmPermissions } from "../../shared/abstractions.js";
8
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());
9
+ constructor(permissions, repository, getSettings, eventPublisher){
10
+ this.permissions = permissions;
11
+ this.repository = repository;
12
+ this.getSettings = getSettings;
13
+ this.eventPublisher = eventPublisher;
19
14
  }
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();
15
+ async execute(input) {
16
+ const hasPermission = await this.permissions.canCreate("file");
17
+ if (!hasPermission) return Result.fail(new FileNotAuthorizedError());
18
+ const validationResult = await this.validateInput(input.files);
19
+ if (validationResult.isFail()) return Result.fail(validationResult.error);
20
+ const fileInputs = input.files.map((file)=>{
21
+ const [id] = file.key.split("/");
22
+ return {
23
+ id: file.id || id,
24
+ key: file.key,
25
+ name: file.name,
26
+ size: file.size,
27
+ type: file.type,
28
+ metadata: file.metadata || {},
29
+ location: file.location || {
30
+ folderId: "root"
31
+ },
32
+ tags: file.tags || [],
33
+ extensions: input.meta || {}
34
+ };
35
+ });
36
+ await this.eventPublisher.publish(new FileBeforeBatchCreateEvent({
37
+ files: fileInputs,
38
+ meta: input.meta
39
+ }));
40
+ const result = await this.repository.createBatch(fileInputs);
41
+ if (result.isFail()) return Result.fail(result.error);
42
+ await this.eventPublisher.publish(new FileAfterBatchCreateEvent({
43
+ files: result.value,
44
+ meta: input.meta
45
+ }));
46
+ return Result.ok(result.value);
62
47
  }
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
- }));
48
+ async validateInput(files) {
49
+ const settingsResult = await this.getSettings.execute();
50
+ if (settingsResult.isFail()) return Result.ok();
51
+ const settings = settingsResult.value;
52
+ if (settings) {
53
+ for (const input of files)if (input.size < settings.uploadMinFileSize || input.size > settings.uploadMaxFileSize) return Result.fail(new InvalidFileSizeError({
54
+ size: input.size,
55
+ minSize: settings.uploadMinFileSize,
56
+ maxSize: settings.uploadMaxFileSize
57
+ }));
73
58
  }
74
- }
59
+ return Result.ok();
75
60
  }
76
- return Result.ok();
77
- }
78
61
  }
79
- export const CreateFilesInBatchUseCase = UseCaseAbstraction.createImplementation({
80
- implementation: CreateFilesInBatchUseCaseImpl,
81
- dependencies: [FmPermissions, CreateFilesInBatchRepository, GetSettingsUseCase, EventPublisher]
62
+ const CreateFilesInBatchUseCase_CreateFilesInBatchUseCase = CreateFilesInBatchUseCase.createImplementation({
63
+ implementation: CreateFilesInBatchUseCaseImpl,
64
+ dependencies: [
65
+ FmPermissions,
66
+ CreateFilesInBatchRepository,
67
+ GetSettingsUseCase,
68
+ EventPublisher
69
+ ]
82
70
  });
71
+ export { CreateFilesInBatchUseCase_CreateFilesInBatchUseCase as CreateFilesInBatchUseCase };
83
72
 
84
73
  //# sourceMappingURL=CreateFilesInBatchUseCase.js.map
@@ -1 +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"],"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/index.js\";\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: [FmPermissions, CreateFilesInBatchRepository, GetSettingsUseCase, EventPublisher]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAE/CC,4BAA4B;AAEhC,SAASC,kBAAkB;AAC3B,SAASC,cAAc,QAAQ,mDAAmD;AAElF,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,CAAC7C,aAAa,EAAEP,4BAA4B,EAAEC,kBAAkB,EAAEC,cAAc;AAClG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js","sources":["../../../../src/features/file/CreateFilesInBatch/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/index.js\";\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: [FmPermissions, CreateFilesInBatchRepository, GetSettingsUseCase, EventPublisher]\n});\n"],"names":["CreateFilesInBatchUseCaseImpl","permissions","repository","getSettings","eventPublisher","input","hasPermission","Result","FileNotAuthorizedError","validationResult","fileInputs","file","id","FileBeforeBatchCreateEvent","result","FileAfterBatchCreateEvent","files","settingsResult","settings","InvalidFileSizeError","CreateFilesInBatchUseCase","UseCaseAbstraction","FmPermissions","CreateFilesInBatchRepository","GetSettingsUseCase","EventPublisher"],"mappings":";;;;;;;AAcA,MAAMA;IACF,YACYC,WAAoC,EACpCC,UAAkD,EAClDC,WAAyC,EACzCC,cAAwC,CAClD;aAJUH,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAa,QACTC,KAA8B,EACmB;QACjD,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,mBAAmB,MAAM,IAAI,CAAC,aAAa,CAACJ,MAAM,KAAK;QAC7D,IAAII,iBAAiB,MAAM,IACvB,OAAOF,OAAO,IAAI,CAACE,iBAAiB,KAAK;QAI7C,MAAMC,aAA0BL,MAAM,KAAK,CAAC,GAAG,CAACM,CAAAA;YAC5C,MAAM,CAACC,GAAG,GAAGD,KAAK,GAAG,CAAC,KAAK,CAAC;YAC5B,OAAO;gBACH,IAAIA,KAAK,EAAE,IAAIC;gBACf,KAAKD,KAAK,GAAG;gBACb,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;gBACf,UAAUA,KAAK,QAAQ,IAAI,CAAC;gBAC5B,UAAUA,KAAK,QAAQ,IAAI;oBAAE,UAAU;gBAAO;gBAC9C,MAAMA,KAAK,IAAI,IAAI,EAAE;gBACrB,YAAYN,MAAM,IAAI,IAAI,CAAC;YAC/B;QACJ;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIQ,2BAA2B;YAAE,OAAOH;YAAY,MAAML,MAAM,IAAI;QAAC;QAGzE,MAAMS,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAACJ;QAEjD,IAAII,OAAO,MAAM,IACb,OAAOP,OAAO,IAAI,CAACO,OAAO,KAAK;QAGnC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,0BAA0B;YAAE,OAAOD,OAAO,KAAK;YAAE,MAAMT,MAAM,IAAI;QAAC;QAG1E,OAAOE,OAAO,EAAE,CAACO,OAAO,KAAK;IACjC;IAEA,MAAc,cACVE,KAAwB,EACmB;QAC3C,MAAMC,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;QAErD,IAAIA,eAAe,MAAM,IACrB,OAAOV,OAAO,EAAE;QAGpB,MAAMW,WAAWD,eAAe,KAAK;QAErC,IAAIC,UACA;YAAA,KAAK,MAAMb,SAASW,MAEhB,IACIX,MAAM,IAAI,GAAGa,SAAS,iBAAiB,IACvCb,MAAM,IAAI,GAAGa,SAAS,iBAAiB,EAEvC,OAAOX,OAAO,IAAI,CACd,IAAIY,qBAAqB;gBACrB,MAAMd,MAAM,IAAI;gBAChB,SAASa,SAAS,iBAAiB;gBACnC,SAASA,SAAS,iBAAiB;YACvC;QAGZ;QAGJ,OAAOX,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMa,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBrB;IAChB,cAAc;QAACsB;QAAeC;QAA8BC;QAAoBC;KAAe;AACnG"}
@@ -1,17 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * CreateFilesInBatch repository interface
5
- */
6
-
7
- /** Persist multiple files created in batch. */
8
- export const CreateFilesInBatchRepository = createAbstraction("CreateFilesInBatchRepository");
9
-
10
- /**
11
- * CreateFilesInBatch use case interface
12
- */
13
-
14
- /** Upload and create multiple files in batch. */
15
- export const CreateFilesInBatchUseCase = createAbstraction("CreateFilesInBatchUseCase");
2
+ const CreateFilesInBatchRepository = createAbstraction("CreateFilesInBatchRepository");
3
+ const CreateFilesInBatchUseCase = createAbstraction("CreateFilesInBatchUseCase");
4
+ export { CreateFilesInBatchRepository, CreateFilesInBatchUseCase };
16
5
 
17
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +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\n/** Persist multiple files created in batch. */\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\n/** Upload and create multiple files in batch. */\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;AACA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFilesInBatch/abstractions.js","sources":["../../../../src/features/file/CreateFilesInBatch/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\n/** Persist multiple files created in batch. */\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\n/** Upload and create multiple files in batch. */\nexport const CreateFilesInBatchUseCase = createAbstraction<ICreateFilesInBatchUseCase>(\n \"CreateFilesInBatchUseCase\"\n);\n\nexport namespace CreateFilesInBatchUseCase {\n export type Interface = ICreateFilesInBatchUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["CreateFilesInBatchRepository","createAbstraction","CreateFilesInBatchUseCase"],"mappings":";AA6BO,MAAMA,+BAA+BC,kBACxC;AAwBG,MAAMC,4BAA4BD,kBACrC"}
@@ -1,32 +1,23 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
2
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
3
-
4
- // ============================================================================
5
- // FileBeforeBatchCreate Event
6
- // ============================================================================
7
-
8
- export class FileBeforeBatchCreateEvent extends DomainEvent {
9
- eventType = "FileManager/File/BeforeBatchCreate";
10
- getHandlerAbstraction() {
11
- return FileBeforeBatchCreateEventHandler;
12
- }
3
+ class FileBeforeBatchCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return FileBeforeBatchCreateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "FileManager/File/BeforeBatchCreate";
9
+ }
13
10
  }
14
-
15
- /** Hook into file lifecycle before files are created in batch. */
16
- export const FileBeforeBatchCreateEventHandler = createAbstraction("FileBeforeBatchCreateEventHandler");
17
-
18
- // ============================================================================
19
- // FileAfterBatchCreate Event
20
- // ============================================================================
21
-
22
- export class FileAfterBatchCreateEvent extends DomainEvent {
23
- eventType = "FileManager/File/AfterBatchCreate";
24
- getHandlerAbstraction() {
25
- return FileAfterBatchCreateEventHandler;
26
- }
11
+ const FileBeforeBatchCreateEventHandler = createAbstraction("FileBeforeBatchCreateEventHandler");
12
+ class FileAfterBatchCreateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return FileAfterBatchCreateEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "FileManager/File/AfterBatchCreate";
18
+ }
27
19
  }
28
-
29
- /** Hook into file lifecycle after files are created in batch. */
30
- export const FileAfterBatchCreateEventHandler = createAbstraction("FileAfterBatchCreateEventHandler");
20
+ const FileAfterBatchCreateEventHandler = createAbstraction("FileAfterBatchCreateEventHandler");
21
+ export { FileAfterBatchCreateEvent, FileAfterBatchCreateEventHandler, FileBeforeBatchCreateEvent, FileBeforeBatchCreateEventHandler };
31
22
 
32
23
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","FileBeforeBatchCreateEvent","eventType","getHandlerAbstraction","FileBeforeBatchCreateEventHandler","FileAfterBatchCreateEvent","FileAfterBatchCreateEventHandler"],"sources":["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, 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 FileBeforeBatchCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle before files are created in batch. */\nexport const FileBeforeBatchCreateEventHandler = createAbstraction<\n IEventHandler<FileBeforeBatchCreateEvent>\n>(\"FileBeforeBatchCreateEventHandler\");\n\nexport namespace FileBeforeBatchCreateEventHandler {\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 FileAfterBatchCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle after files are created in batch. */\nexport const FileAfterBatchCreateEventHandler = createAbstraction<\n IEventHandler<FileAfterBatchCreateEvent>\n>(\"FileAfterBatchCreateEventHandler\");\n\nexport namespace FileAfterBatchCreateEventHandler {\n export type Interface = IEventHandler<FileAfterBatchCreateEvent>;\n export type Event = FileAfterBatchCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,mDAAmD;;AAI/E;AACA;AACA;;AAOA,OAAO,MAAMC,0BAA0B,SAASD,WAAW,CAA+B;EACtFE,SAAS,GAAG,oCAAoC;EAEhDC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,iCAAiC;EAC5C;AACJ;;AAEA;AACA,OAAO,MAAMA,iCAAiC,GAAGL,iBAAiB,CAEhE,mCAAmC,CAAC;;AAOtC;AACA;AACA;;AAOA,OAAO,MAAMM,yBAAyB,SAASL,WAAW,CAA8B;EACpFE,SAAS,GAAG,mCAAmC;EAE/CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,gCAAgC;EAC3C;AACJ;;AAEA;AACA,OAAO,MAAMA,gCAAgC,GAAGP,iBAAiB,CAE/D,kCAAkC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFilesInBatch/events.js","sources":["../../../../src/features/file/CreateFilesInBatch/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, 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 FileBeforeBatchCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle before files are created in batch. */\nexport const FileBeforeBatchCreateEventHandler = createAbstraction<\n IEventHandler<FileBeforeBatchCreateEvent>\n>(\"FileBeforeBatchCreateEventHandler\");\n\nexport namespace FileBeforeBatchCreateEventHandler {\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 FileAfterBatchCreateEventHandler;\n }\n}\n\n/** Hook into file lifecycle after files are created in batch. */\nexport const FileAfterBatchCreateEventHandler = createAbstraction<\n IEventHandler<FileAfterBatchCreateEvent>\n>(\"FileAfterBatchCreateEventHandler\");\n\nexport namespace FileAfterBatchCreateEventHandler {\n export type Interface = IEventHandler<FileAfterBatchCreateEvent>;\n export type Event = FileAfterBatchCreateEvent;\n}\n"],"names":["FileBeforeBatchCreateEvent","DomainEvent","FileBeforeBatchCreateEventHandler","createAbstraction","FileAfterBatchCreateEvent","FileAfterBatchCreateEventHandler"],"mappings":";;AAcO,MAAMA,mCAAmCC;IAG5C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,oCAAoCC,kBAE/C;AAgBK,MAAMC,kCAAkCH;IAG3C,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,mCAAmCF,kBAE9C"}
@@ -1,12 +1,13 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { CreateFilesInBatchRepository } from "./CreateFilesInBatchRepository.js";
3
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
- }
4
+ const CreateFilesInBatchFeature = createFeature({
5
+ name: "FileManager/CreateFilesInBatch",
6
+ register (container) {
7
+ container.register(CreateFilesInBatchUseCase);
8
+ container.register(CreateFilesInBatchRepository).inSingletonScope();
9
+ }
10
10
  });
11
+ export { CreateFilesInBatchFeature };
11
12
 
12
13
  //# sourceMappingURL=feature.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"features/file/CreateFilesInBatch/feature.js","sources":["../../../../src/features/file/CreateFilesInBatch/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"],"names":["CreateFilesInBatchFeature","createFeature","container","CreateFilesInBatchUseCase","CreateFilesInBatchRepository"],"mappings":";;;AAIO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,8BAA8B,gBAAgB;IACrE;AACJ"}
@@ -1,3 +1 @@
1
1
  export { CreateFilesInBatchUseCase } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
3
3
  import { DeleteFileRepository as RepositoryAbstraction } from "./abstractions.js";
4
- import { FileModel } from "../../../domain/file/abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import { File } from "../../../domain/file/types.js";
6
6
  declare class DeleteFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
7
  private deleteEntry;
8
- private fileModel;
9
- constructor(deleteEntry: DeleteEntryUseCase.Interface, fileModel: FileModel.Interface);
8
+ private fileModelProvider;
9
+ constructor(deleteEntry: DeleteEntryUseCase.Interface, fileModelProvider: FileModelProvider.Interface);
10
10
  delete(file: File): Promise<Result<void, RepositoryAbstraction.Error>>;
11
11
  }
12
12
  export declare const DeleteFileRepository: typeof DeleteFileRepositoryImpl & {
@@ -1,30 +1,32 @@
1
1
  import { Result } from "@webiny/feature/api";
2
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";
3
+ import { DeleteFileRepository } from "./abstractions.js";
4
+ import { FileModelProvider } from "../../../domain/file/abstractions.js";
5
5
  import { FileNotFoundError, FilePersistenceError } from "../../../domain/file/errors.js";
6
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));
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
21
  }
22
- return Result.ok();
23
- }
24
22
  }
25
- export const DeleteFileRepository = RepositoryAbstraction.createImplementation({
26
- implementation: DeleteFileRepositoryImpl,
27
- dependencies: [DeleteEntryUseCase, FileModel]
23
+ const DeleteFileRepository_DeleteFileRepository = DeleteFileRepository.createImplementation({
24
+ implementation: DeleteFileRepositoryImpl,
25
+ dependencies: [
26
+ DeleteEntryUseCase,
27
+ FileModelProvider
28
+ ]
28
29
  });
30
+ export { DeleteFileRepository_DeleteFileRepository as DeleteFileRepository };
29
31
 
30
32
  //# sourceMappingURL=DeleteFileRepository.js.map
@@ -1 +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":[]}
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"}