@webiny/api-file-manager 0.0.0-mt-3 → 0.0.0-unstable.1e66d121db

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 (100) hide show
  1. package/handlers/download/index.d.ts +3 -3
  2. package/handlers/download/index.js +67 -60
  3. package/handlers/download/index.js.map +1 -0
  4. package/handlers/manage/index.d.ts +5 -3
  5. package/handlers/manage/index.js +48 -47
  6. package/handlers/manage/index.js.map +1 -0
  7. package/handlers/transform/index.d.ts +2 -3
  8. package/handlers/transform/index.js +65 -70
  9. package/handlers/transform/index.js.map +1 -0
  10. package/handlers/transform/loaders/imageLoader.d.ts +26 -9
  11. package/handlers/transform/loaders/imageLoader.js +3 -4
  12. package/handlers/transform/loaders/imageLoader.js.map +1 -0
  13. package/handlers/transform/loaders/index.d.ts +4 -9
  14. package/handlers/transform/loaders/index.js +1 -1
  15. package/handlers/transform/loaders/index.js.map +1 -0
  16. package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +7 -3
  17. package/handlers/transform/loaders/sanitizeImageTransformations.js +27 -20
  18. package/handlers/transform/loaders/sanitizeImageTransformations.js.map +1 -0
  19. package/handlers/transform/managers/imageManager.d.ts +12 -6
  20. package/handlers/transform/managers/imageManager.js +25 -17
  21. package/handlers/transform/managers/imageManager.js.map +1 -0
  22. package/handlers/transform/managers/index.d.ts +2 -6
  23. package/handlers/transform/managers/index.js +1 -1
  24. package/handlers/transform/managers/index.js.map +1 -0
  25. package/handlers/transform/optimizeImage.d.ts +2 -1
  26. package/handlers/transform/optimizeImage.js +4 -1
  27. package/handlers/transform/optimizeImage.js.map +1 -0
  28. package/handlers/transform/transformImage.d.ts +5 -4
  29. package/handlers/transform/transformImage.js +4 -4
  30. package/handlers/transform/transformImage.js.map +1 -0
  31. package/handlers/transform/utils.d.ts +2 -2
  32. package/handlers/transform/utils.js +1 -1
  33. package/handlers/transform/utils.js.map +1 -0
  34. package/handlers/types.d.ts +8 -0
  35. package/handlers/types.js +5 -0
  36. package/handlers/types.js.map +1 -0
  37. package/handlers/utils/getEnvironment.js.map +1 -0
  38. package/handlers/utils/getObjectParams.d.ts +3 -4
  39. package/handlers/utils/getObjectParams.js +1 -3
  40. package/handlers/utils/getObjectParams.js.map +1 -0
  41. package/handlers/utils/index.d.ts +0 -1
  42. package/handlers/utils/index.js +1 -9
  43. package/handlers/utils/index.js.map +1 -0
  44. package/package.json +28 -27
  45. package/plugins/crud/files/validation.js +1 -1
  46. package/plugins/crud/files/validation.js.map +1 -0
  47. package/plugins/crud/files.crud.d.ts +1 -1
  48. package/plugins/crud/files.crud.js +48 -44
  49. package/plugins/crud/files.crud.js.map +1 -0
  50. package/plugins/crud/settings.crud.d.ts +1 -1
  51. package/plugins/crud/settings.crud.js +10 -9
  52. package/plugins/crud/settings.crud.js.map +1 -0
  53. package/plugins/crud/system.crud.d.ts +1 -1
  54. package/plugins/crud/system.crud.js +18 -10
  55. package/plugins/crud/system.crud.js.map +1 -0
  56. package/plugins/crud/utils/checkBasePermissions.js +1 -1
  57. package/plugins/crud/utils/checkBasePermissions.js.map +1 -0
  58. package/plugins/crud/utils/createFileModel.d.ts +3 -0
  59. package/plugins/crud/utils/createFileModel.js +13 -0
  60. package/plugins/crud/utils/createFileModel.js.map +1 -0
  61. package/plugins/crud/utils/lifecycleEvents.d.ts +2 -2
  62. package/plugins/crud/utils/lifecycleEvents.js +6 -1
  63. package/plugins/crud/utils/lifecycleEvents.js.map +1 -0
  64. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +10 -11
  65. package/plugins/definitions/FilePhysicalStoragePlugin.js +1 -1
  66. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +1 -0
  67. package/plugins/definitions/FilePlugin.d.ts +6 -3
  68. package/plugins/definitions/FilePlugin.js +9 -3
  69. package/plugins/definitions/FilePlugin.js.map +1 -0
  70. package/plugins/definitions/FileStorageTransformPlugin.d.ts +9 -9
  71. package/plugins/definitions/FileStorageTransformPlugin.js +1 -1
  72. package/plugins/definitions/FileStorageTransformPlugin.js.map +1 -0
  73. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +4 -4
  74. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +1 -1
  75. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +1 -0
  76. package/plugins/definitions/InstallationPlugin.d.ts +9 -9
  77. package/plugins/definitions/InstallationPlugin.js +5 -3
  78. package/plugins/definitions/InstallationPlugin.js.map +1 -0
  79. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +4 -4
  80. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +1 -1
  81. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +1 -0
  82. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +4 -4
  83. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +1 -1
  84. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +1 -0
  85. package/plugins/graphql.js +20 -4
  86. package/plugins/graphql.js.map +1 -0
  87. package/plugins/index.d.ts +1 -1
  88. package/plugins/index.js +1 -1
  89. package/plugins/index.js.map +1 -0
  90. package/plugins/storage/FileStorage.d.ts +23 -24
  91. package/plugins/storage/FileStorage.js +28 -20
  92. package/plugins/storage/FileStorage.js.map +1 -0
  93. package/plugins/storage/index.d.ts +1 -1
  94. package/plugins/storage/index.js +6 -2
  95. package/plugins/storage/index.js.map +1 -0
  96. package/types.d.ts +16 -12
  97. package/types.js.map +1 -0
  98. package/utils.js.map +1 -0
  99. package/handlers/utils/createHandler.d.ts +0 -24
  100. package/handlers/utils/createHandler.js +0 -68
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
 
12
12
  var _mdbid = _interopRequireDefault(require("mdbid"));
13
13
 
@@ -15,22 +15,22 @@ var _handlerGraphql = require("@webiny/handler-graphql");
15
15
 
16
16
  var _apiSecurity = require("@webiny/api-security");
17
17
 
18
- var _error = _interopRequireDefault(require("@webiny/error"));
19
-
20
18
  var _checkBasePermissions = _interopRequireDefault(require("./utils/checkBasePermissions"));
21
19
 
22
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
20
+ var _api = require("@webiny/api");
23
21
 
24
22
  var _FilePlugin = require("../definitions/FilePlugin");
25
23
 
26
24
  var _FilesStorageOperationsProviderPlugin = require("../definitions/FilesStorageOperationsProviderPlugin");
27
25
 
28
- var _lifecycleEvents = require("./utils/lifecycleEvents");
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26
+ var _error = _interopRequireDefault(require("@webiny/error"));
31
27
 
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ var _lifecycleEvents = require("./utils/lifecycleEvents");
33
29
 
30
+ /**
31
+ * Package mdbid does not have types.
32
+ */
33
+ // @ts-ignore
34
34
  const BATCH_CREATE_MAX_FILES = 20;
35
35
  /**
36
36
  * If permission is limited to "own" files only, check that current identity owns the file.
@@ -47,18 +47,24 @@ const checkOwnership = (file, permission, context) => {
47
47
  };
48
48
 
49
49
  const getLocaleCode = context => {
50
- if (!context.i18nContent) {
51
- throw new _error.default("Missing i18nContent on the FileManagerContext.", "MISSING_I18N_CONTENT");
52
- } else if (!context.i18nContent.locale) {
53
- throw new _error.default("Missing i18nContent.locale on the FileManagerContext.", "MISSING_I18N_CONTENT_LOCALE");
54
- } else if (!context.i18nContent.locale.code) {
55
- throw new _error.default("Missing i18nContent.locale.code on the FileManagerContext.", "MISSING_I18N_CONTENT_LOCALE_CODE");
50
+ if (!context.i18n) {
51
+ throw new _error.default("Missing i18n on the FileManagerContext.", "MISSING_I18N");
52
+ }
53
+
54
+ const locale = context.i18n.getContentLocale();
55
+
56
+ if (!locale) {
57
+ throw new _error.default("Missing content locale on the FileManagerContext.", "MISSING_I18N_CONTENT_LOCALE");
58
+ }
59
+
60
+ if (!locale.code) {
61
+ throw new _error.default("Missing content locale code on the FileManagerContext.", "MISSING_I18N_CONTENT_LOCALE_CODE");
56
62
  }
57
63
 
58
- return context.i18nContent.locale.code;
64
+ return locale.code;
59
65
  };
60
66
 
61
- const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context => {
67
+ const filesContextCrudPlugin = new _api.ContextPlugin(async context => {
62
68
  const pluginType = _FilesStorageOperationsProviderPlugin.FilesStorageOperationsProviderPlugin.type;
63
69
  const providerPlugin = context.plugins.byType(pluginType).find(() => true);
64
70
 
@@ -105,10 +111,10 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
105
111
  const identity = context.security.getIdentity();
106
112
  const tenant = context.tenancy.getCurrentTenant();
107
113
  const id = (0, _mdbid.default)();
108
-
109
- const file = _objectSpread(_objectSpread({}, input), {}, {
114
+ const file = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
115
+ tags: Array.isArray(input.tags) ? input.tags : [],
110
116
  id,
111
- meta: _objectSpread({
117
+ meta: (0, _objectSpread2.default)({
112
118
  private: false
113
119
  }, input.meta || {}),
114
120
  tenant: tenant.id,
@@ -139,7 +145,7 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
139
145
  });
140
146
  return result;
141
147
  } catch (ex) {
142
- throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
148
+ throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
143
149
  file
144
150
  }));
145
151
  }
@@ -162,8 +168,8 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
162
168
  }
163
169
 
164
170
  checkOwnership(original, permission, context);
165
-
166
- const file = _objectSpread(_objectSpread(_objectSpread({}, original), input), {}, {
171
+ const file = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
172
+ tags: Array.isArray(input.tags) ? input.tags : Array.isArray(original.tags) ? original.tags : [],
167
173
  id: original.id,
168
174
  webinyVersion: context.WEBINY_VERSION
169
175
  });
@@ -188,7 +194,7 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
188
194
  });
189
195
  return result;
190
196
  } catch (ex) {
191
- throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
197
+ throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
192
198
  original,
193
199
  file
194
200
  }));
@@ -228,7 +234,7 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
228
234
  file
229
235
  });
230
236
  } catch (ex) {
231
- throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
237
+ throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
232
238
  id,
233
239
  file
234
240
  }));
@@ -261,8 +267,9 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
261
267
  type: identity.type
262
268
  };
263
269
  const files = inputs.map(input => {
264
- return _objectSpread(_objectSpread({}, input), {}, {
265
- meta: _objectSpread({
270
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
271
+ tags: Array.isArray(input.tags) ? input.tags : [],
272
+ meta: (0, _objectSpread2.default)({
266
273
  private: false
267
274
  }, input.meta || {}),
268
275
  id: (0, _mdbid.default)(),
@@ -291,7 +298,7 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
291
298
  });
292
299
  return results;
293
300
  } catch (ex) {
294
- throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
301
+ throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
295
302
  files
296
303
  }));
297
304
  }
@@ -311,17 +318,15 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
311
318
  where: initialWhere,
312
319
  sort: initialSort
313
320
  } = params;
314
-
315
- const where = _objectSpread(_objectSpread({}, initialWhere), {}, {
321
+ const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialWhere), {}, {
316
322
  private: false,
317
- locale: context.i18nContent.getLocale().code,
323
+ locale: getLocaleCode(context),
318
324
  tenant: context.tenancy.getCurrentTenant().id
319
325
  });
320
326
  /**
321
327
  * Always override the createdBy received from the user, if any.
322
328
  */
323
329
 
324
-
325
330
  if (permission.own === true) {
326
331
  const identity = context.security.getIdentity();
327
332
  where.createdBy = identity.id;
@@ -375,7 +380,7 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
375
380
  sort
376
381
  });
377
382
  } catch (ex) {
378
- throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
383
+ throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
379
384
  where,
380
385
  after,
381
386
  limit,
@@ -385,17 +390,15 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
385
390
  },
386
391
 
387
392
  async listTags({
393
+ where: initialWhere,
388
394
  after,
389
395
  limit
390
396
  }) {
391
397
  await (0, _checkBasePermissions.default)(context);
392
- const {
393
- i18nContent
394
- } = context;
395
- const where = {
398
+ const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialWhere), {}, {
396
399
  tenant: context.tenancy.getCurrentTenant().id,
397
- locale: i18nContent.locale.code
398
- };
400
+ locale: getLocaleCode(context)
401
+ });
399
402
  const params = {
400
403
  where,
401
404
  limit: limit || 100000,
@@ -403,18 +406,19 @@ const filesContextCrudPlugin = new _ContextPlugin.ContextPlugin(async context =>
403
406
  };
404
407
 
405
408
  try {
406
- /**
407
- * There is a meta object on the second key.
408
- * TODO: use when changing GraphQL output of the tags.
409
- */
410
409
  const [tags] = await storageOperations.tags(params);
410
+
411
+ if (Array.isArray(tags) === false) {
412
+ return [];
413
+ }
411
414
  /**
412
415
  * just to keep it standardized, sort by the tag ASC
413
416
  */
414
417
 
418
+
415
419
  return tags.sort();
416
420
  } catch (ex) {
417
- throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", _objectSpread(_objectSpread({}, ex.data || {}), {}, {
421
+ throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
418
422
  params
419
423
  }));
420
424
  }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BATCH_CREATE_MAX_FILES","checkOwnership","file","permission","context","own","identity","security","getIdentity","createdBy","id","NotAuthorizedError","getLocaleCode","i18n","WebinyError","locale","getContentLocale","code","filesContextCrudPlugin","ContextPlugin","pluginType","FilesStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","storageOperations","provide","fileManager","filePlugins","FilePlugin","files","getFile","checkBasePermissions","rwd","get","where","tenant","tenancy","getCurrentTenant","NotFoundError","createFile","input","mdbid","tags","Array","isArray","meta","private","createdOn","Date","toISOString","displayName","webinyVersion","WEBINY_VERSION","runLifecycleEvent","data","result","create","ex","message","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","length","map","results","createBatch","listFiles","params","limit","search","types","ids","after","initialWhere","sort","initialSort","type_in","tag_in","tag","toLowerCase","id_in","list","listTags","name"],"sources":["files.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n CreatedBy,\n File,\n FileManagerContext,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilePermission,\n FilesListOpts\n} from \"~/types\";\nimport checkBasePermissions from \"./utils/checkBasePermissions\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { FilePlugin } from \"~/plugins/definitions/FilePlugin\";\nimport { FilesStorageOperationsProviderPlugin } from \"~/plugins/definitions/FilesStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { runLifecycleEvent } from \"~/plugins/crud/utils/lifecycleEvents\";\n\nconst BATCH_CREATE_MAX_FILES = 20;\n\n/**\n * If permission is limited to \"own\" files only, check that current identity owns the file.\n */\nconst checkOwnership = (file: File, permission: FilePermission, context: FileManagerContext) => {\n if (permission?.own === true) {\n const identity = context.security.getIdentity();\n if (file.createdBy.id !== identity.id) {\n throw new NotAuthorizedError();\n }\n }\n};\n\nconst getLocaleCode = (context: FileManagerContext): string => {\n if (!context.i18n) {\n throw new WebinyError(\"Missing i18n on the FileManagerContext.\", \"MISSING_I18N\");\n }\n\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE\"\n );\n }\n\n if (!locale.code) {\n throw new WebinyError(\n \"Missing content locale code on the FileManagerContext.\",\n \"MISSING_I18N_CONTENT_LOCALE_CODE\"\n );\n }\n return locale.code;\n};\n\nconst filesContextCrudPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = FilesStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<FilesStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const filePlugins = context.plugins.byType<FilePlugin>(FilePlugin.type);\n\n context.fileManager.files = {\n async getFile(id: string) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n return file;\n },\n async createFile(input) {\n await checkBasePermissions(context, { rwd: \"w\" });\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n\n const id = mdbid();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n id,\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeCreate\", {\n context,\n plugins: filePlugins,\n data: file\n });\n const result = await storageOperations.create({\n file\n });\n await runLifecycleEvent(\"afterCreate\", {\n context,\n plugins: filePlugins,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n const permission = await checkBasePermissions(context, { rwd: \"w\" });\n\n const original = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(original, permission, context);\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n id: original.id,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await runLifecycleEvent(\"beforeUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file\n });\n const result = await storageOperations.update({\n original,\n file\n });\n await runLifecycleEvent(\"afterUpdate\", {\n context,\n plugins: filePlugins,\n original,\n data: file,\n file: result\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n const permission = await checkBasePermissions(context, { rwd: \"d\" });\n\n const file = await storageOperations.get({\n where: {\n id,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n }\n });\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, context);\n\n try {\n await runLifecycleEvent(\"beforeDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n await storageOperations.delete({\n file\n });\n await runLifecycleEvent(\"afterDelete\", {\n context,\n plugins: filePlugins,\n file\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs) {\n if (!Array.isArray(inputs)) {\n throw new WebinyError(`\"data\" must be an array.`, \"CREATE_FILES_NON_ARRAY\");\n }\n\n if (inputs.length === 0) {\n throw new WebinyError(\n `\"data\" argument must contain at least one file.`,\n \"CREATE_FILES_MIN_FILES\"\n );\n }\n\n if (inputs.length > BATCH_CREATE_MAX_FILES) {\n throw new WebinyError(\n `\"data\" argument must not contain more than ${BATCH_CREATE_MAX_FILES} files.`,\n \"CREATE_FILES_MAX_FILES\"\n );\n }\n\n await checkBasePermissions(context, { rwd: \"w\" });\n\n const identity = context.security.getIdentity();\n const tenant = context.tenancy.getCurrentTenant();\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n id: mdbid(),\n tenant: tenant.id,\n createdOn: new Date().toISOString(),\n createdBy,\n locale: getLocaleCode(context),\n webinyVersion: context.WEBINY_VERSION\n };\n });\n\n try {\n await runLifecycleEvent(\"beforeBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files\n });\n const results = await storageOperations.createBatch({\n files\n });\n await runLifecycleEvent(\"afterBatchCreate\", {\n context,\n plugins: filePlugins,\n data: files,\n files: results\n });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n const permission = await checkBasePermissions(context, { rwd: \"r\" });\n\n const {\n limit = 40,\n search = \"\",\n types = [],\n tags = [],\n ids = [],\n after = null,\n where: initialWhere,\n sort: initialSort\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...initialWhere,\n private: false,\n locale: getLocaleCode(context),\n tenant: context.tenancy.getCurrentTenant().id\n };\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (permission.own === true) {\n const identity = context.security.getIdentity();\n where.createdBy = identity.id;\n }\n /**\n * We need to map the old GraphQL definition to the new one.\n * That GQL definition is marked as deprecated.\n */\n /**\n * To have standardized where objects across the applications, we transform the types into type_in.\n */\n if (Array.isArray(types) && types.length > 0 && !where.type_in) {\n where.type_in = types;\n }\n /**\n * We are assigning search to tag and name search.\n * This should be treated as OR condition in the storage operations.\n */\n if (search && !where.search) {\n where.search = search;\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(tags) && tags.length > 0 && !where.tag_in) {\n where.tag_in = tags.map(tag => tag.toLowerCase());\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(ids) && ids.length > 0 && !where.id_in) {\n where.id_in = ids;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.list({\n where,\n after,\n limit,\n sort\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await checkBasePermissions(context);\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocaleCode(context)\n };\n\n const params = {\n where,\n limit: limit || 100000,\n after\n };\n\n try {\n const [tags] = await storageOperations.tags(params);\n if (Array.isArray(tags) === false) {\n return [];\n }\n /**\n * just to keep it standardized, sort by the tag ASC\n */\n return tags.sort();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n});\n\nfilesContextCrudPlugin.name = \"FileManagerFilesCrud\";\n\nexport default filesContextCrudPlugin;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { FileManagerContext } from "../../types";
2
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
2
+ import { ContextPlugin } from "@webiny/api";
3
3
  export declare const SETTINGS_KEY = "file-manager";
4
4
  declare const settingsCrudContextPlugin: ContextPlugin<FileManagerContext>;
5
5
  export default settingsCrudContextPlugin;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.SETTINGS_KEY = void 0;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
 
12
12
  var _fields = require("@commodo/fields");
13
13
 
@@ -17,12 +17,13 @@ var _SettingsStorageOperationsProviderPlugin = require("../definitions/SettingsS
17
17
 
18
18
  var _error = _interopRequireDefault(require("@webiny/error"));
19
19
 
20
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
21
-
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ var _api = require("@webiny/api");
25
21
 
22
+ /**
23
+ * Package @commodo/fields does not have types.
24
+ */
25
+ // @ts-ignore
26
+ // TODO @ts-refactor verify that this is not used and remove it
26
27
  const SETTINGS_KEY = "file-manager";
27
28
  exports.SETTINGS_KEY = SETTINGS_KEY;
28
29
  const CreateDataModel = (0, _fields.withFields)({
@@ -58,7 +59,7 @@ const UpdateDataModel = (0, _fields.withFields)({
58
59
  return value;
59
60
  })((0, _fields.string)())
60
61
  })();
61
- const settingsCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context => {
62
+ const settingsCrudContextPlugin = new _api.ContextPlugin(async context => {
62
63
  const pluginType = _SettingsStorageOperationsProviderPlugin.SettingsStorageOperationsProviderPlugin.type;
63
64
  const providerPlugin = context.plugins.byType(pluginType).find(() => true);
64
65
 
@@ -99,7 +100,7 @@ const settingsCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context
99
100
  });
100
101
  return storageOperations.update({
101
102
  original: existingSettings,
102
- data: _objectSpread(_objectSpread({}, existingSettings), updatedSettings)
103
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingSettings), updatedSettings)
103
104
  });
104
105
  },
105
106
 
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SETTINGS_KEY","CreateDataModel","withFields","uploadMinFileSize","number","value","validation","create","uploadMaxFileSize","srcPrefix","onSet","endsWith","string","UpdateDataModel","settingsCrudContextPlugin","ContextPlugin","context","pluginType","SettingsStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","settings","getSettings","get","createSettings","data","populate","validate","settingsData","toJSON","updateSettings","updatedValue","existingSettings","updatedSettings","onlyDirty","update","original","deleteSettings","delete","name"],"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 { FileManagerContext, FileManagerSettings } from \"~/types\";\nimport { SettingsStorageOperationsProviderPlugin } from \"~/plugins/definitions/SettingsStorageOperationsProviderPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\n\n// TODO @ts-refactor verify that this is not used and remove it\nexport const SETTINGS_KEY = \"file-manager\";\n\nconst CreateDataModel = withFields({\n uploadMinFileSize: number({ value: 0, validation: validation.create(\"gte:0\") }),\n uploadMaxFileSize: number({ value: 26214401 }),\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\nconst settingsCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SettingsStorageOperationsProviderPlugin.type;\n\n const providerPlugin = context.plugins\n .byType<SettingsStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n context.fileManager.settings = {\n async getSettings() {\n return storageOperations.get();\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.create({\n data: settingsData\n });\n },\n async updateSettings(data) {\n const updatedValue = new UpdateDataModel().populate(data);\n await updatedValue.validate();\n\n const existingSettings = (await storageOperations.get()) as FileManagerSettings;\n\n const updatedSettings: Partial<FileManagerSettings> = await updatedValue.toJSON({\n onlyDirty: true\n });\n\n return storageOperations.update({\n original: existingSettings,\n data: {\n ...existingSettings,\n ...updatedSettings\n }\n });\n },\n async deleteSettings() {\n await storageOperations.delete();\n\n return true;\n }\n };\n});\n\nsettingsCrudContextPlugin.name = \"FileMangerSettingsCrud\";\n\nexport default settingsCrudContextPlugin;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { FileManagerContext } from "../../types";
2
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
2
+ import { ContextPlugin } from "@webiny/api";
3
3
  declare const systemCrudContextPlugin: ContextPlugin<FileManagerContext>;
4
4
  export default systemCrudContextPlugin;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
 
12
12
  var _apiSecurity = require("@webiny/api-security");
13
13
 
@@ -15,7 +15,7 @@ var _apiUpgrade = require("@webiny/api-upgrade");
15
15
 
16
16
  var _error = _interopRequireDefault(require("@webiny/error"));
17
17
 
18
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
18
+ var _api = require("@webiny/api");
19
19
 
20
20
  var _utils = require("../../utils");
21
21
 
@@ -23,11 +23,7 @@ var _InstallationPlugin = require("../definitions/InstallationPlugin");
23
23
 
24
24
  var _SystemStorageOperationsProviderPlugin = require("../definitions/SystemStorageOperationsProviderPlugin");
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
- const systemCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context => {
26
+ const systemCrudContextPlugin = new _api.ContextPlugin(async context => {
31
27
  const pluginType = _SystemStorageOperationsProviderPlugin.SystemStorageOperationsProviderPlugin.type;
32
28
  const providerPlugin = context.plugins.byType(pluginType).find(() => true);
33
29
 
@@ -45,6 +41,10 @@ const systemCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context =
45
41
  context.fileManager = {};
46
42
  }
47
43
 
44
+ const getTenantId = () => {
45
+ return context.tenancy.getCurrentTenant().id;
46
+ };
47
+
48
48
  context.fileManager.system = {
49
49
  async getVersion() {
50
50
  const system = await storageOperations.get();
@@ -55,7 +55,8 @@ const systemCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context =
55
55
  const system = await storageOperations.get();
56
56
 
57
57
  if (system) {
58
- const data = _objectSpread(_objectSpread({}, system), {}, {
58
+ const data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), {}, {
59
+ tenant: system.tenant || getTenantId(),
59
60
  version
60
61
  });
61
62
 
@@ -73,7 +74,8 @@ const systemCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context =
73
74
  }
74
75
 
75
76
  const data = {
76
- version
77
+ version,
78
+ tenant: getTenantId()
77
79
  };
78
80
 
79
81
  try {
@@ -91,6 +93,12 @@ const systemCrudContextPlugin = new _ContextPlugin.ContextPlugin(async context =
91
93
  async install({
92
94
  srcPrefix
93
95
  }) {
96
+ const identity = context.security.getIdentity();
97
+
98
+ if (!identity) {
99
+ throw new _apiSecurity.NotAuthorizedError();
100
+ }
101
+
94
102
  const {
95
103
  fileManager
96
104
  } = context;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["systemCrudContextPlugin","ContextPlugin","context","pluginType","SystemStorageOperationsProviderPlugin","type","providerPlugin","plugins","byType","find","WebinyError","storageOperations","provide","fileManager","getTenantId","tenancy","getCurrentTenant","id","system","getVersion","get","version","setVersion","data","tenant","update","original","ex","create","install","srcPrefix","identity","security","getIdentity","NotAuthorizedError","installationPlugins","InstallationPlugin","executeCallbacks","settings","createSettings","WEBINY_VERSION","upgrade","upgradePlugins","filter","pl","app","plugin","getApplicablePlugin","deployedVersion","installedAppVersion","upgradeToVersion","apply","name"],"sources":["system.crud.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getApplicablePlugin } from \"@webiny/api-upgrade\";\nimport { FileManagerContext, FileManagerSettings, FileManagerSystem } from \"~/types\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { executeCallbacks } from \"~/utils\";\nimport { InstallationPlugin } from \"~/plugins/definitions/InstallationPlugin\";\nimport { SystemStorageOperationsProviderPlugin } from \"~/plugins/definitions/SystemStorageOperationsProviderPlugin\";\n\nconst systemCrudContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n const pluginType = SystemStorageOperationsProviderPlugin.type;\n const providerPlugin = context.plugins\n .byType<SystemStorageOperationsProviderPlugin>(pluginType)\n .find(() => true);\n\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n if (!context.fileManager) {\n context.fileManager = {} as any;\n }\n\n const getTenantId = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n\n context.fileManager.system = {\n async getVersion() {\n const system = await storageOperations.get();\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.get();\n\n if (system) {\n const data: FileManagerSystem = {\n ...system,\n tenant: system.tenant || getTenantId(),\n version\n };\n try {\n await storageOperations.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.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({ srcPrefix }) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n const { fileManager } = context;\n const version = await fileManager.system.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 const installationPlugins = context.plugins.byType<InstallationPlugin>(\n InstallationPlugin.type\n );\n\n await executeCallbacks<InstallationPlugin[\"beforeInstall\"]>(\n installationPlugins,\n \"beforeInstall\",\n {\n context\n }\n );\n\n await fileManager.settings.createSettings(data);\n\n await fileManager.system.setVersion(context.WEBINY_VERSION);\n\n await executeCallbacks<InstallationPlugin[\"afterInstall\"]>(\n installationPlugins,\n \"afterInstall\",\n {\n context\n }\n );\n\n return true;\n },\n async upgrade(version) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const upgradePlugins = context.plugins\n .byType<UpgradePlugin>(\"api-upgrade\")\n .filter(pl => pl.app === \"file-manager\");\n\n const plugin = getApplicablePlugin({\n deployedVersion: context.WEBINY_VERSION,\n installedAppVersion: await this.getVersion(),\n upgradePlugins,\n upgradeToVersion: version\n });\n\n await plugin.apply(context);\n\n // Store new app version\n await context.fileManager.system.setVersion(version);\n\n return true;\n }\n };\n});\n\nsystemCrudContextPlugin.name = \"FileManagerSystemCrud\";\n\nexport default systemCrudContextPlugin;\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  var _apiSecurity = require("@webiny/api-security");
9
9
 
10
10
  var _default = async (context, check = {}) => {
11
- await context.i18nContent.checkI18NContentPermission();
11
+ await context.i18n.checkI18NContentPermission();
12
12
  const filePermission = await context.security.getPermission("fm.file");
13
13
 
14
14
  if (!filePermission) {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["context","check","i18n","checkI18NContentPermission","filePermission","security","getPermission","NotAuthorizedError","rwd","hasRwd","filesFilePermission","includes"],"sources":["checkBasePermissions.ts"],"sourcesContent":["import { FileManagerContext, FilePermission } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport default async (\n context: FileManagerContext,\n check: { rwd?: string } = {}\n): Promise<FilePermission> => {\n await context.i18n.checkI18NContentPermission();\n const filePermission = await context.security.getPermission<FilePermission>(\"fm.file\");\n if (!filePermission) {\n throw new NotAuthorizedError();\n }\n if (check.rwd && !hasRwd(filePermission, check.rwd)) {\n throw new NotAuthorizedError();\n }\n\n return filePermission;\n};\n\nconst hasRwd = (filesFilePermission: FilePermission, rwd: string): boolean => {\n if (typeof filesFilePermission.rwd !== \"string\") {\n return true;\n }\n\n return filesFilePermission.rwd.includes(rwd);\n};\n"],"mappings":";;;;;;;AACA;;eAEe,OACXA,OADW,EAEXC,KAAuB,GAAG,EAFf,KAGe;EAC1B,MAAMD,OAAO,CAACE,IAAR,CAAaC,0BAAb,EAAN;EACA,MAAMC,cAAc,GAAG,MAAMJ,OAAO,CAACK,QAAR,CAAiBC,aAAjB,CAA+C,SAA/C,CAA7B;;EACA,IAAI,CAACF,cAAL,EAAqB;IACjB,MAAM,IAAIG,+BAAJ,EAAN;EACH;;EACD,IAAIN,KAAK,CAACO,GAAN,IAAa,CAACC,MAAM,CAACL,cAAD,EAAiBH,KAAK,CAACO,GAAvB,CAAxB,EAAqD;IACjD,MAAM,IAAID,+BAAJ,EAAN;EACH;;EAED,OAAOH,cAAP;AACH,C;;;;AAED,MAAMK,MAAM,GAAG,CAACC,mBAAD,EAAsCF,GAAtC,KAA+D;EAC1E,IAAI,OAAOE,mBAAmB,CAACF,GAA3B,KAAmC,QAAvC,EAAiD;IAC7C,OAAO,IAAP;EACH;;EAED,OAAOE,mBAAmB,CAACF,GAApB,CAAwBG,QAAxB,CAAiCH,GAAjC,CAAP;AACH,CAND"}
@@ -1,2 +1,5 @@
1
+ /**
2
+ * TODO @ts-refactor change for JOI or some other validation library
3
+ */
1
4
  declare const _default: (create?: boolean) => any;
2
5
  export default _default;
@@ -11,6 +11,19 @@ var _commodoFieldsObject = require("commodo-fields-object");
11
11
 
12
12
  var _validation = require("@webiny/validation");
13
13
 
14
+ /**
15
+ * Package @commodo/fields does not have types
16
+ */
17
+ // @ts-ignore
18
+
19
+ /**
20
+ * Package commodo-fields-object does not have types
21
+ */
22
+ // @ts-ignore
23
+
24
+ /**
25
+ * TODO @ts-refactor change for JOI or some other validation library
26
+ */
14
27
  var _default = (create = true) => {
15
28
  return (0, _fields.withFields)({
16
29
  key: (0, _fields.string)({
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","withFields","key","string","validation","name","size","number","type","meta","object","value","private","tags","onSet","Array","isArray","map","item","toLowerCase","list","length","Error","i","tag"],"sources":["createFileModel.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types\n */\n// @ts-ignore\nimport { withFields, string, number, onSet } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\n\n/**\n * TODO @ts-refactor change for JOI or some other validation library\n */\nexport default (create = true) => {\n return withFields({\n key: string({\n validation: validation.create(`${create ? \"required,\" : \"\"}maxLength:1000`)\n }),\n name: string({ validation: validation.create(\"maxLength:1000\") }),\n size: number(),\n type: string({ validation: validation.create(\"maxLength:255\") }),\n meta: object({ value: { private: false } }),\n tags: onSet((value: string[]) => {\n if (!Array.isArray(value)) {\n return null;\n }\n\n return value.map(item => item.toLowerCase());\n })(\n string({\n list: true,\n validation: (tags: string[]) => {\n if (!Array.isArray(tags)) {\n return;\n }\n\n if (tags.length > 15) {\n throw Error(\"You cannot set more than 15 tags.\");\n }\n\n for (let i = 0; i < tags.length; i++) {\n const tag = tags[i];\n if (typeof tag !== \"string\") {\n throw Error(\"Tag must be typeof string.\");\n }\n\n if (tag.length > 50) {\n throw Error(`Tag ${tag} is more than 50 characters long.`);\n }\n }\n }\n })\n )\n })();\n};\n"],"mappings":";;;;;;;AAIA;;AAKA;;AACA;;AAVA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAIA;AACA;AACA;eACe,CAACA,MAAM,GAAG,IAAV,KAAmB;EAC9B,OAAO,IAAAC,kBAAA,EAAW;IACdC,GAAG,EAAE,IAAAC,cAAA,EAAO;MACRC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAmB,GAAEA,MAAM,GAAG,WAAH,GAAiB,EAAG,gBAA/C;IADJ,CAAP,CADS;IAIdK,IAAI,EAAE,IAAAF,cAAA,EAAO;MAAEC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAkB,gBAAlB;IAAd,CAAP,CAJQ;IAKdM,IAAI,EAAE,IAAAC,cAAA,GALQ;IAMdC,IAAI,EAAE,IAAAL,cAAA,EAAO;MAAEC,UAAU,EAAEA,sBAAA,CAAWJ,MAAX,CAAkB,eAAlB;IAAd,CAAP,CANQ;IAOdS,IAAI,EAAE,IAAAC,2BAAA,EAAO;MAAEC,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAX;IAAT,CAAP,CAPQ;IAQdC,IAAI,EAAE,IAAAC,aAAA,EAAOH,KAAD,IAAqB;MAC7B,IAAI,CAACI,KAAK,CAACC,OAAN,CAAcL,KAAd,CAAL,EAA2B;QACvB,OAAO,IAAP;MACH;;MAED,OAAOA,KAAK,CAACM,GAAN,CAAUC,IAAI,IAAIA,IAAI,CAACC,WAAL,EAAlB,CAAP;IACH,CANK,EAOF,IAAAhB,cAAA,EAAO;MACHiB,IAAI,EAAE,IADH;MAEHhB,UAAU,EAAGS,IAAD,IAAoB;QAC5B,IAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,IAAd,CAAL,EAA0B;UACtB;QACH;;QAED,IAAIA,IAAI,CAACQ,MAAL,GAAc,EAAlB,EAAsB;UAClB,MAAMC,KAAK,CAAC,mCAAD,CAAX;QACH;;QAED,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,IAAI,CAACQ,MAAzB,EAAiCE,CAAC,EAAlC,EAAsC;UAClC,MAAMC,GAAG,GAAGX,IAAI,CAACU,CAAD,CAAhB;;UACA,IAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;YACzB,MAAMF,KAAK,CAAC,4BAAD,CAAX;UACH;;UAED,IAAIE,GAAG,CAACH,MAAJ,GAAa,EAAjB,EAAqB;YACjB,MAAMC,KAAK,CAAE,OAAME,GAAI,mCAAZ,CAAX;UACH;QACJ;MACJ;IArBE,CAAP,CAPE;EARQ,CAAX,GAAP;AAwCH,C"}
@@ -1,6 +1,6 @@
1
- import { FilePlugin } from "../../definitions/FilePlugin";
1
+ import { FilePlugin, FilePluginParams } from "../../definitions/FilePlugin";
2
2
  import { FileManagerContext } from "../../../types";
3
- export declare const runLifecycleEvent: (hook: string, params: {
3
+ export declare const runLifecycleEvent: (hook: keyof FilePluginParams, params: {
4
4
  context: FileManagerContext;
5
5
  plugins: FilePlugin[];
6
6
  } & Record<string, any>) => Promise<void>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -11,6 +11,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
11
11
 
12
12
  const _excluded = ["plugins"];
13
13
 
14
+ // TODO @ts-refactor introduce pubsub methods
14
15
  const runLifecycleEvent = async (hook, params) => {
15
16
  const {
16
17
  plugins
@@ -25,6 +26,10 @@ const runLifecycleEvent = async (hook, params) => {
25
26
  if (!plugin[hook]) {
26
27
  continue;
27
28
  }
29
+ /**
30
+ * Keep any because we do not know which hook needs to be executed. This will be removed, so it does not matter.
31
+ */
32
+
28
33
 
29
34
  await plugin[hook](rest);
30
35
  }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["runLifecycleEvent","hook","params","plugins","rest","length","plugin"],"sources":["lifecycleEvents.ts"],"sourcesContent":["// TODO @ts-refactor introduce pubsub methods\nimport { FilePlugin, FilePluginParams } from \"~/plugins/definitions/FilePlugin\";\nimport { FileManagerContext } from \"~/types\";\n\nexport const runLifecycleEvent = async (\n hook: keyof FilePluginParams,\n params: { context: FileManagerContext; plugins: FilePlugin[] } & Record<string, any>\n): Promise<void> => {\n const { plugins, ...rest } = params;\n if (plugins.length === 0) {\n return;\n }\n for (const plugin of plugins) {\n if (!plugin[hook]) {\n continue;\n }\n /**\n * Keep any because we do not know which hook needs to be executed. This will be removed, so it does not matter.\n */\n await plugin[hook](rest as any);\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;AAIO,MAAMA,iBAAiB,GAAG,OAC7BC,IAD6B,EAE7BC,MAF6B,KAGb;EAChB,MAAM;IAAEC;EAAF,IAAuBD,MAA7B;EAAA,MAAoBE,IAApB,0CAA6BF,MAA7B;;EACA,IAAIC,OAAO,CAACE,MAAR,KAAmB,CAAvB,EAA0B;IACtB;EACH;;EACD,KAAK,MAAMC,MAAX,IAAqBH,OAArB,EAA8B;IAC1B,IAAI,CAACG,MAAM,CAACL,IAAD,CAAX,EAAmB;MACf;IACH;IACD;AACR;AACA;;;IACQ,MAAMK,MAAM,CAACL,IAAD,CAAN,CAAaG,IAAb,CAAN;EACH;AACJ,CAjBM"}
@@ -1,22 +1,21 @@
1
1
  /// <reference types="node" />
2
2
  import { Plugin } from "@webiny/plugins";
3
3
  import { FileManagerSettings } from "../../types";
4
- export interface Params {
5
- upload: (args: UploadParams) => Promise<any>;
6
- delete: (args: DeleteParams) => Promise<void>;
4
+ export interface FilePhysicalStoragePluginParams<U extends FilePhysicalStoragePluginUploadParams, D extends FilePhysicalStoragePluginDeleteParams> {
5
+ upload: (args: U) => Promise<any>;
6
+ delete: (args: D) => Promise<void>;
7
7
  }
8
- export interface UploadParams {
8
+ export interface FilePhysicalStoragePluginUploadParams {
9
9
  settings: FileManagerSettings;
10
10
  buffer: Buffer;
11
- [key: string]: any;
12
11
  }
13
- export interface DeleteParams {
12
+ export interface FilePhysicalStoragePluginDeleteParams {
14
13
  key: string;
15
14
  }
16
- export declare class FilePhysicalStoragePlugin extends Plugin {
17
- static readonly type = "api-file-manager-storage";
15
+ export declare class FilePhysicalStoragePlugin<U extends FilePhysicalStoragePluginUploadParams = FilePhysicalStoragePluginUploadParams, D extends FilePhysicalStoragePluginDeleteParams = FilePhysicalStoragePluginDeleteParams> extends Plugin {
16
+ static readonly type: string;
18
17
  private readonly _params;
19
- constructor(params: Params);
20
- upload(params: UploadParams): Promise<any>;
21
- delete(params: DeleteParams): Promise<any>;
18
+ constructor(params: FilePhysicalStoragePluginParams<U, D>);
19
+ upload(params: U): Promise<any>;
20
+ delete(params: D): Promise<any>;
22
21
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true