@webiny/api-file-manager 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.9bd236cf5e

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 (263) hide show
  1. package/FileManagerContextSetup.d.ts +2 -2
  2. package/FileManagerContextSetup.js +16 -14
  3. package/FileManagerContextSetup.js.map +1 -1
  4. package/README.md +1 -1
  5. package/cmsFileStorage/CmsFilesStorage.d.ts +3 -3
  6. package/cmsFileStorage/CmsFilesStorage.js +52 -61
  7. package/cmsFileStorage/CmsFilesStorage.js.map +1 -1
  8. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +2 -2
  9. package/cmsFileStorage/ListFilesWhereProcessor.js +8 -10
  10. package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -1
  11. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +2 -2
  12. package/cmsFileStorage/ListTagsWhereProcessor.js +8 -10
  13. package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -1
  14. package/cmsFileStorage/file.model.d.ts +5 -3
  15. package/cmsFileStorage/file.model.js +83 -43
  16. package/cmsFileStorage/file.model.js.map +1 -1
  17. package/contants.js +3 -2
  18. package/contants.js.map +1 -1
  19. package/createFileManager/files.crud.d.ts +3 -3
  20. package/createFileManager/files.crud.js +83 -55
  21. package/createFileManager/files.crud.js.map +1 -1
  22. package/createFileManager/index.d.ts +2 -14
  23. package/createFileManager/index.js +8 -5
  24. package/createFileManager/index.js.map +1 -1
  25. package/createFileManager/permissions/FilesPermissions.d.ts +1 -1
  26. package/createFileManager/permissions/FilesPermissions.js +3 -1
  27. package/createFileManager/permissions/FilesPermissions.js.map +1 -1
  28. package/createFileManager/permissions/SettingsPermissions.d.ts +4 -0
  29. package/createFileManager/permissions/SettingsPermissions.js +11 -0
  30. package/createFileManager/permissions/SettingsPermissions.js.map +1 -0
  31. package/createFileManager/settings.crud.d.ts +3 -3
  32. package/createFileManager/settings.crud.js +74 -48
  33. package/createFileManager/settings.crud.js.map +1 -1
  34. package/createFileManager/system.crud.d.ts +3 -3
  35. package/createFileManager/system.crud.js +6 -4
  36. package/createFileManager/system.crud.js.map +1 -1
  37. package/createFileManager/types.d.ts +16 -0
  38. package/createFileManager/types.js +7 -0
  39. package/createFileManager/types.js.map +1 -0
  40. package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +11 -0
  41. package/delivery/AssetDelivery/AliasAssetRequestResolver.js +74 -0
  42. package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -0
  43. package/delivery/AssetDelivery/Asset.d.ts +32 -0
  44. package/delivery/AssetDelivery/Asset.js +69 -0
  45. package/delivery/AssetDelivery/Asset.js.map +1 -0
  46. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +63 -0
  47. package/delivery/AssetDelivery/AssetDeliveryConfig.js +102 -0
  48. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -0
  49. package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
  50. package/delivery/AssetDelivery/AssetRequest.js +29 -0
  51. package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
  52. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +6 -0
  53. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +37 -0
  54. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -0
  55. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +4 -0
  56. package/delivery/AssetDelivery/NullAssetOutputStrategy.js +15 -0
  57. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -0
  58. package/delivery/AssetDelivery/NullAssetReply.d.ts +4 -0
  59. package/delivery/AssetDelivery/NullAssetReply.js +20 -0
  60. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -0
  61. package/delivery/AssetDelivery/NullAssetResolver.d.ts +5 -0
  62. package/delivery/AssetDelivery/NullAssetResolver.js +14 -0
  63. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -0
  64. package/delivery/AssetDelivery/NullRequestResolver.d.ts +4 -0
  65. package/delivery/AssetDelivery/NullRequestResolver.js +14 -0
  66. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -0
  67. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +8 -0
  68. package/delivery/AssetDelivery/SetCacheControlHeaders.js +25 -0
  69. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -0
  70. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +18 -0
  71. package/delivery/AssetDelivery/SetResponseHeaders.js +25 -0
  72. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -0
  73. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +6 -0
  74. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +7 -0
  75. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -0
  76. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +4 -0
  77. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +7 -0
  78. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
  79. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +4 -0
  80. package/delivery/AssetDelivery/abstractions/AssetProcessor.js +7 -0
  81. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -0
  82. package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
  83. package/delivery/AssetDelivery/abstractions/AssetReply.js +38 -0
  84. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
  85. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +5 -0
  86. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +7 -0
  87. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
  88. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +4 -0
  89. package/delivery/AssetDelivery/abstractions/AssetResolver.js +7 -0
  90. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -0
  91. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +4 -0
  92. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +7 -0
  93. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
  94. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
  95. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +15 -0
  96. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
  97. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +4 -0
  98. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +7 -0
  99. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -0
  100. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
  101. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +26 -0
  102. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
  103. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +4 -0
  104. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +15 -0
  105. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
  106. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +7 -0
  107. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +28 -0
  108. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
  109. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +6 -0
  110. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +28 -0
  111. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
  112. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +8 -0
  113. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +37 -0
  114. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
  115. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +13 -0
  116. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +63 -0
  117. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
  118. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +6 -0
  119. package/delivery/AssetDelivery/privateFiles/PublicCache.js +28 -0
  120. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
  121. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +7 -0
  122. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +27 -0
  123. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
  124. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +7 -0
  125. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +27 -0
  126. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
  127. package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +7 -0
  128. package/delivery/AssetDelivery/privateFiles/internalIdentity.js +18 -0
  129. package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +1 -0
  130. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +4 -0
  131. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +14 -0
  132. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -0
  133. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +4 -0
  134. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +14 -0
  135. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
  136. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -0
  137. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +26 -0
  138. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
  139. package/delivery/index.d.ts +17 -0
  140. package/delivery/index.js +194 -0
  141. package/delivery/index.js.map +1 -0
  142. package/delivery/setupAssetDelivery.d.ts +6 -0
  143. package/delivery/setupAssetDelivery.js +128 -0
  144. package/delivery/setupAssetDelivery.js.map +1 -0
  145. package/enterprise/applyThreatScanning.d.ts +2 -0
  146. package/enterprise/applyThreatScanning.js +20 -0
  147. package/enterprise/applyThreatScanning.js.map +1 -0
  148. package/graphql/baseSchema.d.ts +1 -1
  149. package/graphql/baseSchema.js +6 -2
  150. package/graphql/baseSchema.js.map +1 -1
  151. package/graphql/createFilesTypeDefs.d.ts +1 -1
  152. package/graphql/createFilesTypeDefs.js +31 -9
  153. package/graphql/createFilesTypeDefs.js.map +1 -1
  154. package/graphql/filesSchema.d.ts +2 -2
  155. package/graphql/filesSchema.js +14 -8
  156. package/graphql/filesSchema.js.map +1 -1
  157. package/graphql/getFileByUrl.d.ts +3 -0
  158. package/graphql/getFileByUrl.js +78 -0
  159. package/graphql/getFileByUrl.js.map +1 -0
  160. package/graphql/index.d.ts +3 -2
  161. package/graphql/index.js +27 -5
  162. package/graphql/index.js.map +1 -1
  163. package/graphql/utils.js +3 -1
  164. package/graphql/utils.js.map +1 -1
  165. package/handlers/{transform/managers → manage}/imageManager.d.ts +2 -3
  166. package/handlers/{transform/managers → manage}/imageManager.js +10 -9
  167. package/handlers/manage/imageManager.js.map +1 -0
  168. package/handlers/manage/index.d.ts +1 -1
  169. package/handlers/manage/index.js +9 -5
  170. package/handlers/manage/index.js.map +1 -1
  171. package/handlers/{transform → manage}/legacyUtils.d.ts +0 -5
  172. package/handlers/{transform → manage}/legacyUtils.js +7 -15
  173. package/handlers/manage/legacyUtils.js.map +1 -0
  174. package/handlers/{transform → manage}/utils.js +7 -9
  175. package/handlers/manage/utils.js.map +1 -0
  176. package/handlers/types.d.ts +1 -1
  177. package/handlers/types.js +3 -1
  178. package/handlers/types.js.map +1 -1
  179. package/handlers/utils/getEnvironment.js +3 -1
  180. package/handlers/utils/getEnvironment.js.map +1 -1
  181. package/handlers/utils/getObjectParams.js +3 -1
  182. package/handlers/utils/getObjectParams.js.map +1 -1
  183. package/handlers/utils/index.js +3 -1
  184. package/handlers/utils/index.js.map +1 -1
  185. package/index.d.ts +6 -3
  186. package/index.js +31 -7
  187. package/index.js.map +1 -1
  188. package/modelModifier/CmsModelModifier.d.ts +5 -3
  189. package/modelModifier/CmsModelModifier.js +15 -12
  190. package/modelModifier/CmsModelModifier.js.map +1 -1
  191. package/package.json +25 -35
  192. package/plugins/FilePhysicalStoragePlugin.d.ts +2 -1
  193. package/plugins/FilePhysicalStoragePlugin.js +3 -3
  194. package/plugins/FilePhysicalStoragePlugin.js.map +1 -1
  195. package/plugins/FileStorageTransformPlugin.d.ts +1 -1
  196. package/plugins/FileStorageTransformPlugin.js +3 -4
  197. package/plugins/FileStorageTransformPlugin.js.map +1 -1
  198. package/plugins/index.js +3 -1
  199. package/plugins/index.js.map +1 -1
  200. package/storage/FileStorage.d.ts +5 -3
  201. package/storage/FileStorage.js +20 -16
  202. package/storage/FileStorage.js.map +1 -1
  203. package/types/file.d.ts +12 -0
  204. package/types/file.js +3 -1
  205. package/types/file.js.map +1 -1
  206. package/types/file.lifecycle.d.ts +2 -2
  207. package/types/file.lifecycle.js +3 -1
  208. package/types/file.lifecycle.js.map +1 -1
  209. package/types.d.ts +37 -15
  210. package/types.js +3 -1
  211. package/types.js.map +1 -1
  212. package/cmsFileStorage/createFileManagerPlugins.d.ts +0 -5
  213. package/cmsFileStorage/createFileManagerPlugins.js +0 -34
  214. package/cmsFileStorage/createFileManagerPlugins.js.map +0 -1
  215. package/cmsFileStorage/createModelField.d.ts +0 -5
  216. package/cmsFileStorage/createModelField.js +0 -37
  217. package/cmsFileStorage/createModelField.js.map +0 -1
  218. package/cmsFileStorage/isInstallationPending.d.ts +0 -4
  219. package/cmsFileStorage/isInstallationPending.js +0 -21
  220. package/cmsFileStorage/isInstallationPending.js.map +0 -1
  221. package/createFileManager/filevalidation.disabled.d.ts +0 -0
  222. package/createFileManager/filevalidation.disabled.js +0 -55
  223. package/createFileManager/filevalidation.disabled.js.map +0 -1
  224. package/handlers/download/byAlias.d.ts +0 -6
  225. package/handlers/download/byAlias.js +0 -89
  226. package/handlers/download/byAlias.js.map +0 -1
  227. package/handlers/download/byExactKey.d.ts +0 -2
  228. package/handlers/download/byExactKey.js +0 -57
  229. package/handlers/download/byExactKey.js.map +0 -1
  230. package/handlers/download/extractFileInformation.d.ts +0 -9
  231. package/handlers/download/extractFileInformation.js +0 -20
  232. package/handlers/download/extractFileInformation.js.map +0 -1
  233. package/handlers/download/getS3Object.d.ts +0 -12
  234. package/handlers/download/getS3Object.js +0 -72
  235. package/handlers/download/getS3Object.js.map +0 -1
  236. package/handlers/download/index.d.ts +0 -2
  237. package/handlers/download/index.js +0 -27
  238. package/handlers/download/index.js.map +0 -1
  239. package/handlers/transform/index.d.ts +0 -2
  240. package/handlers/transform/index.js +0 -92
  241. package/handlers/transform/index.js.map +0 -1
  242. package/handlers/transform/legacyUtils.js.map +0 -1
  243. package/handlers/transform/loaders/imageLoader.d.ts +0 -30
  244. package/handlers/transform/loaders/imageLoader.js +0 -94
  245. package/handlers/transform/loaders/imageLoader.js.map +0 -1
  246. package/handlers/transform/loaders/index.d.ts +0 -8
  247. package/handlers/transform/loaders/index.js +0 -10
  248. package/handlers/transform/loaders/index.js.map +0 -1
  249. package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -11
  250. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -45
  251. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +0 -1
  252. package/handlers/transform/managers/imageManager.js.map +0 -1
  253. package/handlers/transform/managers/index.d.ts +0 -5
  254. package/handlers/transform/managers/index.js +0 -10
  255. package/handlers/transform/managers/index.js.map +0 -1
  256. package/handlers/transform/optimizeImage.d.ts +0 -3
  257. package/handlers/transform/optimizeImage.js +0 -42
  258. package/handlers/transform/optimizeImage.js.map +0 -1
  259. package/handlers/transform/transformImage.d.ts +0 -13
  260. package/handlers/transform/transformImage.js +0 -28
  261. package/handlers/transform/transformImage.js.map +0 -1
  262. package/handlers/transform/utils.js.map +0 -1
  263. /package/handlers/{transform → manage}/utils.d.ts +0 -0
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createFileModelDefinition = exports.FILE_MODEL_ID = void 0;
7
- var _createModelField = require("./createModelField");
6
+ exports.createFileModel = exports.FILE_MODEL_ID = void 0;
7
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
8
  const required = () => {
9
9
  return {
10
10
  name: "required",
@@ -12,107 +12,147 @@ const required = () => {
12
12
  };
13
13
  };
14
14
  const nameField = () => {
15
- return (0, _createModelField.createModelField)({
15
+ return (0, _apiHeadlessCms.createModelField)({
16
16
  label: "Name",
17
17
  type: "text",
18
18
  validation: [required()]
19
19
  });
20
20
  };
21
21
  const keyField = () => {
22
- return (0, _createModelField.createModelField)({
22
+ return (0, _apiHeadlessCms.createModelField)({
23
23
  label: "Key",
24
24
  type: "text",
25
25
  validation: [required()]
26
26
  });
27
27
  };
28
28
  const typeField = () => {
29
- return (0, _createModelField.createModelField)({
29
+ return (0, _apiHeadlessCms.createModelField)({
30
30
  label: "Type",
31
31
  type: "text",
32
32
  validation: [required()]
33
33
  });
34
34
  };
35
35
  const sizeField = () => {
36
- return (0, _createModelField.createModelField)({
36
+ return (0, _apiHeadlessCms.createModelField)({
37
37
  label: "Size",
38
38
  type: "number",
39
39
  validation: [required()]
40
40
  });
41
41
  };
42
42
  const metaWidthField = () => {
43
- return (0, _createModelField.createModelField)({
43
+ return (0, _apiHeadlessCms.createModelField)({
44
44
  label: "Width",
45
45
  type: "number"
46
46
  });
47
47
  };
48
48
  const metaHeightField = () => {
49
- return (0, _createModelField.createModelField)({
49
+ return (0, _apiHeadlessCms.createModelField)({
50
50
  label: "Height",
51
51
  type: "number"
52
52
  });
53
53
  };
54
54
  const metaPrivateField = () => {
55
- return (0, _createModelField.createModelField)({
55
+ return (0, _apiHeadlessCms.createModelField)({
56
56
  label: "Private",
57
57
  type: "boolean"
58
58
  });
59
59
  };
60
+ const metaOriginalKeyField = () => {
61
+ return (0, _apiHeadlessCms.createModelField)({
62
+ label: "Original Key",
63
+ type: "text"
64
+ });
65
+ };
60
66
  const metaField = () => {
61
- return (0, _createModelField.createModelField)({
67
+ return (0, _apiHeadlessCms.createModelField)({
62
68
  label: "Meta",
63
69
  type: "object",
64
70
  settings: {
65
- fields: [metaPrivateField(), metaWidthField(), metaHeightField()]
71
+ fields: [metaPrivateField(), metaWidthField(), metaHeightField(), metaOriginalKeyField()]
72
+ }
73
+ });
74
+ };
75
+ const accessControlTypeField = () => {
76
+ return (0, _apiHeadlessCms.createModelField)({
77
+ label: "Type",
78
+ type: "text",
79
+ predefinedValues: {
80
+ enabled: true,
81
+ values: [{
82
+ label: "Public",
83
+ value: "public",
84
+ selected: true
85
+ }, {
86
+ label: "Private",
87
+ value: "private-authenticated"
88
+ }]
89
+ }
90
+ });
91
+ };
92
+ const accessControlField = () => {
93
+ return (0, _apiHeadlessCms.createModelField)({
94
+ label: "Access Control",
95
+ type: "object",
96
+ tags: ["$bulk-edit"],
97
+ settings: {
98
+ fields: [accessControlTypeField()]
66
99
  }
67
100
  });
68
101
  };
69
102
  const tagsField = () => {
70
- return (0, _createModelField.createModelField)({
103
+ return (0, _apiHeadlessCms.createModelField)({
71
104
  label: "Tags",
72
105
  type: "text",
106
+ tags: ["$bulk-edit"],
73
107
  multipleValues: true,
74
108
  validation: [required()]
75
109
  });
76
110
  };
77
111
  const aliasesField = () => {
78
- return (0, _createModelField.createModelField)({
112
+ return (0, _apiHeadlessCms.createModelField)({
79
113
  label: "Aliases",
80
114
  type: "text",
81
115
  multipleValues: true,
82
116
  validation: [required()]
83
117
  });
84
118
  };
85
- const FILE_MODEL_ID = "fmFile";
86
- exports.FILE_MODEL_ID = FILE_MODEL_ID;
87
- const createFileModelDefinition = group => {
88
- return {
119
+ const locationField = () => {
120
+ return (0, _apiHeadlessCms.createModelField)({
121
+ type: "object",
122
+ label: "Location",
123
+ fieldId: "location",
124
+ settings: {
125
+ fields: [(0, _apiHeadlessCms.createModelField)({
126
+ type: "text",
127
+ fieldId: "folderId",
128
+ label: "Folder ID",
129
+ settings: {
130
+ path: "location.folderId"
131
+ }
132
+ })]
133
+ }
134
+ });
135
+ };
136
+ const FILE_MODEL_ID = exports.FILE_MODEL_ID = "fmFile";
137
+ const createFileModel = params => {
138
+ const fields = [locationField(), nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()];
139
+ if (params.withPrivateFiles) {
140
+ fields.push(accessControlField());
141
+ }
142
+ return (0, _apiHeadlessCms.createPrivateModel)({
89
143
  name: "FmFile",
90
144
  modelId: FILE_MODEL_ID,
91
145
  titleFieldId: "name",
92
- layout: [["location"], ["name"], ["key"], ["type"], ["size"], ["meta"], ["tags"], ["aliases"]],
93
- fields: [{
94
- id: "location",
95
- type: "object",
96
- storageId: "object@location",
97
- label: "Location",
98
- fieldId: "location",
99
- settings: {
100
- fields: [{
101
- id: "folderId",
102
- type: "text",
103
- fieldId: "folderId",
104
- label: "Folder ID",
105
- storageId: "text@folderId",
106
- settings: {
107
- path: "location.folderId"
108
- }
109
- }]
110
- }
111
- }, nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()],
112
- description: "File Manager - File content model",
113
- isPrivate: true,
114
- group,
115
- noValidate: true
116
- };
146
+ authorization: {
147
+ // Disables base permission checks, but leaves FLP checks enabled.
148
+ permissions: false
149
+
150
+ // We're leaving FLP enabled (no need to set `flp: true`).
151
+ // flp: true
152
+ },
153
+ fields
154
+ });
117
155
  };
118
- exports.createFileModelDefinition = createFileModelDefinition;
156
+ exports.createFileModel = createFileModel;
157
+
158
+ //# sourceMappingURL=file.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["required","name","message","nameField","createModelField","label","type","validation","keyField","typeField","sizeField","metaWidthField","metaHeightField","metaPrivateField","metaField","settings","fields","tagsField","multipleValues","aliasesField","FILE_MODEL_ID","createFileModelDefinition","group","modelId","titleFieldId","layout","id","storageId","fieldId","path","description","isPrivate","noValidate"],"sources":["file.model.ts"],"sourcesContent":["import { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"./createModelField\";\nimport { CmsModelGroup } from \"@webiny/api-headless-cms/types\";\n\nconst required = () => {\n return {\n name: \"required\",\n message: \"Value is required.\"\n };\n};\n\nconst nameField = () => {\n return createModelField({\n label: \"Name\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst keyField = () => {\n return createModelField({\n label: \"Key\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst typeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst sizeField = () => {\n return createModelField({\n label: \"Size\",\n type: \"number\",\n validation: [required()]\n });\n};\n\nconst metaWidthField = () => {\n return createModelField({\n label: \"Width\",\n type: \"number\"\n });\n};\n\nconst metaHeightField = () => {\n return createModelField({\n label: \"Height\",\n type: \"number\"\n });\n};\n\nconst metaPrivateField = () => {\n return createModelField({\n label: \"Private\",\n type: \"boolean\"\n });\n};\n\nconst metaField = () => {\n return createModelField({\n label: \"Meta\",\n type: \"object\",\n settings: {\n fields: [metaPrivateField(), metaWidthField(), metaHeightField()]\n }\n });\n};\n\nconst tagsField = () => {\n return createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst aliasesField = () => {\n return createModelField({\n label: \"Aliases\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nexport const FILE_MODEL_ID = \"fmFile\";\n\nexport const createFileModelDefinition = (group: CmsModelGroup): CmsPrivateModelFull => {\n return {\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n layout: [\n [\"location\"],\n [\"name\"],\n [\"key\"],\n [\"type\"],\n [\"size\"],\n [\"meta\"],\n [\"tags\"],\n [\"aliases\"]\n ],\n fields: [\n {\n id: \"location\",\n type: \"object\",\n storageId: \"object@location\",\n label: \"Location\",\n fieldId: \"location\",\n settings: {\n fields: [\n {\n id: \"folderId\",\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n storageId: \"text@folderId\",\n settings: {\n path: \"location.folderId\"\n }\n }\n ]\n }\n },\n nameField(),\n keyField(),\n typeField(),\n sizeField(),\n metaField(),\n tagsField(),\n aliasesField()\n ],\n description: \"File Manager - File content model\",\n isPrivate: true,\n group,\n noValidate: true\n };\n};\n"],"mappings":";;;;;;AACA;AAGA,MAAMA,QAAQ,GAAG,MAAM;EACnB,OAAO;IACHC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AACL,CAAC;AAED,MAAMC,SAAS,GAAG,MAAM;EACpB,OAAO,IAAAC,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,MAAM;IACZC,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAED,MAAMQ,QAAQ,GAAG,MAAM;EACnB,OAAO,IAAAJ,kCAAgB,EAAC;IACpBC,KAAK,EAAE,KAAK;IACZC,IAAI,EAAE,MAAM;IACZC,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAED,MAAMS,SAAS,GAAG,MAAM;EACpB,OAAO,IAAAL,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,MAAM;IACZC,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAED,MAAMU,SAAS,GAAG,MAAM;EACpB,OAAO,IAAAN,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAED,MAAMW,cAAc,GAAG,MAAM;EACzB,OAAO,IAAAP,kCAAgB,EAAC;IACpBC,KAAK,EAAE,OAAO;IACdC,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AAED,MAAMM,eAAe,GAAG,MAAM;EAC1B,OAAO,IAAAR,kCAAgB,EAAC;IACpBC,KAAK,EAAE,QAAQ;IACfC,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AAED,MAAMO,gBAAgB,GAAG,MAAM;EAC3B,OAAO,IAAAT,kCAAgB,EAAC;IACpBC,KAAK,EAAE,SAAS;IAChBC,IAAI,EAAE;EACV,CAAC,CAAC;AACN,CAAC;AAED,MAAMQ,SAAS,GAAG,MAAM;EACpB,OAAO,IAAAV,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,QAAQ;IACdS,QAAQ,EAAE;MACNC,MAAM,EAAE,CAACH,gBAAgB,EAAE,EAAEF,cAAc,EAAE,EAAEC,eAAe,EAAE;IACpE;EACJ,CAAC,CAAC;AACN,CAAC;AAED,MAAMK,SAAS,GAAG,MAAM;EACpB,OAAO,IAAAb,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,MAAM;IACZY,cAAc,EAAE,IAAI;IACpBX,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAED,MAAMmB,YAAY,GAAG,MAAM;EACvB,OAAO,IAAAf,kCAAgB,EAAC;IACpBC,KAAK,EAAE,SAAS;IAChBC,IAAI,EAAE,MAAM;IACZY,cAAc,EAAE,IAAI;IACpBX,UAAU,EAAE,CAACP,QAAQ,EAAE;EAC3B,CAAC,CAAC;AACN,CAAC;AAEM,MAAMoB,aAAa,GAAG,QAAQ;AAAC;AAE/B,MAAMC,yBAAyB,GAAIC,KAAoB,IAA0B;EACpF,OAAO;IACHrB,IAAI,EAAE,QAAQ;IACdsB,OAAO,EAAEH,aAAa;IACtBI,YAAY,EAAE,MAAM;IACpBC,MAAM,EAAE,CACJ,CAAC,UAAU,CAAC,EACZ,CAAC,MAAM,CAAC,EACR,CAAC,KAAK,CAAC,EACP,CAAC,MAAM,CAAC,EACR,CAAC,MAAM,CAAC,EACR,CAAC,MAAM,CAAC,EACR,CAAC,MAAM,CAAC,EACR,CAAC,SAAS,CAAC,CACd;IACDT,MAAM,EAAE,CACJ;MACIU,EAAE,EAAE,UAAU;MACdpB,IAAI,EAAE,QAAQ;MACdqB,SAAS,EAAE,iBAAiB;MAC5BtB,KAAK,EAAE,UAAU;MACjBuB,OAAO,EAAE,UAAU;MACnBb,QAAQ,EAAE;QACNC,MAAM,EAAE,CACJ;UACIU,EAAE,EAAE,UAAU;UACdpB,IAAI,EAAE,MAAM;UACZsB,OAAO,EAAE,UAAU;UACnBvB,KAAK,EAAE,WAAW;UAClBsB,SAAS,EAAE,eAAe;UAC1BZ,QAAQ,EAAE;YACNc,IAAI,EAAE;UACV;QACJ,CAAC;MAET;IACJ,CAAC,EACD1B,SAAS,EAAE,EACXK,QAAQ,EAAE,EACVC,SAAS,EAAE,EACXC,SAAS,EAAE,EACXI,SAAS,EAAE,EACXG,SAAS,EAAE,EACXE,YAAY,EAAE,CACjB;IACDW,WAAW,EAAE,mCAAmC;IAChDC,SAAS,EAAE,IAAI;IACfT,KAAK;IACLU,UAAU,EAAE;EAChB,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_apiHeadlessCms","require","required","name","message","nameField","createModelField","label","type","validation","keyField","typeField","sizeField","metaWidthField","metaHeightField","metaPrivateField","metaOriginalKeyField","metaField","settings","fields","accessControlTypeField","predefinedValues","enabled","values","value","selected","accessControlField","tags","tagsField","multipleValues","aliasesField","locationField","fieldId","path","FILE_MODEL_ID","exports","createFileModel","params","withPrivateFiles","push","createPrivateModel","modelId","titleFieldId","authorization","permissions"],"sources":["file.model.ts"],"sourcesContent":["import { createPrivateModel, createModelField } from \"@webiny/api-headless-cms\";\n\nconst required = () => {\n return {\n name: \"required\",\n message: \"Value is required.\"\n };\n};\n\nconst nameField = () => {\n return createModelField({\n label: \"Name\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst keyField = () => {\n return createModelField({\n label: \"Key\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst typeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst sizeField = () => {\n return createModelField({\n label: \"Size\",\n type: \"number\",\n validation: [required()]\n });\n};\n\nconst metaWidthField = () => {\n return createModelField({\n label: \"Width\",\n type: \"number\"\n });\n};\n\nconst metaHeightField = () => {\n return createModelField({\n label: \"Height\",\n type: \"number\"\n });\n};\n\nconst metaPrivateField = () => {\n return createModelField({\n label: \"Private\",\n type: \"boolean\"\n });\n};\n\nconst metaOriginalKeyField = () => {\n return createModelField({\n label: \"Original Key\",\n type: \"text\"\n });\n};\n\nconst metaField = () => {\n return createModelField({\n label: \"Meta\",\n type: \"object\",\n settings: {\n fields: [\n metaPrivateField(),\n metaWidthField(),\n metaHeightField(),\n metaOriginalKeyField()\n ]\n }\n });\n};\n\nconst accessControlTypeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\"\n }\n ]\n }\n });\n};\n\nconst accessControlField = () => {\n return createModelField({\n label: \"Access Control\",\n type: \"object\",\n tags: [\"$bulk-edit\"],\n settings: {\n fields: [accessControlTypeField()]\n }\n });\n};\n\nconst tagsField = () => {\n return createModelField({\n label: \"Tags\",\n type: \"text\",\n tags: [\"$bulk-edit\"],\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst aliasesField = () => {\n return createModelField({\n label: \"Aliases\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst locationField = () => {\n return createModelField({\n type: \"object\",\n label: \"Location\",\n fieldId: \"location\",\n settings: {\n fields: [\n createModelField({\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n settings: {\n path: \"location.folderId\"\n }\n })\n ]\n }\n });\n};\n\nexport const FILE_MODEL_ID = \"fmFile\";\n\ninterface CreateFileModelDefinitionParams {\n withPrivateFiles: boolean;\n}\n\nexport const createFileModel = (params: CreateFileModelDefinitionParams) => {\n const fields = [\n locationField(),\n nameField(),\n keyField(),\n typeField(),\n sizeField(),\n metaField(),\n tagsField(),\n aliasesField()\n ];\n\n if (params.withPrivateFiles) {\n fields.push(accessControlField());\n }\n\n return createPrivateModel({\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n fields\n });\n};\n"],"mappings":"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","ignoreList":[]}
package/contants.js CHANGED
@@ -4,5 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ROOT_FOLDER = void 0;
7
- const ROOT_FOLDER = "root";
8
- exports.ROOT_FOLDER = ROOT_FOLDER;
7
+ const ROOT_FOLDER = exports.ROOT_FOLDER = "root";
8
+
9
+ //# sourceMappingURL=contants.js.map
package/contants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ROOT_FOLDER"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAAC"}
1
+ {"version":3,"names":["ROOT_FOLDER","exports"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,MAAM","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { FilesCRUD } from "../types";
2
- import { FileManagerConfig } from "./index";
3
- export declare const createFilesCrud: (config: FileManagerConfig) => FilesCRUD;
1
+ import type { FilesCRUD } from "../types";
2
+ import type { FileManagerConfig } from "./types";
3
+ export declare const createFilesCrud: (config: Pick<FileManagerConfig, "storageOperations" | "filesPermissions" | "getLocaleCode" | "getTenantId" | "getIdentity" | "WEBINY_VERSION">) => FilesCRUD;
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createFilesCrud = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _handlerGraphql = require("@webiny/handler-graphql");
10
9
  var _pubsub = require("@webiny/pubsub");
11
10
  var _error = _interopRequireDefault(require("@webiny/error"));
12
11
  var _contants = require("../contants");
12
+ var _apiSecurity = require("@webiny/api-security");
13
+ var _date = require("@webiny/api-headless-cms/utils/date");
14
+ var _identity = require("@webiny/api-headless-cms/utils/identity");
13
15
  const createFilesCrud = config => {
14
16
  const {
15
17
  storageOperations,
@@ -48,35 +50,36 @@ const createFilesCrud = config => {
48
50
  return file;
49
51
  },
50
52
  async createFile(input, meta) {
51
- var _input$location;
52
53
  await filesPermissions.ensure({
53
54
  rwd: "w"
54
55
  });
55
- const identity = getIdentity();
56
56
 
57
57
  // Extract ID from file key
58
58
  const [id] = input.key.split("/");
59
- const file = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
59
+ const currentDateTime = new Date();
60
+ const currentIdentity = getIdentity();
61
+ const file = {
62
+ ...input,
60
63
  tags: Array.isArray(input.tags) ? input.tags : [],
61
64
  aliases: Array.isArray(input.aliases) ? input.aliases : [],
62
65
  id: input.id || id,
63
66
  location: {
64
- folderId: ((_input$location = input.location) === null || _input$location === void 0 ? void 0 : _input$location.folderId) ?? _contants.ROOT_FOLDER
67
+ folderId: input.location?.folderId ?? _contants.ROOT_FOLDER
65
68
  },
66
- meta: (0, _objectSpread2.default)({
67
- private: false
68
- }, input.meta || {}),
69
- tenant: getTenantId(),
70
- createdOn: new Date().toISOString(),
71
- savedOn: new Date().toISOString(),
72
- createdBy: {
73
- id: identity.id,
74
- displayName: identity.displayName,
75
- type: identity.type
69
+ meta: {
70
+ private: false,
71
+ ...(input.meta || {})
76
72
  },
73
+ createdOn: (0, _date.getDate)(input.createdOn, currentDateTime),
74
+ modifiedOn: (0, _date.getDate)(input.modifiedOn, null),
75
+ savedOn: (0, _date.getDate)(input.savedOn, currentDateTime),
76
+ createdBy: (0, _identity.getIdentity)(input.createdBy, currentIdentity),
77
+ modifiedBy: (0, _identity.getIdentity)(input.modifiedBy, null),
78
+ savedBy: (0, _identity.getIdentity)(input.savedBy, currentIdentity),
79
+ tenant: getTenantId(),
77
80
  locale: getLocaleCode(),
78
81
  webinyVersion: WEBINY_VERSION
79
- });
82
+ };
80
83
  try {
81
84
  await this.onFileBeforeCreate.publish({
82
85
  file,
@@ -91,9 +94,14 @@ const createFilesCrud = config => {
91
94
  });
92
95
  return result;
93
96
  } catch (ex) {
94
- throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
97
+ // If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.
98
+ if (ex instanceof _apiSecurity.NotAuthorizedError) {
99
+ throw ex;
100
+ }
101
+ throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", {
102
+ ...(ex.data || {}),
95
103
  file
96
- }));
104
+ });
97
105
  }
98
106
  },
99
107
  async updateFile(id, input) {
@@ -113,12 +121,22 @@ const createFilesCrud = config => {
113
121
  await filesPermissions.ensure({
114
122
  owns: original.createdBy
115
123
  });
116
- const file = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
124
+ const currentDateTime = new Date();
125
+ const currentIdentity = getIdentity();
126
+ const file = {
127
+ ...original,
128
+ ...input,
129
+ createdOn: (0, _date.getDate)(input.createdOn, original.createdOn),
130
+ modifiedOn: (0, _date.getDate)(input.modifiedOn, currentDateTime),
131
+ savedOn: (0, _date.getDate)(input.savedOn, currentDateTime),
132
+ createdBy: (0, _identity.getIdentity)(input.createdBy, original.createdBy),
133
+ modifiedBy: (0, _identity.getIdentity)(input.modifiedBy, currentIdentity),
134
+ savedBy: (0, _identity.getIdentity)(input.savedBy, currentIdentity),
117
135
  tags: Array.isArray(input.tags) ? input.tags : Array.isArray(original.tags) ? original.tags : [],
118
136
  aliases: Array.isArray(input.aliases) ? input.aliases : Array.isArray(original.aliases) ? original.aliases : [],
119
137
  id: original.id,
120
138
  webinyVersion: WEBINY_VERSION
121
- });
139
+ };
122
140
  try {
123
141
  await this.onFileBeforeUpdate.publish({
124
142
  original,
@@ -136,10 +154,11 @@ const createFilesCrud = config => {
136
154
  });
137
155
  return result;
138
156
  } catch (ex) {
139
- throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
157
+ throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", {
158
+ ...(ex.data || {}),
140
159
  original,
141
160
  file
142
- }));
161
+ });
143
162
  }
144
163
  },
145
164
  async deleteFile(id) {
@@ -170,10 +189,11 @@ const createFilesCrud = config => {
170
189
  file
171
190
  });
172
191
  } catch (ex) {
173
- throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
192
+ throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", {
193
+ ...(ex.data || {}),
174
194
  id,
175
195
  file
176
- }));
196
+ });
177
197
  }
178
198
  return true;
179
199
  },
@@ -181,32 +201,32 @@ const createFilesCrud = config => {
181
201
  await filesPermissions.ensure({
182
202
  rwd: "w"
183
203
  });
184
- const identity = getIdentity();
185
204
  const tenant = getTenantId();
186
205
  const locale = getLocaleCode();
187
- const createdBy = {
188
- id: identity.id,
189
- displayName: identity.displayName,
190
- type: identity.type
191
- };
206
+ const currentIdentity = getIdentity();
207
+ const currentDateTime = new Date();
192
208
  const files = inputs.map(input => {
193
- var _input$location2;
194
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
209
+ return {
210
+ ...input,
195
211
  tags: Array.isArray(input.tags) ? input.tags : [],
196
212
  aliases: Array.isArray(input.aliases) ? input.aliases : [],
197
- meta: (0, _objectSpread2.default)({
198
- private: false
199
- }, input.meta || {}),
213
+ meta: {
214
+ private: false,
215
+ ...(input.meta || {})
216
+ },
200
217
  location: {
201
- folderId: ((_input$location2 = input.location) === null || _input$location2 === void 0 ? void 0 : _input$location2.folderId) ?? _contants.ROOT_FOLDER
218
+ folderId: input.location?.folderId ?? _contants.ROOT_FOLDER
202
219
  },
220
+ createdOn: (0, _date.getDate)(currentDateTime),
221
+ modifiedOn: null,
222
+ savedOn: (0, _date.getDate)(currentDateTime),
223
+ createdBy: (0, _identity.getIdentity)(currentIdentity),
224
+ modifiedBy: null,
225
+ savedBy: (0, _identity.getIdentity)(currentIdentity),
203
226
  tenant,
204
- createdOn: new Date().toISOString(),
205
- savedOn: new Date().toISOString(),
206
- createdBy,
207
227
  locale,
208
228
  webinyVersion: WEBINY_VERSION
209
- });
229
+ };
210
230
  });
211
231
  try {
212
232
  await this.onFileBeforeBatchCreate.publish({
@@ -222,9 +242,10 @@ const createFilesCrud = config => {
222
242
  });
223
243
  return results;
224
244
  } catch (ex) {
225
- throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
245
+ throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", {
246
+ ...(ex.data || {}),
226
247
  files
227
- }));
248
+ });
228
249
  }
229
250
  },
230
251
  async listFiles(params = {}) {
@@ -238,14 +259,16 @@ const createFilesCrud = config => {
238
259
  sort: initialSort,
239
260
  search
240
261
  } = params;
241
- const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _objectSpread2.default)({
242
- meta: {
243
- private_not: true
244
- }
245
- }, initialWhere)), {}, {
262
+ const where = {
263
+ ...{
264
+ meta: {
265
+ private_not: true
266
+ },
267
+ ...initialWhere
268
+ },
246
269
  locale: getLocaleCode(),
247
270
  tenant: getTenantId()
248
- });
271
+ };
249
272
 
250
273
  /**
251
274
  * Always override the createdBy received from the user, if any.
@@ -264,12 +287,13 @@ const createFilesCrud = config => {
264
287
  search
265
288
  });
266
289
  } catch (ex) {
267
- throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
290
+ throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", {
291
+ ...(ex.data || {}),
268
292
  where,
269
293
  after,
270
294
  limit,
271
295
  sort
272
- }));
296
+ });
273
297
  }
274
298
  },
275
299
  async listTags({
@@ -278,10 +302,11 @@ const createFilesCrud = config => {
278
302
  limit
279
303
  }) {
280
304
  await filesPermissions.ensure();
281
- const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialWhere), {}, {
305
+ const where = {
306
+ ...initialWhere,
282
307
  tenant: getTenantId(),
283
308
  locale: getLocaleCode()
284
- });
309
+ };
285
310
  const params = {
286
311
  where,
287
312
  limit: limit || 1000000,
@@ -290,11 +315,14 @@ const createFilesCrud = config => {
290
315
  try {
291
316
  return await storageOperations.files.tags(params);
292
317
  } catch (ex) {
293
- throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
318
+ throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", {
319
+ ...(ex.data || {}),
294
320
  params
295
- }));
321
+ });
296
322
  }
297
323
  }
298
324
  };
299
325
  };
300
- exports.createFilesCrud = createFilesCrud;
326
+ exports.createFilesCrud = createFilesCrud;
327
+
328
+ //# sourceMappingURL=files.crud.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","identity","key","split","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","Date","toISOString","savedOn","displayName","type","webinyVersion","publish","result","create","ex","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","length","list","listTags"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport {\n CreatedBy,\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\nexport const createFilesCrud = (config: FileManagerConfig): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: getTenantId(),\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n tenant,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_handlerGraphql","require","_pubsub","_error","_interopRequireDefault","_contants","_apiSecurity","_date","_identity","createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","key","split","currentDateTime","Date","currentIdentity","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","getDate","modifiedOn","savedOn","utilsGetIdentity","modifiedBy","savedBy","webinyVersion","publish","result","create","ex","NotAuthorizedError","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","identity","length","list","listTags","exports"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\nimport { ROOT_FOLDER } from \"~/contants\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getDate } from \"@webiny/api-headless-cms/utils/date\";\nimport { getIdentity as utilsGetIdentity } from \"@webiny/api-headless-cms/utils/identity\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types\";\n\nexport const createFilesCrud = (\n config: Pick<\n FileManagerConfig,\n | \"storageOperations\"\n | \"filesPermissions\"\n | \"getLocaleCode\"\n | \"getTenantId\"\n | \"getIdentity\"\n | \"WEBINY_VERSION\"\n >\n): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n\n createdOn: getDate(input.createdOn, currentDateTime),\n modifiedOn: getDate(input.modifiedOn, null),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, currentIdentity),\n modifiedBy: utilsGetIdentity(input.modifiedBy, null),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tenant: getTenantId(),\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n // If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.\n if (ex instanceof NotAuthorizedError) {\n throw ex;\n }\n\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...original,\n ...input,\n\n createdOn: getDate(input.createdOn, original.createdOn),\n modifiedOn: getDate(input.modifiedOn, currentDateTime),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, original.createdBy),\n modifiedBy: utilsGetIdentity(input.modifiedBy, currentIdentity),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const currentIdentity = getIdentity();\n const currentDateTime = new Date();\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n\n createdOn: getDate(currentDateTime),\n modifiedOn: null,\n savedOn: getDate(currentDateTime),\n createdBy: utilsGetIdentity(currentIdentity),\n modifiedBy: null,\n savedBy: utilsGetIdentity(currentIdentity),\n\n tenant,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort: CmsEntryListSort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}