@social-mail/social-mail-web-server 1.7.477 → 1.7.478

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-web-server",
3
- "version": "1.7.477",
3
+ "version": "1.7.478",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -49,7 +49,6 @@ export default class PreviewDraftService extends ServiceObject implements ICache
49
49
 
50
50
  async prepareSecureHtml(siteID, site: WebSite, localFile: LocalFile) {
51
51
 
52
-
53
52
  const updateAttribute = (root: string, name: string, element: Element) => {
54
53
  const value = element.getAttribute(name);
55
54
  if (!value) {
@@ -68,57 +67,43 @@ export default class PreviewDraftService extends ServiceObject implements ICache
68
67
  };
69
68
 
70
69
  let body = await localFile.readAsText();
71
- if(/\<inject\s/i.test(body)) {
72
- // perform inject...
73
- const { window: { document } } = new JSDOM(body);
74
- const parser = new document.defaultView.DOMParser();
75
- const b = document.createElement("base");
76
- b.href = `/social-mail/site/draft/${siteID}/`;
77
- document.head.insertAdjacentElement("afterbegin", b);
78
- // we need to process injects first
79
- for(const e of Array.from(document.body.querySelectorAll("inject"))) {
80
- let src = e.getAttribute("src");
81
- if (src.startsWith("/")) {
82
- src = src.substring(1);
83
- }
84
- const includeFile = await this.websiteService.getFile(site.folderID, ... src.split("/"));
85
- // const includeFile = await this.tfs.downloadAppFile(include);
86
- const parsed = parser.parseFromString(await includeFile.readAsText(), "text/html");
87
- const folder = join(b.href , src, "..");
88
- for(const pe of Array.from(parsed.body.children)) {
89
- pe.remove();
90
- updateAddress( folder , pe);
91
- e.parentElement.insertBefore(pe, e);
92
- }
93
- e.remove();
70
+ // perform inject...
71
+ const { window: { document } } = new JSDOM(body);
72
+ const parser = new document.defaultView.DOMParser();
73
+ const b = document.createElement("base");
74
+ b.href = `/social-mail/site/draft/${siteID}/`;
75
+ document.head.insertAdjacentElement("afterbegin", b);
76
+ // we need to process injects first
77
+ for(const e of Array.from(document.body.querySelectorAll("inject"))) {
78
+ let src = e.getAttribute("src");
79
+ if (src.startsWith("/")) {
80
+ src = src.substring(1);
94
81
  }
95
-
96
- for(const node of descendentElementIterator(document.documentElement)) {
97
- switch(node.tagName) {
98
- case "SCRIPT":
99
- await this.rewriteLink(node, "src");
100
- continue;
101
- case "LINK":
102
- await this.rewriteLink(node, "href");
103
- continue;
104
- }
82
+ const includeFile = await this.websiteService.getFile(site.folderID, ... src.split("/"));
83
+ // const includeFile = await this.tfs.downloadAppFile(include);
84
+ const parsed = parser.parseFromString(await includeFile.readAsText(), "text/html");
85
+ const folder = join(b.href , src, "..");
86
+ for(const pe of Array.from(parsed.body.children)) {
87
+ pe.remove();
88
+ updateAddress( folder , pe);
89
+ e.parentElement.insertBefore(pe, e);
105
90
  }
91
+ e.remove();
92
+ }
106
93
 
107
- body = `<!DOCTYPE HTML>${document.documentElement.outerHTML}`;
108
- } else {
109
- for(const node of descendentElementIterator(document.documentElement)) {
110
- switch(node.tagName) {
111
- case "SCRIPT":
112
- await this.rewriteLink(node, "src");
113
- continue;
114
- case "LINK":
115
- await this.rewriteLink(node, "href");
116
- continue;
117
- }
94
+ for(const node of descendentElementIterator(document.documentElement)) {
95
+ switch(node.tagName) {
96
+ case "SCRIPT":
97
+ await this.rewriteLink(node, "src");
98
+ continue;
99
+ case "LINK":
100
+ await this.rewriteLink(node, "href");
101
+ continue;
118
102
  }
119
- body = body.split(/\<\/head\>/i).join(`<base href="/api/site/draft/${siteID}/"/></head>`);
120
103
  }
121
104
 
105
+ body = `<!DOCTYPE HTML>${document.documentElement.outerHTML}`;
106
+
122
107
  return body;
123
108
  }
124
109