@webiny/api-file-manager 5.39.0 → 5.39.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,12 @@ export declare class PrivateFilesAssetProcessor implements AssetProcessor {
7
7
  private assetAuthorizer;
8
8
  constructor(context: FileManagerContext, assetAuthorizer: AssetAuthorizer, assetProcessor: AssetProcessor);
9
9
  process(assetRequest: AssetRequest, asset: Asset): Promise<Asset>;
10
+ /**
11
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
+ * This method performs a very awkward data loading and type cast which should be removed as soon as we resolve the FLP issue!
13
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
+ */
15
+ private getFileById;
10
16
  private isPrivate;
11
17
  private requestedViaPrivateEndpoint;
12
18
  private requestedViaPublicEndpoint;
@@ -4,12 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PrivateFilesAssetProcessor = void 0;
7
+ var _handlerGraphql = require("@webiny/handler-graphql");
7
8
  var _NotAuthorizedOutputStrategy = require("./NotAuthorizedOutputStrategy");
8
- var _internalIdentity = require("./internalIdentity");
9
9
  var _RedirectToPublicUrlOutputStrategy = require("./RedirectToPublicUrlOutputStrategy");
10
10
  var _RedirectToPrivateUrlOutputStrategy = require("./RedirectToPrivateUrlOutputStrategy");
11
11
  var _PrivateCache = require("./PrivateCache");
12
12
  var _PublicCache = require("./PublicCache");
13
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
13
14
  class PrivateFilesAssetProcessor {
14
15
  constructor(context, assetAuthorizer, assetProcessor) {
15
16
  this.assetAuthorizer = assetAuthorizer;
@@ -18,14 +19,9 @@ class PrivateFilesAssetProcessor {
18
19
  }
19
20
  async process(assetRequest, asset) {
20
21
  const id = asset.getId();
21
- const {
22
- security
23
- } = this.context;
24
22
 
25
23
  // Get file from File Manager by `id`.
26
- const file = await security.withIdentity(_internalIdentity.internalIdentity, () => {
27
- return security.withoutAuthorization(() => this.context.fileManager.getFile(id));
28
- });
24
+ const file = await this.getFileById(id);
29
25
  const isPrivateFile = this.isPrivate(file);
30
26
  if (!isPrivateFile && this.requestedViaPrivateEndpoint(assetRequest)) {
31
27
  asset.setOutputStrategy(new _RedirectToPublicUrlOutputStrategy.RedirectToPublicUrlOutputStrategy(assetRequest));
@@ -35,6 +31,7 @@ class PrivateFilesAssetProcessor {
35
31
  asset.setOutputStrategy(new _RedirectToPrivateUrlOutputStrategy.RedirectToPrivateUrlOutputStrategy(assetRequest));
36
32
  return asset;
37
33
  }
34
+ console.log("file", file);
38
35
  try {
39
36
  await this.assetAuthorizer.authorize(file);
40
37
  } catch (error) {
@@ -47,6 +44,29 @@ class PrivateFilesAssetProcessor {
47
44
  });
48
45
  return processedAsset;
49
46
  }
47
+
48
+ /**
49
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
50
+ * This method performs a very awkward data loading and type cast which should be removed as soon as we resolve the FLP issue!
51
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
52
+ */
53
+ async getFileById(id) {
54
+ const model = await this.context.security.withoutAuthorization(() => {
55
+ return this.context.cms.getModel("fmFile");
56
+ });
57
+ if (!model) {
58
+ throw new _handlerGraphql.NotFoundError("File model not found!");
59
+ }
60
+ const entries = this.context.cms.storageOperations.entries;
61
+ const storageEntry = await entries.getLatestRevisionByEntryId(model, {
62
+ id
63
+ });
64
+ if (!storageEntry) {
65
+ throw new _handlerGraphql.NotFoundError("File not found!");
66
+ }
67
+ const file = await (0, _apiHeadlessCms.entryFromStorageTransform)(this.context, model, storageEntry);
68
+ return file.values;
69
+ }
50
70
  isPrivate(file) {
51
71
  return file.accessControl && file.accessControl.type.startsWith("private-");
52
72
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_NotAuthorizedOutputStrategy","require","_internalIdentity","_RedirectToPublicUrlOutputStrategy","_RedirectToPrivateUrlOutputStrategy","_PrivateCache","_PublicCache","PrivateFilesAssetProcessor","constructor","context","assetAuthorizer","assetProcessor","process","assetRequest","asset","id","getId","security","file","withIdentity","internalIdentity","withoutAuthorization","fileManager","getFile","isPrivateFile","isPrivate","requestedViaPrivateEndpoint","setOutputStrategy","RedirectToPublicUrlOutputStrategy","requestedViaPublicEndpoint","RedirectToPrivateUrlOutputStrategy","authorize","error","NotAuthorizedOutputStrategy","processedAsset","strategy","PrivateCache","PublicCache","accessControl","type","startsWith","getContext","private","exports"],"sources":["PrivateFilesAssetProcessor.ts"],"sourcesContent":["import { File, FileManagerContext } from \"~/types\";\nimport { Asset, AssetProcessor, AssetRequest } from \"~/delivery\";\nimport { AssetAuthorizer } from \"./AssetAuthorizer\";\nimport { NotAuthorizedOutputStrategy } from \"./NotAuthorizedOutputStrategy\";\nimport { internalIdentity } from \"./internalIdentity\";\nimport { RedirectToPublicUrlOutputStrategy } from \"./RedirectToPublicUrlOutputStrategy\";\nimport { RedirectToPrivateUrlOutputStrategy } from \"./RedirectToPrivateUrlOutputStrategy\";\nimport { PrivateCache } from \"./PrivateCache\";\nimport { PublicCache } from \"./PublicCache\";\n\ninterface MaybePrivate {\n private?: boolean;\n}\n\nexport class PrivateFilesAssetProcessor implements AssetProcessor {\n private readonly context: FileManagerContext;\n private assetProcessor: AssetProcessor;\n private assetAuthorizer: AssetAuthorizer;\n\n constructor(\n context: FileManagerContext,\n assetAuthorizer: AssetAuthorizer,\n assetProcessor: AssetProcessor\n ) {\n this.assetAuthorizer = assetAuthorizer;\n this.context = context;\n this.assetProcessor = assetProcessor;\n }\n\n async process(assetRequest: AssetRequest, asset: Asset): Promise<Asset> {\n const id = asset.getId();\n const { security } = this.context;\n\n // Get file from File Manager by `id`.\n const file = await security.withIdentity(internalIdentity, () => {\n return security.withoutAuthorization(() => this.context.fileManager.getFile(id));\n });\n\n const isPrivateFile = this.isPrivate(file);\n\n if (!isPrivateFile && this.requestedViaPrivateEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPublicUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n if (isPrivateFile && this.requestedViaPublicEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPrivateUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n try {\n await this.assetAuthorizer.authorize(file);\n } catch (error) {\n asset.setOutputStrategy(new NotAuthorizedOutputStrategy());\n\n return asset;\n }\n\n const processedAsset = await this.assetProcessor.process(assetRequest, asset);\n\n processedAsset.setOutputStrategy(strategy => {\n return isPrivateFile ? new PrivateCache(30, strategy) : new PublicCache(365, strategy);\n });\n\n return processedAsset;\n }\n\n private isPrivate(file: File) {\n return file.accessControl && file.accessControl.type.startsWith(\"private-\");\n }\n\n private requestedViaPrivateEndpoint(assetRequest: AssetRequest) {\n return assetRequest.getContext<MaybePrivate>().private;\n }\n\n private requestedViaPublicEndpoint(assetRequest: AssetRequest) {\n return !this.requestedViaPrivateEndpoint(assetRequest);\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,4BAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,kCAAA,GAAAF,OAAA;AACA,IAAAG,mCAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAMO,MAAMM,0BAA0B,CAA2B;EAK9DC,WAAWA,CACPC,OAA2B,EAC3BC,eAAgC,EAChCC,cAA8B,EAChC;IACE,IAAI,CAACD,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAACC,YAA0B,EAAEC,KAAY,EAAkB;IACpE,MAAMC,EAAE,GAAGD,KAAK,CAACE,KAAK,CAAC,CAAC;IACxB,MAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACR,OAAO;;IAEjC;IACA,MAAMS,IAAI,GAAG,MAAMD,QAAQ,CAACE,YAAY,CAACC,kCAAgB,EAAE,MAAM;MAC7D,OAAOH,QAAQ,CAACI,oBAAoB,CAAC,MAAM,IAAI,CAACZ,OAAO,CAACa,WAAW,CAACC,OAAO,CAACR,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IAEF,MAAMS,aAAa,GAAG,IAAI,CAACC,SAAS,CAACP,IAAI,CAAC;IAE1C,IAAI,CAACM,aAAa,IAAI,IAAI,CAACE,2BAA2B,CAACb,YAAY,CAAC,EAAE;MAClEC,KAAK,CAACa,iBAAiB,CAAC,IAAIC,oEAAiC,CAACf,YAAY,CAAC,CAAC;MAC5E,OAAOC,KAAK;IAChB;IAEA,IAAIU,aAAa,IAAI,IAAI,CAACK,0BAA0B,CAAChB,YAAY,CAAC,EAAE;MAChEC,KAAK,CAACa,iBAAiB,CAAC,IAAIG,sEAAkC,CAACjB,YAAY,CAAC,CAAC;MAC7E,OAAOC,KAAK;IAChB;IAEA,IAAI;MACA,MAAM,IAAI,CAACJ,eAAe,CAACqB,SAAS,CAACb,IAAI,CAAC;IAC9C,CAAC,CAAC,OAAOc,KAAK,EAAE;MACZlB,KAAK,CAACa,iBAAiB,CAAC,IAAIM,wDAA2B,CAAC,CAAC,CAAC;MAE1D,OAAOnB,KAAK;IAChB;IAEA,MAAMoB,cAAc,GAAG,MAAM,IAAI,CAACvB,cAAc,CAACC,OAAO,CAACC,YAAY,EAAEC,KAAK,CAAC;IAE7EoB,cAAc,CAACP,iBAAiB,CAACQ,QAAQ,IAAI;MACzC,OAAOX,aAAa,GAAG,IAAIY,0BAAY,CAAC,EAAE,EAAED,QAAQ,CAAC,GAAG,IAAIE,wBAAW,CAAC,GAAG,EAAEF,QAAQ,CAAC;IAC1F,CAAC,CAAC;IAEF,OAAOD,cAAc;EACzB;EAEQT,SAASA,CAACP,IAAU,EAAE;IAC1B,OAAOA,IAAI,CAACoB,aAAa,IAAIpB,IAAI,CAACoB,aAAa,CAACC,IAAI,CAACC,UAAU,CAAC,UAAU,CAAC;EAC/E;EAEQd,2BAA2BA,CAACb,YAA0B,EAAE;IAC5D,OAAOA,YAAY,CAAC4B,UAAU,CAAe,CAAC,CAACC,OAAO;EAC1D;EAEQb,0BAA0BA,CAAChB,YAA0B,EAAE;IAC3D,OAAO,CAAC,IAAI,CAACa,2BAA2B,CAACb,YAAY,CAAC;EAC1D;AACJ;AAAC8B,OAAA,CAAApC,0BAAA,GAAAA,0BAAA"}
1
+ {"version":3,"names":["_handlerGraphql","require","_NotAuthorizedOutputStrategy","_RedirectToPublicUrlOutputStrategy","_RedirectToPrivateUrlOutputStrategy","_PrivateCache","_PublicCache","_apiHeadlessCms","PrivateFilesAssetProcessor","constructor","context","assetAuthorizer","assetProcessor","process","assetRequest","asset","id","getId","file","getFileById","isPrivateFile","isPrivate","requestedViaPrivateEndpoint","setOutputStrategy","RedirectToPublicUrlOutputStrategy","requestedViaPublicEndpoint","RedirectToPrivateUrlOutputStrategy","console","log","authorize","error","NotAuthorizedOutputStrategy","processedAsset","strategy","PrivateCache","PublicCache","model","security","withoutAuthorization","cms","getModel","NotFoundError","entries","storageOperations","storageEntry","getLatestRevisionByEntryId","entryFromStorageTransform","values","accessControl","type","startsWith","getContext","private","exports"],"sources":["PrivateFilesAssetProcessor.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { File, FileManagerContext } from \"~/types\";\nimport { Asset, AssetProcessor, AssetRequest } from \"~/delivery\";\nimport { AssetAuthorizer } from \"./AssetAuthorizer\";\nimport { NotAuthorizedOutputStrategy } from \"./NotAuthorizedOutputStrategy\";\nimport { RedirectToPublicUrlOutputStrategy } from \"./RedirectToPublicUrlOutputStrategy\";\nimport { RedirectToPrivateUrlOutputStrategy } from \"./RedirectToPrivateUrlOutputStrategy\";\nimport { PrivateCache } from \"./PrivateCache\";\nimport { PublicCache } from \"./PublicCache\";\nimport { entryFromStorageTransform } from \"@webiny/api-headless-cms\";\n\ninterface MaybePrivate {\n private?: boolean;\n}\n\nexport class PrivateFilesAssetProcessor implements AssetProcessor {\n private readonly context: FileManagerContext;\n private assetProcessor: AssetProcessor;\n private assetAuthorizer: AssetAuthorizer;\n\n constructor(\n context: FileManagerContext,\n assetAuthorizer: AssetAuthorizer,\n assetProcessor: AssetProcessor\n ) {\n this.assetAuthorizer = assetAuthorizer;\n this.context = context;\n this.assetProcessor = assetProcessor;\n }\n\n async process(assetRequest: AssetRequest, asset: Asset): Promise<Asset> {\n const id = asset.getId();\n\n // Get file from File Manager by `id`.\n const file = await this.getFileById(id);\n\n const isPrivateFile = this.isPrivate(file);\n\n if (!isPrivateFile && this.requestedViaPrivateEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPublicUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n if (isPrivateFile && this.requestedViaPublicEndpoint(assetRequest)) {\n asset.setOutputStrategy(new RedirectToPrivateUrlOutputStrategy(assetRequest));\n return asset;\n }\n\n console.log(\"file\", file);\n\n try {\n await this.assetAuthorizer.authorize(file);\n } catch (error) {\n asset.setOutputStrategy(new NotAuthorizedOutputStrategy());\n\n return asset;\n }\n\n const processedAsset = await this.assetProcessor.process(assetRequest, asset);\n\n processedAsset.setOutputStrategy(strategy => {\n return isPrivateFile ? new PrivateCache(30, strategy) : new PublicCache(365, strategy);\n });\n\n return processedAsset;\n }\n\n /**\n * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n * This method performs a very awkward data loading and type cast which should be removed as soon as we resolve the FLP issue!\n * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n */\n private async getFileById(id: string): Promise<File> {\n const model = await this.context.security.withoutAuthorization(() => {\n return this.context.cms.getModel(\"fmFile\");\n });\n\n if (!model) {\n throw new NotFoundError(\"File model not found!\");\n }\n\n const entries = this.context.cms.storageOperations.entries;\n\n const storageEntry = await entries.getLatestRevisionByEntryId(model, {\n id\n });\n\n if (!storageEntry) {\n throw new NotFoundError(\"File not found!\");\n }\n\n const file = await entryFromStorageTransform(this.context, model, storageEntry);\n\n return file.values as unknown as File;\n }\n\n private isPrivate(file: File) {\n return file.accessControl && file.accessControl.type.startsWith(\"private-\");\n }\n\n private requestedViaPrivateEndpoint(assetRequest: AssetRequest) {\n return assetRequest.getContext<MaybePrivate>().private;\n }\n\n private requestedViaPublicEndpoint(assetRequest: AssetRequest) {\n return !this.requestedViaPrivateEndpoint(assetRequest);\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager",
3
- "version": "5.39.0",
3
+ "version": "5.39.1-beta.0",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "fm:base"
@@ -20,20 +20,20 @@
20
20
  "dependencies": {
21
21
  "@babel/runtime": "7.22.6",
22
22
  "@commodo/fields": "1.1.2-beta.20",
23
- "@webiny/api": "5.39.0",
24
- "@webiny/api-headless-cms": "5.39.0",
25
- "@webiny/api-security": "5.39.0",
26
- "@webiny/api-tenancy": "5.39.0",
27
- "@webiny/aws-sdk": "5.39.0",
28
- "@webiny/error": "5.39.0",
29
- "@webiny/handler": "5.39.0",
30
- "@webiny/handler-aws": "5.39.0",
31
- "@webiny/handler-graphql": "5.39.0",
32
- "@webiny/plugins": "5.39.0",
33
- "@webiny/project-utils": "5.39.0",
34
- "@webiny/pubsub": "5.39.0",
35
- "@webiny/tasks": "5.39.0",
36
- "@webiny/validation": "5.39.0",
23
+ "@webiny/api": "5.39.1-beta.0",
24
+ "@webiny/api-headless-cms": "5.39.1-beta.0",
25
+ "@webiny/api-security": "5.39.1-beta.0",
26
+ "@webiny/api-tenancy": "5.39.1-beta.0",
27
+ "@webiny/aws-sdk": "5.39.1-beta.0",
28
+ "@webiny/error": "5.39.1-beta.0",
29
+ "@webiny/handler": "5.39.1-beta.0",
30
+ "@webiny/handler-aws": "5.39.1-beta.0",
31
+ "@webiny/handler-graphql": "5.39.1-beta.0",
32
+ "@webiny/plugins": "5.39.1-beta.0",
33
+ "@webiny/project-utils": "5.39.1-beta.0",
34
+ "@webiny/pubsub": "5.39.1-beta.0",
35
+ "@webiny/tasks": "5.39.1-beta.0",
36
+ "@webiny/validation": "5.39.1-beta.0",
37
37
  "lodash": "4.17.21",
38
38
  "object-hash": "2.2.0"
39
39
  },
@@ -45,9 +45,9 @@
45
45
  "@babel/preset-env": "7.22.7",
46
46
  "@babel/preset-typescript": "7.22.5",
47
47
  "@types/sharp": "0.32.0",
48
- "@webiny/api-i18n": "5.39.0",
49
- "@webiny/cli": "5.39.0",
50
- "@webiny/utils": "5.39.0",
48
+ "@webiny/api-i18n": "5.39.1-beta.0",
49
+ "@webiny/cli": "5.39.1-beta.0",
50
+ "@webiny/utils": "5.39.1-beta.0",
51
51
  "jest": "29.5.0",
52
52
  "rimraf": "3.0.2",
53
53
  "ttypescript": "1.5.15",
@@ -71,5 +71,5 @@
71
71
  ]
72
72
  }
73
73
  },
74
- "gitHead": "3846541fd9c1764e6a8041f0b4208d720eb9c314"
74
+ "gitHead": "4637f8570aa523ec1069e5907c3535c3dcdda5fe"
75
75
  }