@webiny/api-file-manager 0.0.0-unstable.de38392959 → 0.0.0-unstable.e0bfc55d5a

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 (168) hide show
  1. package/FileManagerContextSetup.d.ts +2 -2
  2. package/FileManagerContextSetup.js +9 -9
  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 +34 -46
  7. package/cmsFileStorage/CmsFilesStorage.js.map +1 -1
  8. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +2 -2
  9. package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -1
  10. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +2 -2
  11. package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -1
  12. package/cmsFileStorage/file.model.d.ts +1 -1
  13. package/cmsFileStorage/file.model.js +27 -22
  14. package/cmsFileStorage/file.model.js.map +1 -1
  15. package/contants.js +1 -2
  16. package/contants.js.map +1 -1
  17. package/createFileManager/files.crud.d.ts +3 -3
  18. package/createFileManager/files.crud.js.map +1 -1
  19. package/createFileManager/index.d.ts +2 -14
  20. package/createFileManager/index.js.map +1 -1
  21. package/createFileManager/permissions/FilesPermissions.d.ts +1 -1
  22. package/createFileManager/permissions/FilesPermissions.js.map +1 -1
  23. package/createFileManager/permissions/SettingsPermissions.d.ts +4 -0
  24. package/createFileManager/permissions/SettingsPermissions.js +11 -0
  25. package/createFileManager/permissions/SettingsPermissions.js.map +1 -0
  26. package/createFileManager/settings.crud.d.ts +3 -3
  27. package/createFileManager/settings.crud.js +54 -44
  28. package/createFileManager/settings.crud.js.map +1 -1
  29. package/createFileManager/system.crud.d.ts +3 -3
  30. package/createFileManager/system.crud.js.map +1 -1
  31. package/createFileManager/types.d.ts +16 -0
  32. package/createFileManager/types.js +7 -0
  33. package/createFileManager/types.js.map +1 -0
  34. package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +5 -4
  35. package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -1
  36. package/delivery/AssetDelivery/Asset.d.ts +5 -3
  37. package/delivery/AssetDelivery/Asset.js +12 -7
  38. package/delivery/AssetDelivery/Asset.js.map +1 -1
  39. package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +8 -8
  40. package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -1
  41. package/delivery/AssetDelivery/AssetRequest.d.ts +3 -2
  42. package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
  43. package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +2 -2
  44. package/delivery/AssetDelivery/FilesAssetRequestResolver.js +8 -4
  45. package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -1
  46. package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +1 -1
  47. package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -1
  48. package/delivery/AssetDelivery/NullAssetReply.js.map +1 -1
  49. package/delivery/AssetDelivery/NullAssetResolver.d.ts +2 -2
  50. package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -1
  51. package/delivery/AssetDelivery/NullRequestResolver.d.ts +1 -1
  52. package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -1
  53. package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +2 -2
  54. package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -1
  55. package/delivery/AssetDelivery/SetResponseHeaders.d.ts +3 -3
  56. package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -1
  57. package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +2 -1
  58. package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -1
  59. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +1 -1
  60. package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -1
  61. package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +1 -1
  62. package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -1
  63. package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
  64. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +2 -2
  65. package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -1
  66. package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +1 -1
  67. package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -1
  68. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +1 -1
  69. package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -1
  70. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +1 -1
  71. package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
  72. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +1 -1
  73. package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -1
  74. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +1 -1
  75. package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -1
  76. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +1 -1
  77. package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
  78. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +2 -2
  79. package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
  80. package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +5 -3
  81. package/delivery/AssetDelivery/privateFiles/PrivateCache.js +17 -7
  82. package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -1
  83. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +3 -2
  84. package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  85. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +3 -3
  86. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +7 -6
  87. package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
  88. package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +5 -3
  89. package/delivery/AssetDelivery/privateFiles/PublicCache.js +17 -7
  90. package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -1
  91. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +2 -1
  92. package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
  93. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +2 -1
  94. package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
  95. package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +1 -1
  96. package/delivery/AssetDelivery/privateFiles/internalIdentity.js +1 -2
  97. package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +1 -1
  98. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +1 -1
  99. package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -1
  100. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +1 -1
  101. package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -1
  102. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +1 -1
  103. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +1 -0
  104. package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
  105. package/delivery/index.js.map +1 -1
  106. package/delivery/setupAssetDelivery.d.ts +3 -3
  107. package/delivery/setupAssetDelivery.js +4 -2
  108. package/delivery/setupAssetDelivery.js.map +1 -1
  109. package/enterprise/applyThreatScanning.d.ts +2 -0
  110. package/enterprise/applyThreatScanning.js +20 -0
  111. package/enterprise/applyThreatScanning.js.map +1 -0
  112. package/graphql/baseSchema.d.ts +1 -1
  113. package/graphql/baseSchema.js +2 -1
  114. package/graphql/baseSchema.js.map +1 -1
  115. package/graphql/createFilesTypeDefs.d.ts +1 -1
  116. package/graphql/createFilesTypeDefs.js +2 -3
  117. package/graphql/createFilesTypeDefs.js.map +1 -1
  118. package/graphql/filesSchema.d.ts +2 -2
  119. package/graphql/filesSchema.js +1 -3
  120. package/graphql/filesSchema.js.map +1 -1
  121. package/graphql/getFileByUrl.d.ts +1 -1
  122. package/graphql/getFileByUrl.js.map +1 -1
  123. package/graphql/index.d.ts +1 -1
  124. package/graphql/index.js +3 -3
  125. package/graphql/index.js.map +1 -1
  126. package/graphql/utils.d.ts +1 -1
  127. package/graphql/utils.js.map +1 -1
  128. package/handlers/manage/imageManager.d.ts +1 -1
  129. package/handlers/manage/imageManager.js +1 -2
  130. package/handlers/manage/imageManager.js.map +1 -1
  131. package/handlers/manage/index.js.map +1 -1
  132. package/handlers/manage/legacyUtils.js +4 -8
  133. package/handlers/manage/legacyUtils.js.map +1 -1
  134. package/handlers/manage/utils.js +4 -8
  135. package/handlers/manage/utils.js.map +1 -1
  136. package/handlers/types.js.map +1 -1
  137. package/handlers/utils/getEnvironment.js.map +1 -1
  138. package/handlers/utils/getObjectParams.js.map +1 -1
  139. package/handlers/utils/index.js.map +1 -1
  140. package/index.d.ts +4 -4
  141. package/index.js +4 -0
  142. package/index.js.map +1 -1
  143. package/modelModifier/CmsModelModifier.d.ts +3 -3
  144. package/modelModifier/CmsModelModifier.js +2 -2
  145. package/modelModifier/CmsModelModifier.js.map +1 -1
  146. package/package.json +25 -35
  147. package/plugins/FilePhysicalStoragePlugin.d.ts +2 -1
  148. package/plugins/FilePhysicalStoragePlugin.js.map +1 -1
  149. package/plugins/FileStorageTransformPlugin.d.ts +1 -1
  150. package/plugins/FileStorageTransformPlugin.js.map +1 -1
  151. package/plugins/index.js.map +1 -1
  152. package/storage/FileStorage.d.ts +5 -4
  153. package/storage/FileStorage.js.map +1 -1
  154. package/types/file.d.ts +3 -2
  155. package/types/file.js.map +1 -1
  156. package/types/file.lifecycle.d.ts +2 -2
  157. package/types/file.lifecycle.js.map +1 -1
  158. package/types.d.ts +17 -15
  159. package/types.js.map +1 -1
  160. package/cmsFileStorage/createFileManagerPlugins.d.ts +0 -7
  161. package/cmsFileStorage/createFileManagerPlugins.js +0 -17
  162. package/cmsFileStorage/createFileManagerPlugins.js.map +0 -1
  163. package/cmsFileStorage/createModelField.d.ts +0 -5
  164. package/cmsFileStorage/createModelField.js +0 -41
  165. package/cmsFileStorage/createModelField.js.map +0 -1
  166. package/cmsFileStorage/isInstallationPending.d.ts +0 -4
  167. package/cmsFileStorage/isInstallationPending.js +0 -23
  168. package/cmsFileStorage/isInstallationPending.js.map +0 -1
@@ -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);
@@ -8,13 +8,12 @@ exports.FileManagerContextSetup = void 0;
8
8
  var _createFileManager = require("./createFileManager");
9
9
  var _FileStorage = require("./storage/FileStorage");
10
10
  var _error = _interopRequireDefault(require("@webiny/error"));
11
- var _isInstallationPending = require("./cmsFileStorage/isInstallationPending");
12
- var _createFileManagerPlugins = require("./cmsFileStorage/createFileManagerPlugins");
13
11
  var _file = require("./cmsFileStorage/file.model");
14
12
  var _CmsFilesStorage = require("./cmsFileStorage/CmsFilesStorage");
15
13
  var _CmsModelModifier = require("./modelModifier/CmsModelModifier");
16
14
  var _apiHeadlessCms = require("@webiny/api-headless-cms");
17
15
  var _FilesPermissions = require("./createFileManager/permissions/FilesPermissions");
16
+ var _SettingsPermissions = require("./createFileManager/permissions/SettingsPermissions");
18
17
  class FileManagerContextSetup {
19
18
  constructor(context) {
20
19
  this.context = context;
@@ -34,9 +33,15 @@ class FileManagerContextSetup {
34
33
  getPermissions: () => this.context.security.getPermissions("fm.file"),
35
34
  fullAccessPermissionName: "fm.*"
36
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
+ });
37
41
  return (0, _createFileManager.createFileManager)({
38
42
  storageOperations,
39
43
  filesPermissions,
44
+ settingsPermissions,
40
45
  getTenantId: this.getTenantId.bind(this),
41
46
  getLocaleCode: this.getLocaleCode.bind(this),
42
47
  getIdentity: this.getIdentity.bind(this),
@@ -65,19 +70,14 @@ class FileManagerContextSetup {
65
70
  return this.context.security.getPermissions(name);
66
71
  }
67
72
  async setupCmsStorageOperations(aliases) {
68
- if ((0, _isInstallationPending.isInstallationPending)({
69
- tenancy: this.context.tenancy,
70
- i18n: this.context.i18n
71
- })) {
73
+ if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(this.context))) {
72
74
  console.log("Installation pending!");
73
75
  return;
74
76
  }
75
77
  const withPrivateFiles = this.context.wcp.canUsePrivateFiles();
76
78
 
77
79
  // This registers code plugins (model group, models)
78
- const {
79
- fileModelDefinition
80
- } = (0, _createFileManagerPlugins.createFileModel)({
80
+ const fileModelDefinition = (0, _file.createFileModel)({
81
81
  withPrivateFiles
82
82
  });
83
83
  const modelModifiers = this.context.plugins.byType(_CmsModelModifier.CmsModelModifierPlugin.type);
@@ -1 +1 @@
1
- {"version":3,"names":["_createFileManager","require","_FileStorage","_error","_interopRequireDefault","_isInstallationPending","_createFileManagerPlugins","_file","_CmsFilesStorage","_CmsModelModifier","_apiHeadlessCms","_FilesPermissions","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","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 { 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 { createFileModel } 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 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":"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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":"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","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;
@@ -41,11 +41,9 @@ class CmsFilesStorage {
41
41
  folderId: _contants.ROOT_FOLDER
42
42
  };
43
43
  }
44
- const entry = await this.security.withoutAuthorization(() => {
45
- return this.cms.createEntry(model, {
46
- ...file,
47
- wbyAco_location: file.location
48
- });
44
+ const entry = await this.cms.createEntry(model, {
45
+ ...file,
46
+ wbyAco_location: file.location
49
47
  });
50
48
  await this.aliases.storeAliases(file);
51
49
  return this.getFileFieldValues(entry);
@@ -63,9 +61,7 @@ class CmsFilesStorage {
63
61
  file
64
62
  }) {
65
63
  const model = this.modelWithContext(file);
66
- await this.security.withoutAuthorization(() => {
67
- return this.cms.deleteEntry(model, file.id);
68
- });
64
+ await this.cms.deleteEntry(model, file.id);
69
65
  await this.aliases.deleteAliases(file);
70
66
  }
71
67
  async get({
@@ -80,13 +76,11 @@ class CmsFilesStorage {
80
76
  tenant,
81
77
  locale
82
78
  });
83
- const entry = await this.security.withoutAuthorization(() => {
84
- return this.cms.getEntry(model, {
85
- where: {
86
- entryId: id,
87
- latest: true
88
- }
89
- });
79
+ const entry = await this.cms.getEntry(model, {
80
+ where: {
81
+ entryId: id,
82
+ latest: true
83
+ }
90
84
  });
91
85
  return entry ? this.getFileFieldValues(entry) : null;
92
86
  }
@@ -97,15 +91,13 @@ class CmsFilesStorage {
97
91
  tenant,
98
92
  locale
99
93
  });
100
- const [entries, meta] = await this.security.withoutAuthorization(() => {
101
- const where = this.filesWhereProcessor.process(params.where);
102
- return this.cms.listLatestEntries(model, {
103
- after: params.after,
104
- limit: params.limit,
105
- sort: params.sort,
106
- where,
107
- search: params.search
108
- });
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
109
101
  });
110
102
  return [entries.map(entry => this.getFileFieldValues(entry)), meta];
111
103
  }
@@ -116,14 +108,12 @@ class CmsFilesStorage {
116
108
  tenant,
117
109
  locale
118
110
  });
119
- const uniqueValues = await this.security.withoutAuthorization(() => {
120
- return this.cms.getUniqueFieldValues(model, {
121
- fieldId: "tags",
122
- where: {
123
- ...this.tagsWhereProcessor.process(params.where),
124
- latest: true
125
- }
126
- });
111
+ const uniqueValues = await this.cms.getUniqueFieldValues(model, {
112
+ fieldId: "tags",
113
+ where: {
114
+ ...this.tagsWhereProcessor.process(params.where),
115
+ latest: true
116
+ }
127
117
  });
128
118
  return uniqueValues.map(uv => ({
129
119
  tag: uv.value,
@@ -138,21 +128,19 @@ class CmsFilesStorage {
138
128
  file
139
129
  }) {
140
130
  const model = this.modelWithContext(file);
141
- return await this.security.withoutAuthorization(async () => {
142
- const entry = await this.cms.getEntry(model, {
143
- where: {
144
- entryId: file.id,
145
- latest: true
146
- }
147
- });
148
- const values = (0, _omit.default)(file, ["id", "tenant", "locale", "webinyVersion"]);
149
- const updatedEntry = await this.cms.updateEntry(model, entry.id, {
150
- ...values,
151
- wbyAco_location: values.location ?? entry.location
152
- });
153
- await this.aliases.storeAliases(file);
154
- return this.getFileFieldValues(updatedEntry);
131
+ const entry = await this.cms.getEntry(model, {
132
+ where: {
133
+ entryId: file.id,
134
+ latest: true
135
+ }
155
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
141
+ });
142
+ await this.aliases.storeAliases(file);
143
+ return this.getFileFieldValues(updatedEntry);
156
144
  }
157
145
  getFileFieldValues(entry) {
158
146
  return {
@@ -1 +1 @@
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","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","modifiedBy","savedBy","createdOn","modifiedOn","savedOn","webinyVersion","exports"],"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, {\n ...file,\n wbyAco_location: file.location\n });\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, [\"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\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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"}
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 +1 @@
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 { 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;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"}
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 +1 @@
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 { 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;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"}
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":[]}
@@ -2,5 +2,5 @@ export declare const FILE_MODEL_ID = "fmFile";
2
2
  interface CreateFileModelDefinitionParams {
3
3
  withPrivateFiles: boolean;
4
4
  }
5
- export declare const createFileModelDefinition: (params: CreateFileModelDefinitionParams) => import("@webiny/api-headless-cms").CmsPrivateModelFull;
5
+ export declare const createFileModel: (params: CreateFileModelDefinitionParams) => import("@webiny/api-headless-cms").CmsPrivateModelFull;
6
6
  export {};
@@ -3,9 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createFileModelDefinition = exports.FILE_MODEL_ID = void 0;
6
+ exports.createFileModel = exports.FILE_MODEL_ID = void 0;
7
7
  var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
- var _createModelField = require("./createModelField");
9
8
  const required = () => {
10
9
  return {
11
10
  name: "required",
@@ -13,59 +12,59 @@ const required = () => {
13
12
  };
14
13
  };
15
14
  const nameField = () => {
16
- return (0, _createModelField.createModelField)({
15
+ return (0, _apiHeadlessCms.createModelField)({
17
16
  label: "Name",
18
17
  type: "text",
19
18
  validation: [required()]
20
19
  });
21
20
  };
22
21
  const keyField = () => {
23
- return (0, _createModelField.createModelField)({
22
+ return (0, _apiHeadlessCms.createModelField)({
24
23
  label: "Key",
25
24
  type: "text",
26
25
  validation: [required()]
27
26
  });
28
27
  };
29
28
  const typeField = () => {
30
- return (0, _createModelField.createModelField)({
29
+ return (0, _apiHeadlessCms.createModelField)({
31
30
  label: "Type",
32
31
  type: "text",
33
32
  validation: [required()]
34
33
  });
35
34
  };
36
35
  const sizeField = () => {
37
- return (0, _createModelField.createModelField)({
36
+ return (0, _apiHeadlessCms.createModelField)({
38
37
  label: "Size",
39
38
  type: "number",
40
39
  validation: [required()]
41
40
  });
42
41
  };
43
42
  const metaWidthField = () => {
44
- return (0, _createModelField.createModelField)({
43
+ return (0, _apiHeadlessCms.createModelField)({
45
44
  label: "Width",
46
45
  type: "number"
47
46
  });
48
47
  };
49
48
  const metaHeightField = () => {
50
- return (0, _createModelField.createModelField)({
49
+ return (0, _apiHeadlessCms.createModelField)({
51
50
  label: "Height",
52
51
  type: "number"
53
52
  });
54
53
  };
55
54
  const metaPrivateField = () => {
56
- return (0, _createModelField.createModelField)({
55
+ return (0, _apiHeadlessCms.createModelField)({
57
56
  label: "Private",
58
57
  type: "boolean"
59
58
  });
60
59
  };
61
60
  const metaOriginalKeyField = () => {
62
- return (0, _createModelField.createModelField)({
61
+ return (0, _apiHeadlessCms.createModelField)({
63
62
  label: "Original Key",
64
63
  type: "text"
65
64
  });
66
65
  };
67
66
  const metaField = () => {
68
- return (0, _createModelField.createModelField)({
67
+ return (0, _apiHeadlessCms.createModelField)({
69
68
  label: "Meta",
70
69
  type: "object",
71
70
  settings: {
@@ -74,7 +73,7 @@ const metaField = () => {
74
73
  });
75
74
  };
76
75
  const accessControlTypeField = () => {
77
- return (0, _createModelField.createModelField)({
76
+ return (0, _apiHeadlessCms.createModelField)({
78
77
  label: "Type",
79
78
  type: "text",
80
79
  predefinedValues: {
@@ -91,7 +90,7 @@ const accessControlTypeField = () => {
91
90
  });
92
91
  };
93
92
  const accessControlField = () => {
94
- return (0, _createModelField.createModelField)({
93
+ return (0, _apiHeadlessCms.createModelField)({
95
94
  label: "Access Control",
96
95
  type: "object",
97
96
  tags: ["$bulk-edit"],
@@ -101,7 +100,7 @@ const accessControlField = () => {
101
100
  });
102
101
  };
103
102
  const tagsField = () => {
104
- return (0, _createModelField.createModelField)({
103
+ return (0, _apiHeadlessCms.createModelField)({
105
104
  label: "Tags",
106
105
  type: "text",
107
106
  tags: ["$bulk-edit"],
@@ -110,7 +109,7 @@ const tagsField = () => {
110
109
  });
111
110
  };
112
111
  const aliasesField = () => {
113
- return (0, _createModelField.createModelField)({
112
+ return (0, _apiHeadlessCms.createModelField)({
114
113
  label: "Aliases",
115
114
  type: "text",
116
115
  multipleValues: true,
@@ -118,12 +117,12 @@ const aliasesField = () => {
118
117
  });
119
118
  };
120
119
  const locationField = () => {
121
- return (0, _createModelField.createModelField)({
120
+ return (0, _apiHeadlessCms.createModelField)({
122
121
  type: "object",
123
122
  label: "Location",
124
123
  fieldId: "location",
125
124
  settings: {
126
- fields: [(0, _createModelField.createModelField)({
125
+ fields: [(0, _apiHeadlessCms.createModelField)({
127
126
  type: "text",
128
127
  fieldId: "folderId",
129
128
  label: "Folder ID",
@@ -134,20 +133,26 @@ const locationField = () => {
134
133
  }
135
134
  });
136
135
  };
137
- const FILE_MODEL_ID = "fmFile";
138
- exports.FILE_MODEL_ID = FILE_MODEL_ID;
139
- const createFileModelDefinition = params => {
136
+ const FILE_MODEL_ID = exports.FILE_MODEL_ID = "fmFile";
137
+ const createFileModel = params => {
140
138
  const fields = [locationField(), nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()];
141
139
  if (params.withPrivateFiles) {
142
140
  fields.push(accessControlField());
143
141
  }
144
- return (0, _apiHeadlessCms.createPrivateModelDefinition)({
142
+ return (0, _apiHeadlessCms.createPrivateModel)({
145
143
  name: "FmFile",
146
144
  modelId: FILE_MODEL_ID,
147
145
  titleFieldId: "name",
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
+ },
148
153
  fields
149
154
  });
150
155
  };
151
- exports.createFileModelDefinition = createFileModelDefinition;
156
+ exports.createFileModel = createFileModel;
152
157
 
153
158
  //# sourceMappingURL=file.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_apiHeadlessCms","require","_createModelField","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","createFileModelDefinition","params","withPrivateFiles","push","createPrivateModelDefinition","modelId","titleFieldId"],"sources":["file.model.ts"],"sourcesContent":["import { createPrivateModelDefinition } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"./createModelField\";\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 createFileModelDefinition = (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 createPrivateModelDefinition({\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n fields\n });\n};\n"],"mappings":"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"}
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,7 +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";
9
8
 
10
9
  //# sourceMappingURL=contants.js.map
package/contants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ROOT_FOLDER","exports"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA"}
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;