@webiny/api-file-manager 5.43.3 → 6.0.0-alpha.1
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.js.map +1 -1
- package/README.md +1 -1
- package/cmsFileStorage/CmsFilesStorage.d.ts +3 -3
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -1
- package/cmsFileStorage/ListFilesWhereProcessor.d.ts +2 -2
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -1
- package/cmsFileStorage/ListTagsWhereProcessor.d.ts +2 -2
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -1
- package/createFileManager/files.crud.d.ts +1 -1
- package/createFileManager/files.crud.js.map +1 -1
- package/createFileManager/permissions/FilesPermissions.d.ts +1 -1
- package/createFileManager/permissions/FilesPermissions.js.map +1 -1
- package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +4 -3
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -1
- package/delivery/AssetDelivery/Asset.d.ts +1 -1
- package/delivery/AssetDelivery/Asset.js.map +1 -1
- package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +2 -2
- package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -1
- package/delivery/AssetDelivery/AssetRequest.d.ts +1 -1
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
- package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +2 -2
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -1
- package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +1 -1
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -1
- package/delivery/AssetDelivery/NullAssetResolver.d.ts +2 -2
- package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -1
- package/delivery/AssetDelivery/NullRequestResolver.d.ts +1 -1
- package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -1
- package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +2 -2
- package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -1
- package/delivery/AssetDelivery/SetResponseHeaders.d.ts +3 -3
- package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +1 -1
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +1 -1
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +1 -1
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +2 -2
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +1 -1
- package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +1 -1
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -1
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +1 -1
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +1 -1
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +1 -1
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +2 -2
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +1 -1
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +3 -2
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +3 -3
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +1 -1
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +2 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +2 -1
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
- package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +1 -1
- package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +1 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +1 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +1 -1
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -1
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +1 -1
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
- package/delivery/setupAssetDelivery.d.ts +2 -2
- package/delivery/setupAssetDelivery.js.map +1 -1
- package/graphql/baseSchema.d.ts +1 -1
- package/graphql/baseSchema.js.map +1 -1
- package/graphql/createFilesTypeDefs.d.ts +1 -1
- package/graphql/createFilesTypeDefs.js.map +1 -1
- package/graphql/filesSchema.d.ts +2 -2
- package/graphql/filesSchema.js.map +1 -1
- package/graphql/getFileByUrl.d.ts +1 -1
- package/graphql/getFileByUrl.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +1 -1
- package/handlers/manage/imageManager.d.ts +1 -1
- package/handlers/manage/imageManager.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js.map +1 -1
- package/modelModifier/CmsModelModifier.d.ts +2 -2
- package/modelModifier/CmsModelModifier.js.map +1 -1
- package/package.json +17 -17
- package/plugins/FilePhysicalStoragePlugin.d.ts +1 -1
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -1
- package/plugins/FileStorageTransformPlugin.d.ts +1 -1
- package/plugins/FileStorageTransformPlugin.js.map +1 -1
- package/storage/FileStorage.d.ts +2 -2
- package/storage/FileStorage.js.map +1 -1
- package/types/file.lifecycle.d.ts +2 -2
- package/types/file.lifecycle.js.map +1 -1
- package/types.d.ts +10 -10
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createFileManager","require","_FileStorage","_error","_interopRequireDefault","_file","_CmsFilesStorage","_CmsModelModifier","_apiHeadlessCms","_FilesPermissions","_SettingsPermissions","FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","settingsPermissions","SettingsPermissions","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isHeadlessCmsReady","console","log","withPrivateFiles","wcp","canUsePrivateFiles","fileModelDefinition","createFileModel","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","fileModel","getModel","FILE_MODEL_ID","CmsFilesStorage","create","cms","modelId","model","message","exports"],"sources":["FileManagerContextSetup.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"names":["_createFileManager","require","_FileStorage","_error","_interopRequireDefault","_file","_CmsFilesStorage","_CmsModelModifier","_apiHeadlessCms","_FilesPermissions","_SettingsPermissions","FileManagerContextSetup","constructor","context","setupContext","storageOperations","beforeInit","fileStorageOps","security","withoutAuthorization","setupCmsStorageOperations","aliases","files","filesPermissions","FilesPermissions","getIdentity","getPermissions","fullAccessPermissionName","settingsPermissions","SettingsPermissions","createFileManager","getTenantId","bind","getLocaleCode","storage","FileStorage","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isHeadlessCmsReady","console","log","withPrivateFiles","wcp","canUsePrivateFiles","fileModelDefinition","createFileModel","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","fileModel","getModel","FILE_MODEL_ID","CmsFilesStorage","create","cms","modelId","model","message","exports"],"sources":["FileManagerContextSetup.ts"],"sourcesContent":["import type { FileManagerAliasesStorageOperations, FilePermission } from \"~/types\";\nimport { type FileManagerContext, type SettingsPermission } from \"~/types\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\nimport { createFileManager } from \"~/createFileManager\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport WebinyError from \"@webiny/error\";\nimport type { SecurityPermission } from \"@webiny/api-security/types\";\nimport { createFileModel, FILE_MODEL_ID } from \"~/cmsFileStorage/file.model\";\nimport { CmsFilesStorage } from \"~/cmsFileStorage/CmsFilesStorage\";\nimport { CmsModelModifierPlugin } from \"~/modelModifier/CmsModelModifier\";\nimport { CmsModelPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\nimport { SettingsPermissions } from \"~/createFileManager/permissions/SettingsPermissions\";\n\nexport class FileManagerContextSetup {\n private readonly context: FileManagerContext;\n\n constructor(context: FileManagerContext) {\n this.context = context;\n }\n\n async setupContext(storageOperations: FileManagerConfig[\"storageOperations\"]) {\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(this.context);\n }\n\n const fileStorageOps = await this.context.security.withoutAuthorization(() => {\n return this.setupCmsStorageOperations(storageOperations.aliases);\n });\n\n if (fileStorageOps) {\n storageOperations.files = fileStorageOps;\n }\n\n const filesPermissions = new FilesPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () => this.context.security.getPermissions<FilePermission>(\"fm.file\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n const settingsPermissions = new SettingsPermissions({\n getIdentity: this.context.security.getIdentity,\n getPermissions: () =>\n this.context.security.getPermissions<SettingsPermission>(\"fm.settings\"),\n fullAccessPermissionName: \"fm.*\"\n });\n\n return createFileManager({\n storageOperations,\n filesPermissions,\n settingsPermissions,\n getTenantId: this.getTenantId.bind(this),\n getLocaleCode: this.getLocaleCode.bind(this),\n getIdentity: this.getIdentity.bind(this),\n getPermissions: this.getPermissions.bind(this),\n storage: new FileStorage({\n context: this.context\n }),\n // TODO: maybe this is no longer necessary, as this wil be managed by CMS?\n WEBINY_VERSION: this.context.WEBINY_VERSION\n });\n }\n\n private getLocaleCode() {\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing locale on context.i18n locale in File Manager API.\",\n \"LOCALE_ERROR\"\n );\n }\n return locale.code;\n }\n\n private getIdentity() {\n return this.context.security.getIdentity();\n }\n\n private getTenantId() {\n return this.context.tenancy.getCurrentTenant().id;\n }\n\n private async getPermissions<T extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<T[]> {\n return this.context.security.getPermissions(name);\n }\n\n private async setupCmsStorageOperations(aliases: FileManagerAliasesStorageOperations) {\n if (!(await isHeadlessCmsReady(this.context))) {\n console.log(\"Installation pending!\");\n return;\n }\n\n const withPrivateFiles = this.context.wcp.canUsePrivateFiles();\n\n // This registers code plugins (model group, models)\n const fileModelDefinition = createFileModel({ withPrivateFiles });\n\n const modelModifiers = this.context.plugins.byType<CmsModelModifierPlugin>(\n CmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(fileModelDefinition);\n }\n\n // Finally, register all plugins\n this.context.plugins.register([new CmsModelPlugin(fileModelDefinition)]);\n\n // Now load the file model registered in the previous step\n const fileModel = await this.getModel(FILE_MODEL_ID);\n\n // Overwrite the original `files` storage ops\n return await CmsFilesStorage.create({\n fileModel,\n cms: this.context.cms,\n security: this.context.security,\n aliases\n });\n }\n\n private async getModel(modelId: string) {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new WebinyError({\n code: \"MODEL_NOT_FOUND\",\n message: `Content model \"${modelId}\" was not found!`\n });\n }\n\n return model;\n }\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AACA,IAAAS,oBAAA,GAAAT,OAAA;AAEO,MAAMU,uBAAuB,CAAC;EAGjCC,WAAWA,CAACC,OAA2B,EAAE;IACrC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAMC,YAAYA,CAACC,iBAAyD,EAAE;IAC1E,IAAIA,iBAAiB,CAACC,UAAU,EAAE;MAC9B,MAAMD,iBAAiB,CAACC,UAAU,CAAC,IAAI,CAACH,OAAO,CAAC;IACpD;IAEA,MAAMI,cAAc,GAAG,MAAM,IAAI,CAACJ,OAAO,CAACK,QAAQ,CAACC,oBAAoB,CAAC,MAAM;MAC1E,OAAO,IAAI,CAACC,yBAAyB,CAACL,iBAAiB,CAACM,OAAO,CAAC;IACpE,CAAC,CAAC;IAEF,IAAIJ,cAAc,EAAE;MAChBF,iBAAiB,CAACO,KAAK,GAAGL,cAAc;IAC5C;IAEA,MAAMM,gBAAgB,GAAG,IAAIC,kCAAgB,CAAC;MAC1CC,WAAW,EAAE,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW;MAC9CC,cAAc,EAAEA,CAAA,KAAM,IAAI,CAACb,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAAiB,SAAS,CAAC;MACrFC,wBAAwB,EAAE;IAC9B,CAAC,CAAC;IAEF,MAAMC,mBAAmB,GAAG,IAAIC,wCAAmB,CAAC;MAChDJ,WAAW,EAAE,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW;MAC9CC,cAAc,EAAEA,CAAA,KACZ,IAAI,CAACb,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAAqB,aAAa,CAAC;MAC3EC,wBAAwB,EAAE;IAC9B,CAAC,CAAC;IAEF,OAAO,IAAAG,oCAAiB,EAAC;MACrBf,iBAAiB;MACjBQ,gBAAgB;MAChBK,mBAAmB;MACnBG,WAAW,EAAE,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;MACxCC,aAAa,EAAE,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;MAC5CP,WAAW,EAAE,IAAI,CAACA,WAAW,CAACO,IAAI,CAAC,IAAI,CAAC;MACxCN,cAAc,EAAE,IAAI,CAACA,cAAc,CAACM,IAAI,CAAC,IAAI,CAAC;MAC9CE,OAAO,EAAE,IAAIC,wBAAW,CAAC;QACrBtB,OAAO,EAAE,IAAI,CAACA;MAClB,CAAC,CAAC;MACF;MACAuB,cAAc,EAAE,IAAI,CAACvB,OAAO,CAACuB;IACjC,CAAC,CAAC;EACN;EAEQH,aAAaA,CAAA,EAAG;IACpB,MAAMI,MAAM,GAAG,IAAI,CAACxB,OAAO,CAACyB,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAIG,cAAW,CACjB,4DAA4D,EAC5D,cACJ,CAAC;IACL;IACA,OAAOH,MAAM,CAACI,IAAI;EACtB;EAEQhB,WAAWA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACZ,OAAO,CAACK,QAAQ,CAACO,WAAW,CAAC,CAAC;EAC9C;EAEQM,WAAWA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAClB,OAAO,CAAC6B,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACC,EAAE;EACrD;EAEA,MAAclB,cAAcA,CACxBmB,IAAY,EACA;IACZ,OAAO,IAAI,CAAChC,OAAO,CAACK,QAAQ,CAACQ,cAAc,CAACmB,IAAI,CAAC;EACrD;EAEA,MAAczB,yBAAyBA,CAACC,OAA4C,EAAE;IAClF,IAAI,EAAE,MAAM,IAAAyB,kCAAkB,EAAC,IAAI,CAACjC,OAAO,CAAC,CAAC,EAAE;MAC3CkC,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;MACpC;IACJ;IAEA,MAAMC,gBAAgB,GAAG,IAAI,CAACpC,OAAO,CAACqC,GAAG,CAACC,kBAAkB,CAAC,CAAC;;IAE9D;IACA,MAAMC,mBAAmB,GAAG,IAAAC,qBAAe,EAAC;MAAEJ;IAAiB,CAAC,CAAC;IAEjE,MAAMK,cAAc,GAAG,IAAI,CAACzC,OAAO,CAAC0C,OAAO,CAACC,MAAM,CAC9CC,wCAAsB,CAACC,IAC3B,CAAC;IAED,KAAK,MAAMC,QAAQ,IAAIL,cAAc,EAAE;MACnC,MAAMK,QAAQ,CAACC,WAAW,CAACR,mBAAmB,CAAC;IACnD;;IAEA;IACA,IAAI,CAACvC,OAAO,CAAC0C,OAAO,CAACM,QAAQ,CAAC,CAAC,IAAIC,8BAAc,CAACV,mBAAmB,CAAC,CAAC,CAAC;;IAExE;IACA,MAAMW,SAAS,GAAG,MAAM,IAAI,CAACC,QAAQ,CAACC,mBAAa,CAAC;;IAEpD;IACA,OAAO,MAAMC,gCAAe,CAACC,MAAM,CAAC;MAChCJ,SAAS;MACTK,GAAG,EAAE,IAAI,CAACvD,OAAO,CAACuD,GAAG;MACrBlD,QAAQ,EAAE,IAAI,CAACL,OAAO,CAACK,QAAQ;MAC/BG;IACJ,CAAC,CAAC;EACN;EAEA,MAAc2C,QAAQA,CAACK,OAAe,EAAE;IACpC,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACzD,OAAO,CAACuD,GAAG,CAACJ,QAAQ,CAACK,OAAO,CAAC;IACtD,IAAI,CAACC,KAAK,EAAE;MACR,MAAM,IAAI9B,cAAW,CAAC;QAClBC,IAAI,EAAE,iBAAiB;QACvB8B,OAAO,EAAE,kBAAkBF,OAAO;MACtC,CAAC,CAAC;IACN;IAEA,OAAOC,KAAK;EAChB;AACJ;AAACE,OAAA,CAAA7D,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://github.com/prettier/prettier)
|
|
5
5
|
[](http://makeapullrequest.com)
|
|
6
6
|
|
|
7
|
-
The API for Webiny Admin's ([@webiny/admin](../app-admin)) File Manager.
|
|
7
|
+
The API for Webiny Admin's ([@webiny/app-admin](../app-admin)) File Manager.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CmsModel, HeadlessCms } from "@webiny/api-headless-cms/types";
|
|
2
|
-
import { Security } from "@webiny/api-security/types";
|
|
3
|
-
import { File, FileManagerAliasesStorageOperations, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsCreateBatchParams, FileManagerFilesStorageOperationsCreateParams, FileManagerFilesStorageOperationsDeleteParams, FileManagerFilesStorageOperationsGetParams, FileManagerFilesStorageOperationsListParams, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsParams, FileManagerFilesStorageOperationsTagsResponse, FileManagerFilesStorageOperationsUpdateParams } from "../types";
|
|
1
|
+
import type { CmsModel, HeadlessCms } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { Security } from "@webiny/api-security/types";
|
|
3
|
+
import type { File, FileManagerAliasesStorageOperations, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsCreateBatchParams, FileManagerFilesStorageOperationsCreateParams, FileManagerFilesStorageOperationsDeleteParams, FileManagerFilesStorageOperationsGetParams, FileManagerFilesStorageOperationsListParams, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsParams, FileManagerFilesStorageOperationsTagsResponse, FileManagerFilesStorageOperationsUpdateParams } from "../types";
|
|
4
4
|
export declare class CmsFilesStorage implements FileManagerFilesStorageOperations {
|
|
5
5
|
private readonly cms;
|
|
6
6
|
private readonly security;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_omit","_interopRequireDefault","require","_ListFilesWhereProcessor","_ListTagsWhereProcessor","_contants","CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","process","entries","meta","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","modifiedBy","savedBy","createdOn","modifiedOn","savedOn","webinyVersion","exports"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.cms.createEntry(model, {\n ...file,\n wbyAco_location: file.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.cms.deleteEntry(model, file.id);\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n\n const where = this.filesWhereProcessor.process(params.where);\n const [entries, meta] = await this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\"id\", \"tenant\", \"locale\", \"webinyVersion\"]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n\n // We're safe to use entry-level meta fields because we don't use revisions with files.\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy || null,\n savedBy: entry.savedBy,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn || null,\n savedOn: entry.savedOn,\n\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAiBA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAOO,MAAMI,eAAe,CAA8C;EAQtE,aAAaC,MAAMA,CAACC,MAKnB,EAAE;IACC,OAAO,IAAIF,eAAe,CAACE,MAAM,CAACC,SAAS,EAAED,MAAM,CAACE,GAAG,EAAEF,MAAM,CAACG,QAAQ,EAAEH,MAAM,CAACI,OAAO,CAAC;EAC7F;EAEQC,WAAWA,CACfJ,SAAmB,EACnBC,GAAgB,EAChBC,QAAkB,EAClBC,OAA4C,EAC9C;IACE,IAAI,CAACE,KAAK,GAAGL,SAAS;IACtB,IAAI,CAACG,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACF,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACI,mBAAmB,GAAG,IAAIC,gDAAuB,CAAC,CAAC;IACxD,IAAI,CAACC,kBAAkB,GAAG,IAAIC,8CAAsB,CAAC,CAAC;EAC1D;EAEQC,gBAAgBA,CAAC;IAAEC,MAAM;IAAEC;EAAqB,CAAC,EAAY;IACjE,OAAO;MAAE,GAAG,IAAI,CAACP,KAAK;MAAEM,MAAM;MAAEC;IAAO,CAAC;EAC5C;EAEA,MAAMd,MAAMA,CAAC;IAAEe;EAAoD,CAAC,EAAiB;IACjF,MAAMR,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAACG,IAAI,CAAC;IAEzC,IAAI,CAACA,IAAI,CAACC,QAAQ,EAAEC,QAAQ,EAAE;MAC1BF,IAAI,CAACC,QAAQ,GAAG;QACZ,GAAGD,IAAI,CAACC,QAAQ;QAChBC,QAAQ,EAAEC;MACd,CAAC;IACL;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAI,CAAChB,GAAG,CAACiB,WAAW,CAACb,KAAK,EAAE;MAC5C,GAAGQ,IAAI;MACPM,eAAe,EAAEN,IAAI,CAACC;IAC1B,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,OAAO,CAACiB,YAAY,CAACP,IAAI,CAAC;IAErC,OAAO,IAAI,CAACQ,kBAAkB,CAACJ,KAAK,CAAC;EACzC;EAEA,MAAMK,WAAWA,CAAC;IACdC;EACgD,CAAC,EAAmB;IACpE,OAAO,MAAMC,OAAO,CAACC,GAAG,CACpBF,KAAK,CAACG,GAAG,CAACb,IAAI,IAAI;MACd,OAAO,IAAI,CAACf,MAAM,CAAC;QAAEe;MAAK,CAAC,CAAC;IAChC,CAAC,CACL,CAAC;EACL;EAEA,MAAMc,MAAMA,CAAC;IAAEd;EAAoD,CAAC,EAAiB;IACjF,MAAMR,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAACG,IAAI,CAAC;IACzC,MAAM,IAAI,CAACZ,GAAG,CAAC2B,WAAW,CAACvB,KAAK,EAAEQ,IAAI,CAACgB,EAAE,CAAC;IAE1C,MAAM,IAAI,CAAC1B,OAAO,CAAC2B,aAAa,CAACjB,IAAI,CAAC;EAC1C;EAEA,MAAMkB,GAAGA,CAAC;IAAEC;EAAkD,CAAC,EAAwB;IACnF,MAAM;MAAEH,EAAE;MAAElB,MAAM;MAAEC;IAAO,CAAC,GAAGoB,KAAK;IACpC,MAAM3B,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAAC;MAAEC,MAAM;MAAEC;IAAO,CAAC,CAAC;IACvD,MAAMK,KAAK,GAAG,MAAM,IAAI,CAAChB,GAAG,CAACgC,QAAQ,CAAC5B,KAAK,EAAE;MAAE2B,KAAK,EAAE;QAAEE,OAAO,EAAEL,EAAE;QAAEM,MAAM,EAAE;MAAK;IAAE,CAAC,CAAC;IACtF,OAAOlB,KAAK,GAAG,IAAI,CAACI,kBAAkB,CAACJ,KAAK,CAAC,GAAG,IAAI;EACxD;EAEA,MAAMmB,IAAIA,CACNrC,MAAmD,EACG;IACtD,MAAMY,MAAM,GAAGZ,MAAM,CAACiC,KAAK,CAACrB,MAAM;IAClC,MAAMC,MAAM,GAAGb,MAAM,CAACiC,KAAK,CAACpB,MAAM;IAElC,MAAMP,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAAC;MAAEC,MAAM;MAAEC;IAAO,CAAC,CAAC;IAEvD,MAAMoB,KAAK,GAAG,IAAI,CAAC1B,mBAAmB,CAAC+B,OAAO,CAACtC,MAAM,CAACiC,KAAK,CAAC;IAC5D,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAM,IAAI,CAACtC,GAAG,CAACuC,iBAAiB,CAACnC,KAAK,EAAE;MAC5DoC,KAAK,EAAE1C,MAAM,CAAC0C,KAAK;MACnBC,KAAK,EAAE3C,MAAM,CAAC2C,KAAK;MACnBC,IAAI,EAAE5C,MAAM,CAAC4C,IAAI;MACjBX,KAAK;MACLY,MAAM,EAAE7C,MAAM,CAAC6C;IACnB,CAAC,CAAC;IAEF,OAAO,CAACN,OAAO,CAACZ,GAAG,CAACT,KAAK,IAAI,IAAI,CAACI,kBAAkB,CAACJ,KAAK,CAAC,CAAC,EAAEsB,IAAI,CAAC;EACvE;EAEA,MAAMM,IAAIA,CACN9C,MAAmD,EACK;IACxD,MAAMY,MAAM,GAAGZ,MAAM,CAACiC,KAAK,CAACrB,MAAM;IAClC,MAAMC,MAAM,GAAGb,MAAM,CAACiC,KAAK,CAACpB,MAAM;IAClC,MAAMP,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAAC;MAAEC,MAAM;MAAEC;IAAO,CAAC,CAAC;IACvD,MAAMkC,YAAY,GAAG,MAAM,IAAI,CAAC7C,GAAG,CAAC8C,oBAAoB,CAAC1C,KAAK,EAAE;MAC5D2C,OAAO,EAAE,MAAM;MACfhB,KAAK,EAAE;QACH,GAAG,IAAI,CAACxB,kBAAkB,CAAC6B,OAAO,CAACtC,MAAM,CAACiC,KAAK,CAAC;QAChDG,MAAM,EAAE;MACZ;IACJ,CAAC,CAAC;IAEF,OAAOW,YAAY,CACdpB,GAAG,CAACuB,EAAE,KAAK;MACRC,GAAG,EAAED,EAAE,CAACE,KAAK;MACbC,KAAK,EAAEH,EAAE,CAACG;IACd,CAAC,CAAC,CAAC,CACFT,IAAI,CAAC,CAACU,CAAC,EAAEC,CAAC,KAAK;MACZ,OAAOD,CAAC,CAACH,GAAG,GAAGI,CAAC,CAACJ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC,CAAC,CACDP,IAAI,CAAC,CAACU,CAAC,EAAEC,CAAC,KAAK;MACZ,OAAOD,CAAC,CAACD,KAAK,GAAGE,CAAC,CAACF,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC,CAAC;EACV;EAEA,MAAMG,MAAMA,CAAC;IAAE1C;EAAoD,CAAC,EAAiB;IACjF,MAAMR,KAAK,GAAG,IAAI,CAACK,gBAAgB,CAACG,IAAI,CAAC;IAEzC,MAAMI,KAAK,GAAG,MAAM,IAAI,CAAChB,GAAG,CAACgC,QAAQ,CAAC5B,KAAK,EAAE;MACzC2B,KAAK,EAAE;QAAEE,OAAO,EAAErB,IAAI,CAACgB,EAAE;QAAEM,MAAM,EAAE;MAAK;IAC5C,CAAC,CAAC;IAEF,MAAMqB,MAAM,GAAG,IAAAC,aAAI,EAAC5C,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEtE,MAAM6C,YAAY,GAAG,MAAM,IAAI,CAACzD,GAAG,CAAC0D,WAAW,CAACtD,KAAK,EAAEY,KAAK,CAACY,EAAE,EAAE;MAC7D,GAAG2B,MAAM;MACTrC,eAAe,EAAEqC,MAAM,CAAC1C,QAAQ,IAAIG,KAAK,CAACH;IAC9C,CAAC,CAAC;IAEF,MAAM,IAAI,CAACX,OAAO,CAACiB,YAAY,CAACP,IAAI,CAAC;IAErC,OAAO,IAAI,CAACQ,kBAAkB,CAACqC,YAAY,CAAC;EAChD;EAEQrC,kBAAkBA,CAACJ,KAAe,EAAE;IACxC,OAAO;MACHY,EAAE,EAAEZ,KAAK,CAACiB,OAAO;MAEjB;MACA0B,SAAS,EAAE3C,KAAK,CAAC2C,SAAS;MAC1BC,UAAU,EAAE5C,KAAK,CAAC4C,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAE7C,KAAK,CAAC6C,OAAO;MACtBC,SAAS,EAAE9C,KAAK,CAAC8C,SAAS;MAC1BC,UAAU,EAAE/C,KAAK,CAAC+C,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAEhD,KAAK,CAACgD,OAAO;MAEtBrD,MAAM,EAAEK,KAAK,CAACL,MAAM;MACpBD,MAAM,EAAEM,KAAK,CAACN,MAAM;MACpBuD,aAAa,EAAEjD,KAAK,CAACiD,aAAa;MAClC,GAAGjD,KAAK,CAACuC;IACb,CAAC;EACL;AACJ;AAACW,OAAA,CAAAtE,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_omit","_interopRequireDefault","require","_ListFilesWhereProcessor","_ListTagsWhereProcessor","_contants","CmsFilesStorage","create","params","fileModel","cms","security","aliases","constructor","model","filesWhereProcessor","ListFilesWhereProcessor","tagsWhereProcessor","ListTagsWhereProcessor","modelWithContext","tenant","locale","file","location","folderId","ROOT_FOLDER","entry","createEntry","wbyAco_location","storeAliases","getFileFieldValues","createBatch","files","Promise","all","map","delete","deleteEntry","id","deleteAliases","get","where","getEntry","entryId","latest","list","process","entries","meta","listLatestEntries","after","limit","sort","search","tags","uniqueValues","getUniqueFieldValues","fieldId","uv","tag","value","count","a","b","update","values","omit","updatedEntry","updateEntry","createdBy","modifiedBy","savedBy","createdOn","modifiedOn","savedOn","webinyVersion","exports"],"sources":["CmsFilesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport type { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport type { Security } from \"@webiny/api-security/types\";\nimport type {\n File,\n FileManagerAliasesStorageOperations,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsCreateBatchParams,\n FileManagerFilesStorageOperationsCreateParams,\n FileManagerFilesStorageOperationsDeleteParams,\n FileManagerFilesStorageOperationsGetParams,\n FileManagerFilesStorageOperationsListParams,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsParams,\n FileManagerFilesStorageOperationsTagsResponse,\n FileManagerFilesStorageOperationsUpdateParams\n} from \"~/types\";\nimport { ListFilesWhereProcessor } from \"~/cmsFileStorage/ListFilesWhereProcessor\";\nimport { ListTagsWhereProcessor } from \"~/cmsFileStorage/ListTagsWhereProcessor\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\ninterface ModelContext {\n tenant: string;\n locale: string;\n}\n\nexport class CmsFilesStorage implements FileManagerFilesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly security: Security;\n private readonly model: CmsModel;\n private readonly aliases: FileManagerAliasesStorageOperations;\n private readonly filesWhereProcessor: ListFilesWhereProcessor;\n private readonly tagsWhereProcessor: ListTagsWhereProcessor;\n\n static async create(params: {\n fileModel: CmsModel;\n cms: HeadlessCms;\n security: Security;\n aliases: FileManagerAliasesStorageOperations;\n }) {\n return new CmsFilesStorage(params.fileModel, params.cms, params.security, params.aliases);\n }\n\n private constructor(\n fileModel: CmsModel,\n cms: HeadlessCms,\n security: Security,\n aliases: FileManagerAliasesStorageOperations\n ) {\n this.model = fileModel;\n this.aliases = aliases;\n this.cms = cms;\n this.security = security;\n this.filesWhereProcessor = new ListFilesWhereProcessor();\n this.tagsWhereProcessor = new ListTagsWhereProcessor();\n }\n\n private modelWithContext({ tenant, locale }: ModelContext): CmsModel {\n return { ...this.model, tenant, locale };\n }\n\n async create({ file }: FileManagerFilesStorageOperationsCreateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n if (!file.location?.folderId) {\n file.location = {\n ...file.location,\n folderId: ROOT_FOLDER\n };\n }\n\n const entry = await this.cms.createEntry(model, {\n ...file,\n wbyAco_location: file.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(entry);\n }\n\n async createBatch({\n files\n }: FileManagerFilesStorageOperationsCreateBatchParams): Promise<File[]> {\n return await Promise.all(\n files.map(file => {\n return this.create({ file });\n })\n );\n }\n\n async delete({ file }: FileManagerFilesStorageOperationsDeleteParams): Promise<void> {\n const model = this.modelWithContext(file);\n await this.cms.deleteEntry(model, file.id);\n\n await this.aliases.deleteAliases(file);\n }\n\n async get({ where }: FileManagerFilesStorageOperationsGetParams): Promise<File | null> {\n const { id, tenant, locale } = where;\n const model = this.modelWithContext({ tenant, locale });\n const entry = await this.cms.getEntry(model, { where: { entryId: id, latest: true } });\n return entry ? this.getFileFieldValues(entry) : null;\n }\n\n async list(\n params: FileManagerFilesStorageOperationsListParams\n ): Promise<FileManagerFilesStorageOperationsListResponse> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n\n const model = this.modelWithContext({ tenant, locale });\n\n const where = this.filesWhereProcessor.process(params.where);\n const [entries, meta] = await this.cms.listLatestEntries(model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where,\n search: params.search\n });\n\n return [entries.map(entry => this.getFileFieldValues(entry)), meta];\n }\n\n async tags(\n params: FileManagerFilesStorageOperationsTagsParams\n ): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n const tenant = params.where.tenant;\n const locale = params.where.locale;\n const model = this.modelWithContext({ tenant, locale });\n const uniqueValues = await this.cms.getUniqueFieldValues(model, {\n fieldId: \"tags\",\n where: {\n ...this.tagsWhereProcessor.process(params.where),\n latest: true\n }\n });\n\n return uniqueValues\n .map(uv => ({\n tag: uv.value,\n count: uv.count\n }))\n .sort((a, b) => {\n return a.tag < b.tag ? -1 : 1;\n })\n .sort((a, b) => {\n return a.count > b.count ? -1 : 1;\n });\n }\n\n async update({ file }: FileManagerFilesStorageOperationsUpdateParams): Promise<File> {\n const model = this.modelWithContext(file);\n\n const entry = await this.cms.getEntry(model, {\n where: { entryId: file.id, latest: true }\n });\n\n const values = omit(file, [\"id\", \"tenant\", \"locale\", \"webinyVersion\"]);\n\n const updatedEntry = await this.cms.updateEntry(model, entry.id, {\n ...values,\n wbyAco_location: values.location ?? entry.location\n });\n\n await this.aliases.storeAliases(file);\n\n return this.getFileFieldValues(updatedEntry);\n }\n\n private getFileFieldValues(entry: CmsEntry) {\n return {\n id: entry.entryId,\n\n // We're safe to use entry-level meta fields because we don't use revisions with files.\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy || null,\n savedBy: entry.savedBy,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn || null,\n savedOn: entry.savedOn,\n\n locale: entry.locale,\n tenant: entry.tenant,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as File;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
|
|
2
|
-
import { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
|
|
1
|
+
import type { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
|
|
3
3
|
export declare class ListFilesWhereProcessor {
|
|
4
4
|
private readonly skipKeys;
|
|
5
5
|
private readonly keyMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ListFilesWhereProcessor","skipKeys","keyMap","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListFilesWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListFilesWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n id: \"entryId\",\n id_in: \"entryId_in\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,uBAAuB,CAAC;EAChBC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,EAAE,EAAE,SAAS;IACbC,KAAK,EAAE;EACX,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ListFilesWhereProcessor","skipKeys","keyMap","id","id_in","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListFilesWhereProcessor.ts"],"sourcesContent":["import type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport type { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListFilesWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n id: \"entryId\",\n id_in: \"entryId_in\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,uBAAuB,CAAC;EAChBC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,EAAE,EAAE,SAAS;IACbC,KAAK,EAAE;EACX,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
|
|
2
|
-
import { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
|
|
1
|
+
import type { CmsEntryListWhere } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { FileManagerFilesStorageOperationsListParamsWhere } from "../types";
|
|
3
3
|
export declare class ListTagsWhereProcessor {
|
|
4
4
|
private readonly skipKeys;
|
|
5
5
|
private readonly keyMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ListTagsWhereProcessor","skipKeys","keyMap","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListTagsWhereProcessor.ts"],"sourcesContent":["import { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListTagsWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n tag_startsWith: \"tags_startsWith\",\n tag_not_startsWith: \"tags_not_startsWith\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,sBAAsB,CAAC;EACfC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,cAAc,EAAE,iBAAiB;IACjCC,kBAAkB,EAAE;EACxB,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ListTagsWhereProcessor","skipKeys","keyMap","tag_startsWith","tag_not_startsWith","process","input","where","meta","private_not","Object","keys","filter","key","includes","forEach","remappedKey","value","undefined","exports"],"sources":["ListTagsWhereProcessor.ts"],"sourcesContent":["import type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport type { FileManagerFilesStorageOperationsListParamsWhere } from \"~/types\";\n\ntype StandardFileKey = keyof FileManagerFilesStorageOperationsListParamsWhere;\ntype CmsEntryListWhereKey = keyof CmsEntryListWhere;\n\nexport class ListTagsWhereProcessor {\n private readonly skipKeys = [\"tenant\", \"locale\"];\n private readonly keyMap: Partial<Record<StandardFileKey, CmsEntryListWhereKey>> = {\n tag_startsWith: \"tags_startsWith\",\n tag_not_startsWith: \"tags_not_startsWith\"\n };\n\n process(input: FileManagerFilesStorageOperationsListParamsWhere): CmsEntryListWhere {\n const where: CmsEntryListWhere = { meta: { private_not: true } };\n\n Object.keys(input)\n .filter(key => !this.skipKeys.includes(key))\n .forEach(key => {\n const remappedKey = this.keyMap[key];\n const value = input[key];\n\n if (remappedKey && value !== undefined) {\n where[remappedKey] = value;\n } else if (value !== undefined) {\n where[key] = value;\n }\n });\n\n return where;\n }\n}\n"],"mappings":";;;;;;AAMO,MAAMA,sBAAsB,CAAC;EACfC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC/BC,MAAM,GAA2D;IAC9EC,cAAc,EAAE,iBAAiB;IACjCC,kBAAkB,EAAE;EACxB,CAAC;EAEDC,OAAOA,CAACC,KAAuD,EAAqB;IAChF,MAAMC,KAAwB,GAAG;MAAEC,IAAI,EAAE;QAAEC,WAAW,EAAE;MAAK;IAAE,CAAC;IAEhEC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CACbM,MAAM,CAACC,GAAG,IAAI,CAAC,IAAI,CAACZ,QAAQ,CAACa,QAAQ,CAACD,GAAG,CAAC,CAAC,CAC3CE,OAAO,CAACF,GAAG,IAAI;MACZ,MAAMG,WAAW,GAAG,IAAI,CAACd,MAAM,CAACW,GAAG,CAAC;MACpC,MAAMI,KAAK,GAAGX,KAAK,CAACO,GAAG,CAAC;MAExB,IAAIG,WAAW,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACpCX,KAAK,CAACS,WAAW,CAAC,GAAGC,KAAK;MAC9B,CAAC,MAAM,IAAIA,KAAK,KAAKC,SAAS,EAAE;QAC5BX,KAAK,CAACM,GAAG,CAAC,GAAGI,KAAK;MACtB;IACJ,CAAC,CAAC;IAEN,OAAOV,KAAK;EAChB;AACJ;AAACY,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { FilesCRUD } from "../types";
|
|
2
|
-
import { FileManagerConfig } from "./types";
|
|
2
|
+
import type { FileManagerConfig } from "./types";
|
|
3
3
|
export declare const createFilesCrud: (config: Pick<FileManagerConfig, "storageOperations" | "filesPermissions" | "getLocaleCode" | "getTenantId" | "getIdentity" | "WEBINY_VERSION">) => FilesCRUD;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handlerGraphql","require","_pubsub","_error","_interopRequireDefault","_contants","_apiSecurity","_date","_identity","createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","key","split","currentDateTime","Date","currentIdentity","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","getDate","modifiedOn","savedOn","utilsGetIdentity","modifiedBy","savedBy","webinyVersion","publish","result","create","ex","NotAuthorizedError","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","identity","length","list","listTags","exports"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport { FileManagerConfig } from \"~/createFileManager/types\";\nimport { ROOT_FOLDER } from \"~/contants\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getDate } from \"@webiny/api-headless-cms/utils/date\";\nimport { getIdentity as utilsGetIdentity } from \"@webiny/api-headless-cms/utils/identity\";\nimport { CmsEntryListSort } from \"@webiny/api-headless-cms/types\";\n\nexport const createFilesCrud = (\n config: Pick<\n FileManagerConfig,\n | \"storageOperations\"\n | \"filesPermissions\"\n | \"getLocaleCode\"\n | \"getTenantId\"\n | \"getIdentity\"\n | \"WEBINY_VERSION\"\n >\n): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n\n createdOn: getDate(input.createdOn, currentDateTime),\n modifiedOn: getDate(input.modifiedOn, null),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, currentIdentity),\n modifiedBy: utilsGetIdentity(input.modifiedBy, null),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tenant: getTenantId(),\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n // If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.\n if (ex instanceof NotAuthorizedError) {\n throw ex;\n }\n\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...original,\n ...input,\n\n createdOn: getDate(input.createdOn, original.createdOn),\n modifiedOn: getDate(input.modifiedOn, currentDateTime),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, original.createdBy),\n modifiedBy: utilsGetIdentity(input.modifiedBy, currentIdentity),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const currentIdentity = getIdentity();\n const currentDateTime = new Date();\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n\n createdOn: getDate(currentDateTime),\n modifiedOn: null,\n savedOn: getDate(currentDateTime),\n createdBy: utilsGetIdentity(currentIdentity),\n modifiedBy: null,\n savedBy: utilsGetIdentity(currentIdentity),\n\n tenant,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort: CmsEntryListSort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","_pubsub","_error","_interopRequireDefault","_contants","_apiSecurity","_date","_identity","createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","key","split","currentDateTime","Date","currentIdentity","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","getDate","modifiedOn","savedOn","utilsGetIdentity","modifiedBy","savedBy","webinyVersion","publish","result","create","ex","NotAuthorizedError","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","identity","length","list","listTags","exports"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport type { FileManagerConfig } from \"~/createFileManager/types\";\nimport { ROOT_FOLDER } from \"~/contants\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getDate } from \"@webiny/api-headless-cms/utils/date\";\nimport { getIdentity as utilsGetIdentity } from \"@webiny/api-headless-cms/utils/identity\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types\";\n\nexport const createFilesCrud = (\n config: Pick<\n FileManagerConfig,\n | \"storageOperations\"\n | \"filesPermissions\"\n | \"getLocaleCode\"\n | \"getTenantId\"\n | \"getIdentity\"\n | \"WEBINY_VERSION\"\n >\n): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n\n createdOn: getDate(input.createdOn, currentDateTime),\n modifiedOn: getDate(input.modifiedOn, null),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, currentIdentity),\n modifiedBy: utilsGetIdentity(input.modifiedBy, null),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tenant: getTenantId(),\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n // If a `NotAuthorizedError` error was thrown, then we just want to rethrow it.\n if (ex instanceof NotAuthorizedError) {\n throw ex;\n }\n\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const currentDateTime = new Date();\n const currentIdentity = getIdentity();\n\n const file: File = {\n ...original,\n ...input,\n\n createdOn: getDate(input.createdOn, original.createdOn),\n modifiedOn: getDate(input.modifiedOn, currentDateTime),\n savedOn: getDate(input.savedOn, currentDateTime),\n createdBy: utilsGetIdentity(input.createdBy, original.createdBy),\n modifiedBy: utilsGetIdentity(input.modifiedBy, currentIdentity),\n savedBy: utilsGetIdentity(input.savedBy, currentIdentity),\n\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const currentIdentity = getIdentity();\n const currentDateTime = new Date();\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n\n createdOn: getDate(currentDateTime),\n modifiedOn: null,\n savedOn: getDate(currentDateTime),\n createdBy: utilsGetIdentity(currentIdentity),\n modifiedBy: null,\n savedBy: utilsGetIdentity(currentIdentity),\n\n tenant,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort: CmsEntryListSort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AppPermissions","require","FilesPermissions","AppPermissions","exports"],"sources":["FilesPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport { FilePermission } from \"~/types\";\n\nexport class FilesPermissions extends AppPermissions<FilePermission> {}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,SAASC,8BAAc,CAAiB;AAAEC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_AppPermissions","require","FilesPermissions","AppPermissions","exports"],"sources":["FilesPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport type { FilePermission } from \"~/types\";\n\nexport class FilesPermissions extends AppPermissions<FilePermission> {}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,SAASC,8BAAc,CAAiB;AAAEC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Request } from "@webiny/handler/types";
|
|
2
|
-
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
3
|
-
import {
|
|
1
|
+
import type { Request } from "@webiny/handler/types";
|
|
2
|
+
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
3
|
+
import type { AssetRequestResolver } from "..";
|
|
4
|
+
import { AssetRequest } from "..";
|
|
4
5
|
export declare class AliasAssetRequestResolver implements AssetRequestResolver {
|
|
5
6
|
private documentClient;
|
|
6
7
|
private resolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clientDynamodb","require","_","AliasAssetRequestResolver","constructor","documentClient","resolver","resolve","request","resolvedAsset","params","query","path","decodeURI","tenant","fileKey","getFileByAlias","undefined","original","options","AssetRequest","key","context","url","alias","Items","send","QueryCommand","TableName","String","process","env","DB_TABLE","IndexName","Limit","KeyConditionExpression","ExpressionAttributeValues","S","Array","isArray","item","data","unmarshall","exports"],"sources":["AliasAssetRequestResolver.ts"],"sourcesContent":["import { Request } from \"@webiny/handler/types\";\nimport { DynamoDBDocument
|
|
1
|
+
{"version":3,"names":["_clientDynamodb","require","_","AliasAssetRequestResolver","constructor","documentClient","resolver","resolve","request","resolvedAsset","params","query","path","decodeURI","tenant","fileKey","getFileByAlias","undefined","original","options","AssetRequest","key","context","url","alias","Items","send","QueryCommand","TableName","String","process","env","DB_TABLE","IndexName","Limit","KeyConditionExpression","ExpressionAttributeValues","S","Array","isArray","item","data","unmarshall","exports"],"sources":["AliasAssetRequestResolver.ts"],"sourcesContent":["import type { Request } from \"@webiny/handler/types\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { QueryCommand, unmarshall } from \"@webiny/aws-sdk/client-dynamodb\";\nimport type { AssetRequestResolver } from \"~/delivery\";\nimport { AssetRequest } from \"~/delivery\";\n\nexport class AliasAssetRequestResolver implements AssetRequestResolver {\n private documentClient: DynamoDBDocument;\n private resolver: AssetRequestResolver;\n\n constructor(documentClient: DynamoDBDocument, resolver: AssetRequestResolver) {\n this.documentClient = documentClient;\n this.resolver = resolver;\n }\n\n async resolve(request: Request): Promise<AssetRequest | undefined> {\n const resolvedAsset = await this.resolver.resolve(request);\n\n if (resolvedAsset) {\n return resolvedAsset;\n }\n\n const params = (request.params as Record<string, any>) ?? {};\n const query = (request.query as Record<string, any>) ?? {};\n const path = decodeURI(params[\"*\"]);\n\n const tenant = query.tenant || \"root\";\n const fileKey = await this.getFileByAlias(tenant, path);\n\n if (!fileKey) {\n return undefined;\n }\n\n const { original, ...options } = query;\n\n return new AssetRequest({\n key: fileKey,\n context: {\n url: request.url\n },\n options: {\n original: original !== undefined,\n ...options\n }\n });\n }\n\n private async getFileByAlias(tenant: string, alias: string): Promise<string | null> {\n const { Items } = await this.documentClient.send(\n new QueryCommand({\n TableName: String(process.env.DB_TABLE),\n IndexName: \"GSI1\",\n Limit: 1,\n KeyConditionExpression: \"GSI1_PK = :GSI1_PK AND GSI1_SK = :GSI1_SK\",\n ExpressionAttributeValues: {\n \":GSI1_PK\": { S: `T#${tenant}#FM#FILE_ALIASES` },\n \":GSI1_SK\": { S: alias }\n }\n })\n );\n\n if (!Array.isArray(Items)) {\n return null;\n }\n const [item] = Items;\n if (!item) {\n return null;\n }\n const { data } = unmarshall(item);\n\n return data?.key ?? null;\n }\n}\n"],"mappings":";;;;;;AAEA,IAAAA,eAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AAEO,MAAME,yBAAyB,CAAiC;EAInEC,WAAWA,CAACC,cAAgC,EAAEC,QAA8B,EAAE;IAC1E,IAAI,CAACD,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAMC,OAAOA,CAACC,OAAgB,EAAqC;IAC/D,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACH,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC;IAE1D,IAAIC,aAAa,EAAE;MACf,OAAOA,aAAa;IACxB;IAEA,MAAMC,MAAM,GAAIF,OAAO,CAACE,MAAM,IAA4B,CAAC,CAAC;IAC5D,MAAMC,KAAK,GAAIH,OAAO,CAACG,KAAK,IAA4B,CAAC,CAAC;IAC1D,MAAMC,IAAI,GAAGC,SAAS,CAACH,MAAM,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAMI,MAAM,GAAGH,KAAK,CAACG,MAAM,IAAI,MAAM;IACrC,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,cAAc,CAACF,MAAM,EAAEF,IAAI,CAAC;IAEvD,IAAI,CAACG,OAAO,EAAE;MACV,OAAOE,SAAS;IACpB;IAEA,MAAM;MAAEC,QAAQ;MAAE,GAAGC;IAAQ,CAAC,GAAGR,KAAK;IAEtC,OAAO,IAAIS,cAAY,CAAC;MACpBC,GAAG,EAAEN,OAAO;MACZO,OAAO,EAAE;QACLC,GAAG,EAAEf,OAAO,CAACe;MACjB,CAAC;MACDJ,OAAO,EAAE;QACLD,QAAQ,EAAEA,QAAQ,KAAKD,SAAS;QAChC,GAAGE;MACP;IACJ,CAAC,CAAC;EACN;EAEA,MAAcH,cAAcA,CAACF,MAAc,EAAEU,KAAa,EAA0B;IAChF,MAAM;MAAEC;IAAM,CAAC,GAAG,MAAM,IAAI,CAACpB,cAAc,CAACqB,IAAI,CAC5C,IAAIC,4BAAY,CAAC;MACbC,SAAS,EAAEC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,QAAQ,CAAC;MACvCC,SAAS,EAAE,MAAM;MACjBC,KAAK,EAAE,CAAC;MACRC,sBAAsB,EAAE,2CAA2C;MACnEC,yBAAyB,EAAE;QACvB,UAAU,EAAE;UAAEC,CAAC,EAAE,KAAKvB,MAAM;QAAmB,CAAC;QAChD,UAAU,EAAE;UAAEuB,CAAC,EAAEb;QAAM;MAC3B;IACJ,CAAC,CACL,CAAC;IAED,IAAI,CAACc,KAAK,CAACC,OAAO,CAACd,KAAK,CAAC,EAAE;MACvB,OAAO,IAAI;IACf;IACA,MAAM,CAACe,IAAI,CAAC,GAAGf,KAAK;IACpB,IAAI,CAACe,IAAI,EAAE;MACP,OAAO,IAAI;IACf;IACA,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAAC,0BAAU,EAACF,IAAI,CAAC;IAEjC,OAAOC,IAAI,EAAEpB,GAAG,IAAI,IAAI;EAC5B;AACJ;AAACsB,OAAA,CAAAxC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import { AssetContentsReader, AssetOutputStrategy } from "..";
|
|
3
|
+
import type { AssetContentsReader, AssetOutputStrategy } from "..";
|
|
4
4
|
type Setter<T> = (arg: T | undefined) => T;
|
|
5
5
|
export interface AssetData {
|
|
6
6
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Asset","constructor","props","clone","withProps","structuredClone","newAsset","contentsReader","outputStrategy","getId","id","getTenant","tenant","getLocale","locale","getKey","key","getSize","size","getContentType","contentType","getExtension","split","pop","getContents","Error","read","setContentsReader","reader","output","setOutputStrategy","setter","exports"],"sources":["Asset.ts"],"sourcesContent":["import { AssetContentsReader, AssetOutputStrategy } from \"~/delivery\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n locale: string;\n key: string;\n size: number;\n contentType: string;\n}\n\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n constructor(props: AssetData) {\n this.props = props;\n }\n\n clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n withProps(props: Partial<AssetData>) {\n const newAsset = new Asset({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n getId() {\n return this.props.id;\n }\n getTenant() {\n return this.props.tenant;\n }\n getLocale() {\n return this.props.locale;\n }\n getKey() {\n return this.props.key;\n }\n getSize() {\n return this.props.size;\n }\n getContentType() {\n return this.props.contentType;\n }\n getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"mappings":";;;;;;AAaO,MAAMA,KAAK,CAAC;EAKfC,WAAWA,CAACC,KAAgB,EAAE;IAC1B,IAAI,CAACA,KAAK,GAAGA,KAAK;EACtB;EAEAC,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACC,SAAS,CAACC,eAAe,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC;EACtD;EAEAE,SAASA,CAACF,KAAyB,EAAE;IACjC,MAAMI,QAAQ,GAAG,IAAIN,KAAK,CAAC;MAAE,GAAG,IAAI,CAACE,KAAK;MAAE,GAAGA;IAAM,CAAC,CAAC;IACvDI,QAAQ,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc;IAC7CD,QAAQ,CAACE,cAAc,GAAG,IAAI,CAACA,cAAc;IAC7C,OAAOF,QAAQ;EACnB;EAEAG,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACP,KAAK,CAACQ,EAAE;EACxB;EACAC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACT,KAAK,CAACU,MAAM;EAC5B;EACAC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACX,KAAK,CAACY,MAAM;EAC5B;EACAC,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACb,KAAK,CAACc,GAAG;EACzB;EACAC,OAAOA,CAAA,EAAG;IACN,OAAO,IAAI,CAACf,KAAK,CAACgB,IAAI;EAC1B;EACAC,cAAcA,CAAA,EAAG;IACb,OAAO,IAAI,CAACjB,KAAK,CAACkB,WAAW;EACjC;EACAC,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI,CAACN,MAAM,CAAC,CAAC,CAACO,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,EAAE;EAC/C;EAEAC,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC,IAAI,CAACjB,cAAc,EAAE;MACtB,MAAMkB,KAAK,CAAC,2CAA2C,CAAC;IAC5D;IACA,OAAO,IAAI,CAAClB,cAAc,CAACmB,IAAI,CAAC,IAAI,CAAC;EACzC;EAEAC,iBAAiBA,CAACC,MAA2B,EAAE;IAC3C,IAAI,CAACrB,cAAc,GAAGqB,MAAM;EAChC;EAEAC,MAAMA,CAAA,EAAG;IACL,IAAI,CAAC,IAAI,CAACrB,cAAc,EAAE;MACtB,MAAMiB,KAAK,CAAC,2CAA2C,CAAC;IAC5D;IAEA,OAAO,IAAI,CAACjB,cAAc,CAACqB,MAAM,CAAC,IAAI,CAAC;EAC3C;EAEAC,iBAAiBA,CAACC,MAAyD,EAAE;IACzE,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;MAC9B,IAAI,CAACvB,cAAc,GAAGuB,MAAM,CAAC,IAAI,CAACvB,cAAc,CAAC;IACrD,CAAC,MAAM;MACH,IAAI,CAACA,cAAc,GAAGuB,MAAM;IAChC;EACJ;AACJ;AAACC,OAAA,CAAAhC,KAAA,GAAAA,KAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Asset","constructor","props","clone","withProps","structuredClone","newAsset","contentsReader","outputStrategy","getId","id","getTenant","tenant","getLocale","locale","getKey","key","getSize","size","getContentType","contentType","getExtension","split","pop","getContents","Error","read","setContentsReader","reader","output","setOutputStrategy","setter","exports"],"sources":["Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n locale: string;\n key: string;\n size: number;\n contentType: string;\n}\n\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n constructor(props: AssetData) {\n this.props = props;\n }\n\n clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n withProps(props: Partial<AssetData>) {\n const newAsset = new Asset({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n getId() {\n return this.props.id;\n }\n getTenant() {\n return this.props.tenant;\n }\n getLocale() {\n return this.props.locale;\n }\n getKey() {\n return this.props.key;\n }\n getSize() {\n return this.props.size;\n }\n getContentType() {\n return this.props.contentType;\n }\n getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"mappings":";;;;;;AAaO,MAAMA,KAAK,CAAC;EAKfC,WAAWA,CAACC,KAAgB,EAAE;IAC1B,IAAI,CAACA,KAAK,GAAGA,KAAK;EACtB;EAEAC,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACC,SAAS,CAACC,eAAe,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC;EACtD;EAEAE,SAASA,CAACF,KAAyB,EAAE;IACjC,MAAMI,QAAQ,GAAG,IAAIN,KAAK,CAAC;MAAE,GAAG,IAAI,CAACE,KAAK;MAAE,GAAGA;IAAM,CAAC,CAAC;IACvDI,QAAQ,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc;IAC7CD,QAAQ,CAACE,cAAc,GAAG,IAAI,CAACA,cAAc;IAC7C,OAAOF,QAAQ;EACnB;EAEAG,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACP,KAAK,CAACQ,EAAE;EACxB;EACAC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACT,KAAK,CAACU,MAAM;EAC5B;EACAC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACX,KAAK,CAACY,MAAM;EAC5B;EACAC,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACb,KAAK,CAACc,GAAG;EACzB;EACAC,OAAOA,CAAA,EAAG;IACN,OAAO,IAAI,CAACf,KAAK,CAACgB,IAAI;EAC1B;EACAC,cAAcA,CAAA,EAAG;IACb,OAAO,IAAI,CAACjB,KAAK,CAACkB,WAAW;EACjC;EACAC,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI,CAACN,MAAM,CAAC,CAAC,CAACO,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,EAAE;EAC/C;EAEAC,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC,IAAI,CAACjB,cAAc,EAAE;MACtB,MAAMkB,KAAK,CAAC,2CAA2C,CAAC;IAC5D;IACA,OAAO,IAAI,CAAClB,cAAc,CAACmB,IAAI,CAAC,IAAI,CAAC;EACzC;EAEAC,iBAAiBA,CAACC,MAA2B,EAAE;IAC3C,IAAI,CAACrB,cAAc,GAAGqB,MAAM;EAChC;EAEAC,MAAMA,CAAA,EAAG;IACL,IAAI,CAAC,IAAI,CAACrB,cAAc,EAAE;MACtB,MAAMiB,KAAK,CAAC,2CAA2C,CAAC;IAC5D;IAEA,OAAO,IAAI,CAACjB,cAAc,CAACqB,MAAM,CAAC,IAAI,CAAC;EAC3C;EAEAC,iBAAiBA,CAACC,MAAyD,EAAE;IACzE,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;MAC9B,IAAI,CAACvB,cAAc,GAAGuB,MAAM,CAAC,IAAI,CAACvB,cAAc,CAAC;IACrD,CAAC,MAAM;MACH,IAAI,CAACA,cAAc,GAAGuB,MAAM;IAChC;EACJ;AACJ;AAACC,OAAA,CAAAhC,KAAA,GAAAA,KAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins";
|
|
2
|
-
import { AssetRequestResolver, AssetResolver, AssetProcessor, AssetOutputStrategy, AssetRequest, Asset, AssetTransformationStrategy, ResponseHeadersSetter } from "..";
|
|
3
|
-
import { FileManagerContext } from "../../types";
|
|
2
|
+
import type { AssetRequestResolver, AssetResolver, AssetProcessor, AssetOutputStrategy, AssetRequest, Asset, AssetTransformationStrategy, ResponseHeadersSetter } from "..";
|
|
3
|
+
import type { FileManagerContext } from "../../types";
|
|
4
4
|
type Setter<TParams, TReturn> = (params: TParams) => TReturn;
|
|
5
5
|
export type AssetRequestResolverDecorator = Setter<{
|
|
6
6
|
assetRequestResolver: AssetRequestResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","_","_NullRequestResolver","_NullAssetResolver","_NullAssetOutputStrategy","_TransformationAssetProcessor","_PassthroughAssetTransformationStrategy","AssetDeliveryConfigBuilder","assetRequestResolverDecorators","assetResolverDecorators","assetProcessorDecorators","assetTransformationStrategyDecorators","assetOutputStrategyDecorators","setResponseHeaders","setter","decorateAssetOutputStrategy","params","SetResponseHeaders","decorateAssetRequestResolver","decorator","push","decorateAssetResolver","decorateAssetProcessor","decorateAssetTransformationStrategy","getAssetRequestResolver","reduce","value","assetRequestResolver","NullRequestResolver","getAssetResolver","assetResolver","NullAssetResolver","getAssetProcessor","context","assetProcessor","TransformationAssetProcessor","getAssetTransformationStrategy","getAssetOutputStrategy","assetRequest","asset","assetOutputStrategy","NullAssetOutputStrategy","assetTransformationStrategy","PassthroughAssetTransformationStrategy","exports","AssetDeliveryConfigModifierPlugin","Plugin","type","constructor","cb","buildConfig","configBuilder","createAssetDeliveryConfig"],"sources":["AssetDeliveryConfig.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n AssetRequestResolver,\n AssetResolver,\n AssetProcessor,\n AssetOutputStrategy,\n AssetRequest,\n Asset,\n AssetTransformationStrategy,\n ResponseHeadersSetter
|
|
1
|
+
{"version":3,"names":["_plugins","require","_","_NullRequestResolver","_NullAssetResolver","_NullAssetOutputStrategy","_TransformationAssetProcessor","_PassthroughAssetTransformationStrategy","AssetDeliveryConfigBuilder","assetRequestResolverDecorators","assetResolverDecorators","assetProcessorDecorators","assetTransformationStrategyDecorators","assetOutputStrategyDecorators","setResponseHeaders","setter","decorateAssetOutputStrategy","params","SetResponseHeaders","decorateAssetRequestResolver","decorator","push","decorateAssetResolver","decorateAssetProcessor","decorateAssetTransformationStrategy","getAssetRequestResolver","reduce","value","assetRequestResolver","NullRequestResolver","getAssetResolver","assetResolver","NullAssetResolver","getAssetProcessor","context","assetProcessor","TransformationAssetProcessor","getAssetTransformationStrategy","getAssetOutputStrategy","assetRequest","asset","assetOutputStrategy","NullAssetOutputStrategy","assetTransformationStrategy","PassthroughAssetTransformationStrategy","exports","AssetDeliveryConfigModifierPlugin","Plugin","type","constructor","cb","buildConfig","configBuilder","createAssetDeliveryConfig"],"sources":["AssetDeliveryConfig.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type {\n AssetRequestResolver,\n AssetResolver,\n AssetProcessor,\n AssetOutputStrategy,\n AssetRequest,\n Asset,\n AssetTransformationStrategy,\n ResponseHeadersSetter\n} from \"~/delivery\";\nimport { SetResponseHeaders } from \"~/delivery\";\nimport type { FileManagerContext } from \"~/types\";\nimport { NullRequestResolver } from \"~/delivery/AssetDelivery/NullRequestResolver\";\nimport { NullAssetResolver } from \"~/delivery/AssetDelivery/NullAssetResolver\";\nimport { NullAssetOutputStrategy } from \"./NullAssetOutputStrategy\";\nimport { TransformationAssetProcessor } from \"./transformation/TransformationAssetProcessor\";\nimport { PassthroughAssetTransformationStrategy } from \"./transformation/PassthroughAssetTransformationStrategy\";\n\ntype Setter<TParams, TReturn> = (params: TParams) => TReturn;\n\nexport type AssetRequestResolverDecorator = Setter<\n { assetRequestResolver: AssetRequestResolver },\n AssetRequestResolver\n>;\n\nexport type AssetResolverDecorator = Setter<{ assetResolver: AssetResolver }, AssetResolver>;\n\nexport type AssetProcessorDecorator = Setter<\n { context: FileManagerContext; assetProcessor: AssetProcessor },\n AssetProcessor\n>;\n\nexport type AssetTransformationDecorator = Setter<\n { context: FileManagerContext; assetTransformationStrategy: AssetTransformationStrategy },\n AssetTransformationStrategy\n>;\n\nexport interface AssetOutputStrategyDecoratorParams {\n context: FileManagerContext;\n assetRequest: AssetRequest;\n asset: Asset;\n assetOutputStrategy: AssetOutputStrategy;\n}\n\nexport type AssetOutputStrategyDecorator = Setter<\n AssetOutputStrategyDecoratorParams,\n AssetOutputStrategy\n>;\n\nexport class AssetDeliveryConfigBuilder {\n private assetRequestResolverDecorators: AssetRequestResolverDecorator[] = [];\n private assetResolverDecorators: AssetResolverDecorator[] = [];\n private assetProcessorDecorators: AssetProcessorDecorator[] = [];\n private assetTransformationStrategyDecorators: AssetTransformationDecorator[] = [];\n private assetOutputStrategyDecorators: AssetOutputStrategyDecorator[] = [];\n\n setResponseHeaders(setter: ResponseHeadersSetter) {\n this.decorateAssetOutputStrategy(params => {\n return new SetResponseHeaders(setter, params);\n });\n }\n\n decorateAssetRequestResolver(decorator: AssetRequestResolverDecorator) {\n this.assetRequestResolverDecorators.push(decorator);\n }\n\n decorateAssetResolver(decorator: AssetResolverDecorator) {\n this.assetResolverDecorators.push(decorator);\n }\n\n decorateAssetProcessor(decorator: AssetProcessorDecorator) {\n this.assetProcessorDecorators.push(decorator);\n }\n\n decorateAssetTransformationStrategy(decorator: AssetTransformationDecorator) {\n this.assetTransformationStrategyDecorators.push(decorator);\n }\n\n decorateAssetOutputStrategy(decorator: AssetOutputStrategyDecorator) {\n this.assetOutputStrategyDecorators.push(decorator);\n }\n\n /**\n * @internal\n */\n getAssetRequestResolver() {\n return this.assetRequestResolverDecorators.reduce<AssetRequestResolver>(\n (value, decorator) => decorator({ assetRequestResolver: value }),\n new NullRequestResolver()\n );\n }\n\n /**\n * @internal\n */\n getAssetResolver() {\n return this.assetResolverDecorators.reduce<AssetResolver>(\n (value, decorator) => decorator({ assetResolver: value }),\n new NullAssetResolver()\n );\n }\n\n /**\n * @internal\n */\n getAssetProcessor(context: FileManagerContext) {\n return this.assetProcessorDecorators.reduce<AssetProcessor>(\n (value, decorator) => decorator({ assetProcessor: value, context }),\n new TransformationAssetProcessor(this.getAssetTransformationStrategy(context))\n );\n }\n\n getAssetOutputStrategy(context: FileManagerContext, assetRequest: AssetRequest, asset: Asset) {\n return this.assetOutputStrategyDecorators.reduce<AssetOutputStrategy>(\n (value, decorator) => {\n return decorator({ context, assetRequest, asset, assetOutputStrategy: value });\n },\n new NullAssetOutputStrategy()\n );\n }\n\n getAssetTransformationStrategy(context: FileManagerContext) {\n return this.assetTransformationStrategyDecorators.reduce<AssetTransformationStrategy>(\n (value, decorator) => decorator({ context, assetTransformationStrategy: value }),\n new PassthroughAssetTransformationStrategy()\n );\n }\n}\n\nexport interface AssetDeliveryConfigModifier {\n (config: AssetDeliveryConfigBuilder): Promise<void> | void;\n}\n\nexport class AssetDeliveryConfigModifierPlugin extends Plugin {\n public static override type = \"fm.config-modifier\";\n private readonly cb: AssetDeliveryConfigModifier;\n\n constructor(cb: AssetDeliveryConfigModifier) {\n super();\n this.cb = cb;\n }\n\n async buildConfig(configBuilder: AssetDeliveryConfigBuilder): Promise<void> {\n await this.cb(configBuilder);\n }\n}\n\nexport const createAssetDeliveryConfig = (cb: AssetDeliveryConfigModifier) => {\n return new AssetDeliveryConfigModifierPlugin(cb);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AssetRequest","constructor","data","getKey","key","getOptions","options","setOptions","getContext","context","getExtension","split","pop","exports"],"sources":["AssetRequest.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/api/types\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n width?: number;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\n\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private data: AssetRequestData<TOptions>;\n\n constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n getKey() {\n return this.data.key;\n }\n\n getOptions(): TOptions {\n return this.data.options;\n }\n\n setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"mappings":";;;;;;AAoBO,MAAMA,YAAY,CAA6D;EAGlFC,WAAWA,CAACC,IAAgC,EAAE;IAC1C,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EAEAC,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACD,IAAI,CAACE,GAAG;EACxB;EAEAC,UAAUA,CAAA,EAAa;IACnB,OAAO,IAAI,CAACH,IAAI,CAACI,OAAO;EAC5B;EAEAC,UAAUA,CAACD,OAAiB,EAAE;IAC1B,IAAI,CAACJ,IAAI,CAACI,OAAO,GAAGA,OAAO;EAC/B;EAEAE,UAAUA,CAAA,EAA4C;IAClD,OAAO,IAAI,CAACN,IAAI,CAACO,OAAO;EAC5B;EAEAC,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI,CAACR,IAAI,CAACE,GAAG,CAACO,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;EACzC;AACJ;AAACC,OAAA,CAAAb,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AssetRequest","constructor","data","getKey","key","getOptions","options","setOptions","getContext","context","getExtension","split","pop","exports"],"sources":["AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n width?: number;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\n\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private data: AssetRequestData<TOptions>;\n\n constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n getKey() {\n return this.data.key;\n }\n\n getOptions(): TOptions {\n return this.data.options;\n }\n\n setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"mappings":";;;;;;AAoBO,MAAMA,YAAY,CAA6D;EAGlFC,WAAWA,CAACC,IAAgC,EAAE;IAC1C,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EAEAC,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACD,IAAI,CAACE,GAAG;EACxB;EAEAC,UAAUA,CAAA,EAAa;IACnB,OAAO,IAAI,CAACH,IAAI,CAACI,OAAO;EAC5B;EAEAC,UAAUA,CAACD,OAAiB,EAAE;IAC1B,IAAI,CAACJ,IAAI,CAACI,OAAO,GAAGA,OAAO;EAC/B;EAEAE,UAAUA,CAAA,EAA4C;IAClD,OAAO,IAAI,CAACN,IAAI,CAACO,OAAO;EAC5B;EAEAC,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI,CAACR,IAAI,CAACE,GAAG,CAACO,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;EACzC;AACJ;AAACC,OAAA,CAAAb,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Request } from "@webiny/handler/types";
|
|
2
|
-
import { AssetRequestResolver } from "./abstractions/AssetRequestResolver";
|
|
1
|
+
import type { Request } from "@webiny/handler/types";
|
|
2
|
+
import type { AssetRequestResolver } from "./abstractions/AssetRequestResolver";
|
|
3
3
|
import { AssetRequest } from "./AssetRequest";
|
|
4
4
|
export declare class FilesAssetRequestResolver implements AssetRequestResolver {
|
|
5
5
|
resolve(request: Request): Promise<AssetRequest | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AssetRequest","require","FilesAssetRequestResolver","resolve","request","url","startsWith","undefined","params","query","path","options","original","width","parseInt","AssetRequest","key","decodeURI","replace","context","exports"],"sources":["FilesAssetRequestResolver.ts"],"sourcesContent":["import { Request } from \"@webiny/handler/types\";\nimport { AssetRequestResolver } from \"./abstractions/AssetRequestResolver\";\nimport { AssetRequest
|
|
1
|
+
{"version":3,"names":["_AssetRequest","require","FilesAssetRequestResolver","resolve","request","url","startsWith","undefined","params","query","path","options","original","width","parseInt","AssetRequest","key","decodeURI","replace","context","exports"],"sources":["FilesAssetRequestResolver.ts"],"sourcesContent":["import type { Request } from \"@webiny/handler/types\";\nimport type { AssetRequestResolver } from \"./abstractions/AssetRequestResolver\";\nimport type { AssetRequestOptions } from \"./AssetRequest\";\nimport { AssetRequest } from \"./AssetRequest\";\n\nexport class FilesAssetRequestResolver implements AssetRequestResolver {\n async resolve(request: Request): Promise<AssetRequest | undefined> {\n // Example: /files/65722cb5c7824a0008d05963/image-48.jpg?width=300\n if (!request.url.startsWith(\"/files/\")) {\n return undefined;\n }\n\n const params = (request.params as Record<string, any>) ?? {};\n const query = (request.query as Record<string, any>) ?? {};\n\n // Example: { '*': '/files/65722cb5c7824a0008d05963/image-48.jpg' },\n const path = params[\"*\"];\n\n const options: AssetRequestOptions = {\n ...query,\n original: \"original\" in query\n };\n\n if (query.width) {\n options.width = parseInt(query.width);\n }\n\n return new AssetRequest({\n key: decodeURI(path).replace(\"/files/\", \"\"),\n context: {\n url: request.url\n },\n options\n });\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AAEO,MAAMC,yBAAyB,CAAiC;EACnE,MAAMC,OAAOA,CAACC,OAAgB,EAAqC;IAC/D;IACA,IAAI,CAACA,OAAO,CAACC,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,EAAE;MACpC,OAAOC,SAAS;IACpB;IAEA,MAAMC,MAAM,GAAIJ,OAAO,CAACI,MAAM,IAA4B,CAAC,CAAC;IAC5D,MAAMC,KAAK,GAAIL,OAAO,CAACK,KAAK,IAA4B,CAAC,CAAC;;IAE1D;IACA,MAAMC,IAAI,GAAGF,MAAM,CAAC,GAAG,CAAC;IAExB,MAAMG,OAA4B,GAAG;MACjC,GAAGF,KAAK;MACRG,QAAQ,EAAE,UAAU,IAAIH;IAC5B,CAAC;IAED,IAAIA,KAAK,CAACI,KAAK,EAAE;MACbF,OAAO,CAACE,KAAK,GAAGC,QAAQ,CAACL,KAAK,CAACI,KAAK,CAAC;IACzC;IAEA,OAAO,IAAIE,0BAAY,CAAC;MACpBC,GAAG,EAAEC,SAAS,CAACP,IAAI,CAAC,CAACQ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;MAC3CC,OAAO,EAAE;QACLd,GAAG,EAAED,OAAO,CAACC;MACjB,CAAC;MACDM;IACJ,CAAC,CAAC;EACN;AACJ;AAACS,OAAA,CAAAlB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NullAssetReply","require","NullAssetOutputStrategy","output","NullAssetReply","exports"],"sources":["NullAssetOutputStrategy.ts"],"sourcesContent":["import { AssetOutputStrategy, AssetReply } from \"~/delivery\";\nimport { NullAssetReply } from \"./NullAssetReply\";\n\nexport class NullAssetOutputStrategy implements AssetOutputStrategy {\n async output(): Promise<AssetReply> {\n return new NullAssetReply();\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAEO,MAAMC,uBAAuB,CAAgC;EAChE,MAAMC,MAAMA,CAAA,EAAwB;IAChC,OAAO,IAAIC,8BAAc,CAAC,CAAC;EAC/B;AACJ;AAACC,OAAA,CAAAH,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_NullAssetReply","require","NullAssetOutputStrategy","output","NullAssetReply","exports"],"sources":["NullAssetOutputStrategy.ts"],"sourcesContent":["import type { AssetOutputStrategy, AssetReply } from \"~/delivery\";\nimport { NullAssetReply } from \"./NullAssetReply\";\n\nexport class NullAssetOutputStrategy implements AssetOutputStrategy {\n async output(): Promise<AssetReply> {\n return new NullAssetReply();\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,eAAA,GAAAC,OAAA;AAEO,MAAMC,uBAAuB,CAAgC;EAChE,MAAMC,MAAMA,CAAA,EAAwB;IAChC,OAAO,IAAIC,8BAAc,CAAC,CAAC;EAC/B;AACJ;AAACC,OAAA,CAAAH,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AssetResolver } from "./abstractions/AssetResolver";
|
|
2
|
-
import { Asset } from "./Asset";
|
|
1
|
+
import type { AssetResolver } from "./abstractions/AssetResolver";
|
|
2
|
+
import type { Asset } from "./Asset";
|
|
3
3
|
export declare class NullAssetResolver implements AssetResolver {
|
|
4
4
|
resolve(): Promise<Asset | undefined>;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NullAssetResolver","resolve","Promise","undefined","exports"],"sources":["NullAssetResolver.ts"],"sourcesContent":["import { AssetResolver } from \"./abstractions/AssetResolver\";\nimport { Asset } from \"./Asset\";\n\nexport class NullAssetResolver implements AssetResolver {\n resolve(): Promise<Asset | undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,iBAAiB,CAA0B;EACpDC,OAAOA,CAAA,EAA+B;IAClC,OAAOC,OAAO,CAACD,OAAO,CAACE,SAAS,CAAC;EACrC;AACJ;AAACC,OAAA,CAAAJ,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NullAssetResolver","resolve","Promise","undefined","exports"],"sources":["NullAssetResolver.ts"],"sourcesContent":["import type { AssetResolver } from \"./abstractions/AssetResolver\";\nimport type { Asset } from \"./Asset\";\n\nexport class NullAssetResolver implements AssetResolver {\n resolve(): Promise<Asset | undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,iBAAiB,CAA0B;EACpDC,OAAOA,CAAA,EAA+B;IAClC,OAAOC,OAAO,CAACD,OAAO,CAACE,SAAS,CAAC;EACrC;AACJ;AAACC,OAAA,CAAAJ,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NullRequestResolver","resolve","Promise","undefined","exports"],"sources":["NullRequestResolver.ts"],"sourcesContent":["import { AssetRequest, AssetRequestResolver } from \"~/delivery\";\n\nexport class NullRequestResolver implements AssetRequestResolver {\n resolve(): Promise<AssetRequest | undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,CAAiC;EAC7DC,OAAOA,CAAA,EAAsC;IACzC,OAAOC,OAAO,CAACD,OAAO,CAACE,SAAS,CAAC;EACrC;AACJ;AAACC,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NullRequestResolver","resolve","Promise","undefined","exports"],"sources":["NullRequestResolver.ts"],"sourcesContent":["import type { AssetRequest, AssetRequestResolver } from \"~/delivery\";\n\nexport class NullRequestResolver implements AssetRequestResolver {\n resolve(): Promise<AssetRequest | undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,CAAiC;EAC7DC,OAAOA,CAAA,EAAsC;IACzC,OAAOC,OAAO,CAACD,OAAO,CAACE,SAAS,CAAC;EACrC;AACJ;AAACC,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ResponseHeaders } from "@webiny/handler";
|
|
2
|
-
import { Asset, AssetOutputStrategy, AssetReply } from "..";
|
|
1
|
+
import type { ResponseHeaders } from "@webiny/handler";
|
|
2
|
+
import type { Asset, AssetOutputStrategy, AssetReply } from "..";
|
|
3
3
|
export declare class SetCacheControlHeaders implements AssetOutputStrategy {
|
|
4
4
|
private readonly strategy;
|
|
5
5
|
private readonly headers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SetCacheControlHeaders","constructor","headers","strategy","output","asset","Error","reply","setHeaders","merge","exports"],"sources":["SetCacheControlHeaders.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\nimport { Asset, AssetOutputStrategy, AssetReply } from \"~/delivery\";\n\nexport class SetCacheControlHeaders implements AssetOutputStrategy {\n private readonly strategy: AssetOutputStrategy | undefined;\n private readonly headers: ResponseHeaders;\n\n constructor(headers: ResponseHeaders, strategy: AssetOutputStrategy | undefined) {\n this.headers = headers;\n this.strategy = strategy;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n if (!this.strategy) {\n throw Error(`No asset output strategy is configured!`);\n }\n\n const reply = await this.strategy.output(asset);\n\n reply.setHeaders(headers => {\n return headers.merge(this.headers);\n });\n\n return reply;\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,sBAAsB,CAAgC;EAI/DC,WAAWA,CAACC,OAAwB,EAAEC,QAAyC,EAAE;IAC7E,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAMC,MAAMA,CAACC,KAAY,EAAuB;IAC5C,IAAI,CAAC,IAAI,CAACF,QAAQ,EAAE;MAChB,MAAMG,KAAK,CAAC,yCAAyC,CAAC;IAC1D;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACJ,QAAQ,CAACC,MAAM,CAACC,KAAK,CAAC;IAE/CE,KAAK,CAACC,UAAU,CAACN,OAAO,IAAI;MACxB,OAAOA,OAAO,CAACO,KAAK,CAAC,IAAI,CAACP,OAAO,CAAC;IACtC,CAAC,CAAC;IAEF,OAAOK,KAAK;EAChB;AACJ;AAACG,OAAA,CAAAV,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["SetCacheControlHeaders","constructor","headers","strategy","output","asset","Error","reply","setHeaders","merge","exports"],"sources":["SetCacheControlHeaders.ts"],"sourcesContent":["import type { ResponseHeaders } from \"@webiny/handler\";\nimport type { Asset, AssetOutputStrategy, AssetReply } from \"~/delivery\";\n\nexport class SetCacheControlHeaders implements AssetOutputStrategy {\n private readonly strategy: AssetOutputStrategy | undefined;\n private readonly headers: ResponseHeaders;\n\n constructor(headers: ResponseHeaders, strategy: AssetOutputStrategy | undefined) {\n this.headers = headers;\n this.strategy = strategy;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n if (!this.strategy) {\n throw Error(`No asset output strategy is configured!`);\n }\n\n const reply = await this.strategy.output(asset);\n\n reply.setHeaders(headers => {\n return headers.merge(this.headers);\n });\n\n return reply;\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,sBAAsB,CAAgC;EAI/DC,WAAWA,CAACC,OAAwB,EAAEC,QAAyC,EAAE;IAC7E,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAMC,MAAMA,CAACC,KAAY,EAAuB;IAC5C,IAAI,CAAC,IAAI,CAACF,QAAQ,EAAE;MAChB,MAAMG,KAAK,CAAC,yCAAyC,CAAC;IAC1D;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACJ,QAAQ,CAACC,MAAM,CAACC,KAAK,CAAC;IAE/CE,KAAK,CAACC,UAAU,CAACN,OAAO,IAAI;MACxB,OAAOA,OAAO,CAACO,KAAK,CAAC,IAAI,CAACP,OAAO,CAAC;IACtC,CAAC,CAAC;IAEF,OAAOK,KAAK;EAChB;AACJ;AAACG,OAAA,CAAAV,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|