@social-mail/social-mail-web-server 1.7.474 → 1.7.476

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.
@@ -3,12 +3,12 @@ export default async function seedUI(config) {
3
3
  await config.saveVersion(UIPackageConfig, {
4
4
  package: "@social-mail/social-mail-client",
5
5
  view: "dist/web/AppIndex",
6
- version: "1.8.38"
6
+ version: "1.8.39"
7
7
  });
8
8
  await config.saveVersion(WebComponentsPackageConfig, {
9
9
  package: "@social-mail/web-components",
10
10
  view: "dist/index.js",
11
- version: "1.0.240"
11
+ version: "1.0.242"
12
12
  });
13
13
  await config.saveVersion(FAFreePackageConfig, {
14
14
  package: "@fortawesome/fontawesome-free",
@@ -1,9 +1,20 @@
1
+ import { ServiceObject } from "@entity-access/entity-access/dist/di/di.js";
1
2
  import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
2
3
  import WebSite from "../../model/entities/WebSite.js";
3
- export default class PreviewDraftService {
4
+ import { ICacheContainer, ObjectCache } from "../../../common/cacheFor.js";
5
+ import DBConfig from "../DBConfig.js";
6
+ export default class PreviewDraftService extends ServiceObject implements ICacheContainer<PreviewDraftService> {
7
+ cache: ObjectCache<PreviewDraftService>;
8
+ dbConfig: DBConfig;
4
9
  private websiteService;
5
10
  private tfs;
11
+ private siteCache;
12
+ postInit(): void;
13
+ getPackages(): Promise<{
14
+ latest: string;
15
+ version: string;
16
+ }[]>;
6
17
  prepareSecureHtml(siteID: any, site: WebSite, localFile: LocalFile): Promise<string>;
7
- prepareHtml(site: WebSite, localFile: LocalFile): Promise<string>;
18
+ rewriteLink(node: Element, attributeName: string): Promise<void>;
8
19
  }
9
20
  //# sourceMappingURL=PreviewDraftService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewDraftService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/html/PreviewDraftService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAI/E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAKtD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAGpC,OAAO,CAAC,cAAc,CAAwB;IAG9C,OAAO,CAAC,GAAG,CAAkB;IAEvB,iBAAiB,CAAC,MAAM,KAAA,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAqD7D,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;CAoDxD"}
1
+ {"version":3,"file":"PreviewDraftService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/html/PreviewDraftService.ts"],"names":[],"mappings":"AAAA,OAAe,EAAkB,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAI/E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAGtD,OAAO,EAAY,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAErF,OAAO,QAA8E,MAAM,gBAAgB,CAAC;AAG5G,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAc,YAAW,eAAe,CAAC,mBAAmB,CAAC;IAE1G,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAGxC,QAAQ,EAAE,QAAQ,CAAC;IAGnB,OAAO,CAAC,cAAc,CAAwB;IAG9C,OAAO,CAAC,GAAG,CAAkB;IAG7B,OAAO,CAAC,SAAS,CAAuB;IAExC,QAAQ;IAKF,WAAW;;;;IAeX,iBAAiB,CAAC,MAAM,KAAA,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IA2EzD,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM;CAiE7D"}
@@ -7,13 +7,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import Inject, { RegisterScoped } from "@entity-access/entity-access/dist/di/di.js";
10
+ import Inject, { RegisterScoped, ServiceObject } from "@entity-access/entity-access/dist/di/di.js";
11
11
  import { JSDOM } from 'jsdom';
12
12
  import { join } from "path";
13
13
  import TempFileService from "../../storage/TempFileService.js";
14
14
  import { descendentElementIterator } from "../../../common/html/Html.js";
15
15
  import WebSiteContentService from "../files/WebSiteContentService.js";
16
- let PreviewDraftService = class PreviewDraftService {
16
+ import { cacheFor } from "../../../common/cacheFor.js";
17
+ import SiteDiskContentCache from "../files/SiteDiskContentCache.js";
18
+ import DBConfig, { UIPackageConfig, WebComponentsPackageConfig, FAFreePackageConfig } from "../DBConfig.js";
19
+ let PreviewDraftService = class PreviewDraftService extends ServiceObject {
20
+ postInit() {
21
+ this.cache = this.siteCache.cache;
22
+ }
23
+ async getPackages() {
24
+ const config = this.dbConfig;
25
+ const packages = [
26
+ await config.get(UIPackageConfig),
27
+ await config.get(WebComponentsPackageConfig),
28
+ await config.get(FAFreePackageConfig)
29
+ ];
30
+ return packages.map((x) => ({
31
+ latest: x.value.package + "@latest",
32
+ version: x.value.package + "@" + x.value.version
33
+ }));
34
+ }
17
35
  async prepareSecureHtml(siteID, site, localFile) {
18
36
  const updateAttribute = (root, name, element) => {
19
37
  const value = element.getAttribute(name);
@@ -38,6 +56,7 @@ let PreviewDraftService = class PreviewDraftService {
38
56
  const b = document.createElement("base");
39
57
  b.href = `/social-mail/site/draft/${siteID}/`;
40
58
  document.head.insertAdjacentElement("afterbegin", b);
59
+ // we need to process injects first
41
60
  for (const e of Array.from(document.body.querySelectorAll("inject"))) {
42
61
  let src = e.getAttribute("src");
43
62
  if (src.startsWith("/")) {
@@ -54,61 +73,49 @@ let PreviewDraftService = class PreviewDraftService {
54
73
  }
55
74
  e.remove();
56
75
  }
76
+ for (const node of descendentElementIterator(document.documentElement)) {
77
+ switch (node.tagName) {
78
+ case "SCRIPT":
79
+ await this.rewriteLink(node, "src");
80
+ continue;
81
+ case "LINK":
82
+ await this.rewriteLink(node, "href");
83
+ continue;
84
+ }
85
+ }
57
86
  body = `<!DOCTYPE HTML>${document.documentElement.outerHTML}`;
58
87
  }
59
88
  else {
89
+ for (const node of descendentElementIterator(document.documentElement)) {
90
+ switch (node.tagName) {
91
+ case "SCRIPT":
92
+ await this.rewriteLink(node, "src");
93
+ continue;
94
+ case "LINK":
95
+ await this.rewriteLink(node, "href");
96
+ continue;
97
+ }
98
+ }
60
99
  body = body.split(/\<\/head\>/i).join(`<base href="/api/site/draft/${siteID}/"/></head>`);
61
100
  }
62
101
  return body;
63
102
  }
64
- async prepareHtml(site, localFile) {
65
- const updateAttribute = (root, name, element) => {
66
- const value = element.getAttribute(name);
67
- if (!value) {
68
- return;
69
- }
70
- if (value.startsWith(".")) {
71
- const v = join(root, value);
72
- element.setAttribute(name, v.toString());
73
- }
74
- };
75
- const updateAddress = (root, element) => {
76
- for (const e of descendentElementIterator(element)) {
77
- updateAttribute(root, "src", e);
78
- }
79
- };
80
- let body = await localFile.readAsText();
81
- const siteID = site.folderID;
82
- if (/\<inject\s/i.test(body)) {
83
- // perform inject...
84
- const { window: { document } } = new JSDOM(body);
85
- const parser = new document.defaultView.DOMParser();
86
- const b = document.createElement("base");
87
- b.href = `/api/site/draft/${siteID}/`;
88
- document.head.insertAdjacentElement("afterbegin", b);
89
- for (const e of Array.from(document.body.querySelectorAll("inject"))) {
90
- let src = e.getAttribute("src");
91
- if (src.startsWith("/")) {
92
- src = src.substring(1);
93
- }
94
- const includeFile = await this.websiteService.getFile(site.folderID, ...src.split("/"));
95
- // const includeFile = await this.tfs.downloadAppFile(include);
96
- const parsed = parser.parseFromString(await includeFile.readAsText(), "text/html");
97
- for (const pe of Array.from(parsed.body.children)) {
98
- pe.remove();
99
- updateAddress(b.href + src, pe);
100
- e.parentElement.insertBefore(pe, e);
101
- }
102
- e.remove();
103
- }
104
- body = `<!DOCTYPE HTML>${document.documentElement.outerHTML}`;
103
+ async rewriteLink(node, attributeName) {
104
+ let value = node.getAttribute(attributeName);
105
+ if (!value) {
106
+ return;
105
107
  }
106
- else {
107
- body = body.split(/\<\/head\>/i).join(`<base href="/api/site/draft/${siteID}/"/></head>`);
108
+ const packageReplacements = await this.getPackages();
109
+ for (const { latest, version } of packageReplacements) {
110
+ value = value.replace(latest, version);
108
111
  }
109
- return body;
112
+ node.setAttribute(attributeName, value);
110
113
  }
111
114
  };
115
+ __decorate([
116
+ Inject,
117
+ __metadata("design:type", DBConfig)
118
+ ], PreviewDraftService.prototype, "dbConfig", void 0);
112
119
  __decorate([
113
120
  Inject,
114
121
  __metadata("design:type", WebSiteContentService)
@@ -117,6 +124,16 @@ __decorate([
117
124
  Inject,
118
125
  __metadata("design:type", TempFileService)
119
126
  ], PreviewDraftService.prototype, "tfs", void 0);
127
+ __decorate([
128
+ Inject,
129
+ __metadata("design:type", SiteDiskContentCache)
130
+ ], PreviewDraftService.prototype, "siteCache", void 0);
131
+ __decorate([
132
+ cacheFor(),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", []),
135
+ __metadata("design:returntype", Promise)
136
+ ], PreviewDraftService.prototype, "getPackages", null);
120
137
  PreviewDraftService = __decorate([
121
138
  RegisterScoped
122
139
  ], PreviewDraftService);
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewDraftService.js","sourceRoot":"","sources":["../../../../src/server/services/html/PreviewDraftService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAGvD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAQpC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAa,EAAE,SAAoB;QAG/D,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;YACrD,KAAI,MAAM,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACxC,IAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,oBAAoB;YACpB,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,GAAG,2BAA2B,MAAM,GAAG,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACrD,KAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAClE,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzF,+DAA+D;gBAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;gBACnF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAG,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,EAAE,CAAC,MAAM,EAAE,CAAC;oBACZ,aAAa,CAAE,MAAM,EAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,CAAC,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YACD,IAAI,GAAG,kBAAkB,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,+BAA+B,MAAM,aAAa,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,IAAa,EAAE,SAAoB;QAGjD,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;YACrD,KAAI,MAAM,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,oBAAoB;YACpB,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,GAAG,mBAAmB,MAAM,GAAG,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACrD,KAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAClE,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzF,+DAA+D;gBAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;gBACnF,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,EAAE,CAAC,MAAM,EAAE,CAAC;oBACZ,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;oBAChC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,CAAC,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YACD,IAAI,GAAG,kBAAkB,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,+BAA+B,MAAM,aAAa,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ,CAAA;AA9GW;IADP,MAAM;8BACiB,qBAAqB;2DAAC;AAGtC;IADP,MAAM;8BACM,eAAe;gDAAC;AANZ,mBAAmB;IADvC,cAAc;GACM,mBAAmB,CAiHvC;eAjHoB,mBAAmB"}
1
+ {"version":3,"file":"PreviewDraftService.js","sourceRoot":"","sources":["../../../../src/server/services/html/PreviewDraftService.ts"],"names":[],"mappings":"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"}