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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/README.md +7 -13
  5. package/contants.js +2 -7
  6. package/contants.js.map +1 -1
  7. package/delivery/AssetDelivery/Asset.d.ts +3 -7
  8. package/delivery/AssetDelivery/Asset.js +46 -62
  9. package/delivery/AssetDelivery/Asset.js.map +1 -1
  10. package/delivery/AssetDelivery/AssetRequest.d.ts +2 -2
  11. package/delivery/AssetDelivery/AssetRequest.js +19 -25
  12. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  13. package/delivery/AssetDelivery/abstractions/AssetReply.js +28 -34
  14. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  15. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +1 -1
  16. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +4 -12
  17. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  18. package/delivery/AssetDeliveryRoute.d.ts +24 -0
  19. package/delivery/AssetDeliveryRoute.js +69 -0
  20. package/delivery/AssetDeliveryRoute.js.map +1 -0
  21. package/delivery/index.d.ts +7 -17
  22. package/delivery/index.js +6 -194
  23. package/delivery/setupAssetDelivery.d.ts +1 -6
  24. package/delivery/setupAssetDelivery.js +2 -126
  25. package/delivery/setupAssetDelivery.js.map +1 -1
  26. package/domain/file/abstractions.d.ts +17 -0
  27. package/domain/file/abstractions.js +5 -0
  28. package/domain/file/abstractions.js.map +1 -0
  29. package/domain/file/errors.d.ts +59 -0
  30. package/domain/file/errors.js +80 -0
  31. package/domain/file/errors.js.map +1 -0
  32. package/domain/file/file.model.d.ts +12 -0
  33. package/domain/file/file.model.js +70 -0
  34. package/domain/file/file.model.js.map +1 -0
  35. package/domain/file/types.d.ts +53 -0
  36. package/domain/file/types.js +0 -0
  37. package/domain/identity/Identity.d.ts +9 -0
  38. package/domain/identity/Identity.js +12 -0
  39. package/domain/identity/Identity.js.map +1 -0
  40. package/domain/permissionsSchema.d.ts +16 -0
  41. package/domain/permissionsSchema.js +30 -0
  42. package/domain/permissionsSchema.js.map +1 -0
  43. package/domain/settings/constants.d.ts +1 -0
  44. package/domain/settings/constants.js +4 -0
  45. package/domain/settings/constants.js.map +1 -0
  46. package/domain/settings/errors.d.ts +18 -0
  47. package/domain/settings/errors.js +28 -0
  48. package/domain/settings/errors.js.map +1 -0
  49. package/domain/settings/types.d.ts +10 -0
  50. package/domain/settings/types.js +0 -0
  51. package/domain/settings/validation.d.ts +6 -0
  52. package/domain/settings/validation.js +27 -0
  53. package/domain/settings/validation.js.map +1 -0
  54. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  55. package/exports/api/file-manager/assetDelivery.js +8 -0
  56. package/exports/api/file-manager/file.d.ts +13 -0
  57. package/exports/api/file-manager/file.js +13 -0
  58. package/exports/api/file-manager/permissions.d.ts +1 -0
  59. package/exports/api/file-manager/permissions.js +1 -0
  60. package/exports/api/file-manager/settings.d.ts +3 -0
  61. package/exports/api/file-manager/settings.js +3 -0
  62. package/features/FileManagerFeature.d.ts +4 -0
  63. package/features/FileManagerFeature.js +37 -0
  64. package/features/FileManagerFeature.js.map +1 -0
  65. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  66. package/features/assetDelivery/Asset/Asset.js +14 -0
  67. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  68. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  69. package/features/assetDelivery/Asset/abstractions.js +5 -0
  70. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  71. package/features/assetDelivery/Asset/index.d.ts +1 -0
  72. package/features/assetDelivery/Asset/index.js +1 -0
  73. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -0
  74. package/features/assetDelivery/FilesAssetRequestResolver.js +29 -0
  75. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -0
  76. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +8 -0
  77. package/features/assetDelivery/NullAssetOutputStrategy.js +14 -0
  78. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -0
  79. package/features/assetDelivery/NullAssetReply.d.ts +4 -0
  80. package/features/assetDelivery/NullAssetReply.js +14 -0
  81. package/features/assetDelivery/NullAssetReply.js.map +1 -0
  82. package/features/assetDelivery/NullAssetResolver.d.ts +8 -0
  83. package/features/assetDelivery/NullAssetResolver.js +13 -0
  84. package/features/assetDelivery/NullAssetResolver.js.map +1 -0
  85. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  86. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  87. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  88. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  89. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  90. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  91. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  92. package/features/assetDelivery/ObjectKey/index.js +1 -0
  93. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  94. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  95. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  96. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  97. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  98. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  99. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  100. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  101. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  102. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  103. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  104. package/features/assetDelivery/abstractions.d.ts +65 -0
  105. package/features/assetDelivery/abstractions.js +11 -0
  106. package/features/assetDelivery/abstractions.js.map +1 -0
  107. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  108. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  109. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  110. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  111. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  112. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  113. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  114. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  115. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  116. package/features/assetDelivery/assetTypes/image/SharpTransformer.d.ts +18 -0
  117. package/features/assetDelivery/assetTypes/image/SharpTransformer.js +47 -0
  118. package/features/assetDelivery/assetTypes/image/SharpTransformer.js.map +1 -0
  119. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  120. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  121. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  122. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  123. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  124. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  125. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  126. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  127. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  128. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  129. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  130. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  131. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  132. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  133. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  134. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  135. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  136. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  137. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  138. package/features/assetDelivery/feature.d.ts +4 -0
  139. package/features/assetDelivery/feature.js +35 -0
  140. package/features/assetDelivery/feature.js.map +1 -0
  141. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  142. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js +20 -0
  143. package/features/assetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  144. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +5 -0
  145. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +9 -0
  146. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  147. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +11 -0
  148. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +26 -0
  149. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  150. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +8 -0
  151. package/features/assetDelivery/privateFiles/PrivateCache.js +22 -0
  152. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -0
  153. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +11 -0
  154. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +31 -0
  155. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  156. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +19 -0
  157. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +65 -0
  158. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  159. package/features/assetDelivery/privateFiles/PublicCache.d.ts +8 -0
  160. package/features/assetDelivery/privateFiles/PublicCache.js +22 -0
  161. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -0
  162. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +9 -0
  163. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +21 -0
  164. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  165. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +9 -0
  166. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +21 -0
  167. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  168. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  169. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  170. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  171. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +9 -0
  172. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +25 -0
  173. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  174. package/features/assetDelivery/transformation/index.d.ts +5 -0
  175. package/features/assetDelivery/transformation/index.js +4 -0
  176. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  177. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  178. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  179. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  180. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  181. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  182. package/features/file/CreateFile/CreateFileRepository.js +33 -0
  183. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  184. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  185. package/features/file/CreateFile/CreateFileUseCase.js +83 -0
  186. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  187. package/features/file/CreateFile/abstractions.d.ts +60 -0
  188. package/features/file/CreateFile/abstractions.js +6 -0
  189. package/features/file/CreateFile/abstractions.js.map +1 -0
  190. package/features/file/CreateFile/events.d.ts +31 -0
  191. package/features/file/CreateFile/events.js +23 -0
  192. package/features/file/CreateFile/events.js.map +1 -0
  193. package/features/file/CreateFile/feature.d.ts +4 -0
  194. package/features/file/CreateFile/feature.js +13 -0
  195. package/features/file/CreateFile/feature.js.map +1 -0
  196. package/features/file/CreateFile/index.d.ts +2 -0
  197. package/features/file/CreateFile/index.js +2 -0
  198. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  199. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +22 -0
  200. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  201. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  202. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +73 -0
  203. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  204. package/features/file/CreateFilesInBatch/abstractions.d.ts +42 -0
  205. package/features/file/CreateFilesInBatch/abstractions.js +6 -0
  206. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  207. package/features/file/CreateFilesInBatch/events.d.ts +31 -0
  208. package/features/file/CreateFilesInBatch/events.js +23 -0
  209. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  210. package/features/file/CreateFilesInBatch/feature.d.ts +4 -0
  211. package/features/file/CreateFilesInBatch/feature.js +13 -0
  212. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  213. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  214. package/features/file/CreateFilesInBatch/index.js +1 -0
  215. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  216. package/features/file/DeleteFile/DeleteFileRepository.js +32 -0
  217. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  218. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  219. package/features/file/DeleteFile/DeleteFileUseCase.js +43 -0
  220. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  221. package/features/file/DeleteFile/abstractions.d.ts +39 -0
  222. package/features/file/DeleteFile/abstractions.js +6 -0
  223. package/features/file/DeleteFile/abstractions.js.map +1 -0
  224. package/features/file/DeleteFile/events.d.ts +29 -0
  225. package/features/file/DeleteFile/events.js +23 -0
  226. package/features/file/DeleteFile/events.js.map +1 -0
  227. package/features/file/DeleteFile/feature.d.ts +4 -0
  228. package/features/file/DeleteFile/feature.js +13 -0
  229. package/features/file/DeleteFile/feature.js.map +1 -0
  230. package/features/file/DeleteFile/index.d.ts +2 -0
  231. package/features/file/DeleteFile/index.js +2 -0
  232. package/features/file/FileModelProvider.d.ts +31 -0
  233. package/features/file/FileModelProvider.js +22 -0
  234. package/features/file/FileModelProvider.js.map +1 -0
  235. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +12 -0
  236. package/features/file/FileUrlGenerator/FileUrlGenerator.js +19 -0
  237. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  238. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.d.ts +13 -0
  239. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js +28 -0
  240. package/features/file/FileUrlGenerator/SettingsFileUrlPrefixProvider.js.map +1 -0
  241. package/features/file/FileUrlGenerator/abstractions.d.ts +20 -0
  242. package/features/file/FileUrlGenerator/abstractions.js +6 -0
  243. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  244. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  245. package/features/file/FileUrlGenerator/feature.js +13 -0
  246. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  247. package/features/file/FileUrlGenerator/index.d.ts +2 -0
  248. package/features/file/FileUrlGenerator/index.js +1 -0
  249. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  250. package/features/file/GetFile/GetFileRepository.js +34 -0
  251. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  252. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  253. package/features/file/GetFile/GetFileUseCase.js +29 -0
  254. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  255. package/features/file/GetFile/abstractions.d.ts +40 -0
  256. package/features/file/GetFile/abstractions.js +6 -0
  257. package/features/file/GetFile/abstractions.js.map +1 -0
  258. package/features/file/GetFile/feature.d.ts +4 -0
  259. package/features/file/GetFile/feature.js +13 -0
  260. package/features/file/GetFile/feature.js.map +1 -0
  261. package/features/file/GetFile/index.d.ts +1 -0
  262. package/features/file/GetFile/index.js +1 -0
  263. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  264. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  265. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  266. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  267. package/features/file/GetFileByUrl/abstractions.js +5 -0
  268. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  269. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  270. package/features/file/GetFileByUrl/feature.js +11 -0
  271. package/features/file/GetFileByUrl/feature.js.map +1 -0
  272. package/features/file/GetFileByUrl/index.d.ts +1 -0
  273. package/features/file/GetFileByUrl/index.js +1 -0
  274. package/features/file/GetFileContentsById/abstractions.d.ts +20 -0
  275. package/features/file/GetFileContentsById/abstractions.js +5 -0
  276. package/features/file/GetFileContentsById/abstractions.js.map +1 -0
  277. package/features/file/GetFileContentsById/index.d.ts +1 -0
  278. package/features/file/GetFileContentsById/index.js +1 -0
  279. package/features/file/GetFileContentsByKey/abstractions.d.ts +17 -0
  280. package/features/file/GetFileContentsByKey/abstractions.js +5 -0
  281. package/features/file/GetFileContentsByKey/abstractions.js.map +1 -0
  282. package/features/file/GetFileContentsByKey/index.d.ts +1 -0
  283. package/features/file/GetFileContentsByKey/index.js +1 -0
  284. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  285. package/features/file/ListFiles/ListFilesRepository.js +54 -0
  286. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  287. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  288. package/features/file/ListFiles/ListFilesUseCase.js +44 -0
  289. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  290. package/features/file/ListFiles/abstractions.d.ts +49 -0
  291. package/features/file/ListFiles/abstractions.js +6 -0
  292. package/features/file/ListFiles/abstractions.js.map +1 -0
  293. package/features/file/ListFiles/feature.d.ts +4 -0
  294. package/features/file/ListFiles/feature.js +13 -0
  295. package/features/file/ListFiles/feature.js.map +1 -0
  296. package/features/file/ListFiles/index.d.ts +1 -0
  297. package/features/file/ListFiles/index.js +1 -0
  298. package/features/file/ListImagesByTagTool/ListImagesByTagTool.d.ts +37 -0
  299. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js +56 -0
  300. package/features/file/ListImagesByTagTool/ListImagesByTagTool.js.map +1 -0
  301. package/features/file/ListImagesByTagTool/feature.d.ts +4 -0
  302. package/features/file/ListImagesByTagTool/feature.js +11 -0
  303. package/features/file/ListImagesByTagTool/feature.js.map +1 -0
  304. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  305. package/features/file/ListTags/ListTagsRepository.js +43 -0
  306. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  307. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  308. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  309. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  310. package/features/file/ListTags/abstractions.d.ts +45 -0
  311. package/features/file/ListTags/abstractions.js +6 -0
  312. package/features/file/ListTags/abstractions.js.map +1 -0
  313. package/features/file/ListTags/feature.d.ts +4 -0
  314. package/features/file/ListTags/feature.js +13 -0
  315. package/features/file/ListTags/feature.js.map +1 -0
  316. package/features/file/ListTags/index.d.ts +1 -0
  317. package/features/file/ListTags/index.js +1 -0
  318. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  319. package/features/file/UpdateFile/UpdateFileRepository.js +38 -0
  320. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  321. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  322. package/features/file/UpdateFile/UpdateFileUseCase.js +71 -0
  323. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  324. package/features/file/UpdateFile/abstractions.d.ts +56 -0
  325. package/features/file/UpdateFile/abstractions.js +6 -0
  326. package/features/file/UpdateFile/abstractions.js.map +1 -0
  327. package/features/file/UpdateFile/events.d.ts +34 -0
  328. package/features/file/UpdateFile/events.js +23 -0
  329. package/features/file/UpdateFile/events.js.map +1 -0
  330. package/features/file/UpdateFile/feature.d.ts +4 -0
  331. package/features/file/UpdateFile/feature.js +13 -0
  332. package/features/file/UpdateFile/feature.js.map +1 -0
  333. package/features/file/UpdateFile/index.d.ts +2 -0
  334. package/features/file/UpdateFile/index.js +2 -0
  335. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  336. package/features/file/shared/EntryToFileMapper.js +28 -0
  337. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  338. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  339. package/features/file/shared/FileInputToEntryInputMapper.js +32 -0
  340. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  341. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  342. package/features/file/shared/FileToEntryMapper.js +31 -0
  343. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  344. package/features/permissions/abstractions.d.ts +21 -0
  345. package/features/permissions/abstractions.js +6 -0
  346. package/features/permissions/abstractions.js.map +1 -0
  347. package/features/permissions/feature.d.ts +4 -0
  348. package/features/permissions/feature.js +7 -0
  349. package/features/permissions/feature.js.map +1 -0
  350. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  351. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  352. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  353. package/features/settings/GetSettings/abstractions.d.ts +18 -0
  354. package/features/settings/GetSettings/abstractions.js +5 -0
  355. package/features/settings/GetSettings/abstractions.js.map +1 -0
  356. package/features/settings/GetSettings/feature.d.ts +4 -0
  357. package/features/settings/GetSettings/feature.js +11 -0
  358. package/features/settings/GetSettings/feature.js.map +1 -0
  359. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +17 -0
  360. package/features/settings/SettingsInstaller/SettingsInstaller.js +39 -0
  361. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  362. package/features/settings/SettingsInstaller/feature.d.ts +4 -0
  363. package/features/settings/SettingsInstaller/feature.js +11 -0
  364. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  365. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  366. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +55 -0
  367. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  368. package/features/settings/UpdateSettings/abstractions.d.ts +23 -0
  369. package/features/settings/UpdateSettings/abstractions.js +5 -0
  370. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  371. package/features/settings/UpdateSettings/events.d.ts +34 -0
  372. package/features/settings/UpdateSettings/events.js +23 -0
  373. package/features/settings/UpdateSettings/events.js.map +1 -0
  374. package/features/settings/UpdateSettings/feature.d.ts +4 -0
  375. package/features/settings/UpdateSettings/feature.js +11 -0
  376. package/features/settings/UpdateSettings/feature.js.map +1 -0
  377. package/features/settings/UpdateSettings/index.d.ts +2 -0
  378. package/features/settings/UpdateSettings/index.js +2 -0
  379. package/features/shared/abstractions.d.ts +1 -0
  380. package/features/shared/abstractions.js +1 -0
  381. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  382. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  383. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  384. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  385. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  386. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  387. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  388. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  389. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  390. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  391. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  392. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  393. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  394. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  395. package/features/upload/GetUploadPayload/index.js +1 -0
  396. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  397. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  398. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  399. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  400. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  401. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  402. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  403. package/features/upload/ReadFileMetadata/feature.js +11 -0
  404. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  405. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  406. package/features/upload/ReadFileMetadata/index.js +1 -0
  407. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  408. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  409. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  410. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  411. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  412. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  413. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  414. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  415. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  416. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  417. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  418. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  419. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  420. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  421. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  422. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  423. package/features/upload/WriteFileMetadata/feature.js +17 -0
  424. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  425. package/features/upload/index.d.ts +17 -0
  426. package/features/upload/index.js +10 -0
  427. package/features/upload/types.d.ts +28 -0
  428. package/features/upload/types.js +0 -0
  429. package/features/upload/utils/FileExtension.d.ts +6 -0
  430. package/features/upload/utils/FileExtension.js +16 -0
  431. package/features/upload/utils/FileExtension.js.map +1 -0
  432. package/features/upload/utils/FileKey.d.ts +11 -0
  433. package/features/upload/utils/FileKey.js +33 -0
  434. package/features/upload/utils/FileKey.js.map +1 -0
  435. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  436. package/features/upload/utils/FileNormalizer.js +41 -0
  437. package/features/upload/utils/FileNormalizer.js.map +1 -0
  438. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  439. package/features/upload/utils/FileUploadModifier.js +39 -0
  440. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  441. package/features/upload/utils/checkPermissions.d.ts +5 -0
  442. package/features/upload/utils/checkPermissions.js +22 -0
  443. package/features/upload/utils/checkPermissions.js.map +1 -0
  444. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  445. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  446. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  447. package/features/upload/utils/mimeTypes.d.ts +1 -0
  448. package/features/upload/utils/mimeTypes.js +9 -0
  449. package/features/upload/utils/mimeTypes.js.map +1 -0
  450. package/graphql/FmGraphQLSchema.d.ts +24 -0
  451. package/graphql/FmGraphQLSchema.js +458 -0
  452. package/graphql/FmGraphQLSchema.js.map +1 -0
  453. package/index.d.ts +4 -10
  454. package/index.js +13 -74
  455. package/index.js.map +1 -1
  456. package/package.json +39 -30
  457. package/types.d.ts +2 -367
  458. package/types.js +1 -29
  459. package/FileManagerContextSetup.d.ts +0 -13
  460. package/FileManagerContextSetup.js +0 -115
  461. package/FileManagerContextSetup.js.map +0 -1
  462. package/cmsFileStorage/CmsFilesStorage.d.ts +0 -27
  463. package/cmsFileStorage/CmsFilesStorage.js +0 -164
  464. package/cmsFileStorage/CmsFilesStorage.js.map +0 -1
  465. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +0 -7
  466. package/cmsFileStorage/ListFilesWhereProcessor.js +0 -33
  467. package/cmsFileStorage/ListFilesWhereProcessor.js.map +0 -1
  468. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +0 -7
  469. package/cmsFileStorage/ListTagsWhereProcessor.js +0 -33
  470. package/cmsFileStorage/ListTagsWhereProcessor.js.map +0 -1
  471. package/cmsFileStorage/file.model.d.ts +0 -6
  472. package/cmsFileStorage/file.model.js +0 -158
  473. package/cmsFileStorage/file.model.js.map +0 -1
  474. package/createFileManager/files.crud.d.ts +0 -3
  475. package/createFileManager/files.crud.js +0 -328
  476. package/createFileManager/files.crud.js.map +0 -1
  477. package/createFileManager/index.d.ts +0 -3
  478. package/createFileManager/index.js +0 -23
  479. package/createFileManager/index.js.map +0 -1
  480. package/createFileManager/permissions/FilesPermissions.d.ts +0 -4
  481. package/createFileManager/permissions/FilesPermissions.js +0 -11
  482. package/createFileManager/permissions/FilesPermissions.js.map +0 -1
  483. package/createFileManager/permissions/SettingsPermissions.d.ts +0 -4
  484. package/createFileManager/permissions/SettingsPermissions.js +0 -11
  485. package/createFileManager/permissions/SettingsPermissions.js.map +0 -1
  486. package/createFileManager/settings.crud.d.ts +0 -3
  487. package/createFileManager/settings.crud.js +0 -117
  488. package/createFileManager/settings.crud.js.map +0 -1
  489. package/createFileManager/system.crud.d.ts +0 -3
  490. package/createFileManager/system.crud.js +0 -88
  491. package/createFileManager/system.crud.js.map +0 -1
  492. package/createFileManager/types.d.ts +0 -16
  493. package/createFileManager/types.js +0 -7
  494. package/createFileManager/types.js.map +0 -1
  495. package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +0 -11
  496. package/delivery/AssetDelivery/AliasAssetRequestResolver.js +0 -74
  497. package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +0 -1
  498. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +0 -63
  499. package/delivery/AssetDelivery/AssetDeliveryConfig.js +0 -102
  500. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +0 -1
  501. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +0 -6
  502. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +0 -37
  503. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +0 -1
  504. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +0 -4
  505. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +0 -15
  506. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +0 -1
  507. package/delivery/AssetDelivery/NullAssetReply.d.ts +0 -4
  508. package/delivery/AssetDelivery/NullAssetReply.js +0 -20
  509. package/delivery/AssetDelivery/NullAssetReply.js.map +0 -1
  510. package/delivery/AssetDelivery/NullAssetResolver.d.ts +0 -5
  511. package/delivery/AssetDelivery/NullAssetResolver.js +0 -14
  512. package/delivery/AssetDelivery/NullAssetResolver.js.map +0 -1
  513. package/delivery/AssetDelivery/NullRequestResolver.d.ts +0 -4
  514. package/delivery/AssetDelivery/NullRequestResolver.js +0 -14
  515. package/delivery/AssetDelivery/NullRequestResolver.js.map +0 -1
  516. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +0 -8
  517. package/delivery/AssetDelivery/SetCacheControlHeaders.js +0 -25
  518. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +0 -1
  519. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +0 -18
  520. package/delivery/AssetDelivery/SetResponseHeaders.js +0 -25
  521. package/delivery/AssetDelivery/SetResponseHeaders.js.map +0 -1
  522. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +0 -6
  523. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +0 -7
  524. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +0 -1
  525. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +0 -4
  526. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +0 -7
  527. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +0 -1
  528. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +0 -4
  529. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +0 -7
  530. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +0 -1
  531. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +0 -5
  532. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +0 -7
  533. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +0 -1
  534. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +0 -4
  535. package/delivery/AssetDelivery/abstractions/AssetResolver.js +0 -7
  536. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +0 -1
  537. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +0 -4
  538. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +0 -7
  539. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +0 -1
  540. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +0 -4
  541. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +0 -7
  542. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +0 -1
  543. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +0 -4
  544. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +0 -26
  545. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +0 -1
  546. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +0 -4
  547. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +0 -15
  548. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +0 -1
  549. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +0 -7
  550. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +0 -28
  551. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +0 -1
  552. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +0 -6
  553. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +0 -28
  554. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +0 -1
  555. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +0 -8
  556. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +0 -37
  557. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +0 -1
  558. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +0 -13
  559. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +0 -63
  560. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +0 -1
  561. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +0 -6
  562. package/delivery/AssetDelivery/privateFiles/PublicCache.js +0 -28
  563. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +0 -1
  564. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +0 -7
  565. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +0 -27
  566. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +0 -1
  567. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +0 -7
  568. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +0 -27
  569. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +0 -1
  570. package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +0 -7
  571. package/delivery/AssetDelivery/privateFiles/internalIdentity.js +0 -18
  572. package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +0 -1
  573. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +0 -4
  574. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +0 -14
  575. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +0 -1
  576. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -4
  577. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -14
  578. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  579. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +0 -6
  580. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +0 -26
  581. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +0 -1
  582. package/delivery/index.js.map +0 -1
  583. package/enterprise/applyThreatScanning.d.ts +0 -2
  584. package/enterprise/applyThreatScanning.js +0 -20
  585. package/enterprise/applyThreatScanning.js.map +0 -1
  586. package/graphql/baseSchema.d.ts +0 -3
  587. package/graphql/baseSchema.js +0 -121
  588. package/graphql/baseSchema.js.map +0 -1
  589. package/graphql/createFilesTypeDefs.d.ts +0 -7
  590. package/graphql/createFilesTypeDefs.js +0 -184
  591. package/graphql/createFilesTypeDefs.js.map +0 -1
  592. package/graphql/filesSchema.d.ts +0 -4
  593. package/graphql/filesSchema.js +0 -89
  594. package/graphql/filesSchema.js.map +0 -1
  595. package/graphql/getFileByUrl.d.ts +0 -3
  596. package/graphql/getFileByUrl.js +0 -78
  597. package/graphql/getFileByUrl.js.map +0 -1
  598. package/graphql/index.d.ts +0 -4
  599. package/graphql/index.js +0 -55
  600. package/graphql/index.js.map +0 -1
  601. package/graphql/utils.d.ts +0 -11
  602. package/graphql/utils.js +0 -24
  603. package/graphql/utils.js.map +0 -1
  604. package/handlers/manage/imageManager.d.ts +0 -14
  605. package/handlers/manage/imageManager.js +0 -75
  606. package/handlers/manage/imageManager.js.map +0 -1
  607. package/handlers/manage/index.d.ts +0 -5
  608. package/handlers/manage/index.js +0 -59
  609. package/handlers/manage/index.js.map +0 -1
  610. package/handlers/manage/legacyUtils.d.ts +0 -12
  611. package/handlers/manage/legacyUtils.js +0 -34
  612. package/handlers/manage/legacyUtils.js.map +0 -1
  613. package/handlers/manage/utils.d.ts +0 -12
  614. package/handlers/manage/utils.js +0 -34
  615. package/handlers/manage/utils.js.map +0 -1
  616. package/handlers/types.d.ts +0 -8
  617. package/handlers/types.js +0 -7
  618. package/handlers/types.js.map +0 -1
  619. package/handlers/utils/getEnvironment.d.ts +0 -5
  620. package/handlers/utils/getEnvironment.js +0 -13
  621. package/handlers/utils/getEnvironment.js.map +0 -1
  622. package/handlers/utils/getObjectParams.d.ts +0 -9
  623. package/handlers/utils/getObjectParams.js +0 -23
  624. package/handlers/utils/getObjectParams.js.map +0 -1
  625. package/handlers/utils/index.d.ts +0 -2
  626. package/handlers/utils/index.js +0 -22
  627. package/handlers/utils/index.js.map +0 -1
  628. package/modelModifier/CmsModelModifier.d.ts +0 -26
  629. package/modelModifier/CmsModelModifier.js +0 -62
  630. package/modelModifier/CmsModelModifier.js.map +0 -1
  631. package/plugins/FilePhysicalStoragePlugin.d.ts +0 -22
  632. package/plugins/FilePhysicalStoragePlugin.js +0 -31
  633. package/plugins/FilePhysicalStoragePlugin.js.map +0 -1
  634. package/plugins/FileStorageTransformPlugin.d.ts +0 -34
  635. package/plugins/FileStorageTransformPlugin.js +0 -39
  636. package/plugins/FileStorageTransformPlugin.js.map +0 -1
  637. package/plugins/index.d.ts +0 -2
  638. package/plugins/index.js +0 -29
  639. package/plugins/index.js.map +0 -1
  640. package/storage/FileStorage.d.ts +0 -34
  641. package/storage/FileStorage.js +0 -90
  642. package/storage/FileStorage.js.map +0 -1
  643. package/types/file.d.ts +0 -49
  644. package/types/file.js +0 -7
  645. package/types/file.js.map +0 -1
  646. package/types/file.lifecycle.d.ts +0 -44
  647. package/types/file.lifecycle.js +0 -7
  648. package/types/file.lifecycle.js.map +0 -1
  649. package/types.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ import { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
2
+ import { AssetRequestResolver } from "../abstractions.js";
3
+ class PrivateFileAssetRequestResolver {
4
+ constructor(resolver){
5
+ this.resolver = resolver;
6
+ }
7
+ async resolve(request) {
8
+ if (!request.url?.startsWith("/private/")) return this.resolver.resolve(request);
9
+ const params = request.params ?? {};
10
+ const query = request.query ?? {};
11
+ const path = params["*"];
12
+ return new AssetRequest({
13
+ key: decodeURI(path).replace("/private/", ""),
14
+ context: {
15
+ url: request.url ?? "",
16
+ private: true
17
+ },
18
+ options: {
19
+ ...query,
20
+ width: query.width ? parseInt(query.width) : void 0
21
+ }
22
+ });
23
+ }
24
+ }
25
+ const PrivateFileAssetRequestResolverDecorator = AssetRequestResolver.createDecorator({
26
+ decorator: PrivateFileAssetRequestResolver,
27
+ dependencies: []
28
+ });
29
+ export { PrivateFileAssetRequestResolver, PrivateFileAssetRequestResolverDecorator };
30
+
31
+ //# sourceMappingURL=PrivateFileAssetRequestResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js","sources":["../../../../src/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.ts"],"sourcesContent":["import type { Request } from \"@webiny/handler/types.js\";\nimport { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport { AssetRequestResolver, type IAssetRequestResolver } from \"../abstractions.js\";\n\nexport class PrivateFileAssetRequestResolver implements IAssetRequestResolver {\n private readonly resolver: IAssetRequestResolver;\n\n constructor(resolver: IAssetRequestResolver) {\n this.resolver = resolver;\n }\n\n async resolve(request: Request): Promise<AssetRequest | undefined> {\n if (!request.url?.startsWith(\"/private/\")) {\n return this.resolver.resolve(request);\n }\n\n const params = (request.params ?? {}) as Record<string, any>;\n const query = (request.query ?? {}) as Record<string, any>;\n\n const path = params[\"*\"];\n\n return new AssetRequest({\n key: decodeURI(path).replace(\"/private/\", \"\"),\n context: {\n url: request.url ?? \"\",\n private: true\n },\n options: {\n ...query,\n width: query.width ? parseInt(query.width) : undefined\n }\n });\n }\n}\n\nexport const PrivateFileAssetRequestResolverDecorator = AssetRequestResolver.createDecorator({\n decorator: PrivateFileAssetRequestResolver,\n dependencies: []\n});\n"],"names":["PrivateFileAssetRequestResolver","resolver","request","params","query","path","AssetRequest","decodeURI","parseInt","undefined","PrivateFileAssetRequestResolverDecorator","AssetRequestResolver"],"mappings":";;AAIO,MAAMA;IAGT,YAAYC,QAA+B,CAAE;QACzC,IAAI,CAAC,QAAQ,GAAGA;IACpB;IAEA,MAAM,QAAQC,OAAgB,EAAqC;QAC/D,IAAI,CAACA,QAAQ,GAAG,EAAE,WAAW,cACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACA;QAGjC,MAAMC,SAAUD,QAAQ,MAAM,IAAI,CAAC;QACnC,MAAME,QAASF,QAAQ,KAAK,IAAI,CAAC;QAEjC,MAAMG,OAAOF,MAAM,CAAC,IAAI;QAExB,OAAO,IAAIG,aAAa;YACpB,KAAKC,UAAUF,MAAM,OAAO,CAAC,aAAa;YAC1C,SAAS;gBACL,KAAKH,QAAQ,GAAG,IAAI;gBACpB,SAAS;YACb;YACA,SAAS;gBACL,GAAGE,KAAK;gBACR,OAAOA,MAAM,KAAK,GAAGI,SAASJ,MAAM,KAAK,IAAIK;YACjD;QACJ;IACJ;AACJ;AAEO,MAAMC,2CAA2CC,qBAAqB,eAAe,CAAC;IACzF,WAAWX;IACX,cAAc,EAAE;AACpB"}
@@ -0,0 +1,19 @@
1
+ import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ import type { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
3
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
4
+ import { GetFileUseCase } from "../../../features/file/GetFile/index.js";
5
+ import { type IAssetProcessor, type IAssetAuthorizer } from "../abstractions.js";
6
+ export declare class PrivateFilesAssetProcessor implements IAssetProcessor {
7
+ private readonly identityContext;
8
+ private readonly getFile;
9
+ private readonly assetAuthorizer;
10
+ private readonly assetProcessor;
11
+ constructor(identityContext: IdentityContext.Interface, getFile: GetFileUseCase.Interface, assetAuthorizer: IAssetAuthorizer, assetProcessor: IAssetProcessor);
12
+ process(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;
13
+ private isPrivate;
14
+ private requestedViaPrivateEndpoint;
15
+ private requestedViaPublicEndpoint;
16
+ }
17
+ export declare const PrivateFilesAssetProcessorDecorator: typeof PrivateFilesAssetProcessor & {
18
+ __abstraction: import("@webiny/di").Abstraction<IAssetProcessor>;
19
+ };
@@ -0,0 +1,65 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
2
+ import { GetFileUseCase } from "../../file/GetFile/index.js";
3
+ import { NotAuthorizedOutputStrategy } from "./NotAuthorizedOutputStrategy.js";
4
+ import { RedirectToPublicUrlOutputStrategy } from "./RedirectToPublicUrlOutputStrategy.js";
5
+ import { RedirectToPrivateUrlOutputStrategy } from "./RedirectToPrivateUrlOutputStrategy.js";
6
+ import { PrivateCache } from "./PrivateCache.js";
7
+ import { PublicCache } from "./PublicCache.js";
8
+ import { AssetAuthorizer, AssetProcessor } from "../abstractions.js";
9
+ class PrivateFilesAssetProcessor {
10
+ constructor(identityContext, getFile, assetAuthorizer, assetProcessor){
11
+ this.identityContext = identityContext;
12
+ this.getFile = getFile;
13
+ this.assetAuthorizer = assetAuthorizer;
14
+ this.assetProcessor = assetProcessor;
15
+ }
16
+ async process(assetRequest, asset) {
17
+ const id = asset.getId();
18
+ const file = await this.identityContext.withoutAuthorization(async ()=>{
19
+ const fileResult = await this.getFile.execute(id);
20
+ if (fileResult.isFail()) throw fileResult.error;
21
+ return fileResult.value;
22
+ });
23
+ const isPrivateFile = this.isPrivate(file);
24
+ if (!isPrivateFile && this.requestedViaPrivateEndpoint(assetRequest)) {
25
+ asset.setOutputStrategy(new RedirectToPublicUrlOutputStrategy(assetRequest));
26
+ return asset;
27
+ }
28
+ if (isPrivateFile && this.requestedViaPublicEndpoint(assetRequest)) {
29
+ asset.setOutputStrategy(new RedirectToPrivateUrlOutputStrategy(assetRequest));
30
+ return asset;
31
+ }
32
+ try {
33
+ await this.assetAuthorizer.authorize(file);
34
+ } catch {
35
+ asset.setOutputStrategy(new NotAuthorizedOutputStrategy());
36
+ return asset;
37
+ }
38
+ const processedAsset = await this.assetProcessor.process(assetRequest, asset);
39
+ processedAsset.setOutputStrategy((strategy)=>{
40
+ if (!strategy) throw Error("No asset output strategy is configured!");
41
+ return isPrivateFile ? new PrivateCache(strategy) : new PublicCache(strategy);
42
+ });
43
+ return processedAsset;
44
+ }
45
+ isPrivate(file) {
46
+ return file.accessControl && file.accessControl.type.startsWith("private-");
47
+ }
48
+ requestedViaPrivateEndpoint(assetRequest) {
49
+ return assetRequest.getContext().private;
50
+ }
51
+ requestedViaPublicEndpoint(assetRequest) {
52
+ return !this.requestedViaPrivateEndpoint(assetRequest);
53
+ }
54
+ }
55
+ const PrivateFilesAssetProcessorDecorator = AssetProcessor.createDecorator({
56
+ decorator: PrivateFilesAssetProcessor,
57
+ dependencies: [
58
+ IdentityContext,
59
+ GetFileUseCase,
60
+ AssetAuthorizer
61
+ ]
62
+ });
63
+ export { PrivateFilesAssetProcessor, PrivateFilesAssetProcessorDecorator };
64
+
65
+ //# sourceMappingURL=PrivateFilesAssetProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js","sources":["../../../../src/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.ts"],"sourcesContent":["import type { File } from \"~/domain/file/types.js\";\nimport type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetFileUseCase } from \"~/features/file/GetFile/index.js\";\nimport { NotAuthorizedOutputStrategy } from \"./NotAuthorizedOutputStrategy.js\";\nimport { RedirectToPublicUrlOutputStrategy } from \"./RedirectToPublicUrlOutputStrategy.js\";\nimport { RedirectToPrivateUrlOutputStrategy } from \"./RedirectToPrivateUrlOutputStrategy.js\";\nimport { PrivateCache } from \"./PrivateCache.js\";\nimport { PublicCache } from \"./PublicCache.js\";\nimport {\n AssetProcessor,\n AssetAuthorizer,\n type IAssetProcessor,\n type IAssetAuthorizer\n} from \"../abstractions.js\";\n\ninterface MaybePrivate {\n private?: boolean;\n}\n\nexport class PrivateFilesAssetProcessor implements IAssetProcessor {\n private readonly identityContext: IdentityContext.Interface;\n private readonly getFile: GetFileUseCase.Interface;\n private readonly assetAuthorizer: IAssetAuthorizer;\n private readonly assetProcessor: IAssetProcessor;\n\n constructor(\n identityContext: IdentityContext.Interface,\n getFile: GetFileUseCase.Interface,\n assetAuthorizer: IAssetAuthorizer,\n assetProcessor: IAssetProcessor\n ) {\n this.identityContext = identityContext;\n this.getFile = getFile;\n this.assetAuthorizer = assetAuthorizer;\n this.assetProcessor = assetProcessor;\n }\n\n async process(assetRequest: AssetRequest, asset: Asset): Promise<Asset> {\n // Only registered when private files are licensed (register-time gate in AssetDeliveryFeature),\n // so no per-request license guard is needed here.\n const id = asset.getId();\n\n const file = await this.identityContext.withoutAuthorization(async () => {\n const fileResult = await this.getFile.execute(id);\n if (fileResult.isFail()) {\n throw fileResult.error;\n }\n return fileResult.value;\n });\n\n const isPrivateFile = this.isPrivate(file);\n\n if (!isPrivateFile && this.requestedViaPrivateEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPublicUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n if (isPrivateFile && this.requestedViaPublicEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPrivateUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n try {\n await this.assetAuthorizer.authorize(file);\n } catch {\n asset.setOutputStrategy(new NotAuthorizedOutputStrategy());\n return asset;\n }\n\n const processedAsset = await this.assetProcessor.process(assetRequest, asset);\n\n processedAsset.setOutputStrategy(strategy => {\n if (!strategy) {\n throw Error(`No asset output strategy is configured!`);\n }\n return isPrivateFile ? new PrivateCache(strategy) : new PublicCache(strategy);\n });\n\n return processedAsset;\n }\n\n private isPrivate(file: File) {\n return file.accessControl && file.accessControl.type.startsWith(\"private-\");\n }\n\n private requestedViaPrivateEndpoint(assetRequest: AssetRequest) {\n return assetRequest.getContext<MaybePrivate>().private;\n }\n\n private requestedViaPublicEndpoint(assetRequest: AssetRequest) {\n return !this.requestedViaPrivateEndpoint(assetRequest);\n }\n}\n\nexport const PrivateFilesAssetProcessorDecorator = AssetProcessor.createDecorator({\n decorator: PrivateFilesAssetProcessor,\n dependencies: [IdentityContext, GetFileUseCase, AssetAuthorizer]\n});\n"],"names":["PrivateFilesAssetProcessor","identityContext","getFile","assetAuthorizer","assetProcessor","assetRequest","asset","id","file","fileResult","isPrivateFile","RedirectToPublicUrlOutputStrategy","RedirectToPrivateUrlOutputStrategy","NotAuthorizedOutputStrategy","processedAsset","strategy","Error","PrivateCache","PublicCache","PrivateFilesAssetProcessorDecorator","AssetProcessor","IdentityContext","GetFileUseCase","AssetAuthorizer"],"mappings":";;;;;;;;AAqBO,MAAMA;IAMT,YACIC,eAA0C,EAC1CC,OAAiC,EACjCC,eAAiC,EACjCC,cAA+B,CACjC;QACE,IAAI,CAAC,eAAe,GAAGH;QACvB,IAAI,CAAC,OAAO,GAAGC;QACf,IAAI,CAAC,eAAe,GAAGC;QACvB,IAAI,CAAC,cAAc,GAAGC;IAC1B;IAEA,MAAM,QAAQC,YAA0B,EAAEC,KAAY,EAAkB;QAGpE,MAAMC,KAAKD,MAAM,KAAK;QAEtB,MAAME,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;YACzD,MAAMC,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAACF;YAC9C,IAAIE,WAAW,MAAM,IACjB,MAAMA,WAAW,KAAK;YAE1B,OAAOA,WAAW,KAAK;QAC3B;QAEA,MAAMC,gBAAgB,IAAI,CAAC,SAAS,CAACF;QAErC,IAAI,CAACE,iBAAiB,IAAI,CAAC,2BAA2B,CAACL,eAAe;YAClEC,MAAM,iBAAiB,CAAC,IAAIK,kCAAkCN;YAC9D,OAAOC;QACX;QAEA,IAAII,iBAAiB,IAAI,CAAC,0BAA0B,CAACL,eAAe;YAChEC,MAAM,iBAAiB,CAAC,IAAIM,mCAAmCP;YAC/D,OAAOC;QACX;QAEA,IAAI;YACA,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAACE;QACzC,EAAE,OAAM;YACJF,MAAM,iBAAiB,CAAC,IAAIO;YAC5B,OAAOP;QACX;QAEA,MAAMQ,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACT,cAAcC;QAEvEQ,eAAe,iBAAiB,CAACC,CAAAA;YAC7B,IAAI,CAACA,UACD,MAAMC,MAAM;YAEhB,OAAON,gBAAgB,IAAIO,aAAaF,YAAY,IAAIG,YAAYH;QACxE;QAEA,OAAOD;IACX;IAEQ,UAAUN,IAAU,EAAE;QAC1B,OAAOA,KAAK,aAAa,IAAIA,KAAK,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;IACpE;IAEQ,4BAA4BH,YAA0B,EAAE;QAC5D,OAAOA,aAAa,UAAU,GAAiB,OAAO;IAC1D;IAEQ,2BAA2BA,YAA0B,EAAE;QAC3D,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAACA;IAC7C;AACJ;AAEO,MAAMc,sCAAsCC,eAAe,eAAe,CAAC;IAC9E,WAAWpB;IACX,cAAc;QAACqB;QAAiBC;QAAgBC;KAAgB;AACpE"}
@@ -0,0 +1,8 @@
1
+ import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ import type { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
3
+ import type { IAssetOutputStrategy } from "../abstractions.js";
4
+ export declare class PublicCache implements IAssetOutputStrategy {
5
+ private strategy;
6
+ constructor(strategy: IAssetOutputStrategy);
7
+ output(asset: Asset): Promise<AssetReply>;
8
+ }
@@ -0,0 +1,22 @@
1
+ import { parse, stringify } from "cache-control-parser";
2
+ class PublicCache {
3
+ constructor(strategy){
4
+ this.strategy = strategy;
5
+ }
6
+ async output(asset) {
7
+ const reply = await this.strategy.output(asset);
8
+ reply.setHeaders((headers)=>{
9
+ headers.set("cache-control", (value = "")=>{
10
+ const cacheControl = parse(value);
11
+ cacheControl["private"] = false;
12
+ cacheControl["public"] = true;
13
+ return stringify(cacheControl);
14
+ });
15
+ return headers;
16
+ });
17
+ return reply;
18
+ }
19
+ }
20
+ export { PublicCache };
21
+
22
+ //# sourceMappingURL=PublicCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/privateFiles/PublicCache.js","sources":["../../../../src/features/assetDelivery/privateFiles/PublicCache.ts"],"sourcesContent":["import { parse, stringify } from \"cache-control-parser\";\nimport type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetReply } from \"~/delivery/AssetDelivery/abstractions/AssetReply.js\";\nimport type { IAssetOutputStrategy } from \"../abstractions.js\";\n\nexport class PublicCache implements IAssetOutputStrategy {\n private strategy: IAssetOutputStrategy;\n\n constructor(strategy: IAssetOutputStrategy) {\n this.strategy = strategy;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n const reply = await this.strategy.output(asset);\n\n reply.setHeaders(headers => {\n headers.set(\"cache-control\", (value = \"\") => {\n const cacheControl = parse(value);\n cacheControl[\"private\"] = false;\n cacheControl[\"public\"] = true;\n return stringify(cacheControl);\n });\n return headers;\n });\n\n return reply;\n }\n}\n"],"names":["PublicCache","strategy","asset","reply","headers","value","cacheControl","parse","stringify"],"mappings":";AAKO,MAAMA;IAGT,YAAYC,QAA8B,CAAE;QACxC,IAAI,CAAC,QAAQ,GAAGA;IACpB;IAEA,MAAM,OAAOC,KAAY,EAAuB;QAC5C,MAAMC,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACD;QAEzCC,MAAM,UAAU,CAACC,CAAAA;YACbA,QAAQ,GAAG,CAAC,iBAAiB,CAACC,QAAQ,EAAE;gBACpC,MAAMC,eAAeC,MAAMF;gBAC3BC,YAAY,CAAC,UAAU,GAAG;gBAC1BA,YAAY,CAAC,SAAS,GAAG;gBACzB,OAAOE,UAAUF;YACrB;YACA,OAAOF;QACX;QAEA,OAAOD;IACX;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ import type { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
3
+ import { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
4
+ import type { IAssetOutputStrategy } from "../abstractions.js";
5
+ export declare class RedirectToPrivateUrlOutputStrategy implements IAssetOutputStrategy {
6
+ private assetRequest;
7
+ constructor(assetRequest: AssetRequest);
8
+ output(asset: Asset): Promise<AssetReply>;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
2
+ import { ResponseHeaders } from "@webiny/handler";
3
+ class RedirectToPrivateUrlOutputStrategy {
4
+ constructor(assetRequest){
5
+ this.assetRequest = assetRequest;
6
+ }
7
+ async output(asset) {
8
+ const requestUrl = this.assetRequest.getContext().url;
9
+ return new AssetReply({
10
+ code: 301,
11
+ headers: ResponseHeaders.create({
12
+ location: requestUrl.replace("/files/", "/private/"),
13
+ "content-type": asset.getContentType(),
14
+ "cache-control": "public, max-age=2592000"
15
+ })
16
+ });
17
+ }
18
+ }
19
+ export { RedirectToPrivateUrlOutputStrategy };
20
+
21
+ //# sourceMappingURL=RedirectToPrivateUrlOutputStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js","sources":["../../../../src/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.ts"],"sourcesContent":["import type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport { AssetReply } from \"~/delivery/AssetDelivery/abstractions/AssetReply.js\";\nimport { ResponseHeaders } from \"@webiny/handler\";\nimport type { IAssetOutputStrategy } from \"../abstractions.js\";\n\nexport class RedirectToPrivateUrlOutputStrategy implements IAssetOutputStrategy {\n private assetRequest: AssetRequest;\n\n constructor(assetRequest: AssetRequest) {\n this.assetRequest = assetRequest;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n const requestUrl = this.assetRequest.getContext().url;\n\n return new AssetReply({\n code: 301,\n headers: ResponseHeaders.create({\n location: requestUrl.replace(\"/files/\", \"/private/\"),\n \"content-type\": asset.getContentType(),\n \"cache-control\": `public, max-age=${86400 * 30}`\n })\n });\n }\n}\n"],"names":["RedirectToPrivateUrlOutputStrategy","assetRequest","asset","requestUrl","AssetReply","ResponseHeaders"],"mappings":";;AAMO,MAAMA;IAGT,YAAYC,YAA0B,CAAE;QACpC,IAAI,CAAC,YAAY,GAAGA;IACxB;IAEA,MAAM,OAAOC,KAAY,EAAuB;QAC5C,MAAMC,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,GAAG;QAErD,OAAO,IAAIC,WAAW;YAClB,MAAM;YACN,SAASC,gBAAgB,MAAM,CAAC;gBAC5B,UAAUF,WAAW,OAAO,CAAC,WAAW;gBACxC,gBAAgBD,MAAM,cAAc;gBACpC,iBAAiB;YACrB;QACJ;IACJ;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ import type { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
3
+ import { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
4
+ import type { IAssetOutputStrategy } from "../abstractions.js";
5
+ export declare class RedirectToPublicUrlOutputStrategy implements IAssetOutputStrategy {
6
+ private assetRequest;
7
+ constructor(assetRequest: AssetRequest);
8
+ output(asset: Asset): Promise<AssetReply>;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
2
+ import { ResponseHeaders } from "@webiny/handler";
3
+ class RedirectToPublicUrlOutputStrategy {
4
+ constructor(assetRequest){
5
+ this.assetRequest = assetRequest;
6
+ }
7
+ async output(asset) {
8
+ const requestUrl = this.assetRequest.getContext().url;
9
+ return new AssetReply({
10
+ code: 301,
11
+ headers: ResponseHeaders.create({
12
+ location: requestUrl.replace("/private/", "/files/"),
13
+ "content-type": asset.getContentType(),
14
+ "cache-control": "public, max-age=2592000"
15
+ })
16
+ });
17
+ }
18
+ }
19
+ export { RedirectToPublicUrlOutputStrategy };
20
+
21
+ //# sourceMappingURL=RedirectToPublicUrlOutputStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js","sources":["../../../../src/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.ts"],"sourcesContent":["import type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport { AssetReply } from \"~/delivery/AssetDelivery/abstractions/AssetReply.js\";\nimport { ResponseHeaders } from \"@webiny/handler\";\nimport type { IAssetOutputStrategy } from \"../abstractions.js\";\n\nexport class RedirectToPublicUrlOutputStrategy implements IAssetOutputStrategy {\n private assetRequest: AssetRequest;\n\n constructor(assetRequest: AssetRequest) {\n this.assetRequest = assetRequest;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n const requestUrl = this.assetRequest.getContext().url;\n\n return new AssetReply({\n code: 301,\n headers: ResponseHeaders.create({\n location: requestUrl.replace(\"/private/\", \"/files/\"),\n \"content-type\": asset.getContentType(),\n \"cache-control\": `public, max-age=${86400 * 30}`\n })\n });\n }\n}\n"],"names":["RedirectToPublicUrlOutputStrategy","assetRequest","asset","requestUrl","AssetReply","ResponseHeaders"],"mappings":";;AAMO,MAAMA;IAGT,YAAYC,YAA0B,CAAE;QACpC,IAAI,CAAC,YAAY,GAAGA;IACxB;IAEA,MAAM,OAAOC,KAAY,EAAuB;QAC5C,MAAMC,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,GAAG;QAErD,OAAO,IAAIC,WAAW;YAClB,MAAM;YACN,SAASC,gBAAgB,MAAM,CAAC;gBAC5B,UAAUF,WAAW,OAAO,CAAC,aAAa;gBAC1C,gBAAgBD,MAAM,cAAc;gBACpC,iBAAiB;YACrB;QACJ;IACJ;AACJ"}
@@ -0,0 +1,11 @@
1
+ import { AssetContentsReader } from "../../../features/assetDelivery/abstractions.js";
2
+ interface ContentsCallable {
3
+ (): Promise<Buffer> | Buffer;
4
+ }
5
+ export declare class CallableContentsReader implements AssetContentsReader.Interface {
6
+ private readonly callable;
7
+ static create(callable: ContentsCallable): CallableContentsReader;
8
+ private constructor();
9
+ read(): Promise<Buffer>;
10
+ }
11
+ export {};
@@ -0,0 +1,14 @@
1
+ class CallableContentsReader {
2
+ static create(callable) {
3
+ return new CallableContentsReader(callable);
4
+ }
5
+ constructor(callable){
6
+ this.callable = callable;
7
+ }
8
+ async read() {
9
+ return this.callable();
10
+ }
11
+ }
12
+ export { CallableContentsReader };
13
+
14
+ //# sourceMappingURL=CallableContentsReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/transformation/CallableContentsReader.js","sources":["../../../../src/features/assetDelivery/transformation/CallableContentsReader.ts"],"sourcesContent":["import { AssetContentsReader } from \"~/features/assetDelivery/abstractions.js\";\n\ninterface ContentsCallable {\n (): Promise<Buffer> | Buffer;\n}\n\nexport class CallableContentsReader implements AssetContentsReader.Interface {\n private readonly callable: ContentsCallable;\n\n public static create(callable: ContentsCallable) {\n return new CallableContentsReader(callable);\n }\n\n private constructor(callable: ContentsCallable) {\n this.callable = callable;\n }\n\n public async read(): Promise<Buffer> {\n return this.callable();\n }\n}\n"],"names":["CallableContentsReader","callable"],"mappings":"AAMO,MAAMA;IAGT,OAAc,OAAOC,QAA0B,EAAE;QAC7C,OAAO,IAAID,uBAAuBC;IACtC;IAEA,YAAoBA,QAA0B,CAAE;QAC5C,IAAI,CAAC,QAAQ,GAAGA;IACpB;IAEA,MAAa,OAAwB;QACjC,OAAO,IAAI,CAAC,QAAQ;IACxB;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { Container } from "@webiny/di";
2
+ import type { Asset } from "../../../delivery/AssetDelivery/Asset.js";
3
+ import type { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
4
+ import type { IAssetProcessor } from "../abstractions.js";
5
+ export declare class TransformationAssetProcessor implements IAssetProcessor {
6
+ private readonly container;
7
+ constructor(container: Container);
8
+ process(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;
9
+ }
@@ -0,0 +1,25 @@
1
+ import { AssetType } from "../abstractions/AssetType.js";
2
+ class TransformationAssetProcessor {
3
+ constructor(container){
4
+ this.container = container;
5
+ }
6
+ async process(assetRequest, asset) {
7
+ const { original } = assetRequest.getOptions();
8
+ if (original) {
9
+ console.log("Skip transformations; original asset was requested.");
10
+ return asset;
11
+ }
12
+ const assetTypes = this.container.resolveAll(AssetType);
13
+ const match = assetTypes.find((assetType)=>assetType.canHandle(asset));
14
+ if (!match) return asset;
15
+ try {
16
+ const handler = this.container.resolve(match.getHandlerAbstraction());
17
+ return handler.handle(assetRequest, asset);
18
+ } catch {
19
+ return asset;
20
+ }
21
+ }
22
+ }
23
+ export { TransformationAssetProcessor };
24
+
25
+ //# sourceMappingURL=TransformationAssetProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/transformation/TransformationAssetProcessor.js","sources":["../../../../src/features/assetDelivery/transformation/TransformationAssetProcessor.ts"],"sourcesContent":["import type { Container } from \"@webiny/di\";\nimport type { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport type { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport type { IAssetProcessor } from \"../abstractions.js\";\nimport { AssetType } from \"../abstractions/AssetType.js\";\n\nexport class TransformationAssetProcessor implements IAssetProcessor {\n constructor(private readonly container: Container) {}\n\n async process(assetRequest: AssetRequest, asset: Asset): Promise<Asset> {\n const { original } = assetRequest.getOptions();\n\n if (original) {\n console.log(\"Skip transformations; original asset was requested.\");\n return asset;\n }\n\n const assetTypes = this.container.resolveAll(AssetType);\n const match = assetTypes.find(assetType => assetType.canHandle(asset));\n\n if (!match) {\n return asset;\n }\n\n try {\n const handler = this.container.resolve(match.getHandlerAbstraction());\n return handler.handle(assetRequest, asset);\n } catch {\n return asset;\n }\n }\n}\n"],"names":["TransformationAssetProcessor","container","assetRequest","asset","original","console","assetTypes","AssetType","match","assetType","handler"],"mappings":";AAMO,MAAMA;IACT,YAA6BC,SAAoB,CAAE;aAAtBA,SAAS,GAATA;IAAuB;IAEpD,MAAM,QAAQC,YAA0B,EAAEC,KAAY,EAAkB;QACpE,MAAM,EAAEC,QAAQ,EAAE,GAAGF,aAAa,UAAU;QAE5C,IAAIE,UAAU;YACVC,QAAQ,GAAG,CAAC;YACZ,OAAOF;QACX;QAEA,MAAMG,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAACC;QAC7C,MAAMC,QAAQF,WAAW,IAAI,CAACG,CAAAA,YAAaA,UAAU,SAAS,CAACN;QAE/D,IAAI,CAACK,OACD,OAAOL;QAGX,IAAI;YACA,MAAMO,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,MAAM,qBAAqB;YAClE,OAAOE,QAAQ,MAAM,CAACR,cAAcC;QACxC,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;AACJ"}
@@ -0,0 +1,5 @@
1
+ export { CallableContentsReader } from "./CallableContentsReader.js";
2
+ export { WidthCollection } from "../assetTypes/image/WidthCollection.js";
3
+ export { type ImageFormat, SUPPORTED_OUTPUT_FORMATS, DEFAULT_IMAGE_QUALITY, contentTypeForFormat, formatFromContentType, resolveRequestedFormat, clampQuality } from "../assetTypes/image/imageFormat.js";
4
+ export { ImageAssetType, ImageAssetTypeHandler, AssetKeyGenerator, SUPPORTED_TRANSFORMABLE_IMAGES, getImageKey, getCropSignature, getOptimizedImageKeyPrefix, getOptimizedTransformedImageKeyPrefix } from "../assetTypes/image/index.js";
5
+ export type { AssetCrop, AssetImageEdit } from "../assetTypes/image/index.js";
@@ -0,0 +1,4 @@
1
+ export { CallableContentsReader } from "./CallableContentsReader.js";
2
+ export { WidthCollection } from "../assetTypes/image/WidthCollection.js";
3
+ export { DEFAULT_IMAGE_QUALITY, SUPPORTED_OUTPUT_FORMATS, clampQuality, contentTypeForFormat, formatFromContentType, resolveRequestedFormat } from "../assetTypes/image/imageFormat.js";
4
+ export { AssetKeyGenerator, ImageAssetType, ImageAssetTypeHandler, SUPPORTED_TRANSFORMABLE_IMAGES, getCropSignature, getImageKey, getOptimizedImageKeyPrefix, getOptimizedTransformedImageKeyPrefix } from "../assetTypes/image/index.js";
@@ -0,0 +1,11 @@
1
+ import { FileAfterCreateEventHandler } from "../file/CreateFile/events.js";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ declare class ExtractMetadataHandlerImpl implements FileAfterCreateEventHandler.Interface {
4
+ private readonly taskService;
5
+ constructor(taskService: TaskService.Interface);
6
+ handle(event: FileAfterCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const ExtractMetadataHandler: typeof ExtractMetadataHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("../file/CreateFile/events.js").FileAfterCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,25 @@
1
+ import { FileAfterCreateEventHandler } from "../file/CreateFile/events.js";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ class ExtractMetadataHandlerImpl {
4
+ constructor(taskService){
5
+ this.taskService = taskService;
6
+ }
7
+ async handle(event) {
8
+ const { file } = event.payload;
9
+ await this.taskService.trigger({
10
+ definition: "fileManagerExtractMetadata",
11
+ input: {
12
+ fileId: file.id
13
+ }
14
+ });
15
+ }
16
+ }
17
+ const ExtractMetadataHandler = FileAfterCreateEventHandler.createImplementation({
18
+ implementation: ExtractMetadataHandlerImpl,
19
+ dependencies: [
20
+ TaskService
21
+ ]
22
+ });
23
+ export { ExtractMetadataHandler };
24
+
25
+ //# sourceMappingURL=ExtractMetadataHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/extractMetadata/ExtractMetadataHandler.js","sources":["../../../src/features/extractMetadata/ExtractMetadataHandler.ts"],"sourcesContent":["import { FileAfterCreateEventHandler } from \"../file/CreateFile/events.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { ExtractMetadataInput } from \"./ExtractMetadataInput.js\";\n\nclass ExtractMetadataHandlerImpl implements FileAfterCreateEventHandler.Interface {\n constructor(private readonly taskService: TaskService.Interface) {}\n\n async handle(event: FileAfterCreateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n\n await this.taskService.trigger<ExtractMetadataInput>({\n definition: \"fileManagerExtractMetadata\",\n input: {\n fileId: file.id\n }\n });\n }\n}\n\nexport const ExtractMetadataHandler = FileAfterCreateEventHandler.createImplementation({\n implementation: ExtractMetadataHandlerImpl,\n dependencies: [TaskService]\n});\n"],"names":["ExtractMetadataHandlerImpl","taskService","event","file","ExtractMetadataHandler","FileAfterCreateEventHandler","TaskService"],"mappings":";;AAIA,MAAMA;IACF,YAA6BC,WAAkC,CAAE;aAApCA,WAAW,GAAXA;IAAqC;IAElE,MAAM,OAAOC,KAAwC,EAAiB;QAClE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAE9B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAuB;YACjD,YAAY;YACZ,OAAO;gBACH,QAAQC,KAAK,EAAE;YACnB;QACJ;IACJ;AACJ;AAEO,MAAMC,yBAAyBC,4BAA4B,oBAAoB,CAAC;IACnF,gBAAgBL;IAChB,cAAc;QAACM;KAAY;AAC/B"}
@@ -0,0 +1,3 @@
1
+ export interface ExtractMetadataInput {
2
+ fileId: string;
3
+ }
@@ -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 { FileModelProvider } 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 fileModelProvider;
9
+ constructor(createEntry: CreateEntryUseCase.Interface, fileModelProvider: FileModelProvider.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,33 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileRepository } from "./abstractions.js";
3
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
4
+ import { FileModelProvider } 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, fileModelProvider){
10
+ this.createEntry = createEntry;
11
+ this.fileModelProvider = fileModelProvider;
12
+ }
13
+ async execute(data) {
14
+ const fileModel = await this.fileModelProvider.get();
15
+ const result = await this.createEntry.execute(fileModel, FileInputToEntryInputMapper.toEntry(data));
16
+ if (result.isFail()) {
17
+ if ("Cms/Entry/NotAuthorized" === result.error.code) return Result.fail(new FileNotAuthorizedError());
18
+ return Result.fail(new FilePersistenceError(result.error));
19
+ }
20
+ const file = EntryToFileMapper.toFile(result.value);
21
+ return Result.ok(file);
22
+ }
23
+ }
24
+ const CreateFileRepository_CreateFileRepository = CreateFileRepository.createImplementation({
25
+ implementation: CreateFileRepositoryImpl,
26
+ dependencies: [
27
+ CreateEntryUseCase,
28
+ FileModelProvider
29
+ ]
30
+ });
31
+ export { CreateFileRepository_CreateFileRepository as CreateFileRepository };
32
+
33
+ //# sourceMappingURL=CreateFileRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/CreateFile/CreateFileRepository.js","sources":["../../../../src/features/file/CreateFile/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 { FileModelProvider } 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 fileModelProvider: FileModelProvider.Interface\n ) {}\n\n async execute(data: FileInput): Promise<Result<File, RepositoryAbstraction.Error>> {\n const fileModel = await this.fileModelProvider.get();\n const result = await this.createEntry.execute(\n 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, FileModelProvider]\n});\n"],"names":["CreateFileRepositoryImpl","createEntry","fileModelProvider","data","fileModel","result","FileInputToEntryInputMapper","Result","FileNotAuthorizedError","FilePersistenceError","file","EntryToFileMapper","CreateFileRepository","RepositoryAbstraction","CreateEntryUseCase","FileModelProvider"],"mappings":";;;;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,iBAA8C,CACxD;aAFUD,WAAW,GAAXA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,QAAQC,IAAe,EAAsD;QAC/E,MAAMC,YAAY,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG;QAClD,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CACzCD,WACAE,4BAA4B,OAAO,CAACH;QAGxC,IAAIE,OAAO,MAAM,IAAI;YACjB,IAAIA,AAAsB,8BAAtBA,OAAO,KAAK,CAAC,IAAI,EACjB,OAAOE,OAAO,IAAI,CAAC,IAAIC;YAG3B,OAAOD,OAAO,IAAI,CAAC,IAAIE,qBAAqBJ,OAAO,KAAK;QAC5D;QAEA,MAAMK,OAAOC,kBAAkB,MAAM,CAACN,OAAO,KAAK;QAClD,OAAOE,OAAO,EAAE,CAACG;IACrB;AACJ;AAEO,MAAME,4CAAuBC,qBAAAA,oBAA0C,CAAC;IAC3E,gBAAgBb;IAChB,cAAc;QAACc;QAAoBC;KAAkB;AACzD"}
@@ -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,83 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { CreateFileRepository, CreateFileUseCase } 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 { FileAfterCreateEvent, FileBeforeCreateEvent } 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) return Result.fail(new FileNotAuthorizedError());
21
+ const validationResult = await this.validateInput(input);
22
+ if (validationResult.isFail()) return Result.fail(validationResult.error);
23
+ const [id] = input.key.split("/");
24
+ const currentIdentity = this.identityContext.getIdentity();
25
+ const fileInput = {
26
+ id: input.id || id,
27
+ key: input.key,
28
+ name: input.name,
29
+ size: input.size,
30
+ type: input.type,
31
+ metadata: input.metadata || {},
32
+ location: input.location || {
33
+ folderId: "root"
34
+ },
35
+ tags: input.tags || [],
36
+ description: input.description ?? "",
37
+ extensions: meta || {},
38
+ createdOn: input.createdOn,
39
+ modifiedOn: input.modifiedOn,
40
+ savedOn: input.savedOn,
41
+ createdBy: input.createdBy ? Identity.from(input.createdBy) : Identity.from(currentIdentity),
42
+ modifiedBy: input.modifiedBy ? Identity.from(input.modifiedBy) : void 0,
43
+ savedBy: input.savedBy ? Identity.from(input.savedBy) : Identity.from(currentIdentity)
44
+ };
45
+ await this.eventPublisher.publish(new FileBeforeCreateEvent({
46
+ file: fileInput,
47
+ meta
48
+ }));
49
+ const result = await this.repository.execute(fileInput);
50
+ if (result.isFail()) return Result.fail(result.error);
51
+ await this.eventPublisher.publish(new FileAfterCreateEvent({
52
+ file: result.value,
53
+ meta
54
+ }));
55
+ return Result.ok(result.value);
56
+ }
57
+ async validateInput(input) {
58
+ const settingsResult = await this.getSettings.execute();
59
+ if (settingsResult.isFail()) return Result.ok();
60
+ const settings = settingsResult.value;
61
+ if (settings) {
62
+ if (input.size < settings.uploadMinFileSize || input.size > settings.uploadMaxFileSize) return Result.fail(new InvalidFileSizeError({
63
+ size: input.size,
64
+ minSize: settings.uploadMinFileSize,
65
+ maxSize: settings.uploadMaxFileSize
66
+ }));
67
+ }
68
+ return Result.ok();
69
+ }
70
+ }
71
+ const CreateFileUseCase_CreateFileUseCase = CreateFileUseCase.createImplementation({
72
+ implementation: CreateFileUseCaseImpl,
73
+ dependencies: [
74
+ IdentityContext,
75
+ FmPermissions,
76
+ CreateFileRepository,
77
+ GetSettingsUseCase,
78
+ EventPublisher
79
+ ]
80
+ });
81
+ export { CreateFileUseCase_CreateFileUseCase as CreateFileUseCase };
82
+
83
+ //# sourceMappingURL=CreateFileUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/CreateFile/CreateFileUseCase.js","sources":["../../../../src/features/file/CreateFile/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"],"names":["CreateFileUseCaseImpl","identityContext","permissions","repository","getSettings","eventPublisher","input","meta","hasPermission","Result","FileNotAuthorizedError","validationResult","id","currentIdentity","fileInput","Identity","undefined","FileBeforeCreateEvent","result","FileAfterCreateEvent","settingsResult","settings","InvalidFileSizeError","CreateFileUseCase","UseCaseAbstraction","IdentityContext","FmPermissions","CreateFileRepository","GetSettingsUseCase","EventPublisher"],"mappings":";;;;;;;;;AAeA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,WAAoC,EACpCC,UAA0C,EAC1CC,WAAyC,EACzCC,cAAwC,CAClD;aALUJ,eAAe,GAAfA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,WAAW,GAAXA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QACFC,KAAsB,EACtBC,IAA0B,EACqB;QAC/C,MAAMC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvD,IAAI,CAACA,eACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,mBAAmB,MAAM,IAAI,CAAC,aAAa,CAACL;QAClD,IAAIK,iBAAiB,MAAM,IACvB,OAAOF,OAAO,IAAI,CAACE,iBAAiB,KAAK;QAG7C,MAAM,CAACC,GAAG,GAAGN,MAAM,GAAG,CAAC,KAAK,CAAC;QAC7B,MAAMO,kBAAkB,IAAI,CAAC,eAAe,CAAC,WAAW;QAGxD,MAAMC,YAAuB;YACzB,IAAIR,MAAM,EAAE,IAAIM;YAChB,KAAKN,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,MAAMA,MAAM,IAAI;YAChB,MAAMA,MAAM,IAAI;YAChB,UAAUA,MAAM,QAAQ,IAAI,CAAC;YAC7B,UAAUA,MAAM,QAAQ,IAAI;gBAAE,UAAU;YAAO;YAC/C,MAAMA,MAAM,IAAI,IAAI,EAAE;YACtB,aAAaA,MAAM,WAAW,IAAI;YAClC,YAAYC,QAAQ,CAAC;YAErB,WAAWD,MAAM,SAAS;YAC1B,YAAYA,MAAM,UAAU;YAC5B,SAASA,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS,GACpBS,SAAS,IAAI,CAACT,MAAM,SAAS,IAC7BS,SAAS,IAAI,CAACF;YACpB,YAAYP,MAAM,UAAU,GAAGS,SAAS,IAAI,CAACT,MAAM,UAAU,IAAIU;YACjE,SAASV,MAAM,OAAO,GAAGS,SAAS,IAAI,CAACT,MAAM,OAAO,IAAIS,SAAS,IAAI,CAACF;QAC1E;QAEA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAII,sBAAsB;YAAE,MAAMH;YAAWP;QAAK;QAEpF,MAAMW,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACJ;QAE7C,IAAII,OAAO,MAAM,IACb,OAAOT,OAAO,IAAI,CAACS,OAAO,KAAK;QAGnC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAIC,qBAAqB;YAAE,MAAMD,OAAO,KAAK;YAAEX;QAAK;QAEtF,OAAOE,OAAO,EAAE,CAACS,OAAO,KAAK;IACjC;IAEA,MAAc,cACVZ,KAAsB,EACqB;QAC3C,MAAMc,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;QAErD,IAAIA,eAAe,MAAM,IACrB,OAAOX,OAAO,EAAE;QAGpB,MAAMY,WAAWD,eAAe,KAAK;QAErC,IAAIC,UAEA;YAAA,IACIf,MAAM,IAAI,GAAGe,SAAS,iBAAiB,IACvCf,MAAM,IAAI,GAAGe,SAAS,iBAAiB,EAEvC,OAAOZ,OAAO,IAAI,CACd,IAAIa,qBAAqB;gBACrB,MAAMhB,MAAM,IAAI;gBAChB,SAASe,SAAS,iBAAiB;gBACnC,SAASA,SAAS,iBAAiB;YACvC;QAER;QAGJ,OAAOZ,OAAO,EAAE;IACpB;AACJ;AAEO,MAAMc,sCAAoBC,kBAAAA,oBAAuC,CAAC;IACrE,gBAAgBxB;IAChB,cAAc;QACVyB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}