@webiny/api-file-manager 5.34.8 → 5.35.0-beta.0
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/createFileManager/checkBasePermissions.d.ts +5 -0
- package/createFileManager/checkBasePermissions.js +24 -0
- package/createFileManager/checkBasePermissions.js.map +1 -0
- package/createFileManager/files.crud.d.ts +3 -0
- package/createFileManager/files.crud.js +318 -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 +13 -0
- package/createFileManager/index.js +20 -0
- package/createFileManager/index.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/index.d.ts +3 -0
- package/graphql/index.js +288 -0
- package/graphql/index.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 +57 -0
- package/handlers/download/getS3Object.js.map +1 -0
- package/handlers/download/index.d.ts +2 -3
- package/handlers/download/index.js +21 -126
- package/handlers/download/index.js.map +1 -1
- package/handlers/manage/index.js +0 -16
- package/handlers/manage/index.js.map +1 -1
- package/handlers/transform/index.js +12 -19
- package/handlers/transform/index.js.map +1 -1
- 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 +1 -1
- package/handlers/transform/loaders/imageLoader.js +12 -23
- package/handlers/transform/loaders/imageLoader.js.map +1 -1
- package/handlers/transform/loaders/index.d.ts +1 -1
- package/handlers/transform/loaders/index.js +0 -3
- package/handlers/transform/loaders/index.js.map +1 -1
- package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -13
- package/handlers/transform/loaders/sanitizeImageTransformations.js.map +1 -1
- package/handlers/transform/managers/imageManager.js +32 -21
- package/handlers/transform/managers/imageManager.js.map +1 -1
- package/handlers/transform/managers/index.js +0 -3
- package/handlers/transform/managers/index.js.map +1 -1
- package/handlers/transform/optimizeImage.js +0 -6
- package/handlers/transform/optimizeImage.js.map +1 -1
- package/handlers/transform/transformImage.js +0 -5
- package/handlers/transform/transformImage.js.map +1 -1
- package/handlers/transform/utils.d.ts +1 -1
- package/handlers/transform/utils.js +7 -17
- package/handlers/transform/utils.js.map +1 -1
- package/handlers/utils/getEnvironment.js +0 -2
- package/handlers/utils/getEnvironment.js.map +1 -1
- package/handlers/utils/getObjectParams.js +0 -4
- package/handlers/utils/getObjectParams.js.map +1 -1
- package/handlers/utils/index.js +0 -3
- package/handlers/utils/index.js.map +1 -1
- package/index.d.ts +6 -0
- package/index.js +68 -0
- package/index.js.map +1 -0
- package/package.json +21 -23
- package/plugins/FilePhysicalStoragePlugin.d.ts +21 -0
- package/plugins/FilePhysicalStoragePlugin.js +31 -0
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -0
- package/plugins/FileStorageTransformPlugin.d.ts +34 -0
- package/plugins/FileStorageTransformPlugin.js +40 -0
- package/plugins/FileStorageTransformPlugin.js.map +1 -0
- package/plugins/graphql.js +3 -3
- package/plugins/graphql.js.map +1 -1
- package/plugins/index.d.ts +2 -2
- package/plugins/index.js +22 -19
- package/plugins/index.js.map +1 -1
- 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 +33 -0
- package/types/file.js +5 -0
- package/types/file.js.map +1 -0
- package/types/file.lifecycle.d.ts +40 -0
- package/types/file.lifecycle.js +5 -0
- package/types/file.lifecycle.js.map +1 -0
- package/types.d.ts +44 -45
- package/types.js +22 -0
- package/types.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.35.0-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fm:base"
|
|
@@ -18,25 +18,22 @@
|
|
|
18
18
|
],
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@babel/runtime": "7.
|
|
21
|
+
"@babel/runtime": "7.20.13",
|
|
22
22
|
"@commodo/fields": "1.1.2-beta.20",
|
|
23
|
-
"@webiny/api": "5.
|
|
24
|
-
"@webiny/api-security": "5.
|
|
25
|
-
"@webiny/api-tenancy": "5.
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/handler": "5.
|
|
29
|
-
"@webiny/handler-
|
|
30
|
-
"@webiny/handler-
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/
|
|
33
|
-
"@webiny/
|
|
34
|
-
"@webiny/validation": "5.
|
|
35
|
-
"aws-sdk": "2.
|
|
36
|
-
"
|
|
37
|
-
"mdbid": "1.0.0",
|
|
38
|
-
"object-hash": "2.2.0",
|
|
39
|
-
"sanitize-filename": "1.6.3"
|
|
23
|
+
"@webiny/api": "5.35.0-beta.0",
|
|
24
|
+
"@webiny/api-security": "5.35.0-beta.0",
|
|
25
|
+
"@webiny/api-tenancy": "5.35.0-beta.0",
|
|
26
|
+
"@webiny/error": "5.35.0-beta.0",
|
|
27
|
+
"@webiny/handler": "5.35.0-beta.0",
|
|
28
|
+
"@webiny/handler-aws": "5.35.0-beta.0",
|
|
29
|
+
"@webiny/handler-client": "5.35.0-beta.0",
|
|
30
|
+
"@webiny/handler-graphql": "5.35.0-beta.0",
|
|
31
|
+
"@webiny/plugins": "5.35.0-beta.0",
|
|
32
|
+
"@webiny/project-utils": "5.35.0-beta.0",
|
|
33
|
+
"@webiny/pubsub": "5.35.0-beta.0",
|
|
34
|
+
"@webiny/validation": "5.35.0-beta.0",
|
|
35
|
+
"aws-sdk": "2.1310.0",
|
|
36
|
+
"object-hash": "2.2.0"
|
|
40
37
|
},
|
|
41
38
|
"devDependencies": {
|
|
42
39
|
"@babel/cli": "^7.19.3",
|
|
@@ -45,10 +42,11 @@
|
|
|
45
42
|
"@babel/plugin-transform-runtime": "^7.16.4",
|
|
46
43
|
"@babel/preset-env": "^7.19.4",
|
|
47
44
|
"@babel/preset-typescript": "^7.18.6",
|
|
48
|
-
"@webiny/api-i18n": "^5.
|
|
49
|
-
"@webiny/api-i18n-ddb": "^5.
|
|
50
|
-
"@webiny/cli": "^5.
|
|
45
|
+
"@webiny/api-i18n": "^5.35.0-beta.0",
|
|
46
|
+
"@webiny/api-i18n-ddb": "^5.35.0-beta.0",
|
|
47
|
+
"@webiny/cli": "^5.35.0-beta.0",
|
|
51
48
|
"jest": "^28.1.0",
|
|
49
|
+
"mdbid": "^1.0.0",
|
|
52
50
|
"rimraf": "^3.0.2",
|
|
53
51
|
"ttypescript": "^1.5.12",
|
|
54
52
|
"typescript": "4.7.4"
|
|
@@ -72,5 +70,5 @@
|
|
|
72
70
|
]
|
|
73
71
|
}
|
|
74
72
|
},
|
|
75
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "8acc9e8892842cabb3980ce0b6432fde55968d5b"
|
|
76
74
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Plugin } from "@webiny/plugins";
|
|
3
|
+
import { FileManagerSettings } from "../types";
|
|
4
|
+
export interface FilePhysicalStoragePluginParams<U extends FilePhysicalStoragePluginUploadParams, D extends FilePhysicalStoragePluginDeleteParams> {
|
|
5
|
+
upload: (args: U) => Promise<any>;
|
|
6
|
+
delete: (args: D) => Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export interface FilePhysicalStoragePluginUploadParams {
|
|
9
|
+
settings: FileManagerSettings;
|
|
10
|
+
buffer: Buffer;
|
|
11
|
+
}
|
|
12
|
+
export interface FilePhysicalStoragePluginDeleteParams {
|
|
13
|
+
key: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class FilePhysicalStoragePlugin<U extends FilePhysicalStoragePluginUploadParams = FilePhysicalStoragePluginUploadParams, D extends FilePhysicalStoragePluginDeleteParams = FilePhysicalStoragePluginDeleteParams> extends Plugin {
|
|
16
|
+
static readonly type: string;
|
|
17
|
+
private readonly _params;
|
|
18
|
+
constructor(params: FilePhysicalStoragePluginParams<U, D>);
|
|
19
|
+
upload(params: U): Promise<any>;
|
|
20
|
+
delete(params: D): Promise<any>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FilePhysicalStoragePlugin = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _plugins = require("@webiny/plugins");
|
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
+
class FilePhysicalStoragePlugin extends _plugins.Plugin {
|
|
12
|
+
constructor(params) {
|
|
13
|
+
super();
|
|
14
|
+
(0, _defineProperty2.default)(this, "_params", void 0);
|
|
15
|
+
this._params = params;
|
|
16
|
+
}
|
|
17
|
+
async upload(params) {
|
|
18
|
+
if (!this._params.upload) {
|
|
19
|
+
throw new _error.default(`You must define the "upload" method of this plugin.`, "UPLOAD_METHOD_ERROR");
|
|
20
|
+
}
|
|
21
|
+
return this._params.upload(params);
|
|
22
|
+
}
|
|
23
|
+
async delete(params) {
|
|
24
|
+
if (!this._params.delete) {
|
|
25
|
+
throw new _error.default(`You must define the "delete" method of this plugin.`, "DELETE_METHOD_ERROR");
|
|
26
|
+
}
|
|
27
|
+
return this._params.delete(params);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.FilePhysicalStoragePlugin = FilePhysicalStoragePlugin;
|
|
31
|
+
(0, _defineProperty2.default)(FilePhysicalStoragePlugin, "type", "api-file-manager-storage");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FilePhysicalStoragePlugin","Plugin","constructor","params","_params","upload","WebinyError","delete"],"sources":["FilePhysicalStoragePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\nimport { FileManagerSettings } from \"~/types\";\n\nexport interface FilePhysicalStoragePluginParams<\n U extends FilePhysicalStoragePluginUploadParams,\n D extends FilePhysicalStoragePluginDeleteParams\n> {\n upload: (args: U) => Promise<any>;\n delete: (args: D) => Promise<void>;\n}\n\nexport interface FilePhysicalStoragePluginUploadParams {\n settings: FileManagerSettings;\n buffer: Buffer;\n}\n\nexport interface FilePhysicalStoragePluginDeleteParams {\n key: string;\n}\n\nexport class FilePhysicalStoragePlugin<\n U extends FilePhysicalStoragePluginUploadParams = FilePhysicalStoragePluginUploadParams,\n D extends FilePhysicalStoragePluginDeleteParams = FilePhysicalStoragePluginDeleteParams\n> extends Plugin {\n public static override readonly type: string = \"api-file-manager-storage\";\n private readonly _params: FilePhysicalStoragePluginParams<U, D>;\n\n public constructor(params: FilePhysicalStoragePluginParams<U, D>) {\n super();\n this._params = params;\n }\n\n public async upload(params: U): Promise<any> {\n if (!this._params.upload) {\n throw new WebinyError(\n `You must define the \"upload\" method of this plugin.`,\n \"UPLOAD_METHOD_ERROR\"\n );\n }\n return this._params.upload(params);\n }\n\n public async delete(params: D): Promise<any> {\n if (!this._params.delete) {\n throw new WebinyError(\n `You must define the \"delete\" method of this plugin.`,\n \"DELETE_METHOD_ERROR\"\n );\n }\n return this._params.delete(params);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAoBO,MAAMA,yBAAyB,SAG5BC,eAAM,CAAC;EAINC,WAAW,CAACC,MAA6C,EAAE;IAC9D,KAAK,EAAE;IAAC;IACR,IAAI,CAACC,OAAO,GAAGD,MAAM;EACzB;EAEA,MAAaE,MAAM,CAACF,MAAS,EAAgB;IACzC,IAAI,CAAC,IAAI,CAACC,OAAO,CAACC,MAAM,EAAE;MACtB,MAAM,IAAIC,cAAW,CAChB,qDAAoD,EACrD,qBAAqB,CACxB;IACL;IACA,OAAO,IAAI,CAACF,OAAO,CAACC,MAAM,CAACF,MAAM,CAAC;EACtC;EAEA,MAAaI,MAAM,CAACJ,MAAS,EAAgB;IACzC,IAAI,CAAC,IAAI,CAACC,OAAO,CAACG,MAAM,EAAE;MACtB,MAAM,IAAID,cAAW,CAChB,qDAAoD,EACrD,qBAAqB,CACxB;IACL;IACA,OAAO,IAAI,CAACF,OAAO,CAACG,MAAM,CAACJ,MAAM,CAAC;EACtC;AACJ;AAAC;AAAA,8BA/BYH,yBAAyB,UAIa,0BAA0B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { File } from "../types";
|
|
3
|
+
export interface FileStorageTransformPluginToParams {
|
|
4
|
+
/**
|
|
5
|
+
* File that is being sent to the storage operations method.
|
|
6
|
+
*/
|
|
7
|
+
file: File & Record<string, any>;
|
|
8
|
+
}
|
|
9
|
+
export interface FileStorageTransformPluginFromParams {
|
|
10
|
+
/**
|
|
11
|
+
* File that was fetched from the storage operations method.
|
|
12
|
+
*/
|
|
13
|
+
file: File & Record<string, any>;
|
|
14
|
+
}
|
|
15
|
+
export interface FileStorageTransformPluginParams {
|
|
16
|
+
toStorage?: (params: FileStorageTransformPluginToParams) => Promise<File & Record<string, any>>;
|
|
17
|
+
fromStorage?: (params: FileStorageTransformPluginFromParams) => Promise<File & Record<string, any>>;
|
|
18
|
+
}
|
|
19
|
+
export declare class FileStorageTransformPlugin extends Plugin {
|
|
20
|
+
static readonly type: string;
|
|
21
|
+
private readonly _params;
|
|
22
|
+
constructor(params: FileStorageTransformPluginParams);
|
|
23
|
+
/**
|
|
24
|
+
* Transform the file value into something that can be stored.
|
|
25
|
+
* Be aware that you must return the whole file object.
|
|
26
|
+
*/
|
|
27
|
+
toStorage(params: FileStorageTransformPluginToParams): Promise<File & Record<string, any>>;
|
|
28
|
+
/**
|
|
29
|
+
* Transform the file value from the storage type to one required by our system.
|
|
30
|
+
* Be aware that you must return the whole file object.
|
|
31
|
+
* This method MUST reverse what ever toStorage method changed on the file object.
|
|
32
|
+
*/
|
|
33
|
+
fromStorage(params: FileStorageTransformPluginFromParams): Promise<File & Record<string, any>>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FileStorageTransformPlugin = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _plugins = require("@webiny/plugins");
|
|
10
|
+
class FileStorageTransformPlugin extends _plugins.Plugin {
|
|
11
|
+
constructor(params) {
|
|
12
|
+
super();
|
|
13
|
+
(0, _defineProperty2.default)(this, "_params", void 0);
|
|
14
|
+
this._params = params;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Transform the file value into something that can be stored.
|
|
19
|
+
* Be aware that you must return the whole file object.
|
|
20
|
+
*/
|
|
21
|
+
async toStorage(params) {
|
|
22
|
+
if (!this._params.toStorage) {
|
|
23
|
+
return params.file;
|
|
24
|
+
}
|
|
25
|
+
return this._params.toStorage(params);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Transform the file value from the storage type to one required by our system.
|
|
29
|
+
* Be aware that you must return the whole file object.
|
|
30
|
+
* This method MUST reverse what ever toStorage method changed on the file object.
|
|
31
|
+
*/
|
|
32
|
+
async fromStorage(params) {
|
|
33
|
+
if (!this._params.fromStorage) {
|
|
34
|
+
return params.file;
|
|
35
|
+
}
|
|
36
|
+
return this._params.fromStorage(params);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.FileStorageTransformPlugin = FileStorageTransformPlugin;
|
|
40
|
+
(0, _defineProperty2.default)(FileStorageTransformPlugin, "type", "fm.files.storage.transform");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FileStorageTransformPlugin","Plugin","constructor","params","_params","toStorage","file","fromStorage"],"sources":["FileStorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { File } from \"~/types\";\n\nexport interface FileStorageTransformPluginToParams {\n /**\n * File that is being sent to the storage operations method.\n */\n file: File & Record<string, any>;\n}\n\nexport interface FileStorageTransformPluginFromParams {\n /**\n * File that was fetched from the storage operations method.\n */\n file: File & Record<string, any>;\n}\n\nexport interface FileStorageTransformPluginParams {\n toStorage?: (params: FileStorageTransformPluginToParams) => Promise<File & Record<string, any>>;\n fromStorage?: (\n params: FileStorageTransformPluginFromParams\n ) => Promise<File & Record<string, any>>;\n}\n\nexport class FileStorageTransformPlugin extends Plugin {\n public static override readonly type: string = \"fm.files.storage.transform\";\n private readonly _params: FileStorageTransformPluginParams;\n\n public constructor(params: FileStorageTransformPluginParams) {\n super();\n\n this._params = params;\n }\n\n /**\n * Transform the file value into something that can be stored.\n * Be aware that you must return the whole file object.\n */\n public async toStorage(\n params: FileStorageTransformPluginToParams\n ): Promise<File & Record<string, any>> {\n if (!this._params.toStorage) {\n return params.file;\n }\n return this._params.toStorage(params);\n }\n /**\n * Transform the file value from the storage type to one required by our system.\n * Be aware that you must return the whole file object.\n * This method MUST reverse what ever toStorage method changed on the file object.\n */\n public async fromStorage(\n params: FileStorageTransformPluginFromParams\n ): Promise<File & Record<string, any>> {\n if (!this._params.fromStorage) {\n return params.file;\n }\n return this._params.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAwBO,MAAMA,0BAA0B,SAASC,eAAM,CAAC;EAI5CC,WAAW,CAACC,MAAwC,EAAE;IACzD,KAAK,EAAE;IAAC;IAER,IAAI,CAACC,OAAO,GAAGD,MAAM;EACzB;;EAEA;AACJ;AACA;AACA;EACI,MAAaE,SAAS,CAClBF,MAA0C,EACP;IACnC,IAAI,CAAC,IAAI,CAACC,OAAO,CAACC,SAAS,EAAE;MACzB,OAAOF,MAAM,CAACG,IAAI;IACtB;IACA,OAAO,IAAI,CAACF,OAAO,CAACC,SAAS,CAACF,MAAM,CAAC;EACzC;EACA;AACJ;AACA;AACA;AACA;EACI,MAAaI,WAAW,CACpBJ,MAA4C,EACT;IACnC,IAAI,CAAC,IAAI,CAACC,OAAO,CAACG,WAAW,EAAE;MAC3B,OAAOJ,MAAM,CAACG,IAAI;IACtB;IACA,OAAO,IAAI,CAACF,OAAO,CAACG,WAAW,CAACJ,MAAM,CAAC;EAC3C;AACJ;AAAC;AAAA,8BAnCYH,0BAA0B,UACY,4BAA4B"}
|
package/plugins/graphql.js
CHANGED
|
@@ -36,7 +36,7 @@ const plugin = {
|
|
|
36
36
|
input FileInput {
|
|
37
37
|
key: String
|
|
38
38
|
name: String
|
|
39
|
-
size:
|
|
39
|
+
size: Int
|
|
40
40
|
type: String
|
|
41
41
|
tags: [String]
|
|
42
42
|
meta: JSON
|
|
@@ -45,7 +45,7 @@ const plugin = {
|
|
|
45
45
|
type UploadFileResponseDataFile {
|
|
46
46
|
name: String
|
|
47
47
|
type: String
|
|
48
|
-
size:
|
|
48
|
+
size: Int
|
|
49
49
|
key: String
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -88,7 +88,7 @@ const plugin = {
|
|
|
88
88
|
id: ID
|
|
89
89
|
key: String
|
|
90
90
|
name: String
|
|
91
|
-
size:
|
|
91
|
+
size: Int
|
|
92
92
|
type: String
|
|
93
93
|
src: String
|
|
94
94
|
tags: [String]
|
package/plugins/graphql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["emptyResolver","resolve","fn","Response","e","ErrorResponse","plugin","type","schema","typeDefs","resolvers","File","src","file","_","context","settings","fileManager","getSettings","srcPrefix","key","Query","Mutation","FmQuery","getFile","args","files","id","listFiles","data","meta","ListResponse","listTags","error","version","__","i18n","tenancy","getCurrentTenant","getContentLocale","system","getVersion","FmMutation","createFile","updateFile","createFiles","createFilesInBatch","deleteFile","storage","delete","install","upgrade","updateSettings"],"sources":["graphql.ts"],"sourcesContent":["import { Response, ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { FileManagerContext, FilesListOpts } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\n\nconst emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nconst resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n\nconst plugin: GraphQLSchemaPlugin<FileManagerContext> = {\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type FmCreatedBy {\n id: ID\n displayName: String\n }\n\n input FileInput {\n key: String\n name: String\n size: Long\n type: String\n tags: [String]\n meta: JSON\n }\n\n type UploadFileResponseDataFile {\n name: String\n type: String\n size: Long\n key: String\n }\n\n type UploadFileResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON\n file: UploadFileResponseDataFile\n }\n\n type FileListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FileError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FileListResponse {\n data: [File]\n meta: FileListMeta\n error: FileError\n }\n\n type FileResponse {\n data: File\n error: FileError\n }\n\n type CreateFilesResponse {\n data: [File]!\n error: FileError\n }\n\n type File {\n id: ID\n key: String\n name: String\n size: Long\n type: String\n src: String\n tags: [String]\n meta: JSON\n createdOn: DateTime\n createdBy: FmCreatedBy\n }\n\n type FileManagerBooleanResponse {\n data: Boolean\n error: FileError\n }\n\n type FileManagerSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FileManagerSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FileManagerSettingsResponse {\n data: FileManagerSettings\n error: FileError\n }\n\n input FileWhereInput {\n search: String\n type: String\n type_in: [String!]\n tag: String\n tag_in: [String!]\n tag_and_in: [String!]\n tag_startsWith: String\n tag_not_startsWith: String\n id_in: [ID!]\n id: ID\n createdBy: ID\n }\n\n input TagWhereInput {\n tag_startsWith: String\n tag_not_startsWith: String\n }\n\n type FmQuery {\n getFile(id: ID, where: JSON, sort: String): FileResponse\n\n listFiles(\n limit: Int\n after: String\n types: [String]\n tags: [String]\n ids: [ID]\n search: String\n where: FileWhereInput\n ): FileListResponse\n\n listTags(where: TagWhereInput): [String]\n\n # Get installed version\n version: String\n\n getSettings: FileManagerSettingsResponse\n }\n\n type FilesDeleteResponse {\n data: Boolean\n error: FileError\n }\n\n type FmMutation {\n createFile(data: FileInput!): FileResponse\n createFiles(data: [FileInput]!): CreateFilesResponse\n updateFile(id: ID!, data: FileInput!): FileResponse\n deleteFile(id: ID!): FilesDeleteResponse\n\n # Install File manager\n install(srcPrefix: String): FileManagerBooleanResponse\n\n upgrade(version: String!): FileManagerBooleanResponse\n\n updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse\n }\n\n input FilesInstallInput {\n srcPrefix: String!\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n File: {\n async src(file, _, context: FileManagerContext) {\n const settings = await context.fileManager.settings.getSettings();\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n getFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.getFile(args.id));\n },\n async listFiles(_, args: FilesListOpts, context) {\n try {\n const [data, meta] = await context.fileManager.files.listFiles(args);\n return new ListResponse(data, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n async listTags(_, args: any, context) {\n try {\n return await context.fileManager.files.listTags(args || {});\n } catch (error) {\n return new ErrorResponse(error);\n }\n },\n async version(_, __, context) {\n const { i18n, tenancy, fileManager } = context;\n if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {\n return null;\n }\n\n return await fileManager.system.getVersion();\n },\n async getSettings(_, __, context) {\n return resolve(() => context.fileManager.settings.getSettings());\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFile(args.data));\n },\n async updateFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.updateFile(args.id, args.data));\n },\n async createFiles(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFilesInBatch(args.data));\n },\n async deleteFile(_, args: any, context) {\n return resolve(async () => {\n const file = await context.fileManager.files.getFile(args.id);\n return await context.fileManager.storage.delete({\n id: file.id,\n key: file.key\n });\n });\n },\n async install(_, args: any, context) {\n return resolve(() =>\n context.fileManager.system.install({ srcPrefix: args.srcPrefix })\n );\n },\n async upgrade(_, args: any, context) {\n return resolve(() => context.fileManager.system.upgrade(args.version));\n },\n async updateSettings(_, args: any, context) {\n return resolve(() => context.fileManager.settings.updateSettings(args.data));\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;AAAA;;AAIA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;AAEA;AACA;AACA;AACA;;;AAKA,MAAMC,OAAO,GAAG,MAAOC,EAAP,IAA+B;EAC3C,IAAI;IACA,OAAO,IAAIC,wBAAJ,CAAa,MAAMD,EAAE,EAArB,CAAP;EACH,CAFD,CAEE,OAAOE,CAAP,EAAU;IACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;EACH;AACJ,CAND;;AAQA,MAAME,MAA+C,GAAG;EACpDC,IAAI,EAAE,gBAD8C;EAEpDC,MAAM,EAAE;IACJC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAnKY;IAoKJC,SAAS,EAAE;MACPC,IAAI,EAAE;QACF,MAAM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"}
|
|
1
|
+
{"version":3,"names":["emptyResolver","resolve","fn","Response","e","ErrorResponse","plugin","type","schema","typeDefs","resolvers","File","src","file","_","context","settings","fileManager","getSettings","srcPrefix","key","Query","Mutation","FmQuery","getFile","args","files","id","listFiles","data","meta","ListResponse","listTags","error","version","__","i18n","tenancy","getCurrentTenant","getContentLocale","system","getVersion","FmMutation","createFile","updateFile","createFiles","createFilesInBatch","deleteFile","storage","delete","install","upgrade","updateSettings"],"sources":["graphql.ts"],"sourcesContent":["import { Response, ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { FileManagerContext, FilesListOpts } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\n\nconst emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nconst resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n\nconst plugin: GraphQLSchemaPlugin<FileManagerContext> = {\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type FmCreatedBy {\n id: ID\n displayName: String\n }\n\n input FileInput {\n key: String\n name: String\n size: Int\n type: String\n tags: [String]\n meta: JSON\n }\n\n type UploadFileResponseDataFile {\n name: String\n type: String\n size: Int\n key: String\n }\n\n type UploadFileResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON\n file: UploadFileResponseDataFile\n }\n\n type FileListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FileError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FileListResponse {\n data: [File]\n meta: FileListMeta\n error: FileError\n }\n\n type FileResponse {\n data: File\n error: FileError\n }\n\n type CreateFilesResponse {\n data: [File]!\n error: FileError\n }\n\n type File {\n id: ID\n key: String\n name: String\n size: Int\n type: String\n src: String\n tags: [String]\n meta: JSON\n createdOn: DateTime\n createdBy: FmCreatedBy\n }\n\n type FileManagerBooleanResponse {\n data: Boolean\n error: FileError\n }\n\n type FileManagerSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FileManagerSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FileManagerSettingsResponse {\n data: FileManagerSettings\n error: FileError\n }\n\n input FileWhereInput {\n search: String\n type: String\n type_in: [String!]\n tag: String\n tag_in: [String!]\n tag_and_in: [String!]\n tag_startsWith: String\n tag_not_startsWith: String\n id_in: [ID!]\n id: ID\n createdBy: ID\n }\n\n input TagWhereInput {\n tag_startsWith: String\n tag_not_startsWith: String\n }\n\n type FmQuery {\n getFile(id: ID, where: JSON, sort: String): FileResponse\n\n listFiles(\n limit: Int\n after: String\n types: [String]\n tags: [String]\n ids: [ID]\n search: String\n where: FileWhereInput\n ): FileListResponse\n\n listTags(where: TagWhereInput): [String]\n\n # Get installed version\n version: String\n\n getSettings: FileManagerSettingsResponse\n }\n\n type FilesDeleteResponse {\n data: Boolean\n error: FileError\n }\n\n type FmMutation {\n createFile(data: FileInput!): FileResponse\n createFiles(data: [FileInput]!): CreateFilesResponse\n updateFile(id: ID!, data: FileInput!): FileResponse\n deleteFile(id: ID!): FilesDeleteResponse\n\n # Install File manager\n install(srcPrefix: String): FileManagerBooleanResponse\n\n upgrade(version: String!): FileManagerBooleanResponse\n\n updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse\n }\n\n input FilesInstallInput {\n srcPrefix: String!\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n File: {\n async src(file, _, context: FileManagerContext) {\n const settings = await context.fileManager.settings.getSettings();\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n getFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.getFile(args.id));\n },\n async listFiles(_, args: FilesListOpts, context) {\n try {\n const [data, meta] = await context.fileManager.files.listFiles(args);\n return new ListResponse(data, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n async listTags(_, args: any, context) {\n try {\n return await context.fileManager.files.listTags(args || {});\n } catch (error) {\n return new ErrorResponse(error);\n }\n },\n async version(_, __, context) {\n const { i18n, tenancy, fileManager } = context;\n if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {\n return null;\n }\n\n return await fileManager.system.getVersion();\n },\n async getSettings(_, __, context) {\n return resolve(() => context.fileManager.settings.getSettings());\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFile(args.data));\n },\n async updateFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.updateFile(args.id, args.data));\n },\n async createFiles(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFilesInBatch(args.data));\n },\n async deleteFile(_, args: any, context) {\n return resolve(async () => {\n const file = await context.fileManager.files.getFile(args.id);\n return await context.fileManager.storage.delete({\n id: file.id,\n key: file.key\n });\n });\n },\n async install(_, args: any, context) {\n return resolve(() =>\n context.fileManager.system.install({ srcPrefix: args.srcPrefix })\n );\n },\n async upgrade(_, args: any, context) {\n return resolve(() => context.fileManager.system.upgrade(args.version));\n },\n async updateSettings(_, args: any, context) {\n return resolve(() => context.fileManager.settings.updateSettings(args.data));\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;AAAA;;AAIA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;AAEA;AACA;AACA;AACA;;;AAKA,MAAMC,OAAO,GAAG,MAAOC,EAAP,IAA+B;EAC3C,IAAI;IACA,OAAO,IAAIC,wBAAJ,CAAa,MAAMD,EAAE,EAArB,CAAP;EACH,CAFD,CAEE,OAAOE,CAAP,EAAU;IACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;EACH;AACJ,CAND;;AAQA,MAAME,MAA+C,GAAG;EACpDC,IAAI,EAAE,gBAD8C;EAEpDC,MAAM,EAAE;IACJC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAnKY;IAoKJC,SAAS,EAAE;MACPC,IAAI,EAAE;QACF,MAAM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"}
|
package/plugins/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export * from "./FilePhysicalStoragePlugin";
|
|
2
|
+
export * from "./FileStorageTransformPlugin";
|
package/plugins/index.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
6
|
+
var _FilePhysicalStoragePlugin = require("./FilePhysicalStoragePlugin");
|
|
7
|
+
Object.keys(_FilePhysicalStoragePlugin).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _FilePhysicalStoragePlugin[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _FilePhysicalStoragePlugin[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _FileStorageTransformPlugin = require("./FileStorageTransformPlugin");
|
|
18
|
+
Object.keys(_FileStorageTransformPlugin).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _FileStorageTransformPlugin[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _FileStorageTransformPlugin[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
package/plugins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./FilePhysicalStoragePlugin\";\nexport * from \"./FileStorageTransformPlugin\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { FileManagerContext } from "../types";
|
|
3
|
+
export declare type Result = Record<string, any>;
|
|
4
|
+
export interface FileStorageUploadParams {
|
|
5
|
+
buffer: Buffer;
|
|
6
|
+
hideInFileManager: boolean | string;
|
|
7
|
+
size: number;
|
|
8
|
+
name: string;
|
|
9
|
+
type: string;
|
|
10
|
+
id?: string;
|
|
11
|
+
key?: string;
|
|
12
|
+
tags?: string[];
|
|
13
|
+
keyPrefix?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface FileStorageDeleteParams {
|
|
16
|
+
id: string;
|
|
17
|
+
key: string;
|
|
18
|
+
}
|
|
19
|
+
export interface FileStorageUploadMultipleParams {
|
|
20
|
+
files: FileStorageUploadParams[];
|
|
21
|
+
}
|
|
22
|
+
export interface FileStorageParams {
|
|
23
|
+
context: FileManagerContext;
|
|
24
|
+
}
|
|
25
|
+
export declare class FileStorage {
|
|
26
|
+
private readonly storagePlugin;
|
|
27
|
+
private readonly context;
|
|
28
|
+
constructor({ context }: FileStorageParams);
|
|
29
|
+
upload(params: FileStorageUploadParams): Promise<Result>;
|
|
30
|
+
uploadFiles({ files }: FileStorageUploadMultipleParams): Promise<import("../types").File[]>;
|
|
31
|
+
delete(params: FileStorageDeleteParams): Promise<boolean>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FileStorage = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
+
const storagePluginType = "api-file-manager-storage";
|
|
12
|
+
class FileStorage {
|
|
13
|
+
constructor({
|
|
14
|
+
context
|
|
15
|
+
}) {
|
|
16
|
+
(0, _defineProperty2.default)(this, "storagePlugin", void 0);
|
|
17
|
+
(0, _defineProperty2.default)(this, "context", void 0);
|
|
18
|
+
const storagePlugin = context.plugins.byType(storagePluginType).pop();
|
|
19
|
+
if (!storagePlugin) {
|
|
20
|
+
throw new _error.default(`Missing plugin of type "${storagePluginType}".`, "STORAGE_PLUGIN_ERROR");
|
|
21
|
+
}
|
|
22
|
+
this.storagePlugin = storagePlugin;
|
|
23
|
+
this.context = context;
|
|
24
|
+
}
|
|
25
|
+
async upload(params) {
|
|
26
|
+
const settings = await this.context.fileManager.getSettings();
|
|
27
|
+
if (!settings) {
|
|
28
|
+
throw new _error.default("Missing File Manager Settings.", "FILE_MANAGER_ERROR");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Add file to cloud storage.
|
|
32
|
+
const {
|
|
33
|
+
file: fileData
|
|
34
|
+
} = await this.storagePlugin.upload((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
35
|
+
settings
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
// Save file in DB.
|
|
39
|
+
return this.context.fileManager.createFile((0, _objectSpread2.default)((0, _objectSpread2.default)({}, fileData), {}, {
|
|
40
|
+
meta: {
|
|
41
|
+
private: Boolean(params.hideInFileManager)
|
|
42
|
+
},
|
|
43
|
+
tags: Array.isArray(params.tags) ? params.tags : []
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
async uploadFiles({
|
|
47
|
+
files
|
|
48
|
+
}) {
|
|
49
|
+
const settings = await this.context.fileManager.getSettings();
|
|
50
|
+
if (!settings) {
|
|
51
|
+
throw new _error.default("Missing File Manager Settings.", "FILE_MANAGER_ERROR");
|
|
52
|
+
}
|
|
53
|
+
const filesData = await Promise.all(files.map(async item => {
|
|
54
|
+
// TODO: improve types of this.storagePlugin.
|
|
55
|
+
const {
|
|
56
|
+
file
|
|
57
|
+
} = await this.storagePlugin.upload((0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
58
|
+
settings
|
|
59
|
+
}));
|
|
60
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, file), {}, {
|
|
61
|
+
meta: {
|
|
62
|
+
private: Boolean(item.hideInFileManager)
|
|
63
|
+
},
|
|
64
|
+
tags: Array.isArray(item.tags) ? item.tags : []
|
|
65
|
+
});
|
|
66
|
+
}));
|
|
67
|
+
return this.context.fileManager.createFilesInBatch(filesData);
|
|
68
|
+
}
|
|
69
|
+
async delete(params) {
|
|
70
|
+
const {
|
|
71
|
+
id,
|
|
72
|
+
key
|
|
73
|
+
} = params;
|
|
74
|
+
const {
|
|
75
|
+
fileManager
|
|
76
|
+
} = this.context;
|
|
77
|
+
// Delete file from cloud storage.
|
|
78
|
+
await this.storagePlugin.delete({
|
|
79
|
+
key
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// Delete file from the DB.
|
|
83
|
+
return await fileManager.deleteFile(id);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.FileStorage = FileStorage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["storagePluginType","FileStorage","constructor","context","storagePlugin","plugins","byType","pop","WebinyError","upload","params","settings","fileManager","getSettings","file","fileData","createFile","meta","private","Boolean","hideInFileManager","tags","Array","isArray","uploadFiles","files","filesData","Promise","all","map","item","createFilesInBatch","delete","id","key","deleteFile"],"sources":["FileStorage.ts"],"sourcesContent":["import { FileManagerContext } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { FilePhysicalStoragePlugin } from \"~/plugins/FilePhysicalStoragePlugin\";\n\nexport type Result = Record<string, any>;\n\nconst storagePluginType = \"api-file-manager-storage\";\n\nexport interface FileStorageUploadParams {\n buffer: Buffer;\n hideInFileManager: boolean | string;\n size: number;\n name: string;\n type: string;\n id?: string;\n key?: string;\n tags?: string[];\n keyPrefix?: string;\n}\nexport interface FileStorageDeleteParams {\n id: string;\n key: string;\n}\n\nexport interface FileStorageUploadMultipleParams {\n files: FileStorageUploadParams[];\n}\n\nexport interface FileStorageParams {\n context: FileManagerContext;\n}\nexport class FileStorage {\n private readonly storagePlugin: FilePhysicalStoragePlugin;\n private readonly context: FileManagerContext;\n\n constructor({ context }: FileStorageParams) {\n const storagePlugin = context.plugins\n .byType<FilePhysicalStoragePlugin>(storagePluginType)\n .pop();\n\n if (!storagePlugin) {\n throw new WebinyError(\n `Missing plugin of type \"${storagePluginType}\".`,\n \"STORAGE_PLUGIN_ERROR\"\n );\n }\n this.storagePlugin = storagePlugin;\n this.context = context;\n }\n\n async upload(params: FileStorageUploadParams): Promise<Result> {\n const settings = await this.context.fileManager.getSettings();\n if (!settings) {\n throw new WebinyError(\"Missing File Manager Settings.\", \"FILE_MANAGER_ERROR\");\n }\n\n // Add file to cloud storage.\n const { file: fileData } = await this.storagePlugin.upload({\n ...params,\n settings\n });\n\n // Save file in DB.\n return this.context.fileManager.createFile({\n ...(fileData as any),\n meta: {\n private: Boolean(params.hideInFileManager)\n },\n tags: Array.isArray(params.tags) ? params.tags : []\n });\n }\n\n async uploadFiles({ files }: FileStorageUploadMultipleParams) {\n const settings = await this.context.fileManager.getSettings();\n if (!settings) {\n throw new WebinyError(\"Missing File Manager Settings.\", \"FILE_MANAGER_ERROR\");\n }\n\n const filesData = await Promise.all(\n files.map(async item => {\n // TODO: improve types of this.storagePlugin.\n const { file } = await this.storagePlugin.upload({\n ...item,\n settings\n });\n\n return {\n ...file,\n meta: {\n private: Boolean(item.hideInFileManager)\n },\n tags: Array.isArray(item.tags) ? item.tags : []\n };\n })\n );\n\n return this.context.fileManager.createFilesInBatch(filesData);\n }\n\n async delete(params: FileStorageDeleteParams) {\n const { id, key } = params;\n const { fileManager } = this.context;\n // Delete file from cloud storage.\n await this.storagePlugin.delete({\n key\n });\n\n // Delete file from the DB.\n return await fileManager.deleteFile(id);\n }\n}\n"],"mappings":";;;;;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,0BAA0B;AAyB7C,MAAMC,WAAW,CAAC;EAIrBC,WAAW,CAAC;IAAEC;EAA2B,CAAC,EAAE;IAAA;IAAA;IACxC,MAAMC,aAAa,GAAGD,OAAO,CAACE,OAAO,CAChCC,MAAM,CAA4BN,iBAAiB,CAAC,CACpDO,GAAG,EAAE;IAEV,IAAI,CAACH,aAAa,EAAE;MAChB,MAAM,IAAII,cAAW,CAChB,2BAA0BR,iBAAkB,IAAG,EAChD,sBAAsB,CACzB;IACL;IACA,IAAI,CAACI,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACD,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMM,MAAM,CAACC,MAA+B,EAAmB;IAC3D,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACR,OAAO,CAACS,WAAW,CAACC,WAAW,EAAE;IAC7D,IAAI,CAACF,QAAQ,EAAE;MACX,MAAM,IAAIH,cAAW,CAAC,gCAAgC,EAAE,oBAAoB,CAAC;IACjF;;IAEA;IACA,MAAM;MAAEM,IAAI,EAAEC;IAAS,CAAC,GAAG,MAAM,IAAI,CAACX,aAAa,CAACK,MAAM,6DACnDC,MAAM;MACTC;IAAQ,GACV;;IAEF;IACA,OAAO,IAAI,CAACR,OAAO,CAACS,WAAW,CAACI,UAAU,6DAClCD,QAAQ;MACZE,IAAI,EAAE;QACFC,OAAO,EAAEC,OAAO,CAACT,MAAM,CAACU,iBAAiB;MAC7C,CAAC;MACDC,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACb,MAAM,CAACW,IAAI,CAAC,GAAGX,MAAM,CAACW,IAAI,GAAG;IAAE,GACrD;EACN;EAEA,MAAMG,WAAW,CAAC;IAAEC;EAAuC,CAAC,EAAE;IAC1D,MAAMd,QAAQ,GAAG,MAAM,IAAI,CAACR,OAAO,CAACS,WAAW,CAACC,WAAW,EAAE;IAC7D,IAAI,CAACF,QAAQ,EAAE;MACX,MAAM,IAAIH,cAAW,CAAC,gCAAgC,EAAE,oBAAoB,CAAC;IACjF;IAEA,MAAMkB,SAAS,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC/BH,KAAK,CAACI,GAAG,CAAC,MAAMC,IAAI,IAAI;MACpB;MACA,MAAM;QAAEhB;MAAK,CAAC,GAAG,MAAM,IAAI,CAACV,aAAa,CAACK,MAAM,6DACzCqB,IAAI;QACPnB;MAAQ,GACV;MAEF,mEACOG,IAAI;QACPG,IAAI,EAAE;UACFC,OAAO,EAAEC,OAAO,CAACW,IAAI,CAACV,iBAAiB;QAC3C,CAAC;QACDC,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACO,IAAI,CAACT,IAAI,CAAC,GAAGS,IAAI,CAACT,IAAI,GAAG;MAAE;IAEvD,CAAC,CAAC,CACL;IAED,OAAO,IAAI,CAAClB,OAAO,CAACS,WAAW,CAACmB,kBAAkB,CAACL,SAAS,CAAC;EACjE;EAEA,MAAMM,MAAM,CAACtB,MAA+B,EAAE;IAC1C,MAAM;MAAEuB,EAAE;MAAEC;IAAI,CAAC,GAAGxB,MAAM;IAC1B,MAAM;MAAEE;IAAY,CAAC,GAAG,IAAI,CAACT,OAAO;IACpC;IACA,MAAM,IAAI,CAACC,aAAa,CAAC4B,MAAM,CAAC;MAC5BE;IACJ,CAAC,CAAC;;IAEF;IACA,OAAO,MAAMtB,WAAW,CAACuB,UAAU,CAACF,EAAE,CAAC;EAC3C;AACJ;AAAC"}
|
package/types/file.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface File {
|
|
2
|
+
id: string;
|
|
3
|
+
key: string;
|
|
4
|
+
size: number;
|
|
5
|
+
type: string;
|
|
6
|
+
name: string;
|
|
7
|
+
meta: Record<string, any>;
|
|
8
|
+
tags: string[];
|
|
9
|
+
aliases: string[];
|
|
10
|
+
createdOn: string;
|
|
11
|
+
createdBy: CreatedBy;
|
|
12
|
+
/**
|
|
13
|
+
* Added with new storage operations refactoring.
|
|
14
|
+
*/
|
|
15
|
+
tenant: string;
|
|
16
|
+
locale: string;
|
|
17
|
+
webinyVersion: string;
|
|
18
|
+
/**
|
|
19
|
+
* User can add new fields to the File object so we must allow it in the types.
|
|
20
|
+
*/
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
}
|
|
23
|
+
export interface FileAlias {
|
|
24
|
+
tenant: string;
|
|
25
|
+
locale: string;
|
|
26
|
+
fileId: string;
|
|
27
|
+
alias: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CreatedBy {
|
|
30
|
+
id: string;
|
|
31
|
+
displayName: string | null;
|
|
32
|
+
type: string;
|
|
33
|
+
}
|
package/types/file.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["file.ts"],"sourcesContent":["export interface File {\n id: string;\n key: string;\n size: number;\n type: string;\n name: string;\n meta: Record<string, any>;\n tags: string[];\n aliases: string[];\n createdOn: string;\n createdBy: CreatedBy;\n /**\n * Added with new storage operations refactoring.\n */\n tenant: string;\n locale: string;\n webinyVersion: string;\n /**\n * User can add new fields to the File object so we must allow it in the types.\n */\n [key: string]: any;\n}\n\nexport interface FileAlias {\n tenant: string;\n locale: string;\n fileId: string;\n alias: string;\n}\n\nexport interface CreatedBy {\n id: string;\n displayName: string | null;\n type: string;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Topic } from "@webiny/pubsub/types";
|
|
2
|
+
import { File } from "./file";
|
|
3
|
+
export interface OnFileBeforeCreateTopicParams<TFile extends File = File> {
|
|
4
|
+
file: TFile;
|
|
5
|
+
}
|
|
6
|
+
export interface OnFileAfterCreateTopicParams<TFile extends File = File> {
|
|
7
|
+
file: TFile;
|
|
8
|
+
}
|
|
9
|
+
export interface OnFileBeforeBatchCreateTopicParams<TFile extends File = File> {
|
|
10
|
+
files: TFile[];
|
|
11
|
+
}
|
|
12
|
+
export interface OnFileAfterBatchCreateTopicParams<TFile extends File = File> {
|
|
13
|
+
files: TFile[];
|
|
14
|
+
}
|
|
15
|
+
export interface OnFileBeforeUpdateTopicParams<TFile extends File = File> {
|
|
16
|
+
original: TFile;
|
|
17
|
+
file: TFile;
|
|
18
|
+
input: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
export interface OnFileAfterUpdateTopicParams<TFile extends File = File> {
|
|
21
|
+
original: TFile;
|
|
22
|
+
file: TFile;
|
|
23
|
+
input: Record<string, any>;
|
|
24
|
+
}
|
|
25
|
+
export interface OnFileBeforeDeleteTopicParams<TFile extends File = File> {
|
|
26
|
+
file: TFile;
|
|
27
|
+
}
|
|
28
|
+
export interface OnFileAfterDeleteTopicParams<TFile extends File = File> {
|
|
29
|
+
file: TFile;
|
|
30
|
+
}
|
|
31
|
+
export interface FileLifecycleEvents {
|
|
32
|
+
onFileBeforeCreate: Topic<OnFileBeforeCreateTopicParams>;
|
|
33
|
+
onFileAfterCreate: Topic<OnFileAfterCreateTopicParams>;
|
|
34
|
+
onFileBeforeBatchCreate: Topic<OnFileBeforeBatchCreateTopicParams>;
|
|
35
|
+
onFileAfterBatchCreate: Topic<OnFileAfterBatchCreateTopicParams>;
|
|
36
|
+
onFileBeforeUpdate: Topic<OnFileBeforeUpdateTopicParams>;
|
|
37
|
+
onFileAfterUpdate: Topic<OnFileAfterUpdateTopicParams>;
|
|
38
|
+
onFileBeforeDelete: Topic<OnFileBeforeDeleteTopicParams>;
|
|
39
|
+
onFileAfterDelete: Topic<OnFileAfterDeleteTopicParams>;
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["file.lifecycle.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { File } from \"./file\";\n\nexport interface OnFileBeforeCreateTopicParams<TFile extends File = File> {\n file: TFile;\n}\n\nexport interface OnFileAfterCreateTopicParams<TFile extends File = File> {\n file: TFile;\n}\n\nexport interface OnFileBeforeBatchCreateTopicParams<TFile extends File = File> {\n files: TFile[];\n}\n\nexport interface OnFileAfterBatchCreateTopicParams<TFile extends File = File> {\n files: TFile[];\n}\n\nexport interface OnFileBeforeUpdateTopicParams<TFile extends File = File> {\n original: TFile;\n file: TFile;\n input: Record<string, any>;\n}\n\nexport interface OnFileAfterUpdateTopicParams<TFile extends File = File> {\n original: TFile;\n file: TFile;\n input: Record<string, any>;\n}\n\nexport interface OnFileBeforeDeleteTopicParams<TFile extends File = File> {\n file: TFile;\n}\n\nexport interface OnFileAfterDeleteTopicParams<TFile extends File = File> {\n file: TFile;\n}\n\nexport interface FileLifecycleEvents {\n onFileBeforeCreate: Topic<OnFileBeforeCreateTopicParams>;\n onFileAfterCreate: Topic<OnFileAfterCreateTopicParams>;\n onFileBeforeBatchCreate: Topic<OnFileBeforeBatchCreateTopicParams>;\n onFileAfterBatchCreate: Topic<OnFileAfterBatchCreateTopicParams>;\n onFileBeforeUpdate: Topic<OnFileBeforeUpdateTopicParams>;\n onFileAfterUpdate: Topic<OnFileAfterUpdateTopicParams>;\n onFileBeforeDelete: Topic<OnFileBeforeDeleteTopicParams>;\n onFileAfterDelete: Topic<OnFileAfterDeleteTopicParams>;\n}\n"],"mappings":""}
|