@webiny/api-file-manager 6.4.12-beta.4 → 6.5.0-beta.0

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 (289) hide show
  1. package/{contants.js → constants.js} +1 -1
  2. package/constants.js.map +1 -0
  3. package/delivery/AssetDelivery/Asset.d.ts +2 -1
  4. package/delivery/AssetDelivery/Asset.js +4 -1
  5. package/delivery/AssetDelivery/Asset.js.map +1 -1
  6. package/delivery/AssetDelivery/AssetRequest.d.ts +4 -3
  7. package/delivery/AssetDelivery/AssetRequest.js +3 -0
  8. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  9. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +2 -1
  10. package/delivery/AssetDelivery/abstractions/AssetReply.js +5 -0
  11. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  12. package/delivery/index.d.ts +3 -3
  13. package/delivery/index.js +0 -2
  14. package/delivery/setupAssetDelivery.js +4 -1
  15. package/delivery/setupAssetDelivery.js.map +1 -1
  16. package/domain/file/file.model.js +5 -1
  17. package/domain/file/file.model.js.map +1 -1
  18. package/domain/settings/validation.js +1 -1
  19. package/domain/settings/validation.js.map +1 -1
  20. package/exports/api/file-manager/assetDelivery.d.ts +18 -0
  21. package/exports/api/file-manager/assetDelivery.js +15 -0
  22. package/exports/api/file-manager/file.d.ts +1 -0
  23. package/exports/api/file-manager/file.js +1 -0
  24. package/features/FileManagerFeature.js +12 -0
  25. package/features/FileManagerFeature.js.map +1 -1
  26. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  27. package/features/assetDelivery/Asset/Asset.js +14 -0
  28. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  29. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  30. package/features/assetDelivery/Asset/abstractions.js +5 -0
  31. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  32. package/features/assetDelivery/Asset/index.d.ts +1 -0
  33. package/features/assetDelivery/Asset/index.js +1 -0
  34. package/features/assetDelivery/AssetRequest/AssetRequest.d.ts +8 -0
  35. package/features/assetDelivery/AssetRequest/AssetRequest.js +14 -0
  36. package/features/assetDelivery/AssetRequest/AssetRequest.js.map +1 -0
  37. package/features/assetDelivery/AssetRequest/abstractions.d.ts +11 -0
  38. package/features/assetDelivery/AssetRequest/abstractions.js +5 -0
  39. package/features/assetDelivery/AssetRequest/abstractions.js.map +1 -0
  40. package/features/assetDelivery/AssetRequest/index.d.ts +1 -0
  41. package/features/assetDelivery/AssetRequest/index.js +1 -0
  42. package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -7
  43. package/features/assetDelivery/FilesAssetRequestResolver.js +19 -15
  44. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
  45. package/features/assetDelivery/NullAssetOutputStrategy.d.ts +6 -6
  46. package/features/assetDelivery/NullAssetOutputStrategy.js +6 -6
  47. package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -1
  48. package/features/assetDelivery/NullAssetReply.d.ts +2 -1
  49. package/features/assetDelivery/NullAssetReply.js +3 -0
  50. package/features/assetDelivery/NullAssetReply.js.map +1 -1
  51. package/features/assetDelivery/NullAssetResolver.d.ts +6 -6
  52. package/features/assetDelivery/NullAssetResolver.js +5 -5
  53. package/features/assetDelivery/NullAssetResolver.js.map +1 -1
  54. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  55. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  56. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  57. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  58. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  59. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  60. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  61. package/features/assetDelivery/ObjectKey/index.js +1 -0
  62. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  63. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  64. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  65. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  66. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  67. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  68. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  69. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  70. package/features/assetDelivery/abstractions/AssetAuthorizer.d.ts +9 -0
  71. package/features/assetDelivery/abstractions/AssetAuthorizer.js +5 -0
  72. package/features/assetDelivery/abstractions/AssetAuthorizer.js.map +1 -0
  73. package/features/assetDelivery/abstractions/AssetContentsReader.d.ts +9 -0
  74. package/features/assetDelivery/abstractions/AssetContentsReader.js +5 -0
  75. package/features/assetDelivery/abstractions/AssetContentsReader.js.map +1 -0
  76. package/features/assetDelivery/abstractions/AssetOutputStrategy.d.ts +11 -0
  77. package/features/assetDelivery/abstractions/AssetOutputStrategy.js +5 -0
  78. package/features/assetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
  79. package/features/assetDelivery/abstractions/AssetProcessor.d.ts +11 -0
  80. package/features/assetDelivery/abstractions/AssetProcessor.js +5 -0
  81. package/features/assetDelivery/abstractions/AssetProcessor.js.map +1 -0
  82. package/features/assetDelivery/abstractions/AssetRequestResolver.d.ts +11 -0
  83. package/features/assetDelivery/abstractions/AssetRequestResolver.js +5 -0
  84. package/features/assetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
  85. package/features/assetDelivery/abstractions/AssetResolver.d.ts +11 -0
  86. package/features/assetDelivery/abstractions/AssetResolver.js +5 -0
  87. package/features/assetDelivery/abstractions/AssetResolver.js.map +1 -0
  88. package/features/assetDelivery/abstractions/AssetTransformationStrategy.d.ts +11 -0
  89. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js +5 -0
  90. package/features/assetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
  91. package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
  92. package/features/assetDelivery/abstractions/AssetType.js +5 -0
  93. package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
  94. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
  95. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
  96. package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
  97. package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
  98. package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
  99. package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
  100. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
  101. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
  102. package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
  103. package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
  104. package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
  105. package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
  106. package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
  107. package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
  108. package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
  109. package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
  110. package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
  111. package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
  112. package/features/assetDelivery/assetTypes/image/index.js +4 -0
  113. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
  114. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
  115. package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
  116. package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
  117. package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
  118. package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
  119. package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
  120. package/features/assetDelivery/assetTypes/image/utils.js +47 -0
  121. package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
  122. package/features/assetDelivery/feature.js +25 -16
  123. package/features/assetDelivery/feature.js.map +1 -1
  124. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +2 -2
  125. package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  126. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +3 -3
  127. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +1 -1
  128. package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  129. package/features/assetDelivery/privateFiles/PrivateCache.d.ts +3 -3
  130. package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -1
  131. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +9 -8
  132. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +15 -12
  133. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  134. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +8 -8
  135. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +8 -7
  136. package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  137. package/features/assetDelivery/privateFiles/PublicCache.d.ts +3 -3
  138. package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -1
  139. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +5 -4
  140. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +4 -1
  141. package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  142. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +5 -4
  143. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +4 -1
  144. package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  145. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  146. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  147. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  148. package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -10
  149. package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
  150. package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  151. package/features/assetDelivery/transformation/index.d.ts +5 -0
  152. package/features/assetDelivery/transformation/index.js +4 -0
  153. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  154. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  155. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  156. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  157. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  158. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +15 -0
  159. package/features/file/FileUrlGenerator/FileUrlGenerator.js +33 -0
  160. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  161. package/features/file/FileUrlGenerator/abstractions.d.ts +3 -4
  162. package/features/file/FileUrlGenerator/abstractions.js +1 -1
  163. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  164. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  165. package/features/file/FileUrlGenerator/feature.js +11 -0
  166. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  167. package/features/file/FileUrlGenerator/index.d.ts +1 -0
  168. package/features/file/FileUrlGenerator/index.js +1 -0
  169. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  170. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  171. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  172. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  173. package/features/file/GetFileByUrl/abstractions.js +5 -0
  174. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  175. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  176. package/features/file/GetFileByUrl/feature.js +11 -0
  177. package/features/file/GetFileByUrl/feature.js.map +1 -0
  178. package/features/file/GetFileByUrl/index.d.ts +1 -0
  179. package/features/file/GetFileByUrl/index.js +1 -0
  180. package/features/settings/SettingsInstaller/SettingsInstaller.js +1 -1
  181. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  182. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  183. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  184. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  185. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  186. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  187. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  188. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  189. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  190. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  191. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  192. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  193. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  194. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  195. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  196. package/features/upload/GetUploadPayload/index.js +1 -0
  197. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  198. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  199. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  200. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  201. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  202. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  203. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  204. package/features/upload/ReadFileMetadata/feature.js +11 -0
  205. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  206. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  207. package/features/upload/ReadFileMetadata/index.js +1 -0
  208. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  209. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  210. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  211. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  212. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  213. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  214. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  215. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  216. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  217. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
  218. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
  219. package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
  220. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  221. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  222. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  223. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  224. package/features/upload/WriteFileMetadata/feature.js +17 -0
  225. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  226. package/features/upload/index.d.ts +17 -0
  227. package/features/upload/index.js +10 -0
  228. package/features/upload/types.d.ts +28 -0
  229. package/features/upload/types.js +0 -0
  230. package/features/upload/utils/FileExtension.d.ts +6 -0
  231. package/features/upload/utils/FileExtension.js +16 -0
  232. package/features/upload/utils/FileExtension.js.map +1 -0
  233. package/features/upload/utils/FileKey.d.ts +11 -0
  234. package/features/upload/utils/FileKey.js +33 -0
  235. package/features/upload/utils/FileKey.js.map +1 -0
  236. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  237. package/features/upload/utils/FileNormalizer.js +41 -0
  238. package/features/upload/utils/FileNormalizer.js.map +1 -0
  239. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  240. package/features/upload/utils/FileUploadModifier.js +39 -0
  241. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  242. package/features/upload/utils/checkPermissions.d.ts +5 -0
  243. package/features/upload/utils/checkPermissions.js +22 -0
  244. package/features/upload/utils/checkPermissions.js.map +1 -0
  245. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  246. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  247. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  248. package/features/upload/utils/mimeTypes.d.ts +1 -0
  249. package/features/upload/utils/mimeTypes.js +9 -0
  250. package/features/upload/utils/mimeTypes.js.map +1 -0
  251. package/graphql/FmGraphQLSchema.d.ts +25 -0
  252. package/graphql/FmGraphQLSchema.js +451 -0
  253. package/graphql/FmGraphQLSchema.js.map +1 -0
  254. package/graphql/FmUploadGraphQLSchema.d.ts +11 -0
  255. package/graphql/FmUploadGraphQLSchema.js +231 -0
  256. package/graphql/FmUploadGraphQLSchema.js.map +1 -0
  257. package/index.d.ts +0 -3
  258. package/index.js +16 -17
  259. package/index.js.map +1 -1
  260. package/package.json +24 -18
  261. package/contants.js.map +0 -1
  262. package/features/assetDelivery/abstractions.d.ts +0 -54
  263. package/features/assetDelivery/abstractions.js +0 -11
  264. package/features/assetDelivery/abstractions.js.map +0 -1
  265. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
  266. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
  267. package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
  268. package/graphql/baseSchema.d.ts +0 -3
  269. package/graphql/baseSchema.js +0 -100
  270. package/graphql/baseSchema.js.map +0 -1
  271. package/graphql/createFilesTypeDefs.d.ts +0 -8
  272. package/graphql/createFilesTypeDefs.js +0 -191
  273. package/graphql/createFilesTypeDefs.js.map +0 -1
  274. package/graphql/filesSchema.d.ts +0 -4
  275. package/graphql/filesSchema.js +0 -97
  276. package/graphql/filesSchema.js.map +0 -1
  277. package/graphql/getFileByUrl.d.ts +0 -3
  278. package/graphql/getFileByUrl.js +0 -64
  279. package/graphql/getFileByUrl.js.map +0 -1
  280. package/graphql/index.d.ts +0 -4
  281. package/graphql/index.js +0 -48
  282. package/graphql/index.js.map +0 -1
  283. package/graphql/utils.d.ts +0 -11
  284. package/graphql/utils.js +0 -12
  285. package/graphql/utils.js.map +0 -1
  286. package/modelModifier/CmsModelModifier.d.ts +0 -26
  287. package/modelModifier/CmsModelModifier.js +0 -51
  288. package/modelModifier/CmsModelModifier.js.map +0 -1
  289. /package/{contants.d.ts → constants.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
1
  const ROOT_FOLDER = "root";
2
2
  export { ROOT_FOLDER };
3
3
 
4
- //# sourceMappingURL=contants.js.map
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"names":["ROOT_FOLDER"],"mappings":"AAAO,MAAMA,cAAc"}
@@ -11,7 +11,8 @@ export declare class Asset {
11
11
  protected readonly props: AssetData;
12
12
  private outputStrategy;
13
13
  private contentsReader;
14
- constructor(props: AssetData);
14
+ static create(props: AssetData): Asset;
15
+ private constructor();
15
16
  clone(): Asset;
16
17
  withProps(props: Partial<AssetData>): Asset;
17
18
  getId(): string;
@@ -1,4 +1,7 @@
1
1
  class Asset {
2
+ static create(props) {
3
+ return new Asset(props);
4
+ }
2
5
  constructor(props){
3
6
  this.props = props;
4
7
  }
@@ -6,7 +9,7 @@ class Asset {
6
9
  return this.withProps(structuredClone(this.props));
7
10
  }
8
11
  withProps(props) {
9
- const newAsset = new Asset({
12
+ const newAsset = Asset.create({
10
13
  ...this.props,
11
14
  ...props
12
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"delivery/AssetDelivery/Asset.js","sources":["../../../src/delivery/AssetDelivery/Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery/index.js\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n key: string;\n size: number;\n contentType: string;\n}\n\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n constructor(props: AssetData) {\n this.props = props;\n }\n\n clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n withProps(props: Partial<AssetData>) {\n const newAsset = new Asset({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n getId() {\n return this.props.id;\n }\n getTenant() {\n return this.props.tenant;\n }\n getKey() {\n return this.props.key;\n }\n getSize() {\n return this.props.size;\n }\n getContentType() {\n return this.props.contentType;\n }\n getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"names":["Asset","props","structuredClone","newAsset","Error","reader","setter"],"mappings":"AAYO,MAAMA;IAKT,YAAYC,KAAgB,CAAE;QAC1B,IAAI,CAAC,KAAK,GAAGA;IACjB;IAEA,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAACC,gBAAgB,IAAI,CAAC,KAAK;IACpD;IAEA,UAAUD,KAAyB,EAAE;QACjC,MAAME,WAAW,IAAIH,MAAM;YAAE,GAAG,IAAI,CAAC,KAAK;YAAE,GAAGC,KAAK;QAAC;QACrDE,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7CA,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7C,OAAOA;IACX;IAEA,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;IACxB;IACA,YAAY;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC5B;IACA,SAAS;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG;IACzB;IACA,UAAU;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B;IACA,iBAAiB;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;IACjC;IACA,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;IAC7C;IAEA,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMC,MAAM;QAEhB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;IACxC;IAEA,kBAAkBC,MAA2B,EAAE;QAC3C,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMD,MAAM;QAGhB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI;IAC1C;IAEA,kBAAkBE,MAAyD,EAAE;QACzE,IAAI,AAAkB,cAAlB,OAAOA,QACP,IAAI,CAAC,cAAc,GAAGA,OAAO,IAAI,CAAC,cAAc;aAEhD,IAAI,CAAC,cAAc,GAAGA;IAE9B;AACJ"}
1
+ {"version":3,"file":"delivery/AssetDelivery/Asset.js","sources":["../../../src/delivery/AssetDelivery/Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery/index.js\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n key: string;\n size: number;\n contentType: string;\n}\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n public static create(props: AssetData) {\n return new Asset(props);\n }\n\n private constructor(props: AssetData) {\n this.props = props;\n }\n\n public clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n public withProps(props: Partial<AssetData>) {\n const newAsset = Asset.create({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n public getId() {\n return this.props.id;\n }\n\n public getTenant() {\n return this.props.tenant;\n }\n\n public getKey() {\n return this.props.key;\n }\n\n public getSize() {\n return this.props.size;\n }\n\n public getContentType() {\n return this.props.contentType;\n }\n\n public getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n public getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n public setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n public output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n public setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"names":["Asset","props","structuredClone","newAsset","Error","reader","setter"],"mappings":"AAWO,MAAMA;IAKT,OAAc,OAAOC,KAAgB,EAAE;QACnC,OAAO,IAAID,MAAMC;IACrB;IAEA,YAAoBA,KAAgB,CAAE;QAClC,IAAI,CAAC,KAAK,GAAGA;IACjB;IAEO,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAACC,gBAAgB,IAAI,CAAC,KAAK;IACpD;IAEO,UAAUD,KAAyB,EAAE;QACxC,MAAME,WAAWH,MAAM,MAAM,CAAC;YAAE,GAAG,IAAI,CAAC,KAAK;YAAE,GAAGC,KAAK;QAAC;QACxDE,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7CA,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7C,OAAOA;IACX;IAEO,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;IACxB;IAEO,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC5B;IAEO,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG;IACzB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B;IAEO,iBAAiB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;IACjC;IAEO,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;IAC7C;IAEO,cAAc;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMC,MAAM;QAEhB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;IACxC;IAEO,kBAAkBC,MAA2B,EAAE;QAClD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEO,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMD,MAAM;QAGhB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI;IAC1C;IAEO,kBAAkBE,MAAyD,EAAE;QAChF,IAAI,AAAkB,cAAlB,OAAOA,QACP,IAAI,CAAC,cAAc,GAAGA,OAAO,IAAI,CAAC,cAAc;aAEhD,IAAI,CAAC,cAAc,GAAGA;IAE9B;AACJ"}
@@ -1,7 +1,7 @@
1
1
  import type { GenericRecord } from "@webiny/api/types.js";
2
2
  export interface AssetRequestOptions {
3
3
  original?: boolean;
4
- width?: number;
4
+ [key: string]: unknown;
5
5
  }
6
6
  export type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {
7
7
  /**
@@ -15,8 +15,9 @@ export interface AssetRequestData<TOptions> {
15
15
  options: TOptions;
16
16
  }
17
17
  export declare class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {
18
- private data;
19
- constructor(data: AssetRequestData<TOptions>);
18
+ private readonly data;
19
+ static create<TOptions extends AssetRequestOptions = AssetRequestOptions>(data: AssetRequestData<TOptions>): AssetRequest<TOptions>;
20
+ private constructor();
20
21
  getKey(): string;
21
22
  getOptions(): TOptions;
22
23
  setOptions(options: TOptions): void;
@@ -1,4 +1,7 @@
1
1
  class AssetRequest {
2
+ static create(data) {
3
+ return new AssetRequest(data);
4
+ }
2
5
  constructor(data){
3
6
  this.data = data;
4
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delivery/AssetDelivery/AssetRequest.js","sources":["../../../src/delivery/AssetDelivery/AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n width?: number;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\n\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private data: AssetRequestData<TOptions>;\n\n constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n getKey() {\n return this.data.key;\n }\n\n getOptions(): TOptions {\n return this.data.options;\n }\n\n setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"names":["AssetRequest","data","options"],"mappings":"AAoBO,MAAMA;IAGT,YAAYC,IAAgC,CAAE;QAC1C,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG;IACxB;IAEA,aAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEA,WAAWC,OAAiB,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGA;IACxB;IAEA,aAAsD;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEA,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG;IACvC;AACJ"}
1
+ {"version":3,"file":"delivery/AssetDelivery/AssetRequest.js","sources":["../../../src/delivery/AssetDelivery/AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n [key: string]: unknown;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private readonly data: AssetRequestData<TOptions>;\n\n public static create<TOptions extends AssetRequestOptions = AssetRequestOptions>(\n data: AssetRequestData<TOptions>\n ) {\n return new AssetRequest(data);\n }\n\n private constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n public getKey() {\n return this.data.key;\n }\n\n public getOptions(): TOptions {\n return this.data.options;\n }\n\n public setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n public getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n public getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"names":["AssetRequest","data","options"],"mappings":"AAmBO,MAAMA;IAGT,OAAc,OACVC,IAAgC,EAClC;QACE,OAAO,IAAID,aAAaC;IAC5B;IAEA,YAAoBA,IAAgC,CAAE;QAClD,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,SAAS;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG;IACxB;IAEO,aAAuB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEO,WAAWC,OAAiB,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGA;IACxB;IAEO,aAAsD;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEO,eAAe;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG;IACvC;AACJ"}
@@ -14,7 +14,8 @@ export declare class AssetReply {
14
14
  private headers;
15
15
  private code;
16
16
  private body;
17
- constructor(params?: AssetReplyParams);
17
+ static create(params?: AssetReplyParams): AssetReply;
18
+ protected constructor(params?: AssetReplyParams);
18
19
  setHeaders(cb: HeadersSetter): void;
19
20
  getHeaders(): ResponseHeaders;
20
21
  setCode(code: number): void;
@@ -1,6 +1,11 @@
1
1
  import { ResponseHeaders } from "@webiny/handler";
2
2
  const defaultBody = ()=>"";
3
3
  class AssetReply {
4
+ static create(params = {
5
+ code: 200
6
+ }) {
7
+ return new AssetReply(params);
8
+ }
4
9
  constructor(params = {
5
10
  code: 200
6
11
  }){
@@ -1 +1 @@
1
- {"version":3,"file":"delivery/AssetDelivery/abstractions/AssetReply.js","sources":["../../../../src/delivery/AssetDelivery/abstractions/AssetReply.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\n\ninterface HeadersSetter {\n (headers: ResponseHeaders): ResponseHeaders;\n}\n\ninterface AssetReplyParams {\n code: number;\n headers?: ResponseHeaders;\n body?: AssetReplyBody;\n}\n\ninterface AssetReplyBody {\n (): Promise<unknown> | unknown;\n}\n\nconst defaultBody = () => \"\";\n\nexport class AssetReply {\n private headers: ResponseHeaders;\n private code: number;\n private body: AssetReplyBody;\n\n constructor(params: AssetReplyParams = { code: 200 }) {\n this.code = params.code;\n this.headers = params.headers || ResponseHeaders.create();\n this.body = params.body || defaultBody;\n }\n\n setHeaders(cb: HeadersSetter) {\n this.headers = cb(this.headers);\n }\n\n getHeaders() {\n return this.headers;\n }\n\n setCode(code: number) {\n this.code = code;\n }\n\n getCode() {\n return this.code;\n }\n\n setBody(body: AssetReplyBody) {\n this.body = body;\n }\n\n getBody() {\n return this.body();\n }\n}\n"],"names":["defaultBody","AssetReply","params","ResponseHeaders","cb","code","body"],"mappings":";AAgBA,MAAMA,cAAc,IAAM;AAEnB,MAAMC;IAKT,YAAYC,SAA2B;QAAE,MAAM;IAAI,CAAC,CAAE;QAClD,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO,IAAIC,gBAAgB,MAAM;QACvD,IAAI,CAAC,IAAI,GAAGD,OAAO,IAAI,IAAIF;IAC/B;IAEA,WAAWI,EAAiB,EAAE;QAC1B,IAAI,CAAC,OAAO,GAAGA,GAAG,IAAI,CAAC,OAAO;IAClC;IAEA,aAAa;QACT,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,QAAQC,IAAY,EAAE;QAClB,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;IACpB;IAEA,QAAQC,IAAoB,EAAE;QAC1B,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;IACpB;AACJ"}
1
+ {"version":3,"file":"delivery/AssetDelivery/abstractions/AssetReply.js","sources":["../../../../src/delivery/AssetDelivery/abstractions/AssetReply.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\n\ninterface HeadersSetter {\n (headers: ResponseHeaders): ResponseHeaders;\n}\n\ninterface AssetReplyParams {\n code: number;\n headers?: ResponseHeaders;\n body?: AssetReplyBody;\n}\n\ninterface AssetReplyBody {\n (): Promise<unknown> | unknown;\n}\n\nconst defaultBody = () => \"\";\n\nexport class AssetReply {\n private headers: ResponseHeaders;\n private code: number;\n private body: AssetReplyBody;\n\n public static create(params: AssetReplyParams = { code: 200 }) {\n return new AssetReply(params);\n }\n\n protected constructor(params: AssetReplyParams = { code: 200 }) {\n this.code = params.code;\n this.headers = params.headers || ResponseHeaders.create();\n this.body = params.body || defaultBody;\n }\n\n public setHeaders(cb: HeadersSetter) {\n this.headers = cb(this.headers);\n }\n\n public getHeaders() {\n return this.headers;\n }\n\n public setCode(code: number) {\n this.code = code;\n }\n\n public getCode() {\n return this.code;\n }\n\n public setBody(body: AssetReplyBody) {\n this.body = body;\n }\n\n public getBody() {\n return this.body();\n }\n}\n"],"names":["defaultBody","AssetReply","params","ResponseHeaders","cb","code","body"],"mappings":";AAgBA,MAAMA,cAAc,IAAM;AAEnB,MAAMC;IAKT,OAAc,OAAOC,SAA2B;QAAE,MAAM;IAAI,CAAC,EAAE;QAC3D,OAAO,IAAID,WAAWC;IAC1B;IAEA,YAAsBA,SAA2B;QAAE,MAAM;IAAI,CAAC,CAAE;QAC5D,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO,IAAIC,gBAAgB,MAAM;QACvD,IAAI,CAAC,IAAI,GAAGD,OAAO,IAAI,IAAIF;IAC/B;IAEO,WAAWI,EAAiB,EAAE;QACjC,IAAI,CAAC,OAAO,GAAGA,GAAG,IAAI,CAAC,OAAO;IAClC;IAEO,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO;IACvB;IAEO,QAAQC,IAAY,EAAE;QACzB,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,IAAI;IACpB;IAEO,QAAQC,IAAoB,EAAE;QACjC,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,IAAI;IACpB;AACJ"}
@@ -2,6 +2,6 @@ export * from "./AssetDelivery/Asset.js";
2
2
  export * from "./AssetDelivery/AssetRequest.js";
3
3
  export * from "./AssetDelivery/abstractions/AssetReply.js";
4
4
  export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
5
- export type { IAssetRequestResolver as AssetRequestResolver, IAssetResolver as AssetResolver, IAssetProcessor as AssetProcessor, IAssetOutputStrategy as AssetOutputStrategy, IAssetTransformationStrategy as AssetTransformationStrategy, IAssetContentsReader as AssetContentsReader } from "../features/assetDelivery/abstractions.js";
6
- export { PublicCache } from "../features/assetDelivery/privateFiles/PublicCache.js";
7
- export { PrivateCache } from "../features/assetDelivery/privateFiles/PrivateCache.js";
5
+ export type { IAssetResolver as AssetResolver } from "../features/assetDelivery/abstractions/AssetResolver.js";
6
+ export type { IAssetOutputStrategy as AssetOutputStrategy } from "../features/assetDelivery/abstractions/AssetOutputStrategy.js";
7
+ export type { IAssetContentsReader as AssetContentsReader } from "../features/assetDelivery/abstractions/AssetContentsReader.js";
package/delivery/index.js CHANGED
@@ -2,5 +2,3 @@ export * from "./AssetDelivery/Asset.js";
2
2
  export * from "./AssetDelivery/AssetRequest.js";
3
3
  export * from "./AssetDelivery/abstractions/AssetReply.js";
4
4
  export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
5
- export { PublicCache } from "../features/assetDelivery/privateFiles/PublicCache.js";
6
- export { PrivateCache } from "../features/assetDelivery/privateFiles/PrivateCache.js";
@@ -1,5 +1,8 @@
1
1
  import { ResponseHeaders, createHandlerOnRequest, createModifyFastifyPlugin, createRoute } from "@webiny/handler";
2
- import { AssetOutputStrategy, AssetProcessor, AssetRequestResolver, AssetResolver } from "../features/assetDelivery/abstractions.js";
2
+ import { AssetRequestResolver } from "../features/assetDelivery/abstractions/AssetRequestResolver.js";
3
+ import { AssetResolver } from "../features/assetDelivery/abstractions/AssetResolver.js";
4
+ import { AssetProcessor } from "../features/assetDelivery/abstractions/AssetProcessor.js";
5
+ import { AssetOutputStrategy } from "../features/assetDelivery/abstractions/AssetOutputStrategy.js";
3
6
  const noCacheHeaders = ResponseHeaders.create({
4
7
  "content-type": "application/json",
5
8
  "cache-control": "no-cache, no-store, must-revalidate"
@@ -1 +1 @@
1
- {"version":3,"file":"delivery/setupAssetDelivery.js","sources":["../../src/delivery/setupAssetDelivery.ts"],"sourcesContent":["import {\n createHandlerOnRequest,\n createModifyFastifyPlugin,\n createRoute,\n ResponseHeaders\n} from \"@webiny/handler\";\nimport type { Asset, AssetRequest } from \"./index.js\";\nimport type { Reply } from \"@webiny/handler/types.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport {\n AssetRequestResolver,\n AssetResolver,\n AssetProcessor,\n AssetOutputStrategy\n} from \"~/features/assetDelivery/abstractions.js\";\n\nconst noCacheHeaders = ResponseHeaders.create({\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache, no-store, must-revalidate\"\n});\n\nfunction assertAssetRequestWasResolved(request: any): asserts request is AssetRequest {\n if (request === undefined) {\n throw new Error(\"Not an AssetRequest!\");\n }\n}\n\nfunction assertAssetWasResolved(asset: Asset | undefined): asserts asset is Asset {\n if (asset === undefined) {\n throw new Error(\"Not an Asset!\");\n }\n}\n\nexport const setupAssetDelivery = () => {\n const outputAsset = async (reply: Reply, asset: Asset) => {\n const assetReply = await asset.output();\n const headers = assetReply.getHeaders();\n\n headers.set(\"x-webiny-base64-encoded\", \"true\");\n\n reply.code(assetReply.getCode());\n reply.headers(headers.getHeaders());\n return reply.send(await assetReply.getBody());\n };\n\n return [\n createModifyFastifyPlugin(app => {\n const container = app.webiny.container;\n\n let resolvedRequest: AssetRequest | undefined;\n let resolvedAsset: Asset | undefined;\n\n const handlerOnRequest = createHandlerOnRequest(async (request, reply) => {\n const requestResolver = container.resolve(AssetRequestResolver);\n resolvedRequest = await requestResolver.resolve(request);\n\n if (!resolvedRequest) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Unable to resolve the request!\" })\n .hijack();\n\n return false;\n }\n\n const assetResolver = container.resolve(AssetResolver);\n resolvedAsset = await assetResolver.resolve(resolvedRequest);\n\n if (!resolvedAsset) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Asset not found!\" })\n .hijack();\n\n return false;\n }\n\n request.headers = {\n ...request.headers,\n \"x-tenant\": resolvedAsset.getTenant()\n };\n\n return;\n });\n\n const deliveryRoute = createRoute<ApiCoreContext>(({ onGet, context }) => {\n onGet(\n \"*\",\n async (_, reply) => {\n assertAssetRequestWasResolved(resolvedRequest);\n assertAssetWasResolved(resolvedAsset);\n\n const outputStrategy = context.container.resolve(AssetOutputStrategy);\n resolvedAsset.setOutputStrategy(outputStrategy);\n\n const assetProcessor = context.container.resolve(AssetProcessor);\n const processedAsset = await assetProcessor.process(\n resolvedRequest,\n resolvedAsset\n );\n\n console.log(`Output asset (size: ${processedAsset.getSize()} bytes).`);\n return outputAsset(reply, processedAsset);\n },\n { override: true }\n );\n });\n\n app.webiny.plugins.register(handlerOnRequest, deliveryRoute);\n })\n ];\n};\n"],"names":["noCacheHeaders","ResponseHeaders","assertAssetRequestWasResolved","request","undefined","Error","assertAssetWasResolved","asset","setupAssetDelivery","outputAsset","reply","assetReply","headers","createModifyFastifyPlugin","app","container","resolvedRequest","resolvedAsset","handlerOnRequest","createHandlerOnRequest","requestResolver","AssetRequestResolver","assetResolver","AssetResolver","deliveryRoute","createRoute","onGet","context","_","outputStrategy","AssetOutputStrategy","assetProcessor","AssetProcessor","processedAsset","console"],"mappings":";;AAgBA,MAAMA,iBAAiBC,gBAAgB,MAAM,CAAC;IAC1C,gBAAgB;IAChB,iBAAiB;AACrB;AAEA,SAASC,8BAA8BC,OAAY;IAC/C,IAAIA,AAAYC,WAAZD,SACA,MAAM,IAAIE,MAAM;AAExB;AAEA,SAASC,uBAAuBC,KAAwB;IACpD,IAAIA,AAAUH,WAAVG,OACA,MAAM,IAAIF,MAAM;AAExB;AAEO,MAAMG,qBAAqB;IAC9B,MAAMC,cAAc,OAAOC,OAAcH;QACrC,MAAMI,aAAa,MAAMJ,MAAM,MAAM;QACrC,MAAMK,UAAUD,WAAW,UAAU;QAErCC,QAAQ,GAAG,CAAC,2BAA2B;QAEvCF,MAAM,IAAI,CAACC,WAAW,OAAO;QAC7BD,MAAM,OAAO,CAACE,QAAQ,UAAU;QAChC,OAAOF,MAAM,IAAI,CAAC,MAAMC,WAAW,OAAO;IAC9C;IAEA,OAAO;QACHE,0BAA0BC,CAAAA;YACtB,MAAMC,YAAYD,IAAI,MAAM,CAAC,SAAS;YAEtC,IAAIE;YACJ,IAAIC;YAEJ,MAAMC,mBAAmBC,uBAAuB,OAAOhB,SAASO;gBAC5D,MAAMU,kBAAkBL,UAAU,OAAO,CAACM;gBAC1CL,kBAAkB,MAAMI,gBAAgB,OAAO,CAACjB;gBAEhD,IAAI,CAACa,iBAAiB;oBAClBN,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAiC,GAC/C,MAAM;oBAEX,OAAO;gBACX;gBAEA,MAAMsB,gBAAgBP,UAAU,OAAO,CAACQ;gBACxCN,gBAAgB,MAAMK,cAAc,OAAO,CAACN;gBAE5C,IAAI,CAACC,eAAe;oBAChBP,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAmB,GACjC,MAAM;oBAEX,OAAO;gBACX;gBAEAG,QAAQ,OAAO,GAAG;oBACd,GAAGA,QAAQ,OAAO;oBAClB,YAAYc,cAAc,SAAS;gBACvC;YAGJ;YAEA,MAAMO,gBAAgBC,YAA4B,CAAC,EAAEC,KAAK,EAAEC,OAAO,EAAE;gBACjED,MACI,KACA,OAAOE,GAAGlB;oBACNR,8BAA8Bc;oBAC9BV,uBAAuBW;oBAEvB,MAAMY,iBAAiBF,QAAQ,SAAS,CAAC,OAAO,CAACG;oBACjDb,cAAc,iBAAiB,CAACY;oBAEhC,MAAME,iBAAiBJ,QAAQ,SAAS,CAAC,OAAO,CAACK;oBACjD,MAAMC,iBAAiB,MAAMF,eAAe,OAAO,CAC/Cf,iBACAC;oBAGJiB,QAAQ,GAAG,CAAC,CAAC,oBAAoB,EAAED,eAAe,OAAO,GAAG,QAAQ,CAAC;oBACrE,OAAOxB,YAAYC,OAAOuB;gBAC9B,GACA;oBAAE,UAAU;gBAAK;YAEzB;YAEAnB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAACI,kBAAkBM;QAClD;KACH;AACL"}
1
+ {"version":3,"file":"delivery/setupAssetDelivery.js","sources":["../../src/delivery/setupAssetDelivery.ts"],"sourcesContent":["import {\n createHandlerOnRequest,\n createModifyFastifyPlugin,\n createRoute,\n ResponseHeaders\n} from \"@webiny/handler\";\nimport type { Asset, AssetRequest } from \"./index.js\";\nimport type { Reply } from \"@webiny/handler/types.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { AssetRequestResolver } from \"~/features/assetDelivery/abstractions/AssetRequestResolver.js\";\nimport { AssetResolver } from \"~/features/assetDelivery/abstractions/AssetResolver.js\";\nimport { AssetProcessor } from \"~/features/assetDelivery/abstractions/AssetProcessor.js\";\nimport { AssetOutputStrategy } from \"~/features/assetDelivery/abstractions/AssetOutputStrategy.js\";\n\nconst noCacheHeaders = ResponseHeaders.create({\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache, no-store, must-revalidate\"\n});\n\nfunction assertAssetRequestWasResolved(request: any): asserts request is AssetRequest {\n if (request === undefined) {\n throw new Error(\"Not an AssetRequest!\");\n }\n}\n\nfunction assertAssetWasResolved(asset: Asset | undefined): asserts asset is Asset {\n if (asset === undefined) {\n throw new Error(\"Not an Asset!\");\n }\n}\n\nexport const setupAssetDelivery = () => {\n const outputAsset = async (reply: Reply, asset: Asset) => {\n const assetReply = await asset.output();\n const headers = assetReply.getHeaders();\n\n headers.set(\"x-webiny-base64-encoded\", \"true\");\n\n reply.code(assetReply.getCode());\n reply.headers(headers.getHeaders());\n return reply.send(await assetReply.getBody());\n };\n\n return [\n createModifyFastifyPlugin(app => {\n const container = app.webiny.container;\n\n let resolvedRequest: AssetRequest | undefined;\n let resolvedAsset: Asset | undefined;\n\n const handlerOnRequest = createHandlerOnRequest(async (request, reply) => {\n const requestResolver = container.resolve(AssetRequestResolver);\n resolvedRequest = await requestResolver.resolve(request);\n\n if (!resolvedRequest) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Unable to resolve the request!\" })\n .hijack();\n\n return false;\n }\n\n const assetResolver = container.resolve(AssetResolver);\n resolvedAsset = await assetResolver.resolve(resolvedRequest);\n\n if (!resolvedAsset) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Asset not found!\" })\n .hijack();\n\n return false;\n }\n\n request.headers = {\n ...request.headers,\n \"x-tenant\": resolvedAsset.getTenant()\n };\n\n return;\n });\n\n const deliveryRoute = createRoute<ApiCoreContext>(({ onGet, context }) => {\n onGet(\n \"*\",\n async (_, reply) => {\n assertAssetRequestWasResolved(resolvedRequest);\n assertAssetWasResolved(resolvedAsset);\n\n const outputStrategy = context.container.resolve(AssetOutputStrategy);\n resolvedAsset.setOutputStrategy(outputStrategy);\n\n const assetProcessor = context.container.resolve(AssetProcessor);\n const processedAsset = await assetProcessor.process(\n resolvedRequest,\n resolvedAsset\n );\n\n console.log(`Output asset (size: ${processedAsset.getSize()} bytes).`);\n return outputAsset(reply, processedAsset);\n },\n { override: true }\n );\n });\n\n app.webiny.plugins.register(handlerOnRequest, deliveryRoute);\n })\n ];\n};\n"],"names":["noCacheHeaders","ResponseHeaders","assertAssetRequestWasResolved","request","undefined","Error","assertAssetWasResolved","asset","setupAssetDelivery","outputAsset","reply","assetReply","headers","createModifyFastifyPlugin","app","container","resolvedRequest","resolvedAsset","handlerOnRequest","createHandlerOnRequest","requestResolver","AssetRequestResolver","assetResolver","AssetResolver","deliveryRoute","createRoute","onGet","context","_","outputStrategy","AssetOutputStrategy","assetProcessor","AssetProcessor","processedAsset","console"],"mappings":";;;;;AAcA,MAAMA,iBAAiBC,gBAAgB,MAAM,CAAC;IAC1C,gBAAgB;IAChB,iBAAiB;AACrB;AAEA,SAASC,8BAA8BC,OAAY;IAC/C,IAAIA,AAAYC,WAAZD,SACA,MAAM,IAAIE,MAAM;AAExB;AAEA,SAASC,uBAAuBC,KAAwB;IACpD,IAAIA,AAAUH,WAAVG,OACA,MAAM,IAAIF,MAAM;AAExB;AAEO,MAAMG,qBAAqB;IAC9B,MAAMC,cAAc,OAAOC,OAAcH;QACrC,MAAMI,aAAa,MAAMJ,MAAM,MAAM;QACrC,MAAMK,UAAUD,WAAW,UAAU;QAErCC,QAAQ,GAAG,CAAC,2BAA2B;QAEvCF,MAAM,IAAI,CAACC,WAAW,OAAO;QAC7BD,MAAM,OAAO,CAACE,QAAQ,UAAU;QAChC,OAAOF,MAAM,IAAI,CAAC,MAAMC,WAAW,OAAO;IAC9C;IAEA,OAAO;QACHE,0BAA0BC,CAAAA;YACtB,MAAMC,YAAYD,IAAI,MAAM,CAAC,SAAS;YAEtC,IAAIE;YACJ,IAAIC;YAEJ,MAAMC,mBAAmBC,uBAAuB,OAAOhB,SAASO;gBAC5D,MAAMU,kBAAkBL,UAAU,OAAO,CAACM;gBAC1CL,kBAAkB,MAAMI,gBAAgB,OAAO,CAACjB;gBAEhD,IAAI,CAACa,iBAAiB;oBAClBN,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAiC,GAC/C,MAAM;oBAEX,OAAO;gBACX;gBAEA,MAAMsB,gBAAgBP,UAAU,OAAO,CAACQ;gBACxCN,gBAAgB,MAAMK,cAAc,OAAO,CAACN;gBAE5C,IAAI,CAACC,eAAe;oBAChBP,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAmB,GACjC,MAAM;oBAEX,OAAO;gBACX;gBAEAG,QAAQ,OAAO,GAAG;oBACd,GAAGA,QAAQ,OAAO;oBAClB,YAAYc,cAAc,SAAS;gBACvC;YAGJ;YAEA,MAAMO,gBAAgBC,YAA4B,CAAC,EAAEC,KAAK,EAAEC,OAAO,EAAE;gBACjED,MACI,KACA,OAAOE,GAAGlB;oBACNR,8BAA8Bc;oBAC9BV,uBAAuBW;oBAEvB,MAAMY,iBAAiBF,QAAQ,SAAS,CAAC,OAAO,CAACG;oBACjDb,cAAc,iBAAiB,CAACY;oBAEhC,MAAME,iBAAiBJ,QAAQ,SAAS,CAAC,OAAO,CAACK;oBACjD,MAAMC,iBAAiB,MAAMF,eAAe,OAAO,CAC/Cf,iBACAC;oBAGJiB,QAAQ,GAAG,CAAC,CAAC,oBAAoB,EAAED,eAAe,OAAO,GAAG,QAAQ,CAAC;oBACrE,OAAOxB,YAAYC,OAAOuB;gBAC9B,GACA;oBAAE,UAAU;gBAAK;YAEzB;YAEAnB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAACI,kBAAkBM;QAClD;KACH;AACL"}
@@ -21,7 +21,11 @@ class FilePrivateModelImpl {
21
21
  width: fields.number().label("Width"),
22
22
  height: fields.number().label("Height"),
23
23
  format: fields.text().label("Format"),
24
- orientation: fields.number().label("Orientation")
24
+ orientation: fields.number().label("Orientation"),
25
+ crop: fields.json().label("Crop"),
26
+ focalPoint: fields.json().label("Focal point"),
27
+ alt: fields.text().label("Alt text"),
28
+ caption: fields.text().label("Caption")
25
29
  })),
26
30
  exif: fields.searchableJson().label("EXIF Data"),
27
31
  iptc: fields.searchableJson().label("IPTC Data")
@@ -1 +1 @@
1
- {"version":3,"file":"domain/file/file.model.js","sources":["../../../src/domain/file/file.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\n\nexport const FILE_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"fmFile\" : \"wbyFmFile\";\n\nclass FilePrivateModelImpl implements ModelFactory.Interface {\n public constructor(private wcp: WcpContext.Interface) {}\n\n public async execute(builder: ModelFactory.Builder) {\n const model = builder.private({\n modelId: FILE_MODEL_ID,\n name: \"FmFile\"\n });\n const privateFiles = this.wcp.canUsePrivateFiles();\n\n model.fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Value is required.\"),\n key: fields.text().label(\"Key\").required(\"Value is required.\"),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n size: fields.number().label(\"Size\").required(\"Value is required.\"),\n metadata: fields\n .object()\n .label(\"Metadata\")\n .renderer(\"hidden\")\n .fields(fields => ({\n image: fields\n .object()\n .label(\"Image\")\n .fields(fields => ({\n width: fields.number().label(\"Width\"),\n height: fields.number().label(\"Height\"),\n format: fields.text().label(\"Format\"),\n orientation: fields.number().label(\"Orientation\")\n })),\n // Store complete raw EXIF as JSON\n exif: fields.searchableJson().label(\"EXIF Data\"),\n // Store complete raw IPTC as JSON\n iptc: fields.searchableJson().label(\"IPTC Data\")\n })),\n tags: fields\n .text()\n .label(\"Tags\")\n .tags([\"$bulk-edit\"])\n .list()\n .required(\"Value is required.\"),\n description: fields.text().label(\"Description\").defaultValue(\"\")\n }));\n\n if (privateFiles) {\n model.fields(fields => ({\n accessControl: fields\n .object()\n .label(\"Access Control\")\n .tags([\"$bulk-edit\"])\n .fields(fields => ({\n type: fields\n .text()\n .label(\"Type\")\n .predefinedValues([\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\",\n selected: false\n }\n ])\n }))\n }));\n }\n\n return [model];\n }\n}\n\nexport const FileModel = ModelFactory.createImplementation({\n implementation: FilePrivateModelImpl,\n dependencies: [WcpContext]\n});\n"],"names":["FILE_MODEL_ID","process","FilePrivateModelImpl","wcp","builder","model","privateFiles","fields","FileModel","ModelFactory","WcpContext"],"mappings":";;AAGO,MAAMA,gBAAgBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,WAAW;AAE/E,MAAMC;IACF,YAA2BC,GAAyB,CAAE;aAA3BA,GAAG,GAAHA;IAA4B;IAEvD,MAAa,QAAQC,OAA6B,EAAE;QAChD,MAAMC,QAAQD,QAAQ,OAAO,CAAC;YAC1B,SAASJ;YACT,MAAM;QACV;QACA,MAAMM,eAAe,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAEhDD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC;gBACzC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,MAAMA,OAAO,MAAM,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC7C,UAAUA,OACL,MAAM,GACN,KAAK,CAAC,YACN,QAAQ,CAAC,UACT,MAAM,CAACA,CAAAA,SAAW;wBACf,OAAOA,OACF,MAAM,GACN,KAAK,CAAC,SACN,MAAM,CAACA,CAAAA,SAAW;gCACf,OAAOA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC7B,QAAQA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC9B,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC5B,aAAaA,OAAO,MAAM,GAAG,KAAK,CAAC;4BACvC;wBAEJ,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;wBAEpC,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;oBACxC;gBACJ,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,IAAI,GACJ,QAAQ,CAAC;gBACd,aAAaA,OAAO,IAAI,GAAG,KAAK,CAAC,eAAe,YAAY,CAAC;YACjE;QAEA,IAAID,cACAD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,MAAM,GACN,KAAK,CAAC,kBACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,MAAM,CAACA,CAAAA,SAAW;wBACf,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,gBAAgB,CAAC;4BACd;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;4BACA;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;yBACH;oBACT;YACR;QAGJ,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,YAAYC,aAAa,oBAAoB,CAAC;IACvD,gBAAgBP;IAChB,cAAc;QAACQ;KAAW;AAC9B"}
1
+ {"version":3,"file":"domain/file/file.model.js","sources":["../../../src/domain/file/file.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\n\nexport const FILE_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"fmFile\" : \"wbyFmFile\";\n\nclass FilePrivateModelImpl implements ModelFactory.Interface {\n public constructor(private wcp: WcpContext.Interface) {}\n\n public async execute(builder: ModelFactory.Builder) {\n const model = builder.private({\n modelId: FILE_MODEL_ID,\n name: \"FmFile\"\n });\n const privateFiles = this.wcp.canUsePrivateFiles();\n\n model.fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Value is required.\"),\n key: fields.text().label(\"Key\").required(\"Value is required.\"),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n size: fields.number().label(\"Size\").required(\"Value is required.\"),\n metadata: fields\n .object()\n .label(\"Metadata\")\n .renderer(\"hidden\")\n .fields(fields => ({\n image: fields\n .object()\n .label(\"Image\")\n .fields(fields => ({\n width: fields.number().label(\"Width\"),\n height: fields.number().label(\"Height\"),\n format: fields.text().label(\"Format\"),\n orientation: fields.number().label(\"Orientation\"),\n crop: fields.json().label(\"Crop\"),\n focalPoint: fields.json().label(\"Focal point\"),\n alt: fields.text().label(\"Alt text\"),\n caption: fields.text().label(\"Caption\")\n })),\n // Store complete raw EXIF as JSON\n exif: fields.searchableJson().label(\"EXIF Data\"),\n // Store complete raw IPTC as JSON\n iptc: fields.searchableJson().label(\"IPTC Data\")\n })),\n tags: fields\n .text()\n .label(\"Tags\")\n .tags([\"$bulk-edit\"])\n .list()\n .required(\"Value is required.\"),\n description: fields.text().label(\"Description\").defaultValue(\"\")\n }));\n\n if (privateFiles) {\n model.fields(fields => ({\n accessControl: fields\n .object()\n .label(\"Access Control\")\n .tags([\"$bulk-edit\"])\n .fields(fields => ({\n type: fields\n .text()\n .label(\"Type\")\n .predefinedValues([\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\",\n selected: false\n }\n ])\n }))\n }));\n }\n\n return [model];\n }\n}\n\nexport const FileModel = ModelFactory.createImplementation({\n implementation: FilePrivateModelImpl,\n dependencies: [WcpContext]\n});\n"],"names":["FILE_MODEL_ID","process","FilePrivateModelImpl","wcp","builder","model","privateFiles","fields","FileModel","ModelFactory","WcpContext"],"mappings":";;AAGO,MAAMA,gBAAgBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,WAAW;AAE/E,MAAMC;IACF,YAA2BC,GAAyB,CAAE;aAA3BA,GAAG,GAAHA;IAA4B;IAEvD,MAAa,QAAQC,OAA6B,EAAE;QAChD,MAAMC,QAAQD,QAAQ,OAAO,CAAC;YAC1B,SAASJ;YACT,MAAM;QACV;QACA,MAAMM,eAAe,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAEhDD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC;gBACzC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,MAAMA,OAAO,MAAM,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC7C,UAAUA,OACL,MAAM,GACN,KAAK,CAAC,YACN,QAAQ,CAAC,UACT,MAAM,CAACA,CAAAA,SAAW;wBACf,OAAOA,OACF,MAAM,GACN,KAAK,CAAC,SACN,MAAM,CAACA,CAAAA,SAAW;gCACf,OAAOA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC7B,QAAQA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC9B,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC5B,aAAaA,OAAO,MAAM,GAAG,KAAK,CAAC;gCACnC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC1B,YAAYA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAChC,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC;gCACzB,SAASA,OAAO,IAAI,GAAG,KAAK,CAAC;4BACjC;wBAEJ,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;wBAEpC,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;oBACxC;gBACJ,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,IAAI,GACJ,QAAQ,CAAC;gBACd,aAAaA,OAAO,IAAI,GAAG,KAAK,CAAC,eAAe,YAAY,CAAC;YACjE;QAEA,IAAID,cACAD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,MAAM,GACN,KAAK,CAAC,kBACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,MAAM,CAACA,CAAAA,SAAW;wBACf,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,gBAAgB,CAAC;4BACd;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;4BACA;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;yBACH;oBACT;YACR;QAGJ,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,YAAYC,aAAa,oBAAoB,CAAC;IACvD,gBAAgBP;IAChB,cAAc;QAACQ;KAAW;AAC9B"}
@@ -1,5 +1,5 @@
1
1
  import zod from "zod";
2
- import { ServiceDiscovery } from "@webiny/api";
2
+ import { ServiceDiscovery } from "@webiny/api-core/features/serviceDiscovery/index.js";
3
3
  const MIN_FILE_SIZE = 0;
4
4
  const MAX_FILE_SIZE = 10737418240;
5
5
  const uploadMinFileSizeValidation = zod.number().min(MIN_FILE_SIZE, {
@@ -1 +1 @@
1
- {"version":3,"file":"domain/settings/validation.js","sources":["../../../src/domain/settings/validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ServiceDiscovery } from \"@webiny/api\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MIN_FILE_SIZE;\n })\n .optional();\n\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MAX_FILE_SIZE;\n })\n .optional();\n\nexport const updateSettingsValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(async value => {\n if (!value) {\n const manifest = await ServiceDiscovery.load();\n if (!manifest || !manifest.api) {\n return \"\";\n }\n\n const { domain } = manifest.api.cloudfront;\n\n return `https://${domain}/files/`;\n }\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n"],"names":["MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","zod","value","uploadMaxFileSizeValidation","updateSettingsValidation","manifest","ServiceDiscovery","domain"],"mappings":";;AAGA,MAAMA,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,8BAA8BC,IAAAA,MACzB,GACN,GAAG,CAACH,eAAe;IAChB,SAAS,CAAC,2CAA2C,EAAEA,cAAc,CAAC,CAAC;AAC3E,GACC,OAAO,GACP,SAAS,CAACI,CAAAA,QACAA,SAASJ,eAEnB,QAAQ;AAEb,MAAMK,8BAA8BF,IAAAA,MACzB,GACN,GAAG,CAACF,eAAe;IAChB,SAAS,CAAC,0CAA0C,EAAEA,cAAc,CAAC,CAAC;AAC1E,GACC,OAAO,GACP,SAAS,CAACG,CAAAA,QACAA,SAASH,eAEnB,QAAQ;AAEN,MAAMK,2BAA2BH,IAAI,MAAM,CAAC;IAC/C,mBAAmBD;IACnB,mBAAmBG;IACnB,WAAWF,IAAAA,MACA,GACN,QAAQ,GACR,SAAS,CAAC,OAAMC;QACb,IAAI,CAACA,OAAO;YACR,MAAMG,WAAW,MAAMC,iBAAiB,IAAI;YAC5C,IAAI,CAACD,YAAY,CAACA,SAAS,GAAG,EAC1B,OAAO;YAGX,MAAM,EAAEE,MAAM,EAAE,GAAGF,SAAS,GAAG,CAAC,UAAU;YAE1C,OAAO,CAAC,QAAQ,EAAEE,OAAO,OAAO,CAAC;QACrC;QACA,IAAI,AAAiB,YAAjB,OAAOL,OACP,OAAOA,MAAM,QAAQ,CAAC,OAAOA,QAAQA,QAAQ;QAEjD,OAAOA;IACX;AACR"}
1
+ {"version":3,"file":"domain/settings/validation.js","sources":["../../../src/domain/settings/validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ServiceDiscovery } from \"@webiny/api-core/features/serviceDiscovery/index.js\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MIN_FILE_SIZE;\n })\n .optional();\n\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MAX_FILE_SIZE;\n })\n .optional();\n\nexport const updateSettingsValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(async value => {\n if (!value) {\n const manifest = await ServiceDiscovery.load();\n if (!manifest || !manifest.api) {\n return \"\";\n }\n\n const { domain } = manifest.api.cloudfront;\n\n return `https://${domain}/files/`;\n }\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n"],"names":["MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","zod","value","uploadMaxFileSizeValidation","updateSettingsValidation","manifest","ServiceDiscovery","domain"],"mappings":";;AAGA,MAAMA,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,8BAA8BC,IAAAA,MACzB,GACN,GAAG,CAACH,eAAe;IAChB,SAAS,CAAC,2CAA2C,EAAEA,cAAc,CAAC,CAAC;AAC3E,GACC,OAAO,GACP,SAAS,CAACI,CAAAA,QACAA,SAASJ,eAEnB,QAAQ;AAEb,MAAMK,8BAA8BF,IAAAA,MACzB,GACN,GAAG,CAACF,eAAe;IAChB,SAAS,CAAC,0CAA0C,EAAEA,cAAc,CAAC,CAAC;AAC1E,GACC,OAAO,GACP,SAAS,CAACG,CAAAA,QACAA,SAASH,eAEnB,QAAQ;AAEN,MAAMK,2BAA2BH,IAAI,MAAM,CAAC;IAC/C,mBAAmBD;IACnB,mBAAmBG;IACnB,WAAWF,IAAAA,MACA,GACN,QAAQ,GACR,SAAS,CAAC,OAAMC;QACb,IAAI,CAACA,OAAO;YACR,MAAMG,WAAW,MAAMC,iBAAiB,IAAI;YAC5C,IAAI,CAACD,YAAY,CAACA,SAAS,GAAG,EAC1B,OAAO;YAGX,MAAM,EAAEE,MAAM,EAAE,GAAGF,SAAS,GAAG,CAAC,UAAU;YAE1C,OAAO,CAAC,QAAQ,EAAEE,OAAO,OAAO,CAAC;QACrC;QACA,IAAI,AAAiB,YAAjB,OAAOL,OACP,OAAOA,MAAM,QAAQ,CAAC,OAAOA,QAAQA,QAAQ;QAEjD,OAAOA;IACX;AACR"}
@@ -0,0 +1,18 @@
1
+ export { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ export type { AssetData } from "../../../delivery/AssetDelivery/Asset.js";
3
+ export { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
4
+ export type { AssetRequestOptions } from "../../../delivery/AssetDelivery/AssetRequest.js";
5
+ export { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
6
+ export { createAssetDeliveryPluginLoader } from "../../../delivery/AssetDelivery/createAssetDeliveryPluginLoader.js";
7
+ export { AssetRequestResolver } from "../../../features/assetDelivery/abstractions/AssetRequestResolver.js";
8
+ export { AssetResolver } from "../../../features/assetDelivery/abstractions/AssetResolver.js";
9
+ export { AssetProcessor } from "../../../features/assetDelivery/abstractions/AssetProcessor.js";
10
+ export { AssetOutputStrategy } from "../../../features/assetDelivery/abstractions/AssetOutputStrategy.js";
11
+ export { AssetType } from "../../../features/assetDelivery/abstractions/AssetType.js";
12
+ export type { IAssetType, IAssetTypeHandler } from "../../../features/assetDelivery/abstractions/AssetType.js";
13
+ export { AssetContentsReader } from "../../../features/assetDelivery/abstractions/AssetContentsReader.js";
14
+ export { AssetAuthorizer } from "../../../features/assetDelivery/abstractions/AssetAuthorizer.js";
15
+ export { AssetFactory } from "../../../features/assetDelivery/Asset/abstractions.js";
16
+ export { AssetRequestFactory } from "../../../features/assetDelivery/AssetRequest/abstractions.js";
17
+ export { StreamAssetReply } from "../../../features/assetDelivery/StreamAssetReply/abstractions.js";
18
+ export { ObjectKey } from "../../../features/assetDelivery/ObjectKey/abstractions.js";
@@ -0,0 +1,15 @@
1
+ export { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ export { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
3
+ export { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
4
+ export { createAssetDeliveryPluginLoader } from "../../../delivery/AssetDelivery/createAssetDeliveryPluginLoader.js";
5
+ export { AssetRequestResolver } from "../../../features/assetDelivery/abstractions/AssetRequestResolver.js";
6
+ export { AssetResolver } from "../../../features/assetDelivery/abstractions/AssetResolver.js";
7
+ export { AssetProcessor } from "../../../features/assetDelivery/abstractions/AssetProcessor.js";
8
+ export { AssetOutputStrategy } from "../../../features/assetDelivery/abstractions/AssetOutputStrategy.js";
9
+ export { AssetType } from "../../../features/assetDelivery/abstractions/AssetType.js";
10
+ export { AssetContentsReader } from "../../../features/assetDelivery/abstractions/AssetContentsReader.js";
11
+ export { AssetAuthorizer } from "../../../features/assetDelivery/abstractions/AssetAuthorizer.js";
12
+ export { AssetFactory } from "../../../features/assetDelivery/Asset/abstractions.js";
13
+ export { AssetRequestFactory } from "../../../features/assetDelivery/AssetRequest/abstractions.js";
14
+ export { StreamAssetReply } from "../../../features/assetDelivery/StreamAssetReply/abstractions.js";
15
+ export { ObjectKey } from "../../../features/assetDelivery/ObjectKey/abstractions.js";
@@ -8,5 +8,6 @@ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/
8
8
  export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
9
9
  export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
10
10
  export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
11
+ export { GetFileByUrlUseCase } from "../../../features/file/GetFileByUrl/abstractions.js";
11
12
  export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
12
13
  export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
@@ -8,5 +8,6 @@ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/
8
8
  export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
9
9
  export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
10
10
  export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
11
+ export { GetFileByUrlUseCase } from "../../../features/file/GetFileByUrl/abstractions.js";
11
12
  export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
12
13
  export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
@@ -10,6 +10,12 @@ import { SettingsInstallerFeature } from "./settings/SettingsInstaller/feature.j
10
10
  import { GetSettingsFeature } from "./settings/GetSettings/feature.js";
11
11
  import { UpdateSettingsFeature } from "./settings/UpdateSettings/feature.js";
12
12
  import { ListImagesByTagToolFeature } from "./file/ListImagesByTagTool/feature.js";
13
+ import { FileUrlGeneratorFeature } from "./file/FileUrlGenerator/feature.js";
14
+ import { GetFileByUrlFeature } from "./file/GetFileByUrl/feature.js";
15
+ import { ReadFileMetadataFeature } from "./upload/ReadFileMetadata/feature.js";
16
+ import { WriteFileMetadataFeature } from "./upload/WriteFileMetadata/feature.js";
17
+ import { FmGraphQLSchema } from "../graphql/FmGraphQLSchema.js";
18
+ import { FmUploadGraphQLSchema } from "../graphql/FmUploadGraphQLSchema.js";
13
19
  const FileManagerFeature = createFeature({
14
20
  name: "FileManager",
15
21
  register (container) {
@@ -24,6 +30,12 @@ const FileManagerFeature = createFeature({
24
30
  GetSettingsFeature.register(container);
25
31
  UpdateSettingsFeature.register(container);
26
32
  ListImagesByTagToolFeature.register(container);
33
+ FileUrlGeneratorFeature.register(container);
34
+ GetFileByUrlFeature.register(container);
35
+ ReadFileMetadataFeature.register(container);
36
+ WriteFileMetadataFeature.register(container);
37
+ container.register(FmGraphQLSchema);
38
+ container.register(FmUploadGraphQLSchema);
27
39
  }
28
40
  });
29
41
  export { FileManagerFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"features/FileManagerFeature.js","sources":["../../src/features/FileManagerFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileFeature } from \"~/features/file/CreateFile/feature.js\";\nimport { CreateFilesInBatchFeature } from \"~/features/file/CreateFilesInBatch/feature.js\";\nimport { DeleteFileFeature } from \"~/features/file/DeleteFile/feature.js\";\nimport { GetFileFeature } from \"~/features/file/GetFile/feature.js\";\nimport { ListFilesFeature } from \"~/features/file/ListFiles/feature.js\";\nimport { ListTagsFeature } from \"~/features/file/ListTags/feature.js\";\nimport { UpdateFileFeature } from \"~/features/file/UpdateFile/feature.js\";\nimport { SettingsInstallerFeature } from \"~/features/settings/SettingsInstaller/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/UpdateSettings/feature.js\";\nimport { ListImagesByTagToolFeature } from \"~/features/file/ListImagesByTagTool/feature.js\";\n\nexport const FileManagerFeature = createFeature({\n name: \"FileManager\",\n register(container) {\n CreateFileFeature.register(container);\n CreateFilesInBatchFeature.register(container);\n UpdateFileFeature.register(container);\n DeleteFileFeature.register(container);\n GetFileFeature.register(container);\n ListFilesFeature.register(container);\n ListTagsFeature.register(container);\n SettingsInstallerFeature.register(container);\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ListImagesByTagToolFeature.register(container);\n }\n});\n"],"names":["FileManagerFeature","createFeature","container","CreateFileFeature","CreateFilesInBatchFeature","UpdateFileFeature","DeleteFileFeature","GetFileFeature","ListFilesFeature","ListTagsFeature","SettingsInstallerFeature","GetSettingsFeature","UpdateSettingsFeature","ListImagesByTagToolFeature"],"mappings":";;;;;;;;;;;;AAaO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdC,kBAAkB,QAAQ,CAACD;QAC3BE,0BAA0B,QAAQ,CAACF;QACnCG,kBAAkB,QAAQ,CAACH;QAC3BI,kBAAkB,QAAQ,CAACJ;QAC3BK,eAAe,QAAQ,CAACL;QACxBM,iBAAiB,QAAQ,CAACN;QAC1BO,gBAAgB,QAAQ,CAACP;QACzBQ,yBAAyB,QAAQ,CAACR;QAClCS,mBAAmB,QAAQ,CAACT;QAC5BU,sBAAsB,QAAQ,CAACV;QAC/BW,2BAA2B,QAAQ,CAACX;IACxC;AACJ"}
1
+ {"version":3,"file":"features/FileManagerFeature.js","sources":["../../src/features/FileManagerFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileFeature } from \"~/features/file/CreateFile/feature.js\";\nimport { CreateFilesInBatchFeature } from \"~/features/file/CreateFilesInBatch/feature.js\";\nimport { DeleteFileFeature } from \"~/features/file/DeleteFile/feature.js\";\nimport { GetFileFeature } from \"~/features/file/GetFile/feature.js\";\nimport { ListFilesFeature } from \"~/features/file/ListFiles/feature.js\";\nimport { ListTagsFeature } from \"~/features/file/ListTags/feature.js\";\nimport { UpdateFileFeature } from \"~/features/file/UpdateFile/feature.js\";\nimport { SettingsInstallerFeature } from \"~/features/settings/SettingsInstaller/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/UpdateSettings/feature.js\";\nimport { ListImagesByTagToolFeature } from \"~/features/file/ListImagesByTagTool/feature.js\";\nimport { FileUrlGeneratorFeature } from \"~/features/file/FileUrlGenerator/feature.js\";\nimport { GetFileByUrlFeature } from \"~/features/file/GetFileByUrl/feature.js\";\nimport { ReadFileMetadataFeature } from \"~/features/upload/ReadFileMetadata/feature.js\";\nimport { WriteFileMetadataFeature } from \"~/features/upload/WriteFileMetadata/feature.js\";\nimport { FmGraphQLSchema } from \"~/graphql/FmGraphQLSchema.js\";\nimport { FmUploadGraphQLSchema } from \"~/graphql/FmUploadGraphQLSchema.js\";\n\nexport const FileManagerFeature = createFeature({\n name: \"FileManager\",\n register(container) {\n CreateFileFeature.register(container);\n CreateFilesInBatchFeature.register(container);\n UpdateFileFeature.register(container);\n DeleteFileFeature.register(container);\n GetFileFeature.register(container);\n ListFilesFeature.register(container);\n ListTagsFeature.register(container);\n SettingsInstallerFeature.register(container);\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ListImagesByTagToolFeature.register(container);\n FileUrlGeneratorFeature.register(container);\n GetFileByUrlFeature.register(container);\n ReadFileMetadataFeature.register(container);\n WriteFileMetadataFeature.register(container);\n\n /* GraphQL schema factories. */\n container.register(FmGraphQLSchema);\n container.register(FmUploadGraphQLSchema);\n }\n});\n"],"names":["FileManagerFeature","createFeature","container","CreateFileFeature","CreateFilesInBatchFeature","UpdateFileFeature","DeleteFileFeature","GetFileFeature","ListFilesFeature","ListTagsFeature","SettingsInstallerFeature","GetSettingsFeature","UpdateSettingsFeature","ListImagesByTagToolFeature","FileUrlGeneratorFeature","GetFileByUrlFeature","ReadFileMetadataFeature","WriteFileMetadataFeature","FmGraphQLSchema","FmUploadGraphQLSchema"],"mappings":";;;;;;;;;;;;;;;;;;AAmBO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdC,kBAAkB,QAAQ,CAACD;QAC3BE,0BAA0B,QAAQ,CAACF;QACnCG,kBAAkB,QAAQ,CAACH;QAC3BI,kBAAkB,QAAQ,CAACJ;QAC3BK,eAAe,QAAQ,CAACL;QACxBM,iBAAiB,QAAQ,CAACN;QAC1BO,gBAAgB,QAAQ,CAACP;QACzBQ,yBAAyB,QAAQ,CAACR;QAClCS,mBAAmB,QAAQ,CAACT;QAC5BU,sBAAsB,QAAQ,CAACV;QAC/BW,2BAA2B,QAAQ,CAACX;QACpCY,wBAAwB,QAAQ,CAACZ;QACjCa,oBAAoB,QAAQ,CAACb;QAC7Bc,wBAAwB,QAAQ,CAACd;QACjCe,yBAAyB,QAAQ,CAACf;QAGlCA,UAAU,QAAQ,CAACgB;QACnBhB,UAAU,QAAQ,CAACiB;IACvB;AACJ"}
@@ -0,0 +1,8 @@
1
+ import { AssetFactory as AssetFactoryAbstraction, type IAssetFactory } from "./abstractions.js";
2
+ declare class AssetFactoryImpl implements IAssetFactory {
3
+ create(data: AssetFactoryAbstraction.AssetData): AssetFactoryAbstraction.Asset;
4
+ }
5
+ export declare const AssetFactory: typeof AssetFactoryImpl & {
6
+ __abstraction: import("@webiny/di").Abstraction<IAssetFactory>;
7
+ };
8
+ export {};
@@ -0,0 +1,14 @@
1
+ import { Asset } from "../../../delivery/AssetDelivery/Asset.js";
2
+ import { AssetFactory } from "./abstractions.js";
3
+ class AssetFactoryImpl {
4
+ create(data) {
5
+ return Asset.create(data);
6
+ }
7
+ }
8
+ const Asset_AssetFactory = AssetFactory.createImplementation({
9
+ implementation: AssetFactoryImpl,
10
+ dependencies: []
11
+ });
12
+ export { Asset_AssetFactory as AssetFactory };
13
+
14
+ //# sourceMappingURL=Asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/Asset/Asset.js","sources":["../../../../src/features/assetDelivery/Asset/Asset.ts"],"sourcesContent":["import { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport { AssetFactory as AssetFactoryAbstraction, type IAssetFactory } from \"./abstractions.js\";\n\nclass AssetFactoryImpl implements IAssetFactory {\n create(data: AssetFactoryAbstraction.AssetData): AssetFactoryAbstraction.Asset {\n return Asset.create(data);\n }\n}\n\nexport const AssetFactory = AssetFactoryAbstraction.createImplementation({\n implementation: AssetFactoryImpl,\n dependencies: []\n});\n"],"names":["AssetFactoryImpl","data","Asset","AssetFactory","AssetFactoryAbstraction"],"mappings":";;AAGA,MAAMA;IACF,OAAOC,IAAuC,EAAiC;QAC3E,OAAOC,MAAM,MAAM,CAACD;IACxB;AACJ;AAEO,MAAME,qBAAeC,aAAAA,oBAA4C,CAAC;IACrE,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,10 @@
1
+ import type { Asset as IAsset, AssetData as IAssetData } from "../../../delivery/AssetDelivery/Asset.js";
2
+ export interface IAssetFactory {
3
+ create(data: IAssetData): IAsset;
4
+ }
5
+ export declare const AssetFactory: import("@webiny/di").Abstraction<IAssetFactory>;
6
+ export declare namespace AssetFactory {
7
+ type Interface = IAssetFactory;
8
+ type Asset = IAsset;
9
+ type AssetData = IAssetData;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const AssetFactory = createAbstraction("AssetDelivery/AssetFactory");
3
+ export { AssetFactory };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/Asset/abstractions.js","sources":["../../../../src/features/assetDelivery/Asset/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Asset as IAsset, AssetData as IAssetData } from \"~/delivery/AssetDelivery/Asset.js\";\n\nexport interface IAssetFactory {\n create(data: IAssetData): IAsset;\n}\n\nexport const AssetFactory = createAbstraction<IAssetFactory>(\"AssetDelivery/AssetFactory\");\n\nexport namespace AssetFactory {\n export type Interface = IAssetFactory;\n export type Asset = IAsset;\n export type AssetData = IAssetData;\n}\n"],"names":["AssetFactory","createAbstraction"],"mappings":";AAOO,MAAMA,eAAeC,kBAAiC"}
@@ -0,0 +1 @@
1
+ export { AssetFactory } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { AssetFactory } from "./abstractions.js";
@@ -0,0 +1,8 @@
1
+ import { AssetRequestFactory as AssetRequestFactoryAbstraction, type IAssetRequestFactory } from "./abstractions.js";
2
+ declare class AssetRequestFactoryImpl implements IAssetRequestFactory {
3
+ create(data: AssetRequestFactoryAbstraction.AssetRequestData): AssetRequestFactoryAbstraction.AssetRequest;
4
+ }
5
+ export declare const AssetRequestFactory: typeof AssetRequestFactoryImpl & {
6
+ __abstraction: import("@webiny/di").Abstraction<IAssetRequestFactory>;
7
+ };
8
+ export {};
@@ -0,0 +1,14 @@
1
+ import { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
2
+ import { AssetRequestFactory } from "./abstractions.js";
3
+ class AssetRequestFactoryImpl {
4
+ create(data) {
5
+ return AssetRequest.create(data);
6
+ }
7
+ }
8
+ const AssetRequest_AssetRequestFactory = AssetRequestFactory.createImplementation({
9
+ implementation: AssetRequestFactoryImpl,
10
+ dependencies: []
11
+ });
12
+ export { AssetRequest_AssetRequestFactory as AssetRequestFactory };
13
+
14
+ //# sourceMappingURL=AssetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/AssetRequest/AssetRequest.js","sources":["../../../../src/features/assetDelivery/AssetRequest/AssetRequest.ts"],"sourcesContent":["import { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport {\n AssetRequestFactory as AssetRequestFactoryAbstraction,\n type IAssetRequestFactory\n} from \"./abstractions.js\";\n\nclass AssetRequestFactoryImpl implements IAssetRequestFactory {\n create(\n data: AssetRequestFactoryAbstraction.AssetRequestData\n ): AssetRequestFactoryAbstraction.AssetRequest {\n return AssetRequest.create(data);\n }\n}\n\nexport const AssetRequestFactory = AssetRequestFactoryAbstraction.createImplementation({\n implementation: AssetRequestFactoryImpl,\n dependencies: []\n});\n"],"names":["AssetRequestFactoryImpl","data","AssetRequest","AssetRequestFactory","AssetRequestFactoryAbstraction"],"mappings":";;AAMA,MAAMA;IACF,OACIC,IAAqD,EACV;QAC3C,OAAOC,aAAa,MAAM,CAACD;IAC/B;AACJ;AAEO,MAAME,mCAAsBC,oBAAAA,oBAAmD,CAAC;IACnF,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,11 @@
1
+ import type { AssetRequest as IAssetRequest, AssetRequestData as IAssetRequestData, AssetRequestOptions as IAssetRequestOptions } from "../../../delivery/AssetDelivery/AssetRequest.js";
2
+ export interface IAssetRequestFactory {
3
+ create(data: IAssetRequestData<IAssetRequestOptions>): IAssetRequest;
4
+ }
5
+ export declare const AssetRequestFactory: import("@webiny/di").Abstraction<IAssetRequestFactory>;
6
+ export declare namespace AssetRequestFactory {
7
+ type Interface = IAssetRequestFactory;
8
+ type AssetRequest = IAssetRequest;
9
+ type AssetRequestData = IAssetRequestData<IAssetRequestOptions>;
10
+ type AssetRequestOptions = IAssetRequestOptions;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const AssetRequestFactory = createAbstraction("AssetDelivery/AssetRequestFactory");
3
+ export { AssetRequestFactory };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/assetDelivery/AssetRequest/abstractions.js","sources":["../../../../src/features/assetDelivery/AssetRequest/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n AssetRequest as IAssetRequest,\n AssetRequestData as IAssetRequestData,\n AssetRequestOptions as IAssetRequestOptions\n} from \"~/delivery/AssetDelivery/AssetRequest.js\";\n\nexport interface IAssetRequestFactory {\n create(data: IAssetRequestData<IAssetRequestOptions>): IAssetRequest;\n}\n\nexport const AssetRequestFactory = createAbstraction<IAssetRequestFactory>(\n \"AssetDelivery/AssetRequestFactory\"\n);\n\nexport namespace AssetRequestFactory {\n export type Interface = IAssetRequestFactory;\n export type AssetRequest = IAssetRequest;\n export type AssetRequestData = IAssetRequestData<IAssetRequestOptions>;\n export type AssetRequestOptions = IAssetRequestOptions;\n}\n"],"names":["AssetRequestFactory","createAbstraction"],"mappings":";AAWO,MAAMA,sBAAsBC,kBAC/B"}
@@ -0,0 +1 @@
1
+ export { AssetRequestFactory } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { AssetRequestFactory } from "./abstractions.js";
@@ -1,9 +1,11 @@
1
- import type { Request } from "@webiny/handler/types.js";
2
- import { AssetRequest } from "../../delivery/AssetDelivery/AssetRequest.js";
3
- import { type IAssetRequestResolver } from "./abstractions.js";
4
- export declare class FilesAssetRequestResolver implements IAssetRequestResolver {
5
- resolve(request: Request): Promise<AssetRequest | undefined>;
1
+ import { AssetRequestResolver } from "./abstractions/AssetRequestResolver.js";
2
+ import { AssetRequestFactory } from "./AssetRequest/abstractions.js";
3
+ declare class FilesAssetRequestResolverImpl implements AssetRequestResolver.Interface {
4
+ private readonly assetRequestFactory;
5
+ constructor(assetRequestFactory: AssetRequestFactory.Interface);
6
+ resolve(request: AssetRequestResolver.Request): Promise<AssetRequestResolver.AssetRequest | undefined>;
6
7
  }
7
- export declare const FilesAssetRequestResolverImpl: typeof FilesAssetRequestResolver & {
8
- __abstraction: import("@webiny/di").Abstraction<IAssetRequestResolver>;
8
+ export declare const FilesAssetRequestResolver: typeof FilesAssetRequestResolverImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions/AssetRequestResolver.js").IAssetRequestResolver>;
9
10
  };
11
+ export {};
@@ -1,29 +1,33 @@
1
- import { AssetRequest } from "../../delivery/AssetDelivery/AssetRequest.js";
2
- import { AssetRequestResolver } from "./abstractions.js";
3
- class FilesAssetRequestResolver {
1
+ import { AssetRequestResolver } from "./abstractions/AssetRequestResolver.js";
2
+ import { AssetRequestFactory } from "./AssetRequest/abstractions.js";
3
+ class FilesAssetRequestResolverImpl {
4
+ constructor(assetRequestFactory){
5
+ this.assetRequestFactory = assetRequestFactory;
6
+ }
4
7
  async resolve(request) {
5
8
  if (!request.url.startsWith("/files/")) return;
6
9
  const params = request.params ?? {};
7
10
  const query = request.query ?? {};
8
11
  const path = params["*"];
9
- const options = {
10
- ...query,
11
- original: "original" in query
12
- };
13
- if (query.width) options.width = parseInt(query.width);
14
- return new AssetRequest({
12
+ return this.assetRequestFactory.create({
15
13
  key: decodeURI(path).replace("/files/", ""),
16
14
  context: {
17
- url: request.url
15
+ url: request.url,
16
+ accept: request.headers?.accept
18
17
  },
19
- options
18
+ options: {
19
+ ...query,
20
+ original: "original" in query
21
+ }
20
22
  });
21
23
  }
22
24
  }
23
- const FilesAssetRequestResolverImpl = AssetRequestResolver.createImplementation({
24
- implementation: FilesAssetRequestResolver,
25
- dependencies: []
25
+ const FilesAssetRequestResolver = AssetRequestResolver.createImplementation({
26
+ implementation: FilesAssetRequestResolverImpl,
27
+ dependencies: [
28
+ AssetRequestFactory
29
+ ]
26
30
  });
27
- export { FilesAssetRequestResolver, FilesAssetRequestResolverImpl };
31
+ export { FilesAssetRequestResolver };
28
32
 
29
33
  //# sourceMappingURL=FilesAssetRequestResolver.js.map