@social-mail/social-mail-web-server 1.7.595 → 1.7.597

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,9 +1,12 @@
1
1
  import Page from "@entity-access/server-pages/dist/Page.js";
2
2
  import WebSiteContentService from "../../../../../server/services/files/WebSiteContentService.js";
3
3
  import Content from "@entity-access/server-pages/dist/Content.js";
4
+ import SiteDiskContentCache from "../../../../../server/services/files/SiteDiskContentCache.js";
4
5
  export default class extends Page {
5
6
  wcs: WebSiteContentService;
6
- mobile: boolean;
7
+ siteCache: SiteDiskContentCache;
8
+ mobile: any;
9
+ cacheKey: any;
7
10
  run(): Promise<Content>;
8
11
  }
9
12
  //# sourceMappingURL=get.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/site/preview/get.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,qBAAqB,MAAM,+DAA+D,CAAC;AAIlG,OAAO,OAAO,MAAM,6CAA6C,CAAC;AA2BlE,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,GAAG,EAAE,qBAAqB,CAAC;IAG3B,MAAM,EAAE,OAAO,CAAC;IAEV,GAAG;CAoCZ"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/site/preview/get.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,qBAAqB,MAAM,+DAA+D,CAAC;AAIlG,OAAO,OAA2B,MAAM,6CAA6C,CAAC;AAItF,OAAO,oBAAoB,MAAM,8DAA8D,CAAC;AAwBhG,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,GAAG,EAAE,qBAAqB,CAAC;IAG3B,SAAS,EAAE,oBAAoB,CAAC;IAGhC,MAAM,MAAC;IAGP,QAAQ,MAAC;IAEH,GAAG;CA8CZ"}
@@ -13,10 +13,10 @@ import WebSiteContentService from "../../../../../server/services/files/WebSiteC
13
13
  import { Query } from "@entity-access/server-pages/dist/core/Query.js";
14
14
  import { globalEnv } from "../../../../../common/globalEnv.js";
15
15
  import { Agent, fetch } from "undici";
16
- import Content from "@entity-access/server-pages/dist/Content.js";
17
- import { Readable } from "stream";
16
+ import { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
18
17
  import { connect } from "net";
19
18
  import HttpProxyService from "../../../../../server/services/http/HttpProxyService.js";
19
+ import SiteDiskContentCache from "../../../../../server/services/files/SiteDiskContentCache.js";
20
20
  let port = globalEnv.puppeteer.port;
21
21
  if (/^\d+$/i.test(port)) {
22
22
  port = Number(port);
@@ -49,21 +49,28 @@ export default class default_1 extends Page {
49
49
  const url = this.request.URL;
50
50
  return await HttpProxyService.fetch(this, `${snapshot.remoteUrl}${url.pathname}${url.search}`);
51
51
  }
52
- const query = new URLSearchParams({
53
- url: `https://${this.request.hostName}`,
54
- width: "1024",
55
- height: "2048",
56
- output: "webp"
57
- });
58
- const r = await fetch(`http://localhost/screen-shot?${query.toString()}`, {
59
- dispatcher
52
+ let width = 1024;
53
+ let height = 1536;
54
+ if (/true|yes/i.test(this.mobile)) {
55
+ width = 600;
56
+ height = 1000;
57
+ }
58
+ const key = `${snapshot.snapshotFolderID}/${this.cacheKey || "default"}-${width}-${height}-preview.webp`;
59
+ const file = await this.siteCache.htmlCache.getOrCreateAsync(key, async (lf) => {
60
+ const query = new URLSearchParams({
61
+ url: `https://${this.request.hostName}`,
62
+ width: "1024",
63
+ height: "2048",
64
+ output: "webp"
65
+ });
66
+ const r = await fetch(`http://localhost/screen-shot?${query.toString()}`, {
67
+ dispatcher
68
+ });
69
+ const buffer = Buffer.from(await r.arrayBuffer());
70
+ await lf.writeAll(buffer);
60
71
  });
61
- const buffer = Buffer.from(await r.arrayBuffer());
62
- const contentType = r.headers.get("content-type");
63
- return new Content({
64
- reader: Readable.from([buffer]),
65
- contentType,
66
- suppressLog: true
72
+ return new TempFileResult(file, {
73
+ contentType: "image/webp"
67
74
  });
68
75
  }
69
76
  }
@@ -71,8 +78,16 @@ __decorate([
71
78
  Inject,
72
79
  __metadata("design:type", WebSiteContentService)
73
80
  ], default_1.prototype, "wcs", void 0);
81
+ __decorate([
82
+ Inject,
83
+ __metadata("design:type", SiteDiskContentCache)
84
+ ], default_1.prototype, "siteCache", void 0);
74
85
  __decorate([
75
86
  Query("mobile"),
76
- __metadata("design:type", Boolean)
87
+ __metadata("design:type", Object)
77
88
  ], default_1.prototype, "mobile", void 0);
89
+ __decorate([
90
+ Query("cache-key"),
91
+ __metadata("design:type", Object)
92
+ ], default_1.prototype, "cacheKey", void 0);
78
93
  //# sourceMappingURL=get.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/site/preview/get.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/social-mail/site/preview/get.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-web-server",
3
- "version": "1.7.595",
3
+ "version": "1.7.597",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -4,10 +4,11 @@ import WebSiteContentService from "../../../../../server/services/files/WebSiteC
4
4
  import { Query } from "@entity-access/server-pages/dist/core/Query.js";
5
5
  import { globalEnv } from "../../../../../common/globalEnv.js";
6
6
  import { Agent, fetch } from "undici";
7
- import Content from "@entity-access/server-pages/dist/Content.js";
7
+ import Content, { TempFileResult } from "@entity-access/server-pages/dist/Content.js";
8
8
  import { Readable } from "stream";
9
9
  import { connect } from "net";
10
10
  import HttpProxyService from "../../../../../server/services/http/HttpProxyService.js";
11
+ import SiteDiskContentCache from "../../../../../server/services/files/SiteDiskContentCache.js";
11
12
 
12
13
  let port = globalEnv.puppeteer.port as any;
13
14
  if (/^\d+$/i.test(port)) {
@@ -36,8 +37,14 @@ export default class extends Page {
36
37
  @Inject
37
38
  wcs: WebSiteContentService;
38
39
 
40
+ @Inject
41
+ siteCache: SiteDiskContentCache;
42
+
39
43
  @Query("mobile")
40
- mobile: boolean;
44
+ mobile;
45
+
46
+ @Query("cache-key")
47
+ cacheKey;
41
48
 
42
49
  async run() {
43
50
 
@@ -53,26 +60,36 @@ export default class extends Page {
53
60
  return await HttpProxyService.fetch(this, `${snapshot.remoteUrl}${url.pathname}${url.search}`);
54
61
  }
55
62
 
63
+ let width = 1024;
64
+ let height = 1536;
56
65
 
57
- const query = new URLSearchParams({
58
- url: `https://${this.request.hostName}`,
59
- width: "1024",
60
- height: "2048",
61
- output: "webp"
62
- });
66
+ if (/true|yes/i.test(this.mobile)) {
67
+ width = 600;
68
+ height = 1000;
69
+ }
63
70
 
64
- const r = await fetch(`http://localhost/screen-shot?${query.toString()}`, {
65
- dispatcher
66
- });
71
+ const key = `${snapshot.snapshotFolderID}/${this.cacheKey || "default"}-${width}-${height}-preview.webp`;
67
72
 
68
- const buffer = Buffer.from( await r.arrayBuffer());
73
+ const file = await this.siteCache.htmlCache.getOrCreateAsync(key, async (lf) => {
69
74
 
70
- const contentType = r.headers.get("content-type");
75
+ const query = new URLSearchParams({
76
+ url: `https://${this.request.hostName}`,
77
+ width: "1024",
78
+ height: "2048",
79
+ output: "webp"
80
+ });
81
+
82
+ const r = await fetch(`http://localhost/screen-shot?${query.toString()}`, {
83
+ dispatcher
84
+ });
85
+
86
+ const buffer = Buffer.from( await r.arrayBuffer());
87
+
88
+ await lf.writeAll(buffer);
89
+ });
71
90
 
72
- return new Content({
73
- reader: Readable.from([buffer]),
74
- contentType,
75
- suppressLog: true
91
+ return new TempFileResult(file, {
92
+ contentType: "image/webp"
76
93
  });
77
94
  }
78
95
  }