@webiny/api-file-manager 0.0.0-unstable.97a151f74d → 0.0.0-unstable.98511f29f1

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 (183) hide show
  1. package/FileManagerContextSetup.d.ts +13 -0
  2. package/FileManagerContextSetup.js +113 -0
  3. package/FileManagerContextSetup.js.map +1 -0
  4. package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
  5. package/cmsFileStorage/CmsFilesStorage.js +173 -0
  6. package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
  7. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
  8. package/cmsFileStorage/ListFilesWhereProcessor.js +35 -0
  9. package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
  10. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
  11. package/cmsFileStorage/ListTagsWhereProcessor.js +35 -0
  12. package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
  13. package/cmsFileStorage/createFileManagerPlugins.d.ts +5 -0
  14. package/cmsFileStorage/createFileManagerPlugins.js +34 -0
  15. package/cmsFileStorage/createFileManagerPlugins.js.map +1 -0
  16. package/cmsFileStorage/createModelField.d.ts +5 -0
  17. package/cmsFileStorage/createModelField.js +37 -0
  18. package/cmsFileStorage/createModelField.js.map +1 -0
  19. package/cmsFileStorage/file.model.d.ts +4 -0
  20. package/cmsFileStorage/file.model.js +124 -0
  21. package/cmsFileStorage/file.model.js.map +1 -0
  22. package/cmsFileStorage/isInstallationPending.d.ts +4 -0
  23. package/cmsFileStorage/isInstallationPending.js +21 -0
  24. package/cmsFileStorage/isInstallationPending.js.map +1 -0
  25. package/contants.d.ts +1 -0
  26. package/contants.js +8 -0
  27. package/contants.js.map +1 -0
  28. package/createFileManager/files.crud.d.ts +3 -0
  29. package/createFileManager/files.crud.js +300 -0
  30. package/createFileManager/files.crud.js.map +1 -0
  31. package/createFileManager/filevalidation.disabled.d.ts +0 -0
  32. package/createFileManager/filevalidation.disabled.js +55 -0
  33. package/createFileManager/filevalidation.disabled.js.map +1 -0
  34. package/createFileManager/index.d.ts +15 -0
  35. package/createFileManager/index.js +20 -0
  36. package/createFileManager/index.js.map +1 -0
  37. package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
  38. package/createFileManager/permissions/FilesPermissions.js +9 -0
  39. package/createFileManager/permissions/FilesPermissions.js.map +1 -0
  40. package/createFileManager/settings.crud.d.ts +3 -0
  41. package/{plugins/crud → createFileManager}/settings.crud.js +27 -52
  42. package/createFileManager/settings.crud.js.map +1 -0
  43. package/createFileManager/system.crud.d.ts +3 -0
  44. package/createFileManager/system.crud.js +86 -0
  45. package/createFileManager/system.crud.js.map +1 -0
  46. package/graphql/baseSchema.d.ts +3 -0
  47. package/graphql/baseSchema.js +117 -0
  48. package/graphql/baseSchema.js.map +1 -0
  49. package/graphql/createFilesTypeDefs.d.ts +7 -0
  50. package/graphql/createFilesTypeDefs.js +162 -0
  51. package/graphql/createFilesTypeDefs.js.map +1 -0
  52. package/graphql/filesSchema.d.ts +4 -0
  53. package/graphql/filesSchema.js +83 -0
  54. package/graphql/filesSchema.js.map +1 -0
  55. package/graphql/index.d.ts +3 -0
  56. package/graphql/index.js +33 -0
  57. package/graphql/index.js.map +1 -0
  58. package/graphql/utils.d.ts +11 -0
  59. package/graphql/utils.js +22 -0
  60. package/graphql/utils.js.map +1 -0
  61. package/handlers/download/byAlias.d.ts +6 -0
  62. package/handlers/download/byAlias.js +89 -0
  63. package/handlers/download/byAlias.js.map +1 -0
  64. package/handlers/download/byExactKey.d.ts +2 -0
  65. package/handlers/download/byExactKey.js +57 -0
  66. package/handlers/download/byExactKey.js.map +1 -0
  67. package/handlers/download/extractFileInformation.d.ts +9 -0
  68. package/handlers/download/extractFileInformation.js +20 -0
  69. package/handlers/download/extractFileInformation.js.map +1 -0
  70. package/handlers/download/getS3Object.d.ts +12 -0
  71. package/handlers/download/getS3Object.js +72 -0
  72. package/handlers/download/getS3Object.js.map +1 -0
  73. package/handlers/download/index.d.ts +2 -3
  74. package/handlers/download/index.js +21 -126
  75. package/handlers/download/index.js.map +1 -1
  76. package/handlers/manage/index.js +0 -16
  77. package/handlers/manage/index.js.map +1 -1
  78. package/handlers/transform/index.js +24 -23
  79. package/handlers/transform/index.js.map +1 -1
  80. package/handlers/transform/legacyUtils.d.ts +17 -0
  81. package/handlers/transform/legacyUtils.js +42 -0
  82. package/handlers/transform/legacyUtils.js.map +1 -0
  83. package/handlers/transform/loaders/imageLoader.d.ts +1 -1
  84. package/handlers/transform/loaders/imageLoader.js +12 -23
  85. package/handlers/transform/loaders/imageLoader.js.map +1 -1
  86. package/handlers/transform/loaders/index.d.ts +1 -1
  87. package/handlers/transform/loaders/index.js +0 -3
  88. package/handlers/transform/loaders/index.js.map +1 -1
  89. package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -13
  90. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +1 -1
  91. package/handlers/transform/managers/imageManager.js +32 -21
  92. package/handlers/transform/managers/imageManager.js.map +1 -1
  93. package/handlers/transform/managers/index.js +0 -3
  94. package/handlers/transform/managers/index.js.map +1 -1
  95. package/handlers/transform/optimizeImage.js +0 -6
  96. package/handlers/transform/optimizeImage.js.map +1 -1
  97. package/handlers/transform/transformImage.d.ts +5 -2
  98. package/handlers/transform/transformImage.js +6 -8
  99. package/handlers/transform/transformImage.js.map +1 -1
  100. package/handlers/transform/utils.d.ts +1 -1
  101. package/handlers/transform/utils.js +9 -19
  102. package/handlers/transform/utils.js.map +1 -1
  103. package/handlers/utils/getEnvironment.js +0 -2
  104. package/handlers/utils/getEnvironment.js.map +1 -1
  105. package/handlers/utils/getObjectParams.js +0 -4
  106. package/handlers/utils/getObjectParams.js.map +1 -1
  107. package/handlers/utils/index.js +0 -3
  108. package/handlers/utils/index.js.map +1 -1
  109. package/index.d.ts +7 -0
  110. package/index.js +52 -0
  111. package/index.js.map +1 -0
  112. package/modelModifier/CmsModelModifier.d.ts +24 -0
  113. package/modelModifier/CmsModelModifier.js +59 -0
  114. package/modelModifier/CmsModelModifier.js.map +1 -0
  115. package/package.json +31 -32
  116. package/plugins/{definitions/FilePhysicalStoragePlugin.d.ts → FilePhysicalStoragePlugin.d.ts} +1 -1
  117. package/plugins/{definitions/FilePhysicalStoragePlugin.js → FilePhysicalStoragePlugin.js} +0 -11
  118. package/plugins/FilePhysicalStoragePlugin.js.map +1 -0
  119. package/plugins/{definitions/FileStorageTransformPlugin.d.ts → FileStorageTransformPlugin.d.ts} +1 -1
  120. package/plugins/{definitions/FileStorageTransformPlugin.js → FileStorageTransformPlugin.js} +1 -12
  121. package/plugins/FileStorageTransformPlugin.js.map +1 -0
  122. package/plugins/index.d.ts +2 -2
  123. package/plugins/index.js +22 -19
  124. package/plugins/index.js.map +1 -1
  125. package/{plugins/storage → storage}/FileStorage.d.ts +8 -5
  126. package/{plugins/storage → storage}/FileStorage.js +34 -50
  127. package/storage/FileStorage.js.map +1 -0
  128. package/types/file.d.ts +37 -0
  129. package/types/file.js +5 -0
  130. package/types/file.js.map +1 -0
  131. package/types/file.lifecycle.d.ts +44 -0
  132. package/types/file.lifecycle.js +5 -0
  133. package/types/file.lifecycle.js.map +1 -0
  134. package/types.d.ts +62 -73
  135. package/types.js +22 -0
  136. package/types.js.map +1 -1
  137. package/plugins/crud/files/validation.d.ts +0 -3
  138. package/plugins/crud/files/validation.js +0 -41
  139. package/plugins/crud/files/validation.js.map +0 -1
  140. package/plugins/crud/files.crud.d.ts +0 -4
  141. package/plugins/crud/files.crud.js +0 -431
  142. package/plugins/crud/files.crud.js.map +0 -1
  143. package/plugins/crud/settings.crud.d.ts +0 -5
  144. package/plugins/crud/settings.crud.js.map +0 -1
  145. package/plugins/crud/system.crud.d.ts +0 -4
  146. package/plugins/crud/system.crud.js +0 -153
  147. package/plugins/crud/system.crud.js.map +0 -1
  148. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  149. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  150. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  151. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  152. package/plugins/crud/utils/createFileModel.js +0 -77
  153. package/plugins/crud/utils/createFileModel.js.map +0 -1
  154. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  155. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  156. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  157. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  158. package/plugins/definitions/FilePlugin.d.ts +0 -136
  159. package/plugins/definitions/FilePlugin.js +0 -70
  160. package/plugins/definitions/FilePlugin.js.map +0 -1
  161. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  162. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  163. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  164. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  165. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  166. package/plugins/definitions/InstallationPlugin.js +0 -42
  167. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  168. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  169. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  170. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  171. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  172. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  173. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  174. package/plugins/graphql.d.ts +0 -4
  175. package/plugins/graphql.js +0 -290
  176. package/plugins/graphql.js.map +0 -1
  177. package/plugins/storage/FileStorage.js.map +0 -1
  178. package/plugins/storage/index.d.ts +0 -4
  179. package/plugins/storage/index.js +0 -26
  180. package/plugins/storage/index.js.map +0 -1
  181. package/utils.d.ts +0 -4
  182. package/utils.js +0 -16
  183. package/utils.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import { AppPermissions } from "@webiny/api-security/utils/AppPermissions";
2
+ import { FilePermission } from "../../types";
3
+ export declare class FilesPermissions extends AppPermissions<FilePermission> {
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FilesPermissions = void 0;
7
+ var _AppPermissions = require("@webiny/api-security/utils/AppPermissions");
8
+ class FilesPermissions extends _AppPermissions.AppPermissions {}
9
+ exports.FilesPermissions = FilesPermissions;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_AppPermissions","require","FilesPermissions","AppPermissions","exports"],"sources":["FilesPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport { FilePermission } from \"~/types\";\n\nexport class FilesPermissions extends AppPermissions<FilePermission> {}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,SAASC,8BAAc,CAAiB;AAAEC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,3 @@
1
+ import { SettingsCRUD } from "../types";
2
+ import { FileManagerConfig } from "./index";
3
+ export declare const createSettingsCrud: ({ storageOperations, getTenantId }: FileManagerConfig) => SettingsCRUD;
@@ -1,45 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.default = exports.SETTINGS_KEY = void 0;
9
-
7
+ exports.createSettingsCrud = void 0;
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _fields = require("@commodo/fields");
13
-
14
10
  var _validation = require("@webiny/validation");
15
-
16
- var _SettingsStorageOperationsProviderPlugin = require("../definitions/SettingsStorageOperationsProviderPlugin");
17
-
18
- var _error = _interopRequireDefault(require("@webiny/error"));
19
-
20
- var _api = require("@webiny/api");
21
-
22
11
  /**
23
12
  * Package @commodo/fields does not have types.
24
13
  */
25
14
  // @ts-ignore
26
- // TODO @ts-refactor verify that this is not used and remove it
27
- const SETTINGS_KEY = "file-manager";
28
- exports.SETTINGS_KEY = SETTINGS_KEY;
15
+
29
16
  const CreateDataModel = (0, _fields.withFields)({
30
17
  uploadMinFileSize: (0, _fields.number)({
31
18
  value: 0,
32
19
  validation: _validation.validation.create("gte:0")
33
20
  }),
34
21
  uploadMaxFileSize: (0, _fields.number)({
35
- value: 26214401
22
+ value: 10737418240
36
23
  }),
37
24
  srcPrefix: (0, _fields.onSet)(value => {
38
25
  // Make sure srcPrefix always ends with forward slash.
39
26
  if (typeof value === "string") {
40
27
  return value.endsWith("/") ? value : value + "/";
41
28
  }
42
-
43
29
  return value;
44
30
  })((0, _fields.string)({
45
31
  value: "/files/"
@@ -55,62 +41,51 @@ const UpdateDataModel = (0, _fields.withFields)({
55
41
  if (typeof value === "string") {
56
42
  return value.endsWith("/") ? value : value + "/";
57
43
  }
58
-
59
44
  return value;
60
45
  })((0, _fields.string)())
61
46
  })();
62
- const settingsCrudContextPlugin = new _api.ContextPlugin(async context => {
63
- const pluginType = _SettingsStorageOperationsProviderPlugin.SettingsStorageOperationsProviderPlugin.type;
64
- const providerPlugin = context.plugins.byType(pluginType).find(() => true);
65
-
66
- if (!providerPlugin) {
67
- throw new _error.default(`Missing "${pluginType}" plugin.`, "PLUGIN_NOT_FOUND", {
68
- type: pluginType
69
- });
70
- }
71
-
72
- const storageOperations = await providerPlugin.provide({
73
- context
74
- });
75
-
76
- if (!context.fileManager) {
77
- context.fileManager = {};
78
- }
79
-
80
- context.fileManager.settings = {
47
+ const createSettingsCrud = ({
48
+ storageOperations,
49
+ getTenantId
50
+ }) => {
51
+ return {
81
52
  async getSettings() {
82
- return storageOperations.get();
53
+ return storageOperations.settings.get({
54
+ tenant: getTenantId()
55
+ });
83
56
  },
84
-
85
57
  async createSettings(data) {
86
58
  const settings = new CreateDataModel().populate(data);
87
59
  await settings.validate();
88
60
  const settingsData = await settings.toJSON();
89
- return storageOperations.create({
90
- data: settingsData
61
+ return storageOperations.settings.create({
62
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settingsData), {}, {
63
+ tenant: getTenantId()
64
+ })
91
65
  });
92
66
  },
93
-
94
67
  async updateSettings(data) {
95
68
  const updatedValue = new UpdateDataModel().populate(data);
96
69
  await updatedValue.validate();
97
- const existingSettings = await storageOperations.get();
70
+ const existingSettings = await storageOperations.settings.get({
71
+ tenant: getTenantId()
72
+ });
98
73
  const updatedSettings = await updatedValue.toJSON({
99
74
  onlyDirty: true
100
75
  });
101
- return storageOperations.update({
76
+ return storageOperations.settings.update({
102
77
  original: existingSettings,
103
- data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingSettings), updatedSettings)
78
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingSettings), updatedSettings), {}, {
79
+ tenant: getTenantId()
80
+ })
104
81
  });
105
82
  },
106
-
107
83
  async deleteSettings() {
108
- await storageOperations.delete();
84
+ await storageOperations.settings.delete({
85
+ tenant: getTenantId()
86
+ });
109
87
  return true;
110
88
  }
111
-
112
89
  };
113
- });
114
- settingsCrudContextPlugin.name = "FileMangerSettingsCrud";
115
- var _default = settingsCrudContextPlugin;
116
- exports.default = _default;
90
+ };
91
+ exports.createSettingsCrud = createSettingsCrud;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fields","require","_validation","CreateDataModel","withFields","uploadMinFileSize","number","value","validation","create","uploadMaxFileSize","srcPrefix","onSet","endsWith","string","UpdateDataModel","createSettingsCrud","storageOperations","getTenantId","getSettings","settings","get","tenant","createSettings","data","populate","validate","settingsData","toJSON","_objectSpread2","default","updateSettings","updatedValue","existingSettings","updatedSettings","onlyDirty","update","original","deleteSettings","delete","exports"],"sources":["settings.crud.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\nimport { validation } from \"@webiny/validation\";\nimport { FileManagerSettings, SettingsCRUD } from \"~/types\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\n\nconst CreateDataModel = withFields({\n uploadMinFileSize: number({ value: 0, validation: validation.create(\"gte:0\") }),\n uploadMaxFileSize: number({ value: 10737418240 }),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string({ value: \"/files/\" }))\n})();\n\nconst UpdateDataModel = withFields({\n uploadMinFileSize: number({\n validation: validation.create(\"gte:0\")\n }),\n uploadMaxFileSize: number(),\n srcPrefix: onSet((value?: string) => {\n // Make sure srcPrefix always ends with forward slash.\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })(string())\n})();\n\nexport const createSettingsCrud = ({\n storageOperations,\n getTenantId\n}: FileManagerConfig): SettingsCRUD => {\n return {\n async getSettings() {\n return storageOperations.settings.get({ tenant: getTenantId() });\n },\n async createSettings(data) {\n const settings = new CreateDataModel().populate(data);\n await settings.validate();\n\n const settingsData: FileManagerSettings = await settings.toJSON();\n\n return storageOperations.settings.create({\n data: { ...settingsData, tenant: getTenantId() }\n });\n },\n async updateSettings(data) {\n const updatedValue = new UpdateDataModel().populate(data);\n await updatedValue.validate();\n\n const existingSettings = (await storageOperations.settings.get({\n tenant: getTenantId()\n })) as FileManagerSettings;\n\n const updatedSettings: Partial<FileManagerSettings> = await updatedValue.toJSON({\n onlyDirty: true\n });\n\n return storageOperations.settings.update({\n original: existingSettings,\n data: {\n ...existingSettings,\n ...updatedSettings,\n tenant: getTenantId()\n }\n });\n },\n async deleteSettings() {\n await storageOperations.settings.delete({ tenant: getTenantId() });\n\n return true;\n }\n };\n};\n"],"mappings":";;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AALA;AACA;AACA;AACA;;AAMA,MAAME,eAAe,GAAG,IAAAC,kBAAU,EAAC;EAC/BC,iBAAiB,EAAE,IAAAC,cAAM,EAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,UAAU,EAAEA,sBAAU,CAACC,MAAM,CAAC,OAAO;EAAE,CAAC,CAAC;EAC/EC,iBAAiB,EAAE,IAAAJ,cAAM,EAAC;IAAEC,KAAK,EAAE;EAAY,CAAC,CAAC;EACjDI,SAAS,EAAE,IAAAC,aAAK,EAAEL,KAAc,IAAK;IACjC;IACA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC3B,OAAOA,KAAK,CAACM,QAAQ,CAAC,GAAG,CAAC,GAAGN,KAAK,GAAGA,KAAK,GAAG,GAAG;IACpD;IACA,OAAOA,KAAK;EAChB,CAAC,CAAC,CAAC,IAAAO,cAAM,EAAC;IAAEP,KAAK,EAAE;EAAU,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC;AAEJ,MAAMQ,eAAe,GAAG,IAAAX,kBAAU,EAAC;EAC/BC,iBAAiB,EAAE,IAAAC,cAAM,EAAC;IACtBE,UAAU,EAAEA,sBAAU,CAACC,MAAM,CAAC,OAAO;EACzC,CAAC,CAAC;EACFC,iBAAiB,EAAE,IAAAJ,cAAM,EAAC,CAAC;EAC3BK,SAAS,EAAE,IAAAC,aAAK,EAAEL,KAAc,IAAK;IACjC;IACA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC3B,OAAOA,KAAK,CAACM,QAAQ,CAAC,GAAG,CAAC,GAAGN,KAAK,GAAGA,KAAK,GAAG,GAAG;IACpD;IACA,OAAOA,KAAK;EAChB,CAAC,CAAC,CAAC,IAAAO,cAAM,EAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC;AAEG,MAAME,kBAAkB,GAAGA,CAAC;EAC/BC,iBAAiB;EACjBC;AACe,CAAC,KAAmB;EACnC,OAAO;IACH,MAAMC,WAAWA,CAAA,EAAG;MAChB,OAAOF,iBAAiB,CAACG,QAAQ,CAACC,GAAG,CAAC;QAAEC,MAAM,EAAEJ,WAAW,CAAC;MAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAMK,cAAcA,CAACC,IAAI,EAAE;MACvB,MAAMJ,QAAQ,GAAG,IAAIjB,eAAe,CAAC,CAAC,CAACsB,QAAQ,CAACD,IAAI,CAAC;MACrD,MAAMJ,QAAQ,CAACM,QAAQ,CAAC,CAAC;MAEzB,MAAMC,YAAiC,GAAG,MAAMP,QAAQ,CAACQ,MAAM,CAAC,CAAC;MAEjE,OAAOX,iBAAiB,CAACG,QAAQ,CAACX,MAAM,CAAC;QACrCe,IAAI,MAAAK,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAOH,YAAY;UAAEL,MAAM,EAAEJ,WAAW,CAAC;QAAC;MAClD,CAAC,CAAC;IACN,CAAC;IACD,MAAMa,cAAcA,CAACP,IAAI,EAAE;MACvB,MAAMQ,YAAY,GAAG,IAAIjB,eAAe,CAAC,CAAC,CAACU,QAAQ,CAACD,IAAI,CAAC;MACzD,MAAMQ,YAAY,CAACN,QAAQ,CAAC,CAAC;MAE7B,MAAMO,gBAAgB,GAAI,MAAMhB,iBAAiB,CAACG,QAAQ,CAACC,GAAG,CAAC;QAC3DC,MAAM,EAAEJ,WAAW,CAAC;MACxB,CAAC,CAAyB;MAE1B,MAAMgB,eAA6C,GAAG,MAAMF,YAAY,CAACJ,MAAM,CAAC;QAC5EO,SAAS,EAAE;MACf,CAAC,CAAC;MAEF,OAAOlB,iBAAiB,CAACG,QAAQ,CAACgB,MAAM,CAAC;QACrCC,QAAQ,EAAEJ,gBAAgB;QAC1BT,IAAI,MAAAK,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACGG,gBAAgB,GAChBC,eAAe;UAClBZ,MAAM,EAAEJ,WAAW,CAAC;QAAC;MAE7B,CAAC,CAAC;IACN,CAAC;IACD,MAAMoB,cAAcA,CAAA,EAAG;MACnB,MAAMrB,iBAAiB,CAACG,QAAQ,CAACmB,MAAM,CAAC;QAAEjB,MAAM,EAAEJ,WAAW,CAAC;MAAE,CAAC,CAAC;MAElE,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAACsB,OAAA,CAAAxB,kBAAA,GAAAA,kBAAA"}
@@ -0,0 +1,3 @@
1
+ import { SystemCRUD } from "../types";
2
+ import { FileManagerConfig } from "./index";
3
+ export declare const createSystemCrud: ({ storageOperations, getTenantId, getIdentity, WEBINY_VERSION }: FileManagerConfig) => SystemCRUD;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createSystemCrud = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _pubsub = require("@webiny/pubsub");
10
+ var _apiSecurity = require("@webiny/api-security");
11
+ var _error = _interopRequireDefault(require("@webiny/error"));
12
+ const createSystemCrud = ({
13
+ storageOperations,
14
+ getTenantId,
15
+ getIdentity,
16
+ WEBINY_VERSION
17
+ }) => {
18
+ return {
19
+ onSystemBeforeInstall: (0, _pubsub.createTopic)("fileManager.onSystemBeforeInstall"),
20
+ onSystemAfterInstall: (0, _pubsub.createTopic)("fileManager.onSystemAfterInstall"),
21
+ async getVersion() {
22
+ const system = await storageOperations.system.get({
23
+ tenant: getTenantId()
24
+ });
25
+ return system ? system.version : null;
26
+ },
27
+ async setVersion(version) {
28
+ const system = await storageOperations.system.get({
29
+ tenant: getTenantId()
30
+ });
31
+ if (system) {
32
+ const data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), {}, {
33
+ tenant: system.tenant || getTenantId(),
34
+ version
35
+ });
36
+ try {
37
+ await storageOperations.system.update({
38
+ original: system,
39
+ data
40
+ });
41
+ return;
42
+ } catch (ex) {
43
+ throw new _error.default("Could not update the system data.", "SYSTEM_UPDATE_ERROR", {
44
+ data
45
+ });
46
+ }
47
+ }
48
+ const data = {
49
+ version,
50
+ tenant: getTenantId()
51
+ };
52
+ try {
53
+ await storageOperations.system.create({
54
+ data
55
+ });
56
+ return;
57
+ } catch (ex) {
58
+ throw new _error.default("Could not create the system data.", "SYSTEM_CREATE_ERROR", {
59
+ data
60
+ });
61
+ }
62
+ },
63
+ async install({
64
+ srcPrefix
65
+ }) {
66
+ const identity = getIdentity();
67
+ if (!identity) {
68
+ throw new _apiSecurity.NotAuthorizedError();
69
+ }
70
+ const version = await this.getVersion();
71
+ if (version) {
72
+ throw new _error.default("File Manager is already installed.", "FILES_INSTALL_ABORTED");
73
+ }
74
+ const data = {};
75
+ if (srcPrefix) {
76
+ data.srcPrefix = srcPrefix;
77
+ }
78
+ await this.onSystemBeforeInstall.publish({});
79
+ await this.createSettings(data);
80
+ await this.setVersion(WEBINY_VERSION);
81
+ await this.onSystemAfterInstall.publish({});
82
+ return true;
83
+ }
84
+ };
85
+ };
86
+ exports.createSystemCrud = createSystemCrud;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_pubsub","require","_apiSecurity","_error","_interopRequireDefault","createSystemCrud","storageOperations","getTenantId","getIdentity","WEBINY_VERSION","onSystemBeforeInstall","createTopic","onSystemAfterInstall","getVersion","system","get","tenant","version","setVersion","data","_objectSpread2","default","update","original","ex","WebinyError","create","install","srcPrefix","identity","NotAuthorizedError","publish","createSettings","exports"],"sources":["system.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n FileManagerContextObject,\n FileManagerSettings,\n FileManagerSystem,\n SystemCRUD\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\n\nexport const createSystemCrud = ({\n storageOperations,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n}: FileManagerConfig): SystemCRUD => {\n return {\n onSystemBeforeInstall: createTopic(\"fileManager.onSystemBeforeInstall\"),\n onSystemAfterInstall: createTopic(\"fileManager.onSystemAfterInstall\"),\n async getVersion() {\n const system = await storageOperations.system.get({ tenant: getTenantId() });\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.system.get({ tenant: getTenantId() });\n\n if (system) {\n const data: FileManagerSystem = {\n ...system,\n tenant: system.tenant || getTenantId(),\n version\n };\n try {\n await storageOperations.system.update({\n original: system,\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\n \"Could not update the system data.\",\n \"SYSTEM_UPDATE_ERROR\",\n {\n data\n }\n );\n }\n }\n\n const data: FileManagerSystem = {\n version,\n tenant: getTenantId()\n };\n try {\n await storageOperations.system.create({\n data\n });\n return;\n } catch (ex) {\n throw new WebinyError(\"Could not create the system data.\", \"SYSTEM_CREATE_ERROR\", {\n data\n });\n }\n },\n async install(this: FileManagerContextObject, { srcPrefix }) {\n const identity = getIdentity();\n\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const version = await this.getVersion();\n\n if (version) {\n throw new WebinyError(\n \"File Manager is already installed.\",\n \"FILES_INSTALL_ABORTED\"\n );\n }\n\n const data: Partial<FileManagerSettings> = {};\n\n if (srcPrefix) {\n data.srcPrefix = srcPrefix;\n }\n\n await this.onSystemBeforeInstall.publish({});\n\n await this.createSettings(data);\n await this.setVersion(WEBINY_VERSION);\n\n await this.onSystemAfterInstall.publish({});\n\n return true;\n }\n };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAGO,MAAMI,gBAAgB,GAAGA,CAAC;EAC7BC,iBAAiB;EACjBC,WAAW;EACXC,WAAW;EACXC;AACe,CAAC,KAAiB;EACjC,OAAO;IACHC,qBAAqB,EAAE,IAAAC,mBAAW,EAAC,mCAAmC,CAAC;IACvEC,oBAAoB,EAAE,IAAAD,mBAAW,EAAC,kCAAkC,CAAC;IACrE,MAAME,UAAUA,CAAA,EAAG;MACf,MAAMC,MAAM,GAAG,MAAMR,iBAAiB,CAACQ,MAAM,CAACC,GAAG,CAAC;QAAEC,MAAM,EAAET,WAAW,CAAC;MAAE,CAAC,CAAC;MAE5E,OAAOO,MAAM,GAAGA,MAAM,CAACG,OAAO,GAAG,IAAI;IACzC,CAAC;IACD,MAAMC,UAAUA,CAACD,OAAe,EAAE;MAC9B,MAAMH,MAAM,GAAG,MAAMR,iBAAiB,CAACQ,MAAM,CAACC,GAAG,CAAC;QAAEC,MAAM,EAAET,WAAW,CAAC;MAAE,CAAC,CAAC;MAE5E,IAAIO,MAAM,EAAE;QACR,MAAMK,IAAuB,OAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACtBP,MAAM;UACTE,MAAM,EAAEF,MAAM,CAACE,MAAM,IAAIT,WAAW,CAAC,CAAC;UACtCU;QAAO,EACV;QACD,IAAI;UACA,MAAMX,iBAAiB,CAACQ,MAAM,CAACQ,MAAM,CAAC;YAClCC,QAAQ,EAAET,MAAM;YAChBK;UACJ,CAAC,CAAC;UACF;QACJ,CAAC,CAAC,OAAOK,EAAE,EAAE;UACT,MAAM,IAAIC,cAAW,CACjB,mCAAmC,EACnC,qBAAqB,EACrB;YACIN;UACJ,CACJ,CAAC;QACL;MACJ;MAEA,MAAMA,IAAuB,GAAG;QAC5BF,OAAO;QACPD,MAAM,EAAET,WAAW,CAAC;MACxB,CAAC;MACD,IAAI;QACA,MAAMD,iBAAiB,CAACQ,MAAM,CAACY,MAAM,CAAC;UAClCP;QACJ,CAAC,CAAC;QACF;MACJ,CAAC,CAAC,OAAOK,EAAE,EAAE;QACT,MAAM,IAAIC,cAAW,CAAC,mCAAmC,EAAE,qBAAqB,EAAE;UAC9EN;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;IACD,MAAMQ,OAAOA,CAAiC;MAAEC;IAAU,CAAC,EAAE;MACzD,MAAMC,QAAQ,GAAGrB,WAAW,CAAC,CAAC;MAE9B,IAAI,CAACqB,QAAQ,EAAE;QACX,MAAM,IAAIC,+BAAkB,CAAC,CAAC;MAClC;MAEA,MAAMb,OAAO,GAAG,MAAM,IAAI,CAACJ,UAAU,CAAC,CAAC;MAEvC,IAAII,OAAO,EAAE;QACT,MAAM,IAAIQ,cAAW,CACjB,oCAAoC,EACpC,uBACJ,CAAC;MACL;MAEA,MAAMN,IAAkC,GAAG,CAAC,CAAC;MAE7C,IAAIS,SAAS,EAAE;QACXT,IAAI,CAACS,SAAS,GAAGA,SAAS;MAC9B;MAEA,MAAM,IAAI,CAAClB,qBAAqB,CAACqB,OAAO,CAAC,CAAC,CAAC,CAAC;MAE5C,MAAM,IAAI,CAACC,cAAc,CAACb,IAAI,CAAC;MAC/B,MAAM,IAAI,CAACD,UAAU,CAACT,cAAc,CAAC;MAErC,MAAM,IAAI,CAACG,oBAAoB,CAACmB,OAAO,CAAC,CAAC,CAAC,CAAC;MAE3C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,3 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { FileManagerContext } from "../types";
3
+ export declare const createBaseSchema: () => GraphQLSchemaPlugin<FileManagerContext>;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createBaseSchema = void 0;
7
+ var _handlerGraphql = require("@webiny/handler-graphql");
8
+ var _utils = require("./utils");
9
+ const createBaseSchema = () => {
10
+ const fileManagerGraphQL = new _handlerGraphql.GraphQLSchemaPlugin({
11
+ typeDefs: /* GraphQL */`
12
+ type FmError {
13
+ code: String
14
+ message: String
15
+ data: JSON
16
+ stack: String
17
+ }
18
+
19
+ type FmCreatedBy {
20
+ id: ID
21
+ displayName: String
22
+ }
23
+
24
+ type FmListMeta {
25
+ cursor: String
26
+ totalCount: Int
27
+ hasMoreItems: Boolean
28
+ }
29
+
30
+ type FmBooleanResponse {
31
+ data: Boolean
32
+ error: FmError
33
+ }
34
+
35
+ type FmSettings {
36
+ uploadMinFileSize: Number
37
+ uploadMaxFileSize: Number
38
+ srcPrefix: String
39
+ }
40
+
41
+ input FmSettingsInput {
42
+ uploadMinFileSize: Number
43
+ uploadMaxFileSize: Number
44
+ srcPrefix: String
45
+ }
46
+
47
+ type FmSettingsResponse {
48
+ data: FmSettings
49
+ error: FmError
50
+ }
51
+
52
+ type FmQuery {
53
+ version: String
54
+ getSettings: FmSettingsResponse
55
+ }
56
+
57
+ type FmDeleteResponse {
58
+ data: Boolean
59
+ error: FmError
60
+ }
61
+
62
+ type FmMutation {
63
+ install(srcPrefix: String): FmBooleanResponse
64
+ updateSettings(data: FmSettingsInput): FmSettingsResponse
65
+ }
66
+
67
+ input FmInstallInput {
68
+ srcPrefix: String!
69
+ }
70
+
71
+ extend type Query {
72
+ fileManager: FmQuery
73
+ }
74
+
75
+ extend type Mutation {
76
+ fileManager: FmMutation
77
+ }
78
+ `,
79
+ resolvers: {
80
+ Query: {
81
+ fileManager: _utils.emptyResolver
82
+ },
83
+ Mutation: {
84
+ fileManager: _utils.emptyResolver
85
+ },
86
+ FmQuery: {
87
+ async version(_, __, context) {
88
+ const {
89
+ i18n,
90
+ tenancy,
91
+ fileManager
92
+ } = context;
93
+ if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {
94
+ return null;
95
+ }
96
+ return await fileManager.getVersion();
97
+ },
98
+ async getSettings(_, __, context) {
99
+ return (0, _utils.resolve)(() => context.fileManager.getSettings());
100
+ }
101
+ },
102
+ FmMutation: {
103
+ async install(_, args, context) {
104
+ return (0, _utils.resolve)(() => context.fileManager.install({
105
+ srcPrefix: args.srcPrefix
106
+ }));
107
+ },
108
+ async updateSettings(_, args, context) {
109
+ return (0, _utils.resolve)(() => context.fileManager.updateSettings(args.data));
110
+ }
111
+ }
112
+ }
113
+ });
114
+ fileManagerGraphQL.name = "fm.graphql.base";
115
+ return fileManagerGraphQL;
116
+ };
117
+ exports.createBaseSchema = createBaseSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handlerGraphql","require","_utils","createBaseSchema","fileManagerGraphQL","GraphQLSchemaPlugin","typeDefs","resolvers","Query","fileManager","emptyResolver","Mutation","FmQuery","version","_","__","context","i18n","tenancy","getCurrentTenant","getContentLocale","getVersion","getSettings","resolve","FmMutation","install","args","srcPrefix","updateSettings","data","name","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { FileManagerContext } from \"~/types\";\nimport { emptyResolver, resolve } from \"./utils\";\n\nexport const createBaseSchema = () => {\n const fileManagerGraphQL = new GraphQLSchemaPlugin<FileManagerContext>({\n typeDefs: /* GraphQL */ `\n type FmError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FmCreatedBy {\n id: ID\n displayName: String\n }\n\n type FmListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FmBooleanResponse {\n data: Boolean\n error: FmError\n }\n\n type FmSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FmSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FmSettingsResponse {\n data: FmSettings\n error: FmError\n }\n\n type FmQuery {\n version: String\n getSettings: FmSettingsResponse\n }\n\n type FmDeleteResponse {\n data: Boolean\n error: FmError\n }\n\n type FmMutation {\n install(srcPrefix: String): FmBooleanResponse\n updateSettings(data: FmSettingsInput): FmSettingsResponse\n }\n\n input FmInstallInput {\n srcPrefix: String!\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n async version(_, __, context) {\n const { i18n, tenancy, fileManager } = context;\n if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {\n return null;\n }\n\n return await fileManager.getVersion();\n },\n async getSettings(_, __, context) {\n return resolve(() => context.fileManager.getSettings());\n }\n },\n FmMutation: {\n async install(_, args: any, context) {\n return resolve(() =>\n context.fileManager.install({ srcPrefix: args.srcPrefix })\n );\n },\n async updateSettings(_, args: any, context) {\n return resolve(() => context.fileManager.updateSettings(args.data));\n }\n }\n }\n });\n fileManagerGraphQL.name = \"fm.graphql.base\";\n\n return fileManagerGraphQL;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAMC,kBAAkB,GAAG,IAAIC,mCAAmB,CAAqB;IACnEC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,KAAK,EAAE;QACHC,WAAW,EAAEC;MACjB,CAAC;MACDC,QAAQ,EAAE;QACNF,WAAW,EAAEC;MACjB,CAAC;MACDE,OAAO,EAAE;QACL,MAAMC,OAAOA,CAACC,CAAC,EAAEC,EAAE,EAAEC,OAAO,EAAE;UAC1B,MAAM;YAAEC,IAAI;YAAEC,OAAO;YAAET;UAAY,CAAC,GAAGO,OAAO;UAC9C,IAAI,CAACE,OAAO,CAACC,gBAAgB,CAAC,CAAC,IAAI,CAACF,IAAI,CAACG,gBAAgB,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI;UACf;UAEA,OAAO,MAAMX,WAAW,CAACY,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,MAAMC,WAAWA,CAACR,CAAC,EAAEC,EAAE,EAAEC,OAAO,EAAE;UAC9B,OAAO,IAAAO,cAAO,EAAC,MAAMP,OAAO,CAACP,WAAW,CAACa,WAAW,CAAC,CAAC,CAAC;QAC3D;MACJ,CAAC;MACDE,UAAU,EAAE;QACR,MAAMC,OAAOA,CAACX,CAAC,EAAEY,IAAS,EAAEV,OAAO,EAAE;UACjC,OAAO,IAAAO,cAAO,EAAC,MACXP,OAAO,CAACP,WAAW,CAACgB,OAAO,CAAC;YAAEE,SAAS,EAAED,IAAI,CAACC;UAAU,CAAC,CAC7D,CAAC;QACL,CAAC;QACD,MAAMC,cAAcA,CAACd,CAAC,EAAEY,IAAS,EAAEV,OAAO,EAAE;UACxC,OAAO,IAAAO,cAAO,EAAC,MAAMP,OAAO,CAACP,WAAW,CAACmB,cAAc,CAACF,IAAI,CAACG,IAAI,CAAC,CAAC;QACvE;MACJ;IACJ;EACJ,CAAC,CAAC;EACFzB,kBAAkB,CAAC0B,IAAI,GAAG,iBAAiB;EAE3C,OAAO1B,kBAAkB;AAC7B,CAAC;AAAC2B,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,7 @@
1
+ import { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ export interface CreateFilesTypeDefsParams {
3
+ model: CmsModel;
4
+ models: CmsModel[];
5
+ plugins: CmsFieldTypePlugins;
6
+ }
7
+ export declare const createFilesTypeDefs: (params: CreateFilesTypeDefsParams) => string;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createFilesTypeDefs = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
10
+ var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
11
+ var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
12
+ var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
13
+ const removeFieldRequiredValidation = field => {
14
+ if (field.validation) {
15
+ field.validation = field.validation.filter(validation => validation.name !== "required");
16
+ }
17
+ if (field.listValidation) {
18
+ field.listValidation = field.listValidation.filter(v => v.name !== "required");
19
+ }
20
+ return field;
21
+ };
22
+ const createUpdateFields = fields => {
23
+ return fields.reduce((collection, field) => {
24
+ collection.push(removeFieldRequiredValidation((0, _objectSpread2.default)({}, field)));
25
+ return collection;
26
+ }, []);
27
+ };
28
+ const createFilesTypeDefs = params => {
29
+ const {
30
+ model,
31
+ models,
32
+ plugins: fieldTypePlugins
33
+ } = params;
34
+ const {
35
+ fields
36
+ } = model;
37
+ const fieldTypes = (0, _renderFields.renderFields)({
38
+ models,
39
+ model,
40
+ fields,
41
+ type: "manage",
42
+ fieldTypePlugins
43
+ });
44
+ const inputCreateFields = (0, _renderInputFields.renderInputFields)({
45
+ models,
46
+ model,
47
+ fields,
48
+ fieldTypePlugins
49
+ });
50
+ const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
51
+ models,
52
+ model,
53
+ fields: createUpdateFields(fields),
54
+ fieldTypePlugins
55
+ });
56
+ const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
57
+ model,
58
+ fields: model.fields,
59
+ type: "manage",
60
+ fieldTypePlugins,
61
+ excludeFields: ["entryId", "status"]
62
+ });
63
+ const excludeFromSorterts = ["tags", "aliases"];
64
+ const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
65
+ model,
66
+ fields: model.fields.filter(field => !excludeFromSorterts.includes(field.fieldId)),
67
+ fieldTypePlugins,
68
+ sorterPlugins: []
69
+ });
70
+ return (/* GraphQL */`
71
+ ${fieldTypes.map(f => f.typeDefs).join("\n")}
72
+
73
+ type FmFile {
74
+ id: ID!
75
+ savedOn: DateTime!
76
+ createdOn: DateTime!
77
+ createdBy: FmCreatedBy!
78
+ src: String
79
+ ${fieldTypes.map(f => f.fields).join("\n")}
80
+ }
81
+
82
+ ${inputCreateFields.map(f => f.typeDefs).join("\n")}
83
+
84
+ input FmFileCreateInput {
85
+ id: ID!
86
+ ${inputCreateFields.map(f => f.fields).join("\n")}
87
+ }
88
+
89
+ input FmFileUpdateInput {
90
+ ${inputUpdateFields.map(f => f.fields).join("\n")}
91
+ }
92
+
93
+ type FmFileResponse {
94
+ data: FmFile
95
+ error: FmError
96
+ }
97
+
98
+ input FmFileListWhereInput {
99
+ ${listFilterFieldsRender}
100
+ AND: [FmFileListWhereInput!]
101
+ OR: [FmFileListWhereInput!]
102
+ }
103
+
104
+ type FmFileListResponse {
105
+ data: [FmFile!]
106
+ error: FmError
107
+ meta: FmListMeta
108
+ }
109
+
110
+ enum FmFileListSorter {
111
+ ${sortEnumRender}
112
+ }
113
+
114
+ input FmTagsListWhereInput {
115
+ createdBy: String
116
+ tags_startsWith: String
117
+ tags_not_startsWith: String
118
+ }
119
+
120
+ type FmTag {
121
+ tag: String!
122
+ count: Number!
123
+ }
124
+
125
+ type FmTagsListResponse {
126
+ data: [FmTag!]
127
+ error: FmError
128
+ }
129
+
130
+ type FmCreateFilesResponse {
131
+ data: [FmFile!]
132
+ error: FmError
133
+ }
134
+
135
+ type FmFileModelResponse {
136
+ data: JSON
137
+ error: FmError
138
+ }
139
+
140
+ extend type FmQuery {
141
+ getFileModel: FmFileModelResponse!
142
+ getFile(id: ID!): FmFileResponse!
143
+ listFiles(
144
+ search: String
145
+ where: FmFileListWhereInput
146
+ limit: Int
147
+ after: String
148
+ sort: [FmFileListSorter!]
149
+ ): FmFileListResponse!
150
+ listTags(where: FmTagsListWhereInput): FmTagsListResponse!
151
+ }
152
+
153
+ extend type FmMutation {
154
+ createFile(data: FmFileCreateInput!): FmFileResponse!
155
+ createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!
156
+ updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!
157
+ deleteFile(id: ID!): FmBooleanResponse!
158
+ }
159
+ `
160
+ );
161
+ };
162
+ exports.createFilesTypeDefs = createFilesTypeDefs;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","_renderListFilterFields","_renderSortEnum","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","_objectSpread2","default","createFilesTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","excludeFields","excludeFromSorterts","sortEnumRender","renderSortEnum","includes","fieldId","sorterPlugins","map","f","typeDefs","join","exports"],"sources":["createFilesTypeDefs.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\n\nexport interface CreateFilesTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFilesTypeDefs = (params: CreateFilesTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\", \"status\"]\n });\n\n const excludeFromSorterts = [\"tags\", \"aliases\"];\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields.filter(field => !excludeFromSorterts.includes(field.fieldId)),\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n type FmFile {\n id: ID!\n savedOn: DateTime!\n createdOn: DateTime!\n createdBy: FmCreatedBy!\n src: String\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input FmFileCreateInput {\n id: ID!\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input FmFileUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type FmFileResponse {\n data: FmFile\n error: FmError\n }\n\n input FmFileListWhereInput {\n ${listFilterFieldsRender}\n AND: [FmFileListWhereInput!]\n OR: [FmFileListWhereInput!]\n }\n\n type FmFileListResponse {\n data: [FmFile!]\n error: FmError\n meta: FmListMeta\n }\n\n enum FmFileListSorter {\n ${sortEnumRender}\n }\n\n input FmTagsListWhereInput {\n createdBy: String\n tags_startsWith: String\n tags_not_startsWith: String\n }\n\n type FmTag {\n tag: String!\n count: Number!\n }\n\n type FmTagsListResponse {\n data: [FmTag!]\n error: FmError\n }\n\n type FmCreateFilesResponse {\n data: [FmFile!]\n error: FmError\n }\n \n type FmFileModelResponse {\n data: JSON\n error: FmError\n }\n\n extend type FmQuery {\n getFileModel: FmFileModelResponse!\n getFile(id: ID!): FmFileResponse!\n listFiles(\n search: String\n where: FmFileListWhereInput\n limit: Int\n after: String\n sort: [FmFileListSorter!]\n ): FmFileListResponse!\n listTags(where: FmTagsListWhereInput): FmTagsListResponse!\n }\n\n extend type FmMutation {\n createFile(data: FmFileCreateInput!): FmFileResponse!\n createFiles(data: [FmFileCreateInput!]!): FmCreateFilesResponse!\n updateFile(id: ID!, data: FmFileUpdateInput!): FmFileResponse!\n deleteFile(id: ID!): FmBooleanResponse!\n }\n `;\n};\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { FileManagerContext } from "../types";
3
+ import { CreateFilesTypeDefsParams } from "./createFilesTypeDefs";
4
+ export declare const createFilesSchema: (params: CreateFilesTypeDefsParams) => GraphQLSchemaPlugin<FileManagerContext>;