@webiny/api-file-manager 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c27f4d8a31

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 (428) hide show
  1. package/README.md +7 -13
  2. package/contants.d.ts +1 -0
  3. package/contants.js +3 -0
  4. package/contants.js.map +1 -0
  5. package/delivery/AssetDelivery/Asset.d.ts +28 -0
  6. package/delivery/AssetDelivery/Asset.js +59 -0
  7. package/delivery/AssetDelivery/Asset.js.map +1 -0
  8. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +65 -0
  9. package/delivery/AssetDelivery/AssetDeliveryConfig.js +94 -0
  10. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -0
  11. package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
  12. package/delivery/AssetDelivery/AssetRequest.js +22 -0
  13. package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
  14. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +6 -0
  15. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +30 -0
  16. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -0
  17. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +4 -0
  18. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +8 -0
  19. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -0
  20. package/delivery/AssetDelivery/NullAssetReply.d.ts +4 -0
  21. package/delivery/AssetDelivery/NullAssetReply.js +13 -0
  22. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -0
  23. package/delivery/AssetDelivery/NullAssetResolver.d.ts +5 -0
  24. package/delivery/AssetDelivery/NullAssetResolver.js +7 -0
  25. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -0
  26. package/delivery/AssetDelivery/NullRequestResolver.d.ts +4 -0
  27. package/delivery/AssetDelivery/NullRequestResolver.js +7 -0
  28. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -0
  29. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +8 -0
  30. package/delivery/AssetDelivery/SetCacheControlHeaders.js +18 -0
  31. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -0
  32. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +18 -0
  33. package/delivery/AssetDelivery/SetResponseHeaders.js +18 -0
  34. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -0
  35. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +4 -0
  36. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +3 -0
  37. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -0
  38. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +4 -0
  39. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +3 -0
  40. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
  41. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +4 -0
  42. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +3 -0
  43. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -0
  44. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
  45. package/delivery/AssetDelivery/abstractions/AssetReply.js +31 -0
  46. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
  47. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +5 -0
  48. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +3 -0
  49. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
  50. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +4 -0
  51. package/delivery/AssetDelivery/abstractions/AssetResolver.js +3 -0
  52. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -0
  53. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +4 -0
  54. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +3 -0
  55. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
  56. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
  57. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +8 -0
  58. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
  59. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +4 -0
  60. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +3 -0
  61. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -0
  62. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  63. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +19 -0
  64. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  65. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +4 -0
  66. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +8 -0
  67. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  68. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +8 -0
  69. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +20 -0
  70. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  71. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +6 -0
  72. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +21 -0
  73. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
  74. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +8 -0
  75. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +30 -0
  76. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  77. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +13 -0
  78. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +63 -0
  79. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  80. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +6 -0
  81. package/delivery/AssetDelivery/privateFiles/PublicCache.js +21 -0
  82. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
  83. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +7 -0
  84. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +20 -0
  85. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  86. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +7 -0
  87. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +20 -0
  88. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  89. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +4 -0
  90. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +7 -0
  91. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -0
  92. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +4 -0
  93. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +7 -0
  94. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
  95. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -0
  96. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +19 -0
  97. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  98. package/delivery/index.d.ts +16 -0
  99. package/delivery/index.js +12 -0
  100. package/delivery/index.js.map +1 -0
  101. package/delivery/setupAssetDelivery.d.ts +2 -0
  102. package/delivery/setupAssetDelivery.js +114 -0
  103. package/delivery/setupAssetDelivery.js.map +1 -0
  104. package/domain/file/abstractions.d.ts +9 -0
  105. package/domain/file/abstractions.js +8 -0
  106. package/domain/file/abstractions.js.map +1 -0
  107. package/domain/file/errors.d.ts +59 -0
  108. package/domain/file/errors.js +89 -0
  109. package/domain/file/errors.js.map +1 -0
  110. package/domain/file/file.model.d.ts +12 -0
  111. package/domain/file/file.model.js +56 -0
  112. package/domain/file/file.model.js.map +1 -0
  113. package/domain/file/types.d.ts +51 -0
  114. package/domain/file/types.js +3 -0
  115. package/domain/file/types.js.map +1 -0
  116. package/domain/identity/Identity.d.ts +9 -0
  117. package/domain/identity/Identity.js +11 -0
  118. package/domain/identity/Identity.js.map +1 -0
  119. package/domain/settings/constants.d.ts +1 -0
  120. package/domain/settings/constants.js +3 -0
  121. package/domain/settings/constants.js.map +1 -0
  122. package/domain/settings/errors.d.ts +18 -0
  123. package/domain/settings/errors.js +30 -0
  124. package/domain/settings/errors.js.map +1 -0
  125. package/domain/settings/types.d.ts +10 -0
  126. package/domain/settings/types.js +3 -0
  127. package/domain/settings/types.js.map +1 -0
  128. package/domain/settings/validation.d.ts +6 -0
  129. package/domain/settings/validation.js +36 -0
  130. package/domain/settings/validation.js.map +1 -0
  131. package/features/FileManagerFeature.d.ts +1 -0
  132. package/features/FileManagerFeature.js +28 -0
  133. package/features/FileManagerFeature.js.map +1 -0
  134. package/features/file/CreateFile/CreateFileRepository.d.ts +15 -0
  135. package/features/file/CreateFile/CreateFileRepository.js +30 -0
  136. package/features/file/CreateFile/CreateFileRepository.js.map +1 -0
  137. package/features/file/CreateFile/CreateFileUseCase.d.ts +21 -0
  138. package/features/file/CreateFile/CreateFileUseCase.js +89 -0
  139. package/features/file/CreateFile/CreateFileUseCase.js.map +1 -0
  140. package/features/file/CreateFile/abstractions.d.ts +57 -0
  141. package/features/file/CreateFile/abstractions.js +15 -0
  142. package/features/file/CreateFile/abstractions.js.map +1 -0
  143. package/features/file/CreateFile/events.d.ts +29 -0
  144. package/features/file/CreateFile/events.js +28 -0
  145. package/features/file/CreateFile/events.js.map +1 -0
  146. package/features/file/CreateFile/feature.d.ts +1 -0
  147. package/features/file/CreateFile/feature.js +12 -0
  148. package/features/file/CreateFile/feature.js.map +1 -0
  149. package/features/file/CreateFile/index.d.ts +2 -0
  150. package/features/file/CreateFile/index.js +4 -0
  151. package/features/file/CreateFile/index.js.map +1 -0
  152. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.d.ts +13 -0
  153. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js +24 -0
  154. package/features/file/CreateFilesInBatch/CreateFilesInBatchRepository.js.map +1 -0
  155. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.d.ts +19 -0
  156. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js +84 -0
  157. package/features/file/CreateFilesInBatch/CreateFilesInBatchUseCase.js.map +1 -0
  158. package/features/file/CreateFilesInBatch/abstractions.d.ts +40 -0
  159. package/features/file/CreateFilesInBatch/abstractions.js +15 -0
  160. package/features/file/CreateFilesInBatch/abstractions.js.map +1 -0
  161. package/features/file/CreateFilesInBatch/events.d.ts +29 -0
  162. package/features/file/CreateFilesInBatch/events.js +28 -0
  163. package/features/file/CreateFilesInBatch/events.js.map +1 -0
  164. package/features/file/CreateFilesInBatch/feature.d.ts +1 -0
  165. package/features/file/CreateFilesInBatch/feature.js +12 -0
  166. package/features/file/CreateFilesInBatch/feature.js.map +1 -0
  167. package/features/file/CreateFilesInBatch/index.d.ts +1 -0
  168. package/features/file/CreateFilesInBatch/index.js +3 -0
  169. package/features/file/CreateFilesInBatch/index.js.map +1 -0
  170. package/features/file/DeleteFile/DeleteFileRepository.d.ts +15 -0
  171. package/features/file/DeleteFile/DeleteFileRepository.js +30 -0
  172. package/features/file/DeleteFile/DeleteFileRepository.js.map +1 -0
  173. package/features/file/DeleteFile/DeleteFileUseCase.d.ts +17 -0
  174. package/features/file/DeleteFile/DeleteFileUseCase.js +45 -0
  175. package/features/file/DeleteFile/DeleteFileUseCase.js.map +1 -0
  176. package/features/file/DeleteFile/abstractions.d.ts +37 -0
  177. package/features/file/DeleteFile/abstractions.js +15 -0
  178. package/features/file/DeleteFile/abstractions.js.map +1 -0
  179. package/features/file/DeleteFile/events.d.ts +27 -0
  180. package/features/file/DeleteFile/events.js +28 -0
  181. package/features/file/DeleteFile/events.js.map +1 -0
  182. package/features/file/DeleteFile/feature.d.ts +1 -0
  183. package/features/file/DeleteFile/feature.js +12 -0
  184. package/features/file/DeleteFile/feature.js.map +1 -0
  185. package/features/file/DeleteFile/index.d.ts +2 -0
  186. package/features/file/DeleteFile/index.js +4 -0
  187. package/features/file/DeleteFile/index.js.map +1 -0
  188. package/features/file/FileUrlGenerator/abstractions.d.ts +8 -0
  189. package/features/file/FileUrlGenerator/abstractions.js +4 -0
  190. package/features/file/FileUrlGenerator/abstractions.js.map +1 -0
  191. package/features/file/GetFile/GetFileRepository.d.ts +15 -0
  192. package/features/file/GetFile/GetFileRepository.js +33 -0
  193. package/features/file/GetFile/GetFileRepository.js.map +1 -0
  194. package/features/file/GetFile/GetFileUseCase.d.ts +14 -0
  195. package/features/file/GetFile/GetFileUseCase.js +31 -0
  196. package/features/file/GetFile/GetFileUseCase.js.map +1 -0
  197. package/features/file/GetFile/abstractions.d.ts +38 -0
  198. package/features/file/GetFile/abstractions.js +15 -0
  199. package/features/file/GetFile/abstractions.js.map +1 -0
  200. package/features/file/GetFile/feature.d.ts +1 -0
  201. package/features/file/GetFile/feature.js +12 -0
  202. package/features/file/GetFile/feature.js.map +1 -0
  203. package/features/file/GetFile/index.d.ts +1 -0
  204. package/features/file/GetFile/index.js +3 -0
  205. package/features/file/GetFile/index.js.map +1 -0
  206. package/features/file/ListFiles/ListFilesRepository.d.ts +18 -0
  207. package/features/file/ListFiles/ListFilesRepository.js +51 -0
  208. package/features/file/ListFiles/ListFilesRepository.js.map +1 -0
  209. package/features/file/ListFiles/ListFilesUseCase.d.ts +15 -0
  210. package/features/file/ListFiles/ListFilesUseCase.js +45 -0
  211. package/features/file/ListFiles/ListFilesUseCase.js.map +1 -0
  212. package/features/file/ListFiles/abstractions.d.ts +47 -0
  213. package/features/file/ListFiles/abstractions.js +15 -0
  214. package/features/file/ListFiles/abstractions.js.map +1 -0
  215. package/features/file/ListFiles/feature.d.ts +1 -0
  216. package/features/file/ListFiles/feature.js +12 -0
  217. package/features/file/ListFiles/feature.js.map +1 -0
  218. package/features/file/ListFiles/index.d.ts +1 -0
  219. package/features/file/ListFiles/index.js +3 -0
  220. package/features/file/ListFiles/index.js.map +1 -0
  221. package/features/file/ListTags/ListTagsRepository.d.ts +16 -0
  222. package/features/file/ListTags/ListTagsRepository.js +47 -0
  223. package/features/file/ListTags/ListTagsRepository.js.map +1 -0
  224. package/features/file/ListTags/ListTagsUseCase.d.ts +13 -0
  225. package/features/file/ListTags/ListTagsUseCase.js +31 -0
  226. package/features/file/ListTags/ListTagsUseCase.js.map +1 -0
  227. package/features/file/ListTags/abstractions.d.ts +43 -0
  228. package/features/file/ListTags/abstractions.js +15 -0
  229. package/features/file/ListTags/abstractions.js.map +1 -0
  230. package/features/file/ListTags/feature.d.ts +1 -0
  231. package/features/file/ListTags/feature.js +12 -0
  232. package/features/file/ListTags/feature.js.map +1 -0
  233. package/features/file/ListTags/index.d.ts +1 -0
  234. package/features/file/ListTags/index.js +3 -0
  235. package/features/file/ListTags/index.js.map +1 -0
  236. package/features/file/UpdateFile/UpdateFileRepository.d.ts +15 -0
  237. package/features/file/UpdateFile/UpdateFileRepository.js +39 -0
  238. package/features/file/UpdateFile/UpdateFileRepository.js.map +1 -0
  239. package/features/file/UpdateFile/UpdateFileUseCase.d.ts +20 -0
  240. package/features/file/UpdateFile/UpdateFileUseCase.js +78 -0
  241. package/features/file/UpdateFile/UpdateFileUseCase.js.map +1 -0
  242. package/features/file/UpdateFile/abstractions.d.ts +53 -0
  243. package/features/file/UpdateFile/abstractions.js +15 -0
  244. package/features/file/UpdateFile/abstractions.js.map +1 -0
  245. package/features/file/UpdateFile/events.d.ts +32 -0
  246. package/features/file/UpdateFile/events.js +28 -0
  247. package/features/file/UpdateFile/events.js.map +1 -0
  248. package/features/file/UpdateFile/feature.d.ts +1 -0
  249. package/features/file/UpdateFile/feature.js +12 -0
  250. package/features/file/UpdateFile/feature.js.map +1 -0
  251. package/features/file/UpdateFile/index.d.ts +2 -0
  252. package/features/file/UpdateFile/index.js +4 -0
  253. package/features/file/UpdateFile/index.js.map +1 -0
  254. package/features/file/shared/EntryToFileMapper.d.ts +5 -0
  255. package/features/file/shared/EntryToFileMapper.js +26 -0
  256. package/features/file/shared/EntryToFileMapper.js.map +1 -0
  257. package/features/file/shared/FileInputToEntryInputMapper.d.ts +5 -0
  258. package/features/file/shared/FileInputToEntryInputMapper.js +30 -0
  259. package/features/file/shared/FileInputToEntryInputMapper.js.map +1 -0
  260. package/features/file/shared/FileToEntryMapper.d.ts +5 -0
  261. package/features/file/shared/FileToEntryMapper.js +29 -0
  262. package/features/file/shared/FileToEntryMapper.js.map +1 -0
  263. package/features/settings/GetSettings/GetSettingsUseCase.d.ts +13 -0
  264. package/features/settings/GetSettings/GetSettingsUseCase.js +28 -0
  265. package/features/settings/GetSettings/GetSettingsUseCase.js.map +1 -0
  266. package/features/settings/GetSettings/abstractions.d.ts +17 -0
  267. package/features/settings/GetSettings/abstractions.js +9 -0
  268. package/features/settings/GetSettings/abstractions.js.map +1 -0
  269. package/features/settings/GetSettings/feature.d.ts +1 -0
  270. package/features/settings/GetSettings/feature.js +10 -0
  271. package/features/settings/GetSettings/feature.js.map +1 -0
  272. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +15 -0
  273. package/features/settings/SettingsInstaller/SettingsInstaller.js +35 -0
  274. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -0
  275. package/features/settings/SettingsInstaller/feature.d.ts +1 -0
  276. package/features/settings/SettingsInstaller/feature.js +10 -0
  277. package/features/settings/SettingsInstaller/feature.js.map +1 -0
  278. package/features/settings/UpdateSettings/UpdateSettingsUseCase.d.ts +18 -0
  279. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js +62 -0
  280. package/features/settings/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  281. package/features/settings/UpdateSettings/abstractions.d.ts +22 -0
  282. package/features/settings/UpdateSettings/abstractions.js +9 -0
  283. package/features/settings/UpdateSettings/abstractions.js.map +1 -0
  284. package/features/settings/UpdateSettings/events.d.ts +32 -0
  285. package/features/settings/UpdateSettings/events.js +28 -0
  286. package/features/settings/UpdateSettings/events.js.map +1 -0
  287. package/features/settings/UpdateSettings/feature.d.ts +1 -0
  288. package/features/settings/UpdateSettings/feature.js +10 -0
  289. package/features/settings/UpdateSettings/feature.js.map +1 -0
  290. package/features/settings/UpdateSettings/index.d.ts +2 -0
  291. package/features/settings/UpdateSettings/index.js +4 -0
  292. package/features/settings/UpdateSettings/index.js.map +1 -0
  293. package/features/shared/abstractions.d.ts +1 -0
  294. package/features/shared/abstractions.js +3 -0
  295. package/features/shared/abstractions.js.map +1 -0
  296. package/graphql/baseSchema.d.ts +3 -0
  297. package/graphql/baseSchema.js +103 -0
  298. package/graphql/baseSchema.js.map +1 -0
  299. package/graphql/createFilesTypeDefs.d.ts +7 -0
  300. package/graphql/createFilesTypeDefs.js +199 -0
  301. package/graphql/createFilesTypeDefs.js.map +1 -0
  302. package/graphql/filesSchema.d.ts +4 -0
  303. package/graphql/filesSchema.js +116 -0
  304. package/graphql/filesSchema.js.map +1 -0
  305. package/graphql/getFileByUrl.d.ts +3 -0
  306. package/graphql/getFileByUrl.js +69 -0
  307. package/graphql/getFileByUrl.js.map +1 -0
  308. package/graphql/index.d.ts +4 -0
  309. package/graphql/index.js +53 -0
  310. package/graphql/index.js.map +1 -0
  311. package/graphql/utils.d.ts +11 -0
  312. package/graphql/utils.js +17 -0
  313. package/graphql/utils.js.map +1 -0
  314. package/index.d.ts +7 -0
  315. package/index.js +37 -0
  316. package/index.js.map +1 -0
  317. package/modelModifier/CmsModelModifier.d.ts +26 -0
  318. package/modelModifier/CmsModelModifier.js +54 -0
  319. package/modelModifier/CmsModelModifier.js.map +1 -0
  320. package/package.json +26 -39
  321. package/permissions/schema.d.ts +73 -0
  322. package/permissions/schema.js +20 -0
  323. package/permissions/schema.js.map +1 -0
  324. package/types.d.ts +1 -356
  325. package/types.js +2 -4
  326. package/types.js.map +1 -1
  327. package/handlers/download/index.d.ts +0 -3
  328. package/handlers/download/index.js +0 -132
  329. package/handlers/download/index.js.map +0 -1
  330. package/handlers/manage/index.d.ts +0 -5
  331. package/handlers/manage/index.js +0 -71
  332. package/handlers/manage/index.js.map +0 -1
  333. package/handlers/transform/index.d.ts +0 -2
  334. package/handlers/transform/index.js +0 -91
  335. package/handlers/transform/index.js.map +0 -1
  336. package/handlers/transform/loaders/imageLoader.d.ts +0 -30
  337. package/handlers/transform/loaders/imageLoader.js +0 -105
  338. package/handlers/transform/loaders/imageLoader.js.map +0 -1
  339. package/handlers/transform/loaders/index.d.ts +0 -8
  340. package/handlers/transform/loaders/index.js +0 -13
  341. package/handlers/transform/loaders/index.js.map +0 -1
  342. package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
  343. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -58
  344. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
  345. package/handlers/transform/managers/imageManager.d.ts +0 -15
  346. package/handlers/transform/managers/imageManager.js +0 -63
  347. package/handlers/transform/managers/imageManager.js.map +0 -1
  348. package/handlers/transform/managers/index.d.ts +0 -5
  349. package/handlers/transform/managers/index.js +0 -13
  350. package/handlers/transform/managers/index.js.map +0 -1
  351. package/handlers/transform/optimizeImage.d.ts +0 -3
  352. package/handlers/transform/optimizeImage.js +0 -48
  353. package/handlers/transform/optimizeImage.js.map +0 -1
  354. package/handlers/transform/transformImage.d.ts +0 -10
  355. package/handlers/transform/transformImage.js +0 -30
  356. package/handlers/transform/transformImage.js.map +0 -1
  357. package/handlers/transform/utils.d.ts +0 -12
  358. package/handlers/transform/utils.js +0 -46
  359. package/handlers/transform/utils.js.map +0 -1
  360. package/handlers/types.d.ts +0 -8
  361. package/handlers/types.js +0 -5
  362. package/handlers/types.js.map +0 -1
  363. package/handlers/utils/getEnvironment.d.ts +0 -5
  364. package/handlers/utils/getEnvironment.js +0 -13
  365. package/handlers/utils/getEnvironment.js.map +0 -1
  366. package/handlers/utils/getObjectParams.d.ts +0 -9
  367. package/handlers/utils/getObjectParams.js +0 -25
  368. package/handlers/utils/getObjectParams.js.map +0 -1
  369. package/handlers/utils/index.d.ts +0 -2
  370. package/handlers/utils/index.js +0 -23
  371. package/handlers/utils/index.js.map +0 -1
  372. package/plugins/crud/files/validation.d.ts +0 -3
  373. package/plugins/crud/files/validation.js +0 -41
  374. package/plugins/crud/files/validation.js.map +0 -1
  375. package/plugins/crud/files.crud.d.ts +0 -4
  376. package/plugins/crud/files.crud.js +0 -431
  377. package/plugins/crud/files.crud.js.map +0 -1
  378. package/plugins/crud/settings.crud.d.ts +0 -5
  379. package/plugins/crud/settings.crud.js +0 -116
  380. package/plugins/crud/settings.crud.js.map +0 -1
  381. package/plugins/crud/system.crud.d.ts +0 -4
  382. package/plugins/crud/system.crud.js +0 -153
  383. package/plugins/crud/system.crud.js.map +0 -1
  384. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  385. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  386. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  387. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  388. package/plugins/crud/utils/createFileModel.js +0 -77
  389. package/plugins/crud/utils/createFileModel.js.map +0 -1
  390. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  391. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  392. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  393. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
  394. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
  395. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  396. package/plugins/definitions/FilePlugin.d.ts +0 -136
  397. package/plugins/definitions/FilePlugin.js +0 -70
  398. package/plugins/definitions/FilePlugin.js.map +0 -1
  399. package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
  400. package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
  401. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  402. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  403. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  404. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  405. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  406. package/plugins/definitions/InstallationPlugin.js +0 -42
  407. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  408. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  409. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  410. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  411. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  412. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  413. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  414. package/plugins/graphql.d.ts +0 -4
  415. package/plugins/graphql.js +0 -290
  416. package/plugins/graphql.js.map +0 -1
  417. package/plugins/index.d.ts +0 -2
  418. package/plugins/index.js +0 -24
  419. package/plugins/index.js.map +0 -1
  420. package/plugins/storage/FileStorage.d.ts +0 -30
  421. package/plugins/storage/FileStorage.js +0 -103
  422. package/plugins/storage/FileStorage.js.map +0 -1
  423. package/plugins/storage/index.d.ts +0 -4
  424. package/plugins/storage/index.js +0 -26
  425. package/plugins/storage/index.js.map +0 -1
  426. package/utils.d.ts +0 -4
  427. package/utils.js +0 -16
  428. package/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["renderFields","renderInputFields","renderListFilterFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFilesTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","type","inputCreateFields","inputUpdateFields","listFilterFieldsRender","excludeFields","map","f","typeDefs","join","allFiltersAsString"],"sources":["createFilesTypeDefs.ts"],"sourcesContent":["import type {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\n\nexport interface CreateFilesTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFilesTypeDefs = (params: CreateFilesTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\", \"status\"]\n });\n\n return /* GraphQL */ `\n type FmFile_Location {\n folderId: ID!\n }\n\n input FmFile_LocationInput {\n folderId: ID!\n }\n\n input FmFile_LocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n \n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n type FmFile {\n id: ID!\n createdOn: DateTime!\n modifiedOn: DateTime\n savedOn: DateTime!\n createdBy: FmCreatedBy!\n modifiedBy: FmCreatedBy\n savedBy: FmCreatedBy!\n location: FmFile_Location!\n src: String\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FmCreatedByInput {\n id: ID!\n displayName: String!\n type: String!\n }\n\n input FmFileCreateInput {\n id: ID!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: FmCreatedByInput\n modifiedBy: FmCreatedByInput\n savedBy: FmCreatedByInput\n location: FmFile_LocationInput\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input FmFileUpdateInput {\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: FmCreatedByInput\n modifiedBy: FmCreatedByInput\n savedBy: FmCreatedByInput\n location: FmFile_LocationInput\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type FmFileResponse {\n data: FmFile\n error: FmError\n }\n\n input FmFileListWhereInput {\n ${listFilterFieldsRender.allFiltersAsString()}\n location: FmFile_LocationWhereInput\n AND: [FmFileListWhereInput!]\n OR: [FmFileListWhereInput!]\n }\n\n type FmFileListResponse {\n data: [FmFile!]\n error: FmError\n meta: FmListMeta\n }\n\n enum FmFileListSorter {\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n name_ASC\n name_DESC\n key_ASC\n key_DESC\n type_ASC\n type_DESC\n size_ASC\n size_DESC\n }\n\n input FmTagsListWhereInput {\n createdBy: String\n tags_startsWith: String\n tags_not_startsWith: String\n }\n\n type FmTag {\n tag: String!\n count: Number!\n }\n\n type FmTagsListResponse {\n data: [FmTag!]\n error: FmError\n }\n\n type FmCreateFilesResponse {\n data: [FmFile!]\n error: FmError\n }\n \n type FmFileModelResponse {\n data: JSON\n error: FmError\n }\n\n extend type FmQuery {\n getFileModel: FmFileModelResponse!\n getFile(id: ID!): FmFileResponse!\n listFiles(\n search: String\n where: FmFileListWhereInput\n limit: Int\n after: String\n sort: [FmFileListSorter!]\n ): FmFileListResponse!\n listTags(where: FmTagsListWhereInput): FmTagsListResponse!\n }\n\n extend type FmMutation {\n createFile(data: FmFileCreateInput!): FmFileResponse!\n createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!\n updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!\n deleteFile(id: ID!): FmBooleanResponse!\n }\n `;\n};\n"],"mappings":"AAKA,SAASA,YAAY,QAAQ,gDAAgD;AAC7E,SAASC,iBAAiB,QAAQ,qDAAqD;AACvF,SAASC,sBAAsB,QAAQ,0DAA0D;AAQjG,MAAMC,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAIC,MAAiC,IAAa;EAC9E,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAGrB,YAAY,CAAC;IAC5BkB,MAAM;IACND,KAAK;IACLN,MAAM;IACNW,IAAI,EAAE,QAAQ;IACdF;EACJ,CAAC,CAAC;EACF,MAAMG,iBAAiB,GAAGtB,iBAAiB,CAAC;IACxCiB,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAGvB,iBAAiB,CAAC;IACxCiB,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EACF,MAAMK,sBAAsB,GAAGvB,sBAAsB,CAAC;IAClDe,KAAK;IACLN,MAAM,EAAEM,KAAK,CAACN,MAAM;IACpBW,IAAI,EAAE,QAAQ;IACdF,gBAAgB;IAChBM,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ;EACvC,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAUL,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUP,iBAAiB,CAACI,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcP,iBAAiB,CAACI,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcL,sBAAsB,CAACM,kBAAkB,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import type { CreateFilesTypeDefsParams } from "../graphql/createFilesTypeDefs.js";
3
+ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
4
+ export declare const createFilesSchema: (params: CreateFilesTypeDefsParams) => GraphQLSchemaPlugin<ApiCoreContext>;
@@ -0,0 +1,116 @@
1
+ import { ErrorResponse, GraphQLSchemaPlugin, ListResponse, Response } from "@webiny/handler-graphql";
2
+ import { emptyResolver, resolve } from "./utils.js";
3
+ import { createFilesTypeDefs } from "./createFilesTypeDefs.js";
4
+ import NotAuthorizedResponse from "@webiny/api-core/graphql/security/NotAuthorizedResponse.js";
5
+ import { GetFileUseCase } from "../features/file/GetFile/abstractions.js";
6
+ import { ListFilesUseCase } from "../features/file/ListFiles/abstractions.js";
7
+ import { ListTagsUseCase } from "../features/file/ListTags/abstractions.js";
8
+ import { CreateFileUseCase } from "../features/file/CreateFile/abstractions.js";
9
+ import { CreateFilesInBatchUseCase } from "../features/file/CreateFilesInBatch/abstractions.js";
10
+ import { UpdateFileUseCase } from "../features/file/UpdateFile/abstractions.js";
11
+ import { DeleteFileUseCase } from "../features/file/DeleteFile/abstractions.js";
12
+ import { GetSettingsUseCase } from "../features/settings/GetSettings/abstractions.js";
13
+ import { FileModel } from "../domain/file/abstractions.js";
14
+ export const createFilesSchema = params => {
15
+ const fileManagerGraphQL = new GraphQLSchemaPlugin({
16
+ typeDefs: createFilesTypeDefs(params),
17
+ resolvers: {
18
+ Query: {
19
+ fileManager: emptyResolver
20
+ },
21
+ Mutation: {
22
+ fileManager: emptyResolver
23
+ },
24
+ FmFile: {
25
+ async src(file, _, context) {
26
+ // TODO: create `FileUrlGenerator` service to use here
27
+ const getSettings = context.container.resolve(GetSettingsUseCase);
28
+ const result = await getSettings.execute();
29
+ const settings = result.value;
30
+ return (settings?.srcPrefix || "") + file.key;
31
+ }
32
+ },
33
+ FmQuery: {
34
+ getFileModel(_, __, context) {
35
+ const identity = context.security.getIdentity();
36
+ if (!identity) {
37
+ return new NotAuthorizedResponse();
38
+ }
39
+ return resolve(async () => {
40
+ return context.container.resolve(FileModel);
41
+ });
42
+ },
43
+ async getFile(_, args, context) {
44
+ const getFile = context.container.resolve(GetFileUseCase);
45
+ const result = await getFile.execute(args.id);
46
+ if (result.isFail()) {
47
+ return new ErrorResponse(result.error);
48
+ }
49
+ return new Response(result.value);
50
+ },
51
+ async listFiles(_, args, context) {
52
+ const listFiles = context.container.resolve(ListFilesUseCase);
53
+ const result = await listFiles.execute(args);
54
+ if (result.isFail()) {
55
+ return new ErrorResponse(result.error);
56
+ }
57
+ return new ListResponse(result.value.items, result.value.meta);
58
+ },
59
+ async listTags(_, args, context) {
60
+ const listTags = context.container.resolve(ListTagsUseCase);
61
+ const result = await listTags.execute(args || {});
62
+ if (result.isFail()) {
63
+ return new ErrorResponse(result.error);
64
+ }
65
+ return new Response(result.value);
66
+ }
67
+ },
68
+ FmMutation: {
69
+ async createFile(_, args, context) {
70
+ const createFile = context.container.resolve(CreateFileUseCase);
71
+ const result = await createFile.execute(args.data);
72
+ if (result.isFail()) {
73
+ return new ErrorResponse(result.error);
74
+ }
75
+ return new Response(result.value);
76
+ },
77
+ async createFiles(_, args, context) {
78
+ const createFilesInBatch = context.container.resolve(CreateFilesInBatchUseCase);
79
+ const result = await createFilesInBatch.execute({
80
+ files: args.data,
81
+ meta: args.meta
82
+ });
83
+ if (result.isFail()) {
84
+ return new ErrorResponse(result.error);
85
+ }
86
+ return new Response(result.value);
87
+ },
88
+ async updateFile(_, args, context) {
89
+ const updateFile = context.container.resolve(UpdateFileUseCase);
90
+ const result = await updateFile.execute({
91
+ id: args.id,
92
+ ...args.data
93
+ });
94
+ if (result.isFail()) {
95
+ return new ErrorResponse(result.error);
96
+ }
97
+ return new Response(result.value);
98
+ },
99
+ async deleteFile(_, args, context) {
100
+ const deleteFile = context.container.resolve(DeleteFileUseCase);
101
+ const result = await deleteFile.execute(args.id);
102
+ if (result.isFail()) {
103
+ return new ErrorResponse(result.error);
104
+ }
105
+
106
+ // TODO: deletion from Cloud storage should be implemented in the `api-file-manager-s3` as an event handler
107
+ return new Response(true);
108
+ }
109
+ }
110
+ }
111
+ });
112
+ fileManagerGraphQL.name = "fm.graphql.files";
113
+ return fileManagerGraphQL;
114
+ };
115
+
116
+ //# sourceMappingURL=filesSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ErrorResponse","GraphQLSchemaPlugin","ListResponse","Response","emptyResolver","resolve","createFilesTypeDefs","NotAuthorizedResponse","GetFileUseCase","ListFilesUseCase","ListTagsUseCase","CreateFileUseCase","CreateFilesInBatchUseCase","UpdateFileUseCase","DeleteFileUseCase","GetSettingsUseCase","FileModel","createFilesSchema","params","fileManagerGraphQL","typeDefs","resolvers","Query","fileManager","Mutation","FmFile","src","file","_","context","getSettings","container","result","execute","settings","value","srcPrefix","key","FmQuery","getFileModel","__","identity","security","getIdentity","getFile","args","id","isFail","error","listFiles","items","meta","listTags","FmMutation","createFile","data","createFiles","createFilesInBatch","files","updateFile","deleteFile","name"],"sources":["filesSchema.ts"],"sourcesContent":["import {\n ErrorResponse,\n GraphQLSchemaPlugin,\n ListResponse,\n Response\n} from \"@webiny/handler-graphql\";\nimport { emptyResolver, resolve } from \"./utils.js\";\nimport type { CreateFilesTypeDefsParams } from \"~/graphql/createFilesTypeDefs.js\";\nimport { createFilesTypeDefs } from \"~/graphql/createFilesTypeDefs.js\";\nimport NotAuthorizedResponse from \"@webiny/api-core/graphql/security/NotAuthorizedResponse.js\";\nimport { GetFileUseCase } from \"~/features/file/GetFile/abstractions.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/abstractions.js\";\nimport { ListTagsUseCase } from \"~/features/file/ListTags/abstractions.js\";\nimport { CreateFileUseCase } from \"~/features/file/CreateFile/abstractions.js\";\nimport { CreateFilesInBatchUseCase } from \"~/features/file/CreateFilesInBatch/abstractions.js\";\nimport { UpdateFileUseCase } from \"~/features/file/UpdateFile/abstractions.js\";\nimport { DeleteFileUseCase } from \"~/features/file/DeleteFile/abstractions.js\";\nimport { GetSettingsUseCase } from \"~/features/settings/GetSettings/abstractions.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\n\nexport const createFilesSchema = (params: CreateFilesTypeDefsParams) => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: createFilesTypeDefs(params),\n resolvers: {\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmFile: {\n async src(file, _, context) {\n // TODO: create `FileUrlGenerator` service to use here\n const getSettings = context.container.resolve(GetSettingsUseCase);\n const result = await getSettings.execute();\n const settings = result.value;\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n FmQuery: {\n getFileModel(_, __, context) {\n const identity = context.security.getIdentity();\n if (!identity) {\n return new NotAuthorizedResponse();\n }\n\n return resolve(async () => {\n return context.container.resolve(FileModel);\n });\n },\n async getFile(_, args: any, context) {\n const getFile = context.container.resolve(GetFileUseCase);\n const result = await getFile.execute(args.id);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async listFiles(_, args, context) {\n const listFiles = context.container.resolve(ListFilesUseCase);\n const result = await listFiles.execute(args);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new ListResponse(result.value.items, result.value.meta);\n },\n async listTags(_, args: any, context) {\n const listTags = context.container.resolve(ListTagsUseCase);\n const result = await listTags.execute(args || {});\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n const createFile = context.container.resolve(CreateFileUseCase);\n const result = await createFile.execute(args.data);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async createFiles(_, args: any, context) {\n const createFilesInBatch = context.container.resolve(CreateFilesInBatchUseCase);\n const result = await createFilesInBatch.execute({\n files: args.data,\n meta: args.meta\n });\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async updateFile(_, args: any, context) {\n const updateFile = context.container.resolve(UpdateFileUseCase);\n const result = await updateFile.execute({\n id: args.id,\n ...args.data\n });\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n },\n async deleteFile(_, args: any, context) {\n const deleteFile = context.container.resolve(DeleteFileUseCase);\n const result = await deleteFile.execute(args.id);\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n // TODO: deletion from Cloud storage should be implemented in the `api-file-manager-s3` as an event handler\n return new Response(true);\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.files\";\n\n return fileManagerGraphQL;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
3
+ export declare const getFileByUrl: () => GraphQLSchemaPlugin<ApiCoreContext>;
@@ -0,0 +1,69 @@
1
+ import { ErrorResponse, GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { Response, NotFoundResponse } from "@webiny/handler-graphql";
3
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
4
+ import { ListFilesUseCase } from "../features/file/ListFiles/index.js";
5
+ export const getFileByUrl = () => {
6
+ const fileManagerGraphQL = new GraphQLSchemaPlugin({
7
+ typeDefs: /* GraphQL */`
8
+ extend type FmQuery {
9
+ getFileByUrl(url: String!): FmFileResponse
10
+ }
11
+ `,
12
+ resolvers: {
13
+ FmQuery: {
14
+ async getFileByUrl(_, args, context) {
15
+ const {
16
+ url
17
+ } = args;
18
+ const useCase = new SecureGetFileByUrl(context.security, new GetFileByUrlUseCase(context.container.resolve(ListFilesUseCase)));
19
+ try {
20
+ const file = await useCase.execute(url);
21
+ if (file) {
22
+ return new Response(file);
23
+ }
24
+ return new NotFoundResponse("File not found!");
25
+ } catch (error) {
26
+ return new ErrorResponse(error);
27
+ }
28
+ }
29
+ }
30
+ }
31
+ });
32
+ fileManagerGraphQL.name = "fm.graphql.getFileByUrl";
33
+ return fileManagerGraphQL;
34
+ };
35
+ class GetFileByUrlUseCase {
36
+ constructor(listFiles) {
37
+ this.listFiles = listFiles;
38
+ }
39
+ async execute(url) {
40
+ const {
41
+ pathname
42
+ } = new URL(url);
43
+ const query = pathname.replace("/files/", "").replace("/private/", "");
44
+ const filesResult = await this.listFiles.execute({
45
+ where: {
46
+ key: query
47
+ },
48
+ limit: 1
49
+ });
50
+ const files = filesResult.value.items;
51
+ return files.length ? files[0] : undefined;
52
+ }
53
+ }
54
+ class SecureGetFileByUrl {
55
+ constructor(security, useCase) {
56
+ this.security = security;
57
+ this.useCase = useCase;
58
+ }
59
+ execute(url) {
60
+ if (!this.security.getIdentity()) {
61
+ throw new NotAuthorizedError({
62
+ message: "You're not authorized to edit this file!"
63
+ });
64
+ }
65
+ return this.useCase.execute(url);
66
+ }
67
+ }
68
+
69
+ //# sourceMappingURL=getFileByUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ErrorResponse","GraphQLSchemaPlugin","Response","NotFoundResponse","NotAuthorizedError","ListFilesUseCase","getFileByUrl","fileManagerGraphQL","typeDefs","resolvers","FmQuery","_","args","context","url","useCase","SecureGetFileByUrl","security","GetFileByUrlUseCase","container","resolve","file","execute","error","name","constructor","listFiles","pathname","URL","query","replace","filesResult","where","key","limit","files","value","items","length","undefined","getIdentity","message"],"sources":["getFileByUrl.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { Response, NotFoundResponse } from \"@webiny/handler-graphql\";\nimport type { File } from \"~/domain/file/types.js\";\nimport type { Security } from \"@webiny/api-core/types/security.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { ListFilesUseCase } from \"~/features/file/ListFiles/index.js\";\n\nexport const getFileByUrl = () => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n extend type FmQuery {\n getFileByUrl(url: String!): FmFileResponse\n }\n `,\n resolvers: {\n FmQuery: {\n async getFileByUrl(_, args, context) {\n const { url } = args as { url: string };\n const useCase = new SecureGetFileByUrl(\n context.security,\n new GetFileByUrlUseCase(context.container.resolve(ListFilesUseCase))\n );\n try {\n const file = await useCase.execute(url);\n if (file) {\n return new Response(file);\n }\n return new NotFoundResponse(\"File not found!\");\n } catch (error) {\n return new ErrorResponse(error);\n }\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.getFileByUrl\";\n\n return fileManagerGraphQL;\n};\n\ninterface IGetFileByUrl {\n execute(url: string): Promise<File | undefined>;\n}\n\nclass GetFileByUrlUseCase implements IGetFileByUrl {\n constructor(private listFiles: ListFilesUseCase.Interface) {}\n\n async execute(url: string): Promise<File | undefined> {\n const { pathname } = new URL(url);\n const query = pathname.replace(\"/files/\", \"\").replace(\"/private/\", \"\");\n\n const filesResult = await this.listFiles.execute({\n where: {\n key: query\n },\n limit: 1\n });\n\n const files = filesResult.value.items;\n\n return files.length ? files[0] : undefined;\n }\n}\n\nclass SecureGetFileByUrl implements IGetFileByUrl {\n private security: Security;\n private useCase: IGetFileByUrl;\n\n constructor(security: Security, useCase: IGetFileByUrl) {\n this.security = security;\n this.useCase = useCase;\n }\n\n execute(url: string): Promise<File | undefined> {\n if (!this.security.getIdentity()) {\n throw new NotAuthorizedError({ message: \"You're not authorized to edit this file!\" });\n }\n\n return this.useCase.execute(url);\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC5E,SAASC,QAAQ,EAAEC,gBAAgB,QAAQ,yBAAyB;AAGpE,SAASC,kBAAkB,QAAQ,oDAAoD;AAEvF,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAMC,kBAAkB,GAAG,IAAIN,mBAAmB,CAAiB;IAC/DO,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,OAAO,EAAE;QACL,MAAMJ,YAAYA,CAACK,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE;UACjC,MAAM;YAAEC;UAAI,CAAC,GAAGF,IAAuB;UACvC,MAAMG,OAAO,GAAG,IAAIC,kBAAkB,CAClCH,OAAO,CAACI,QAAQ,EAChB,IAAIC,mBAAmB,CAACL,OAAO,CAACM,SAAS,CAACC,OAAO,CAACf,gBAAgB,CAAC,CACvE,CAAC;UACD,IAAI;YACA,MAAMgB,IAAI,GAAG,MAAMN,OAAO,CAACO,OAAO,CAACR,GAAG,CAAC;YACvC,IAAIO,IAAI,EAAE;cACN,OAAO,IAAInB,QAAQ,CAACmB,IAAI,CAAC;YAC7B;YACA,OAAO,IAAIlB,gBAAgB,CAAC,iBAAiB,CAAC;UAClD,CAAC,CAAC,OAAOoB,KAAK,EAAE;YACZ,OAAO,IAAIvB,aAAa,CAACuB,KAAK,CAAC;UACnC;QACJ;MACJ;IACJ;EACJ,CAAC,CAAC;EACFhB,kBAAkB,CAACiB,IAAI,GAAG,yBAAyB;EAEnD,OAAOjB,kBAAkB;AAC7B,CAAC;AAMD,MAAMW,mBAAmB,CAA0B;EAC/CO,WAAWA,CAASC,SAAqC,EAAE;IAAA,KAAvCA,SAAqC,GAArCA,SAAqC;EAAG;EAE5D,MAAMJ,OAAOA,CAACR,GAAW,EAA6B;IAClD,MAAM;MAAEa;IAAS,CAAC,GAAG,IAAIC,GAAG,CAACd,GAAG,CAAC;IACjC,MAAMe,KAAK,GAAGF,QAAQ,CAACG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAEtE,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACL,SAAS,CAACJ,OAAO,CAAC;MAC7CU,KAAK,EAAE;QACHC,GAAG,EAAEJ;MACT,CAAC;MACDK,KAAK,EAAE;IACX,CAAC,CAAC;IAEF,MAAMC,KAAK,GAAGJ,WAAW,CAACK,KAAK,CAACC,KAAK;IAErC,OAAOF,KAAK,CAACG,MAAM,GAAGH,KAAK,CAAC,CAAC,CAAC,GAAGI,SAAS;EAC9C;AACJ;AAEA,MAAMvB,kBAAkB,CAA0B;EAI9CS,WAAWA,CAACR,QAAkB,EAAEF,OAAsB,EAAE;IACpD,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACF,OAAO,GAAGA,OAAO;EAC1B;EAEAO,OAAOA,CAACR,GAAW,EAA6B;IAC5C,IAAI,CAAC,IAAI,CAACG,QAAQ,CAACuB,WAAW,CAAC,CAAC,EAAE;MAC9B,MAAM,IAAIpC,kBAAkB,CAAC;QAAEqC,OAAO,EAAE;MAA2C,CAAC,CAAC;IACzF;IAEA,OAAO,IAAI,CAAC1B,OAAO,CAACO,OAAO,CAACR,GAAG,CAAC;EACpC;AACJ","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
3
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
4
+ export declare const createGraphQLSchemaPlugin: () => (GraphQLSchemaPlugin<ApiCoreContext> | ContextPlugin<ApiCoreContext>)[];
@@ -0,0 +1,53 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
3
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
4
+ import { createFieldTypePluginRecords } from "@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js";
5
+ import { createGraphQLSchemaPluginFromFieldPlugins } from "@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins.js";
6
+ import { createBaseSchema } from "./baseSchema.js";
7
+ import { createFilesSchema } from "./filesSchema.js";
8
+ import { getFileByUrl } from "./getFileByUrl.js";
9
+ import { FileModel } from "../domain/file/abstractions.js";
10
+ import { TenantContext } from "@webiny/api-core/features/TenantContext";
11
+ export const createGraphQLSchemaPlugin = () => {
12
+ return [createBaseSchema(),
13
+ // Files schema is generated dynamically, based on a CMS model, so we need to
14
+ // register it from a ContextPlugin, to perform additional bootstrap.
15
+ new ContextPlugin(async context => {
16
+ const tenantContext = context.container.resolve(TenantContext);
17
+ if (!tenantContext.getTenant()) {
18
+ return;
19
+ }
20
+ const fileModel = context.container.resolve(FileModel);
21
+ const listModels = context.container.resolve(ListModelsUseCase);
22
+ await context.security.withoutAuthorization(async () => {
23
+ const modelsResult = await listModels.execute();
24
+ const models = modelsResult.value;
25
+ const fieldPlugins = createFieldTypePluginRecords(context.plugins);
26
+ /**
27
+ * We need to register all plugins for all the CMS fields.
28
+ */
29
+ const plugins = createGraphQLSchemaPluginFromFieldPlugins({
30
+ models,
31
+ type: "manage",
32
+ fieldTypePlugins: fieldPlugins,
33
+ createPlugin: ({
34
+ schema,
35
+ type,
36
+ fieldType
37
+ }) => {
38
+ const plugin = new GraphQLSchemaPlugin(schema);
39
+ plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;
40
+ return plugin;
41
+ }
42
+ });
43
+ const graphQlPlugin = createFilesSchema({
44
+ model: fileModel,
45
+ models,
46
+ plugins: fieldPlugins
47
+ });
48
+ context.plugins.register([...plugins, graphQlPlugin, getFileByUrl()]);
49
+ });
50
+ })];
51
+ };
52
+
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ContextPlugin","GraphQLSchemaPlugin","ListModelsUseCase","createFieldTypePluginRecords","createGraphQLSchemaPluginFromFieldPlugins","createBaseSchema","createFilesSchema","getFileByUrl","FileModel","TenantContext","createGraphQLSchemaPlugin","context","tenantContext","container","resolve","getTenant","fileModel","listModels","security","withoutAuthorization","modelsResult","execute","models","value","fieldPlugins","plugins","type","fieldTypePlugins","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","model","register"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins.js\";\nimport { createBaseSchema } from \"~/graphql/baseSchema.js\";\nimport { createFilesSchema } from \"~/graphql/filesSchema.js\";\nimport { getFileByUrl } from \"~/graphql/getFileByUrl.js\";\nimport { FileModel } from \"~/domain/file/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/TenantContext\";\n\nexport const createGraphQLSchemaPlugin = () => {\n return [\n createBaseSchema(),\n // Files schema is generated dynamically, based on a CMS model, so we need to\n // register it from a ContextPlugin, to perform additional bootstrap.\n new ContextPlugin<ApiCoreContext>(async context => {\n const tenantContext = context.container.resolve(TenantContext);\n if (!tenantContext.getTenant()) {\n return;\n }\n\n const fileModel = context.container.resolve(FileModel);\n const listModels = context.container.resolve(ListModelsUseCase);\n\n await context.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute();\n const models = modelsResult.value;\n\n const fieldPlugins = createFieldTypePluginRecords(context.plugins);\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldTypePlugins: fieldPlugins,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `fm.graphql.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFilesSchema({\n model: fileModel,\n models,\n plugins: fieldPlugins\n });\n\n context.plugins.register([...plugins, graphQlPlugin, getFileByUrl()]);\n });\n })\n ];\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,aAAa;AAE3C,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,4BAA4B,QAAQ,yEAAyE;AACtH,SAASC,yCAAyC,QAAQ,6DAA6D;AACvH,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,SAAS;AAClB,SAASC,aAAa,QAAQ,yCAAyC;AAEvE,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,CACHL,gBAAgB,CAAC,CAAC;EAClB;EACA;EACA,IAAIL,aAAa,CAAiB,MAAMW,OAAO,IAAI;IAC/C,MAAMC,aAAa,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACL,aAAa,CAAC;IAC9D,IAAI,CAACG,aAAa,CAACG,SAAS,CAAC,CAAC,EAAE;MAC5B;IACJ;IAEA,MAAMC,SAAS,GAAGL,OAAO,CAACE,SAAS,CAACC,OAAO,CAACN,SAAS,CAAC;IACtD,MAAMS,UAAU,GAAGN,OAAO,CAACE,SAAS,CAACC,OAAO,CAACZ,iBAAiB,CAAC;IAE/D,MAAMS,OAAO,CAACO,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACpD,MAAMC,YAAY,GAAG,MAAMH,UAAU,CAACI,OAAO,CAAC,CAAC;MAC/C,MAAMC,MAAM,GAAGF,YAAY,CAACG,KAAK;MAEjC,MAAMC,YAAY,GAAGrB,4BAA4B,CAACQ,OAAO,CAACc,OAAO,CAAC;MAClE;AAChB;AACA;MACgB,MAAMA,OAAO,GAAGrB,yCAAyC,CAAC;QACtDkB,MAAM;QACNI,IAAI,EAAE,QAAQ;QACdC,gBAAgB,EAAEH,YAAY;QAC9BI,YAAY,EAAEA,CAAC;UAAEC,MAAM;UAAEH,IAAI;UAAEI;QAAU,CAAC,KAAK;UAC3C,MAAMC,MAAM,GAAG,IAAI9B,mBAAmB,CAAC4B,MAAM,CAAC;UAC9CE,MAAM,CAACC,IAAI,GAAG,qBAAqBN,IAAI,UAAUI,SAAS,EAAE;UAC5D,OAAOC,MAAM;QACjB;MACJ,CAAC,CAAC;MAEF,MAAME,aAAa,GAAG3B,iBAAiB,CAAC;QACpC4B,KAAK,EAAElB,SAAS;QAChBM,MAAM;QACNG,OAAO,EAAED;MACb,CAAC,CAAC;MAEFb,OAAO,CAACc,OAAO,CAACU,QAAQ,CAAC,CAAC,GAAGV,OAAO,EAAEQ,aAAa,EAAE1B,YAAY,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;EACN,CAAC,CAAC,CACL;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
+ export declare const emptyResolver: () => {};
3
+ /**
4
+ * Use any because it really can be any.
5
+ * TODO @ts-refactor maybe use generics at some point?
6
+ */
7
+ interface ResolveCallable {
8
+ (): Promise<any>;
9
+ }
10
+ export declare const resolve: (fn: ResolveCallable) => Promise<Response<any> | ErrorResponse>;
11
+ export {};
@@ -0,0 +1,17 @@
1
+ import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
+ export const emptyResolver = () => ({});
3
+
4
+ /**
5
+ * Use any because it really can be any.
6
+ * TODO @ts-refactor maybe use generics at some point?
7
+ */
8
+
9
+ export const resolve = async fn => {
10
+ try {
11
+ return new Response(await fn());
12
+ } catch (e) {
13
+ return new ErrorResponse(e);
14
+ }
15
+ };
16
+
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Response","ErrorResponse","emptyResolver","resolve","fn","e"],"sources":["utils.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport const emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nexport const resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,yBAAyB;AAEjE,OAAO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;;AAEvC;AACA;AACA;AACA;;AAKA,OAAO,MAAMC,OAAO,GAAG,MAAOC,EAAmB,IAAK;EAClD,IAAI;IACA,OAAO,IAAIJ,QAAQ,CAAC,MAAMI,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACR,OAAO,IAAIJ,aAAa,CAACI,CAAC,CAAC;EAC/B;AACJ,CAAC","ignoreList":[]}
package/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { ApiCoreContext } from "@webiny/api-core/types/core.js";
2
+ import { ContextPlugin } from "@webiny/api";
3
+ export * from "./modelModifier/CmsModelModifier.js";
4
+ export * from "./delivery/index.js";
5
+ export declare const createFileManagerContext: () => ContextPlugin<ApiCoreContext>;
6
+ export declare const createFileManagerGraphQL: () => (import("@webiny/handler-graphql/index.js").GraphQLSchemaPlugin<ApiCoreContext> | ContextPlugin<ApiCoreContext>)[];
7
+ export declare const createAssetDelivery: () => (import("./delivery/index.js").AssetDeliveryConfigModifierPlugin | import("@webiny/handler/index.js").ModifyFastifyPlugin)[];
package/index.js ADDED
@@ -0,0 +1,37 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { setupAssetDelivery } from "./delivery/setupAssetDelivery.js";
3
+ import { createGraphQLSchemaPlugin } from "./graphql/index.js";
4
+ import { FileManagerFeature } from "./features/FileManagerFeature.js";
5
+ import { FmPermissions } from "./permissions/schema.js";
6
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
7
+ import { FileModel as FileModelAbstraction } from "./domain/file/abstractions.js";
8
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
9
+ import { FileModel, FILE_MODEL_ID } from "./domain/file/file.model.js";
10
+ export * from "./modelModifier/CmsModelModifier.js";
11
+ export * from "./delivery/index.js";
12
+ export const createFileManagerContext = () => {
13
+ const plugin = new ContextPlugin(async context => {
14
+ const tenantContext = context.container.resolve(TenantContext);
15
+ const getModel = context.container.resolve(GetModelUseCase);
16
+ if (!tenantContext.getTenant()) {
17
+ return;
18
+ }
19
+ context.container.register(FileModel);
20
+ await context.security.withoutAuthorization(async () => {
21
+ const fileModel = await getModel.execute(FILE_MODEL_ID);
22
+ context.container.registerInstance(FileModelAbstraction, fileModel.value);
23
+ });
24
+ context.container.register(FmPermissions.Implementation);
25
+ FileManagerFeature.register(context.container);
26
+ });
27
+ plugin.name = "file-manager.createContext";
28
+ return plugin;
29
+ };
30
+ export const createFileManagerGraphQL = () => {
31
+ return createGraphQLSchemaPlugin();
32
+ };
33
+ export const createAssetDelivery = () => {
34
+ return setupAssetDelivery();
35
+ };
36
+
37
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ContextPlugin","setupAssetDelivery","createGraphQLSchemaPlugin","FileManagerFeature","FmPermissions","GetModelUseCase","FileModel","FileModelAbstraction","TenantContext","FILE_MODEL_ID","createFileManagerContext","plugin","context","tenantContext","container","resolve","getModel","getTenant","register","security","withoutAuthorization","fileModel","execute","registerInstance","value","Implementation","name","createFileManagerGraphQL","createAssetDelivery"],"sources":["index.ts"],"sourcesContent":["import type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { setupAssetDelivery } from \"./delivery/setupAssetDelivery.js\";\nimport { createGraphQLSchemaPlugin } from \"./graphql/index.js\";\nimport { FileManagerFeature } from \"~/features/FileManagerFeature.js\";\nimport { FmPermissions } from \"~/permissions/schema.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { FileModel as FileModelAbstraction } from \"~/domain/file/abstractions.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { FileModel, FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\nexport * from \"./modelModifier/CmsModelModifier.js\";\nexport * from \"./delivery/index.js\";\n\nexport const createFileManagerContext = () => {\n const plugin = new ContextPlugin<ApiCoreContext>(async context => {\n const tenantContext = context.container.resolve(TenantContext);\n const getModel = context.container.resolve(GetModelUseCase);\n\n if (!tenantContext.getTenant()) {\n return;\n }\n\n context.container.register(FileModel);\n\n await context.security.withoutAuthorization(async () => {\n const fileModel = await getModel.execute(FILE_MODEL_ID);\n context.container.registerInstance(FileModelAbstraction, fileModel.value);\n });\n\n context.container.register(FmPermissions.Implementation);\n\n FileManagerFeature.register(context.container);\n });\n\n plugin.name = \"file-manager.createContext\";\n\n return plugin;\n};\n\nexport const createFileManagerGraphQL = () => {\n return createGraphQLSchemaPlugin();\n};\n\nexport const createAssetDelivery = () => {\n return setupAssetDelivery();\n};\n"],"mappings":"AACA,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,kBAAkB;AAC3B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,eAAe,QAAQ,kEAAkE;AAClG,SAASC,SAAS,IAAIC,oBAAoB;AAC1C,SAASC,aAAa,QAAQ,0DAA0D;AACxF,SAASF,SAAS,EAAEG,aAAa;AAEjC;AACA;AAEA,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,MAAM,GAAG,IAAIX,aAAa,CAAiB,MAAMY,OAAO,IAAI;IAC9D,MAAMC,aAAa,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACP,aAAa,CAAC;IAC9D,MAAMQ,QAAQ,GAAGJ,OAAO,CAACE,SAAS,CAACC,OAAO,CAACV,eAAe,CAAC;IAE3D,IAAI,CAACQ,aAAa,CAACI,SAAS,CAAC,CAAC,EAAE;MAC5B;IACJ;IAEAL,OAAO,CAACE,SAAS,CAACI,QAAQ,CAACZ,SAAS,CAAC;IAErC,MAAMM,OAAO,CAACO,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACpD,MAAMC,SAAS,GAAG,MAAML,QAAQ,CAACM,OAAO,CAACb,aAAa,CAAC;MACvDG,OAAO,CAACE,SAAS,CAACS,gBAAgB,CAAChB,oBAAoB,EAAEc,SAAS,CAACG,KAAK,CAAC;IAC7E,CAAC,CAAC;IAEFZ,OAAO,CAACE,SAAS,CAACI,QAAQ,CAACd,aAAa,CAACqB,cAAc,CAAC;IAExDtB,kBAAkB,CAACe,QAAQ,CAACN,OAAO,CAACE,SAAS,CAAC;EAClD,CAAC,CAAC;EAEFH,MAAM,CAACe,IAAI,GAAG,4BAA4B;EAE1C,OAAOf,MAAM;AACjB,CAAC;AAED,OAAO,MAAMgB,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,OAAOzB,yBAAyB,CAAC,CAAC;AACtC,CAAC;AAED,OAAO,MAAM0B,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO3B,kBAAkB,CAAC,CAAC;AAC/B,CAAC","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import type { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { CmsPrivateModelFull } from "@webiny/api-headless-cms";
4
+ type CmsModelField = Omit<BaseModelField, "storageId"> & {
5
+ bulkEdit?: boolean;
6
+ };
7
+ declare class CmsModelFieldsModifier {
8
+ private fields;
9
+ constructor(fields: BaseModelField[]);
10
+ addField(field: CmsModelField): void;
11
+ }
12
+ interface CmsModelModifierCallableParams {
13
+ modifier: CmsModelFieldsModifier;
14
+ }
15
+ interface CmsModelModifierCallable {
16
+ (params: CmsModelModifierCallableParams): Promise<void> | void;
17
+ }
18
+ export declare class CmsModelModifierPlugin extends Plugin {
19
+ static type: string;
20
+ private readonly modelId;
21
+ private readonly cb;
22
+ constructor(modelId: string, cb: CmsModelModifierCallable);
23
+ modifyModel(model: CmsPrivateModelFull): Promise<void>;
24
+ }
25
+ export declare const createFileModelModifier: (cb: CmsModelModifierCallable) => CmsModelModifierPlugin;
26
+ export {};
@@ -0,0 +1,54 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { createModelField } from "@webiny/api-headless-cms";
3
+ import { FILE_MODEL_ID } from "../domain/file/file.model.js";
4
+ class CmsModelFieldsModifier {
5
+ constructor(fields) {
6
+ this.fields = fields;
7
+ }
8
+ addField(field) {
9
+ const {
10
+ bulkEdit,
11
+ tags,
12
+ ...rest
13
+ } = field;
14
+ this.fields.push({
15
+ ...rest,
16
+ tags: (tags ?? []).concat(bulkEdit ? ["$bulk-edit"] : []),
17
+ storageId: `${field.type}@${field.id}`
18
+ });
19
+ }
20
+ }
21
+ export class CmsModelModifierPlugin extends Plugin {
22
+ static type = "fm.cms-model-modifier";
23
+ constructor(modelId, cb) {
24
+ super();
25
+ this.modelId = modelId;
26
+ this.cb = cb;
27
+ }
28
+ async modifyModel(model) {
29
+ if (model.modelId !== this.modelId) {
30
+ return;
31
+ }
32
+ let extensionsField = model.fields.find(field => field.fieldId === "extensions");
33
+ if (!extensionsField) {
34
+ extensionsField = createModelField({
35
+ label: "Extensions",
36
+ type: "object",
37
+ settings: {
38
+ layout: [],
39
+ fields: []
40
+ }
41
+ });
42
+ model.fields.push(extensionsField);
43
+ }
44
+ const modifier = new CmsModelFieldsModifier(extensionsField.settings.fields);
45
+ await this.cb({
46
+ modifier
47
+ });
48
+ }
49
+ }
50
+ export const createFileModelModifier = cb => {
51
+ return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);
52
+ };
53
+
54
+ //# sourceMappingURL=CmsModelModifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Plugin","createModelField","FILE_MODEL_ID","CmsModelFieldsModifier","constructor","fields","addField","field","bulkEdit","tags","rest","push","concat","storageId","type","id","CmsModelModifierPlugin","modelId","cb","modifyModel","model","extensionsField","find","fieldId","label","settings","layout","modifier","createFileModelModifier"],"sources":["CmsModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\nimport { FILE_MODEL_ID } from \"~/domain/file/file.model.js\";\n\ntype CmsModelField = Omit<BaseModelField, \"storageId\"> & { bulkEdit?: boolean };\n\nclass CmsModelFieldsModifier {\n private fields: BaseModelField[];\n\n constructor(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { bulkEdit, tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n tags: (tags ?? []).concat(bulkEdit ? [\"$bulk-edit\"] : []),\n storageId: `${field.type}@${field.id}`\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: CmsModelFieldsModifier;\n}\n\ninterface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\nexport class CmsModelModifierPlugin extends Plugin {\n public static override type = \"fm.cms-model-modifier\";\n private readonly modelId: string;\n private readonly cb: CmsModelModifierCallable;\n\n constructor(modelId: string, cb: CmsModelModifierCallable) {\n super();\n this.modelId = modelId;\n this.cb = cb;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== this.modelId) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n const modifier = new CmsModelFieldsModifier(extensionsField.settings!.fields!);\n await this.cb({ modifier });\n }\n}\n\nexport const createFileModelModifier = (cb: CmsModelModifierCallable) => {\n return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAGxC,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa;AAItB,MAAMC,sBAAsB,CAAC;EAGzBC,WAAWA,CAACC,MAAwB,EAAE;IAClC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAC,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGH,KAAK;IAEzC,IAAI,CAACF,MAAM,CAACM,IAAI,CAAC;MACb,GAAGD,IAAI;MACPD,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEG,MAAM,CAACJ,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;MACzDK,SAAS,EAAE,GAAGN,KAAK,CAACO,IAAI,IAAIP,KAAK,CAACQ,EAAE;IACxC,CAAC,CAAC;EACN;AACJ;AAUA,OAAO,MAAMC,sBAAsB,SAAShB,MAAM,CAAC;EAC/C,OAAuBc,IAAI,GAAG,uBAAuB;EAIrDV,WAAWA,CAACa,OAAe,EAAEC,EAA4B,EAAE;IACvD,KAAK,CAAC,CAAC;IACP,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACH,OAAO,KAAK,IAAI,CAACA,OAAO,EAAE;MAChC;IACJ;IAEA,IAAII,eAAe,GAAGD,KAAK,CAACf,MAAM,CAACiB,IAAI,CAACf,KAAK,IAAIA,KAAK,CAACgB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAGpB,gBAAgB,CAAC;QAC/BuB,KAAK,EAAE,YAAY;QACnBV,IAAI,EAAE,QAAQ;QACdW,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVrB,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFe,KAAK,CAACf,MAAM,CAACM,IAAI,CAACU,eAAe,CAAC;IACtC;IAEA,MAAMM,QAAQ,GAAG,IAAIxB,sBAAsB,CAACkB,eAAe,CAACI,QAAQ,CAAEpB,MAAO,CAAC;IAC9E,MAAM,IAAI,CAACa,EAAE,CAAC;MAAES;IAAS,CAAC,CAAC;EAC/B;AACJ;AAEA,OAAO,MAAMC,uBAAuB,GAAIV,EAA4B,IAAK;EACrE,OAAO,IAAIF,sBAAsB,CAACd,aAAa,EAAEgB,EAAE,CAAC;AACxD,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager",
3
- "version": "0.0.0-unstable.bca7b3e350",
3
+ "version": "0.0.0-unstable.c27f4d8a31",
4
+ "type": "module",
4
5
  "main": "index.js",
5
6
  "keywords": [
6
7
  "fm:base"
@@ -18,59 +19,45 @@
18
19
  ],
19
20
  "license": "MIT",
20
21
  "dependencies": {
21
- "@babel/runtime": "7.20.13",
22
- "@commodo/fields": "1.1.2-beta.20",
23
- "@webiny/api": "0.0.0-unstable.bca7b3e350",
24
- "@webiny/api-security": "0.0.0-unstable.bca7b3e350",
25
- "@webiny/api-tenancy": "0.0.0-unstable.bca7b3e350",
26
- "@webiny/api-upgrade": "0.0.0-unstable.bca7b3e350",
27
- "@webiny/error": "0.0.0-unstable.bca7b3e350",
28
- "@webiny/handler": "0.0.0-unstable.bca7b3e350",
29
- "@webiny/handler-aws": "0.0.0-unstable.bca7b3e350",
30
- "@webiny/handler-client": "0.0.0-unstable.bca7b3e350",
31
- "@webiny/handler-graphql": "0.0.0-unstable.bca7b3e350",
32
- "@webiny/plugins": "0.0.0-unstable.bca7b3e350",
33
- "@webiny/project-utils": "0.0.0-unstable.bca7b3e350",
34
- "@webiny/validation": "0.0.0-unstable.bca7b3e350",
35
- "aws-sdk": "2.1310.0",
36
- "commodo-fields-object": "1.0.6",
37
- "mdbid": "1.0.0",
38
- "object-hash": "2.2.0",
39
- "sanitize-filename": "1.6.3"
22
+ "@webiny/api": "0.0.0-unstable.c27f4d8a31",
23
+ "@webiny/api-core": "0.0.0-unstable.c27f4d8a31",
24
+ "@webiny/api-headless-cms": "0.0.0-unstable.c27f4d8a31",
25
+ "@webiny/build-tools": "0.0.0-unstable.c27f4d8a31",
26
+ "@webiny/di": "0.2.3",
27
+ "@webiny/error": "0.0.0-unstable.c27f4d8a31",
28
+ "@webiny/feature": "0.0.0-unstable.c27f4d8a31",
29
+ "@webiny/handler": "0.0.0-unstable.c27f4d8a31",
30
+ "@webiny/handler-graphql": "0.0.0-unstable.c27f4d8a31",
31
+ "@webiny/plugins": "0.0.0-unstable.c27f4d8a31",
32
+ "@webiny/wcp": "0.0.0-unstable.c27f4d8a31",
33
+ "cache-control-parser": "2.2.0",
34
+ "zod": "4.3.6"
40
35
  },
41
36
  "devDependencies": {
42
- "@babel/cli": "^7.19.3",
43
- "@babel/core": "^7.19.3",
44
- "@babel/plugin-proposal-object-rest-spread": "^7.16.0",
45
- "@babel/plugin-transform-runtime": "^7.16.4",
46
- "@babel/preset-env": "^7.19.4",
47
- "@babel/preset-typescript": "^7.18.6",
48
- "@webiny/api-i18n": "^0.0.0-unstable.bca7b3e350",
49
- "@webiny/api-i18n-ddb": "^0.0.0-unstable.bca7b3e350",
50
- "@webiny/cli": "^0.0.0-unstable.bca7b3e350",
51
- "jest": "^28.1.0",
52
- "rimraf": "^3.0.2",
53
- "ttypescript": "^1.5.12",
54
- "typescript": "4.7.4"
37
+ "@types/object-hash": "3.0.6",
38
+ "@webiny/handler-aws": "0.0.0-unstable.c27f4d8a31",
39
+ "@webiny/project-utils": "0.0.0-unstable.c27f4d8a31",
40
+ "@webiny/utils": "0.0.0-unstable.c27f4d8a31",
41
+ "@webiny/wcp": "0.0.0",
42
+ "rimraf": "6.1.3",
43
+ "typescript": "5.9.3"
55
44
  },
56
45
  "publishConfig": {
57
46
  "access": "public",
58
47
  "directory": "dist"
59
48
  },
60
- "scripts": {
61
- "watch": "yarn webiny run watch",
62
- "build": "yarn webiny run build"
63
- },
64
49
  "adio": {
65
50
  "ignoreDirs": [
66
51
  "__tests__"
67
52
  ],
68
53
  "ignore": {
69
54
  "src": [
70
- "aws-sdk",
71
55
  "sharp"
56
+ ],
57
+ "dependencies": [
58
+ "@webiny/wcp"
72
59
  ]
73
60
  }
74
61
  },
75
- "gitHead": "bca7b3e35084d7012061bda0d3f08202fe611581"
62
+ "gitHead": "c27f4d8a31c3af1570817797441855292b6c1f20"
76
63
  }