@webiny/api-file-manager 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9

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 (377) hide show
  1. package/contants.js +2 -1
  2. package/contants.js.map +1 -1
  3. package/delivery/AssetDelivery/Asset.js +50 -56
  4. package/delivery/AssetDelivery/Asset.js.map +1 -1
  5. package/delivery/AssetDelivery/AssetRequest.js +20 -19
  6. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  7. package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -27
  8. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  9. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -5
  10. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  11. package/delivery/index.d.ts +3 -12
  12. package/delivery/index.js +2 -8
  13. package/delivery/setupAssetDelivery.d.ts +1 -2
  14. package/delivery/setupAssetDelivery.js +60 -105
  15. package/delivery/setupAssetDelivery.js.map +1 -1
  16. package/domain/file/abstractions.js +2 -5
  17. package/domain/file/abstractions.js.map +1 -1
  18. package/domain/file/errors.js +67 -76
  19. package/domain/file/errors.js.map +1 -1
  20. package/domain/file/file.model.js +57 -45
  21. package/domain/file/file.model.js.map +1 -1
  22. package/domain/file/types.d.ts +2 -0
  23. package/domain/file/types.js +0 -3
  24. package/domain/identity/Identity.js +9 -8
  25. package/domain/identity/Identity.js.map +1 -1
  26. package/domain/permissionsSchema.d.ts +16 -0
  27. package/domain/permissionsSchema.js +30 -0
  28. package/domain/permissionsSchema.js.map +1 -0
  29. package/domain/settings/constants.js +2 -1
  30. package/domain/settings/constants.js.map +1 -1
  31. package/domain/settings/errors.js +22 -24
  32. package/domain/settings/errors.js.map +1 -1
  33. package/domain/settings/types.js +0 -3
  34. package/domain/settings/validation.d.ts +4 -12
  35. package/domain/settings/validation.js +18 -27
  36. package/domain/settings/validation.js.map +1 -1
  37. package/exports/api/file-manager/file.d.ts +12 -0
  38. package/exports/api/file-manager/file.js +12 -0
  39. package/exports/api/file-manager/permissions.d.ts +1 -0
  40. package/exports/api/file-manager/permissions.js +1 -0
  41. package/exports/api/file-manager/settings.d.ts +3 -0
  42. package/exports/api/file-manager/settings.js +3 -0
  43. package/features/FileManagerFeature.d.ts +4 -1
  44. package/features/FileManagerFeature.js +17 -14
  45. package/features/FileManagerFeature.js.map +1 -1
  46. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
  47. package/features/assetDelivery/FilesAssetRequestResolver.js +29 -0
  48. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  49. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  50. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  51. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  52. package/features/assetDelivery/NullAssetReply.js +14 -0
  53. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  54. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  55. package/features/assetDelivery/NullAssetResolver.js +13 -0
  56. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  57. package/features/assetDelivery/abstractions.d.ts +54 -0
  58. package/features/assetDelivery/abstractions.js +11 -0
  59. package/features/assetDelivery/abstractions.js.map +1 -0
  60. package/features/assetDelivery/feature.d.ts +4 -0
  61. package/features/assetDelivery/feature.js +29 -0
  62. package/features/assetDelivery/feature.js.map +1 -0
  63. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  64. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  65. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  66. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  67. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  68. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  69. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  70. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  71. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  72. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  73. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  74. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  75. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +11 -0
  76. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -0
  77. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  78. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  79. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +65 -0
  80. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  81. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  82. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  83. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  84. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +9 -0
  85. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
  86. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  87. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
  88. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
  89. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  90. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +9 -0
  91. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +13 -0
  92. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
  93. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +11 -0
  94. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +23 -0
  95. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  96. package/features/file/CreateFile/CreateFileRepository.js +20 -18
  97. package/features/file/CreateFile/CreateFileRepository.js.map +1 -1
  98. package/features/file/CreateFile/CreateFileUseCase.d.ts +4 -4
  99. package/features/file/CreateFile/CreateFileUseCase.js +70 -78
  100. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -1
  101. package/features/file/CreateFile/abstractions.d.ts +3 -0
  102. package/features/file/CreateFile/abstractions.js +3 -12
  103. package/features/file/CreateFile/abstractions.js.map +1 -1
  104. package/features/file/CreateFile/events.d.ts +8 -6
  105. package/features/file/CreateFile/events.js +18 -23
  106. package/features/file/CreateFile/events.js.map +1 -1
  107. package/features/file/CreateFile/feature.d.ts +4 -1
  108. package/features/file/CreateFile/feature.js +7 -6
  109. package/features/file/CreateFile/feature.js.map +1 -1
  110. package/features/file/CreateFile/index.d.ts +1 -1
  111. package/features/file/CreateFile/index.js +1 -3
  112. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +15 -17
  113. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -1
  114. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +4 -4
  115. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +61 -75
  116. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -1
  117. package/features/file/CreateFilesInBatch/abstractions.d.ts +2 -0
  118. package/features/file/CreateFilesInBatch/abstractions.js +3 -12
  119. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -1
  120. package/features/file/CreateFilesInBatch/events.d.ts +8 -6
  121. package/features/file/CreateFilesInBatch/events.js +18 -23
  122. package/features/file/CreateFilesInBatch/events.js.map +1 -1
  123. package/features/file/CreateFilesInBatch/feature.d.ts +4 -1
  124. package/features/file/CreateFilesInBatch/feature.js +7 -6
  125. package/features/file/CreateFilesInBatch/feature.js.map +1 -1
  126. package/features/file/CreateFilesInBatch/index.js +0 -2
  127. package/features/file/DeleteFile/DeleteFileRepository.js +21 -20
  128. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -1
  129. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +4 -4
  130. package/features/file/DeleteFile/DeleteFileUseCase.js +33 -38
  131. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -1
  132. package/features/file/DeleteFile/abstractions.d.ts +2 -0
  133. package/features/file/DeleteFile/abstractions.js +3 -12
  134. package/features/file/DeleteFile/abstractions.js.map +1 -1
  135. package/features/file/DeleteFile/events.d.ts +8 -6
  136. package/features/file/DeleteFile/events.js +18 -23
  137. package/features/file/DeleteFile/events.js.map +1 -1
  138. package/features/file/DeleteFile/feature.d.ts +4 -1
  139. package/features/file/DeleteFile/feature.js +7 -6
  140. package/features/file/DeleteFile/feature.js.map +1 -1
  141. package/features/file/DeleteFile/index.d.ts +1 -1
  142. package/features/file/DeleteFile/index.js +1 -3
  143. package/features/file/FileUrlGenerator/abstractions.d.ts +1 -0
  144. package/features/file/FileUrlGenerator/abstractions.js +2 -1
  145. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  146. package/features/file/GetFile/GetFileRepository.js +22 -22
  147. package/features/file/GetFile/GetFileRepository.js.map +1 -1
  148. package/features/file/GetFile/GetFileUseCase.d.ts +3 -3
  149. package/features/file/GetFile/GetFileUseCase.js +20 -30
  150. package/features/file/GetFile/GetFileUseCase.js.map +1 -1
  151. package/features/file/GetFile/abstractions.d.ts +2 -0
  152. package/features/file/GetFile/abstractions.js +3 -12
  153. package/features/file/GetFile/abstractions.js.map +1 -1
  154. package/features/file/GetFile/feature.d.ts +4 -1
  155. package/features/file/GetFile/feature.js +7 -6
  156. package/features/file/GetFile/feature.js.map +1 -1
  157. package/features/file/GetFile/index.js +0 -2
  158. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  159. package/features/file/GetFileContentsById/abstractions.js +5 -0
  160. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  161. package/features/file/GetFileContentsById/index.d.ts +1 -0
  162. package/features/file/GetFileContentsById/index.js +1 -0
  163. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  164. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  165. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  166. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  167. package/features/file/GetFileContentsByKey/index.js +1 -0
  168. package/features/file/ListFiles/ListFilesRepository.d.ts +3 -1
  169. package/features/file/ListFiles/ListFilesRepository.js +42 -34
  170. package/features/file/ListFiles/ListFilesRepository.js.map +1 -1
  171. package/features/file/ListFiles/ListFilesUseCase.d.ts +4 -4
  172. package/features/file/ListFiles/ListFilesUseCase.js +35 -39
  173. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -1
  174. package/features/file/ListFiles/abstractions.d.ts +2 -0
  175. package/features/file/ListFiles/abstractions.js +3 -12
  176. package/features/file/ListFiles/abstractions.js.map +1 -1
  177. package/features/file/ListFiles/feature.d.ts +4 -1
  178. package/features/file/ListFiles/feature.js +7 -6
  179. package/features/file/ListFiles/feature.js.map +1 -1
  180. package/features/file/ListFiles/index.js +0 -2
  181. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +27 -0
  182. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +42 -0
  183. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
  184. package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
  185. package/features/file/ListImagesByTagTool/feature.js +11 -0
  186. package/features/file/ListImagesByTagTool/feature.js.map +1 -0
  187. package/features/file/ListTags/ListTagsRepository.js +31 -36
  188. package/features/file/ListTags/ListTagsRepository.js.map +1 -1
  189. package/features/file/ListTags/ListTagsUseCase.d.ts +3 -3
  190. package/features/file/ListTags/ListTagsUseCase.js +22 -23
  191. package/features/file/ListTags/ListTagsUseCase.js.map +1 -1
  192. package/features/file/ListTags/abstractions.d.ts +2 -0
  193. package/features/file/ListTags/abstractions.js +3 -12
  194. package/features/file/ListTags/abstractions.js.map +1 -1
  195. package/features/file/ListTags/feature.d.ts +4 -1
  196. package/features/file/ListTags/feature.js +7 -6
  197. package/features/file/ListTags/feature.js.map +1 -1
  198. package/features/file/ListTags/index.js +0 -2
  199. package/features/file/UpdateFile/UpdateFileRepository.js +26 -28
  200. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -1
  201. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +5 -5
  202. package/features/file/UpdateFile/UpdateFileUseCase.js +60 -70
  203. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -1
  204. package/features/file/UpdateFile/abstractions.d.ts +3 -0
  205. package/features/file/UpdateFile/abstractions.js +3 -12
  206. package/features/file/UpdateFile/abstractions.js.map +1 -1
  207. package/features/file/UpdateFile/events.d.ts +8 -6
  208. package/features/file/UpdateFile/events.js +18 -23
  209. package/features/file/UpdateFile/events.js.map +1 -1
  210. package/features/file/UpdateFile/feature.d.ts +4 -1
  211. package/features/file/UpdateFile/feature.js +7 -6
  212. package/features/file/UpdateFile/feature.js.map +1 -1
  213. package/features/file/UpdateFile/index.d.ts +1 -1
  214. package/features/file/UpdateFile/index.js +1 -3
  215. package/features/file/shared/EntryToFileMapper.js +25 -23
  216. package/features/file/shared/EntryToFileMapper.js.map +1 -1
  217. package/features/file/shared/FileInputToEntryInputMapper.js +29 -27
  218. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -1
  219. package/features/file/shared/FileToEntryMapper.js +28 -26
  220. package/features/file/shared/FileToEntryMapper.js.map +1 -1
  221. package/features/permissions/abstractions.d.ts +21 -0
  222. package/features/permissions/abstractions.js +6 -0
  223. package/features/permissions/abstractions.js.map +1 -0
  224. package/features/permissions/feature.d.ts +4 -0
  225. package/features/permissions/feature.js +7 -0
  226. package/features/permissions/feature.js.map +1 -0
  227. package/features/settings/GetSettings/GetSettingsUseCase.js +19 -19
  228. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -1
  229. package/features/settings/GetSettings/abstractions.d.ts +1 -0
  230. package/features/settings/GetSettings/abstractions.js +2 -6
  231. package/features/settings/GetSettings/abstractions.js.map +1 -1
  232. package/features/settings/GetSettings/feature.d.ts +4 -1
  233. package/features/settings/GetSettings/feature.js +6 -5
  234. package/features/settings/GetSettings/feature.js.map +1 -1
  235. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +1 -1
  236. package/features/settings/SettingsInstaller/SettingsInstaller.js +26 -25
  237. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  238. package/features/settings/SettingsInstaller/feature.d.ts +4 -1
  239. package/features/settings/SettingsInstaller/feature.js +6 -5
  240. package/features/settings/SettingsInstaller/feature.js.map +1 -1
  241. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +1 -1
  242. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +42 -49
  243. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -1
  244. package/features/settings/UpdateSettings/abstractions.d.ts +1 -0
  245. package/features/settings/UpdateSettings/abstractions.js +2 -6
  246. package/features/settings/UpdateSettings/abstractions.js.map +1 -1
  247. package/features/settings/UpdateSettings/events.d.ts +8 -6
  248. package/features/settings/UpdateSettings/events.js +18 -23
  249. package/features/settings/UpdateSettings/events.js.map +1 -1
  250. package/features/settings/UpdateSettings/feature.d.ts +4 -1
  251. package/features/settings/UpdateSettings/feature.js +6 -5
  252. package/features/settings/UpdateSettings/feature.js.map +1 -1
  253. package/features/settings/UpdateSettings/index.d.ts +1 -1
  254. package/features/settings/UpdateSettings/index.js +1 -3
  255. package/features/shared/abstractions.d.ts +1 -13
  256. package/features/shared/abstractions.js +1 -5
  257. package/graphql/baseSchema.js +30 -33
  258. package/graphql/baseSchema.js.map +1 -1
  259. package/graphql/createFilesTypeDefs.d.ts +3 -2
  260. package/graphql/createFilesTypeDefs.js +61 -66
  261. package/graphql/createFilesTypeDefs.js.map +1 -1
  262. package/graphql/filesSchema.js +79 -99
  263. package/graphql/filesSchema.js.map +1 -1
  264. package/graphql/getFileByUrl.js +45 -53
  265. package/graphql/getFileByUrl.js.map +1 -1
  266. package/graphql/index.js +37 -43
  267. package/graphql/index.js.map +1 -1
  268. package/graphql/utils.js +9 -14
  269. package/graphql/utils.js.map +1 -1
  270. package/index.d.ts +2 -2
  271. package/index.js +31 -39
  272. package/index.js.map +1 -1
  273. package/modelModifier/CmsModelModifier.js +40 -43
  274. package/modelModifier/CmsModelModifier.js.map +1 -1
  275. package/package.json +28 -23
  276. package/types.d.ts +1 -3
  277. package/types.js +1 -3
  278. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +0 -65
  279. package/delivery/AssetDelivery/AssetDeliveryConfig.js +0 -94
  280. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +0 -1
  281. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +0 -6
  282. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +0 -30
  283. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +0 -1
  284. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +0 -4
  285. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +0 -8
  286. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +0 -1
  287. package/delivery/AssetDelivery/NullAssetReply.js +0 -13
  288. package/delivery/AssetDelivery/NullAssetReply.js.map +0 -1
  289. package/delivery/AssetDelivery/NullAssetResolver.d.ts +0 -5
  290. package/delivery/AssetDelivery/NullAssetResolver.js +0 -7
  291. package/delivery/AssetDelivery/NullAssetResolver.js.map +0 -1
  292. package/delivery/AssetDelivery/NullRequestResolver.d.ts +0 -4
  293. package/delivery/AssetDelivery/NullRequestResolver.js +0 -7
  294. package/delivery/AssetDelivery/NullRequestResolver.js.map +0 -1
  295. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +0 -8
  296. package/delivery/AssetDelivery/SetCacheControlHeaders.js +0 -18
  297. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +0 -1
  298. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +0 -18
  299. package/delivery/AssetDelivery/SetResponseHeaders.js +0 -18
  300. package/delivery/AssetDelivery/SetResponseHeaders.js.map +0 -1
  301. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +0 -4
  302. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -3
  303. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
  304. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +0 -4
  305. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -3
  306. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
  307. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +0 -4
  308. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -3
  309. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
  310. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +0 -5
  311. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -3
  312. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
  313. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +0 -4
  314. package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -3
  315. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
  316. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +0 -4
  317. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -3
  318. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
  319. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +0 -4
  320. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -3
  321. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
  322. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +0 -4
  323. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +0 -19
  324. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +0 -1
  325. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +0 -4
  326. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +0 -8
  327. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +0 -1
  328. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +0 -8
  329. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +0 -20
  330. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +0 -1
  331. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +0 -6
  332. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +0 -21
  333. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +0 -1
  334. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +0 -8
  335. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +0 -30
  336. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +0 -1
  337. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +0 -13
  338. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +0 -63
  339. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +0 -1
  340. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +0 -6
  341. package/delivery/AssetDelivery/privateFiles/PublicCache.js +0 -21
  342. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +0 -1
  343. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +0 -7
  344. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +0 -20
  345. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +0 -1
  346. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +0 -7
  347. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +0 -20
  348. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +0 -1
  349. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +0 -4
  350. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +0 -7
  351. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +0 -1
  352. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -4
  353. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -7
  354. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  355. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +0 -6
  356. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +0 -19
  357. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +0 -1
  358. package/delivery/index.js.map +0 -1
  359. package/domain/file/types.js.map +0 -1
  360. package/domain/settings/types.js.map +0 -1
  361. package/features/file/CreateFile/index.js.map +0 -1
  362. package/features/file/CreateFilesInBatch/index.js.map +0 -1
  363. package/features/file/DeleteFile/index.js.map +0 -1
  364. package/features/file/GetFile/index.js.map +0 -1
  365. package/features/file/ListFiles/index.js.map +0 -1
  366. package/features/file/ListTags/index.js.map +0 -1
  367. package/features/file/UpdateFile/index.js.map +0 -1
  368. package/features/settings/UpdateSettings/index.js.map +0 -1
  369. package/features/shared/abstractions.js.map +0 -1
  370. package/permissions/FilesPermissions.d.ts +0 -4
  371. package/permissions/FilesPermissions.js +0 -4
  372. package/permissions/FilesPermissions.js.map +0 -1
  373. package/permissions/SettingsPermissions.d.ts +0 -4
  374. package/permissions/SettingsPermissions.js +0 -4
  375. package/permissions/SettingsPermissions.js.map +0 -1
  376. package/types.js.map +0 -1
  377. /package/{delivery/AssetDelivery → features/assetDelivery}/NullAssetReply.d.ts +0 -0
@@ -1,15 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * CreateFile repository interface
5
- */
6
-
7
- export const CreateFileRepository = createAbstraction("CreateFileRepository");
8
-
9
- /**
10
- * CreateFile use case interface
11
- */
12
-
13
- export const CreateFileUseCase = createAbstraction("CreateFileUseCase");
2
+ const CreateFileRepository = createAbstraction("CreateFileRepository");
3
+ const CreateFileUseCase = createAbstraction("CreateFileUseCase");
4
+ export { CreateFileRepository, CreateFileUseCase };
14
5
 
15
6
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreateFileRepository","CreateFileUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { CreatedBy, File, FileInput } from \"~/domain/file/types.js\";\nimport {\n type FilePersistenceError,\n type InvalidFileSizeError,\n type FileAlreadyExistsError,\n FileNotAuthorizedError\n} from \"~/domain/file/errors.js\";\n\nexport interface CreateFileInput {\n id?: string;\n key: string;\n size: number;\n type: string;\n name: string;\n metadata?: Record<string, any>;\n extensions?: Record<string, any>;\n tags?: string[];\n location?: { folderId: string };\n // System attributes\n createdOn?: string;\n createdBy?: CreatedBy;\n modifiedOn?: string;\n modifiedBy?: CreatedBy;\n savedOn?: string;\n savedBy?: CreatedBy;\n}\n\n/**\n * CreateFile repository interface\n */\nexport interface ICreateFileRepository {\n execute(data: FileInput): Promise<Result<File, RepositoryError>>;\n}\n\nexport interface ICreateFileRepositoryErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = ICreateFileRepositoryErrors[keyof ICreateFileRepositoryErrors];\n\nexport const CreateFileRepository =\n createAbstraction<ICreateFileRepository>(\"CreateFileRepository\");\n\nexport namespace CreateFileRepository {\n export type Interface = ICreateFileRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFile use case interface\n */\nexport interface ICreateFileUseCase {\n execute(\n input: CreateFileInput,\n meta?: Record<string, any>\n ): Promise<Result<File, UseCaseError>>;\n}\n\nexport interface ICreateFileUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n invalidSize: InvalidFileSizeError;\n alreadyExists: FileAlreadyExistsError;\n}\n\ntype UseCaseError = ICreateFileUseCaseErrors[keyof ICreateFileUseCaseErrors];\n\nexport const CreateFileUseCase = createAbstraction<ICreateFileUseCase>(\"CreateFileUseCase\");\n\nexport namespace CreateFileUseCase {\n export type Interface = ICreateFileUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AA6BvD;AACA;AACA;;AAYA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAOpE;AACA;AACA;;AAiBA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/file/CreateFile/abstractions.js","sources":["../../../../src/features/file/CreateFile/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { CreatedBy, File, FileInput } from \"~/domain/file/types.js\";\nimport {\n type FilePersistenceError,\n type InvalidFileSizeError,\n type FileAlreadyExistsError,\n FileNotAuthorizedError\n} from \"~/domain/file/errors.js\";\n\nexport interface CreateFileInput {\n id?: string;\n key: string;\n size: number;\n type: string;\n name: string;\n metadata?: Record<string, any>;\n extensions?: Record<string, any>;\n tags?: string[];\n description?: string;\n location?: { folderId: string };\n // System attributes\n createdOn?: string;\n createdBy?: CreatedBy;\n modifiedOn?: string;\n modifiedBy?: CreatedBy;\n savedOn?: string;\n savedBy?: CreatedBy;\n}\n\n/**\n * CreateFile repository interface\n */\nexport interface ICreateFileRepository {\n execute(data: FileInput): Promise<Result<File, RepositoryError>>;\n}\n\nexport interface ICreateFileRepositoryErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype RepositoryError = ICreateFileRepositoryErrors[keyof ICreateFileRepositoryErrors];\n\n/** Persist a newly created file. */\nexport const CreateFileRepository =\n createAbstraction<ICreateFileRepository>(\"CreateFileRepository\");\n\nexport namespace CreateFileRepository {\n export type Interface = ICreateFileRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFile use case interface\n */\nexport interface ICreateFileUseCase {\n execute(\n input: CreateFileInput,\n meta?: Record<string, any>\n ): Promise<Result<File, UseCaseError>>;\n}\n\nexport interface ICreateFileUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n invalidSize: InvalidFileSizeError;\n alreadyExists: FileAlreadyExistsError;\n}\n\ntype UseCaseError = ICreateFileUseCaseErrors[keyof ICreateFileUseCaseErrors];\n\n/** Upload and create a new file. */\nexport const CreateFileUseCase = createAbstraction<ICreateFileUseCase>(\"CreateFileUseCase\");\n\nexport namespace CreateFileUseCase {\n export type Interface = ICreateFileUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["CreateFileRepository","createAbstraction","CreateFileUseCase"],"mappings":";AA6CO,MAAMA,uBACTC,kBAAyC;AA2BtC,MAAMC,oBAAoBD,kBAAsC"}
@@ -1,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { File, FileInput } from "../../../domain/file/types.js";
4
4
  export interface FileBeforeCreatePayload {
5
5
  file: FileInput;
@@ -9,8 +9,9 @@ export declare class FileBeforeCreateEvent extends DomainEvent<FileBeforeCreateP
9
9
  eventType: "FileManager/File/BeforeCreate";
10
10
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeCreateEvent>>;
11
11
  }
12
- export declare const FileBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeCreateEvent>>;
13
- export declare namespace FileBeforeCreateHandler {
12
+ /** Hook into file lifecycle before a file is created. */
13
+ export declare const FileBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeCreateEvent>>;
14
+ export declare namespace FileBeforeCreateEventHandler {
14
15
  type Interface = IEventHandler<FileBeforeCreateEvent>;
15
16
  type Event = FileBeforeCreateEvent;
16
17
  }
@@ -22,8 +23,9 @@ export declare class FileAfterCreateEvent extends DomainEvent<FileAfterCreatePay
22
23
  eventType: "FileManager/File/AfterCreate";
23
24
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterCreateEvent>>;
24
25
  }
25
- export declare const FileAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterCreateEvent>>;
26
- export declare namespace FileAfterCreateHandler {
26
+ /** Hook into file lifecycle after a file is created. */
27
+ export declare const FileAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterCreateEvent>>;
28
+ export declare namespace FileAfterCreateEventHandler {
27
29
  type Interface = IEventHandler<FileAfterCreateEvent>;
28
30
  type Event = FileAfterCreateEvent;
29
31
  }
@@ -1,28 +1,23 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
-
4
- // ============================================================================
5
- // FileBeforeCreate Event
6
- // ============================================================================
7
-
8
- export class FileBeforeCreateEvent extends DomainEvent {
9
- eventType = "FileManager/File/BeforeCreate";
10
- getHandlerAbstraction() {
11
- return FileBeforeCreateHandler;
12
- }
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
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
- export const FileBeforeCreateHandler = createAbstraction("FileBeforeCreateHandler");
15
-
16
- // ============================================================================
17
- // FileAfterCreate Event
18
- // ============================================================================
19
-
20
- export class FileAfterCreateEvent extends DomainEvent {
21
- eventType = "FileManager/File/AfterCreate";
22
- getHandlerAbstraction() {
23
- return FileAfterCreateHandler;
24
- }
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
+ }
25
19
  }
26
- export const FileAfterCreateHandler = createAbstraction("FileAfterCreateHandler");
20
+ const FileAfterCreateEventHandler = createAbstraction("FileAfterCreateEventHandler");
21
+ export { FileAfterCreateEvent, FileAfterCreateEventHandler, FileBeforeCreateEvent, FileBeforeCreateEventHandler };
27
22
 
28
23
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","FileBeforeCreateEvent","eventType","getHandlerAbstraction","FileBeforeCreateHandler","FileAfterCreateEvent","FileAfterCreateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\n\n// ============================================================================\n// 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 FileBeforeCreateHandler;\n }\n}\n\nexport const FileBeforeCreateHandler =\n createAbstraction<IEventHandler<FileBeforeCreateEvent>>(\"FileBeforeCreateHandler\");\n\nexport namespace FileBeforeCreateHandler {\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 FileAfterCreateHandler;\n }\n}\n\nexport const FileAfterCreateHandler =\n createAbstraction<IEventHandler<FileAfterCreateEvent>>(\"FileAfterCreateHandler\");\n\nexport namespace FileAfterCreateHandler {\n export type Interface = IEventHandler<FileAfterCreateEvent>;\n export type Event = FileAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,0CAA0C;;AAItE;AACA;AACA;;AAOA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,+BAA+B;EAE3CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,uBAAuB;EAClC;AACJ;AAEA,OAAO,MAAMA,uBAAuB,GAChCL,iBAAiB,CAAuC,yBAAyB,CAAC;;AAOtF;AACA;AACA;;AAOA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,8BAA8B;EAE1CC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,sBAAsB;EACjC;AACJ;AAEA,OAAO,MAAMA,sBAAsB,GAC/BP,iBAAiB,CAAsC,wBAAwB,CAAC","ignoreList":[]}
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 +1,4 @@
1
- export declare const CreateFileFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreateFileFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -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,2 +1,2 @@
1
1
  export { CreateFileUseCase } from "./abstractions.js";
2
- export { FileAfterCreateHandler, FileBeforeCreateHandler } from "./events.js";
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "./events.js";
@@ -1,4 +1,2 @@
1
1
  export { CreateFileUseCase } from "./abstractions.js";
2
- export { FileAfterCreateHandler, FileBeforeCreateHandler } from "./events.js";
3
-
4
- //# sourceMappingURL=index.js.map
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "./events.js";
@@ -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,15 +1,15 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { CreateFilesInBatchUseCase as UseCaseAbstraction, CreateFilesInBatchInput, CreateFilesInBatchRepository } from "./abstractions.js";
3
3
  import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
4
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
5
  import type { File } from "../../../domain/file/types.js";
6
- import { FilePermissions } from "../../../features/shared/abstractions.js";
6
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
7
7
  declare class CreateFilesInBatchUseCaseImpl implements UseCaseAbstraction.Interface {
8
- private filePermissions;
8
+ private permissions;
9
9
  private repository;
10
10
  private getSettings;
11
11
  private eventPublisher;
12
- constructor(filePermissions: FilePermissions.Interface, repository: CreateFilesInBatchRepository.Interface, getSettings: GetSettingsUseCase.Interface, eventPublisher: EventPublisher.Interface);
12
+ constructor(permissions: FmPermissions.Interface, repository: CreateFilesInBatchRepository.Interface, getSettings: GetSettingsUseCase.Interface, eventPublisher: EventPublisher.Interface);
13
13
  execute(input: CreateFilesInBatchInput): Promise<Result<File[], UseCaseAbstraction.Error>>;
14
14
  private validateInput;
15
15
  }
@@ -1,87 +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
- import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
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";
7
- import { FilePermissions } from "../../shared/abstractions.js";
6
+ import { FileAfterBatchCreateEvent, FileBeforeBatchCreateEvent } from "./events.js";
7
+ import { FmPermissions } from "../../shared/abstractions.js";
8
8
  class CreateFilesInBatchUseCaseImpl {
9
- constructor(filePermissions, repository, getSettings, eventPublisher) {
10
- this.filePermissions = filePermissions;
11
- this.repository = repository;
12
- this.getSettings = getSettings;
13
- this.eventPublisher = eventPublisher;
14
- }
15
- async execute(input) {
16
- // Check write permission
17
- const hasPermission = await this.filePermissions.ensure({
18
- rwd: "w"
19
- });
20
- if (!hasPermission) {
21
- 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;
22
14
  }
23
-
24
- // Validate all files
25
- const validationResult = await this.validateInput(input.files);
26
- if (validationResult.isFail()) {
27
- return Result.fail(validationResult.error);
28
- }
29
-
30
- // Prepare file inputs with defaults
31
- const fileInputs = input.files.map(file => {
32
- const [id] = file.key.split("/");
33
- return {
34
- id: file.id || id,
35
- key: file.key,
36
- name: file.name,
37
- size: file.size,
38
- type: file.type,
39
- metadata: file.metadata || {},
40
- location: file.location || {
41
- folderId: "root"
42
- },
43
- tags: file.tags || [],
44
- extensions: input.meta || {}
45
- };
46
- });
47
- await this.eventPublisher.publish(new FileBeforeBatchCreateEvent({
48
- files: fileInputs,
49
- meta: input.meta
50
- }));
51
- const result = await this.repository.createBatch(fileInputs);
52
- if (result.isFail()) {
53
- return Result.fail(result.error);
54
- }
55
- await this.eventPublisher.publish(new FileAfterBatchCreateEvent({
56
- files: result.value,
57
- meta: input.meta
58
- }));
59
- return Result.ok(result.value);
60
- }
61
- async validateInput(files) {
62
- const settingsResult = await this.getSettings.execute();
63
- if (settingsResult.isFail()) {
64
- 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);
65
47
  }
66
- const settings = settingsResult.value;
67
- if (settings) {
68
- for (const input of files) {
69
- // Validate file size
70
- if (input.size < settings.uploadMinFileSize || input.size > settings.uploadMaxFileSize) {
71
- return Result.fail(new InvalidFileSizeError({
72
- size: input.size,
73
- minSize: settings.uploadMinFileSize,
74
- maxSize: settings.uploadMaxFileSize
75
- }));
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
+ }));
76
58
  }
77
- }
59
+ return Result.ok();
78
60
  }
79
- return Result.ok();
80
- }
81
61
  }
82
- export const CreateFilesInBatchUseCase = UseCaseAbstraction.createImplementation({
83
- implementation: CreateFilesInBatchUseCaseImpl,
84
- dependencies: [FilePermissions, CreateFilesInBatchRepository, GetSettingsUseCase, EventPublisher]
62
+ const CreateFilesInBatchUseCase_CreateFilesInBatchUseCase = CreateFilesInBatchUseCase.createImplementation({
63
+ implementation: CreateFilesInBatchUseCaseImpl,
64
+ dependencies: [
65
+ FmPermissions,
66
+ CreateFilesInBatchRepository,
67
+ GetSettingsUseCase,
68
+ EventPublisher
69
+ ]
85
70
  });
71
+ export { CreateFilesInBatchUseCase_CreateFilesInBatchUseCase as CreateFilesInBatchUseCase };
86
72
 
87
73
  //# sourceMappingURL=CreateFilesInBatchUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","CreateFilesInBatchUseCase","UseCaseAbstraction","CreateFilesInBatchRepository","GetSettingsUseCase","EventPublisher","FileNotAuthorizedError","InvalidFileSizeError","FileBeforeBatchCreateEvent","FileAfterBatchCreateEvent","FilePermissions","CreateFilesInBatchUseCaseImpl","constructor","filePermissions","repository","getSettings","eventPublisher","execute","input","hasPermission","ensure","rwd","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\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError, InvalidFileSizeError } from \"~/domain/file/errors.js\";\nimport { FileBeforeBatchCreateEvent, FileAfterBatchCreateEvent } from \"./events.js\";\nimport { FilePermissions } from \"~/features/shared/abstractions.js\";\nimport { CreateFileInput } from \"~/features/file/CreateFile/abstractions.js\";\n\nclass CreateFilesInBatchUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private filePermissions: FilePermissions.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 // Check write permission\n const hasPermission = await this.filePermissions.ensure({ rwd: \"w\" });\n if (!hasPermission) {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n // Validate all files\n const validationResult = await this.validateInput(input.files);\n if (validationResult.isFail()) {\n return Result.fail(validationResult.error);\n }\n\n // Prepare file inputs with defaults\n const fileInputs: FileInput[] = input.files.map(file => {\n const [id] = file.key.split(\"/\");\n return {\n id: file.id || id,\n key: file.key,\n name: file.name,\n size: file.size,\n type: file.type,\n metadata: file.metadata || {},\n location: file.location || { folderId: \"root\" },\n tags: file.tags || [],\n extensions: input.meta || {}\n };\n });\n\n await this.eventPublisher.publish(\n new FileBeforeBatchCreateEvent({ files: fileInputs, meta: input.meta })\n );\n\n const result = await this.repository.createBatch(fileInputs);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(\n new FileAfterBatchCreateEvent({ files: result.value, meta: input.meta })\n );\n\n return Result.ok(result.value);\n }\n\n private async validateInput(\n files: CreateFileInput[]\n ): Promise<Result<void, InvalidFileSizeError>> {\n const settingsResult = await this.getSettings.execute();\n\n if (settingsResult.isFail()) {\n return Result.ok();\n }\n\n const settings = settingsResult.value;\n\n if (settings) {\n for (const input of files) {\n // Validate file size\n if (\n input.size < settings.uploadMinFileSize ||\n input.size > settings.uploadMaxFileSize\n ) {\n return Result.fail(\n new InvalidFileSizeError({\n size: input.size,\n minSize: settings.uploadMinFileSize,\n maxSize: settings.uploadMaxFileSize\n })\n );\n }\n }\n }\n\n return Result.ok();\n }\n}\n\nexport const CreateFilesInBatchUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateFilesInBatchUseCaseImpl,\n dependencies: [\n FilePermissions,\n CreateFilesInBatchRepository,\n GetSettingsUseCase,\n EventPublisher\n ]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAE/CC,4BAA4B;AAEhC,SAASC,kBAAkB;AAC3B,SAASC,cAAc,QAAQ,0CAA0C;AAEzE,SAASC,sBAAsB,EAAEC,oBAAoB;AACrD,SAASC,0BAA0B,EAAEC,yBAAyB;AAC9D,SAASC,eAAe;AAGxB,MAAMC,6BAA6B,CAAyC;EACjEC,WAAWA,CACNC,eAA0C,EAC1CC,UAAkD,EAClDC,WAAyC,EACzCC,cAAwC,EAClD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAkD,GAAlDA,UAAkD;IAAA,KAClDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,cAAwC,GAAxCA,cAAwC;EACjD;EAEH,MAAaC,OAAOA,CAChBC,KAA8B,EACmB;IACjD;IACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,eAAe,CAACO,MAAM,CAAC;MAAEC,GAAG,EAAE;IAAI,CAAC,CAAC;IACrE,IAAI,CAACF,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACsB,IAAI,CAAC,IAAIhB,sBAAsB,CAAC,CAAC,CAAC;IACpD;;IAEA;IACA,MAAMiB,gBAAgB,GAAG,MAAM,IAAI,CAACC,aAAa,CAACN,KAAK,CAACO,KAAK,CAAC;IAC9D,IAAIF,gBAAgB,CAACG,MAAM,CAAC,CAAC,EAAE;MAC3B,OAAO1B,MAAM,CAACsB,IAAI,CAACC,gBAAgB,CAACI,KAAK,CAAC;IAC9C;;IAEA;IACA,MAAMC,UAAuB,GAAGV,KAAK,CAACO,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,EAAEvB,KAAK,CAACwB,IAAI,IAAI,CAAC;MAC/B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,CAAC1B,cAAc,CAAC2B,OAAO,CAC7B,IAAInC,0BAA0B,CAAC;MAAEiB,KAAK,EAAEG,UAAU;MAAEc,IAAI,EAAExB,KAAK,CAACwB;IAAK,CAAC,CAC1E,CAAC;IAED,MAAME,MAAM,GAAG,MAAM,IAAI,CAAC9B,UAAU,CAAC+B,WAAW,CAACjB,UAAU,CAAC;IAE5D,IAAIgB,MAAM,CAAClB,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAACsB,IAAI,CAACsB,MAAM,CAACjB,KAAK,CAAC;IACpC;IAEA,MAAM,IAAI,CAACX,cAAc,CAAC2B,OAAO,CAC7B,IAAIlC,yBAAyB,CAAC;MAAEgB,KAAK,EAAEmB,MAAM,CAACE,KAAK;MAAEJ,IAAI,EAAExB,KAAK,CAACwB;IAAK,CAAC,CAC3E,CAAC;IAED,OAAO1C,MAAM,CAAC+C,EAAE,CAACH,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAActB,aAAaA,CACvBC,KAAwB,EACmB;IAC3C,MAAMuB,cAAc,GAAG,MAAM,IAAI,CAACjC,WAAW,CAACE,OAAO,CAAC,CAAC;IAEvD,IAAI+B,cAAc,CAACtB,MAAM,CAAC,CAAC,EAAE;MACzB,OAAO1B,MAAM,CAAC+C,EAAE,CAAC,CAAC;IACtB;IAEA,MAAME,QAAQ,GAAGD,cAAc,CAACF,KAAK;IAErC,IAAIG,QAAQ,EAAE;MACV,KAAK,MAAM/B,KAAK,IAAIO,KAAK,EAAE;QACvB;QACA,IACIP,KAAK,CAACiB,IAAI,GAAGc,QAAQ,CAACC,iBAAiB,IACvChC,KAAK,CAACiB,IAAI,GAAGc,QAAQ,CAACE,iBAAiB,EACzC;UACE,OAAOnD,MAAM,CAACsB,IAAI,CACd,IAAIf,oBAAoB,CAAC;YACrB4B,IAAI,EAAEjB,KAAK,CAACiB,IAAI;YAChBiB,OAAO,EAAEH,QAAQ,CAACC,iBAAiB;YACnCG,OAAO,EAAEJ,QAAQ,CAACE;UACtB,CAAC,CACL,CAAC;QACL;MACJ;IACJ;IAEA,OAAOnD,MAAM,CAAC+C,EAAE,CAAC,CAAC;EACtB;AACJ;AAEA,OAAO,MAAM9C,yBAAyB,GAAGC,kBAAkB,CAACoD,oBAAoB,CAAC;EAC7EC,cAAc,EAAE5C,6BAA6B;EAC7C6C,YAAY,EAAE,CACV9C,eAAe,EACfP,4BAA4B,EAC5BC,kBAAkB,EAClBC,cAAc;AAEtB,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"}
@@ -15,6 +15,7 @@ export interface ICreateFilesInBatchRepositoryErrors {
15
15
  persistence: FilePersistenceError;
16
16
  }
17
17
  type RepositoryError = ICreateFilesInBatchRepositoryErrors[keyof ICreateFilesInBatchRepositoryErrors];
18
+ /** Persist multiple files created in batch. */
18
19
  export declare const CreateFilesInBatchRepository: import("@webiny/di").Abstraction<ICreateFilesInBatchRepository>;
19
20
  export declare namespace CreateFilesInBatchRepository {
20
21
  type Interface = ICreateFilesInBatchRepository;
@@ -32,6 +33,7 @@ export interface ICreateFilesInBatchUseCaseErrors {
32
33
  invalidSize: InvalidFileSizeError;
33
34
  }
34
35
  type UseCaseError = ICreateFilesInBatchUseCaseErrors[keyof ICreateFilesInBatchUseCaseErrors];
36
+ /** Upload and create multiple files in batch. */
35
37
  export declare const CreateFilesInBatchUseCase: import("@webiny/di").Abstraction<ICreateFilesInBatchUseCase>;
36
38
  export declare namespace CreateFilesInBatchUseCase {
37
39
  type Interface = ICreateFilesInBatchUseCase;
@@ -1,15 +1,6 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * CreateFilesInBatch repository interface
5
- */
6
-
7
- export const CreateFilesInBatchRepository = createAbstraction("CreateFilesInBatchRepository");
8
-
9
- /**
10
- * CreateFilesInBatch use case interface
11
- */
12
-
13
- export const CreateFilesInBatchUseCase = createAbstraction("CreateFilesInBatchUseCase");
2
+ const CreateFilesInBatchRepository = createAbstraction("CreateFilesInBatchRepository");
3
+ const CreateFilesInBatchUseCase = createAbstraction("CreateFilesInBatchUseCase");
4
+ export { CreateFilesInBatchRepository, CreateFilesInBatchUseCase };
14
5
 
15
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\nexport const CreateFilesInBatchRepository = createAbstraction<ICreateFilesInBatchRepository>(\n \"CreateFilesInBatchRepository\"\n);\n\nexport namespace CreateFilesInBatchRepository {\n export type Interface = ICreateFilesInBatchRepository;\n export type Error = RepositoryError;\n}\n\n/**\n * CreateFilesInBatch use case interface\n */\nexport interface ICreateFilesInBatchUseCase {\n execute(input: CreateFilesInBatchInput): Promise<Result<File[], UseCaseError>>;\n}\n\nexport interface ICreateFilesInBatchUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n invalidSize: InvalidFileSizeError;\n}\n\ntype UseCaseError = ICreateFilesInBatchUseCaseErrors[keyof ICreateFilesInBatchUseCaseErrors];\n\nexport const CreateFilesInBatchUseCase = createAbstraction<ICreateFilesInBatchUseCase>(\n \"CreateFilesInBatchUseCase\"\n);\n\nexport namespace CreateFilesInBatchUseCase {\n export type Interface = ICreateFilesInBatchUseCase;\n export type Error = UseCaseError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAcvD;AACA;AACA;;AAYA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,8BACJ,CAAC;;AAOD;AACA;AACA;;AAaA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,2BACJ,CAAC","ignoreList":[]}
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,5 +1,5 @@
1
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
- import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
3
  import type { File, FileInput } from "../../../domain/file/types.js";
4
4
  export interface FileBeforeBatchCreatePayload {
5
5
  files: FileInput[];
@@ -9,8 +9,9 @@ export declare class FileBeforeBatchCreateEvent extends DomainEvent<FileBeforeBa
9
9
  eventType: "FileManager/File/BeforeBatchCreate";
10
10
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeBatchCreateEvent>>;
11
11
  }
12
- export declare const FileBeforeBatchCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeBatchCreateEvent>>;
13
- export declare namespace FileBeforeBatchCreateHandler {
12
+ /** Hook into file lifecycle before files are created in batch. */
13
+ export declare const FileBeforeBatchCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileBeforeBatchCreateEvent>>;
14
+ export declare namespace FileBeforeBatchCreateEventHandler {
14
15
  type Interface = IEventHandler<FileBeforeBatchCreateEvent>;
15
16
  type Event = FileBeforeBatchCreateEvent;
16
17
  }
@@ -22,8 +23,9 @@ export declare class FileAfterBatchCreateEvent extends DomainEvent<FileAfterBatc
22
23
  eventType: "FileManager/File/AfterBatchCreate";
23
24
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterBatchCreateEvent>>;
24
25
  }
25
- export declare const FileAfterBatchCreateHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterBatchCreateEvent>>;
26
- export declare namespace FileAfterBatchCreateHandler {
26
+ /** Hook into file lifecycle after files are created in batch. */
27
+ export declare const FileAfterBatchCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<FileAfterBatchCreateEvent>>;
28
+ export declare namespace FileAfterBatchCreateEventHandler {
27
29
  type Interface = IEventHandler<FileAfterBatchCreateEvent>;
28
30
  type Event = FileAfterBatchCreateEvent;
29
31
  }
@@ -1,28 +1,23 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
3
-
4
- // ============================================================================
5
- // FileBeforeBatchCreate Event
6
- // ============================================================================
7
-
8
- export class FileBeforeBatchCreateEvent extends DomainEvent {
9
- eventType = "FileManager/File/BeforeBatchCreate";
10
- getHandlerAbstraction() {
11
- return FileBeforeBatchCreateHandler;
12
- }
2
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
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
- export const FileBeforeBatchCreateHandler = createAbstraction("FileBeforeBatchCreateHandler");
15
-
16
- // ============================================================================
17
- // FileAfterBatchCreate Event
18
- // ============================================================================
19
-
20
- export class FileAfterBatchCreateEvent extends DomainEvent {
21
- eventType = "FileManager/File/AfterBatchCreate";
22
- getHandlerAbstraction() {
23
- return FileAfterBatchCreateHandler;
24
- }
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
+ }
25
19
  }
26
- export const FileAfterBatchCreateHandler = createAbstraction("FileAfterBatchCreateHandler");
20
+ const FileAfterBatchCreateEventHandler = createAbstraction("FileAfterBatchCreateEventHandler");
21
+ export { FileAfterBatchCreateEvent, FileAfterBatchCreateEventHandler, FileBeforeBatchCreateEvent, FileBeforeBatchCreateEventHandler };
27
22
 
28
23
  //# sourceMappingURL=events.js.map