@social-mail/social-mail-web-server 1.5.415 → 1.5.417

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.
Files changed (236) hide show
  1. package/dist/common/Mailto.d.ts +17 -0
  2. package/dist/common/Mailto.d.ts.map +1 -0
  3. package/dist/common/Mailto.js +27 -0
  4. package/dist/common/Mailto.js.map +1 -0
  5. package/dist/common/cacheFor.d.ts +10 -1
  6. package/dist/common/cacheFor.d.ts.map +1 -1
  7. package/dist/common/cacheFor.js +18 -2
  8. package/dist/common/cacheFor.js.map +1 -1
  9. package/dist/server/model/SocialMailContext.d.ts +10 -3
  10. package/dist/server/model/SocialMailContext.d.ts.map +1 -1
  11. package/dist/server/model/SocialMailContext.js +10 -3
  12. package/dist/server/model/SocialMailContext.js.map +1 -1
  13. package/dist/server/model/SocialMailContextEvents.d.ts.map +1 -1
  14. package/dist/server/model/SocialMailContextEvents.js +15 -5
  15. package/dist/server/model/SocialMailContextEvents.js.map +1 -1
  16. package/dist/server/model/entities/AppFile.d.ts +2 -2
  17. package/dist/server/model/entities/AppFile.d.ts.map +1 -1
  18. package/dist/server/model/entities/Email.d.ts +2 -0
  19. package/dist/server/model/entities/Email.d.ts.map +1 -1
  20. package/dist/server/model/entities/Email.js.map +1 -1
  21. package/dist/server/model/entities/EmailAddress.d.ts +2 -0
  22. package/dist/server/model/entities/EmailAddress.d.ts.map +1 -1
  23. package/dist/server/model/entities/EmailAddress.js.map +1 -1
  24. package/dist/server/model/entities/EmailRecipient.d.ts +1 -1
  25. package/dist/server/model/entities/EmailRecipient.d.ts.map +1 -1
  26. package/dist/server/model/entities/EmailRecipient.js +2 -2
  27. package/dist/server/model/entities/EmailRecipient.js.map +1 -1
  28. package/dist/server/model/entities/HostedDomain.d.ts +2 -0
  29. package/dist/server/model/entities/HostedDomain.d.ts.map +1 -1
  30. package/dist/server/model/entities/HostedDomain.js.map +1 -1
  31. package/dist/server/model/entities/Mailbox.d.ts +2 -1
  32. package/dist/server/model/entities/Mailbox.d.ts.map +1 -1
  33. package/dist/server/model/entities/Mailbox.js +4 -0
  34. package/dist/server/model/entities/Mailbox.js.map +1 -1
  35. package/dist/server/model/entities/ThreadParticipant.d.ts +22 -0
  36. package/dist/server/model/entities/ThreadParticipant.d.ts.map +1 -0
  37. package/dist/server/model/entities/ThreadParticipant.js +53 -0
  38. package/dist/server/model/entities/ThreadParticipant.js.map +1 -0
  39. package/dist/server/model/entities/User.d.ts +2 -2
  40. package/dist/server/model/entities/User.d.ts.map +1 -1
  41. package/dist/server/model/entities/WebSiteChannel.d.ts +9 -0
  42. package/dist/server/model/entities/WebSiteChannel.d.ts.map +1 -0
  43. package/dist/server/model/entities/WebSiteChannel.js +37 -0
  44. package/dist/server/model/entities/WebSiteChannel.js.map +1 -0
  45. package/dist/server/model/entities/WebSiteChannelDomain.d.ts +14 -0
  46. package/dist/server/model/entities/WebSiteChannelDomain.d.ts.map +1 -0
  47. package/dist/server/model/entities/WebSiteChannelDomain.js +42 -0
  48. package/dist/server/model/entities/WebSiteChannelDomain.js.map +1 -0
  49. package/dist/server/model/entities/WebSiteFolder.d.ts +7 -29
  50. package/dist/server/model/entities/WebSiteFolder.d.ts.map +1 -1
  51. package/dist/server/model/entities/WebSiteFolder.js +1 -105
  52. package/dist/server/model/entities/WebSiteFolder.js.map +1 -1
  53. package/dist/server/model/entities/WebSiteHost.d.ts +7 -0
  54. package/dist/server/model/entities/WebSiteHost.d.ts.map +1 -0
  55. package/dist/server/model/entities/WebSiteHost.js +35 -0
  56. package/dist/server/model/entities/WebSiteHost.js.map +1 -0
  57. package/dist/server/model/entities/WebSiteVersion.d.ts +18 -0
  58. package/dist/server/model/entities/WebSiteVersion.d.ts.map +1 -0
  59. package/dist/server/model/entities/WebSiteVersion.js +76 -0
  60. package/dist/server/model/entities/WebSiteVersion.js.map +1 -0
  61. package/dist/server/model/events/EmailEvents.d.ts.map +1 -1
  62. package/dist/server/model/events/EmailEvents.js +17 -7
  63. package/dist/server/model/events/EmailEvents.js.map +1 -1
  64. package/dist/server/model/events/MailboxEvents.d.ts.map +1 -1
  65. package/dist/server/model/events/MailboxEvents.js +2 -0
  66. package/dist/server/model/events/MailboxEvents.js.map +1 -1
  67. package/dist/server/model/events/ThreadParticipantEvents.d.ts +8 -0
  68. package/dist/server/model/events/ThreadParticipantEvents.d.ts.map +1 -0
  69. package/dist/server/model/events/ThreadParticipantEvents.js +19 -0
  70. package/dist/server/model/events/ThreadParticipantEvents.js.map +1 -0
  71. package/dist/server/model/events/UserEvents.d.ts.map +1 -1
  72. package/dist/server/model/events/UserEvents.js +2 -2
  73. package/dist/server/model/events/UserEvents.js.map +1 -1
  74. package/dist/server/model/events/WebSiteChannelDomainEvents.d.ts +8 -0
  75. package/dist/server/model/events/WebSiteChannelDomainEvents.d.ts.map +1 -0
  76. package/dist/server/model/events/WebSiteChannelDomainEvents.js +23 -0
  77. package/dist/server/model/events/WebSiteChannelDomainEvents.js.map +1 -0
  78. package/dist/server/model/events/WebSiteFolderEvents.d.ts +2 -8
  79. package/dist/server/model/events/WebSiteFolderEvents.d.ts.map +1 -1
  80. package/dist/server/model/events/WebSiteFolderEvents.js +1 -42
  81. package/dist/server/model/events/WebSiteFolderEvents.js.map +1 -1
  82. package/dist/server/model/events/WebSiteHostEvents.d.ts +12 -0
  83. package/dist/server/model/events/WebSiteHostEvents.d.ts.map +1 -0
  84. package/dist/server/model/events/WebSiteHostEvents.js +54 -0
  85. package/dist/server/model/events/WebSiteHostEvents.js.map +1 -0
  86. package/dist/server/model/events/WebSiteVersionEvents.d.ts +17 -0
  87. package/dist/server/model/events/WebSiteVersionEvents.d.ts.map +1 -0
  88. package/dist/server/model/events/{WebSiteFolderVersionEvents.js → WebSiteVersionEvents.js} +4 -4
  89. package/dist/server/model/events/WebSiteVersionEvents.js.map +1 -0
  90. package/dist/server/seed/ui/seed-ui.js +1 -1
  91. package/dist/server/services/EmailAddressService.d.ts +4 -2
  92. package/dist/server/services/EmailAddressService.d.ts.map +1 -1
  93. package/dist/server/services/EmailAddressService.js +4 -4
  94. package/dist/server/services/EmailAddressService.js.map +1 -1
  95. package/dist/server/services/StoreFileService.d.ts +3 -1
  96. package/dist/server/services/StoreFileService.d.ts.map +1 -1
  97. package/dist/server/services/StoreFileService.js.map +1 -1
  98. package/dist/server/services/TemplateExpander.js +1 -1
  99. package/dist/server/services/TemplateExpander.js.map +1 -1
  100. package/dist/server/services/accounts/sales/SalesInvoiceService.d.ts +3 -1
  101. package/dist/server/services/accounts/sales/SalesInvoiceService.d.ts.map +1 -1
  102. package/dist/server/services/accounts/sales/SalesInvoiceService.js.map +1 -1
  103. package/dist/server/services/channels/ChannelModerationService.d.ts +8 -0
  104. package/dist/server/services/channels/ChannelModerationService.d.ts.map +1 -0
  105. package/dist/server/{smtp/services/EmailThreadService.js → services/channels/ChannelModerationService.js} +19 -7
  106. package/dist/server/services/channels/ChannelModerationService.js.map +1 -0
  107. package/dist/server/services/dom/HtmlSanitizer.d.ts.map +1 -1
  108. package/dist/server/services/dom/HtmlSanitizer.js +7 -1
  109. package/dist/server/services/dom/HtmlSanitizer.js.map +1 -1
  110. package/dist/server/services/domain-keys/DomainKeyService.d.ts +3 -1
  111. package/dist/server/services/domain-keys/DomainKeyService.d.ts.map +1 -1
  112. package/dist/server/services/domain-keys/DomainKeyService.js.map +1 -1
  113. package/dist/server/services/files/FileAccessService.d.ts +3 -1
  114. package/dist/server/services/files/FileAccessService.d.ts.map +1 -1
  115. package/dist/server/services/files/FileAccessService.js +0 -2
  116. package/dist/server/services/files/FileAccessService.js.map +1 -1
  117. package/dist/server/services/files/SnapshotService.d.ts +3 -1
  118. package/dist/server/services/files/SnapshotService.d.ts.map +1 -1
  119. package/dist/server/services/files/SnapshotService.js.map +1 -1
  120. package/dist/server/services/files/WebSiteService.d.ts +6 -3
  121. package/dist/server/services/files/WebSiteService.d.ts.map +1 -1
  122. package/dist/server/services/files/WebSiteService.js.map +1 -1
  123. package/dist/server/services/store/StoreConfigService.d.ts +3 -1
  124. package/dist/server/services/store/StoreConfigService.d.ts.map +1 -1
  125. package/dist/server/services/store/StoreConfigService.js.map +1 -1
  126. package/dist/server/services/threads/EmailThreadService.d.ts +7 -0
  127. package/dist/server/services/threads/EmailThreadService.d.ts.map +1 -0
  128. package/dist/server/services/threads/EmailThreadService.js +45 -0
  129. package/dist/server/services/threads/EmailThreadService.js.map +1 -0
  130. package/dist/server/smtp/dns/DnsService.d.ts +3 -1
  131. package/dist/server/smtp/dns/DnsService.d.ts.map +1 -1
  132. package/dist/server/smtp/dns/DnsService.js.map +1 -1
  133. package/dist/server/smtp/services/AccessTokenService.d.ts +4 -2
  134. package/dist/server/smtp/services/AccessTokenService.d.ts.map +1 -1
  135. package/dist/server/smtp/services/AccessTokenService.js +23 -28
  136. package/dist/server/smtp/services/AccessTokenService.js.map +1 -1
  137. package/dist/server/smtp/services/CachedEmailService.d.ts.map +1 -1
  138. package/dist/server/smtp/services/CachedEmailService.js +6 -1
  139. package/dist/server/smtp/services/CachedEmailService.js.map +1 -1
  140. package/dist/server/smtp/services/EmailPostReceiveService.d.ts +8 -0
  141. package/dist/server/smtp/services/EmailPostReceiveService.d.ts.map +1 -1
  142. package/dist/server/smtp/services/EmailPostReceiveService.js +48 -6
  143. package/dist/server/smtp/services/EmailPostReceiveService.js.map +1 -1
  144. package/dist/server/smtp/services/EngagementService.d.ts.map +1 -1
  145. package/dist/server/smtp/services/EngagementService.js +5 -0
  146. package/dist/server/smtp/services/EngagementService.js.map +1 -1
  147. package/dist/server/smtp/services/WebSiteChannelService.d.ts +3 -3
  148. package/dist/server/smtp/services/WebSiteChannelService.d.ts.map +1 -1
  149. package/dist/server/smtp/services/WebSiteChannelService.js +27 -26
  150. package/dist/server/smtp/services/WebSiteChannelService.js.map +1 -1
  151. package/dist/server/storage/TempFileService.d.ts.map +1 -1
  152. package/dist/server/storage/TempFileService.js +7 -2
  153. package/dist/server/storage/TempFileService.js.map +1 -1
  154. package/dist/server/templates/channel/SubscriberRequested.d.ts.map +1 -1
  155. package/dist/server/templates/channel/SubscriberRequested.js +5 -1
  156. package/dist/server/templates/channel/SubscriberRequested.js.map +1 -1
  157. package/dist/server/workflows/pending/PendingPostReceiveWorkflow.d.ts.map +1 -1
  158. package/dist/server/workflows/pending/PendingPostReceiveWorkflow.js +3 -14
  159. package/dist/server/workflows/pending/PendingPostReceiveWorkflow.js.map +1 -1
  160. package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts +3 -1
  161. package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts.map +1 -1
  162. package/dist/server/workflows/smtp/DispatchEmailToMX.js +30 -4
  163. package/dist/server/workflows/smtp/DispatchEmailToMX.js.map +1 -1
  164. package/dist/server/workflows/smtp/MailDispatcherService.d.ts.map +1 -1
  165. package/dist/server/workflows/smtp/MailDispatcherService.js +5 -1
  166. package/dist/server/workflows/smtp/MailDispatcherService.js.map +1 -1
  167. package/dist/server/workflows/smtp/PrepareEmailToSend.d.ts +3 -1
  168. package/dist/server/workflows/smtp/PrepareEmailToSend.d.ts.map +1 -1
  169. package/dist/server/workflows/smtp/PrepareEmailToSend.js +15 -4
  170. package/dist/server/workflows/smtp/PrepareEmailToSend.js.map +1 -1
  171. package/dist/tsconfig.tsbuildinfo +1 -1
  172. package/dist/wwwroot/routes/@[channel]/[slug]/index.js +4 -4
  173. package/dist/wwwroot/routes/@[channel]/[slug]/index.js.map +1 -1
  174. package/dist/wwwroot/routes/api/site/snapshot/index.d.ts.map +1 -1
  175. package/dist/wwwroot/routes/api/site/snapshot/index.js.map +1 -1
  176. package/package.json +3 -3
  177. package/src/common/Mailto.ts +39 -0
  178. package/src/common/cacheFor.ts +26 -4
  179. package/src/server/model/SocialMailContext.ts +12 -3
  180. package/src/server/model/SocialMailContextEvents.ts +16 -5
  181. package/src/server/model/entities/AppFile.ts +2 -2
  182. package/src/server/model/entities/Email.ts +2 -0
  183. package/src/server/model/entities/EmailAddress.ts +2 -0
  184. package/src/server/model/entities/EmailRecipient.ts +2 -2
  185. package/src/server/model/entities/HostedDomain.ts +3 -0
  186. package/src/server/model/entities/Mailbox.ts +4 -1
  187. package/src/server/model/entities/ThreadParticipant.ts +45 -0
  188. package/src/server/model/entities/User.ts +2 -2
  189. package/src/server/model/entities/WebSiteChannel.ts +29 -0
  190. package/src/server/model/entities/WebSiteChannelDomain.ts +34 -0
  191. package/src/server/model/entities/WebSiteFolder.ts +8 -103
  192. package/src/server/model/entities/WebSiteHost.ts +25 -0
  193. package/src/server/model/entities/WebSiteVersion.ts +64 -0
  194. package/src/server/model/events/EmailEvents.ts +19 -7
  195. package/src/server/model/events/MailboxEvents.ts +2 -0
  196. package/src/server/model/events/ThreadParticipantEvents.ts +27 -0
  197. package/src/server/model/events/UserEvents.ts +4 -3
  198. package/src/server/model/events/WebSiteChannelDomainEvents.ts +27 -0
  199. package/src/server/model/events/WebSiteFolderEvents.ts +3 -43
  200. package/src/server/model/events/WebSiteHostEvents.ts +55 -0
  201. package/src/server/model/events/{WebSiteFolderVersionEvents.ts → WebSiteVersionEvents.ts} +109 -109
  202. package/src/server/seed/ui/seed-ui.ts +1 -1
  203. package/src/server/services/EmailAddressService.ts +8 -5
  204. package/src/server/services/StoreFileService.ts +6 -2
  205. package/src/server/services/TemplateExpander.ts +1 -1
  206. package/src/server/services/accounts/sales/SalesInvoiceService.ts +5 -2
  207. package/src/server/services/channels/ChannelModerationService.ts +27 -0
  208. package/src/server/services/dom/HtmlSanitizer.ts +7 -1
  209. package/src/server/services/domain-keys/DomainKeyService.ts +4 -2
  210. package/src/server/services/files/FileAccessService.ts +4 -5
  211. package/src/server/services/files/SnapshotService.ts +5 -2
  212. package/src/server/services/files/WebSiteService.ts +8 -4
  213. package/src/server/services/store/StoreConfigService.ts +5 -2
  214. package/src/server/services/tags/TagService.ts +1 -1
  215. package/src/server/services/threads/EmailThreadService.ts +39 -0
  216. package/src/server/smtp/dns/DnsService.ts +4 -3
  217. package/src/server/smtp/services/AccessTokenService.ts +20 -22
  218. package/src/server/smtp/services/CachedEmailService.ts +5 -1
  219. package/src/server/smtp/services/EmailPostReceiveService.ts +54 -9
  220. package/src/server/smtp/services/EngagementService.ts +6 -0
  221. package/src/server/smtp/services/WebSiteChannelService.ts +17 -17
  222. package/src/server/storage/TempFileService.ts +7 -2
  223. package/src/server/templates/channel/SubscriberRequested.tsx +5 -1
  224. package/src/server/workflows/pending/PendingPostReceiveWorkflow.ts +3 -16
  225. package/src/server/workflows/smtp/DispatchEmailToMX.ts +33 -3
  226. package/src/server/workflows/smtp/MailDispatcherService.ts +6 -1
  227. package/src/server/workflows/smtp/PrepareEmailToSend.ts +16 -3
  228. package/src/wwwroot/routes/@[channel]/[slug]/index.tsx +4 -4
  229. package/src/wwwroot/routes/api/site/snapshot/index.ts +1 -0
  230. package/dist/server/model/events/WebSiteFolderVersionEvents.d.ts +0 -17
  231. package/dist/server/model/events/WebSiteFolderVersionEvents.d.ts.map +0 -1
  232. package/dist/server/model/events/WebSiteFolderVersionEvents.js.map +0 -1
  233. package/dist/server/smtp/services/EmailThreadService.d.ts +0 -7
  234. package/dist/server/smtp/services/EmailThreadService.d.ts.map +0 -1
  235. package/dist/server/smtp/services/EmailThreadService.js.map +0 -1
  236. package/src/server/smtp/services/EmailThreadService.ts +0 -15
@@ -61,13 +61,13 @@ export default class default_1 extends Page {
61
61
  const { meta } = await this.channelPageService.getEmailMeta(host, this.request.URL.toString(), mb.mailboxID, mb.emailID);
62
62
  if (meta?.length) {
63
63
  body = body.replace(/\<head[^\>]*\>/, (s, v) => {
64
- return s + meta.map((x) => x.render()).join("\r\n");
64
+ return s + meta.map((x) => x.render()).join("\r\n") + "\r\n";
65
65
  });
66
66
  }
67
- body = body.replace(/\<head[^\>]*\>/, (s, v) => {
68
- return s + `<script>var socialMail = ${socialMail};</script>`;
69
- });
70
67
  }
68
+ body = body.replace(/\<head[^\>]*\>/, (s, v) => {
69
+ return s + `\r\n<script>var socialMail = ${socialMail};</script>\r\n`;
70
+ });
71
71
  // const body = await this.channelPageService.modifyPage({
72
72
  // host,
73
73
  // url: this.request.URL.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/@[channel]/[slug]/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/wwwroot/routes/@[channel]/[slug]/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/api/site/snapshot/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAU5D;;;;GAIG;AAEH,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,EAAE,CAAoB;IAG9B,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,WAAW,CAAqB;IAGxC,OAAO,CAAC,GAAG,CAAkB;IAEvB,GAAG;IAwDH,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;CA+ChD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/api/site/snapshot/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAW5D;;;;GAIG;AAEH,MAAM,CAAC,OAAO,MAAO,SAAQ,IAAI;IAG7B,OAAO,CAAC,EAAE,CAAoB;IAG9B,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,WAAW,CAAqB;IAGxC,OAAO,CAAC,GAAG,CAAkB;IAEvB,GAAG;IAwDH,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;CA+ChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/api/site/snapshot/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wwwroot/routes/api/site/snapshot/index.ts"],"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.5.415",
3
+ "version": "1.5.417",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -21,8 +21,8 @@
21
21
  "dependencies": {
22
22
  "@aws-sdk/client-s3": "^3.609.0",
23
23
  "@azure/storage-blob": "^12.25.0",
24
- "@entity-access/entity-access": "^1.0.378",
25
- "@entity-access/server-pages": "^1.1.332",
24
+ "@entity-access/entity-access": "^1.0.381",
25
+ "@entity-access/server-pages": "^1.1.336",
26
26
  "@ffmpeg/core-mt": "^0.12.6",
27
27
  "@ffmpeg/ffmpeg": "^0.12.10",
28
28
  "@ffmpeg/util": "^0.12.1",
@@ -0,0 +1,39 @@
1
+ export const Mailto = {
2
+
3
+ templateLink({emoji}) {
4
+ return `mailto:[{senderEmail}]?subject=${emoji}:[{uid}]:[{accessCode}]`;
5
+ },
6
+
7
+ create({
8
+ subject = "",
9
+ command = void 0 as {
10
+ emoji: string,
11
+ messageID: string,
12
+ uid?: string,
13
+ },
14
+ to = "",
15
+ body = "",
16
+ inReplyTo = ""
17
+ }) {
18
+ const usp = new URLSearchParams();
19
+ if (command) {
20
+ const { emoji, messageID } = command;
21
+ let { uid = "0" } = command;
22
+ if (uid) {
23
+ uid = uid + ":";
24
+ }
25
+ subject = `${emoji}:${uid}${messageID}:${subject}`;
26
+ }
27
+ if (subject) {
28
+ usp.append("subject", subject);
29
+ }
30
+ if (body) {
31
+ usp.append("body", body);
32
+ }
33
+ if (inReplyTo) {
34
+ usp.append("in-reply-to", inReplyTo);
35
+ }
36
+ return `mailto:${to}?${usp.toString()}`;
37
+ }
38
+
39
+ };
@@ -1,12 +1,34 @@
1
1
  /* eslint-disable no-console */
2
2
  import TimedCache from "@entity-access/entity-access/dist/common/cache/TimedCache.js";
3
3
 
4
- export function cacheFor() {
5
- return function(target, key) {
6
- const cacheSymbol = Symbol.for(`cache-for-${key}`);
4
+
5
+ export class ObjectCache<T> {
6
+
7
+ private cache: Map<any, TimedCache> = new Map();
8
+
9
+ for(name: keyof T) {
10
+ let tc = this.cache.get(name);
11
+ if (!tc) {
12
+ tc = new TimedCache();
13
+ this.cache.set(name, tc);
14
+ }
15
+ return tc;
16
+ }
17
+
18
+ clear(name: keyof T) {
19
+ this.cache.get(name)?.clear();
20
+ }
21
+ };
22
+
23
+ export interface ICacheContainer<T> {
24
+ cache: ObjectCache<T> | undefined;
25
+ }
26
+
27
+ export function cacheFor<T>() {
28
+ return function(target:ICacheContainer<T>, key) {
7
29
  const oldMethod = target[key] as (... a: any[]) => any;
8
30
  function value(... a: any[]) {
9
- const cache: TimedCache = this[cacheSymbol] ??= new TimedCache();
31
+ const cache = (this.cache ??= new ObjectCache()).get(key) as TimedCache;
10
32
  const cacheKey = a.join();
11
33
  const r = cache.getOrCreate(cacheKey, a, (k) => oldMethod.apply(this, a));
12
34
  r?.catch((error) => {
@@ -32,7 +32,10 @@ import SearchWord, { SearchWordIndex } from "./entities/SearchWord.js";
32
32
  import CachedItem from "./entities/CachedItem.js";
33
33
  import SubscriberEmail from "./entities/SubscriberActivity.js";
34
34
  import SubscriberActivity from "./entities/SubscriberActivity.js";
35
- import WebSiteFolder, { WebSiteChannel, WebSiteFolderHost, WebSiteFolderVersion } from "./entities/WebSiteFolder.js";
35
+ import WebSiteFolder from "./entities/WebSiteFolder.js";
36
+ import { WebSiteHost } from "./entities/WebSiteHost.js";
37
+ import { WebSiteVersion } from "./entities/WebSiteVersion.js";
38
+ import { WebSiteChannel } from "./entities/WebSiteChannel.js";
36
39
  import EmailEngagement from "./entities/EmailEngagement.js";
37
40
  import MailboxContactTag from "./entities/MailboxContactTag.js";
38
41
  import ChannelConfig from "./entities/ChannelConfig.js";
@@ -71,6 +74,8 @@ import StoreCoupon from "./entities/StoreCoupon.js";
71
74
  import StoreJournalCoupon from "./entities/StoreJournalCoupon.js";
72
75
  import WebHook from "./entities/WebHook.js";
73
76
  import WebHookEvent from "./entities/WebHookEvent.js";
77
+ import ThreadParticipant from "./entities/ThreadParticipant.js";
78
+ import { WebSiteChannelDomain } from "./entities/WebSiteChannelDomain.js";
74
79
 
75
80
  @RegisterScoped
76
81
  export default class SocialMailContext extends EntityContext {
@@ -228,9 +233,11 @@ export default class SocialMailContext extends EntityContext {
228
233
 
229
234
  public websiteFolders = this.model.register(WebSiteFolder);
230
235
 
231
- public websiteFolderHosts = this.model.register(WebSiteFolderHost);
236
+ public websiteFolderHosts = this.model.register(WebSiteHost);
232
237
 
233
- public websiteVersions = this.model.register(WebSiteFolderVersion);
238
+ public websiteVersions = this.model.register(WebSiteVersion);
239
+
240
+ public websiteChannelDomains = this.model.register(WebSiteChannelDomain);
234
241
 
235
242
  public websiteChannels = this.model.register(WebSiteChannel);
236
243
 
@@ -247,6 +254,8 @@ export default class SocialMailContext extends EntityContext {
247
254
 
248
255
  public emailAddressNames = this.model.register(EmailAddressName);
249
256
 
257
+ public threadParticipants = this.model.register(ThreadParticipant);
258
+
250
259
  public tags = this.model.register(Tag);
251
260
 
252
261
  }
@@ -57,9 +57,12 @@ import MailboxSyncTargetEvents from "./events/MailboxSyncTargetEvents.js";
57
57
  import MailboxEmail from "./entities/MailboxEmail.js";
58
58
  import MailboxEmailEvents from "./events/MailboxEmailEvents.js";
59
59
  import EmailLogEvents from "./events/EmailLogEvents.js";
60
- import WebSiteFolder, { WebSiteChannel, WebSiteFolderHost, WebSiteFolderVersion } from "./entities/WebSiteFolder.js";
61
- import WebSiteFolderEvents, { WebSiteChannelEvents, WebSiteFolderHostEvents } from "./events/WebSiteFolderEvents.js";
62
- import { WebSiteFolderVersionEvents } from "./events/WebSiteFolderVersionEvents.js";
60
+ import WebSiteFolder from "./entities/WebSiteFolder.js";
61
+ import { WebSiteHost } from "./entities/WebSiteHost.js";
62
+ import { WebSiteVersion } from "./entities/WebSiteVersion.js";
63
+ import { WebSiteChannel } from "./entities/WebSiteChannel.js";
64
+ import WebSiteFolderEvents, { WebSiteChannelEvents } from "./events/WebSiteFolderEvents.js";
65
+ import { WebSiteVersionEvents } from "./events/WebSiteVersionEvents.js";
63
66
  import MailboxContactTag from "./entities/MailboxContactTag.js";
64
67
  import MailboxContactTagEvents from "./events/MailboxContactTagEvents.js";
65
68
  import ChannelConfig from "./entities/ChannelConfig.js";
@@ -129,6 +132,11 @@ import WebHook from "./entities/WebHook.js";
129
132
  import WebHookEvents from "./events/WebHookEvents.js";
130
133
  import WebHookEvent from "./entities/WebHookEvent.js";
131
134
  import WebHookEventEvents from "./events/WebHookEventEvents.js";
135
+ import ThreadParticipant from "./entities/ThreadParticipant.js";
136
+ import ThreadParticipantEvents from "./events/ThreadParticipantEvents.js";
137
+ import { WebSiteChannelDomain } from "./entities/WebSiteChannelDomain.js";
138
+ import WebSiteChannelDomainEvents from "./events/WebSiteChannelDomainEvents.js";
139
+ import { WebSiteHostEvents } from "./events/WebSiteHostEvents.js";
132
140
 
133
141
 
134
142
  @RegisterSingleton
@@ -213,12 +221,15 @@ export default class SocialMailContextEvents extends ContextEvents {
213
221
  this.register(LoginSession, LoginSessionEvents);
214
222
  this.register(WebSiteFolder, WebSiteFolderEvents);
215
223
  this.register(WebSiteChannel, WebSiteChannelEvents);
216
- this.register(WebSiteFolderHost, WebSiteFolderHostEvents);
217
- this.register(WebSiteFolderVersion, WebSiteFolderVersionEvents);
224
+ this.register(WebSiteHost, WebSiteHostEvents);
225
+ this.register(WebSiteVersion, WebSiteVersionEvents);
226
+ this.register(WebSiteChannelDomain, WebSiteChannelDomainEvents);
218
227
 
219
228
  this.register(WebHook, WebHookEvents);
220
229
  this.register(WebHookEvent, WebHookEventEvents);
221
230
 
231
+ this.register(ThreadParticipant, ThreadParticipantEvents);
232
+
222
233
  }
223
234
 
224
235
  }
@@ -16,7 +16,7 @@ import type Contact from "./Contact.js";
16
16
  import type EmailTemplate from "./EmailTemplate.js";
17
17
  import Mailbox from "./Mailbox.js";
18
18
  import type WebSiteFolder from "./WebSiteFolder.js";
19
- import type { WebSiteFolderVersion } from "./WebSiteFolder.js";
19
+ import type { WebSiteVersion } from "./WebSiteVersion.js";
20
20
  import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
21
21
  import { apiPath } from "../../../common/globalEnv.js";
22
22
  import type { StoreItem } from "./StoreItem.js";
@@ -201,7 +201,7 @@ export default class AppFile {
201
201
 
202
202
  public websiteFolder: WebSiteFolder;
203
203
 
204
- public websiteVersions: WebSiteFolderVersion[];
204
+ public websiteVersions: WebSiteVersion[];
205
205
 
206
206
  signed: string;
207
207
 
@@ -19,6 +19,7 @@ import type EmailEngagement from "./EmailEngagement.js";
19
19
  import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
20
20
  import { apiPath } from "../../../common/globalEnv.js";
21
21
  import type MailboxContactEvent from "./MailboxContactEvent.js";
22
+ import type ThreadParticipant from "./ThreadParticipant.js";
22
23
 
23
24
  const emailStatuses = [ "queued", "received", "draft", "published", "pending-approval", "scheduled", "sent", "sent-failed", "deleted", "closed"] as const;
24
25
  export type emailStatusType = typeof emailStatuses[number];
@@ -298,6 +299,7 @@ export class Email {
298
299
 
299
300
  public engagements: EmailEngagement[];
300
301
  mailboxContactEvents: MailboxContactEvent[];
302
+ threadParticipants: ThreadParticipant[];
301
303
  }
302
304
 
303
305
  @Table("EmailLogs")
@@ -11,6 +11,7 @@ import type { ContactEmail } from "./Contact.js";
11
11
  import type SubscriberActivity from "./SubscriberActivity.js";
12
12
  import type EmailAddressName from "./EmailAddressName.js";
13
13
  import type StoreAccountEmail from "./StoreAccountEmail.js";
14
+ import type ThreadParticipant from "./ThreadParticipant.js";
14
15
 
15
16
  @Table("EmailAddresses")
16
17
  @Index({
@@ -54,5 +55,6 @@ export default class EmailAddress {
54
55
  public subscriberActivities: SubscriberActivity[];
55
56
  names: EmailAddressName[];
56
57
  storeAccounts: StoreAccountEmail[];
58
+ threadParticipants: ThreadParticipant[];
57
59
 
58
60
  }
@@ -6,7 +6,7 @@ import EmailAddress from "./EmailAddress.js";
6
6
  import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
7
7
  import { JsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
8
8
 
9
- const emailRecipientTypes = [ "from", "to", "cc", "bcc", "viewer", "editor"] as const;
9
+ const emailRecipientTypes = [ "from", "to", "cc", "bcc", "viewer", "editor", "unsubscribed"] as const;
10
10
  export type emailRecipientType = typeof emailRecipientTypes[number];
11
11
 
12
12
  @Table("EmailRecipients")
@@ -33,7 +33,7 @@ export default class EmailRecipient {
33
33
  })
34
34
  public emailAddressID: number;
35
35
 
36
- @Column({ dataType: "Char", length: 10, enum: emailRecipientTypes })
36
+ @Column({ dataType: "Char", length: 20, enum: emailRecipientTypes })
37
37
  public type: emailRecipientType;
38
38
 
39
39
  @Column({ dataType: "Char", length: 200, nullable: true })
@@ -9,6 +9,7 @@ import type DomainRelay from "./DomainRelay.js";
9
9
  import type Contact from "./Contact.js";
10
10
  import type EmailTemplate from "./EmailTemplate.js";
11
11
  import { JsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
12
+ import type { WebSiteChannelDomain } from "./WebSiteChannelDomain.js";
12
13
 
13
14
  @Table("HostedDomains")
14
15
  export class HostedDomain {
@@ -58,4 +59,6 @@ export class HostedDomain {
58
59
  @JsonProperty()
59
60
  public domainNameToCreate: string;
60
61
 
62
+ websiteChannelDomains: WebSiteChannelDomain[];
63
+
61
64
  }
@@ -17,7 +17,7 @@ import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
17
17
  import type SubscriberActivity from "./SubscriberActivity.js";
18
18
  import { IgnoreJsonProperty, JsonProperty, ReadOnlyJsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
19
19
  import type ChannelConfig from "./ChannelConfig.js";
20
- import type { WebSiteChannel } from "./WebSiteFolder.js";
20
+ import type { WebSiteChannel } from "./WebSiteChannel.js";
21
21
  import Domain from "./Domain.js";
22
22
  import type MailboxFolder from "./MailboxFolder.js";
23
23
  import type MailboxTag from "./MailboxTag.js";
@@ -156,6 +156,9 @@ export default class Mailbox {
156
156
  @Column({ dataType: "Boolean", default: () => true })
157
157
  public requiresCommentModeration: boolean;
158
158
 
159
+ @Column({ dataType: "Boolean", default: () => true })
160
+ public requiresSignup: boolean;
161
+
159
162
  @Column({ dataType: "Int", default: () => 0 })
160
163
  public subscriberCount: number;
161
164
 
@@ -0,0 +1,45 @@
1
+ import Column from "@entity-access/entity-access/dist/decorators/Column.js";
2
+ import { RelateTo } from "@entity-access/entity-access/dist/decorators/Relate.js";
3
+ import Table from "@entity-access/entity-access/dist/decorators/Table.js";
4
+ import { Email } from "./Email.js";
5
+ import EmailAddress from "./EmailAddress.js";
6
+ import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
7
+ import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
8
+
9
+ /**
10
+ * This class is a separate entity instead of using EmailRecipient,
11
+ * the reason is, for simplicity and faster index.
12
+ *
13
+ * 1. As EmailRecipients will be serialized for every email through JSON
14
+ * 2. Adding filter to remove participants will be extra pressure on database
15
+ * 3. Thread Participant may only exist at top thread.
16
+ * 4. Normal email communication will not involve thread participants.
17
+ * 5. This can further include fields related to Projects and other
18
+ * Task Management related data such as assignee etc. Which will make
19
+ * EmailRecipient simpler.
20
+ */
21
+
22
+ @Table("ThreadParticipants")
23
+ export default class ThreadParticipant {
24
+
25
+ @Column({ dataType: "BigInt", key: true})
26
+ @RelateTo(Email, {
27
+ property: (x) => x.email,
28
+ inverseProperty: (x) => x.threadParticipants
29
+ })
30
+ emailID: number;
31
+
32
+ @Column({ dataType: "BigInt", key: true })
33
+ @RelateTo(EmailAddress, {
34
+ property: (x) => x.emailAddress,
35
+ inverseProperty: (x) => x.threadParticipants
36
+ })
37
+ emailAddressID: number;
38
+
39
+ @Column({ dataType: "Boolean", default: () => false})
40
+ unsubscribed: boolean;
41
+
42
+ email: Email;
43
+ emailAddress: EmailAddress;
44
+
45
+ }
@@ -12,7 +12,7 @@ import type { AppFileAccess, AppFileVersion } from "./AppFile.js";
12
12
  import type UserPin from "./UserPin.js";
13
13
  import type Contact from "./Contact.js";
14
14
  import type { Email } from "./Email.js";
15
- import type { WebSiteFolderVersion } from "./WebSiteFolder.js";
15
+ import type { WebSiteVersion } from "./WebSiteVersion.js";
16
16
  import { JsonProperty, IgnoreJsonProperty, ReadOnlyJsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
17
17
  import type UserPushSubscription from "./UserSubscriptions.js";
18
18
  import type AccessToken from "./AccessToken.js";
@@ -139,7 +139,7 @@ export class User {
139
139
 
140
140
  public sentEmails: Email[];
141
141
 
142
- public publishedWebSiteVersions: WebSiteFolderVersion[];
142
+ public publishedWebSiteVersions: WebSiteVersion[];
143
143
 
144
144
  public userPushSubscriptions: UserPushSubscription[];
145
145
 
@@ -0,0 +1,29 @@
1
+ import Column from "@entity-access/entity-access/dist/decorators/Column.js";
2
+ import { RelateTo } from "@entity-access/entity-access/dist/decorators/Relate.js";
3
+ import Table from "@entity-access/entity-access/dist/decorators/Table.js";
4
+ import Mailbox from "./Mailbox.js";
5
+ import WebSiteFolder from "./WebSiteFolder.js";
6
+
7
+
8
+ @Table("WebSiteChannels")
9
+ export class WebSiteChannel {
10
+
11
+ @Column({ dataType: "BigInt", key: true })
12
+ @RelateTo(WebSiteFolder, {
13
+ property: (x) => x.website,
14
+ inverseProperty: (x) => x.channels
15
+ })
16
+ public folderID: number;
17
+
18
+ @Column({ dataType: "BigInt", key: true })
19
+ @RelateTo(Mailbox, {
20
+ property: (x) => x.channel,
21
+ inverseProperty: (x) => x.websiteChannels
22
+ })
23
+ public channelID: number;
24
+
25
+ public website: WebSiteFolder;
26
+
27
+ public channel: Mailbox;
28
+
29
+ }
@@ -0,0 +1,34 @@
1
+ import Column from "@entity-access/entity-access/dist/decorators/Column.js";
2
+ import { RelateTo } from "@entity-access/entity-access/dist/decorators/Relate.js";
3
+ import Table from "@entity-access/entity-access/dist/decorators/Table.js";
4
+ import { HostedDomain } from "./HostedDomain.js";
5
+ import WebSiteFolder from "./WebSiteFolder.js";
6
+
7
+ /**
8
+ * This association will display all public channels on the
9
+ * website. Users will be able to create channel if signup
10
+ * is enabled.
11
+ */
12
+
13
+ @Table("WebSiteChannelDomains")
14
+ export class WebSiteChannelDomain {
15
+
16
+ @Column({ dataType: "BigInt", key: true })
17
+ @RelateTo(WebSiteFolder, {
18
+ property: (x) => x.website,
19
+ inverseProperty: (x) => x.channelDomains
20
+ })
21
+ public folderID: number;
22
+
23
+ @Column({ dataType: "BigInt", key: true })
24
+ @RelateTo(HostedDomain, {
25
+ property: (x) => x.domain,
26
+ inverseProperty: (x) => x.websiteChannelDomains
27
+ })
28
+ public domainID: number;
29
+
30
+ public website: WebSiteFolder;
31
+
32
+ public domain: HostedDomain;
33
+
34
+ }
@@ -2,10 +2,7 @@ import Column from "@entity-access/entity-access/dist/decorators/Column.js";
2
2
  import { RelateTo, RelateToOne } from "@entity-access/entity-access/dist/decorators/Relate.js";
3
3
  import Table from "@entity-access/entity-access/dist/decorators/Table.js";
4
4
  import AppFile, { AppFileVersion } from "./AppFile.js";
5
- import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
6
- import { User } from "./User.js";
7
- import { JsonProperty, ReadOnlyJsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
8
- import Mailbox from "./Mailbox.js";
5
+ import { ReadOnlyJsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
9
6
  import Index from "@entity-access/entity-access/dist/decorators/Index.js";
10
7
  import type ServerActivity from "./ServerActivity.js";
11
8
  import type { StoreTag } from "./StoreTag.js";
@@ -17,6 +14,10 @@ import type { StoreJournal } from "./StoreJournal.js";
17
14
  import type { StoreConfig } from "./StoreConfig.js";
18
15
  import type StoreCoupon from "./StoreCoupon.js";
19
16
  import type WebHook from "./WebHook.js";
17
+ import type { WebSiteChannelDomain } from "./WebSiteChannelDomain.js";
18
+ import type { WebSiteChannel } from "./WebSiteChannel.js";
19
+ import type { WebSiteVersion } from "./WebSiteVersion.js";
20
+ import type { WebSiteHost } from "./WebSiteHost.js";
20
21
 
21
22
  @Table("WebSiteFolders")
22
23
  @Index({
@@ -74,9 +75,9 @@ export default class WebSiteFolder {
74
75
 
75
76
  currentVersion: AppFile;
76
77
 
77
- hosts: WebSiteFolderHost[];
78
+ hosts: WebSiteHost[];
78
79
 
79
- versions: WebSiteFolderVersion[];
80
+ versions: WebSiteVersion[];
80
81
 
81
82
  channels: WebSiteChannel[];
82
83
 
@@ -90,103 +91,7 @@ export default class WebSiteFolder {
90
91
  configs: StoreConfig[];
91
92
  coupons: StoreCoupon[];
92
93
  webHooks: WebHook[];
94
+ channelDomains: WebSiteChannelDomain[];
93
95
 
94
96
  }
95
97
 
96
- @Table("WebSiteChannels")
97
- export class WebSiteChannel {
98
-
99
- @Column({ dataType: "BigInt", key: true })
100
- @RelateTo(WebSiteFolder, {
101
- property: (x) => x.website,
102
- inverseProperty: (x) => x.channels
103
- })
104
- public folderID: number;
105
-
106
- @Column({ dataType: "BigInt", key: true })
107
- @RelateTo(Mailbox, {
108
- property: (x) => x.channel,
109
- inverseProperty: (x) => x.websiteChannels
110
- })
111
- public channelID: number;
112
-
113
- public website: WebSiteFolder;
114
-
115
- public channel: Mailbox;
116
-
117
- }
118
-
119
- @Table("WebSiteFolderVersion")
120
- export class WebSiteFolderVersion {
121
-
122
- @Column({ dataType: "BigInt", key: true })
123
- @RelateTo(WebSiteFolder, {
124
- property: (x) => x.websiteFolder,
125
- inverseProperty: (x) => x.versions,
126
- foreignKeyConstraint: {
127
- name: "FK_WebSiteFolder_FolderID",
128
- cascade: "restrict"
129
- }
130
- })
131
- public folderID: number;
132
-
133
- @Column({ dataType: "BigInt", key: true })
134
- @RelateTo(AppFile, {
135
- property: (x) => x.snapshotFolder,
136
- inverseProperty: (x) => x.websiteVersions,
137
- foreignKeyConstraint: {
138
- name: "FK_WebSiteFolder_SnapShotFolderID",
139
- cascade: "delete"
140
- }
141
- })
142
- public snapshotFolderID: number;
143
-
144
- @Column({ dataType: "DateTime" })
145
- public dateCreated: DateTime;
146
-
147
- @Column({ dataType: "Char", length: 200 })
148
- public name: string;
149
-
150
- @Column({ dataType: "Char", nullable: true })
151
- public description: string;
152
-
153
- @JsonProperty({})
154
- public publish: boolean;
155
-
156
- @JsonProperty({ enum: ["major", "minor", "patch"] })
157
- public versionType: "major" | "minor" | "patch";
158
-
159
- @Column({ dataType: "BigInt", nullable: true})
160
- @RelateTo(User, {
161
- property: (x) => x.author,
162
- inverseProperty: (x) => x.publishedWebSiteVersions
163
- })
164
- public authorID: number;
165
-
166
- public websiteFolder: WebSiteFolder;
167
-
168
- public snapshotFolder: AppFile;
169
-
170
- public author: User;
171
-
172
- }
173
-
174
- @Table("WebSiteFolderHost")
175
- export class WebSiteFolderHost {
176
-
177
- @Column({ dataType: "Char", length: 200, key: true })
178
- public host: string;
179
-
180
- @Column({ dataType: "BigInt" })
181
- @RelateTo(WebSiteFolder, {
182
- property: (x) => x.folder,
183
- inverseProperty: (x) => x.hosts,
184
- foreignKeyConstraint: {
185
- cascade: "delete"
186
- }
187
- })
188
- public folderID: number;
189
-
190
- public folder: WebSiteFolder;
191
-
192
- }
@@ -0,0 +1,25 @@
1
+ import Column from "@entity-access/entity-access/dist/decorators/Column.js";
2
+ import { RelateTo } from "@entity-access/entity-access/dist/decorators/Relate.js";
3
+ import Table from "@entity-access/entity-access/dist/decorators/Table.js";
4
+ import WebSiteFolder from "./WebSiteFolder.js";
5
+
6
+
7
+ @Table("WebSiteHost")
8
+ export class WebSiteHost {
9
+
10
+ @Column({ dataType: "Char", length: 200, key: true })
11
+ public host: string;
12
+
13
+ @Column({ dataType: "BigInt" })
14
+ @RelateTo(WebSiteFolder, {
15
+ property: (x) => x.folder,
16
+ inverseProperty: (x) => x.hosts,
17
+ foreignKeyConstraint: {
18
+ cascade: "delete"
19
+ }
20
+ })
21
+ public folderID: number;
22
+
23
+ public folder: WebSiteFolder;
24
+
25
+ }