@webiny/api-file-manager 0.0.0-mt-3 → 0.0.0-unstable.085ff6572f
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.
- package/FileManagerContextSetup.d.ts +13 -0
- package/FileManagerContextSetup.js +113 -0
- package/FileManagerContextSetup.js.map +1 -0
- package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
- package/cmsFileStorage/CmsFilesStorage.js +173 -0
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
- package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js +35 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
- package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js +35 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
- package/cmsFileStorage/createFileManagerPlugins.d.ts +5 -0
- package/cmsFileStorage/createFileManagerPlugins.js +34 -0
- package/cmsFileStorage/createFileManagerPlugins.js.map +1 -0
- package/cmsFileStorage/createModelField.d.ts +5 -0
- package/cmsFileStorage/createModelField.js +37 -0
- package/cmsFileStorage/createModelField.js.map +1 -0
- package/cmsFileStorage/file.model.d.ts +4 -0
- package/cmsFileStorage/file.model.js +118 -0
- package/cmsFileStorage/file.model.js.map +1 -0
- package/cmsFileStorage/isInstallationPending.d.ts +4 -0
- package/cmsFileStorage/isInstallationPending.js +21 -0
- package/cmsFileStorage/isInstallationPending.js.map +1 -0
- package/contants.d.ts +1 -0
- package/contants.js +8 -0
- package/contants.js.map +1 -0
- package/createFileManager/files.crud.d.ts +3 -0
- package/createFileManager/files.crud.js +300 -0
- package/createFileManager/files.crud.js.map +1 -0
- package/createFileManager/filevalidation.disabled.d.ts +0 -0
- package/createFileManager/filevalidation.disabled.js +55 -0
- package/createFileManager/filevalidation.disabled.js.map +1 -0
- package/createFileManager/index.d.ts +15 -0
- package/createFileManager/index.js +20 -0
- package/createFileManager/index.js.map +1 -0
- package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
- package/createFileManager/permissions/FilesPermissions.js +9 -0
- package/createFileManager/permissions/FilesPermissions.js.map +1 -0
- package/createFileManager/settings.crud.d.ts +3 -0
- package/createFileManager/settings.crud.js +91 -0
- package/createFileManager/settings.crud.js.map +1 -0
- package/createFileManager/system.crud.d.ts +3 -0
- package/createFileManager/system.crud.js +86 -0
- package/createFileManager/system.crud.js.map +1 -0
- package/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +117 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +7 -0
- package/graphql/createFilesTypeDefs.js +162 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +83 -0
- package/graphql/filesSchema.js.map +1 -0
- package/graphql/index.d.ts +3 -0
- package/graphql/index.js +33 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +22 -0
- package/graphql/utils.js.map +1 -0
- package/handlers/download/byAlias.d.ts +6 -0
- package/handlers/download/byAlias.js +89 -0
- package/handlers/download/byAlias.js.map +1 -0
- package/handlers/download/byExactKey.d.ts +2 -0
- package/handlers/download/byExactKey.js +57 -0
- package/handlers/download/byExactKey.js.map +1 -0
- package/handlers/download/extractFileInformation.d.ts +9 -0
- package/handlers/download/extractFileInformation.js +20 -0
- package/handlers/download/extractFileInformation.js.map +1 -0
- package/handlers/download/getS3Object.d.ts +10 -0
- package/handlers/download/getS3Object.js +60 -0
- package/handlers/download/getS3Object.js.map +1 -0
- package/handlers/download/index.d.ts +2 -3
- package/handlers/download/index.js +20 -118
- package/handlers/download/index.js.map +1 -0
- package/handlers/manage/index.d.ts +5 -3
- package/handlers/manage/index.js +43 -58
- package/handlers/manage/index.js.map +1 -0
- package/handlers/transform/index.d.ts +2 -3
- package/handlers/transform/index.js +71 -78
- package/handlers/transform/index.js.map +1 -0
- package/handlers/transform/legacyUtils.d.ts +17 -0
- package/handlers/transform/legacyUtils.js +42 -0
- package/handlers/transform/legacyUtils.js.map +1 -0
- package/handlers/transform/loaders/imageLoader.d.ts +26 -9
- package/handlers/transform/loaders/imageLoader.js +13 -25
- package/handlers/transform/loaders/imageLoader.js.map +1 -0
- package/handlers/transform/loaders/index.d.ts +4 -9
- package/handlers/transform/loaders/index.js +1 -4
- package/handlers/transform/loaders/index.js.map +1 -0
- package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +7 -3
- package/handlers/transform/loaders/sanitizeImageTransformations.js +24 -30
- package/handlers/transform/loaders/sanitizeImageTransformations.js.map +1 -0
- package/handlers/transform/managers/imageManager.d.ts +12 -6
- package/handlers/transform/managers/imageManager.js +46 -27
- package/handlers/transform/managers/imageManager.js.map +1 -0
- package/handlers/transform/managers/index.d.ts +2 -6
- package/handlers/transform/managers/index.js +1 -4
- package/handlers/transform/managers/index.js.map +1 -0
- package/handlers/transform/optimizeImage.d.ts +2 -1
- package/handlers/transform/optimizeImage.js +4 -7
- package/handlers/transform/optimizeImage.js.map +1 -0
- package/handlers/transform/transformImage.d.ts +5 -4
- package/handlers/transform/transformImage.js +4 -9
- package/handlers/transform/transformImage.js.map +1 -0
- package/handlers/transform/utils.d.ts +2 -2
- package/handlers/transform/utils.js +8 -18
- package/handlers/transform/utils.js.map +1 -0
- package/handlers/types.d.ts +8 -0
- package/handlers/types.js +5 -0
- package/handlers/types.js.map +1 -0
- package/handlers/utils/getEnvironment.js +0 -2
- package/handlers/utils/getEnvironment.js.map +1 -0
- package/handlers/utils/getObjectParams.d.ts +3 -4
- package/handlers/utils/getObjectParams.js +1 -7
- package/handlers/utils/getObjectParams.js.map +1 -0
- package/handlers/utils/index.d.ts +0 -1
- package/handlers/utils/index.js +1 -12
- package/handlers/utils/index.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +52 -0
- package/index.js.map +1 -0
- package/modelModifier/CmsModelModifier.d.ts +24 -0
- package/modelModifier/CmsModelModifier.js +59 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +32 -32
- package/plugins/FilePhysicalStoragePlugin.d.ts +21 -0
- package/plugins/{definitions/FilePhysicalStoragePlugin.js → FilePhysicalStoragePlugin.js} +1 -12
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -0
- package/plugins/{definitions/FileStorageTransformPlugin.d.ts → FileStorageTransformPlugin.d.ts} +10 -10
- package/plugins/{definitions/FileStorageTransformPlugin.js → FileStorageTransformPlugin.js} +2 -13
- package/plugins/FileStorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +2 -2
- package/plugins/index.js +22 -19
- package/plugins/index.js.map +1 -0
- package/storage/FileStorage.d.ts +32 -0
- package/storage/FileStorage.js +86 -0
- package/storage/FileStorage.js.map +1 -0
- package/types/file.d.ts +37 -0
- package/types/file.js +5 -0
- package/types/file.js.map +1 -0
- package/types/file.lifecycle.d.ts +44 -0
- package/types/file.lifecycle.js +5 -0
- package/types/file.lifecycle.js.map +1 -0
- package/types.d.ts +76 -83
- package/types.js +22 -0
- package/types.js.map +1 -0
- package/handlers/utils/createHandler.d.ts +0 -24
- package/handlers/utils/createHandler.js +0 -68
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -427
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -115
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -145
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/createFileModel.d.ts +0 -2
- package/plugins/crud/utils/createFileModel.js +0 -64
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -33
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -22
- package/plugins/definitions/FilePlugin.d.ts +0 -133
- package/plugins/definitions/FilePlugin.js +0 -64
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -40
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -274
- package/plugins/storage/FileStorage.d.ts +0 -31
- package/plugins/storage/FileStorage.js +0 -95
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -22
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFileModelDefinition = exports.FILE_MODEL_ID = void 0;
|
|
7
|
+
var _createModelField = require("./createModelField");
|
|
8
|
+
const required = () => {
|
|
9
|
+
return {
|
|
10
|
+
name: "required",
|
|
11
|
+
message: "Value is required."
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
const nameField = () => {
|
|
15
|
+
return (0, _createModelField.createModelField)({
|
|
16
|
+
label: "Name",
|
|
17
|
+
type: "text",
|
|
18
|
+
validation: [required()]
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const keyField = () => {
|
|
22
|
+
return (0, _createModelField.createModelField)({
|
|
23
|
+
label: "Key",
|
|
24
|
+
type: "text",
|
|
25
|
+
validation: [required()]
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const typeField = () => {
|
|
29
|
+
return (0, _createModelField.createModelField)({
|
|
30
|
+
label: "Type",
|
|
31
|
+
type: "text",
|
|
32
|
+
validation: [required()]
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const sizeField = () => {
|
|
36
|
+
return (0, _createModelField.createModelField)({
|
|
37
|
+
label: "Size",
|
|
38
|
+
type: "number",
|
|
39
|
+
validation: [required()]
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const metaWidthField = () => {
|
|
43
|
+
return (0, _createModelField.createModelField)({
|
|
44
|
+
label: "Width",
|
|
45
|
+
type: "number"
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const metaHeightField = () => {
|
|
49
|
+
return (0, _createModelField.createModelField)({
|
|
50
|
+
label: "Height",
|
|
51
|
+
type: "number"
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
const metaPrivateField = () => {
|
|
55
|
+
return (0, _createModelField.createModelField)({
|
|
56
|
+
label: "Private",
|
|
57
|
+
type: "boolean"
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const metaField = () => {
|
|
61
|
+
return (0, _createModelField.createModelField)({
|
|
62
|
+
label: "Meta",
|
|
63
|
+
type: "object",
|
|
64
|
+
settings: {
|
|
65
|
+
fields: [metaPrivateField(), metaWidthField(), metaHeightField()]
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
const tagsField = () => {
|
|
70
|
+
return (0, _createModelField.createModelField)({
|
|
71
|
+
label: "Tags",
|
|
72
|
+
type: "text",
|
|
73
|
+
multipleValues: true,
|
|
74
|
+
validation: [required()]
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const aliasesField = () => {
|
|
78
|
+
return (0, _createModelField.createModelField)({
|
|
79
|
+
label: "Aliases",
|
|
80
|
+
type: "text",
|
|
81
|
+
multipleValues: true,
|
|
82
|
+
validation: [required()]
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const FILE_MODEL_ID = "fmFile";
|
|
86
|
+
exports.FILE_MODEL_ID = FILE_MODEL_ID;
|
|
87
|
+
const createFileModelDefinition = group => {
|
|
88
|
+
return {
|
|
89
|
+
name: "FmFile",
|
|
90
|
+
modelId: FILE_MODEL_ID,
|
|
91
|
+
titleFieldId: "name",
|
|
92
|
+
layout: [["location"], ["name"], ["key"], ["type"], ["size"], ["meta"], ["tags"], ["aliases"]],
|
|
93
|
+
fields: [{
|
|
94
|
+
id: "location",
|
|
95
|
+
type: "object",
|
|
96
|
+
storageId: "object@location",
|
|
97
|
+
label: "Location",
|
|
98
|
+
fieldId: "location",
|
|
99
|
+
settings: {
|
|
100
|
+
fields: [{
|
|
101
|
+
id: "folderId",
|
|
102
|
+
type: "text",
|
|
103
|
+
fieldId: "folderId",
|
|
104
|
+
label: "Folder ID",
|
|
105
|
+
storageId: "text@folderId",
|
|
106
|
+
settings: {
|
|
107
|
+
path: "location.folderId"
|
|
108
|
+
}
|
|
109
|
+
}]
|
|
110
|
+
}
|
|
111
|
+
}, nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()],
|
|
112
|
+
description: "File Manager - File content model",
|
|
113
|
+
isPrivate: true,
|
|
114
|
+
group,
|
|
115
|
+
noValidate: true
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
exports.createFileModelDefinition = createFileModelDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["required","name","message","nameField","createModelField","label","type","validation","keyField","typeField","sizeField","metaWidthField","metaHeightField","metaPrivateField","metaField","settings","fields","tagsField","multipleValues","aliasesField","FILE_MODEL_ID","createFileModelDefinition","group","modelId","titleFieldId","layout","id","storageId","fieldId","path","description","isPrivate","noValidate"],"sources":["file.model.ts"],"sourcesContent":["import { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"./createModelField\";\nimport { CmsModelGroup } from \"@webiny/api-headless-cms/types\";\n\nconst required = () => {\n return {\n name: \"required\",\n message: \"Value is required.\"\n };\n};\n\nconst nameField = () => {\n return createModelField({\n label: \"Name\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst keyField = () => {\n return createModelField({\n label: \"Key\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst typeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst sizeField = () => {\n return createModelField({\n label: \"Size\",\n type: \"number\",\n validation: [required()]\n });\n};\n\nconst metaWidthField = () => {\n return createModelField({\n label: \"Width\",\n type: \"number\"\n });\n};\n\nconst metaHeightField = () => {\n return createModelField({\n label: \"Height\",\n type: \"number\"\n });\n};\n\nconst metaPrivateField = () => {\n return createModelField({\n label: \"Private\",\n type: \"boolean\"\n });\n};\n\nconst metaField = () => {\n return createModelField({\n label: \"Meta\",\n type: \"object\",\n settings: {\n fields: [metaPrivateField(), metaWidthField(), metaHeightField()]\n }\n });\n};\n\nconst tagsField = () => {\n return createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst aliasesField = () => {\n return createModelField({\n label: \"Aliases\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nexport const FILE_MODEL_ID = \"fmFile\";\n\nexport const createFileModelDefinition = (group: CmsModelGroup): CmsPrivateModelFull => {\n return {\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n layout: [\n [\"location\"],\n [\"name\"],\n [\"key\"],\n [\"type\"],\n [\"size\"],\n [\"meta\"],\n [\"tags\"],\n [\"aliases\"]\n ],\n fields: [\n {\n id: \"location\",\n type: \"object\",\n storageId: \"object@location\",\n label: \"Location\",\n fieldId: \"location\",\n settings: {\n fields: [\n {\n id: \"folderId\",\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n storageId: \"text@folderId\",\n settings: {\n path: \"location.folderId\"\n }\n }\n ]\n }\n },\n nameField(),\n keyField(),\n typeField(),\n sizeField(),\n metaField(),\n tagsField(),\n aliasesField()\n ],\n description: \"File Manager - File content model\",\n isPrivate: true,\n group,\n noValidate: true\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isInstallationPending = void 0;
|
|
7
|
+
const isInstallationPending = ({
|
|
8
|
+
tenancy,
|
|
9
|
+
i18n
|
|
10
|
+
}) => {
|
|
11
|
+
/**
|
|
12
|
+
* In case of a fresh webiny project "tenant" and "locale" won't be there until
|
|
13
|
+
* installation is completed. So, we need to skip "storage" creation till then.
|
|
14
|
+
*/
|
|
15
|
+
const tenant = tenancy.getCurrentTenant();
|
|
16
|
+
if (!tenant) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return !i18n.getContentLocale();
|
|
20
|
+
};
|
|
21
|
+
exports.isInstallationPending = isInstallationPending;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale"],"sources":["isInstallationPending.ts"],"sourcesContent":["import { FileManagerContext } from \"~/types\";\n\ntype CheckInstallationParams = Pick<FileManagerContext, \"tenancy\" | \"i18n\">;\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"storage\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n"],"mappings":";;;;;;AAGO,MAAMA,qBAAqB,GAAG,CAAC;EAAEC,OAAO;EAAEC;AAA8B,CAAC,KAAc;EAC1F;AACJ;AACA;AACA;EACI,MAAMC,MAAM,GAAGF,OAAO,CAACG,gBAAgB,EAAE;EACzC,IAAI,CAACD,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAO,CAACD,IAAI,CAACG,gBAAgB,EAAE;AACnC,CAAC;AAAC"}
|
package/contants.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ROOT_FOLDER = "root";
|
package/contants.js
ADDED
package/contants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAAC"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createFilesCrud = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
10
|
+
var _pubsub = require("@webiny/pubsub");
|
|
11
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
12
|
+
var _contants = require("../contants");
|
|
13
|
+
const createFilesCrud = config => {
|
|
14
|
+
const {
|
|
15
|
+
storageOperations,
|
|
16
|
+
filesPermissions,
|
|
17
|
+
getLocaleCode,
|
|
18
|
+
getTenantId,
|
|
19
|
+
getIdentity,
|
|
20
|
+
WEBINY_VERSION
|
|
21
|
+
} = config;
|
|
22
|
+
return {
|
|
23
|
+
onFileBeforeCreate: (0, _pubsub.createTopic)("fileManager.onFileBeforeCreate"),
|
|
24
|
+
onFileAfterCreate: (0, _pubsub.createTopic)("fileManager.onFileAfterCreate"),
|
|
25
|
+
onFileBeforeBatchCreate: (0, _pubsub.createTopic)("fileManager.onFileBeforeBatchCreate"),
|
|
26
|
+
onFileAfterBatchCreate: (0, _pubsub.createTopic)("fileManager.onFileAfterBatchCreate"),
|
|
27
|
+
onFileBeforeUpdate: (0, _pubsub.createTopic)("fileManager.onFileBeforeUpdate"),
|
|
28
|
+
onFileAfterUpdate: (0, _pubsub.createTopic)("fileManager.onFileAfterUpdate"),
|
|
29
|
+
onFileBeforeDelete: (0, _pubsub.createTopic)("fileManager.onFileBeforeDelete"),
|
|
30
|
+
onFileAfterDelete: (0, _pubsub.createTopic)("fileManager.onFileAfterDelete"),
|
|
31
|
+
async getFile(id) {
|
|
32
|
+
await filesPermissions.ensure({
|
|
33
|
+
rwd: "r"
|
|
34
|
+
});
|
|
35
|
+
const file = await storageOperations.files.get({
|
|
36
|
+
where: {
|
|
37
|
+
id,
|
|
38
|
+
tenant: getTenantId(),
|
|
39
|
+
locale: getLocaleCode()
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (!file) {
|
|
43
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
44
|
+
}
|
|
45
|
+
await filesPermissions.ensure({
|
|
46
|
+
owns: file.createdBy
|
|
47
|
+
});
|
|
48
|
+
return file;
|
|
49
|
+
},
|
|
50
|
+
async createFile(input, meta) {
|
|
51
|
+
var _input$location;
|
|
52
|
+
await filesPermissions.ensure({
|
|
53
|
+
rwd: "w"
|
|
54
|
+
});
|
|
55
|
+
const identity = getIdentity();
|
|
56
|
+
|
|
57
|
+
// Extract ID from file key
|
|
58
|
+
const [id] = input.key.split("/");
|
|
59
|
+
const file = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
|
|
60
|
+
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
61
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
62
|
+
id: input.id || id,
|
|
63
|
+
location: {
|
|
64
|
+
folderId: ((_input$location = input.location) === null || _input$location === void 0 ? void 0 : _input$location.folderId) ?? _contants.ROOT_FOLDER
|
|
65
|
+
},
|
|
66
|
+
meta: (0, _objectSpread2.default)({
|
|
67
|
+
private: false
|
|
68
|
+
}, input.meta || {}),
|
|
69
|
+
tenant: getTenantId(),
|
|
70
|
+
createdOn: new Date().toISOString(),
|
|
71
|
+
savedOn: new Date().toISOString(),
|
|
72
|
+
createdBy: {
|
|
73
|
+
id: identity.id,
|
|
74
|
+
displayName: identity.displayName,
|
|
75
|
+
type: identity.type
|
|
76
|
+
},
|
|
77
|
+
locale: getLocaleCode(),
|
|
78
|
+
webinyVersion: WEBINY_VERSION
|
|
79
|
+
});
|
|
80
|
+
try {
|
|
81
|
+
await this.onFileBeforeCreate.publish({
|
|
82
|
+
file,
|
|
83
|
+
meta
|
|
84
|
+
});
|
|
85
|
+
const result = await storageOperations.files.create({
|
|
86
|
+
file
|
|
87
|
+
});
|
|
88
|
+
await this.onFileAfterCreate.publish({
|
|
89
|
+
file,
|
|
90
|
+
meta
|
|
91
|
+
});
|
|
92
|
+
return result;
|
|
93
|
+
} catch (ex) {
|
|
94
|
+
throw new _error.default(ex.message || "Could not create a file.", ex.code || "CREATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
95
|
+
file
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
async updateFile(id, input) {
|
|
100
|
+
await filesPermissions.ensure({
|
|
101
|
+
rwd: "w"
|
|
102
|
+
});
|
|
103
|
+
const original = await storageOperations.files.get({
|
|
104
|
+
where: {
|
|
105
|
+
id,
|
|
106
|
+
tenant: getTenantId(),
|
|
107
|
+
locale: getLocaleCode()
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (!original) {
|
|
111
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
112
|
+
}
|
|
113
|
+
await filesPermissions.ensure({
|
|
114
|
+
owns: original.createdBy
|
|
115
|
+
});
|
|
116
|
+
const file = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
|
|
117
|
+
tags: Array.isArray(input.tags) ? input.tags : Array.isArray(original.tags) ? original.tags : [],
|
|
118
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : Array.isArray(original.aliases) ? original.aliases : [],
|
|
119
|
+
id: original.id,
|
|
120
|
+
webinyVersion: WEBINY_VERSION
|
|
121
|
+
});
|
|
122
|
+
try {
|
|
123
|
+
await this.onFileBeforeUpdate.publish({
|
|
124
|
+
original,
|
|
125
|
+
file,
|
|
126
|
+
input
|
|
127
|
+
});
|
|
128
|
+
const result = await storageOperations.files.update({
|
|
129
|
+
original,
|
|
130
|
+
file
|
|
131
|
+
});
|
|
132
|
+
await this.onFileAfterUpdate.publish({
|
|
133
|
+
original,
|
|
134
|
+
file,
|
|
135
|
+
input
|
|
136
|
+
});
|
|
137
|
+
return result;
|
|
138
|
+
} catch (ex) {
|
|
139
|
+
throw new _error.default(ex.message || "Could not update a file.", ex.code || "UPDATE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
140
|
+
original,
|
|
141
|
+
file
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
async deleteFile(id) {
|
|
146
|
+
await filesPermissions.ensure({
|
|
147
|
+
rwd: "d"
|
|
148
|
+
});
|
|
149
|
+
const file = await storageOperations.files.get({
|
|
150
|
+
where: {
|
|
151
|
+
id,
|
|
152
|
+
tenant: getTenantId(),
|
|
153
|
+
locale: getLocaleCode()
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
if (!file) {
|
|
157
|
+
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
158
|
+
}
|
|
159
|
+
await filesPermissions.ensure({
|
|
160
|
+
owns: file.createdBy
|
|
161
|
+
});
|
|
162
|
+
try {
|
|
163
|
+
await this.onFileBeforeDelete.publish({
|
|
164
|
+
file
|
|
165
|
+
});
|
|
166
|
+
await storageOperations.files.delete({
|
|
167
|
+
file
|
|
168
|
+
});
|
|
169
|
+
await this.onFileAfterDelete.publish({
|
|
170
|
+
file
|
|
171
|
+
});
|
|
172
|
+
} catch (ex) {
|
|
173
|
+
throw new _error.default(ex.message || "Could not delete a file.", ex.code || "DELETE_FILE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
174
|
+
id,
|
|
175
|
+
file
|
|
176
|
+
}));
|
|
177
|
+
}
|
|
178
|
+
return true;
|
|
179
|
+
},
|
|
180
|
+
async createFilesInBatch(inputs, meta) {
|
|
181
|
+
await filesPermissions.ensure({
|
|
182
|
+
rwd: "w"
|
|
183
|
+
});
|
|
184
|
+
const identity = getIdentity();
|
|
185
|
+
const tenant = getTenantId();
|
|
186
|
+
const locale = getLocaleCode();
|
|
187
|
+
const createdBy = {
|
|
188
|
+
id: identity.id,
|
|
189
|
+
displayName: identity.displayName,
|
|
190
|
+
type: identity.type
|
|
191
|
+
};
|
|
192
|
+
const files = inputs.map(input => {
|
|
193
|
+
var _input$location2;
|
|
194
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
|
|
195
|
+
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
196
|
+
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
197
|
+
meta: (0, _objectSpread2.default)({
|
|
198
|
+
private: false
|
|
199
|
+
}, input.meta || {}),
|
|
200
|
+
location: {
|
|
201
|
+
folderId: ((_input$location2 = input.location) === null || _input$location2 === void 0 ? void 0 : _input$location2.folderId) ?? _contants.ROOT_FOLDER
|
|
202
|
+
},
|
|
203
|
+
tenant,
|
|
204
|
+
createdOn: new Date().toISOString(),
|
|
205
|
+
savedOn: new Date().toISOString(),
|
|
206
|
+
createdBy,
|
|
207
|
+
locale,
|
|
208
|
+
webinyVersion: WEBINY_VERSION
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
try {
|
|
212
|
+
await this.onFileBeforeBatchCreate.publish({
|
|
213
|
+
files,
|
|
214
|
+
meta
|
|
215
|
+
});
|
|
216
|
+
const results = await storageOperations.files.createBatch({
|
|
217
|
+
files
|
|
218
|
+
});
|
|
219
|
+
await this.onFileAfterBatchCreate.publish({
|
|
220
|
+
files,
|
|
221
|
+
meta
|
|
222
|
+
});
|
|
223
|
+
return results;
|
|
224
|
+
} catch (ex) {
|
|
225
|
+
throw new _error.default(ex.message || "Could not create a batch of files.", ex.code || "CREATE_FILES_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
226
|
+
files
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
async listFiles(params = {}) {
|
|
231
|
+
await filesPermissions.ensure({
|
|
232
|
+
rwd: "r"
|
|
233
|
+
});
|
|
234
|
+
const {
|
|
235
|
+
limit = 40,
|
|
236
|
+
after = null,
|
|
237
|
+
where: initialWhere,
|
|
238
|
+
sort: initialSort,
|
|
239
|
+
search
|
|
240
|
+
} = params;
|
|
241
|
+
const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _objectSpread2.default)({
|
|
242
|
+
meta: {
|
|
243
|
+
private_not: true
|
|
244
|
+
}
|
|
245
|
+
}, initialWhere)), {}, {
|
|
246
|
+
locale: getLocaleCode(),
|
|
247
|
+
tenant: getTenantId()
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Always override the createdBy received from the user, if any.
|
|
252
|
+
*/
|
|
253
|
+
if (await filesPermissions.canAccessOnlyOwnRecords()) {
|
|
254
|
+
const identity = getIdentity();
|
|
255
|
+
where.createdBy = identity.id;
|
|
256
|
+
}
|
|
257
|
+
const sort = Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : ["id_DESC"];
|
|
258
|
+
try {
|
|
259
|
+
return await storageOperations.files.list({
|
|
260
|
+
where,
|
|
261
|
+
after,
|
|
262
|
+
limit,
|
|
263
|
+
sort,
|
|
264
|
+
search
|
|
265
|
+
});
|
|
266
|
+
} catch (ex) {
|
|
267
|
+
throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
268
|
+
where,
|
|
269
|
+
after,
|
|
270
|
+
limit,
|
|
271
|
+
sort
|
|
272
|
+
}));
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
async listTags({
|
|
276
|
+
where: initialWhere,
|
|
277
|
+
after,
|
|
278
|
+
limit
|
|
279
|
+
}) {
|
|
280
|
+
await filesPermissions.ensure();
|
|
281
|
+
const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialWhere), {}, {
|
|
282
|
+
tenant: getTenantId(),
|
|
283
|
+
locale: getLocaleCode()
|
|
284
|
+
});
|
|
285
|
+
const params = {
|
|
286
|
+
where,
|
|
287
|
+
limit: limit || 1000000,
|
|
288
|
+
after
|
|
289
|
+
};
|
|
290
|
+
try {
|
|
291
|
+
return await storageOperations.files.tags(params);
|
|
292
|
+
} catch (ex) {
|
|
293
|
+
throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
294
|
+
params
|
|
295
|
+
}));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
exports.createFilesCrud = createFilesCrud;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","identity","key","split","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","Date","toISOString","savedOn","displayName","type","webinyVersion","publish","result","create","ex","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","length","list","listTags"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport {\n CreatedBy,\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\nexport const createFilesCrud = (config: FileManagerConfig): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: getTenantId(),\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n tenant,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// /**
|
|
2
|
+
// * Package @commodo/fields does not have types
|
|
3
|
+
// */
|
|
4
|
+
// // @ts-ignore
|
|
5
|
+
// import { withFields, string, number, onSet } from "@commodo/fields";
|
|
6
|
+
// /**
|
|
7
|
+
// * Package commodo-fields-object does not have types
|
|
8
|
+
// */
|
|
9
|
+
// // @ts-ignore
|
|
10
|
+
// import { object } from "commodo-fields-object";
|
|
11
|
+
// import { validation } from "@webiny/validation";
|
|
12
|
+
//
|
|
13
|
+
// export default (create = true) => {
|
|
14
|
+
// return withFields({
|
|
15
|
+
// key: string({
|
|
16
|
+
// validation: validation.create(`${create ? "required," : ""}maxLength:1000`)
|
|
17
|
+
// }),
|
|
18
|
+
// name: string({ validation: validation.create("maxLength:1000") }),
|
|
19
|
+
// size: number(),
|
|
20
|
+
// type: string({ validation: validation.create("maxLength:255") }),
|
|
21
|
+
// meta: object({ value: { private: false } }),
|
|
22
|
+
// tags: onSet((value: string[]) => {
|
|
23
|
+
// if (!Array.isArray(value)) {
|
|
24
|
+
// return null;
|
|
25
|
+
// }
|
|
26
|
+
//
|
|
27
|
+
// return value.map(item => item.toLowerCase());
|
|
28
|
+
// })(
|
|
29
|
+
// string({
|
|
30
|
+
// list: true,
|
|
31
|
+
// validation: (tags: string[]) => {
|
|
32
|
+
// if (!Array.isArray(tags)) {
|
|
33
|
+
// return;
|
|
34
|
+
// }
|
|
35
|
+
//
|
|
36
|
+
// if (tags.length > 15) {
|
|
37
|
+
// throw Error("You cannot set more than 15 tags.");
|
|
38
|
+
// }
|
|
39
|
+
//
|
|
40
|
+
// for (let i = 0; i < tags.length; i++) {
|
|
41
|
+
// const tag = tags[i];
|
|
42
|
+
// if (typeof tag !== "string") {
|
|
43
|
+
// throw Error("Tag must be typeof string.");
|
|
44
|
+
// }
|
|
45
|
+
//
|
|
46
|
+
// if (tag.length > 50) {
|
|
47
|
+
// throw Error(`Tag ${tag} is more than 50 characters long.`);
|
|
48
|
+
// }
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
// })
|
|
52
|
+
// )
|
|
53
|
+
// })();
|
|
54
|
+
// };
|
|
55
|
+
"use strict";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["filevalidation.disabled.ts"],"sourcesContent":["// /**\n// * Package @commodo/fields does not have types\n// */\n// // @ts-ignore\n// import { withFields, string, number, onSet } from \"@commodo/fields\";\n// /**\n// * Package commodo-fields-object does not have types\n// */\n// // @ts-ignore\n// import { object } from \"commodo-fields-object\";\n// import { validation } from \"@webiny/validation\";\n//\n// export 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":"AAAA;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;AAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FileManagerContextObject, FileManagerStorageOperations } from "../types";
|
|
2
|
+
import { GetPermissions, SecurityIdentity } from "@webiny/api-security/types";
|
|
3
|
+
import { FileStorage } from "../storage/FileStorage";
|
|
4
|
+
import { FilesPermissions } from "./permissions/FilesPermissions";
|
|
5
|
+
export interface FileManagerConfig {
|
|
6
|
+
storageOperations: FileManagerStorageOperations;
|
|
7
|
+
filesPermissions: FilesPermissions;
|
|
8
|
+
getTenantId: () => string;
|
|
9
|
+
getLocaleCode: () => string;
|
|
10
|
+
getIdentity: () => SecurityIdentity;
|
|
11
|
+
getPermissions: GetPermissions;
|
|
12
|
+
storage: FileStorage;
|
|
13
|
+
WEBINY_VERSION: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const createFileManager: (config: FileManagerConfig) => FileManagerContextObject;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createFileManager = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _files = require("./files.crud");
|
|
10
|
+
var _settings = require("./settings.crud");
|
|
11
|
+
var _system = require("./system.crud");
|
|
12
|
+
const createFileManager = config => {
|
|
13
|
+
const filesCrud = (0, _files.createFilesCrud)(config);
|
|
14
|
+
const settingsCrud = (0, _settings.createSettingsCrud)(config);
|
|
15
|
+
const systemCrud = (0, _system.createSystemCrud)(config);
|
|
16
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, filesCrud), settingsCrud), systemCrud), {}, {
|
|
17
|
+
storage: config.storage
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
exports.createFileManager = createFileManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFileManager","config","filesCrud","createFilesCrud","settingsCrud","createSettingsCrud","systemCrud","createSystemCrud","storage"],"sources":["index.ts"],"sourcesContent":["import { FileManagerContextObject, FileManagerStorageOperations } from \"~/types\";\nimport { GetPermissions, SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createFilesCrud } from \"~/createFileManager/files.crud\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport { createSettingsCrud } from \"~/createFileManager/settings.crud\";\nimport { createSystemCrud } from \"~/createFileManager/system.crud\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\n\nexport interface FileManagerConfig {\n storageOperations: FileManagerStorageOperations;\n filesPermissions: FilesPermissions;\n getTenantId: () => string;\n getLocaleCode: () => string;\n getIdentity: () => SecurityIdentity;\n getPermissions: GetPermissions;\n storage: FileStorage;\n WEBINY_VERSION: string;\n}\n\nexport const createFileManager = (config: FileManagerConfig): FileManagerContextObject => {\n const filesCrud = createFilesCrud(config);\n const settingsCrud = createSettingsCrud(config);\n const systemCrud = createSystemCrud(config);\n\n return {\n ...filesCrud,\n ...settingsCrud,\n ...systemCrud,\n storage: config.storage\n };\n};\n"],"mappings":";;;;;;;;AAEA;AAEA;AACA;AAcO,MAAMA,iBAAiB,GAAIC,MAAyB,IAA+B;EACtF,MAAMC,SAAS,GAAG,IAAAC,sBAAe,EAACF,MAAM,CAAC;EACzC,MAAMG,YAAY,GAAG,IAAAC,4BAAkB,EAACJ,MAAM,CAAC;EAC/C,MAAMK,UAAU,GAAG,IAAAC,wBAAgB,EAACN,MAAM,CAAC;EAE3C,2HACOC,SAAS,GACTE,YAAY,GACZE,UAAU;IACbE,OAAO,EAAEP,MAAM,CAACO;EAAO;AAE/B,CAAC;AAAC"}
|