@social-mail/social-mail-web-server 1.7.696 → 1.7.697

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.
@@ -60,8 +60,8 @@ export default class default_1 extends Page {
60
60
  tags: x.webSiteTags?.map((t) => t.tag.name) ?? [],
61
61
  name: x.folder.name,
62
62
  host,
63
- preview: `https://${cdn}/social-mail/site/templates/preview/${host}/desktop/c1-${currentVersionID}/desktop-preview-1.webp`,
64
- previewMobile: `https://${cdn}/social-mail/site/templates/preview/${host}/mobile/c1-${currentVersionID}/desktop-preview-1.webp`,
63
+ preview: `https://${cdn}/social-mail/site/templates/preview/${host}/desktop/c2-${currentVersionID}/desktop-preview-1.webp`,
64
+ previewMobile: `https://${cdn}/social-mail/site/templates/preview/${host}/mobile/c2-${currentVersionID}/desktop-preview-1.webp`,
65
65
  url: `https://${host}`
66
66
  };
67
67
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/site/templates/preview/[host]/[type]/[cacheKey]/get.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAM5D,OAAO,oBAAoB,MAAM,0EAA0E,CAAC;AAC5G,OAAO,qBAAqB,MAAM,2EAA2E,CAAC;AAI9G,OAAO,YAAY,MAAM,kEAAkE,CAAC;AAE5F,OAAO,eAAe,MAAM,8DAA8D,CAAC;AAwB3F,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,GAAG,EAAE,qBAAqB,CAAC;IAG3B,SAAS,EAAE,oBAAoB,CAAC;IAGhC,YAAY,EAAE,YAAY,CAAC;IAG3B,GAAG,EAAE,eAAe,CAAC;IAGrB,IAAI,MAAC;IAGL,QAAQ,MAAC;IAGT,IAAI,MAAC;IAEC,GAAG;CAoEZ"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/site/templates/preview/[host]/[type]/[cacheKey]/get.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAM5D,OAAO,oBAAoB,MAAM,0EAA0E,CAAC;AAC5G,OAAO,qBAAqB,MAAM,2EAA2E,CAAC;AAI9G,OAAO,YAAY,MAAM,kEAAkE,CAAC;AAE5F,OAAO,eAAe,MAAM,8DAA8D,CAAC;AAyB3F,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,GAAG,EAAE,qBAAqB,CAAC;IAG3B,SAAS,EAAE,oBAAoB,CAAC;IAGhC,YAAY,EAAE,YAAY,CAAC;IAG3B,GAAG,EAAE,eAAe,CAAC;IAGrB,IAAI,MAAC;IAGL,QAAQ,MAAC;IAGT,IAAI,MAAC;IAEC,GAAG;CAwEZ"}
@@ -73,6 +73,7 @@ import { Route } from "@entity-access/server-pages/dist/core/Route.js";
73
73
  import CacheService from "../../../../../../../../../server/services/cache/CacheService.js";
74
74
  import TimeSpan from "@entity-access/entity-access/dist/types/TimeSpan.js";
75
75
  import TempFileService from "../../../../../../../../../server/storage/TempFileService.js";
76
+ import { Retry } from "../../../../../../../../../common/Retry.js";
76
77
  let port = globalEnv.puppeteer.port;
77
78
  if (/^\d+$/i.test(port)) {
78
79
  port = Number(port);
@@ -119,7 +120,7 @@ export default class default_1 extends Page {
119
120
  const cf = await this.cacheService.get({
120
121
  key,
121
122
  ttl: TimeSpan.fromDays(30),
122
- factory: async (c) => {
123
+ factory: (c) => Retry.retry(async () => {
123
124
  const env_1 = { stack: [], error: void 0, hasError: false };
124
125
  try {
125
126
  const _ = __addDisposableResource(env_1, await LockFile.lock("puppeteer-preview-generator"), false);
@@ -133,6 +134,9 @@ export default class default_1 extends Page {
133
134
  const r = await fetch(`http://localhost/screen-shot?${query.toString()}`, {
134
135
  dispatcher
135
136
  });
137
+ if (r.status >= 399) {
138
+ throw new Error(await r.text());
139
+ }
136
140
  const buffer = Buffer.from(await r.arrayBuffer());
137
141
  const lf = await this.tfs.createTempFile(".webp", "preview.webp", "image/webp");
138
142
  await lf.writeAll(buffer);
@@ -145,7 +149,7 @@ export default class default_1 extends Page {
145
149
  finally {
146
150
  __disposeResources(env_1);
147
151
  }
148
- }
152
+ })
149
153
  });
150
154
  this.cacheControl = "public, max-age=2592000, immutable";
151
155
  return new TempFileResult(cf, {
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/site/templates/preview/[host]/[type]/[cacheKey]/get.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../../../../../../src/wwwroot/routes/social-mail/site/templates/preview/[host]/[type]/[cacheKey]/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.696",
3
+ "version": "1.7.697",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -0,0 +1,18 @@
1
+ export const Retry = {
2
+
3
+ async retry<T>(fx: () => Promise<T>, max = 3) {
4
+ let lastError;
5
+ for(let i=0; i<max;i++) {
6
+ try {
7
+ lastError = null;
8
+ return await fx();
9
+ } catch (error) {
10
+ lastError = error;
11
+ }
12
+ }
13
+ if (lastError) {
14
+ throw lastError;
15
+ }
16
+ }
17
+
18
+ };
@@ -77,8 +77,8 @@ export default class extends Page {
77
77
  tags: x.webSiteTags?.map((t) => t.tag.name) ?? [],
78
78
  name: x.folder.name,
79
79
  host,
80
- preview: `https://${cdn}/social-mail/site/templates/preview/${host}/desktop/c1-${currentVersionID}/desktop-preview-1.webp`,
81
- previewMobile: `https://${cdn}/social-mail/site/templates/preview/${host}/mobile/c1-${currentVersionID}/desktop-preview-1.webp`,
80
+ preview: `https://${cdn}/social-mail/site/templates/preview/${host}/desktop/c2-${currentVersionID}/desktop-preview-1.webp`,
81
+ previewMobile: `https://${cdn}/social-mail/site/templates/preview/${host}/mobile/c2-${currentVersionID}/desktop-preview-1.webp`,
82
82
  url: `https://${host}`
83
83
  };
84
84
  });
@@ -13,6 +13,7 @@ import { Route } from "@entity-access/server-pages/dist/core/Route.js";
13
13
  import CacheService from "../../../../../../../../../server/services/cache/CacheService.js";
14
14
  import TimeSpan from "@entity-access/entity-access/dist/types/TimeSpan.js";
15
15
  import TempFileService from "../../../../../../../../../server/storage/TempFileService.js";
16
+ import { Retry } from "../../../../../../../../../common/Retry.js";
16
17
 
17
18
  let port = globalEnv.puppeteer.port as any;
18
19
  if (/^\d+$/i.test(port)) {
@@ -94,7 +95,7 @@ export default class extends Page {
94
95
  const cf = await this.cacheService.get({
95
96
  key,
96
97
  ttl: TimeSpan.fromDays(30),
97
- factory: async (c) => {
98
+ factory: (c) => Retry.retry(async () => {
98
99
 
99
100
  using _ = await LockFile.lock("puppeteer-preview-generator");
100
101
 
@@ -110,6 +111,10 @@ export default class extends Page {
110
111
  dispatcher
111
112
  });
112
113
 
114
+ if (r.status >= 399) {
115
+ throw new Error(await r.text());
116
+ }
117
+
113
118
  const buffer = Buffer.from( await r.arrayBuffer());
114
119
 
115
120
  const lf = await this.tfs.createTempFile(".webp", "preview.webp", "image/webp");
@@ -117,7 +122,7 @@ export default class extends Page {
117
122
  await lf.writeAll(buffer);
118
123
 
119
124
  return lf;
120
- }
125
+ })
121
126
  });
122
127
 
123
128
  this.cacheControl = "public, max-age=2592000, immutable";