@webiny/api-file-manager 5.40.4-beta.0 → 5.40.4-beta.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.
@@ -1,4 +1,6 @@
1
- import { AssetOutputStrategy, SetCacheControlHeaders } from "../..";
2
- export declare class PrivateCache extends SetCacheControlHeaders {
3
- constructor(days: number, strategy: AssetOutputStrategy | undefined);
1
+ import { Asset, AssetOutputStrategy, AssetReply } from "../..";
2
+ export declare class PrivateCache implements AssetOutputStrategy {
3
+ private strategy;
4
+ constructor(strategy: AssetOutputStrategy);
5
+ output(asset: Asset): Promise<AssetReply>;
4
6
  }
@@ -4,13 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PrivateCache = void 0;
7
- var _ = require("../..");
8
- var _handler = require("@webiny/handler");
9
- class PrivateCache extends _.SetCacheControlHeaders {
10
- constructor(days, strategy) {
11
- super(_handler.ResponseHeaders.create({
12
- "cache-control": `private, max-age=${86400 * days}`
13
- }), strategy);
7
+ var _cacheControlParser = require("cache-control-parser");
8
+ class PrivateCache {
9
+ constructor(strategy) {
10
+ this.strategy = strategy;
11
+ }
12
+ async output(asset) {
13
+ const reply = await this.strategy.output(asset);
14
+ reply.setHeaders(headers => {
15
+ headers.set("cache-control", (value = "") => {
16
+ const cacheControl = (0, _cacheControlParser.parse)(value);
17
+ cacheControl["private"] = true;
18
+ cacheControl["public"] = false;
19
+ return (0, _cacheControlParser.stringify)(cacheControl);
20
+ });
21
+ return headers;
22
+ });
23
+ return reply;
14
24
  }
15
25
  }
16
26
  exports.PrivateCache = PrivateCache;
@@ -1 +1 @@
1
- {"version":3,"names":["_","require","_handler","PrivateCache","SetCacheControlHeaders","constructor","days","strategy","ResponseHeaders","create","exports"],"sources":["PrivateCache.ts"],"sourcesContent":["import { AssetOutputStrategy, SetCacheControlHeaders } from \"~/delivery\";\nimport { ResponseHeaders } from \"@webiny/handler\";\n\nexport class PrivateCache extends SetCacheControlHeaders {\n constructor(days: number, strategy: AssetOutputStrategy | undefined) {\n super(\n ResponseHeaders.create({\n \"cache-control\": `private, max-age=${86400 * days}`\n }),\n strategy\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,YAAY,SAASC,wBAAsB,CAAC;EACrDC,WAAWA,CAACC,IAAY,EAAEC,QAAyC,EAAE;IACjE,KAAK,CACDC,wBAAe,CAACC,MAAM,CAAC;MACnB,eAAe,EAAG,oBAAmB,KAAK,GAAGH,IAAK;IACtD,CAAC,CAAC,EACFC,QACJ,CAAC;EACL;AACJ;AAACG,OAAA,CAAAP,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_cacheControlParser","require","PrivateCache","constructor","strategy","output","asset","reply","setHeaders","headers","set","value","cacheControl","parse","stringify","exports"],"sources":["PrivateCache.ts"],"sourcesContent":["import { parse, stringify } from \"cache-control-parser\";\nimport { Asset, AssetOutputStrategy, AssetReply } from \"~/delivery\";\n\nexport class PrivateCache implements AssetOutputStrategy {\n private strategy: AssetOutputStrategy;\n\n constructor(strategy: AssetOutputStrategy) {\n this.strategy = strategy;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n const reply = await this.strategy.output(asset);\n\n reply.setHeaders(headers => {\n headers.set(\"cache-control\", (value = \"\") => {\n const cacheControl = parse(value);\n cacheControl[\"private\"] = true;\n cacheControl[\"public\"] = false;\n return stringify(cacheControl);\n });\n return headers;\n });\n\n return reply;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAGO,MAAMC,YAAY,CAAgC;EAGrDC,WAAWA,CAACC,QAA6B,EAAE;IACvC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAMC,MAAMA,CAACC,KAAY,EAAuB;IAC5C,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACH,QAAQ,CAACC,MAAM,CAACC,KAAK,CAAC;IAE/CC,KAAK,CAACC,UAAU,CAACC,OAAO,IAAI;MACxBA,OAAO,CAACC,GAAG,CAAC,eAAe,EAAE,CAACC,KAAK,GAAG,EAAE,KAAK;QACzC,MAAMC,YAAY,GAAG,IAAAC,yBAAK,EAACF,KAAK,CAAC;QACjCC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI;QAC9BA,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK;QAC9B,OAAO,IAAAE,6BAAS,EAACF,YAAY,CAAC;MAClC,CAAC,CAAC;MACF,OAAOH,OAAO;IAClB,CAAC,CAAC;IAEF,OAAOF,KAAK;EAChB;AACJ;AAACQ,OAAA,CAAAb,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -33,7 +33,6 @@ class PrivateFilesAssetProcessor {
33
33
  asset.setOutputStrategy(new _RedirectToPrivateUrlOutputStrategy.RedirectToPrivateUrlOutputStrategy(assetRequest));
34
34
  return asset;
35
35
  }
36
- console.log("file", file);
37
36
  try {
38
37
  await this.assetAuthorizer.authorize(file);
39
38
  } catch (error) {
@@ -42,7 +41,10 @@ class PrivateFilesAssetProcessor {
42
41
  }
43
42
  const processedAsset = await this.assetProcessor.process(assetRequest, asset);
44
43
  processedAsset.setOutputStrategy(strategy => {
45
- return isPrivateFile ? new _PrivateCache.PrivateCache(30, strategy) : new _PublicCache.PublicCache(365, strategy);
44
+ if (!strategy) {
45
+ throw Error(`No asset output strategy is configured!`);
46
+ }
47
+ return isPrivateFile ? new _PrivateCache.PrivateCache(strategy) : new _PublicCache.PublicCache(strategy);
46
48
  });
47
49
  return processedAsset;
48
50
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_NotAuthorizedOutputStrategy","require","_RedirectToPublicUrlOutputStrategy","_RedirectToPrivateUrlOutputStrategy","_PrivateCache","_PublicCache","PrivateFilesAssetProcessor","constructor","context","assetAuthorizer","assetProcessor","process","assetRequest","asset","id","getId","security","fileManager","file","withoutAuthorization","getFile","isPrivateFile","isPrivate","requestedViaPrivateEndpoint","setOutputStrategy","RedirectToPublicUrlOutputStrategy","requestedViaPublicEndpoint","RedirectToPrivateUrlOutputStrategy","console","log","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 { 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, fileManager } = this.context;\n\n // Get file from File Manager by `id`.\n const file = await security.withoutAuthorization(() => fileManager.getFile(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 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,kCAAA,GAAAD,OAAA;AACA,IAAAE,mCAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAMO,MAAMK,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,QAAQ;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACT,OAAO;;IAE9C;IACA,MAAMU,IAAI,GAAG,MAAMF,QAAQ,CAACG,oBAAoB,CAAC,MAAMF,WAAW,CAACG,OAAO,CAACN,EAAE,CAAC,CAAC;IAE/E,MAAMO,aAAa,GAAG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC;IAE1C,IAAI,CAACG,aAAa,IAAI,IAAI,CAACE,2BAA2B,CAACX,YAAY,CAAC,EAAE;MAClEC,KAAK,CAACW,iBAAiB,CAAC,IAAIC,oEAAiC,CAACb,YAAY,CAAC,CAAC;MAC5E,OAAOC,KAAK;IAChB;IAEA,IAAIQ,aAAa,IAAI,IAAI,CAACK,0BAA0B,CAACd,YAAY,CAAC,EAAE;MAChEC,KAAK,CAACW,iBAAiB,CAAC,IAAIG,sEAAkC,CAACf,YAAY,CAAC,CAAC;MAC7E,OAAOC,KAAK;IAChB;IAEAe,OAAO,CAACC,GAAG,CAAC,MAAM,EAAEX,IAAI,CAAC;IAEzB,IAAI;MACA,MAAM,IAAI,CAACT,eAAe,CAACqB,SAAS,CAACZ,IAAI,CAAC;IAC9C,CAAC,CAAC,OAAOa,KAAK,EAAE;MACZlB,KAAK,CAACW,iBAAiB,CAAC,IAAIQ,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,CAACT,iBAAiB,CAACU,QAAQ,IAAI;MACzC,OAAOb,aAAa,GAAG,IAAIc,0BAAY,CAAC,EAAE,EAAED,QAAQ,CAAC,GAAG,IAAIE,wBAAW,CAAC,GAAG,EAAEF,QAAQ,CAAC;IAC1F,CAAC,CAAC;IAEF,OAAOD,cAAc;EACzB;EAEQX,SAASA,CAACJ,IAAU,EAAE;IAC1B,OAAOA,IAAI,CAACmB,aAAa,IAAInB,IAAI,CAACmB,aAAa,CAACC,IAAI,CAACC,UAAU,CAAC,UAAU,CAAC;EAC/E;EAEQhB,2BAA2BA,CAACX,YAA0B,EAAE;IAC5D,OAAOA,YAAY,CAAC4B,UAAU,CAAe,CAAC,CAACC,OAAO;EAC1D;EAEQf,0BAA0BA,CAACd,YAA0B,EAAE;IAC3D,OAAO,CAAC,IAAI,CAACW,2BAA2B,CAACX,YAAY,CAAC;EAC1D;AACJ;AAAC8B,OAAA,CAAApC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_NotAuthorizedOutputStrategy","require","_RedirectToPublicUrlOutputStrategy","_RedirectToPrivateUrlOutputStrategy","_PrivateCache","_PublicCache","PrivateFilesAssetProcessor","constructor","context","assetAuthorizer","assetProcessor","process","assetRequest","asset","id","getId","security","fileManager","file","withoutAuthorization","getFile","isPrivateFile","isPrivate","requestedViaPrivateEndpoint","setOutputStrategy","RedirectToPublicUrlOutputStrategy","requestedViaPublicEndpoint","RedirectToPrivateUrlOutputStrategy","authorize","error","NotAuthorizedOutputStrategy","processedAsset","strategy","Error","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 { 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, fileManager } = this.context;\n\n // Get file from File Manager by `id`.\n const file = await security.withoutAuthorization(() => fileManager.getFile(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 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 if (!strategy) {\n throw Error(`No asset output strategy is configured!`);\n }\n return isPrivateFile ? new PrivateCache(strategy) : new PublicCache(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,kCAAA,GAAAD,OAAA;AACA,IAAAE,mCAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAMO,MAAMK,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,QAAQ;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACT,OAAO;;IAE9C;IACA,MAAMU,IAAI,GAAG,MAAMF,QAAQ,CAACG,oBAAoB,CAAC,MAAMF,WAAW,CAACG,OAAO,CAACN,EAAE,CAAC,CAAC;IAE/E,MAAMO,aAAa,GAAG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC;IAE1C,IAAI,CAACG,aAAa,IAAI,IAAI,CAACE,2BAA2B,CAACX,YAAY,CAAC,EAAE;MAClEC,KAAK,CAACW,iBAAiB,CAAC,IAAIC,oEAAiC,CAACb,YAAY,CAAC,CAAC;MAC5E,OAAOC,KAAK;IAChB;IAEA,IAAIQ,aAAa,IAAI,IAAI,CAACK,0BAA0B,CAACd,YAAY,CAAC,EAAE;MAChEC,KAAK,CAACW,iBAAiB,CAAC,IAAIG,sEAAkC,CAACf,YAAY,CAAC,CAAC;MAC7E,OAAOC,KAAK;IAChB;IAEA,IAAI;MACA,MAAM,IAAI,CAACJ,eAAe,CAACmB,SAAS,CAACV,IAAI,CAAC;IAC9C,CAAC,CAAC,OAAOW,KAAK,EAAE;MACZhB,KAAK,CAACW,iBAAiB,CAAC,IAAIM,wDAA2B,CAAC,CAAC,CAAC;MAE1D,OAAOjB,KAAK;IAChB;IAEA,MAAMkB,cAAc,GAAG,MAAM,IAAI,CAACrB,cAAc,CAACC,OAAO,CAACC,YAAY,EAAEC,KAAK,CAAC;IAE7EkB,cAAc,CAACP,iBAAiB,CAACQ,QAAQ,IAAI;MACzC,IAAI,CAACA,QAAQ,EAAE;QACX,MAAMC,KAAK,CAAE,yCAAwC,CAAC;MAC1D;MACA,OAAOZ,aAAa,GAAG,IAAIa,0BAAY,CAACF,QAAQ,CAAC,GAAG,IAAIG,wBAAW,CAACH,QAAQ,CAAC;IACjF,CAAC,CAAC;IAEF,OAAOD,cAAc;EACzB;EAEQT,SAASA,CAACJ,IAAU,EAAE;IAC1B,OAAOA,IAAI,CAACkB,aAAa,IAAIlB,IAAI,CAACkB,aAAa,CAACC,IAAI,CAACC,UAAU,CAAC,UAAU,CAAC;EAC/E;EAEQf,2BAA2BA,CAACX,YAA0B,EAAE;IAC5D,OAAOA,YAAY,CAAC2B,UAAU,CAAe,CAAC,CAACC,OAAO;EAC1D;EAEQd,0BAA0BA,CAACd,YAA0B,EAAE;IAC3D,OAAO,CAAC,IAAI,CAACW,2BAA2B,CAACX,YAAY,CAAC;EAC1D;AACJ;AAAC6B,OAAA,CAAAnC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
- import { AssetOutputStrategy, SetCacheControlHeaders } from "../..";
2
- export declare class PublicCache extends SetCacheControlHeaders {
3
- constructor(days: number, strategy: AssetOutputStrategy | undefined);
1
+ import { Asset, AssetOutputStrategy, AssetReply } from "../..";
2
+ export declare class PublicCache implements AssetOutputStrategy {
3
+ private strategy;
4
+ constructor(strategy: AssetOutputStrategy);
5
+ output(asset: Asset): Promise<AssetReply>;
4
6
  }
@@ -4,13 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PublicCache = void 0;
7
- var _ = require("../..");
8
- var _handler = require("@webiny/handler");
9
- class PublicCache extends _.SetCacheControlHeaders {
10
- constructor(days, strategy) {
11
- super(_handler.ResponseHeaders.create({
12
- "cache-control": `public, max-age=${86400 * days}`
13
- }), strategy);
7
+ var _cacheControlParser = require("cache-control-parser");
8
+ class PublicCache {
9
+ constructor(strategy) {
10
+ this.strategy = strategy;
11
+ }
12
+ async output(asset) {
13
+ const reply = await this.strategy.output(asset);
14
+ reply.setHeaders(headers => {
15
+ headers.set("cache-control", (value = "") => {
16
+ const cacheControl = (0, _cacheControlParser.parse)(value);
17
+ cacheControl["private"] = false;
18
+ cacheControl["public"] = true;
19
+ return (0, _cacheControlParser.stringify)(cacheControl);
20
+ });
21
+ return headers;
22
+ });
23
+ return reply;
14
24
  }
15
25
  }
16
26
  exports.PublicCache = PublicCache;
@@ -1 +1 @@
1
- {"version":3,"names":["_","require","_handler","PublicCache","SetCacheControlHeaders","constructor","days","strategy","ResponseHeaders","create","exports"],"sources":["PublicCache.ts"],"sourcesContent":["import { AssetOutputStrategy, SetCacheControlHeaders } from \"~/delivery\";\nimport { ResponseHeaders } from \"@webiny/handler\";\n\nexport class PublicCache extends SetCacheControlHeaders {\n constructor(days: number, strategy: AssetOutputStrategy | undefined) {\n super(\n ResponseHeaders.create({\n \"cache-control\": `public, max-age=${86400 * days}`\n }),\n strategy\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,WAAW,SAASC,wBAAsB,CAAC;EACpDC,WAAWA,CAACC,IAAY,EAAEC,QAAyC,EAAE;IACjE,KAAK,CACDC,wBAAe,CAACC,MAAM,CAAC;MACnB,eAAe,EAAG,mBAAkB,KAAK,GAAGH,IAAK;IACrD,CAAC,CAAC,EACFC,QACJ,CAAC;EACL;AACJ;AAACG,OAAA,CAAAP,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_cacheControlParser","require","PublicCache","constructor","strategy","output","asset","reply","setHeaders","headers","set","value","cacheControl","parse","stringify","exports"],"sources":["PublicCache.ts"],"sourcesContent":["import { parse, stringify } from \"cache-control-parser\";\nimport { Asset, AssetOutputStrategy, AssetReply } from \"~/delivery\";\n\nexport class PublicCache implements AssetOutputStrategy {\n private strategy: AssetOutputStrategy;\n\n constructor(strategy: AssetOutputStrategy) {\n this.strategy = strategy;\n }\n\n async output(asset: Asset): Promise<AssetReply> {\n const reply = await this.strategy.output(asset);\n\n reply.setHeaders(headers => {\n headers.set(\"cache-control\", (value = \"\") => {\n const cacheControl = parse(value);\n cacheControl[\"private\"] = false;\n cacheControl[\"public\"] = true;\n return stringify(cacheControl);\n });\n return headers;\n });\n\n return reply;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAGO,MAAMC,WAAW,CAAgC;EAGpDC,WAAWA,CAACC,QAA6B,EAAE;IACvC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAMC,MAAMA,CAACC,KAAY,EAAuB;IAC5C,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACH,QAAQ,CAACC,MAAM,CAACC,KAAK,CAAC;IAE/CC,KAAK,CAACC,UAAU,CAACC,OAAO,IAAI;MACxBA,OAAO,CAACC,GAAG,CAAC,eAAe,EAAE,CAACC,KAAK,GAAG,EAAE,KAAK;QACzC,MAAMC,YAAY,GAAG,IAAAC,yBAAK,EAACF,KAAK,CAAC;QACjCC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK;QAC/BA,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;QAC7B,OAAO,IAAAE,6BAAS,EAACF,YAAY,CAAC;MAClC,CAAC,CAAC;MACF,OAAOH,OAAO;IAClB,CAAC,CAAC;IAEF,OAAOF,KAAK;EAChB;AACJ;AAACQ,OAAA,CAAAb,WAAA,GAAAA,WAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager",
3
- "version": "5.40.4-beta.0",
3
+ "version": "5.40.4-beta.1",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "fm:base"
@@ -20,20 +20,21 @@
20
20
  "dependencies": {
21
21
  "@babel/runtime": "7.24.1",
22
22
  "@commodo/fields": "1.1.2-beta.20",
23
- "@webiny/api": "5.40.4-beta.0",
24
- "@webiny/api-headless-cms": "5.40.4-beta.0",
25
- "@webiny/api-security": "5.40.4-beta.0",
26
- "@webiny/api-tenancy": "5.40.4-beta.0",
27
- "@webiny/aws-sdk": "5.40.4-beta.0",
28
- "@webiny/error": "5.40.4-beta.0",
29
- "@webiny/handler": "5.40.4-beta.0",
30
- "@webiny/handler-aws": "5.40.4-beta.0",
31
- "@webiny/handler-graphql": "5.40.4-beta.0",
32
- "@webiny/plugins": "5.40.4-beta.0",
33
- "@webiny/project-utils": "5.40.4-beta.0",
34
- "@webiny/pubsub": "5.40.4-beta.0",
35
- "@webiny/tasks": "5.40.4-beta.0",
36
- "@webiny/validation": "5.40.4-beta.0",
23
+ "@webiny/api": "5.40.4-beta.1",
24
+ "@webiny/api-headless-cms": "5.40.4-beta.1",
25
+ "@webiny/api-security": "5.40.4-beta.1",
26
+ "@webiny/api-tenancy": "5.40.4-beta.1",
27
+ "@webiny/aws-sdk": "5.40.4-beta.1",
28
+ "@webiny/error": "5.40.4-beta.1",
29
+ "@webiny/handler": "5.40.4-beta.1",
30
+ "@webiny/handler-aws": "5.40.4-beta.1",
31
+ "@webiny/handler-graphql": "5.40.4-beta.1",
32
+ "@webiny/plugins": "5.40.4-beta.1",
33
+ "@webiny/project-utils": "5.40.4-beta.1",
34
+ "@webiny/pubsub": "5.40.4-beta.1",
35
+ "@webiny/tasks": "5.40.4-beta.1",
36
+ "@webiny/validation": "5.40.4-beta.1",
37
+ "cache-control-parser": "2.0.6",
37
38
  "lodash": "4.17.21",
38
39
  "object-hash": "3.0.0"
39
40
  },
@@ -45,9 +46,9 @@
45
46
  "@babel/preset-env": "7.24.3",
46
47
  "@babel/preset-typescript": "7.24.1",
47
48
  "@types/sharp": "0.32.0",
48
- "@webiny/api-i18n": "5.40.4-beta.0",
49
- "@webiny/cli": "5.40.4-beta.0",
50
- "@webiny/utils": "5.40.4-beta.0",
49
+ "@webiny/api-i18n": "5.40.4-beta.1",
50
+ "@webiny/cli": "5.40.4-beta.1",
51
+ "@webiny/utils": "5.40.4-beta.1",
51
52
  "jest": "29.7.0",
52
53
  "rimraf": "5.0.5",
53
54
  "ttypescript": "1.5.15",
@@ -71,5 +72,5 @@
71
72
  ]
72
73
  }
73
74
  },
74
- "gitHead": "ac47eaeffd087f0c296abd3eef68c6f8e320cd7d"
75
+ "gitHead": "5795b78c0b0e8be7b96a1f459025af523c6b2ab4"
75
76
  }