@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.
- package/dist/common/Mailto.d.ts +17 -0
- package/dist/common/Mailto.d.ts.map +1 -0
- package/dist/common/Mailto.js +27 -0
- package/dist/common/Mailto.js.map +1 -0
- package/dist/common/cacheFor.d.ts +10 -1
- package/dist/common/cacheFor.d.ts.map +1 -1
- package/dist/common/cacheFor.js +18 -2
- package/dist/common/cacheFor.js.map +1 -1
- package/dist/server/model/SocialMailContext.d.ts +10 -3
- package/dist/server/model/SocialMailContext.d.ts.map +1 -1
- package/dist/server/model/SocialMailContext.js +10 -3
- package/dist/server/model/SocialMailContext.js.map +1 -1
- package/dist/server/model/SocialMailContextEvents.d.ts.map +1 -1
- package/dist/server/model/SocialMailContextEvents.js +15 -5
- package/dist/server/model/SocialMailContextEvents.js.map +1 -1
- package/dist/server/model/entities/AppFile.d.ts +2 -2
- package/dist/server/model/entities/AppFile.d.ts.map +1 -1
- package/dist/server/model/entities/Email.d.ts +2 -0
- package/dist/server/model/entities/Email.d.ts.map +1 -1
- package/dist/server/model/entities/Email.js.map +1 -1
- package/dist/server/model/entities/EmailAddress.d.ts +2 -0
- package/dist/server/model/entities/EmailAddress.d.ts.map +1 -1
- package/dist/server/model/entities/EmailAddress.js.map +1 -1
- package/dist/server/model/entities/EmailRecipient.d.ts +1 -1
- package/dist/server/model/entities/EmailRecipient.d.ts.map +1 -1
- package/dist/server/model/entities/EmailRecipient.js +2 -2
- package/dist/server/model/entities/EmailRecipient.js.map +1 -1
- package/dist/server/model/entities/HostedDomain.d.ts +2 -0
- package/dist/server/model/entities/HostedDomain.d.ts.map +1 -1
- package/dist/server/model/entities/HostedDomain.js.map +1 -1
- package/dist/server/model/entities/Mailbox.d.ts +2 -1
- package/dist/server/model/entities/Mailbox.d.ts.map +1 -1
- package/dist/server/model/entities/Mailbox.js +4 -0
- package/dist/server/model/entities/Mailbox.js.map +1 -1
- package/dist/server/model/entities/ThreadParticipant.d.ts +22 -0
- package/dist/server/model/entities/ThreadParticipant.d.ts.map +1 -0
- package/dist/server/model/entities/ThreadParticipant.js +53 -0
- package/dist/server/model/entities/ThreadParticipant.js.map +1 -0
- package/dist/server/model/entities/User.d.ts +2 -2
- package/dist/server/model/entities/User.d.ts.map +1 -1
- package/dist/server/model/entities/WebSiteChannel.d.ts +9 -0
- package/dist/server/model/entities/WebSiteChannel.d.ts.map +1 -0
- package/dist/server/model/entities/WebSiteChannel.js +37 -0
- package/dist/server/model/entities/WebSiteChannel.js.map +1 -0
- package/dist/server/model/entities/WebSiteChannelDomain.d.ts +14 -0
- package/dist/server/model/entities/WebSiteChannelDomain.d.ts.map +1 -0
- package/dist/server/model/entities/WebSiteChannelDomain.js +42 -0
- package/dist/server/model/entities/WebSiteChannelDomain.js.map +1 -0
- package/dist/server/model/entities/WebSiteFolder.d.ts +7 -29
- package/dist/server/model/entities/WebSiteFolder.d.ts.map +1 -1
- package/dist/server/model/entities/WebSiteFolder.js +1 -105
- package/dist/server/model/entities/WebSiteFolder.js.map +1 -1
- package/dist/server/model/entities/WebSiteHost.d.ts +7 -0
- package/dist/server/model/entities/WebSiteHost.d.ts.map +1 -0
- package/dist/server/model/entities/WebSiteHost.js +35 -0
- package/dist/server/model/entities/WebSiteHost.js.map +1 -0
- package/dist/server/model/entities/WebSiteVersion.d.ts +18 -0
- package/dist/server/model/entities/WebSiteVersion.d.ts.map +1 -0
- package/dist/server/model/entities/WebSiteVersion.js +76 -0
- package/dist/server/model/entities/WebSiteVersion.js.map +1 -0
- package/dist/server/model/events/EmailEvents.d.ts.map +1 -1
- package/dist/server/model/events/EmailEvents.js +17 -7
- package/dist/server/model/events/EmailEvents.js.map +1 -1
- package/dist/server/model/events/MailboxEvents.d.ts.map +1 -1
- package/dist/server/model/events/MailboxEvents.js +2 -0
- package/dist/server/model/events/MailboxEvents.js.map +1 -1
- package/dist/server/model/events/ThreadParticipantEvents.d.ts +8 -0
- package/dist/server/model/events/ThreadParticipantEvents.d.ts.map +1 -0
- package/dist/server/model/events/ThreadParticipantEvents.js +19 -0
- package/dist/server/model/events/ThreadParticipantEvents.js.map +1 -0
- package/dist/server/model/events/UserEvents.d.ts.map +1 -1
- package/dist/server/model/events/UserEvents.js +2 -2
- package/dist/server/model/events/UserEvents.js.map +1 -1
- package/dist/server/model/events/WebSiteChannelDomainEvents.d.ts +8 -0
- package/dist/server/model/events/WebSiteChannelDomainEvents.d.ts.map +1 -0
- package/dist/server/model/events/WebSiteChannelDomainEvents.js +23 -0
- package/dist/server/model/events/WebSiteChannelDomainEvents.js.map +1 -0
- package/dist/server/model/events/WebSiteFolderEvents.d.ts +2 -8
- package/dist/server/model/events/WebSiteFolderEvents.d.ts.map +1 -1
- package/dist/server/model/events/WebSiteFolderEvents.js +1 -42
- package/dist/server/model/events/WebSiteFolderEvents.js.map +1 -1
- package/dist/server/model/events/WebSiteHostEvents.d.ts +12 -0
- package/dist/server/model/events/WebSiteHostEvents.d.ts.map +1 -0
- package/dist/server/model/events/WebSiteHostEvents.js +54 -0
- package/dist/server/model/events/WebSiteHostEvents.js.map +1 -0
- package/dist/server/model/events/WebSiteVersionEvents.d.ts +17 -0
- package/dist/server/model/events/WebSiteVersionEvents.d.ts.map +1 -0
- package/dist/server/model/events/{WebSiteFolderVersionEvents.js → WebSiteVersionEvents.js} +4 -4
- package/dist/server/model/events/WebSiteVersionEvents.js.map +1 -0
- package/dist/server/seed/ui/seed-ui.js +1 -1
- package/dist/server/services/EmailAddressService.d.ts +4 -2
- package/dist/server/services/EmailAddressService.d.ts.map +1 -1
- package/dist/server/services/EmailAddressService.js +4 -4
- package/dist/server/services/EmailAddressService.js.map +1 -1
- package/dist/server/services/StoreFileService.d.ts +3 -1
- package/dist/server/services/StoreFileService.d.ts.map +1 -1
- package/dist/server/services/StoreFileService.js.map +1 -1
- package/dist/server/services/TemplateExpander.js +1 -1
- package/dist/server/services/TemplateExpander.js.map +1 -1
- package/dist/server/services/accounts/sales/SalesInvoiceService.d.ts +3 -1
- package/dist/server/services/accounts/sales/SalesInvoiceService.d.ts.map +1 -1
- package/dist/server/services/accounts/sales/SalesInvoiceService.js.map +1 -1
- package/dist/server/services/channels/ChannelModerationService.d.ts +8 -0
- package/dist/server/services/channels/ChannelModerationService.d.ts.map +1 -0
- package/dist/server/{smtp/services/EmailThreadService.js → services/channels/ChannelModerationService.js} +19 -7
- package/dist/server/services/channels/ChannelModerationService.js.map +1 -0
- package/dist/server/services/dom/HtmlSanitizer.d.ts.map +1 -1
- package/dist/server/services/dom/HtmlSanitizer.js +7 -1
- package/dist/server/services/dom/HtmlSanitizer.js.map +1 -1
- package/dist/server/services/domain-keys/DomainKeyService.d.ts +3 -1
- package/dist/server/services/domain-keys/DomainKeyService.d.ts.map +1 -1
- package/dist/server/services/domain-keys/DomainKeyService.js.map +1 -1
- package/dist/server/services/files/FileAccessService.d.ts +3 -1
- package/dist/server/services/files/FileAccessService.d.ts.map +1 -1
- package/dist/server/services/files/FileAccessService.js +0 -2
- package/dist/server/services/files/FileAccessService.js.map +1 -1
- package/dist/server/services/files/SnapshotService.d.ts +3 -1
- package/dist/server/services/files/SnapshotService.d.ts.map +1 -1
- package/dist/server/services/files/SnapshotService.js.map +1 -1
- package/dist/server/services/files/WebSiteService.d.ts +6 -3
- package/dist/server/services/files/WebSiteService.d.ts.map +1 -1
- package/dist/server/services/files/WebSiteService.js.map +1 -1
- package/dist/server/services/store/StoreConfigService.d.ts +3 -1
- package/dist/server/services/store/StoreConfigService.d.ts.map +1 -1
- package/dist/server/services/store/StoreConfigService.js.map +1 -1
- package/dist/server/services/threads/EmailThreadService.d.ts +7 -0
- package/dist/server/services/threads/EmailThreadService.d.ts.map +1 -0
- package/dist/server/services/threads/EmailThreadService.js +45 -0
- package/dist/server/services/threads/EmailThreadService.js.map +1 -0
- package/dist/server/smtp/dns/DnsService.d.ts +3 -1
- package/dist/server/smtp/dns/DnsService.d.ts.map +1 -1
- package/dist/server/smtp/dns/DnsService.js.map +1 -1
- package/dist/server/smtp/services/AccessTokenService.d.ts +4 -2
- package/dist/server/smtp/services/AccessTokenService.d.ts.map +1 -1
- package/dist/server/smtp/services/AccessTokenService.js +23 -28
- package/dist/server/smtp/services/AccessTokenService.js.map +1 -1
- package/dist/server/smtp/services/CachedEmailService.d.ts.map +1 -1
- package/dist/server/smtp/services/CachedEmailService.js +6 -1
- package/dist/server/smtp/services/CachedEmailService.js.map +1 -1
- package/dist/server/smtp/services/EmailPostReceiveService.d.ts +8 -0
- package/dist/server/smtp/services/EmailPostReceiveService.d.ts.map +1 -1
- package/dist/server/smtp/services/EmailPostReceiveService.js +48 -6
- package/dist/server/smtp/services/EmailPostReceiveService.js.map +1 -1
- package/dist/server/smtp/services/EngagementService.d.ts.map +1 -1
- package/dist/server/smtp/services/EngagementService.js +5 -0
- package/dist/server/smtp/services/EngagementService.js.map +1 -1
- package/dist/server/smtp/services/WebSiteChannelService.d.ts +3 -3
- package/dist/server/smtp/services/WebSiteChannelService.d.ts.map +1 -1
- package/dist/server/smtp/services/WebSiteChannelService.js +27 -26
- package/dist/server/smtp/services/WebSiteChannelService.js.map +1 -1
- package/dist/server/storage/TempFileService.d.ts.map +1 -1
- package/dist/server/storage/TempFileService.js +7 -2
- package/dist/server/storage/TempFileService.js.map +1 -1
- package/dist/server/templates/channel/SubscriberRequested.d.ts.map +1 -1
- package/dist/server/templates/channel/SubscriberRequested.js +5 -1
- package/dist/server/templates/channel/SubscriberRequested.js.map +1 -1
- package/dist/server/workflows/pending/PendingPostReceiveWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/pending/PendingPostReceiveWorkflow.js +3 -14
- package/dist/server/workflows/pending/PendingPostReceiveWorkflow.js.map +1 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts +3 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.d.ts.map +1 -1
- package/dist/server/workflows/smtp/DispatchEmailToMX.js +30 -4
- package/dist/server/workflows/smtp/DispatchEmailToMX.js.map +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.d.ts.map +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.js +5 -1
- package/dist/server/workflows/smtp/MailDispatcherService.js.map +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.d.ts +3 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.d.ts.map +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.js +15 -4
- package/dist/server/workflows/smtp/PrepareEmailToSend.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/@[channel]/[slug]/index.js +4 -4
- package/dist/wwwroot/routes/@[channel]/[slug]/index.js.map +1 -1
- package/dist/wwwroot/routes/api/site/snapshot/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/api/site/snapshot/index.js.map +1 -1
- package/package.json +3 -3
- package/src/common/Mailto.ts +39 -0
- package/src/common/cacheFor.ts +26 -4
- package/src/server/model/SocialMailContext.ts +12 -3
- package/src/server/model/SocialMailContextEvents.ts +16 -5
- package/src/server/model/entities/AppFile.ts +2 -2
- package/src/server/model/entities/Email.ts +2 -0
- package/src/server/model/entities/EmailAddress.ts +2 -0
- package/src/server/model/entities/EmailRecipient.ts +2 -2
- package/src/server/model/entities/HostedDomain.ts +3 -0
- package/src/server/model/entities/Mailbox.ts +4 -1
- package/src/server/model/entities/ThreadParticipant.ts +45 -0
- package/src/server/model/entities/User.ts +2 -2
- package/src/server/model/entities/WebSiteChannel.ts +29 -0
- package/src/server/model/entities/WebSiteChannelDomain.ts +34 -0
- package/src/server/model/entities/WebSiteFolder.ts +8 -103
- package/src/server/model/entities/WebSiteHost.ts +25 -0
- package/src/server/model/entities/WebSiteVersion.ts +64 -0
- package/src/server/model/events/EmailEvents.ts +19 -7
- package/src/server/model/events/MailboxEvents.ts +2 -0
- package/src/server/model/events/ThreadParticipantEvents.ts +27 -0
- package/src/server/model/events/UserEvents.ts +4 -3
- package/src/server/model/events/WebSiteChannelDomainEvents.ts +27 -0
- package/src/server/model/events/WebSiteFolderEvents.ts +3 -43
- package/src/server/model/events/WebSiteHostEvents.ts +55 -0
- package/src/server/model/events/{WebSiteFolderVersionEvents.ts → WebSiteVersionEvents.ts} +109 -109
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/EmailAddressService.ts +8 -5
- package/src/server/services/StoreFileService.ts +6 -2
- package/src/server/services/TemplateExpander.ts +1 -1
- package/src/server/services/accounts/sales/SalesInvoiceService.ts +5 -2
- package/src/server/services/channels/ChannelModerationService.ts +27 -0
- package/src/server/services/dom/HtmlSanitizer.ts +7 -1
- package/src/server/services/domain-keys/DomainKeyService.ts +4 -2
- package/src/server/services/files/FileAccessService.ts +4 -5
- package/src/server/services/files/SnapshotService.ts +5 -2
- package/src/server/services/files/WebSiteService.ts +8 -4
- package/src/server/services/store/StoreConfigService.ts +5 -2
- package/src/server/services/tags/TagService.ts +1 -1
- package/src/server/services/threads/EmailThreadService.ts +39 -0
- package/src/server/smtp/dns/DnsService.ts +4 -3
- package/src/server/smtp/services/AccessTokenService.ts +20 -22
- package/src/server/smtp/services/CachedEmailService.ts +5 -1
- package/src/server/smtp/services/EmailPostReceiveService.ts +54 -9
- package/src/server/smtp/services/EngagementService.ts +6 -0
- package/src/server/smtp/services/WebSiteChannelService.ts +17 -17
- package/src/server/storage/TempFileService.ts +7 -2
- package/src/server/templates/channel/SubscriberRequested.tsx +5 -1
- package/src/server/workflows/pending/PendingPostReceiveWorkflow.ts +3 -16
- package/src/server/workflows/smtp/DispatchEmailToMX.ts +33 -3
- package/src/server/workflows/smtp/MailDispatcherService.ts +6 -1
- package/src/server/workflows/smtp/PrepareEmailToSend.ts +16 -3
- package/src/wwwroot/routes/@[channel]/[slug]/index.tsx +4 -4
- package/src/wwwroot/routes/api/site/snapshot/index.ts +1 -0
- package/dist/server/model/events/WebSiteFolderVersionEvents.d.ts +0 -17
- package/dist/server/model/events/WebSiteFolderVersionEvents.d.ts.map +0 -1
- package/dist/server/model/events/WebSiteFolderVersionEvents.js.map +0 -1
- package/dist/server/smtp/services/EmailThreadService.d.ts +0 -7
- package/dist/server/smtp/services/EmailThreadService.d.ts.map +0 -1
- package/dist/server/smtp/services/EmailThreadService.js.map +0 -1
- 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;
|
|
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":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,cAAc,MAAM,wDAAwD,CAAC;AACpF,OAAO,eAAe,MAAM,kDAAkD,CAAC;AAC/E,OAAO,qBAAqB,MAAM,yEAAyE,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAC5D,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAC/D,OAAO,kBAAkB,MAAM,mEAAmE,CAAC;AACnG,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,YAAY,MAAM,sDAAsD,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,UAAU,MAAM,8DAA8D,CAAC;
|
|
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.
|
|
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.
|
|
25
|
-
"@entity-access/server-pages": "^1.1.
|
|
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
|
+
};
|
package/src/common/cacheFor.ts
CHANGED
|
@@ -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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
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
|
|
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(
|
|
236
|
+
public websiteFolderHosts = this.model.register(WebSiteHost);
|
|
232
237
|
|
|
233
|
-
public websiteVersions = this.model.register(
|
|
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
|
|
61
|
-
import
|
|
62
|
-
import {
|
|
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(
|
|
217
|
-
this.register(
|
|
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 {
|
|
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:
|
|
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:
|
|
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 "./
|
|
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 {
|
|
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:
|
|
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
|
|
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:
|
|
78
|
+
hosts: WebSiteHost[];
|
|
78
79
|
|
|
79
|
-
versions:
|
|
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
|
+
}
|