@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
@@ -1,5 +1,5 @@
1
- import { FileManagerContext } from "./types";
2
- import { FileManagerConfig } from "./createFileManager";
1
+ import { type FileManagerContext } from "./types";
2
+ import type { FileManagerConfig } from "./createFileManager/types";
3
3
  export declare class FileManagerContextSetup {
4
4
  private readonly context;
5
5
  constructor(context: FileManagerContext);
@@ -5,20 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.FileManagerContextSetup = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _createFileManager = require("./createFileManager");
10
9
  var _FileStorage = require("./storage/FileStorage");
11
10
  var _error = _interopRequireDefault(require("@webiny/error"));
12
- var _isInstallationPending = require("./cmsFileStorage/isInstallationPending");
13
- var _createFileManagerPlugins = require("./cmsFileStorage/createFileManagerPlugins");
14
11
  var _file = require("./cmsFileStorage/file.model");
15
12
  var _CmsFilesStorage = require("./cmsFileStorage/CmsFilesStorage");
16
13
  var _CmsModelModifier = require("./modelModifier/CmsModelModifier");
17
14
  var _apiHeadlessCms = require("@webiny/api-headless-cms");
18
15
  var _FilesPermissions = require("./createFileManager/permissions/FilesPermissions");
16
+ var _SettingsPermissions = require("./createFileManager/permissions/SettingsPermissions");
19
17
  class FileManagerContextSetup {
20
18
  constructor(context) {
21
- (0, _defineProperty2.default)(this, "context", void 0);
22
19
  this.context = context;
23
20
  }
24
21
  async setupContext(storageOperations) {
@@ -36,9 +33,15 @@ class FileManagerContextSetup {
36
33
  getPermissions: () => this.context.security.getPermissions("fm.file"),
37
34
  fullAccessPermissionName: "fm.*"
38
35
  });
36
+ const settingsPermissions = new _SettingsPermissions.SettingsPermissions({
37
+ getIdentity: this.context.security.getIdentity,
38
+ getPermissions: () => this.context.security.getPermissions("fm.settings"),
39
+ fullAccessPermissionName: "fm.*"
40
+ });
39
41
  return (0, _createFileManager.createFileManager)({
40
42
  storageOperations,
41
43
  filesPermissions,
44
+ settingsPermissions,
42
45
  getTenantId: this.getTenantId.bind(this),
43
46
  getLocaleCode: this.getLocaleCode.bind(this),
44
47
  getIdentity: this.getIdentity.bind(this),
@@ -67,26 +70,23 @@ class FileManagerContextSetup {
67
70
  return this.context.security.getPermissions(name);
68
71
  }
69
72
  async setupCmsStorageOperations(aliases) {
70
- if ((0, _isInstallationPending.isInstallationPending)({
71
- tenancy: this.context.tenancy,
72
- i18n: this.context.i18n
73
- })) {
73
+ if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(this.context))) {
74
74
  console.log("Installation pending!");
75
75
  return;
76
76
  }
77
+ const withPrivateFiles = this.context.wcp.canUsePrivateFiles();
77
78
 
78
79
  // This registers code plugins (model group, models)
79
- const {
80
- groupPlugin,
81
- fileModelDefinition
82
- } = (0, _createFileManagerPlugins.createFileManagerPlugins)();
80
+ const fileModelDefinition = (0, _file.createFileModel)({
81
+ withPrivateFiles
82
+ });
83
83
  const modelModifiers = this.context.plugins.byType(_CmsModelModifier.CmsModelModifierPlugin.type);
84
84
  for (const modifier of modelModifiers) {
85
85
  await modifier.modifyModel(fileModelDefinition);
86
86
  }
87
87
 
88
88
  // Finally, register all plugins
89
- this.context.plugins.register([groupPlugin, new _apiHeadlessCms.CmsModelPlugin(fileModelDefinition)]);
89
+ this.context.plugins.register([new _apiHeadlessCms.CmsModelPlugin(fileModelDefinition)]);
90
90
 
91
91
  // Now load the file model registered in the previous step
92
92
  const fileModel = await this.getModel(_file.FILE_MODEL_ID);
@@ -110,4 +110,6 @@ class FileManagerContextSetup {
110
110
  return model;
111
111
  }
112
112
  }
113
- exports.FileManagerContextSetup = FileManagerContextSetup;
113
+ exports.FileManagerContextSetup = FileManagerContextSetup;
114
+
115
+ //# sourceMappingURL=FileManagerContextSetup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isInstallationPending","console","log","groupPlugin","fileModelDefinition","createFileManagerPlugins","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","fileModel","getModel","FILE_MODEL_ID","CmsFilesStorage","create","cms","modelId","model","message"],"sources":["FileManagerContextSetup.ts"],"sourcesContent":["import { FileManagerAliasesStorageOperations, FileManagerContext } from \"~/types\";\nimport { createFileManager, FileManagerConfig } from \"~/createFileManager\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport WebinyError from \"@webiny/error\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { isInstallationPending } from \"~/cmsFileStorage/isInstallationPending\";\nimport { createFileManagerPlugins } from \"~/cmsFileStorage/createFileManagerPlugins\";\nimport { FILE_MODEL_ID } from \"~/cmsFileStorage/file.model\";\nimport { CmsFilesStorage } from \"~/cmsFileStorage/CmsFilesStorage\";\nimport { CmsModelModifierPlugin } from \"~/modelModifier/CmsModelModifier\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\n\nexport class FileManagerContextSetup {\n private readonly context: FileManagerContext;\n\n constructor(context: FileManagerContext) {\n this.context = context;\n }\n\n async setupContext(storageOperations: FileManagerConfig[\"storageOperations\"]) {\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(this.context);\n }\n\n const fileStorageOps = await this.context.security.withoutAuthorization(() => {\n return this.setupCmsStorageOperations(storageOperations.aliases);\n });\n\n if (fileStorageOps) {\n storageOperations.files = fileStorageOps;\n }\n\n const filesPermissions = new FilesPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () => this.context.security.getPermissions(\"fm.file\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n return createFileManager({\n storageOperations,\n filesPermissions,\n getTenantId: this.getTenantId.bind(this),\n getLocaleCode: this.getLocaleCode.bind(this),\n getIdentity: this.getIdentity.bind(this),\n getPermissions: this.getPermissions.bind(this),\n storage: new FileStorage({\n context: this.context\n }),\n // TODO: maybe this is no longer necessary, as this wil be managed by CMS?\n WEBINY_VERSION: this.context.WEBINY_VERSION\n });\n }\n\n private getLocaleCode() {\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing locale on context.i18n locale in File Manager API.\",\n \"LOCALE_ERROR\"\n );\n }\n return locale.code;\n }\n\n private getIdentity() {\n return this.context.security.getIdentity();\n }\n\n private getTenantId() {\n return this.context.tenancy.getCurrentTenant().id;\n }\n\n private async getPermissions<T extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<T[]> {\n return this.context.security.getPermissions(name);\n }\n\n private async setupCmsStorageOperations(aliases: FileManagerAliasesStorageOperations) {\n if (isInstallationPending({ tenancy: this.context.tenancy, i18n: this.context.i18n })) {\n console.log(\"Installation pending!\");\n return;\n }\n\n // This registers code plugins (model group, models)\n const { groupPlugin, fileModelDefinition } = createFileManagerPlugins();\n\n const modelModifiers = this.context.plugins.byType<CmsModelModifierPlugin>(\n CmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(fileModelDefinition);\n }\n\n // Finally, register all plugins\n this.context.plugins.register([groupPlugin, new CmsModelPlugin(fileModelDefinition)]);\n\n // Now load the file model registered in the previous step\n const fileModel = await this.getModel(FILE_MODEL_ID);\n\n // Overwrite the original `files` storage ops\n return await CmsFilesStorage.create({\n fileModel,\n cms: this.context.cms,\n security: this.context.security,\n aliases\n });\n }\n\n private async getModel(modelId: string) {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new WebinyError({\n code: \"MODEL_NOT_FOUND\",\n message: `Content model \"${modelId}\" was not found!`\n });\n }\n\n return model;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_createFileManager","require","_FileStorage","_error","_interopRequireDefault","_file","_CmsFilesStorage","_CmsModelModifier","_apiHeadlessCms","_FilesPermissions","_SettingsPermissions","FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","settingsPermissions","SettingsPermissions","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isHeadlessCmsReady","console","log","withPrivateFiles","wcp","canUsePrivateFiles","fileModelDefinition","createFileModel","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","fileModel","getModel","FILE_MODEL_ID","CmsFilesStorage","create","cms","modelId","model","message","exports"],"sources":["FileManagerContextSetup.ts"],"sourcesContent":["import type { FileManagerAliasesStorageOperations, FilePermission } from \"~/types\";\nimport { type FileManagerContext, type SettingsPermission } from \"~/types\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\nimport { createFileManager } from \"~/createFileManager\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport WebinyError from \"@webiny/error\";\nimport type { SecurityPermission } from \"@webiny/api-security/types\";\nimport { createFileModel, FILE_MODEL_ID } from \"~/cmsFileStorage/file.model\";\nimport { CmsFilesStorage } from \"~/cmsFileStorage/CmsFilesStorage\";\nimport { CmsModelModifierPlugin } from \"~/modelModifier/CmsModelModifier\";\nimport { CmsModelPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\nimport { SettingsPermissions } from \"~/createFileManager/permissions/SettingsPermissions\";\n\nexport class FileManagerContextSetup {\n private readonly context: FileManagerContext;\n\n constructor(context: FileManagerContext) {\n this.context = context;\n }\n\n async setupContext(storageOperations: FileManagerConfig[\"storageOperations\"]) {\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(this.context);\n }\n\n const fileStorageOps = await this.context.security.withoutAuthorization(() => {\n return this.setupCmsStorageOperations(storageOperations.aliases);\n });\n\n if (fileStorageOps) {\n storageOperations.files = fileStorageOps;\n }\n\n const filesPermissions = new FilesPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () => this.context.security.getPermissions<FilePermission>(\"fm.file\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n const settingsPermissions = new SettingsPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () =>\n this.context.security.getPermissions<SettingsPermission>(\"fm.settings\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n return createFileManager({\n storageOperations,\n filesPermissions,\n settingsPermissions,\n getTenantId: this.getTenantId.bind(this),\n getLocaleCode: this.getLocaleCode.bind(this),\n getIdentity: this.getIdentity.bind(this),\n getPermissions: this.getPermissions.bind(this),\n storage: new FileStorage({\n context: this.context\n }),\n // TODO: maybe this is no longer necessary, as this wil be managed by CMS?\n WEBINY_VERSION: this.context.WEBINY_VERSION\n });\n }\n\n private getLocaleCode() {\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing locale on context.i18n locale in File Manager API.\",\n \"LOCALE_ERROR\"\n );\n }\n return locale.code;\n }\n\n private getIdentity() {\n return this.context.security.getIdentity();\n }\n\n private getTenantId() {\n return this.context.tenancy.getCurrentTenant().id;\n }\n\n private async getPermissions<T extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<T[]> {\n return this.context.security.getPermissions(name);\n }\n\n private async setupCmsStorageOperations(aliases: FileManagerAliasesStorageOperations) {\n if (!(await isHeadlessCmsReady(this.context))) {\n console.log(\"Installation pending!\");\n return;\n }\n\n const withPrivateFiles = this.context.wcp.canUsePrivateFiles();\n\n // This registers code plugins (model group, models)\n const fileModelDefinition = createFileModel({ withPrivateFiles });\n\n const modelModifiers = this.context.plugins.byType<CmsModelModifierPlugin>(\n CmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(fileModelDefinition);\n }\n\n // Finally, register all plugins\n this.context.plugins.register([new CmsModelPlugin(fileModelDefinition)]);\n\n // Now load the file model registered in the previous step\n const fileModel = await this.getModel(FILE_MODEL_ID);\n\n // Overwrite the original `files` storage ops\n return await CmsFilesStorage.create({\n fileModel,\n cms: this.context.cms,\n security: this.context.security,\n aliases\n });\n }\n\n private async getModel(modelId: string) {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new WebinyError({\n code: \"MODEL_NOT_FOUND\",\n message: `Content model \"${modelId}\" was not found!`\n });\n }\n\n return model;\n }\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AACA,IAAAS,oBAAA,GAAAT,OAAA;AAEO,MAAMU,uBAAuB,CAAC;EAGjCC,WAAWA,CAACC,OAA2B,EAAE;IACrC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,YAAYA,CAACC,iBAAyD,EAAE;IAC1E,IAAIA,iBAAiB,CAACC,UAAU,EAAE;MAC9B,MAAMD,iBAAiB,CAACC,UAAU,CAAC,IAAI,CAACH,OAAO,CAAC;IACpD;IAEA,MAAMI,cAAc,GAAG,MAAM,IAAI,CAACJ,OAAO,CAACK,QAAQ,CAACC,oBAAoB,CAAC,MAAM;MAC1E,OAAO,IAAI,CAACC,yBAAyB,CAACL,iBAAiB,CAACM,OAAO,CAAC;IACpE,CAAC,CAAC;IAEF,IAAIJ,cAAc,EAAE;MAChBF,iBAAiB,CAACO,KAAK,GAAGL,cAAc;IAC5C;IAEA,MAAMM,gBAAgB,GAAG,IAAIC,kCAAgB,CAAC;MAC1CC,WAAW,EAAE,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW;MAC9CC,cAAc,EAAEA,CAAA,KAAM,IAAI,CAACb,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAAiB,SAAS,CAAC;MACrFC,wBAAwB,EAAE;IAC9B,CAAC,CAAC;IAEF,MAAMC,mBAAmB,GAAG,IAAIC,wCAAmB,CAAC;MAChDJ,WAAW,EAAE,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW;MAC9CC,cAAc,EAAEA,CAAA,KACZ,IAAI,CAACb,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAAqB,aAAa,CAAC;MAC3EC,wBAAwB,EAAE;IAC9B,CAAC,CAAC;IAEF,OAAO,IAAAG,oCAAiB,EAAC;MACrBf,iBAAiB;MACjBQ,gBAAgB;MAChBK,mBAAmB;MACnBG,WAAW,EAAE,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;MACxCC,aAAa,EAAE,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;MAC5CP,WAAW,EAAE,IAAI,CAACA,WAAW,CAACO,IAAI,CAAC,IAAI,CAAC;MACxCN,cAAc,EAAE,IAAI,CAACA,cAAc,CAACM,IAAI,CAAC,IAAI,CAAC;MAC9CE,OAAO,EAAE,IAAIC,wBAAW,CAAC;QACrBtB,OAAO,EAAE,IAAI,CAACA;MAClB,CAAC,CAAC;MACF;MACAuB,cAAc,EAAE,IAAI,CAACvB,OAAO,CAACuB;IACjC,CAAC,CAAC;EACN;EAEQH,aAAaA,CAAA,EAAG;IACpB,MAAMI,MAAM,GAAG,IAAI,CAACxB,OAAO,CAACyB,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAIG,cAAW,CACjB,4DAA4D,EAC5D,cACJ,CAAC;IACL;IACA,OAAOH,MAAM,CAACI,IAAI;EACtB;EAEQhB,WAAWA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW,CAAC,CAAC;EAC9C;EAEQM,WAAWA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAClB,OAAO,CAAC6B,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACC,EAAE;EACrD;EAEA,MAAclB,cAAcA,CACxBmB,IAAY,EACA;IACZ,OAAO,IAAI,CAAChC,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAACmB,IAAI,CAAC;EACrD;EAEA,MAAczB,yBAAyBA,CAACC,OAA4C,EAAE;IAClF,IAAI,EAAE,MAAM,IAAAyB,kCAAkB,EAAC,IAAI,CAACjC,OAAO,CAAC,CAAC,EAAE;MAC3CkC,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;MACpC;IACJ;IAEA,MAAMC,gBAAgB,GAAG,IAAI,CAACpC,OAAO,CAACqC,GAAG,CAACC,kBAAkB,CAAC,CAAC;;IAE9D;IACA,MAAMC,mBAAmB,GAAG,IAAAC,qBAAe,EAAC;MAAEJ;IAAiB,CAAC,CAAC;IAEjE,MAAMK,cAAc,GAAG,IAAI,CAACzC,OAAO,CAAC0C,OAAO,CAACC,MAAM,CAC9CC,wCAAsB,CAACC,IAC3B,CAAC;IAED,KAAK,MAAMC,QAAQ,IAAIL,cAAc,EAAE;MACnC,MAAMK,QAAQ,CAACC,WAAW,CAACR,mBAAmB,CAAC;IACnD;;IAEA;IACA,IAAI,CAACvC,OAAO,CAAC0C,OAAO,CAACM,QAAQ,CAAC,CAAC,IAAIC,8BAAc,CAACV,mBAAmB,CAAC,CAAC,CAAC;;IAExE;IACA,MAAMW,SAAS,GAAG,MAAM,IAAI,CAACC,QAAQ,CAACC,mBAAa,CAAC;;IAEpD;IACA,OAAO,MAAMC,gCAAe,CAACC,MAAM,CAAC;MAChCJ,SAAS;MACTK,GAAG,EAAE,IAAI,CAACvD,OAAO,CAACuD,GAAG;MACrBlD,QAAQ,EAAE,IAAI,CAACL,OAAO,CAACK,QAAQ;MAC/BG;IACJ,CAAC,CAAC;EACN;EAEA,MAAc2C,QAAQA,CAACK,OAAe,EAAE;IACpC,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACzD,OAAO,CAACuD,GAAG,CAACJ,QAAQ,CAACK,OAAO,CAAC;IACtD,IAAI,CAACC,KAAK,EAAE;MACR,MAAM,IAAI9B,cAAW,CAAC;QAClBC,IAAI,EAAE,iBAAiB;QACvB8B,OAAO,EAAE,kBAAkBF,OAAO;MACtC,CAAC,CAAC;IACN;IAEA,OAAOC,KAAK;EAChB;AACJ;AAACE,OAAA,CAAA7D,uBAAA,GAAAA,uBAAA","ignoreList":[]}
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
5
5
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
6
6
 
7
- The API for Webiny Admin's ([@webiny/admin](../app-admin)) File Manager.
7
+ The API for Webiny Admin's ([@webiny/app-admin](../app-admin)) File Manager.
8
8
 
9
9
  ## Install
10
10
  ```
@@ -1,6 +1,6 @@
1
- import { CmsModel, HeadlessCms } from "@webiny/api-headless-cms/types";
2
- import { Security } from "@webiny/api-security/types";
3
- import { File, FileManagerAliasesStorageOperations, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsCreateBatchParams, FileManagerFilesStorageOperationsCreateParams, FileManagerFilesStorageOperationsDeleteParams, FileManagerFilesStorageOperationsGetParams, FileManagerFilesStorageOperationsListParams, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsParams, FileManagerFilesStorageOperationsTagsResponse, FileManagerFilesStorageOperationsUpdateParams } from "../types";
1
+ import type { CmsModel, HeadlessCms } from "@webiny/api-headless-cms/types";
2
+ import type { Security } from "@webiny/api-security/types";
3
+ import type { File, FileManagerAliasesStorageOperations, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsCreateBatchParams, FileManagerFilesStorageOperationsCreateParams, FileManagerFilesStorageOperationsDeleteParams, FileManagerFilesStorageOperationsGetParams, FileManagerFilesStorageOperationsListParams, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsParams, FileManagerFilesStorageOperationsTagsResponse, FileManagerFilesStorageOperationsUpdateParams } from "../types";
4
4
  export declare class CmsFilesStorage implements FileManagerFilesStorageOperations {
5
5
  private readonly cms;
6
6
  private readonly security;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.CmsFilesStorage = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
8
  var _omit = _interopRequireDefault(require("lodash/omit"));
11
9
  var _ListFilesWhereProcessor = require("./ListFilesWhereProcessor");
12
10
  var _ListTagsWhereProcessor = require("./ListTagsWhereProcessor");
@@ -16,12 +14,6 @@ class CmsFilesStorage {
16
14
  return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);
17
15
  }
18
16
  constructor(fileModel, cms, security, aliases) {
19
- (0, _defineProperty2.default)(this, "cms", void 0);
20
- (0, _defineProperty2.default)(this, "security", void 0);
21
- (0, _defineProperty2.default)(this, "model", void 0);
22
- (0, _defineProperty2.default)(this, "aliases", void 0);
23
- (0, _defineProperty2.default)(this, "filesWhereProcessor", void 0);
24
- (0, _defineProperty2.default)(this, "tagsWhereProcessor", void 0);
25
17
  this.model = fileModel;
26
18
  this.aliases = aliases;
27
19
  this.cms = cms;
@@ -33,25 +25,25 @@ class CmsFilesStorage {
33
25
  tenant,
34
26
  locale
35
27
  }) {
36
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.model), {}, {
28
+ return {
29
+ ...this.model,
37
30
  tenant,
38
31
  locale
39
- });
32
+ };
40
33
  }
41
34
  async create({
42
35
  file
43
36
  }) {
44
- var _file$location;
45
37
  const model = this.modelWithContext(file);
46
- if (!((_file$location = file.location) !== null && _file$location !== void 0 && _file$location.folderId)) {
47
- file.location = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, file.location), {}, {
38
+ if (!file.location?.folderId) {
39
+ file.location = {
40
+ ...file.location,
48
41
  folderId: _contants.ROOT_FOLDER
49
- });
42
+ };
50
43
  }
51
- const entry = await this.security.withoutAuthorization(() => {
52
- return this.cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, file), {}, {
53
- wbyAco_location: file.location
54
- }));
44
+ const entry = await this.cms.createEntry(model, {
45
+ ...file,
46
+ wbyAco_location: file.location
55
47
  });
56
48
  await this.aliases.storeAliases(file);
57
49
  return this.getFileFieldValues(entry);
@@ -69,9 +61,7 @@ class CmsFilesStorage {
69
61
  file
70
62
  }) {
71
63
  const model = this.modelWithContext(file);
72
- await this.security.withoutAuthorization(() => {
73
- return this.cms.deleteEntry(model, file.id);
74
- });
64
+ await this.cms.deleteEntry(model, file.id);
75
65
  await this.aliases.deleteAliases(file);
76
66
  }
77
67
  async get({
@@ -86,13 +76,11 @@ class CmsFilesStorage {
86
76
  tenant,
87
77
  locale
88
78
  });
89
- const entry = await this.security.withoutAuthorization(() => {
90
- return this.cms.getEntry(model, {
91
- where: {
92
- entryId: id,
93
- latest: true
94
- }
95
- });
79
+ const entry = await this.cms.getEntry(model, {
80
+ where: {
81
+ entryId: id,
82
+ latest: true
83
+ }
96
84
  });
97
85
  return entry ? this.getFileFieldValues(entry) : null;
98
86
  }
@@ -103,15 +91,13 @@ class CmsFilesStorage {
103
91
  tenant,
104
92
  locale
105
93
  });
106
- const [entries, meta] = await this.security.withoutAuthorization(() => {
107
- const where = this.filesWhereProcessor.process(params.where);
108
- return this.cms.listLatestEntries(model, {
109
- after: params.after,
110
- limit: params.limit,
111
- sort: params.sort,
112
- where,
113
- search: params.search
114
- });
94
+ const where = this.filesWhereProcessor.process(params.where);
95
+ const [entries, meta] = await this.cms.listLatestEntries(model, {
96
+ after: params.after,
97
+ limit: params.limit,
98
+ sort: params.sort,
99
+ where,
100
+ search: params.search
115
101
  });
116
102
  return [entries.map(entry => this.getFileFieldValues(entry)), meta];
117
103
  }
@@ -122,13 +108,12 @@ class CmsFilesStorage {
122
108
  tenant,
123
109
  locale
124
110
  });
125
- const uniqueValues = await this.security.withoutAuthorization(() => {
126
- return this.cms.getUniqueFieldValues(model, {
127
- fieldId: "tags",
128
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.tagsWhereProcessor.process(params.where)), {}, {
129
- latest: true
130
- })
131
- });
111
+ const uniqueValues = await this.cms.getUniqueFieldValues(model, {
112
+ fieldId: "tags",
113
+ where: {
114
+ ...this.tagsWhereProcessor.process(params.where),
115
+ latest: true
116
+ }
132
117
  });
133
118
  return uniqueValues.map(uv => ({
134
119
  tag: uv.value,
@@ -143,31 +128,37 @@ class CmsFilesStorage {
143
128
  file
144
129
  }) {
145
130
  const model = this.modelWithContext(file);
146
- return await this.security.withoutAuthorization(async () => {
147
- const entry = await this.cms.getEntry(model, {
148
- where: {
149
- entryId: file.id,
150
- latest: true
151
- }
152
- });
153
- const values = (0, _omit.default)(file, ["id", "createdOn", "createdBy", "tenant", "locale", "webinyVersion"]);
154
- const updatedEntry = await this.cms.updateEntry(model, entry.id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, values), {}, {
155
- wbyAco_location: values.location ?? entry.location
156
- }));
157
- await this.aliases.storeAliases(file);
158
- return this.getFileFieldValues(updatedEntry);
131
+ const entry = await this.cms.getEntry(model, {
132
+ where: {
133
+ entryId: file.id,
134
+ latest: true
135
+ }
136
+ });
137
+ const values = (0, _omit.default)(file, ["id", "tenant", "locale", "webinyVersion"]);
138
+ const updatedEntry = await this.cms.updateEntry(model, entry.id, {
139
+ ...values,
140
+ wbyAco_location: values.location ?? entry.location
159
141
  });
142
+ await this.aliases.storeAliases(file);
143
+ return this.getFileFieldValues(updatedEntry);
160
144
  }
161
145
  getFileFieldValues(entry) {
162
- return (0, _objectSpread2.default)({
146
+ return {
163
147
  id: entry.entryId,
148
+ // We're safe to use entry-level meta fields because we don't use revisions with files.
164
149
  createdBy: entry.createdBy,
150
+ modifiedBy: entry.modifiedBy || null,
151
+ savedBy: entry.savedBy,
165
152
  createdOn: entry.createdOn,
153
+ modifiedOn: entry.modifiedOn || null,
166
154
  savedOn: entry.savedOn,
167
155
  locale: entry.locale,
168
156
  tenant: entry.tenant,
169
- webinyVersion: entry.webinyVersion
170
- }, entry.values);
157
+ webinyVersion: entry.webinyVersion,
158
+ ...entry.values
159
+ };
171
160
  }
172
161
  }
173
- exports.CmsFilesStorage = CmsFilesStorage;
162
+ exports.CmsFilesStorage = CmsFilesStorage;
163
+
164
+ //# sourceMappingURL=CmsFilesStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","withoutAuthorization","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","entries","meta","process","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","createdOn","savedOn","webinyVersion"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.createEntry(model, { ...file, wbyAco_location: file.location });\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.security.withoutAuthorization(() => {\n return this.cms.deleteEntry(model, file.id);\n });\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.security.withoutAuthorization(() => {\n return this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n const [entries, meta] = await this.security.withoutAuthorization(() => {\n const where = this.filesWhereProcessor.process(params.where);\n return this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.security.withoutAuthorization(() => {\n return this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n return await this.security.withoutAuthorization(async () => {\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\n \"id\",\n \"createdOn\",\n \"createdBy\",\n \"tenant\",\n \"locale\",\n \"webinyVersion\"\n ]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n });\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n createdBy: entry.createdBy,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_omit","_interopRequireDefault","require","_ListFilesWhereProcessor","_ListTagsWhereProcessor","_contants","CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","process","entries","meta","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","modifiedBy","savedBy","createdOn","modifiedOn","savedOn","webinyVersion","exports"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport type { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport type { Security } from \"@webiny/api-security/types\";\nimport type {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.cms.createEntry(model, {\n ...file,\n wbyAco_location: file.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.cms.deleteEntry(model, file.id);\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n\n const where = this.filesWhereProcessor.process(params.where);\n const [entries, meta] = await this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\"id\", \"tenant\", \"locale\", \"webinyVersion\"]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n\n // We're safe to use entry-level meta fields because we don't use revisions with files.\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy || null,\n savedBy: entry.savedBy,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn || null,\n savedOn: entry.savedOn,\n\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
2
- import { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
1
+ import type { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
2
+ import type { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
3
3
  export declare class ListFilesWhereProcessor {
4
4
  private readonly skipKeys;
5
5
  private readonly keyMap;
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.ListFilesWhereProcessor = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
7
  class ListFilesWhereProcessor {
10
- constructor() {
11
- (0, _defineProperty2.default)(this, "skipKeys", ["tenant", "locale"]);
12
- (0, _defineProperty2.default)(this, "keyMap", {
13
- id: "entryId",
14
- id_in: "entryId_in"
15
- });
16
- }
8
+ skipKeys = ["tenant", "locale"];
9
+ keyMap = {
10
+ id: "entryId",
11
+ id_in: "entryId_in"
12
+ };
17
13
  process(input) {
18
14
  const where = {
19
15
  meta: {
@@ -32,4 +28,6 @@ class ListFilesWhereProcessor {
32
28
  return where;
33
29
  }
34
30
  }
35
- exports.ListFilesWhereProcessor = ListFilesWhereProcessor;
31
+ exports.ListFilesWhereProcessor = ListFilesWhereProcessor;
32
+
33
+ //# sourceMappingURL=ListFilesWhereProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListFilesWhereProcessor","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","skipKeys","includes","forEach","remappedKey","keyMap","value","undefined"],"sources":["ListFilesWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListFilesWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n id: \"entryId\",\n id_in: \"entryId_in\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;;;AAMO,MAAMA,uBAAuB,CAAC;EAAA;IAAA,gDACL,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAA,8CACkC;MAC9EC,EAAE,EAAE,SAAS;MACbC,KAAK,EAAE;IACX,CAAC;EAAA;EAEDC,OAAO,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACF,GAAG,CAAC,CAAC,CAC3CG,OAAO,CAACH,GAAG,IAAI;MACZ,MAAMI,WAAW,GAAG,IAAI,CAACC,MAAM,CAACL,GAAG,CAAC;MACpC,MAAMM,KAAK,GAAGb,KAAK,CAACO,GAAG,CAAC;MAExB,IAAII,WAAW,IAAIE,KAAK,KAAKC,SAAS,EAAE;QACpCb,KAAK,CAACU,WAAW,CAAC,GAAGE,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5Bb,KAAK,CAACM,GAAG,CAAC,GAAGM,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOZ,KAAK;EAChB;AACJ;AAAC"}
1
+ {"version":3,"names":["ListFilesWhereProcessor","skipKeys","keyMap","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListFilesWhereProcessor.ts"],"sourcesContent":["import type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport type { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListFilesWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n id: \"entryId\",\n id_in: \"entryId_in\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,uBAAuB,CAAC;EAChBC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,EAAE,EAAE,SAAS;IACbC,KAAK,EAAE;EACX,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
2
- import { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
1
+ import type { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
2
+ import type { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
3
3
  export declare class ListTagsWhereProcessor {
4
4
  private readonly skipKeys;
5
5
  private readonly keyMap;
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.ListTagsWhereProcessor = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
7
  class ListTagsWhereProcessor {
10
- constructor() {
11
- (0, _defineProperty2.default)(this, "skipKeys", ["tenant", "locale"]);
12
- (0, _defineProperty2.default)(this, "keyMap", {
13
- tag_startsWith: "tags_startsWith",
14
- tag_not_startsWith: "tags_not_startsWith"
15
- });
16
- }
8
+ skipKeys = ["tenant", "locale"];
9
+ keyMap = {
10
+ tag_startsWith: "tags_startsWith",
11
+ tag_not_startsWith: "tags_not_startsWith"
12
+ };
17
13
  process(input) {
18
14
  const where = {
19
15
  meta: {
@@ -32,4 +28,6 @@ class ListTagsWhereProcessor {
32
28
  return where;
33
29
  }
34
30
  }
35
- exports.ListTagsWhereProcessor = ListTagsWhereProcessor;
31
+ exports.ListTagsWhereProcessor = ListTagsWhereProcessor;
32
+
33
+ //# sourceMappingURL=ListTagsWhereProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListTagsWhereProcessor","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","skipKeys","includes","forEach","remappedKey","keyMap","value","undefined"],"sources":["ListTagsWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListTagsWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n tag_startsWith: \"tags_startsWith\",\n tag_not_startsWith: \"tags_not_startsWith\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;;;AAMO,MAAMA,sBAAsB,CAAC;EAAA;IAAA,gDACJ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAA,8CACkC;MAC9EC,cAAc,EAAE,iBAAiB;MACjCC,kBAAkB,EAAE;IACxB,CAAC;EAAA;EAEDC,OAAO,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAACF,GAAG,CAAC,CAAC,CAC3CG,OAAO,CAACH,GAAG,IAAI;MACZ,MAAMI,WAAW,GAAG,IAAI,CAACC,MAAM,CAACL,GAAG,CAAC;MACpC,MAAMM,KAAK,GAAGb,KAAK,CAACO,GAAG,CAAC;MAExB,IAAII,WAAW,IAAIE,KAAK,KAAKC,SAAS,EAAE;QACpCb,KAAK,CAACU,WAAW,CAAC,GAAGE,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5Bb,KAAK,CAACM,GAAG,CAAC,GAAGM,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOZ,KAAK;EAChB;AACJ;AAAC"}
1
+ {"version":3,"names":["ListTagsWhereProcessor","skipKeys","keyMap","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListTagsWhereProcessor.ts"],"sourcesContent":["import type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport type { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListTagsWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n tag_startsWith: \"tags_startsWith\",\n tag_not_startsWith: \"tags_not_startsWith\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,sBAAsB,CAAC;EACfC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,cAAc,EAAE,iBAAiB;IACjCC,kBAAkB,EAAE;EACxB,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
- import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
2
- import { CmsModelGroup } from "@webiny/api-headless-cms/types";
3
1
  export declare const FILE_MODEL_ID = "fmFile";
4
- export declare const createFileModelDefinition: (group: CmsModelGroup) => CmsPrivateModelFull;
2
+ interface CreateFileModelDefinitionParams {
3
+ withPrivateFiles: boolean;
4
+ }
5
+ export declare const createFileModel: (params: CreateFileModelDefinitionParams) => import("@webiny/api-headless-cms").CmsPrivateModelFull;
6
+ export {};