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

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 (438) hide show
  1. package/README.md +7 -13
  2. package/contants.js +1 -7
  3. package/contants.js.map +1 -1
  4. package/delivery/AssetDelivery/Asset.d.ts +3 -7
  5. package/delivery/AssetDelivery/Asset.js +1 -11
  6. package/delivery/AssetDelivery/Asset.js.map +1 -1
  7. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +11 -9
  8. package/delivery/AssetDelivery/AssetDeliveryConfig.js +18 -26
  9. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -1
  10. package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
  11. package/delivery/AssetDelivery/AssetRequest.js +1 -8
  12. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  13. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +3 -3
  14. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +3 -10
  15. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -1
  16. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +1 -1
  17. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +3 -10
  18. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -1
  19. package/delivery/AssetDelivery/NullAssetReply.d.ts +1 -1
  20. package/delivery/AssetDelivery/NullAssetReply.js +2 -9
  21. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -1
  22. package/delivery/AssetDelivery/NullAssetResolver.d.ts +2 -2
  23. package/delivery/AssetDelivery/NullAssetResolver.js +1 -8
  24. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -1
  25. package/delivery/AssetDelivery/NullRequestResolver.d.ts +1 -1
  26. package/delivery/AssetDelivery/NullRequestResolver.js +1 -8
  27. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -1
  28. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +1 -1
  29. package/delivery/AssetDelivery/SetCacheControlHeaders.js +1 -8
  30. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -1
  31. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +3 -3
  32. package/delivery/AssetDelivery/SetResponseHeaders.js +1 -8
  33. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -1
  34. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +1 -3
  35. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +1 -5
  36. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -1
  37. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +1 -1
  38. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +1 -5
  39. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -1
  40. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +1 -1
  41. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +1 -5
  42. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -1
  43. package/delivery/AssetDelivery/abstractions/AssetReply.js +3 -10
  44. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  45. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +2 -2
  46. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +1 -5
  47. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -1
  48. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +1 -1
  49. package/delivery/AssetDelivery/abstractions/AssetResolver.js +1 -5
  50. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -1
  51. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +1 -1
  52. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +1 -5
  53. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -1
  54. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +1 -1
  55. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +1 -8
  56. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  57. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +1 -1
  58. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +1 -5
  59. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -1
  60. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +1 -1
  61. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +4 -11
  62. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -1
  63. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +1 -1
  64. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +3 -10
  65. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  66. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +4 -3
  67. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +3 -11
  68. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  69. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +1 -1
  70. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +4 -11
  71. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -1
  72. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +3 -3
  73. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +3 -10
  74. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  75. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +4 -4
  76. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +21 -21
  77. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  78. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +1 -1
  79. package/delivery/AssetDelivery/privateFiles/PublicCache.js +4 -11
  80. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -1
  81. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +2 -2
  82. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +5 -12
  83. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  84. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +2 -2
  85. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +5 -12
  86. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  87. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +1 -1
  88. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +1 -8
  89. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -1
  90. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +1 -1
  91. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +1 -8
  92. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -1
  93. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +1 -1
  94. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +1 -8
  95. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  96. package/delivery/index.d.ts +16 -17
  97. package/delivery/index.js +10 -192
  98. package/delivery/index.js.map +1 -1
  99. package/delivery/setupAssetDelivery.d.ts +2 -6
  100. package/delivery/setupAssetDelivery.js +21 -35
  101. package/delivery/setupAssetDelivery.js.map +1 -1
  102. package/domain/file/abstractions.d.ts +9 -0
  103. package/domain/file/abstractions.js +8 -0
  104. package/domain/file/abstractions.js.map +1 -0
  105. package/domain/file/errors.d.ts +59 -0
  106. package/domain/file/errors.js +89 -0
  107. package/domain/file/errors.js.map +1 -0
  108. package/domain/file/file.model.d.ts +12 -0
  109. package/domain/file/file.model.js +57 -0
  110. package/domain/file/file.model.js.map +1 -0
  111. package/domain/file/types.d.ts +53 -0
  112. package/domain/file/types.js +3 -0
  113. package/domain/file/types.js.map +1 -0
  114. package/domain/identity/Identity.d.ts +9 -0
  115. package/domain/identity/Identity.js +11 -0
  116. package/domain/identity/Identity.js.map +1 -0
  117. package/domain/permissionsSchema.d.ts +16 -0
  118. package/domain/permissionsSchema.js +19 -0
  119. package/domain/permissionsSchema.js.map +1 -0
  120. package/domain/settings/constants.d.ts +1 -0
  121. package/domain/settings/constants.js +3 -0
  122. package/domain/settings/constants.js.map +1 -0
  123. package/domain/settings/errors.d.ts +18 -0
  124. package/domain/settings/errors.js +30 -0
  125. package/domain/settings/errors.js.map +1 -0
  126. package/domain/settings/types.d.ts +10 -0
  127. package/domain/settings/types.js +3 -0
  128. package/domain/settings/types.js.map +1 -0
  129. package/domain/settings/validation.d.ts +6 -0
  130. package/domain/settings/validation.js +36 -0
  131. package/domain/settings/validation.js.map +1 -0
  132. package/exports/api/file-manager/file.d.ts +12 -0
  133. package/exports/api/file-manager/file.js +14 -0
  134. package/exports/api/file-manager/file.js.map +1 -0
  135. package/exports/api/file-manager/permissions.d.ts +1 -0
  136. package/exports/api/file-manager/permissions.js +3 -0
  137. package/exports/api/file-manager/permissions.js.map +1 -0
  138. package/exports/api/file-manager/settings.d.ts +3 -0
  139. package/exports/api/file-manager/settings.js +5 -0
  140. package/exports/api/file-manager/settings.js.map +1 -0
  141. package/features/FileManagerFeature.d.ts +4 -0
  142. package/features/FileManagerFeature.js +30 -0
  143. package/features/FileManagerFeature.js.map +1 -0
  144. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  145. package/features/file/CreateFile/CreateFileRepository.js +30 -0
  146. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  147. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  148. package/features/file/CreateFile/CreateFileUseCase.js +90 -0
  149. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  150. package/features/file/CreateFile/abstractions.d.ts +60 -0
  151. package/features/file/CreateFile/abstractions.js +17 -0
  152. package/features/file/CreateFile/abstractions.js.map +1 -0
  153. package/features/file/CreateFile/events.d.ts +31 -0
  154. package/features/file/CreateFile/events.js +32 -0
  155. package/features/file/CreateFile/events.js.map +1 -0
  156. package/features/file/CreateFile/feature.d.ts +4 -0
  157. package/features/file/CreateFile/feature.js +12 -0
  158. package/features/file/CreateFile/feature.js.map +1 -0
  159. package/features/file/CreateFile/index.d.ts +2 -0
  160. package/features/file/CreateFile/index.js +4 -0
  161. package/features/file/CreateFile/index.js.map +1 -0
  162. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  163. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +24 -0
  164. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  165. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  166. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +84 -0
  167. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  168. package/features/file/CreateFilesInBatch/abstractions.d.ts +42 -0
  169. package/features/file/CreateFilesInBatch/abstractions.js +17 -0
  170. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  171. package/features/file/CreateFilesInBatch/events.d.ts +31 -0
  172. package/features/file/CreateFilesInBatch/events.js +32 -0
  173. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  174. package/features/file/CreateFilesInBatch/feature.d.ts +4 -0
  175. package/features/file/CreateFilesInBatch/feature.js +12 -0
  176. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  177. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  178. package/features/file/CreateFilesInBatch/index.js +3 -0
  179. package/features/file/CreateFilesInBatch/index.js.map +1 -0
  180. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  181. package/features/file/DeleteFile/DeleteFileRepository.js +30 -0
  182. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  183. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  184. package/features/file/DeleteFile/DeleteFileUseCase.js +45 -0
  185. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  186. package/features/file/DeleteFile/abstractions.d.ts +39 -0
  187. package/features/file/DeleteFile/abstractions.js +17 -0
  188. package/features/file/DeleteFile/abstractions.js.map +1 -0
  189. package/features/file/DeleteFile/events.d.ts +29 -0
  190. package/features/file/DeleteFile/events.js +32 -0
  191. package/features/file/DeleteFile/events.js.map +1 -0
  192. package/features/file/DeleteFile/feature.d.ts +4 -0
  193. package/features/file/DeleteFile/feature.js +12 -0
  194. package/features/file/DeleteFile/feature.js.map +1 -0
  195. package/features/file/DeleteFile/index.d.ts +2 -0
  196. package/features/file/DeleteFile/index.js +4 -0
  197. package/features/file/DeleteFile/index.js.map +1 -0
  198. package/features/file/FileUrlGenerator/abstractions.d.ts +9 -0
  199. package/features/file/FileUrlGenerator/abstractions.js +5 -0
  200. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  201. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  202. package/features/file/GetFile/GetFileRepository.js +33 -0
  203. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  204. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  205. package/features/file/GetFile/GetFileUseCase.js +31 -0
  206. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  207. package/features/file/GetFile/abstractions.d.ts +40 -0
  208. package/features/file/GetFile/abstractions.js +17 -0
  209. package/features/file/GetFile/abstractions.js.map +1 -0
  210. package/features/file/GetFile/feature.d.ts +4 -0
  211. package/features/file/GetFile/feature.js +12 -0
  212. package/features/file/GetFile/feature.js.map +1 -0
  213. package/features/file/GetFile/index.d.ts +1 -0
  214. package/features/file/GetFile/index.js +3 -0
  215. package/features/file/GetFile/index.js.map +1 -0
  216. package/features/file/GetFileContents/abstractions.d.ts +20 -0
  217. package/features/file/GetFileContents/abstractions.js +4 -0
  218. package/features/file/GetFileContents/abstractions.js.map +1 -0
  219. package/features/file/GetFileContents/index.d.ts +1 -0
  220. package/features/file/GetFileContents/index.js +3 -0
  221. package/features/file/GetFileContents/index.js.map +1 -0
  222. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  223. package/features/file/ListFiles/ListFilesRepository.js +51 -0
  224. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  225. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  226. package/features/file/ListFiles/ListFilesUseCase.js +45 -0
  227. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  228. package/features/file/ListFiles/abstractions.d.ts +49 -0
  229. package/features/file/ListFiles/abstractions.js +17 -0
  230. package/features/file/ListFiles/abstractions.js.map +1 -0
  231. package/features/file/ListFiles/feature.d.ts +4 -0
  232. package/features/file/ListFiles/feature.js +12 -0
  233. package/features/file/ListFiles/feature.js.map +1 -0
  234. package/features/file/ListFiles/index.d.ts +1 -0
  235. package/features/file/ListFiles/index.js +3 -0
  236. package/features/file/ListFiles/index.js.map +1 -0
  237. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +27 -0
  238. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +39 -0
  239. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
  240. package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
  241. package/features/file/ListImagesByTagTool/feature.js +10 -0
  242. package/features/file/ListImagesByTagTool/feature.js.map +1 -0
  243. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  244. package/features/file/ListTags/ListTagsRepository.js +47 -0
  245. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  246. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  247. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  248. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  249. package/features/file/ListTags/abstractions.d.ts +45 -0
  250. package/features/file/ListTags/abstractions.js +17 -0
  251. package/features/file/ListTags/abstractions.js.map +1 -0
  252. package/features/file/ListTags/feature.d.ts +4 -0
  253. package/features/file/ListTags/feature.js +12 -0
  254. package/features/file/ListTags/feature.js.map +1 -0
  255. package/features/file/ListTags/index.d.ts +1 -0
  256. package/features/file/ListTags/index.js +3 -0
  257. package/features/file/ListTags/index.js.map +1 -0
  258. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  259. package/features/file/UpdateFile/UpdateFileRepository.js +39 -0
  260. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  261. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  262. package/features/file/UpdateFile/UpdateFileUseCase.js +79 -0
  263. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  264. package/features/file/UpdateFile/abstractions.d.ts +56 -0
  265. package/features/file/UpdateFile/abstractions.js +17 -0
  266. package/features/file/UpdateFile/abstractions.js.map +1 -0
  267. package/features/file/UpdateFile/events.d.ts +34 -0
  268. package/features/file/UpdateFile/events.js +32 -0
  269. package/features/file/UpdateFile/events.js.map +1 -0
  270. package/features/file/UpdateFile/feature.d.ts +4 -0
  271. package/features/file/UpdateFile/feature.js +12 -0
  272. package/features/file/UpdateFile/feature.js.map +1 -0
  273. package/features/file/UpdateFile/index.d.ts +2 -0
  274. package/features/file/UpdateFile/index.js +4 -0
  275. package/features/file/UpdateFile/index.js.map +1 -0
  276. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  277. package/features/file/shared/EntryToFileMapper.js +27 -0
  278. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  279. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  280. package/features/file/shared/FileInputToEntryInputMapper.js +31 -0
  281. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  282. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  283. package/features/file/shared/FileToEntryMapper.js +30 -0
  284. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  285. package/features/permissions/abstractions.d.ts +21 -0
  286. package/features/permissions/abstractions.js +5 -0
  287. package/features/permissions/abstractions.js.map +1 -0
  288. package/features/permissions/feature.d.ts +4 -0
  289. package/features/permissions/feature.js +6 -0
  290. package/features/permissions/feature.js.map +1 -0
  291. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  292. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  293. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  294. package/features/settings/GetSettings/abstractions.d.ts +18 -0
  295. package/features/settings/GetSettings/abstractions.js +10 -0
  296. package/features/settings/GetSettings/abstractions.js.map +1 -0
  297. package/features/settings/GetSettings/feature.d.ts +4 -0
  298. package/features/settings/GetSettings/feature.js +10 -0
  299. package/features/settings/GetSettings/feature.js.map +1 -0
  300. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +15 -0
  301. package/features/settings/SettingsInstaller/SettingsInstaller.js +35 -0
  302. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  303. package/features/settings/SettingsInstaller/feature.d.ts +4 -0
  304. package/features/settings/SettingsInstaller/feature.js +10 -0
  305. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  306. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  307. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +62 -0
  308. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  309. package/features/settings/UpdateSettings/abstractions.d.ts +23 -0
  310. package/features/settings/UpdateSettings/abstractions.js +10 -0
  311. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  312. package/features/settings/UpdateSettings/events.d.ts +34 -0
  313. package/features/settings/UpdateSettings/events.js +32 -0
  314. package/features/settings/UpdateSettings/events.js.map +1 -0
  315. package/features/settings/UpdateSettings/feature.d.ts +4 -0
  316. package/features/settings/UpdateSettings/feature.js +10 -0
  317. package/features/settings/UpdateSettings/feature.js.map +1 -0
  318. package/features/settings/UpdateSettings/index.d.ts +2 -0
  319. package/features/settings/UpdateSettings/index.js +4 -0
  320. package/features/settings/UpdateSettings/index.js.map +1 -0
  321. package/features/shared/abstractions.d.ts +1 -0
  322. package/features/shared/abstractions.js +3 -0
  323. package/features/shared/abstractions.js.map +1 -0
  324. package/graphql/baseSchema.d.ts +2 -2
  325. package/graphql/baseSchema.js +20 -38
  326. package/graphql/baseSchema.js.map +1 -1
  327. package/graphql/createFilesTypeDefs.d.ts +3 -2
  328. package/graphql/createFilesTypeDefs.js +45 -30
  329. package/graphql/createFilesTypeDefs.js.map +1 -1
  330. package/graphql/filesSchema.d.ts +3 -3
  331. package/graphql/filesSchema.js +73 -46
  332. package/graphql/filesSchema.js.map +1 -1
  333. package/graphql/getFileByUrl.d.ts +2 -2
  334. package/graphql/getFileByUrl.js +17 -26
  335. package/graphql/getFileByUrl.js.map +1 -1
  336. package/graphql/index.d.ts +2 -2
  337. package/graphql/index.js +27 -28
  338. package/graphql/index.js.map +1 -1
  339. package/graphql/utils.d.ts +1 -1
  340. package/graphql/utils.js +6 -13
  341. package/graphql/utils.js.map +1 -1
  342. package/index.d.ts +6 -9
  343. package/index.js +28 -67
  344. package/index.js.map +1 -1
  345. package/modelModifier/CmsModelModifier.d.ts +1 -1
  346. package/modelModifier/CmsModelModifier.js +7 -15
  347. package/modelModifier/CmsModelModifier.js.map +1 -1
  348. package/package.json +31 -29
  349. package/types.d.ts +2 -367
  350. package/types.js +1 -27
  351. package/types.js.map +1 -1
  352. package/FileManagerContextSetup.d.ts +0 -13
  353. package/FileManagerContextSetup.js +0 -115
  354. package/FileManagerContextSetup.js.map +0 -1
  355. package/cmsFileStorage/CmsFilesStorage.d.ts +0 -27
  356. package/cmsFileStorage/CmsFilesStorage.js +0 -164
  357. package/cmsFileStorage/CmsFilesStorage.js.map +0 -1
  358. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +0 -7
  359. package/cmsFileStorage/ListFilesWhereProcessor.js +0 -33
  360. package/cmsFileStorage/ListFilesWhereProcessor.js.map +0 -1
  361. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +0 -7
  362. package/cmsFileStorage/ListTagsWhereProcessor.js +0 -33
  363. package/cmsFileStorage/ListTagsWhereProcessor.js.map +0 -1
  364. package/cmsFileStorage/file.model.d.ts +0 -6
  365. package/cmsFileStorage/file.model.js +0 -158
  366. package/cmsFileStorage/file.model.js.map +0 -1
  367. package/createFileManager/files.crud.d.ts +0 -3
  368. package/createFileManager/files.crud.js +0 -328
  369. package/createFileManager/files.crud.js.map +0 -1
  370. package/createFileManager/index.d.ts +0 -3
  371. package/createFileManager/index.js +0 -23
  372. package/createFileManager/index.js.map +0 -1
  373. package/createFileManager/permissions/FilesPermissions.d.ts +0 -4
  374. package/createFileManager/permissions/FilesPermissions.js +0 -11
  375. package/createFileManager/permissions/FilesPermissions.js.map +0 -1
  376. package/createFileManager/permissions/SettingsPermissions.d.ts +0 -4
  377. package/createFileManager/permissions/SettingsPermissions.js +0 -11
  378. package/createFileManager/permissions/SettingsPermissions.js.map +0 -1
  379. package/createFileManager/settings.crud.d.ts +0 -3
  380. package/createFileManager/settings.crud.js +0 -117
  381. package/createFileManager/settings.crud.js.map +0 -1
  382. package/createFileManager/system.crud.d.ts +0 -3
  383. package/createFileManager/system.crud.js +0 -88
  384. package/createFileManager/system.crud.js.map +0 -1
  385. package/createFileManager/types.d.ts +0 -16
  386. package/createFileManager/types.js +0 -7
  387. package/createFileManager/types.js.map +0 -1
  388. package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +0 -11
  389. package/delivery/AssetDelivery/AliasAssetRequestResolver.js +0 -74
  390. package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +0 -1
  391. package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +0 -7
  392. package/delivery/AssetDelivery/privateFiles/internalIdentity.js +0 -18
  393. package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +0 -1
  394. package/enterprise/applyThreatScanning.d.ts +0 -2
  395. package/enterprise/applyThreatScanning.js +0 -20
  396. package/enterprise/applyThreatScanning.js.map +0 -1
  397. package/handlers/manage/imageManager.d.ts +0 -14
  398. package/handlers/manage/imageManager.js +0 -75
  399. package/handlers/manage/imageManager.js.map +0 -1
  400. package/handlers/manage/index.d.ts +0 -5
  401. package/handlers/manage/index.js +0 -59
  402. package/handlers/manage/index.js.map +0 -1
  403. package/handlers/manage/legacyUtils.d.ts +0 -12
  404. package/handlers/manage/legacyUtils.js +0 -34
  405. package/handlers/manage/legacyUtils.js.map +0 -1
  406. package/handlers/manage/utils.d.ts +0 -12
  407. package/handlers/manage/utils.js +0 -34
  408. package/handlers/manage/utils.js.map +0 -1
  409. package/handlers/types.d.ts +0 -8
  410. package/handlers/types.js +0 -7
  411. package/handlers/types.js.map +0 -1
  412. package/handlers/utils/getEnvironment.d.ts +0 -5
  413. package/handlers/utils/getEnvironment.js +0 -13
  414. package/handlers/utils/getEnvironment.js.map +0 -1
  415. package/handlers/utils/getObjectParams.d.ts +0 -9
  416. package/handlers/utils/getObjectParams.js +0 -23
  417. package/handlers/utils/getObjectParams.js.map +0 -1
  418. package/handlers/utils/index.d.ts +0 -2
  419. package/handlers/utils/index.js +0 -22
  420. package/handlers/utils/index.js.map +0 -1
  421. package/plugins/FilePhysicalStoragePlugin.d.ts +0 -22
  422. package/plugins/FilePhysicalStoragePlugin.js +0 -31
  423. package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
  424. package/plugins/FileStorageTransformPlugin.d.ts +0 -34
  425. package/plugins/FileStorageTransformPlugin.js +0 -39
  426. package/plugins/FileStorageTransformPlugin.js.map +0 -1
  427. package/plugins/index.d.ts +0 -2
  428. package/plugins/index.js +0 -29
  429. package/plugins/index.js.map +0 -1
  430. package/storage/FileStorage.d.ts +0 -34
  431. package/storage/FileStorage.js +0 -90
  432. package/storage/FileStorage.js.map +0 -1
  433. package/types/file.d.ts +0 -49
  434. package/types/file.js +0 -7
  435. package/types/file.js.map +0 -1
  436. package/types/file.lifecycle.d.ts +0 -44
  437. package/types/file.lifecycle.js +0 -7
  438. package/types/file.lifecycle.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import { BaseError } from "@webiny/feature/api";
2
+ export class SettingsNotFoundError extends BaseError {
3
+ code = "FileManager/Settings/NotFoundError";
4
+ constructor() {
5
+ super({
6
+ message: "File manager settings not found."
7
+ });
8
+ }
9
+ }
10
+ export class SettingsUpdateError extends BaseError {
11
+ code = "FileManager/Settings/UpdateError";
12
+ constructor(error) {
13
+ super({
14
+ message: `Error updating settings: ${error.message}`
15
+ });
16
+ }
17
+ }
18
+ export class SettingsValidationError extends BaseError {
19
+ code = "FileManager/Settings/ValidationError";
20
+ constructor(invalidFields) {
21
+ super({
22
+ message: "Validation failed.",
23
+ data: {
24
+ invalidFields
25
+ }
26
+ });
27
+ }
28
+ }
29
+
30
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BaseError","SettingsNotFoundError","code","constructor","message","SettingsUpdateError","error","SettingsValidationError","invalidFields","data"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\nimport type { OutputErrors } from \"@webiny/utils/createZodError.js\";\n\nexport class SettingsNotFoundError extends BaseError {\n override readonly code = \"FileManager/Settings/NotFoundError\" as const;\n\n constructor() {\n super({\n message: \"File manager settings not found.\"\n });\n }\n}\n\nexport class SettingsUpdateError extends BaseError {\n override readonly code = \"FileManager/Settings/UpdateError\" as const;\n\n constructor(error: Error) {\n super({\n message: `Error updating settings: ${error.message}`\n });\n }\n}\n\ninterface ValidationParams {\n invalidFields: OutputErrors;\n}\n\nexport class SettingsValidationError extends BaseError<ValidationParams> {\n override readonly code = \"FileManager/Settings/ValidationError\" as const;\n\n constructor(invalidFields: OutputErrors) {\n super({\n message: \"Validation failed.\",\n data: { invalidFields }\n });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAG/C,OAAO,MAAMC,qBAAqB,SAASD,SAAS,CAAC;EAC/BE,IAAI,GAAG,oCAAoC;EAE7DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFC,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMC,mBAAmB,SAASL,SAAS,CAAC;EAC7BE,IAAI,GAAG,kCAAkC;EAE3DC,WAAWA,CAACG,KAAY,EAAE;IACtB,KAAK,CAAC;MACFF,OAAO,EAAE,4BAA4BE,KAAK,CAACF,OAAO;IACtD,CAAC,CAAC;EACN;AACJ;AAMA,OAAO,MAAMG,uBAAuB,SAASP,SAAS,CAAmB;EACnDE,IAAI,GAAG,sCAAsC;EAE/DC,WAAWA,CAACK,aAA2B,EAAE;IACrC,KAAK,CAAC;MACFJ,OAAO,EAAE,oBAAoB;MAC7BK,IAAI,EAAE;QAAED;MAAc;IAC1B,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ export interface FileManagerSettings {
2
+ uploadMinFileSize: number;
3
+ uploadMaxFileSize: number;
4
+ srcPrefix: string;
5
+ }
6
+ export interface UpdateSettingsInput {
7
+ uploadMinFileSize?: number;
8
+ uploadMaxFileSize?: number;
9
+ srcPrefix?: string;
10
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface FileManagerSettings {\n uploadMinFileSize: number;\n uploadMaxFileSize: number;\n srcPrefix: string;\n}\n\nexport interface UpdateSettingsInput {\n uploadMinFileSize?: number;\n uploadMaxFileSize?: number;\n srcPrefix?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import zod from "zod";
2
+ export declare const updateSettingsValidation: zod.ZodObject<{
3
+ uploadMinFileSize: zod.ZodOptional<zod.ZodPipe<zod.ZodOptional<zod.ZodNullable<zod.ZodNumber>>, zod.ZodTransform<number, number | null | undefined>>>;
4
+ uploadMaxFileSize: zod.ZodOptional<zod.ZodPipe<zod.ZodOptional<zod.ZodNullable<zod.ZodNumber>>, zod.ZodTransform<number, number | null | undefined>>>;
5
+ srcPrefix: zod.ZodPipe<zod.ZodOptional<zod.ZodString>, zod.ZodTransform<string, string | undefined>>;
6
+ }, zod.core.$strip>;
@@ -0,0 +1,36 @@
1
+ import zod from "zod";
2
+ import { ServiceDiscovery } from "@webiny/api";
3
+ const MIN_FILE_SIZE = 0;
4
+ const MAX_FILE_SIZE = 10737418240;
5
+ const uploadMinFileSizeValidation = zod.number().min(MIN_FILE_SIZE, {
6
+ message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`
7
+ }).nullish().transform(value => {
8
+ return value || MIN_FILE_SIZE;
9
+ }).optional();
10
+ const uploadMaxFileSizeValidation = zod.number().max(MAX_FILE_SIZE, {
11
+ message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`
12
+ }).nullish().transform(value => {
13
+ return value || MAX_FILE_SIZE;
14
+ }).optional();
15
+ export const updateSettingsValidation = zod.object({
16
+ uploadMinFileSize: uploadMinFileSizeValidation,
17
+ uploadMaxFileSize: uploadMaxFileSizeValidation,
18
+ srcPrefix: zod.string().optional().transform(async value => {
19
+ if (!value) {
20
+ const manifest = await ServiceDiscovery.load();
21
+ if (!manifest || !manifest.api) {
22
+ return "";
23
+ }
24
+ const {
25
+ domain
26
+ } = manifest.api.cloudfront;
27
+ return `https://${domain}/files/`;
28
+ }
29
+ if (typeof value === "string") {
30
+ return value.endsWith("/") ? value : value + "/";
31
+ }
32
+ return value;
33
+ })
34
+ });
35
+
36
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["zod","ServiceDiscovery","MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","number","min","message","nullish","transform","value","optional","uploadMaxFileSizeValidation","max","updateSettingsValidation","object","uploadMinFileSize","uploadMaxFileSize","srcPrefix","string","manifest","load","api","domain","cloudfront","endsWith"],"sources":["validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ServiceDiscovery } from \"@webiny/api\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MIN_FILE_SIZE;\n })\n .optional();\n\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MAX_FILE_SIZE;\n })\n .optional();\n\nexport const updateSettingsValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(async value => {\n if (!value) {\n const manifest = await ServiceDiscovery.load();\n if (!manifest || !manifest.api) {\n return \"\";\n }\n\n const { domain } = manifest.api.cloudfront;\n\n return `https://${domain}/files/`;\n }\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AACrB,SAASC,gBAAgB,QAAQ,aAAa;AAE9C,MAAMC,aAAa,GAAG,CAAC;AACvB,MAAMC,aAAa,GAAG,WAAW;AAEjC,MAAMC,2BAA2B,GAAGJ,GAAG,CAClCK,MAAM,CAAC,CAAC,CACRC,GAAG,CAACJ,aAAa,EAAE;EAChBK,OAAO,EAAE,8CAA8CL,aAAa;AACxE,CAAC,CAAC,CACDM,OAAO,CAAC,CAAC,CACTC,SAAS,CAACC,KAAK,IAAI;EAChB,OAAOA,KAAK,IAAIR,aAAa;AACjC,CAAC,CAAC,CACDS,QAAQ,CAAC,CAAC;AAEf,MAAMC,2BAA2B,GAAGZ,GAAG,CAClCK,MAAM,CAAC,CAAC,CACRQ,GAAG,CAACV,aAAa,EAAE;EAChBI,OAAO,EAAE,6CAA6CJ,aAAa;AACvE,CAAC,CAAC,CACDK,OAAO,CAAC,CAAC,CACTC,SAAS,CAACC,KAAK,IAAI;EAChB,OAAOA,KAAK,IAAIP,aAAa;AACjC,CAAC,CAAC,CACDQ,QAAQ,CAAC,CAAC;AAEf,OAAO,MAAMG,wBAAwB,GAAGd,GAAG,CAACe,MAAM,CAAC;EAC/CC,iBAAiB,EAAEZ,2BAA2B;EAC9Ca,iBAAiB,EAAEL,2BAA2B;EAC9CM,SAAS,EAAElB,GAAG,CACTmB,MAAM,CAAC,CAAC,CACRR,QAAQ,CAAC,CAAC,CACVF,SAAS,CAAC,MAAMC,KAAK,IAAI;IACtB,IAAI,CAACA,KAAK,EAAE;MACR,MAAMU,QAAQ,GAAG,MAAMnB,gBAAgB,CAACoB,IAAI,CAAC,CAAC;MAC9C,IAAI,CAACD,QAAQ,IAAI,CAACA,QAAQ,CAACE,GAAG,EAAE;QAC5B,OAAO,EAAE;MACb;MAEA,MAAM;QAAEC;MAAO,CAAC,GAAGH,QAAQ,CAACE,GAAG,CAACE,UAAU;MAE1C,OAAO,WAAWD,MAAM,SAAS;IACrC;IACA,IAAI,OAAOb,KAAK,KAAK,QAAQ,EAAE;MAC3B,OAAOA,KAAK,CAACe,QAAQ,CAAC,GAAG,CAAC,GAAGf,KAAK,GAAGA,KAAK,GAAG,GAAG;IACpD;IACA,OAAOA,KAAK;EAChB,CAAC;AACT,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ export { CreateFileRepository, CreateFileUseCase } from "../../../features/file/CreateFile/abstractions.js";
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "../../../features/file/CreateFile/events.js";
3
+ export { CreateFilesInBatchRepository, CreateFilesInBatchUseCase } from "../../../features/file/CreateFilesInBatch/abstractions.js";
4
+ export { FileAfterBatchCreateEventHandler, FileBeforeBatchCreateEventHandler } from "../../../features/file/CreateFilesInBatch/events.js";
5
+ export { UpdateFileRepository, UpdateFileUseCase } from "../../../features/file/UpdateFile/abstractions.js";
6
+ export { FileAfterUpdateEventHandler, FileBeforeUpdateEventHandler } from "../../../features/file/UpdateFile/events.js";
7
+ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/DeleteFile/abstractions.js";
8
+ export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
9
+ export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
10
+ export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
11
+ export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
12
+ export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
@@ -0,0 +1,14 @@
1
+ export { CreateFileRepository, CreateFileUseCase } from "../../../features/file/CreateFile/abstractions.js";
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "../../../features/file/CreateFile/events.js";
3
+ export { CreateFilesInBatchRepository, CreateFilesInBatchUseCase } from "../../../features/file/CreateFilesInBatch/abstractions.js";
4
+ export { FileAfterBatchCreateEventHandler, FileBeforeBatchCreateEventHandler } from "../../../features/file/CreateFilesInBatch/events.js";
5
+ export { UpdateFileRepository, UpdateFileUseCase } from "../../../features/file/UpdateFile/abstractions.js";
6
+ export { FileAfterUpdateEventHandler, FileBeforeUpdateEventHandler } from "../../../features/file/UpdateFile/events.js";
7
+ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/DeleteFile/abstractions.js";
8
+ export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
9
+ export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
10
+ export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
11
+ export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
12
+ export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
13
+
14
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreateFileRepository","CreateFileUseCase","FileAfterCreateEventHandler","FileBeforeCreateEventHandler","CreateFilesInBatchRepository","CreateFilesInBatchUseCase","FileAfterBatchCreateEventHandler","FileBeforeBatchCreateEventHandler","UpdateFileRepository","UpdateFileUseCase","FileAfterUpdateEventHandler","FileBeforeUpdateEventHandler","DeleteFileRepository","DeleteFileUseCase","FileAfterDeleteEventHandler","FileBeforeDeleteEventHandler","FileUrlGenerator","GetFileRepository","GetFileUseCase","ListFilesRepository","ListFilesUseCase","ListTagsRepository","ListTagsUseCase"],"sources":["file.ts"],"sourcesContent":["export {\n CreateFileRepository,\n CreateFileUseCase\n} from \"~/features/file/CreateFile/abstractions.js\";\nexport {\n FileAfterCreateEventHandler,\n FileBeforeCreateEventHandler\n} from \"~/features/file/CreateFile/events.js\";\n\nexport {\n CreateFilesInBatchRepository,\n CreateFilesInBatchUseCase\n} from \"~/features/file/CreateFilesInBatch/abstractions.js\";\nexport {\n FileAfterBatchCreateEventHandler,\n FileBeforeBatchCreateEventHandler\n} from \"~/features/file/CreateFilesInBatch/events.js\";\n\nexport {\n UpdateFileRepository,\n UpdateFileUseCase\n} from \"~/features/file/UpdateFile/abstractions.js\";\nexport {\n FileAfterUpdateEventHandler,\n FileBeforeUpdateEventHandler\n} from \"~/features/file/UpdateFile/events.js\";\n\nexport {\n DeleteFileRepository,\n DeleteFileUseCase\n} from \"~/features/file/DeleteFile/abstractions.js\";\nexport {\n FileAfterDeleteEventHandler,\n FileBeforeDeleteEventHandler\n} from \"~/features/file/DeleteFile/events.js\";\n\nexport { FileUrlGenerator } from \"~/features/file/FileUrlGenerator/abstractions.js\";\n\nexport { GetFileRepository, GetFileUseCase } from \"~/features/file/GetFile/abstractions.js\";\n\nexport { ListFilesRepository, ListFilesUseCase } from \"~/features/file/ListFiles/abstractions.js\";\n\nexport { ListTagsRepository, ListTagsUseCase } from \"~/features/file/ListTags/abstractions.js\";\n"],"mappings":"AAAA,SACIA,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SACIC,4BAA4B,EAC5BC,yBAAyB;AAE7B,SACIC,gCAAgC,EAChCC,iCAAiC;AAGrC,SACIC,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SACIC,oBAAoB,EACpBC,iBAAiB;AAErB,SACIC,2BAA2B,EAC3BC,4BAA4B;AAGhC,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,EAAEC,cAAc;AAE1C,SAASC,mBAAmB,EAAEC,gBAAgB;AAE9C,SAASC,kBAAkB,EAAEC,eAAe","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { FmPermissions } from "../../../features/shared/abstractions.js";
@@ -0,0 +1,3 @@
1
+ export { FmPermissions } from "../../../features/shared/abstractions.js";
2
+
3
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FmPermissions"],"sources":["permissions.ts"],"sourcesContent":["export { FmPermissions } from \"~/features/shared/abstractions.js\";\n"],"mappings":"AAAA,SAASA,aAAa","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { GetSettingsUseCase } from "../../../features/settings/GetSettings/abstractions.js";
2
+ export { UpdateSettingsUseCase } from "../../../features/settings/UpdateSettings/abstractions.js";
3
+ export { SettingsAfterUpdateEventHandler, SettingsBeforeUpdateEventHandler } from "../../../features/settings/UpdateSettings/events.js";
@@ -0,0 +1,5 @@
1
+ export { GetSettingsUseCase } from "../../../features/settings/GetSettings/abstractions.js";
2
+ export { UpdateSettingsUseCase } from "../../../features/settings/UpdateSettings/abstractions.js";
3
+ export { SettingsAfterUpdateEventHandler, SettingsBeforeUpdateEventHandler } from "../../../features/settings/UpdateSettings/events.js";
4
+
5
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetSettingsUseCase","UpdateSettingsUseCase","SettingsAfterUpdateEventHandler","SettingsBeforeUpdateEventHandler"],"sources":["settings.ts"],"sourcesContent":["export { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nexport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nexport {\n SettingsAfterUpdateEventHandler,\n SettingsBeforeUpdateEventHandler\n} from \"~/features/settings/UpdateSettings/events.js\";\n"],"mappings":"AAAA,SAASA,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SACIC,+BAA+B,EAC/BC,gCAAgC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const FileManagerFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,30 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFileFeature } from "./file/CreateFile/feature.js";
3
+ import { CreateFilesInBatchFeature } from "./file/CreateFilesInBatch/feature.js";
4
+ import { DeleteFileFeature } from "./file/DeleteFile/feature.js";
5
+ import { GetFileFeature } from "./file/GetFile/feature.js";
6
+ import { ListFilesFeature } from "./file/ListFiles/feature.js";
7
+ import { ListTagsFeature } from "./file/ListTags/feature.js";
8
+ import { UpdateFileFeature } from "./file/UpdateFile/feature.js";
9
+ import { SettingsInstallerFeature } from "./settings/SettingsInstaller/feature.js";
10
+ import { GetSettingsFeature } from "./settings/GetSettings/feature.js";
11
+ import { UpdateSettingsFeature } from "./settings/UpdateSettings/feature.js";
12
+ import { ListImagesByTagToolFeature } from "./file/ListImagesByTagTool/feature.js";
13
+ export const FileManagerFeature = createFeature({
14
+ name: "FileManager",
15
+ register(container) {
16
+ CreateFileFeature.register(container);
17
+ CreateFilesInBatchFeature.register(container);
18
+ UpdateFileFeature.register(container);
19
+ DeleteFileFeature.register(container);
20
+ GetFileFeature.register(container);
21
+ ListFilesFeature.register(container);
22
+ ListTagsFeature.register(container);
23
+ SettingsInstallerFeature.register(container);
24
+ GetSettingsFeature.register(container);
25
+ UpdateSettingsFeature.register(container);
26
+ ListImagesByTagToolFeature.register(container);
27
+ }
28
+ });
29
+
30
+ //# sourceMappingURL=FileManagerFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateFileFeature","CreateFilesInBatchFeature","DeleteFileFeature","GetFileFeature","ListFilesFeature","ListTagsFeature","UpdateFileFeature","SettingsInstallerFeature","GetSettingsFeature","UpdateSettingsFeature","ListImagesByTagToolFeature","FileManagerFeature","name","register","container"],"sources":["FileManagerFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileFeature } from \"~/features/file/CreateFile/feature.js\";\nimport { CreateFilesInBatchFeature } from \"~/features/file/CreateFilesInBatch/feature.js\";\nimport { DeleteFileFeature } from \"~/features/file/DeleteFile/feature.js\";\nimport { GetFileFeature } from \"~/features/file/GetFile/feature.js\";\nimport { ListFilesFeature } from \"~/features/file/ListFiles/feature.js\";\nimport { ListTagsFeature } from \"~/features/file/ListTags/feature.js\";\nimport { UpdateFileFeature } from \"~/features/file/UpdateFile/feature.js\";\nimport { SettingsInstallerFeature } from \"~/features/settings/SettingsInstaller/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/UpdateSettings/feature.js\";\nimport { ListImagesByTagToolFeature } from \"~/features/file/ListImagesByTagTool/feature.js\";\n\nexport const FileManagerFeature = createFeature({\n name: \"FileManager\",\n register(container) {\n CreateFileFeature.register(container);\n CreateFilesInBatchFeature.register(container);\n UpdateFileFeature.register(container);\n DeleteFileFeature.register(container);\n GetFileFeature.register(container);\n ListFilesFeature.register(container);\n ListTagsFeature.register(container);\n SettingsInstallerFeature.register(container);\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ListImagesByTagToolFeature.register(container);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,iBAAiB;AAC1B,SAASC,cAAc;AACvB,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,wBAAwB;AACjC,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,kBAAkB,GAAGZ,aAAa,CAAC;EAC5Ca,IAAI,EAAE,aAAa;EACnBC,QAAQA,CAACC,SAAS,EAAE;IAChBd,iBAAiB,CAACa,QAAQ,CAACC,SAAS,CAAC;IACrCb,yBAAyB,CAACY,QAAQ,CAACC,SAAS,CAAC;IAC7CR,iBAAiB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACrCZ,iBAAiB,CAACW,QAAQ,CAACC,SAAS,CAAC;IACrCX,cAAc,CAACU,QAAQ,CAACC,SAAS,CAAC;IAClCV,gBAAgB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACpCT,eAAe,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACnCP,wBAAwB,CAACM,QAAQ,CAACC,SAAS,CAAC;IAC5CN,kBAAkB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACtCL,qBAAqB,CAACI,QAAQ,CAACC,SAAS,CAAC;IACzCJ,0BAA0B,CAACG,QAAQ,CAACC,SAAS,CAAC;EAClD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import type { File, FileInput } from "../../../domain/file/types.js";
6
+ declare class CreateFileRepositoryImpl implements RepositoryAbstraction.Interface {
7
+ private createEntry;
8
+ private fileModel;
9
+ constructor(createEntry: CreateEntryUseCase.Interface, fileModel: FileModel.Interface);
10
+ execute(data: FileInput): Promise<Result<File, RepositoryAbstraction.Error>>;
11
+ }
12
+ export declare const CreateFileRepository: typeof CreateFileRepositoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateFileRepository>;
14
+ };
15
+ export {};
@@ -0,0 +1,30 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
+ import { FileModel } from "../../../domain/file/abstractions.js";
5
+ import { EntryToFileMapper } from "../shared/EntryToFileMapper.js";
6
+ import { FileNotAuthorizedError, FilePersistenceError } from "../../../domain/file/errors.js";
7
+ import { FileInputToEntryInputMapper } from "../shared/FileInputToEntryInputMapper.js";
8
+ class CreateFileRepositoryImpl {
9
+ constructor(createEntry, fileModel) {
10
+ this.createEntry = createEntry;
11
+ this.fileModel = fileModel;
12
+ }
13
+ async execute(data) {
14
+ const result = await this.createEntry.execute(this.fileModel, FileInputToEntryInputMapper.toEntry(data));
15
+ if (result.isFail()) {
16
+ if (result.error.code === "Cms/Entry/NotAuthorized") {
17
+ return Result.fail(new FileNotAuthorizedError());
18
+ }
19
+ return Result.fail(new FilePersistenceError(result.error));
20
+ }
21
+ const file = EntryToFileMapper.toFile(result.value);
22
+ return Result.ok(file);
23
+ }
24
+ }
25
+ export const CreateFileRepository = RepositoryAbstraction.createImplementation({
26
+ implementation: CreateFileRepositoryImpl,
27
+ dependencies: [CreateEntryUseCase, FileModel]
28
+ });
29
+
30
+ //# sourceMappingURL=CreateFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","CreateFileRepository","RepositoryAbstraction","CreateEntryUseCase","FileModel","EntryToFileMapper","FileNotAuthorizedError","FilePersistenceError","FileInputToEntryInputMapper","CreateFileRepositoryImpl","constructor","createEntry","fileModel","execute","data","result","toEntry","isFail","error","code","fail","file","toFile","value","ok","createImplementation","implementation","dependencies"],"sources":["CreateFileRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateFileRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport type { File, FileInput } from \"~/domain/file/types.js\";\nimport { EntryToFileMapper } from \"../shared/EntryToFileMapper.js\";\nimport { FileNotAuthorizedError, FilePersistenceError } from \"~/domain/file/errors.js\";\nimport { FileInputToEntryInputMapper } from \"~/features/file/shared/FileInputToEntryInputMapper.js\";\n\nclass CreateFileRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private fileModel: FileModel.Interface\n ) {}\n\n async execute(data: FileInput): Promise<Result<File, RepositoryAbstraction.Error>> {\n const result = await this.createEntry.execute(\n this.fileModel,\n FileInputToEntryInputMapper.toEntry(data)\n );\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotAuthorized\") {\n return Result.fail(new FileNotAuthorizedError());\n }\n\n return Result.fail(new FilePersistenceError(result.error));\n }\n\n const file = EntryToFileMapper.toFile(result.value);\n return Result.ok(file);\n }\n}\n\nexport const CreateFileRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateFileRepositoryImpl,\n dependencies: [CreateEntryUseCase, FileModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,oBAAoB,IAAIC,qBAAqB;AACtD,SAASC,kBAAkB,QAAQ,4DAA4D;AAC/F,SAASC,SAAS;AAElB,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB,EAAEC,oBAAoB;AACrD,SAASC,2BAA2B;AAEpC,MAAMC,wBAAwB,CAA4C;EACtEC,WAAWA,CACCC,WAAyC,EACzCC,SAA8B,EACxC;IAAA,KAFUD,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,IAAe,EAAsD;IAC/E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CACzC,IAAI,CAACD,SAAS,EACdJ,2BAA2B,CAACQ,OAAO,CAACF,IAAI,CAC5C,CAAC;IAED,IAAIC,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,IAAIF,MAAM,CAACG,KAAK,CAACC,IAAI,KAAK,yBAAyB,EAAE;QACjD,OAAOnB,MAAM,CAACoB,IAAI,CAAC,IAAId,sBAAsB,CAAC,CAAC,CAAC;MACpD;MAEA,OAAON,MAAM,CAACoB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMG,IAAI,GAAGhB,iBAAiB,CAACiB,MAAM,CAACP,MAAM,CAACQ,KAAK,CAAC;IACnD,OAAOvB,MAAM,CAACwB,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMpB,oBAAoB,GAAGC,qBAAqB,CAACuB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEjB,wBAAwB;EACxCkB,YAAY,EAAE,CAACxB,kBAAkB,EAAEC,SAAS;AAChD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileUseCase as UseCaseAbstraction, CreateFileInput, CreateFileRepository } from "./abstractions.js";
3
+ import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ import type { File } from "../../../domain/file/types.js";
6
+ import { FmPermissions } from "../../../features/shared/abstractions.js";
7
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
8
+ declare class CreateFileUseCaseImpl implements UseCaseAbstraction.Interface {
9
+ private identityContext;
10
+ private permissions;
11
+ private repository;
12
+ private getSettings;
13
+ private eventPublisher;
14
+ constructor(identityContext: IdentityContext.Interface, permissions: FmPermissions.Interface, repository: CreateFileRepository.Interface, getSettings: GetSettingsUseCase.Interface, eventPublisher: EventPublisher.Interface);
15
+ execute(input: CreateFileInput, meta?: Record<string, any>): Promise<Result<File, UseCaseAbstraction.Error>>;
16
+ private validateInput;
17
+ }
18
+ export declare const CreateFileUseCase: typeof CreateFileUseCaseImpl & {
19
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateFileUseCase>;
20
+ };
21
+ export {};
@@ -0,0 +1,90 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileUseCase as UseCaseAbstraction, CreateFileRepository } from "./abstractions.js";
3
+ import { GetSettingsUseCase } from "../../settings/GetSettings/abstractions.js";
4
+ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
5
+ import { FileNotAuthorizedError, InvalidFileSizeError } from "../../../domain/file/errors.js";
6
+ import { FileBeforeCreateEvent, FileAfterCreateEvent } from "./events.js";
7
+ import { FmPermissions } from "../../shared/abstractions.js";
8
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
9
+ import { Identity } from "../../../domain/identity/Identity.js";
10
+ class CreateFileUseCaseImpl {
11
+ constructor(identityContext, permissions, repository, getSettings, eventPublisher) {
12
+ this.identityContext = identityContext;
13
+ this.permissions = permissions;
14
+ this.repository = repository;
15
+ this.getSettings = getSettings;
16
+ this.eventPublisher = eventPublisher;
17
+ }
18
+ async execute(input, meta) {
19
+ const hasPermission = await this.permissions.canCreate("file");
20
+ if (!hasPermission) {
21
+ return Result.fail(new FileNotAuthorizedError());
22
+ }
23
+ const validationResult = await this.validateInput(input);
24
+ if (validationResult.isFail()) {
25
+ return Result.fail(validationResult.error);
26
+ }
27
+ const [id] = input.key.split("/");
28
+ const currentIdentity = this.identityContext.getIdentity();
29
+
30
+ // Prepare file input
31
+ const fileInput = {
32
+ id: input.id || id,
33
+ key: input.key,
34
+ name: input.name,
35
+ size: input.size,
36
+ type: input.type,
37
+ metadata: input.metadata || {},
38
+ location: input.location || {
39
+ folderId: "root"
40
+ },
41
+ tags: input.tags || [],
42
+ description: input.description ?? "",
43
+ extensions: meta || {},
44
+ // system attributes
45
+ createdOn: input.createdOn,
46
+ modifiedOn: input.modifiedOn,
47
+ savedOn: input.savedOn,
48
+ createdBy: input.createdBy ? Identity.from(input.createdBy) : Identity.from(currentIdentity),
49
+ modifiedBy: input.modifiedBy ? Identity.from(input.modifiedBy) : undefined,
50
+ savedBy: input.savedBy ? Identity.from(input.savedBy) : Identity.from(currentIdentity)
51
+ };
52
+ await this.eventPublisher.publish(new FileBeforeCreateEvent({
53
+ file: fileInput,
54
+ meta
55
+ }));
56
+ const result = await this.repository.execute(fileInput);
57
+ if (result.isFail()) {
58
+ return Result.fail(result.error);
59
+ }
60
+ await this.eventPublisher.publish(new FileAfterCreateEvent({
61
+ file: result.value,
62
+ meta
63
+ }));
64
+ return Result.ok(result.value);
65
+ }
66
+ async validateInput(input) {
67
+ const settingsResult = await this.getSettings.execute();
68
+ if (settingsResult.isFail()) {
69
+ return Result.ok();
70
+ }
71
+ const settings = settingsResult.value;
72
+ if (settings) {
73
+ // Validate file size
74
+ if (input.size < settings.uploadMinFileSize || input.size > settings.uploadMaxFileSize) {
75
+ return Result.fail(new InvalidFileSizeError({
76
+ size: input.size,
77
+ minSize: settings.uploadMinFileSize,
78
+ maxSize: settings.uploadMaxFileSize
79
+ }));
80
+ }
81
+ }
82
+ return Result.ok();
83
+ }
84
+ }
85
+ export const CreateFileUseCase = UseCaseAbstraction.createImplementation({
86
+ implementation: CreateFileUseCaseImpl,
87
+ dependencies: [IdentityContext, FmPermissions, CreateFileRepository, GetSettingsUseCase, EventPublisher]
88
+ });
89
+
90
+ //# sourceMappingURL=CreateFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","CreateFileUseCase","UseCaseAbstraction","CreateFileRepository","GetSettingsUseCase","EventPublisher","FileNotAuthorizedError","InvalidFileSizeError","FileBeforeCreateEvent","FileAfterCreateEvent","FmPermissions","IdentityContext","Identity","CreateFileUseCaseImpl","constructor","identityContext","permissions","repository","getSettings","eventPublisher","execute","input","meta","hasPermission","canCreate","fail","validationResult","validateInput","isFail","error","id","key","split","currentIdentity","getIdentity","fileInput","name","size","type","metadata","location","folderId","tags","description","extensions","createdOn","modifiedOn","savedOn","createdBy","from","modifiedBy","undefined","savedBy","publish","file","result","value","ok","settingsResult","settings","uploadMinFileSize","uploadMaxFileSize","minSize","maxSize","createImplementation","implementation","dependencies"],"sources":["CreateFileUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateFileUseCase as UseCaseAbstraction,\n CreateFileInput,\n CreateFileRepository\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 { FileBeforeCreateEvent, FileAfterCreateEvent } from \"./events.js\";\nimport { FmPermissions } from \"~/features/shared/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { Identity } from \"~/domain/identity/Identity.js\";\n\nclass CreateFileUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private permissions: FmPermissions.Interface,\n private repository: CreateFileRepository.Interface,\n private getSettings: GetSettingsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface\n ) {}\n\n async execute(\n input: CreateFileInput,\n meta?: Record<string, any>\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 const validationResult = await this.validateInput(input);\n if (validationResult.isFail()) {\n return Result.fail(validationResult.error);\n }\n\n const [id] = input.key.split(\"/\");\n const currentIdentity = this.identityContext.getIdentity();\n\n // Prepare file input\n const fileInput: FileInput = {\n id: input.id || id,\n key: input.key,\n name: input.name,\n size: input.size,\n type: input.type,\n metadata: input.metadata || {},\n location: input.location || { folderId: \"root\" },\n tags: input.tags || [],\n description: input.description ?? \"\",\n extensions: meta || {},\n // system attributes\n createdOn: input.createdOn,\n modifiedOn: input.modifiedOn,\n savedOn: input.savedOn,\n createdBy: input.createdBy\n ? Identity.from(input.createdBy)\n : Identity.from(currentIdentity),\n modifiedBy: input.modifiedBy ? Identity.from(input.modifiedBy) : undefined,\n savedBy: input.savedBy ? Identity.from(input.savedBy) : Identity.from(currentIdentity)\n };\n\n await this.eventPublisher.publish(new FileBeforeCreateEvent({ file: fileInput, meta }));\n\n const result = await this.repository.execute(fileInput);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(new FileAfterCreateEvent({ file: result.value, meta }));\n\n return Result.ok(result.value);\n }\n\n private async validateInput(\n input: 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 // 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 return Result.ok();\n }\n}\n\nexport const CreateFileUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateFileUseCaseImpl,\n dependencies: [\n IdentityContext,\n FmPermissions,\n CreateFileRepository,\n GetSettingsUseCase,\n EventPublisher\n ]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { CreatedBy, File, FileInput } from "../../../domain/file/types.js";
3
+ import { type FilePersistenceError, type InvalidFileSizeError, type FileAlreadyExistsError, FileNotAuthorizedError } from "../../../domain/file/errors.js";
4
+ export interface CreateFileInput {
5
+ id?: string;
6
+ key: string;
7
+ size: number;
8
+ type: string;
9
+ name: string;
10
+ metadata?: Record<string, any>;
11
+ extensions?: Record<string, any>;
12
+ tags?: string[];
13
+ description?: string;
14
+ location?: {
15
+ folderId: string;
16
+ };
17
+ createdOn?: string;
18
+ createdBy?: CreatedBy;
19
+ modifiedOn?: string;
20
+ modifiedBy?: CreatedBy;
21
+ savedOn?: string;
22
+ savedBy?: CreatedBy;
23
+ }
24
+ /**
25
+ * CreateFile repository interface
26
+ */
27
+ export interface ICreateFileRepository {
28
+ execute(data: FileInput): Promise<Result<File, RepositoryError>>;
29
+ }
30
+ export interface ICreateFileRepositoryErrors {
31
+ notAuthorized: FileNotAuthorizedError;
32
+ persistence: FilePersistenceError;
33
+ }
34
+ type RepositoryError = ICreateFileRepositoryErrors[keyof ICreateFileRepositoryErrors];
35
+ /** Persist a newly created file. */
36
+ export declare const CreateFileRepository: import("@webiny/di").Abstraction<ICreateFileRepository>;
37
+ export declare namespace CreateFileRepository {
38
+ type Interface = ICreateFileRepository;
39
+ type Error = RepositoryError;
40
+ }
41
+ /**
42
+ * CreateFile use case interface
43
+ */
44
+ export interface ICreateFileUseCase {
45
+ execute(input: CreateFileInput, meta?: Record<string, any>): Promise<Result<File, UseCaseError>>;
46
+ }
47
+ export interface ICreateFileUseCaseErrors {
48
+ notAuthorized: FileNotAuthorizedError;
49
+ persistence: FilePersistenceError;
50
+ invalidSize: InvalidFileSizeError;
51
+ alreadyExists: FileAlreadyExistsError;
52
+ }
53
+ type UseCaseError = ICreateFileUseCaseErrors[keyof ICreateFileUseCaseErrors];
54
+ /** Upload and create a new file. */
55
+ export declare const CreateFileUseCase: import("@webiny/di").Abstraction<ICreateFileUseCase>;
56
+ export declare namespace CreateFileUseCase {
57
+ type Interface = ICreateFileUseCase;
58
+ type Error = UseCaseError;
59
+ }
60
+ export {};
@@ -0,0 +1,17 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+
3
+ /**
4
+ * CreateFile repository interface
5
+ */
6
+
7
+ /** Persist a newly created file. */
8
+ export const CreateFileRepository = createAbstraction("CreateFileRepository");
9
+
10
+ /**
11
+ * CreateFile use case interface
12
+ */
13
+
14
+ /** Upload and create a new file. */
15
+ export const CreateFileUseCase = createAbstraction("CreateFileUseCase");
16
+
17
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +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 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"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AA8BvD;AACA;AACA;;AAYA;AACA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAOpE;AACA;AACA;;AAiBA;AACA,OAAO,MAAME,iBAAiB,GAAGF,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import type { IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
3
+ import type { File, FileInput } from "../../../domain/file/types.js";
4
+ export interface FileBeforeCreatePayload {
5
+ file: FileInput;
6
+ meta?: Record<string, any>;
7
+ }
8
+ export declare class FileBeforeCreateEvent extends DomainEvent<FileBeforeCreatePayload> {
9
+ eventType: "FileManager/File/BeforeCreate";
10
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileBeforeCreateEvent>>;
11
+ }
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 {
15
+ type Interface = IEventHandler<FileBeforeCreateEvent>;
16
+ type Event = FileBeforeCreateEvent;
17
+ }
18
+ export interface FileAfterCreatePayload {
19
+ file: File;
20
+ meta?: Record<string, any>;
21
+ }
22
+ export declare class FileAfterCreateEvent extends DomainEvent<FileAfterCreatePayload> {
23
+ eventType: "FileManager/File/AfterCreate";
24
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<FileAfterCreateEvent>>;
25
+ }
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 {
29
+ type Interface = IEventHandler<FileAfterCreateEvent>;
30
+ type Event = FileAfterCreateEvent;
31
+ }
@@ -0,0 +1,32 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
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
+ }
13
+ }
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
+ }
27
+ }
28
+
29
+ /** Hook into file lifecycle after a file is created. */
30
+ export const FileAfterCreateEventHandler = createAbstraction("FileAfterCreateEventHandler");
31
+
32
+ //# sourceMappingURL=events.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,4 @@
1
+ export declare const CreateFileFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateFileRepository } from "./CreateFileRepository.js";
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
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,2 @@
1
+ export { CreateFileUseCase } from "./abstractions.js";
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "./events.js";
@@ -0,0 +1,4 @@
1
+ export { CreateFileUseCase } from "./abstractions.js";
2
+ export { FileAfterCreateEventHandler, FileBeforeCreateEventHandler } from "./events.js";
3
+
4
+ //# sourceMappingURL=index.js.map