@webiny/api-file-manager 0.0.0-unstable.c2780f51fe → 0.0.0-unstable.c7dec08bb0
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.js +51 -76
- package/createFileManager/files.crud.js.map +1 -1
- package/createFileManager/index.d.ts +4 -2
- package/createFileManager/index.js.map +1 -1
- 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.js +1 -1
- package/createFileManager/settings.crud.js.map +1 -1
- 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 +2 -2
- package/graphql/index.js +23 -267
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +22 -0
- package/graphql/utils.js.map +1 -0
- package/handlers/download/byAlias.js +9 -9
- package/handlers/download/byAlias.js.map +1 -1
- package/handlers/download/byExactKey.js +9 -9
- package/handlers/download/byExactKey.js.map +1 -1
- package/handlers/download/getS3Object.d.ts +2 -0
- package/handlers/download/getS3Object.js +39 -24
- package/handlers/download/getS3Object.js.map +1 -1
- package/handlers/transform/index.js +5 -2
- package/handlers/transform/index.js.map +1 -1
- package/handlers/transform/transformImage.d.ts +5 -2
- package/handlers/transform/transformImage.js +7 -4
- package/handlers/transform/transformImage.js.map +1 -1
- package/handlers/transform/utils.js +2 -2
- package/handlers/transform/utils.js.map +1 -1
- package/index.d.ts +3 -2
- package/index.js +20 -36
- package/index.js.map +1 -1
- package/modelModifier/CmsModelModifier.d.ts +24 -0
- package/modelModifier/CmsModelModifier.js +59 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +28 -27
- package/types/file.d.ts +5 -1
- package/types/file.js.map +1 -1
- package/types/file.lifecycle.d.ts +4 -0
- package/types/file.lifecycle.js.map +1 -1
- package/types.d.ts +28 -34
- package/types.js.map +1 -1
- package/createFileManager/checkBasePermissions.d.ts +0 -5
- package/createFileManager/checkBasePermissions.js +0 -24
- package/createFileManager/checkBasePermissions.js.map +0 -1
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files/validation.js.map +0 -1
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -431
- package/plugins/crud/files.crud.js.map +0 -1
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -116
- package/plugins/crud/settings.crud.js.map +0 -1
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -153
- package/plugins/crud/system.crud.js.map +0 -1
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
- package/plugins/crud/utils/createFileModel.d.ts +0 -5
- package/plugins/crud/utils/createFileModel.js +0 -77
- package/plugins/crud/utils/createFileModel.js.map +0 -1
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -38
- package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
- package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
- package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
- package/plugins/definitions/FilePlugin.d.ts +0 -136
- package/plugins/definitions/FilePlugin.js +0 -70
- package/plugins/definitions/FilePlugin.js.map +0 -1
- package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
- package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
- package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -42
- package/plugins/definitions/InstallationPlugin.js.map +0 -1
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -290
- package/plugins/graphql.js.map +0 -1
- package/plugins/storage/FileStorage.d.ts +0 -30
- package/plugins/storage/FileStorage.js +0 -103
- package/plugins/storage/FileStorage.js.map +0 -1
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -26
- package/plugins/storage/index.js.map +0 -1
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
- package/utils.js.map +0 -1
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.createTransformFilePlugins = void 0;
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
10
|
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
11
|
-
var _transformImage =
|
|
11
|
+
var _transformImage = require("./transformImage");
|
|
12
12
|
var _optimizeImage = _interopRequireDefault(require("./optimizeImage"));
|
|
13
13
|
var _utils = require("../utils");
|
|
14
14
|
var newUtils = _interopRequireWildcard(require("./utils"));
|
|
@@ -65,9 +65,12 @@ const createTransformFilePlugins = () => {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
// 3. If transformations requested, apply them in save it into the bucket.
|
|
68
|
+
const isAnimated = key.endsWith(".gif") || key.endsWith(".webp");
|
|
68
69
|
await s3.putObject((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params.optimizedTransformed), {}, {
|
|
69
70
|
ContentType: optimizedImageObject.ContentType,
|
|
70
|
-
Body: await (0, _transformImage.
|
|
71
|
+
Body: await (0, _transformImage.transformImage)(optimizedImageObject.Body, transformations, {
|
|
72
|
+
animated: isAnimated
|
|
73
|
+
})
|
|
71
74
|
})).promise();
|
|
72
75
|
return {
|
|
73
76
|
error: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createTransformFilePlugins","createEvent","payload","body","key","transformations","env","getEnvironment","s3","S3","region","optimizedImageObject","utils","includes","newUtils","legacyUtils","params","initial","getObjectParams","optimized","getImageKey","optimizedTransformed","getObject","promise","e","putObject","ContentType","Body","optimizeImage","error","message","transformImage","ex","console","JSON","stringify","code","data"],"sources":["index.ts"],"sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport transformImage from \"./transformImage\";\nimport optimizeImage from \"./optimizeImage\";\nimport { getEnvironment, getObjectParams } from \"../utils\";\nimport * as newUtils from \"./utils\";\nimport * as legacyUtils from \"./legacyUtils\";\nimport { TransformHandlerEventPayload } from \"~/handlers/types\";\nimport { createEvent } from \"@webiny/handler\";\n\nexport const createTransformFilePlugins = () => {\n return [\n createEvent<TransformHandlerEventPayload>(async ({ payload }) => {\n const { body } = payload;\n const { key, transformations } = body;\n try {\n const env = getEnvironment();\n const s3 = new S3({ region: env.region });\n\n let optimizedImageObject: S3.Types.GetObjectOutput;\n\n const utils = key.includes(\"/\") ? newUtils : legacyUtils;\n\n const params = {\n initial: getObjectParams(key),\n optimized: getObjectParams(utils.getImageKey({ key })),\n optimizedTransformed: getObjectParams(\n utils.getImageKey({ key, transformations })\n )\n };\n\n // 1. Get optimized image.\n try {\n optimizedImageObject = await s3.getObject(params.optimized).promise();\n } catch (e) {\n // If not found, try to create it by loading the initially uploaded image.\n optimizedImageObject = await s3.getObject(params.initial).promise();\n\n await s3\n .putObject({\n ...params.optimized,\n ContentType: optimizedImageObject.ContentType,\n Body: await optimizeImage(\n optimizedImageObject.Body as Buffer,\n optimizedImageObject.ContentType as string\n )\n })\n .promise();\n\n optimizedImageObject = await s3.getObject(params.optimized).promise();\n }\n\n // 2. If no transformations requested, just exit.\n if (!transformations) {\n return {\n error: false,\n message: \"\"\n };\n }\n\n // 3. If transformations requested, apply them in save it into the bucket.\n await s3\n .putObject({\n ...params.optimizedTransformed,\n ContentType: optimizedImageObject.ContentType,\n Body: await transformImage(\n optimizedImageObject.Body as Buffer,\n transformations\n )\n })\n .promise();\n\n return {\n error: false,\n message: \"\"\n };\n } catch (ex) {\n console.error(\n JSON.stringify({\n message: ex.message,\n code: ex.code,\n data: ex.data\n })\n );\n return {\n error: true,\n message: ex.message\n };\n }\n })\n ];\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEO,MAAMA,0BAA0B,GAAG,MAAM;EAC5C,OAAO,CACH,IAAAC,oBAAW,EAA+B,OAAO;IAAEC;EAAQ,CAAC,KAAK;IAC7D,MAAM;MAAEC;IAAK,CAAC,GAAGD,OAAO;IACxB,MAAM;MAAEE,GAAG;MAAEC;IAAgB,CAAC,GAAGF,IAAI;IACrC,IAAI;MACA,MAAMG,GAAG,GAAG,IAAAC,qBAAc,GAAE;MAC5B,MAAMC,EAAE,GAAG,IAAIC,UAAE,CAAC;QAAEC,MAAM,EAAEJ,GAAG,CAACI;MAAO,CAAC,CAAC;MAEzC,IAAIC,oBAA8C;MAElD,MAAMC,KAAK,GAAGR,GAAG,CAACS,QAAQ,CAAC,GAAG,CAAC,GAAGC,QAAQ,GAAGC,WAAW;MAExD,MAAMC,MAAM,GAAG;QACXC,OAAO,EAAE,IAAAC,sBAAe,EAACd,GAAG,CAAC;QAC7Be,SAAS,EAAE,IAAAD,sBAAe,EAACN,KAAK,CAACQ,WAAW,CAAC;UAAEhB;QAAI,CAAC,CAAC,CAAC;QACtDiB,oBAAoB,EAAE,IAAAH,sBAAe,EACjCN,KAAK,CAACQ,WAAW,CAAC;UAAEhB,GAAG;UAAEC;QAAgB,CAAC,CAAC;MAEnD,CAAC;;MAED;MACA,IAAI;QACAM,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACG,SAAS,CAAC,CAACI,OAAO,EAAE;MACzE,CAAC,CAAC,OAAOC,CAAC,EAAE;QACR;QACAb,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACC,OAAO,CAAC,CAACM,OAAO,EAAE;QAEnE,MAAMf,EAAE,CACHiB,SAAS,6DACHT,MAAM,CAACG,SAAS;UACnBO,WAAW,EAAEf,oBAAoB,CAACe,WAAW;UAC7CC,IAAI,EAAE,MAAM,IAAAC,sBAAa,EACrBjB,oBAAoB,CAACgB,IAAI,EACzBhB,oBAAoB,CAACe,WAAW;QACnC,GACH,CACDH,OAAO,EAAE;QAEdZ,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACG,SAAS,CAAC,CAACI,OAAO,EAAE;MACzE;;MAEA;MACA,IAAI,CAAClB,eAAe,EAAE;QAClB,OAAO;UACHwB,KAAK,EAAE,KAAK;UACZC,OAAO,EAAE;QACb,CAAC;MACL;;MAEA;MACA,
|
|
1
|
+
{"version":3,"names":["createTransformFilePlugins","createEvent","payload","body","key","transformations","env","getEnvironment","s3","S3","region","optimizedImageObject","utils","includes","newUtils","legacyUtils","params","initial","getObjectParams","optimized","getImageKey","optimizedTransformed","getObject","promise","e","putObject","ContentType","Body","optimizeImage","error","message","isAnimated","endsWith","transformImage","animated","ex","console","JSON","stringify","code","data"],"sources":["index.ts"],"sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport { transformImage } from \"./transformImage\";\nimport optimizeImage from \"./optimizeImage\";\nimport { getEnvironment, getObjectParams } from \"../utils\";\nimport * as newUtils from \"./utils\";\nimport * as legacyUtils from \"./legacyUtils\";\nimport { TransformHandlerEventPayload } from \"~/handlers/types\";\nimport { createEvent } from \"@webiny/handler\";\n\nexport const createTransformFilePlugins = () => {\n return [\n createEvent<TransformHandlerEventPayload>(async ({ payload }) => {\n const { body } = payload;\n const { key, transformations } = body;\n try {\n const env = getEnvironment();\n const s3 = new S3({ region: env.region });\n\n let optimizedImageObject: S3.Types.GetObjectOutput;\n\n const utils = key.includes(\"/\") ? newUtils : legacyUtils;\n\n const params = {\n initial: getObjectParams(key),\n optimized: getObjectParams(utils.getImageKey({ key })),\n optimizedTransformed: getObjectParams(\n utils.getImageKey({ key, transformations })\n )\n };\n\n // 1. Get optimized image.\n try {\n optimizedImageObject = await s3.getObject(params.optimized).promise();\n } catch (e) {\n // If not found, try to create it by loading the initially uploaded image.\n optimizedImageObject = await s3.getObject(params.initial).promise();\n\n await s3\n .putObject({\n ...params.optimized,\n ContentType: optimizedImageObject.ContentType,\n Body: await optimizeImage(\n optimizedImageObject.Body as Buffer,\n optimizedImageObject.ContentType as string\n )\n })\n .promise();\n\n optimizedImageObject = await s3.getObject(params.optimized).promise();\n }\n\n // 2. If no transformations requested, just exit.\n if (!transformations) {\n return {\n error: false,\n message: \"\"\n };\n }\n\n // 3. If transformations requested, apply them in save it into the bucket.\n const isAnimated = key.endsWith(\".gif\") || key.endsWith(\".webp\");\n\n await s3\n .putObject({\n ...params.optimizedTransformed,\n ContentType: optimizedImageObject.ContentType,\n Body: await transformImage(\n optimizedImageObject.Body as Buffer,\n transformations,\n { animated: isAnimated }\n )\n })\n .promise();\n\n return {\n error: false,\n message: \"\"\n };\n } catch (ex) {\n console.error(\n JSON.stringify({\n message: ex.message,\n code: ex.code,\n data: ex.data\n })\n );\n return {\n error: true,\n message: ex.message\n };\n }\n })\n ];\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEO,MAAMA,0BAA0B,GAAG,MAAM;EAC5C,OAAO,CACH,IAAAC,oBAAW,EAA+B,OAAO;IAAEC;EAAQ,CAAC,KAAK;IAC7D,MAAM;MAAEC;IAAK,CAAC,GAAGD,OAAO;IACxB,MAAM;MAAEE,GAAG;MAAEC;IAAgB,CAAC,GAAGF,IAAI;IACrC,IAAI;MACA,MAAMG,GAAG,GAAG,IAAAC,qBAAc,GAAE;MAC5B,MAAMC,EAAE,GAAG,IAAIC,UAAE,CAAC;QAAEC,MAAM,EAAEJ,GAAG,CAACI;MAAO,CAAC,CAAC;MAEzC,IAAIC,oBAA8C;MAElD,MAAMC,KAAK,GAAGR,GAAG,CAACS,QAAQ,CAAC,GAAG,CAAC,GAAGC,QAAQ,GAAGC,WAAW;MAExD,MAAMC,MAAM,GAAG;QACXC,OAAO,EAAE,IAAAC,sBAAe,EAACd,GAAG,CAAC;QAC7Be,SAAS,EAAE,IAAAD,sBAAe,EAACN,KAAK,CAACQ,WAAW,CAAC;UAAEhB;QAAI,CAAC,CAAC,CAAC;QACtDiB,oBAAoB,EAAE,IAAAH,sBAAe,EACjCN,KAAK,CAACQ,WAAW,CAAC;UAAEhB,GAAG;UAAEC;QAAgB,CAAC,CAAC;MAEnD,CAAC;;MAED;MACA,IAAI;QACAM,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACG,SAAS,CAAC,CAACI,OAAO,EAAE;MACzE,CAAC,CAAC,OAAOC,CAAC,EAAE;QACR;QACAb,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACC,OAAO,CAAC,CAACM,OAAO,EAAE;QAEnE,MAAMf,EAAE,CACHiB,SAAS,6DACHT,MAAM,CAACG,SAAS;UACnBO,WAAW,EAAEf,oBAAoB,CAACe,WAAW;UAC7CC,IAAI,EAAE,MAAM,IAAAC,sBAAa,EACrBjB,oBAAoB,CAACgB,IAAI,EACzBhB,oBAAoB,CAACe,WAAW;QACnC,GACH,CACDH,OAAO,EAAE;QAEdZ,oBAAoB,GAAG,MAAMH,EAAE,CAACc,SAAS,CAACN,MAAM,CAACG,SAAS,CAAC,CAACI,OAAO,EAAE;MACzE;;MAEA;MACA,IAAI,CAAClB,eAAe,EAAE;QAClB,OAAO;UACHwB,KAAK,EAAE,KAAK;UACZC,OAAO,EAAE;QACb,CAAC;MACL;;MAEA;MACA,MAAMC,UAAU,GAAG3B,GAAG,CAAC4B,QAAQ,CAAC,MAAM,CAAC,IAAI5B,GAAG,CAAC4B,QAAQ,CAAC,OAAO,CAAC;MAEhE,MAAMxB,EAAE,CACHiB,SAAS,6DACHT,MAAM,CAACK,oBAAoB;QAC9BK,WAAW,EAAEf,oBAAoB,CAACe,WAAW;QAC7CC,IAAI,EAAE,MAAM,IAAAM,8BAAc,EACtBtB,oBAAoB,CAACgB,IAAI,EACzBtB,eAAe,EACf;UAAE6B,QAAQ,EAAEH;QAAW,CAAC;MAC3B,GACH,CACDR,OAAO,EAAE;MAEd,OAAO;QACHM,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE;MACb,CAAC;IACL,CAAC,CAAC,OAAOK,EAAE,EAAE;MACTC,OAAO,CAACP,KAAK,CACTQ,IAAI,CAACC,SAAS,CAAC;QACXR,OAAO,EAAEK,EAAE,CAACL,OAAO;QACnBS,IAAI,EAAEJ,EAAE,CAACI,IAAI;QACbC,IAAI,EAAEL,EAAE,CAACK;MACb,CAAC,CAAC,CACL;MACD,OAAO;QACHX,KAAK,EAAE,IAAI;QACXC,OAAO,EAAEK,EAAE,CAACL;MAChB,CAAC;IACL;EACJ,CAAC,CAAC,CACL;AACL,CAAC;AAAC"}
|
|
@@ -2,9 +2,12 @@ import { Body } from "aws-sdk/clients/s3";
|
|
|
2
2
|
interface Transformation {
|
|
3
3
|
width: string;
|
|
4
4
|
}
|
|
5
|
+
export interface TransformOptions {
|
|
6
|
+
animated?: boolean;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Only processing "width" at the moment.
|
|
7
10
|
* Check "sanitizeImageTransformations.js" to allow additional image processing transformations.
|
|
8
11
|
*/
|
|
9
|
-
declare const
|
|
10
|
-
export
|
|
12
|
+
export declare const transformImage: (buffer: Body, transformations: Transformation, options?: TransformOptions) => Promise<Body>;
|
|
13
|
+
export {};
|
|
@@ -4,22 +4,25 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.transformImage = void 0;
|
|
8
8
|
var _sharp = _interopRequireDefault(require("sharp"));
|
|
9
9
|
/**
|
|
10
10
|
* Sharp is included in the AWS Lambda layer
|
|
11
11
|
*/
|
|
12
12
|
// @ts-ignore
|
|
13
|
+
|
|
13
14
|
/**
|
|
14
15
|
* Only processing "width" at the moment.
|
|
15
16
|
* Check "sanitizeImageTransformations.js" to allow additional image processing transformations.
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
const transformImage = async (buffer, transformations, options = {}) => {
|
|
18
19
|
const {
|
|
19
20
|
width
|
|
20
21
|
} = transformations;
|
|
21
|
-
return await (0, _sharp.default)(buffer
|
|
22
|
+
return await (0, _sharp.default)(buffer, {
|
|
23
|
+
animated: options.animated ?? false
|
|
24
|
+
}).resize({
|
|
22
25
|
width
|
|
23
26
|
}).toBuffer();
|
|
24
27
|
};
|
|
25
|
-
exports.
|
|
28
|
+
exports.transformImage = transformImage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["buffer","transformations","width","sharp","resize","toBuffer"],"sources":["transformImage.ts"],"sourcesContent":["/**\n * Sharp is included in the AWS Lambda layer\n */\n// @ts-ignore\nimport sharp from \"sharp\";\nimport { Body } from \"aws-sdk/clients/s3\";\n\ninterface Transformation {\n width: string;\n}\n/**\n * Only processing \"width\" at the moment.\n * Check \"sanitizeImageTransformations.js\" to allow additional image processing transformations.\n */\nexport
|
|
1
|
+
{"version":3,"names":["transformImage","buffer","transformations","options","width","sharp","animated","resize","toBuffer"],"sources":["transformImage.ts"],"sourcesContent":["/**\n * Sharp is included in the AWS Lambda layer\n */\n// @ts-ignore\nimport sharp from \"sharp\";\nimport { Body } from \"aws-sdk/clients/s3\";\n\ninterface Transformation {\n width: string;\n}\n\nexport interface TransformOptions {\n animated?: boolean;\n}\n\n/**\n * Only processing \"width\" at the moment.\n * Check \"sanitizeImageTransformations.js\" to allow additional image processing transformations.\n */\nexport const transformImage = async (\n buffer: Body,\n transformations: Transformation,\n options: TransformOptions = {}\n): Promise<Body> => {\n const { width } = transformations;\n return await sharp(buffer, { animated: options.animated ?? false })\n .resize({ width })\n .toBuffer();\n};\n"],"mappings":";;;;;;;AAIA;AAJA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACO,MAAMA,cAAc,GAAG,OAC1BC,MAAY,EACZC,eAA+B,EAC/BC,OAAyB,GAAG,CAAC,CAAC,KACd;EAChB,MAAM;IAAEC;EAAM,CAAC,GAAGF,eAAe;EACjC,OAAO,MAAM,IAAAG,cAAK,EAACJ,MAAM,EAAE;IAAEK,QAAQ,EAAEH,OAAO,CAACG,QAAQ,IAAI;EAAM,CAAC,CAAC,CAC9DC,MAAM,CAAC;IAAEH;EAAM,CAAC,CAAC,CACjBI,QAAQ,EAAE;AACnB,CAAC;AAAC"}
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.getOptimizedTransformedImageKeyPrefix = exports.getOptimizedImageKeyPrefix = exports.getImageKey = exports.SUPPORTED_TRANSFORMABLE_IMAGES = exports.SUPPORTED_IMAGES = exports.OPTIMIZED_TRANSFORMED_IMAGE_PREFIX = exports.OPTIMIZED_IMAGE_PREFIX = void 0;
|
|
8
8
|
var _objectHash = _interopRequireDefault(require("object-hash"));
|
|
9
|
-
const SUPPORTED_IMAGES = [".jpg", ".jpeg", ".png", ".svg", ".gif"];
|
|
9
|
+
const SUPPORTED_IMAGES = [".jpg", ".jpeg", ".png", ".svg", ".gif", ".webp"];
|
|
10
10
|
exports.SUPPORTED_IMAGES = SUPPORTED_IMAGES;
|
|
11
|
-
const SUPPORTED_TRANSFORMABLE_IMAGES = [".jpg", ".jpeg", ".png"];
|
|
11
|
+
const SUPPORTED_TRANSFORMABLE_IMAGES = [".jpg", ".jpeg", ".png", ".gif", ".webp"];
|
|
12
12
|
exports.SUPPORTED_TRANSFORMABLE_IMAGES = SUPPORTED_TRANSFORMABLE_IMAGES;
|
|
13
13
|
const OPTIMIZED_TRANSFORMED_IMAGE_PREFIX = "img-o-t-";
|
|
14
14
|
exports.OPTIMIZED_TRANSFORMED_IMAGE_PREFIX = OPTIMIZED_TRANSFORMED_IMAGE_PREFIX;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SUPPORTED_IMAGES","SUPPORTED_TRANSFORMABLE_IMAGES","OPTIMIZED_TRANSFORMED_IMAGE_PREFIX","OPTIMIZED_IMAGE_PREFIX","getOptimizedImageKeyPrefix","key","id","name","split","getOptimizedTransformedImageKeyPrefix","transformationsHash","getImageKey","transformations","objectHash"],"sources":["utils.ts"],"sourcesContent":["import objectHash from \"object-hash\";\n\nconst SUPPORTED_IMAGES = [\".jpg\", \".jpeg\", \".png\", \".svg\", \".gif\"];\nconst SUPPORTED_TRANSFORMABLE_IMAGES = [\".jpg\", \".jpeg\", \".png\"];\n\nconst OPTIMIZED_TRANSFORMED_IMAGE_PREFIX = \"img-o-t-\";\nconst OPTIMIZED_IMAGE_PREFIX = \"img-o-\";\n\nconst getOptimizedImageKeyPrefix = (key: string): string => {\n const [id, name] = key.split(\"/\");\n return `${id}/${OPTIMIZED_IMAGE_PREFIX}${name}`;\n};\n\nconst getOptimizedTransformedImageKeyPrefix = (\n key: string,\n transformationsHash: string\n): string => {\n const [id, name] = key.split(\"/\");\n return `${id}/${OPTIMIZED_TRANSFORMED_IMAGE_PREFIX}${transformationsHash}-${name}`;\n};\n\ninterface GetImageKeyParams {\n key: string;\n transformations?: any;\n}\n\nconst getImageKey = ({ key, transformations }: GetImageKeyParams): string => {\n if (!transformations) {\n return getOptimizedImageKeyPrefix(key);\n }\n\n return getOptimizedTransformedImageKeyPrefix(key, objectHash(transformations));\n};\n\nexport {\n SUPPORTED_IMAGES,\n SUPPORTED_TRANSFORMABLE_IMAGES,\n OPTIMIZED_TRANSFORMED_IMAGE_PREFIX,\n OPTIMIZED_IMAGE_PREFIX,\n getImageKey,\n getOptimizedImageKeyPrefix,\n getOptimizedTransformedImageKeyPrefix\n};\n"],"mappings":";;;;;;;AAAA;AAEA,MAAMA,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAAC;
|
|
1
|
+
{"version":3,"names":["SUPPORTED_IMAGES","SUPPORTED_TRANSFORMABLE_IMAGES","OPTIMIZED_TRANSFORMED_IMAGE_PREFIX","OPTIMIZED_IMAGE_PREFIX","getOptimizedImageKeyPrefix","key","id","name","split","getOptimizedTransformedImageKeyPrefix","transformationsHash","getImageKey","transformations","objectHash"],"sources":["utils.ts"],"sourcesContent":["import objectHash from \"object-hash\";\n\nconst SUPPORTED_IMAGES = [\".jpg\", \".jpeg\", \".png\", \".svg\", \".gif\", \".webp\"];\nconst SUPPORTED_TRANSFORMABLE_IMAGES = [\".jpg\", \".jpeg\", \".png\", \".gif\", \".webp\"];\n\nconst OPTIMIZED_TRANSFORMED_IMAGE_PREFIX = \"img-o-t-\";\nconst OPTIMIZED_IMAGE_PREFIX = \"img-o-\";\n\nconst getOptimizedImageKeyPrefix = (key: string): string => {\n const [id, name] = key.split(\"/\");\n return `${id}/${OPTIMIZED_IMAGE_PREFIX}${name}`;\n};\n\nconst getOptimizedTransformedImageKeyPrefix = (\n key: string,\n transformationsHash: string\n): string => {\n const [id, name] = key.split(\"/\");\n return `${id}/${OPTIMIZED_TRANSFORMED_IMAGE_PREFIX}${transformationsHash}-${name}`;\n};\n\ninterface GetImageKeyParams {\n key: string;\n transformations?: any;\n}\n\nconst getImageKey = ({ key, transformations }: GetImageKeyParams): string => {\n if (!transformations) {\n return getOptimizedImageKeyPrefix(key);\n }\n\n return getOptimizedTransformedImageKeyPrefix(key, objectHash(transformations));\n};\n\nexport {\n SUPPORTED_IMAGES,\n SUPPORTED_TRANSFORMABLE_IMAGES,\n OPTIMIZED_TRANSFORMED_IMAGE_PREFIX,\n OPTIMIZED_IMAGE_PREFIX,\n getImageKey,\n getOptimizedImageKeyPrefix,\n getOptimizedTransformedImageKeyPrefix\n};\n"],"mappings":";;;;;;;AAAA;AAEA,MAAMA,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAAC;AAC5E,MAAMC,8BAA8B,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAAC;AAElF,MAAMC,kCAAkC,GAAG,UAAU;AAAC;AACtD,MAAMC,sBAAsB,GAAG,QAAQ;AAAC;AAExC,MAAMC,0BAA0B,GAAIC,GAAW,IAAa;EACxD,MAAM,CAACC,EAAE,EAAEC,IAAI,CAAC,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;EACjC,OAAQ,GAAEF,EAAG,IAAGH,sBAAuB,GAAEI,IAAK,EAAC;AACnD,CAAC;AAAC;AAEF,MAAME,qCAAqC,GAAG,CAC1CJ,GAAW,EACXK,mBAA2B,KAClB;EACT,MAAM,CAACJ,EAAE,EAAEC,IAAI,CAAC,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;EACjC,OAAQ,GAAEF,EAAG,IAAGJ,kCAAmC,GAAEQ,mBAAoB,IAAGH,IAAK,EAAC;AACtF,CAAC;AAAC;AAOF,MAAMI,WAAW,GAAG,CAAC;EAAEN,GAAG;EAAEO;AAAmC,CAAC,KAAa;EACzE,IAAI,CAACA,eAAe,EAAE;IAClB,OAAOR,0BAA0B,CAACC,GAAG,CAAC;EAC1C;EAEA,OAAOI,qCAAqC,CAACJ,GAAG,EAAE,IAAAQ,mBAAU,EAACD,eAAe,CAAC,CAAC;AAClF,CAAC;AAAC"}
|
package/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ import { ContextPlugin } from "@webiny/api";
|
|
|
2
2
|
import { FileManagerConfig } from "./createFileManager";
|
|
3
3
|
import { FileManagerContext } from "./types";
|
|
4
4
|
export * from "./plugins";
|
|
5
|
-
export declare const createFileManagerContext: (
|
|
6
|
-
export declare const createFileManagerGraphQL: () => import("@webiny/handler-graphql").GraphQLSchemaPlugin<FileManagerContext
|
|
5
|
+
export declare const createFileManagerContext: ({ storageOperations }: Pick<FileManagerConfig, "storageOperations">) => ContextPlugin<FileManagerContext>;
|
|
6
|
+
export declare const createFileManagerGraphQL: () => (import("@webiny/handler-graphql").GraphQLSchemaPlugin<FileManagerContext> | ContextPlugin<FileManagerContext>)[];
|
|
7
|
+
export * from "./modelModifier/CmsModelModifier";
|
package/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -9,11 +8,9 @@ var _exportNames = {
|
|
|
9
8
|
createFileManagerGraphQL: true
|
|
10
9
|
};
|
|
11
10
|
exports.createFileManagerGraphQL = exports.createFileManagerContext = void 0;
|
|
12
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
11
|
var _api = require("@webiny/api");
|
|
14
|
-
var
|
|
12
|
+
var _FileManagerContextSetup = require("./FileManagerContextSetup");
|
|
15
13
|
var _graphql = require("./graphql");
|
|
16
|
-
var _FileStorage = require("./storage/FileStorage");
|
|
17
14
|
var _plugins = require("./plugins");
|
|
18
15
|
Object.keys(_plugins).forEach(function (key) {
|
|
19
16
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -26,40 +23,27 @@ Object.keys(_plugins).forEach(function (key) {
|
|
|
26
23
|
}
|
|
27
24
|
});
|
|
28
25
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const getIdentity = () => {
|
|
39
|
-
return context.security.getIdentity();
|
|
40
|
-
};
|
|
41
|
-
const getTenantId = () => {
|
|
42
|
-
return context.tenancy.getCurrentTenant().id;
|
|
43
|
-
};
|
|
44
|
-
const getPermission = async name => {
|
|
45
|
-
await context.i18n.checkI18NContentPermission();
|
|
46
|
-
return context.security.getPermission(name);
|
|
47
|
-
};
|
|
48
|
-
if (config.storageOperations.beforeInit) {
|
|
49
|
-
await config.storageOperations.beforeInit(context);
|
|
26
|
+
var _CmsModelModifier = require("./modelModifier/CmsModelModifier");
|
|
27
|
+
Object.keys(_CmsModelModifier).forEach(function (key) {
|
|
28
|
+
if (key === "default" || key === "__esModule") return;
|
|
29
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
30
|
+
if (key in exports && exports[key] === _CmsModelModifier[key]) return;
|
|
31
|
+
Object.defineProperty(exports, key, {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _CmsModelModifier[key];
|
|
50
35
|
}
|
|
51
|
-
context.fileManager = (0, _createFileManager.createFileManager)({
|
|
52
|
-
storageOperations: config.storageOperations,
|
|
53
|
-
getTenantId,
|
|
54
|
-
getLocaleCode,
|
|
55
|
-
getIdentity,
|
|
56
|
-
getPermission,
|
|
57
|
-
storage: new _FileStorage.FileStorage({
|
|
58
|
-
context
|
|
59
|
-
}),
|
|
60
|
-
WEBINY_VERSION: context.WEBINY_VERSION
|
|
61
|
-
});
|
|
62
36
|
});
|
|
37
|
+
});
|
|
38
|
+
const createFileManagerContext = ({
|
|
39
|
+
storageOperations
|
|
40
|
+
}) => {
|
|
41
|
+
const plugin = new _api.ContextPlugin(async context => {
|
|
42
|
+
const fmContext = new _FileManagerContextSetup.FileManagerContextSetup(context);
|
|
43
|
+
context.fileManager = await fmContext.setupContext(storageOperations);
|
|
44
|
+
});
|
|
45
|
+
plugin.name = "file-manager.createContext";
|
|
46
|
+
return plugin;
|
|
63
47
|
};
|
|
64
48
|
exports.createFileManagerContext = createFileManagerContext;
|
|
65
49
|
const createFileManagerGraphQL = () => {
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFileManagerContext","
|
|
1
|
+
{"version":3,"names":["createFileManagerContext","storageOperations","plugin","ContextPlugin","context","fmContext","FileManagerContextSetup","fileManager","setupContext","name","createFileManagerGraphQL","createGraphQLSchemaPlugin"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { FileManagerConfig } from \"~/createFileManager\";\nimport { FileManagerContext } from \"~/types\";\nimport { FileManagerContextSetup } from \"./FileManagerContextSetup\";\nimport { createGraphQLSchemaPlugin } from \"./graphql\";\n\nexport * from \"./plugins\";\n\nexport const createFileManagerContext = ({\n storageOperations\n}: Pick<FileManagerConfig, \"storageOperations\">) => {\n const plugin = new ContextPlugin<FileManagerContext>(async context => {\n const fmContext = new FileManagerContextSetup(context);\n context.fileManager = await fmContext.setupContext(storageOperations);\n });\n\n plugin.name = \"file-manager.createContext\";\n\n return plugin;\n};\n\nexport const createFileManagerGraphQL = () => {\n return createGraphQLSchemaPlugin();\n};\n\nexport * from \"./modelModifier/CmsModelModifier\";\n"],"mappings":";;;;;;;;;;AAAA;AAGA;AACA;AAEA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAmBA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAjBO,MAAMA,wBAAwB,GAAG,CAAC;EACrCC;AAC0C,CAAC,KAAK;EAChD,MAAMC,MAAM,GAAG,IAAIC,kBAAa,CAAqB,MAAMC,OAAO,IAAI;IAClE,MAAMC,SAAS,GAAG,IAAIC,gDAAuB,CAACF,OAAO,CAAC;IACtDA,OAAO,CAACG,WAAW,GAAG,MAAMF,SAAS,CAACG,YAAY,CAACP,iBAAiB,CAAC;EACzE,CAAC,CAAC;EAEFC,MAAM,CAACO,IAAI,GAAG,4BAA4B;EAE1C,OAAOP,MAAM;AACjB,CAAC;AAAC;AAEK,MAAMQ,wBAAwB,GAAG,MAAM;EAC1C,OAAO,IAAAC,kCAAyB,GAAE;AACtC,CAAC;AAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
|
|
3
|
+
import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
4
|
+
declare type CmsModelField = Omit<BaseModelField, "storageId">;
|
|
5
|
+
declare class CmsModelFieldsModifier {
|
|
6
|
+
private fields;
|
|
7
|
+
constructor(fields: BaseModelField[]);
|
|
8
|
+
addField(field: CmsModelField): void;
|
|
9
|
+
}
|
|
10
|
+
interface CmsModelModifierCallableParams {
|
|
11
|
+
modifier: CmsModelFieldsModifier;
|
|
12
|
+
}
|
|
13
|
+
interface CmsModelModifierCallable {
|
|
14
|
+
(params: CmsModelModifierCallableParams): Promise<void> | void;
|
|
15
|
+
}
|
|
16
|
+
export declare class CmsModelModifierPlugin extends Plugin {
|
|
17
|
+
static type: string;
|
|
18
|
+
private readonly modelId;
|
|
19
|
+
private readonly cb;
|
|
20
|
+
constructor(modelId: string, cb: CmsModelModifierCallable);
|
|
21
|
+
modifyModel(model: CmsPrivateModelFull): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export declare const createFileModelModifier: (cb: CmsModelModifierCallable) => CmsModelModifierPlugin;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createFileModelModifier = exports.CmsModelModifierPlugin = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _plugins = require("@webiny/plugins");
|
|
11
|
+
var _file = require("../cmsFileStorage/file.model");
|
|
12
|
+
var _createModelField = require("../cmsFileStorage/createModelField");
|
|
13
|
+
class CmsModelFieldsModifier {
|
|
14
|
+
constructor(fields) {
|
|
15
|
+
(0, _defineProperty2.default)(this, "fields", void 0);
|
|
16
|
+
this.fields = fields;
|
|
17
|
+
}
|
|
18
|
+
addField(field) {
|
|
19
|
+
this.fields.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
|
|
20
|
+
storageId: `${field.type}@${field.id}`
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
class CmsModelModifierPlugin extends _plugins.Plugin {
|
|
25
|
+
constructor(modelId, cb) {
|
|
26
|
+
super();
|
|
27
|
+
(0, _defineProperty2.default)(this, "modelId", void 0);
|
|
28
|
+
(0, _defineProperty2.default)(this, "cb", void 0);
|
|
29
|
+
this.modelId = modelId;
|
|
30
|
+
this.cb = cb;
|
|
31
|
+
}
|
|
32
|
+
async modifyModel(model) {
|
|
33
|
+
if (model.modelId !== this.modelId) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
let extensionsField = model.fields.find(field => field.fieldId === "extensions");
|
|
37
|
+
if (!extensionsField) {
|
|
38
|
+
extensionsField = (0, _createModelField.createModelField)({
|
|
39
|
+
label: "Extensions",
|
|
40
|
+
type: "object",
|
|
41
|
+
settings: {
|
|
42
|
+
layout: [],
|
|
43
|
+
fields: []
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
model.fields.push(extensionsField);
|
|
47
|
+
}
|
|
48
|
+
const modifier = new CmsModelFieldsModifier(extensionsField.settings.fields);
|
|
49
|
+
await this.cb({
|
|
50
|
+
modifier
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.CmsModelModifierPlugin = CmsModelModifierPlugin;
|
|
55
|
+
(0, _defineProperty2.default)(CmsModelModifierPlugin, "type", "fm.cms-model-modifier");
|
|
56
|
+
const createFileModelModifier = cb => {
|
|
57
|
+
return new CmsModelModifierPlugin(_file.FILE_MODEL_ID, cb);
|
|
58
|
+
};
|
|
59
|
+
exports.createFileModelModifier = createFileModelModifier;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsModelFieldsModifier","constructor","fields","addField","field","push","storageId","type","id","CmsModelModifierPlugin","Plugin","modelId","cb","modifyModel","model","extensionsField","find","fieldId","createModelField","label","settings","layout","modifier","createFileModelModifier","FILE_MODEL_ID"],"sources":["CmsModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types\";\nimport { FILE_MODEL_ID } from \"~/cmsFileStorage/file.model\";\nimport { createModelField } from \"~/cmsFileStorage/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\ntype CmsModelField = Omit<BaseModelField, \"storageId\">;\n\nclass CmsModelFieldsModifier {\n private fields: BaseModelField[];\n\n constructor(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n this.fields.push({\n ...field,\n storageId: `${field.type}@${field.id}`\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: CmsModelFieldsModifier;\n}\n\ninterface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\nexport class CmsModelModifierPlugin extends Plugin {\n public static override type = \"fm.cms-model-modifier\";\n private readonly modelId: string;\n private readonly cb: CmsModelModifierCallable;\n\n constructor(modelId: string, cb: CmsModelModifierCallable) {\n super();\n this.modelId = modelId;\n this.cb = cb;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== this.modelId) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n const modifier = new CmsModelFieldsModifier(extensionsField.settings!.fields!);\n await this.cb({ modifier });\n }\n}\n\nexport const createFileModelModifier = (cb: CmsModelModifierCallable) => {\n return new CmsModelModifierPlugin(FILE_MODEL_ID, cb);\n};\n"],"mappings":";;;;;;;;;AAAA;AAEA;AACA;AAKA,MAAMA,sBAAsB,CAAC;EAGzBC,WAAW,CAACC,MAAwB,EAAE;IAAA;IAClC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAC,QAAQ,CAACC,KAAoB,EAAE;IAC3B,IAAI,CAACF,MAAM,CAACG,IAAI,6DACTD,KAAK;MACRE,SAAS,EAAG,GAAEF,KAAK,CAACG,IAAK,IAAGH,KAAK,CAACI,EAAG;IAAC,GACxC;EACN;AACJ;AAUO,MAAMC,sBAAsB,SAASC,eAAM,CAAC;EAK/CT,WAAW,CAACU,OAAe,EAAEC,EAA4B,EAAE;IACvD,KAAK,EAAE;IAAC;IAAA;IACR,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEA,MAAMC,WAAW,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACH,OAAO,KAAK,IAAI,CAACA,OAAO,EAAE;MAChC;IACJ;IAEA,IAAII,eAAe,GAAGD,KAAK,CAACZ,MAAM,CAACc,IAAI,CAACZ,KAAK,IAAIA,KAAK,CAACa,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,kCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBZ,IAAI,EAAE,QAAQ;QACda,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVnB,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFY,KAAK,CAACZ,MAAM,CAACG,IAAI,CAACU,eAAe,CAAC;IACtC;IAEA,MAAMO,QAAQ,GAAG,IAAItB,sBAAsB,CAACe,eAAe,CAACK,QAAQ,CAAElB,MAAM,CAAE;IAC9E,MAAM,IAAI,CAACU,EAAE,CAAC;MAAEU;IAAS,CAAC,CAAC;EAC/B;AACJ;AAAC;AAAA,8BAhCYb,sBAAsB,UACD,uBAAuB;AAiClD,MAAMc,uBAAuB,GAAIX,EAA4B,IAAK;EACrE,OAAO,IAAIH,sBAAsB,CAACe,mBAAa,EAAEZ,EAAE,CAAC;AACxD,CAAC;AAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.c7dec08bb0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fm:base"
|
|
@@ -20,35 +20,36 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/runtime": "7.20.13",
|
|
22
22
|
"@commodo/fields": "1.1.2-beta.20",
|
|
23
|
-
"@webiny/api": "0.0.0-unstable.
|
|
24
|
-
"@webiny/api-
|
|
25
|
-
"@webiny/api-
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/handler
|
|
29
|
-
"@webiny/handler-
|
|
30
|
-
"@webiny/handler-
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/
|
|
33
|
-
"@webiny/
|
|
34
|
-
"@webiny/
|
|
23
|
+
"@webiny/api": "0.0.0-unstable.c7dec08bb0",
|
|
24
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.c7dec08bb0",
|
|
25
|
+
"@webiny/api-security": "0.0.0-unstable.c7dec08bb0",
|
|
26
|
+
"@webiny/api-tenancy": "0.0.0-unstable.c7dec08bb0",
|
|
27
|
+
"@webiny/error": "0.0.0-unstable.c7dec08bb0",
|
|
28
|
+
"@webiny/handler": "0.0.0-unstable.c7dec08bb0",
|
|
29
|
+
"@webiny/handler-aws": "0.0.0-unstable.c7dec08bb0",
|
|
30
|
+
"@webiny/handler-client": "0.0.0-unstable.c7dec08bb0",
|
|
31
|
+
"@webiny/handler-graphql": "0.0.0-unstable.c7dec08bb0",
|
|
32
|
+
"@webiny/plugins": "0.0.0-unstable.c7dec08bb0",
|
|
33
|
+
"@webiny/project-utils": "0.0.0-unstable.c7dec08bb0",
|
|
34
|
+
"@webiny/pubsub": "0.0.0-unstable.c7dec08bb0",
|
|
35
|
+
"@webiny/validation": "0.0.0-unstable.c7dec08bb0",
|
|
35
36
|
"aws-sdk": "2.1310.0",
|
|
37
|
+
"lodash": "4.17.21",
|
|
36
38
|
"object-hash": "2.2.0"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
39
|
-
"@babel/cli": "
|
|
40
|
-
"@babel/core": "
|
|
41
|
-
"@babel/plugin-proposal-object-rest-spread": "
|
|
42
|
-
"@babel/plugin-transform-runtime": "
|
|
43
|
-
"@babel/preset-env": "
|
|
44
|
-
"@babel/preset-typescript": "
|
|
45
|
-
"@webiny/api-i18n": "
|
|
46
|
-
"@webiny/
|
|
47
|
-
"@webiny/
|
|
48
|
-
"jest": "
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"ttypescript": "^1.5.12",
|
|
41
|
+
"@babel/cli": "7.20.7",
|
|
42
|
+
"@babel/core": "7.20.12",
|
|
43
|
+
"@babel/plugin-proposal-object-rest-spread": "7.20.7",
|
|
44
|
+
"@babel/plugin-transform-runtime": "7.19.6",
|
|
45
|
+
"@babel/preset-env": "7.20.2",
|
|
46
|
+
"@babel/preset-typescript": "7.18.6",
|
|
47
|
+
"@webiny/api-i18n": "0.0.0-unstable.c7dec08bb0",
|
|
48
|
+
"@webiny/cli": "0.0.0-unstable.c7dec08bb0",
|
|
49
|
+
"@webiny/utils": "0.0.0-unstable.c7dec08bb0",
|
|
50
|
+
"jest": "29.5.0",
|
|
51
|
+
"rimraf": "3.0.2",
|
|
52
|
+
"ttypescript": "1.5.15",
|
|
52
53
|
"typescript": "4.7.4"
|
|
53
54
|
},
|
|
54
55
|
"publishConfig": {
|
|
@@ -70,5 +71,5 @@
|
|
|
70
71
|
]
|
|
71
72
|
}
|
|
72
73
|
},
|
|
73
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "c7dec08bb095467cca6a61381bd399d66b7bb147"
|
|
74
75
|
}
|
package/types/file.d.ts
CHANGED
|
@@ -5,9 +5,13 @@ export interface File {
|
|
|
5
5
|
type: string;
|
|
6
6
|
name: string;
|
|
7
7
|
meta: Record<string, any>;
|
|
8
|
+
location: {
|
|
9
|
+
folderId: string;
|
|
10
|
+
};
|
|
8
11
|
tags: string[];
|
|
9
12
|
aliases: string[];
|
|
10
13
|
createdOn: string;
|
|
14
|
+
savedOn: string;
|
|
11
15
|
createdBy: CreatedBy;
|
|
12
16
|
/**
|
|
13
17
|
* Added with new storage operations refactoring.
|
|
@@ -16,7 +20,7 @@ export interface File {
|
|
|
16
20
|
locale: string;
|
|
17
21
|
webinyVersion: string;
|
|
18
22
|
/**
|
|
19
|
-
* User can add new fields to the File object so we must allow it in the types.
|
|
23
|
+
* User can add new fields to the File object, so we must allow it in the types.
|
|
20
24
|
*/
|
|
21
25
|
[key: string]: any;
|
|
22
26
|
}
|
package/types/file.js.map
CHANGED
|
@@ -1 +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":""}
|
|
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 location: {\n folderId: string;\n };\n tags: string[];\n aliases: string[];\n createdOn: string;\n savedOn: 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":""}
|
|
@@ -2,15 +2,19 @@ import { Topic } from "@webiny/pubsub/types";
|
|
|
2
2
|
import { File } from "./file";
|
|
3
3
|
export interface OnFileBeforeCreateTopicParams<TFile extends File = File> {
|
|
4
4
|
file: TFile;
|
|
5
|
+
meta?: Record<string, any>;
|
|
5
6
|
}
|
|
6
7
|
export interface OnFileAfterCreateTopicParams<TFile extends File = File> {
|
|
7
8
|
file: TFile;
|
|
9
|
+
meta?: Record<string, any>;
|
|
8
10
|
}
|
|
9
11
|
export interface OnFileBeforeBatchCreateTopicParams<TFile extends File = File> {
|
|
10
12
|
files: TFile[];
|
|
13
|
+
meta?: Record<string, any>;
|
|
11
14
|
}
|
|
12
15
|
export interface OnFileAfterBatchCreateTopicParams<TFile extends File = File> {
|
|
13
16
|
files: TFile[];
|
|
17
|
+
meta?: Record<string, any>;
|
|
14
18
|
}
|
|
15
19
|
export interface OnFileBeforeUpdateTopicParams<TFile extends File = File> {
|
|
16
20
|
original: TFile;
|
|
@@ -1 +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":""}
|
|
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 meta?: Record<string, any>;\n}\n\nexport interface OnFileAfterCreateTopicParams<TFile extends File = File> {\n file: TFile;\n meta?: Record<string, any>;\n}\n\nexport interface OnFileBeforeBatchCreateTopicParams<TFile extends File = File> {\n files: TFile[];\n meta?: Record<string, any>;\n}\n\nexport interface OnFileAfterBatchCreateTopicParams<TFile extends File = File> {\n files: TFile[];\n meta?: Record<string, any>;\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":""}
|
package/types.d.ts
CHANGED
|
@@ -6,12 +6,13 @@ import { Context } from "@webiny/api/types";
|
|
|
6
6
|
import { FileLifecycleEvents } from "./types/file.lifecycle";
|
|
7
7
|
import { File } from "./types/file";
|
|
8
8
|
import { Topic } from "@webiny/pubsub/types";
|
|
9
|
+
import { CmsContext } from "@webiny/api-headless-cms/types";
|
|
9
10
|
export * from "./types/file.lifecycle";
|
|
10
11
|
export * from "./types/file";
|
|
11
12
|
export interface FileManagerContextObject extends FilesCRUD, SettingsCRUD, SystemCRUD {
|
|
12
13
|
storage: FileStorage;
|
|
13
14
|
}
|
|
14
|
-
export interface FileManagerContext extends Context, SecurityContext, TenancyContext, I18NContext {
|
|
15
|
+
export interface FileManagerContext extends Context, SecurityContext, TenancyContext, I18NContext, CmsContext {
|
|
15
16
|
fileManager: FileManagerContextObject;
|
|
16
17
|
}
|
|
17
18
|
export interface FilePermission extends SecurityPermission {
|
|
@@ -26,24 +27,20 @@ export interface FileInput {
|
|
|
26
27
|
size: number;
|
|
27
28
|
type: string;
|
|
28
29
|
meta: Record<string, any>;
|
|
30
|
+
location?: {
|
|
31
|
+
folderId: string;
|
|
32
|
+
};
|
|
29
33
|
tags: string[];
|
|
30
34
|
aliases: string[];
|
|
35
|
+
extensions?: Record<string, any>;
|
|
31
36
|
}
|
|
32
37
|
export interface FileListWhereParams {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
tag?: string;
|
|
37
|
-
tag_in?: string[];
|
|
38
|
-
tag_and_in?: string[];
|
|
39
|
-
id_in?: string[];
|
|
40
|
-
id?: string;
|
|
38
|
+
AND?: FileListWhereParams[];
|
|
39
|
+
OR?: FileListWhereParams[];
|
|
40
|
+
[key: string]: any;
|
|
41
41
|
}
|
|
42
42
|
export interface FilesListOpts {
|
|
43
43
|
search?: string;
|
|
44
|
-
types?: string[];
|
|
45
|
-
tags?: string[];
|
|
46
|
-
ids?: string[];
|
|
47
44
|
limit?: number;
|
|
48
45
|
after?: string;
|
|
49
46
|
where?: FileListWhereParams;
|
|
@@ -66,14 +63,18 @@ interface FilesCrudListTagsParams {
|
|
|
66
63
|
limit?: number;
|
|
67
64
|
after?: string;
|
|
68
65
|
}
|
|
66
|
+
export interface ListTagsResponse {
|
|
67
|
+
tag: string;
|
|
68
|
+
count: number;
|
|
69
|
+
}
|
|
69
70
|
export interface FilesCRUD extends FileLifecycleEvents {
|
|
70
71
|
getFile(id: string): Promise<File>;
|
|
71
72
|
listFiles(opts?: FilesListOpts): Promise<[File[], FileListMeta]>;
|
|
72
|
-
listTags(params: FilesCrudListTagsParams): Promise<
|
|
73
|
-
createFile(data: FileInput): Promise<File>;
|
|
73
|
+
listTags(params: FilesCrudListTagsParams): Promise<ListTagsResponse[]>;
|
|
74
|
+
createFile(data: FileInput, meta?: Record<string, any>): Promise<File>;
|
|
74
75
|
updateFile(id: string, data: Partial<FileInput>): Promise<File>;
|
|
75
76
|
deleteFile(id: string): Promise<boolean>;
|
|
76
|
-
createFilesInBatch(data: FileInput[]): Promise<File[]>;
|
|
77
|
+
createFilesInBatch(data: FileInput[], meta?: Record<string, any>): Promise<File[]>;
|
|
77
78
|
}
|
|
78
79
|
export interface SystemCRUD {
|
|
79
80
|
onSystemBeforeInstall: Topic;
|
|
@@ -256,20 +257,7 @@ export interface FileManagerFilesStorageOperationsCreateBatchParams {
|
|
|
256
257
|
* @category FilesStorageOperationsParams
|
|
257
258
|
*/
|
|
258
259
|
export interface FileManagerFilesStorageOperationsListParamsWhere {
|
|
259
|
-
|
|
260
|
-
id_in?: string[];
|
|
261
|
-
name?: string;
|
|
262
|
-
name_contains?: string;
|
|
263
|
-
tag?: string;
|
|
264
|
-
tag_contains?: string;
|
|
265
|
-
tag_in?: string[];
|
|
266
|
-
createdBy?: string;
|
|
267
|
-
locale: string;
|
|
268
|
-
tenant: string;
|
|
269
|
-
private?: boolean;
|
|
270
|
-
type?: string;
|
|
271
|
-
type_in?: string[];
|
|
272
|
-
search?: string;
|
|
260
|
+
[key: string]: any;
|
|
273
261
|
}
|
|
274
262
|
/**
|
|
275
263
|
* @category StorageOperations
|
|
@@ -281,6 +269,7 @@ export interface FileManagerFilesStorageOperationsListParams {
|
|
|
281
269
|
sort: string[];
|
|
282
270
|
limit: number;
|
|
283
271
|
after: string | null;
|
|
272
|
+
search?: string;
|
|
284
273
|
}
|
|
285
274
|
/**
|
|
286
275
|
* @category StorageOperations
|
|
@@ -296,10 +285,10 @@ export declare type FileManagerFilesStorageOperationsListResponse = [
|
|
|
296
285
|
File[],
|
|
297
286
|
FileManagerFilesStorageOperationsListResponseMeta
|
|
298
287
|
];
|
|
299
|
-
export
|
|
300
|
-
string
|
|
301
|
-
|
|
302
|
-
|
|
288
|
+
export interface FileManagerFilesStorageOperationsTagsResponse {
|
|
289
|
+
tag: string;
|
|
290
|
+
count: number;
|
|
291
|
+
}
|
|
303
292
|
export interface FileManagerFilesStorageOperationsTagsParamsWhere extends FilesCrudListTagsWhere {
|
|
304
293
|
locale: string;
|
|
305
294
|
tenant: string;
|
|
@@ -346,11 +335,16 @@ export interface FileManagerFilesStorageOperations {
|
|
|
346
335
|
/**
|
|
347
336
|
* Get a list of all file tags filtered by given parameters.
|
|
348
337
|
*/
|
|
349
|
-
tags: (params: FileManagerFilesStorageOperationsTagsParams) => Promise<FileManagerFilesStorageOperationsTagsResponse>;
|
|
338
|
+
tags: (params: FileManagerFilesStorageOperationsTagsParams) => Promise<FileManagerFilesStorageOperationsTagsResponse[]>;
|
|
339
|
+
}
|
|
340
|
+
export interface FileManagerAliasesStorageOperations {
|
|
341
|
+
storeAliases(file: File): Promise<void>;
|
|
342
|
+
deleteAliases(file: File): Promise<void>;
|
|
350
343
|
}
|
|
351
344
|
export interface FileManagerStorageOperations<TContext = FileManagerContext> {
|
|
352
345
|
beforeInit?: (context: TContext) => Promise<void>;
|
|
353
346
|
files: FileManagerFilesStorageOperations;
|
|
347
|
+
aliases: FileManagerAliasesStorageOperations;
|
|
354
348
|
settings: FileManagerSettingsStorageOperations;
|
|
355
349
|
system: FileManagerSystemStorageOperations;
|
|
356
350
|
}
|