@social-mail/social-mail-web-server 1.8.479 → 1.8.481

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wwwroot/routes/index.tsx"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,mCAAmC,CAAC;AAGzD,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAG5D,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AAIzF,OAAO,mBAAmB,MAAM,mDAAmD,CAAC;AAEpF,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,MAAM,EAAE,QAAQ,CAAC;IAGjB,kBAAkB,EAAE,qBAAqB,CAAC;IAG1C,YAAY,EAAE,mBAAmB,CAAC;IAElC,GAAG,EAAE,GAAG,CAAC;IAEH,GAAG;CAgJZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wwwroot/routes/index.tsx"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,mCAAmC,CAAC;AAGzD,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAG5D,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AAIzF,OAAO,mBAAmB,MAAM,mDAAmD,CAAC;AAEpF,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,MAAM,EAAE,QAAQ,CAAC;IAGjB,kBAAkB,EAAE,qBAAqB,CAAC;IAG1C,YAAY,EAAE,mBAAmB,CAAC;IAElC,GAAG,EAAE,GAAG,CAAC;IAEH,GAAG;CA2IZ"}
@@ -74,10 +74,6 @@ export default class default_1 extends Page {
74
74
  await sleep(3000);
75
75
  return this.notFound();
76
76
  }
77
- if (this.request.URL.searchParams.has("for-email")) {
78
- const siteID = webSite.folderID;
79
- appFile = await this.htmlForEmail.prepare({ appFile, siteID, path: this.childPath, url: this.request.URL.toString() });
80
- }
81
77
  return new TempFileResult(appFile, {
82
78
  contentDisposition: forceDownload
83
79
  ? "attachment"
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wwwroot/routes/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wwwroot/routes/index.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.8.479",
3
+ "version": "1.8.481",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -1,11 +1,8 @@
1
- /* eslint-disable eqeqeq */
2
- /* eslint-disable guard-for-in */
3
- /* eslint-disable @typescript-eslint/prefer-for-of */
4
1
  import Inject, { RegisterScoped } from "@entity-access/entity-access/dist/di/di.js";
5
- import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
6
2
  import SiteDiskContentCache from "../files/SiteDiskContentCache.js";
7
- import { join } from "path";
8
3
  import { JSDOM } from 'jsdom';
4
+ import { fetch, Agent } from "undici";
5
+ import { lookup } from "dns";
9
6
 
10
7
  @RegisterScoped
11
8
  export default class HtmlForEmailService {
@@ -13,21 +10,6 @@ export default class HtmlForEmailService {
13
10
  @Inject
14
11
  diskCache: SiteDiskContentCache;
15
12
 
16
- async prepare({ appFile, siteID, path, url }: { appFile: LocalFile, url :string, siteID, path: string[] }) {
17
- return this.diskCache.htmlCache.getOrCreateAsync(join("for-email-10", siteID, ... path), async (dest) => {
18
-
19
- let html = await appFile.readAsText();
20
- const browser = new JSDOM(html, { url});
21
- await new Promise((resolve, reject) => {
22
- browser.window.addEventListener("load", () => {
23
- void inlineCSS(browser.window, browser.window.document).then(resolve);
24
- });
25
- });
26
- html = browser.window.document.documentElement.outerHTML;
27
- await dest.writeAllText(html);
28
- });
29
- }
30
-
31
13
  async prepareHtml({ html, siteID, path, url }: { html: string, url :string, siteID, path: string[] }) {
32
14
 
33
15
  const browser = new JSDOM(html, { url});
@@ -41,104 +23,54 @@ export default class HtmlForEmailService {
41
23
  }
42
24
  }
43
25
 
44
- async function inlineCSS(window, document){
45
-
46
- window.CSS ??= {};
47
-
48
- window.CSS.escape = function(value) {
49
- if (arguments.length == 0) {
50
- throw new TypeError('`CSS.escape` requires an argument.');
51
- }
52
- const text = String(value);
53
- const length = text.length;
54
- let index = -1;
55
- let codeUnit;
56
- let result = '';
57
- const firstCodeUnit = text.charCodeAt(0);
26
+ async function inlineCSS(window, document: Document){
58
27
 
59
- if (
60
- // If the character is the first character and is a `-` (U+002D), and
61
- // there is no second character, […]
62
- length === 1 &&
63
- firstCodeUnit === 0x002D
64
- ) {
65
- return '\\' + text;
66
- }
28
+ const dispatcher = new Agent({
29
+ connect: {
30
+ lookup: (hostName, { all }, callback) => {
67
31
 
68
- while (++index < length) {
69
- codeUnit = text.charCodeAt(index);
70
- // Note: there’s no need to special-case astral symbols, surrogate
71
- // pairs, or lone surrogates.
72
-
73
- // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
74
- // (U+FFFD).
75
- if (codeUnit == 0x0000) {
76
- result += '\uFFFD';
77
- continue;
78
- }
79
-
80
- if (
81
- // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
82
- // U+007F, […]
83
- (codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
84
- // If the character is the first character and is in the range [0-9]
85
- // (U+0030 to U+0039), […]
86
- (index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
87
- // If the character is the second character and is in the range [0-9]
88
- // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
89
- (
90
- index == 1 &&
91
- codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
92
- firstCodeUnit == 0x002D
93
- )
94
- ) {
95
- // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
96
- result += '\\' + codeUnit.toString(16) + ' ';
97
- continue;
98
- }
99
-
100
- // If the character is not handled by one of the above rules and is
101
- // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
102
- // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
103
- // U+005A), or [a-z] (U+0061 to U+007A), […]
104
- if (
105
- codeUnit >= 0x0080 ||
106
- codeUnit == 0x002D ||
107
- codeUnit == 0x005F ||
108
- codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
109
- codeUnit >= 0x0041 && codeUnit <= 0x005A ||
110
- codeUnit >= 0x0061 && codeUnit <= 0x007A
111
- ) {
112
- // the character itself
113
- result += text.charAt(index);
114
- continue;
115
- }
116
-
117
- // Otherwise, the escaped character.
118
- // https://drafts.csswg.org/cssom/#escape-a-character
119
- result += '\\' + text.charAt(index);
120
- }
121
- return result;
122
- };
32
+ const cb = (error, result) => {
33
+ if (all) {
34
+ callback(error, [{
35
+ address: result,
36
+ family: 4
37
+ }]);
38
+ }
39
+ return callback(error, result, 4);
40
+ };
41
+
42
+ if (hostName.endsWith(".localhost")) {
43
+ // eslint-disable-next-line no-console
44
+ console.log(`Resolving ${hostName} to 192.168.0.123`);
45
+ cb(null, "192.168.0.123");
46
+ return;
47
+ }
48
+ lookup(hostName, 4, (error, result) => {
49
+ // eslint-disable-next-line no-console
50
+ console.log(`Resolving ${hostName} to ${result}`);
51
+ cb(error, result);
52
+ });
53
+ },
54
+ family: 4
55
+ }
56
+ });
123
57
 
124
58
 
125
59
  let id = Date.now();
126
60
 
127
61
  async function flattenStyleSheets() {
128
- const styleSheets = document.querySelectorAll(`link[rel="stylesheet"]`);
62
+ const includes = document.querySelectorAll(`link[rel="stylesheet"]`);
129
63
  const tasks = [];
130
64
  const remove = [];
131
- for(let i=0;i<styleSheets.length;i++) {
132
- const styleSheet = styleSheets[i];
133
- const href = new URL(styleSheet.getAttribute("href"), window.location.href).toString();
134
- tasks.push(fetch(href)
65
+ for(const styleSheet of includes.values()) {
66
+ const href = new URL(styleSheet.getAttribute("href"), window.location.href);
67
+ tasks.push(fetch(href.toString(), { dispatcher })
135
68
  .then((x) => x.text())
136
69
  .then((text) => ({ styleSheet, text }))
137
70
  );
138
71
  remove.push(styleSheet);
139
72
  }
140
73
 
141
-
142
74
  const results = await Promise.all(tasks);
143
75
  for(const { styleSheet, text} of results) {
144
76
  const style = document.createElement("style");
@@ -150,10 +82,8 @@ async function inlineCSS(window, document){
150
82
 
151
83
  const adoptedStyle = document.createElement("style");
152
84
  const map = new Set();
153
- const all = document.querySelectorAll("*");
154
85
  const styles = [];
155
- for(let i=0;i<all.length;i++) {
156
- const e = all[i] as HTMLElement;
86
+ for(const e of document.querySelectorAll(`body,body *`).values()) {
157
87
  for (const name of e.getAttributeNames()) {
158
88
  if (name.startsWith("styler-")) {
159
89
  const v = e.getAttribute(name);
@@ -172,57 +102,16 @@ async function inlineCSS(window, document){
172
102
  return () => remove.forEach((x)=>x.remove());
173
103
  }
174
104
 
175
- function css(el) {
176
- const cs = window.getComputedStyle(el);
177
- const root = window.getComputedStyle(window.document.documentElement);
178
-
179
- const sheets = document.styleSheets;
180
- const ret = [];
181
- el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector
182
- || el.msMatchesSelector || el.oMatchesSelector;
183
- for (const i in sheets) {
184
- const sheet = sheets[i];
185
- try {
186
- const rules = sheet.cssRules;
187
- for (const r in rules) {
188
- const rule = rules[r] as any;
189
- if (el.matches(rule.selectorText)) {
190
- const { style } = rule;
191
- const properties = [];
192
- for(let n=0;n<style.length;n++) {
193
- const key = style[n];
194
- if (key === "box-sizing") {
195
- continue;
196
- }
197
- let value = style[key];
198
- if (value) {
199
- // we need to evaluate every var(--)
200
- value = value.replace(/(var\(([^\)]+)\))/gm, (m, p1, p2) => {
201
- const varName = p2.split(",")[0];
202
- const cssValue = cs.getPropertyValue(varName)
203
- || root.getPropertyValue(varName);
204
- return p1 ? cssValue : m;
205
- });
206
- properties.push({ key, value });
207
- }
208
- }
209
- ret.push(...properties);
210
- }
211
- }
212
- } catch {
213
- // do nothing..
214
- }
215
- }
216
- return ret;
217
- }
218
-
219
105
  async function flattenStyler(rules) {
220
106
 
221
- const all = document.querySelectorAll(":not(head) > *:not(style,head)");
222
- for(let i=0;i<all.length;i++) {
223
- const e = all[i];
107
+ const stylerPrefix = "styler-";
108
+
109
+ const root = window.getComputedStyle(window.document.documentElement);
110
+ const all = document.querySelectorAll("body,body *");
111
+ for(const e of all.values()) {
224
112
 
225
- const remove = [];
113
+ const cs = window.getComputedStyle(e);
114
+ const remove: string[] = [];
226
115
 
227
116
  for(const name of e.getAttributeNames()) {
228
117
  if (!name.startsWith("styler-")) {
@@ -231,19 +120,30 @@ async function inlineCSS(window, document){
231
120
  remove.push(name);
232
121
  }
233
122
 
234
- const styles = css(e);
235
- if (styles.length) {
236
- const className = "c-" + (id++).toString(36);
237
- e.classList.add(className);
238
-
239
- rules.push(`.${className} {
240
- ${styles.map((s) => s.key + ":" + s.value).join(";\n")};
241
- }`);
123
+ if (!remove.length) {
124
+ continue;
242
125
  }
243
126
 
127
+ const className = "c-" + (id++).toString(36);
128
+ e.classList.add(className);
129
+ const styles = [];
244
130
  for(const n of remove) {
245
- e.removeAttribute(n);
131
+ let value = e.getAttribute(n);
132
+ if (value) {
133
+ // we need to evaluate every var(--)
134
+ value = value.replace(/(var\(([^\)]+)\))/gm, (m, p1, p2) => {
135
+ const varName = p2.split(",")[0];
136
+ const cssValue = cs.getPropertyValue(varName)
137
+ || root.getPropertyValue(varName);
138
+ return p1 ? cssValue : m;
139
+ });
140
+ }
141
+ const cssName = n.substring(stylerPrefix.length);
142
+ styles.push(`${cssName}: ${value}`);
246
143
  }
144
+ rules.push(`.${className} {
145
+ ${styles.map((s) => s.key + ":" + s.value).join(";\n")};
146
+ }`);
247
147
  }
248
148
  }
249
149
 
@@ -254,10 +154,14 @@ async function inlineCSS(window, document){
254
154
  await flattenStyler(newRules);
255
155
 
256
156
  const newStyle = document.createElement("style");
257
- document.head.appendChild(newStyle);
157
+ document.body.insertAdjacentElement("afterbegin", newStyle);
258
158
  newStyle.textContent = `* { box-sizing: border-box; }\n${newRules.join("\n")}`;
259
159
 
260
-
261
160
  defer();
262
161
 
162
+ // remove all scripts
163
+ for(const s of Array.from(document.querySelectorAll("script").values())) {
164
+ s.remove();
165
+ }
166
+
263
167
  }
@@ -33,6 +33,7 @@ export default class PuppeteerService {
33
33
  test = "true" as ("true" | "window.pageReady"),
34
34
  testDelay = 1000,
35
35
  timeout = 15000,
36
+ pageEvalScript = "() => void 0",
36
37
  page = void 0 as Page
37
38
  }) {
38
39
 
@@ -58,6 +59,7 @@ export default class PuppeteerService {
58
59
  test,
59
60
  testDelay: testDelay as any,
60
61
  timeout: timeout as any,
62
+ pageEvalScript,
61
63
  output
62
64
  });
63
65
 
@@ -90,11 +90,6 @@ export default class extends Page {
90
90
  return this.notFound();
91
91
  }
92
92
 
93
- if (this.request.URL.searchParams.has("for-email")) {
94
- const siteID = webSite.folderID;
95
- appFile = await this.htmlForEmail.prepare({ appFile, siteID, path: this.childPath , url: this.request.URL.toString()});
96
- }
97
-
98
93
  return new TempFileResult(
99
94
  appFile,
100
95
  {