@social-mail/social-mail-client 1.2.332 → 1.2.334

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 (48) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +141 -379
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +6 -6
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/pages/mailboxes/MailboxEditorPage.js +1 -1
  6. package/dist/common/pages/mailboxes/MailboxEditorPage.js.map +1 -1
  7. package/dist/common/pages/mailboxes/services/ExternalMailboxService.d.ts +0 -3
  8. package/dist/common/pages/mailboxes/services/ExternalMailboxService.d.ts.map +1 -1
  9. package/dist/common/pages/mailboxes/services/ExternalMailboxService.js +2 -34
  10. package/dist/common/pages/mailboxes/services/ExternalMailboxService.js.map +1 -1
  11. package/dist/common/pages/mailboxes/services/MailboxService.d.ts.map +1 -1
  12. package/dist/common/pages/mailboxes/services/MailboxService.js +2 -5
  13. package/dist/common/pages/mailboxes/services/MailboxService.js.map +1 -1
  14. package/dist/common/pages/websites/blogs/LookupChannelPage.js +1 -1
  15. package/dist/common/pages/websites/blogs/LookupChannelPage.js.map +1 -1
  16. package/dist/model/model.d.ts +34 -76
  17. package/dist/model/model.d.ts.map +1 -1
  18. package/dist/model/model.js +134 -337
  19. package/dist/model/model.js.map +1 -1
  20. package/dist/public/channel/ChannelView.pack.js +134 -337
  21. package/dist/public/channel/ChannelView.pack.js.map +1 -1
  22. package/dist/public/channel/ChannelView.pack.min.js +1 -1
  23. package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
  24. package/dist/public/store/Store.pack.js +197 -346
  25. package/dist/public/store/Store.pack.js.map +1 -1
  26. package/dist/public/store/Store.pack.min.js +35 -8
  27. package/dist/public/store/Store.pack.min.js.map +1 -1
  28. package/dist/public/store/StoreItemDetailView.js +3 -3
  29. package/dist/public/store/StoreItemListView.d.ts +2 -1
  30. package/dist/public/store/StoreItemListView.d.ts.map +1 -1
  31. package/dist/public/store/StoreItemListView.js +60 -6
  32. package/dist/public/store/StoreItemListView.js.map +1 -1
  33. package/dist/services/contacts/ContactService.js +1 -1
  34. package/dist/services/contacts/ContactService.js.map +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/dist/web/AppIndex.pack.js +141 -379
  37. package/dist/web/AppIndex.pack.js.map +1 -1
  38. package/dist/web/AppIndex.pack.min.js +5 -5
  39. package/dist/web/AppIndex.pack.min.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/common/pages/mailboxes/MailboxEditorPage.tsx +1 -1
  42. package/src/common/pages/mailboxes/services/ExternalMailboxService.ts +1 -32
  43. package/src/common/pages/mailboxes/services/MailboxService.ts +2 -5
  44. package/src/common/pages/websites/blogs/LookupChannelPage.tsx +1 -1
  45. package/src/model/model.ts +64 -120
  46. package/src/public/store/StoreItemDetailView.tsx +3 -3
  47. package/src/public/store/StoreItemListView.tsx +58 -5
  48. package/src/services/contacts/ContactService.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-client",
3
- "version": "1.2.332",
3
+ "version": "1.2.334",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -64,7 +64,7 @@ export default class MailboxEditorPage extends PopupWindowPage {
64
64
  />
65
65
  </FormField>
66
66
  <FormField label="Email Address">
67
- <span text={Bind.oneWay(() => `${this.model.username}@${this.model.domain.domain.name}`)}/>
67
+ <span text={Bind.oneWay(() => `${this.model.username}@${this.model.domain.name}`)}/>
68
68
  </FormField>
69
69
  <FormField label="Create Channel">
70
70
  <Checkbox
@@ -25,33 +25,6 @@ export default class ExternalMailboxService {
25
25
  @Inject
26
26
  private entityService: EntityService;
27
27
 
28
- public async createDomain(emailAddress: string, retry = 3): Promise<{ domainID?: number }> {
29
- try {
30
- const index = emailAddress.lastIndexOf("@");
31
- let domainName = emailAddress;
32
- if (index !== -1) {
33
- domainName = emailAddress.substring(index + 1);
34
- }
35
- domainName = domainName.toLocaleLowerCase();
36
- const d = await this.entityService.query(HostedDomain)
37
- .where({ domainName }, (p) => (x) => x.domain.name === p.domainName)
38
- .firstOrDefault();
39
- if (d) {
40
- return d;
41
- }
42
- const hd = HostedDomain.create({
43
- domainNameToCreate: domainName,
44
- external: true
45
- });
46
- return await this.entityService.save(hd);
47
- } catch (error) {
48
- if(retry--) {
49
- return await this.createDomain(emailAddress, retry - 1);
50
- }
51
- throw error;
52
- }
53
- }
54
-
55
28
  async createMailbox(model: IExternalMailbox) {
56
29
  const {
57
30
  emailAddress,
@@ -67,15 +40,11 @@ export default class ExternalMailboxService {
67
40
  smtpUsername,
68
41
  smtpPassword,
69
42
  } = model;
70
- const hd = await this.createDomain(emailAddress);
71
43
 
72
44
  const dateCreated = DateTime.now;
73
45
 
74
- const [ emailUsername ] = emailAddress.split("@");
75
-
76
46
  const mb = Mailbox.create({
77
- domainID: hd.domainID,
78
- username: emailUsername,
47
+ externalEmailAddress: emailAddress,
79
48
  name,
80
49
  dateCreated,
81
50
  dateUpdated: dateCreated,
@@ -12,10 +12,7 @@ export default class MailboxService {
12
12
  private entityService: EntityService;
13
13
 
14
14
  public async domains(onlyHosted = false) {
15
- let q = this.entityService.query(HostedDomain);
16
- if (onlyHosted) {
17
- q = q.where({}, (p) => (x) => x.external === false);
18
- }
15
+ const q = this.entityService.query(HostedDomain);
19
16
  const hosted = await q
20
17
  .include((x) => x.domain)
21
18
  .toArray();
@@ -100,7 +97,7 @@ export default class MailboxService {
100
97
  async get(id) {
101
98
  return this.entityService.query(Mailbox)
102
99
  .where({ id }, (p) => (x) => x.mailboxID === p.id)
103
- .include((x) => [x.userMailboxes, x.syncTargets, x.emailAddress, x.domain.domain])
100
+ .include((x) => [x.userMailboxes, x.syncTargets, x.emailAddress, x.domain])
104
101
  .firstOrDefault();
105
102
  }
106
103
 
@@ -59,7 +59,7 @@ export default class LookupChannelPage extends PopupWindowPage<any, IMailbox> {
59
59
  if (search) {
60
60
  search = search + "%";
61
61
  if (search.startsWith("@")) {
62
- q = q.where({ search }, (p) => (x) => Sql.text.like(x.domain.domain.name, p.search) );
62
+ q = q.where({ search }, (p) => (x) => Sql.text.like(x.domain.name, p.search) );
63
63
  } else {
64
64
  q = q.where({ search }, (p) => (x) => Sql.text.like(x.emailAddress.emailAddress, p.search));
65
65
  }
@@ -211,7 +211,7 @@ export interface IContact extends IClrEntity {
211
211
  shippingAddressID?: number | null;
212
212
  user?: IUser;
213
213
  mailbox?: IMailbox;
214
- domain?: IHostedDomain;
214
+ hostedDomain?: IHostedDomain;
215
215
  preview?: IAppFile;
216
216
  billingAddress?: IContactAddress;
217
217
  addresses?: ICollection<IContactAddress>;
@@ -232,7 +232,7 @@ export const Contact: IModel<IContact> = new Model<IContact>(
232
232
  "Contact",
233
233
  ["contactID"],
234
234
  { name: "",type: "",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()) },
235
- {"name":"contacts","keys":[{"name":"contactID","type":"number","generated":"identity"}],"properties":[{"name":"externalID","type":"string","default":["externalID","\"\""]},{"name":"userID","type":"number"},{"name":"mailboxID","type":"number"},{"name":"domainID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"description","type":"string","default":["description","\"\""]},{"name":"companyID","type":"string","default":["companyID","\"\""]},{"name":"salesTaxID","type":"string","default":["salesTaxID","\"\""]},{"name":"gstTaxID","type":"string","default":["gstTaxID","\"\""]},{"name":"vatTaxID","type":"string","default":["vatTaxID","\"\""]},{"name":"incomeTaxID","type":"string","default":["incomeTaxID","\"\""]},{"name":"type","type":"string","default":["type","\"\""]},{"name":"synchronization","type":"string","default":["synchronization","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"previewID","type":"number"},{"name":"billingAddressID","type":"number"},{"name":"shippingAddressID","type":"number"}],"relations":[{"name":"user","fkMap":[{"fk":"userID","relatedKey":"userID"}],"relatedName":"User"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"preview","fkMap":[{"fk":"previewID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"billingAddress","fkMap":[{"fk":"billingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"ContactAddress"},{"name":"shippingAddress","fkMap":[{"fk":"shippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"ContactEmail"},{"name":"phones","isCollection":true,"isInverse":true,"relatedName":"ContactPhone"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"ContactItem"},{"name":"domains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"sellerStores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"vendorItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"soldInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"boughtInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"soldItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
235
+ {"name":"contacts","keys":[{"name":"contactID","type":"number","generated":"identity"}],"properties":[{"name":"externalID","type":"string","default":["externalID","\"\""]},{"name":"userID","type":"number"},{"name":"mailboxID","type":"number"},{"name":"domainID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"description","type":"string","default":["description","\"\""]},{"name":"companyID","type":"string","default":["companyID","\"\""]},{"name":"salesTaxID","type":"string","default":["salesTaxID","\"\""]},{"name":"gstTaxID","type":"string","default":["gstTaxID","\"\""]},{"name":"vatTaxID","type":"string","default":["vatTaxID","\"\""]},{"name":"incomeTaxID","type":"string","default":["incomeTaxID","\"\""]},{"name":"type","type":"string","default":["type","\"\""]},{"name":"synchronization","type":"string","default":["synchronization","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"previewID","type":"number"},{"name":"billingAddressID","type":"number"},{"name":"shippingAddressID","type":"number"}],"relations":[{"name":"user","fkMap":[{"fk":"userID","relatedKey":"userID"}],"relatedName":"User"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"hostedDomain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"preview","fkMap":[{"fk":"previewID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"billingAddress","fkMap":[{"fk":"billingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"ContactAddress"},{"name":"shippingAddress","fkMap":[{"fk":"shippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"ContactEmail"},{"name":"phones","isCollection":true,"isInverse":true,"relatedName":"ContactPhone"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"ContactItem"},{"name":"domains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"sellerStores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"vendorItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"soldInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"boughtInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"soldItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
236
236
  );
237
237
  modelEntitySchemas["Contact"] = Contact;
238
238
 
@@ -352,6 +352,7 @@ export interface IDomain extends IClrEntity {
352
352
  received?: number;
353
353
  failed?: number;
354
354
  emailAddresses?: ICollection<IEmailAddress>;
355
+ mailboxes?: ICollection<IMailbox>;
355
356
  hostedDomain?: IHostedDomain;
356
357
  contactDomains?: ICollection<IContactDomain>;
357
358
  activities?: ICollection<IServerActivity>;
@@ -361,7 +362,7 @@ export const Domain: IModel<IDomain> = new Model<IDomain>(
361
362
  "Domain",
362
363
  ["domainID"],
363
364
  { name: "",received: 0,failed: 0 },
364
- {"name":"domains","keys":[{"name":"domainID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"received","type":"number","default":["received","0"]},{"name":"failed","type":"number","default":["failed","0"]}],"relations":[{"name":"emailAddresses","isCollection":true,"isInverse":true,"relatedName":"EmailAddress"},{"name":"hostedDomain","isCollection":false,"isInverse":true,"relatedName":"HostedDomain"},{"name":"contactDomains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"activities","isCollection":true,"isInverse":true,"relatedName":"ServerActivity"}]}
365
+ {"name":"domains","keys":[{"name":"domainID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"received","type":"number","default":["received","0"]},{"name":"failed","type":"number","default":["failed","0"]}],"relations":[{"name":"emailAddresses","isCollection":true,"isInverse":true,"relatedName":"EmailAddress"},{"name":"mailboxes","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"hostedDomain","isCollection":false,"isInverse":true,"relatedName":"HostedDomain"},{"name":"contactDomains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"activities","isCollection":true,"isInverse":true,"relatedName":"ServerActivity"}]}
365
366
  );
366
367
  modelEntitySchemas["Domain"] = Domain;
367
368
 
@@ -370,13 +371,11 @@ export interface IHostedDomain extends IClrEntity {
370
371
  enableReceive?: boolean;
371
372
  enableSend?: boolean;
372
373
  useRelay?: boolean;
373
- external?: boolean;
374
374
  aliasForName?: string | null;
375
375
  domainNameToCreate?: string;
376
376
  domain?: IDomain;
377
377
  aliasFor?: IHostedDomain;
378
378
  aliases?: ICollection<IHostedDomain>;
379
- mailboxes?: ICollection<IMailbox>;
380
379
  contacts?: ICollection<IContact>;
381
380
  domainUsers?: ICollection<IDomainUser>;
382
381
  relays?: ICollection<IDomainRelay>;
@@ -387,8 +386,8 @@ export interface IHostedDomain extends IClrEntity {
387
386
  export const HostedDomain: IModel<IHostedDomain> = new Model<IHostedDomain>(
388
387
  "HostedDomain",
389
388
  ["domainID"],
390
- { enableReceive: false,enableSend: false,useRelay: false,external: false },
391
- {"name":"hosted_domains","keys":[{"name":"domainID","type":"number"}],"properties":[{"name":"enableReceive","type":"boolean","default":["enableReceive","false"]},{"name":"enableSend","type":"boolean","default":["enableSend","false"]},{"name":"useRelay","type":"boolean","default":["useRelay","false"]},{"name":"external","type":"boolean","default":["external","false"]},{"name":"aliasForName","type":"string"}],"relations":[{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"Domain"},{"name":"aliasFor","fkMap":[{"fk":"aliasForName","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"aliases","isCollection":true,"isInverse":true,"relatedName":"HostedDomain"},{"name":"mailboxes","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"domainUsers","isCollection":true,"isInverse":true,"relatedName":"DomainUser"},{"name":"relays","isCollection":true,"isInverse":true,"relatedName":"DomainRelay"},{"name":"domainKeys","isCollection":true,"isInverse":true,"relatedName":"DomainKey"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"}]}
389
+ { enableReceive: false,enableSend: false,useRelay: false },
390
+ {"name":"hosted_domains","keys":[{"name":"domainID","type":"number"}],"properties":[{"name":"enableReceive","type":"boolean","default":["enableReceive","false"]},{"name":"enableSend","type":"boolean","default":["enableSend","false"]},{"name":"useRelay","type":"boolean","default":["useRelay","false"]},{"name":"aliasForName","type":"string"}],"relations":[{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"Domain"},{"name":"aliasFor","fkMap":[{"fk":"aliasForName","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"aliases","isCollection":true,"isInverse":true,"relatedName":"HostedDomain"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"domainUsers","isCollection":true,"isInverse":true,"relatedName":"DomainUser"},{"name":"relays","isCollection":true,"isInverse":true,"relatedName":"DomainRelay"},{"name":"domainKeys","isCollection":true,"isInverse":true,"relatedName":"DomainKey"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"}]}
392
391
  );
393
392
  modelEntitySchemas["HostedDomain"] = HostedDomain;
394
393
 
@@ -438,14 +437,14 @@ export interface IDomainKey extends IClrEntity {
438
437
  keyType?: string;
439
438
  readonly publicKey?: string;
440
439
  domainID?: number;
441
- domain?: IHostedDomain;
440
+ hostedDomain?: IHostedDomain;
442
441
  }
443
442
 
444
443
  export const DomainKey: IModel<IDomainKey> = new Model<IDomainKey>(
445
444
  "DomainKey",
446
445
  ["domainKeyID"],
447
446
  { name: "",keyType: "",publicKey: "" },
448
- {"name":"domain_keys","keys":[{"name":"domainKeyID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"keyType","type":"string","default":["keyType","\"\""]},{"name":"publicKey","type":"string","default":["publicKey","\"\""]},{"name":"domainID","type":"number"},{"name":"privateKey","type":"string","default":["privateKey","\"\""]}],"relations":[{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"}]}
447
+ {"name":"domain_keys","keys":[{"name":"domainKeyID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"keyType","type":"string","default":["keyType","\"\""]},{"name":"publicKey","type":"string","default":["publicKey","\"\""]},{"name":"domainID","type":"number"},{"name":"privateKey","type":"string","default":["privateKey","\"\""]}],"relations":[{"name":"hostedDomain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"}]}
449
448
  );
450
449
  modelEntitySchemas["DomainKey"] = DomainKey;
451
450
 
@@ -621,7 +620,7 @@ export interface IEmailTemplate extends IClrEntity {
621
620
  domainID?: number | null;
622
621
  mailboxID?: number | null;
623
622
  folderID?: number;
624
- domain?: IHostedDomain;
623
+ hostedDomain?: IHostedDomain;
625
624
  mailbox?: IMailbox;
626
625
  folder?: IAppFile;
627
626
  }
@@ -630,7 +629,7 @@ export const EmailTemplate: IModel<IEmailTemplate> = new Model<IEmailTemplate>(
630
629
  "EmailTemplate",
631
630
  ["templateID"],
632
631
  { },
633
- {"name":"email_templates","keys":[{"name":"templateID","type":"number","generated":"identity"}],"properties":[{"name":"domainID","type":"number"},{"name":"mailboxID","type":"number"},{"name":"folderID","type":"number"}],"relations":[{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"}]}
632
+ {"name":"email_templates","keys":[{"name":"templateID","type":"number","generated":"identity"}],"properties":[{"name":"domainID","type":"number"},{"name":"mailboxID","type":"number"},{"name":"folderID","type":"number"}],"relations":[{"name":"hostedDomain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"}]}
634
633
  );
635
634
  modelEntitySchemas["EmailTemplate"] = EmailTemplate;
636
635
 
@@ -655,11 +654,12 @@ export interface IMailbox extends IClrEntity {
655
654
  datePublished?: DateTime | null;
656
655
  dateEngaged?: DateTime | null;
657
656
  username?: string;
657
+ externalEmailAddress?: string;
658
658
  name?: string;
659
659
  notify?: boolean;
660
660
  deleteVerificationID?: string;
661
661
  emailAddress?: IEmailAddress;
662
- domain?: IHostedDomain;
662
+ domain?: IDomain;
663
663
  logo?: IAppFile;
664
664
  contacts?: ICollection<IContact>;
665
665
  templates?: ICollection<IEmailTemplate>;
@@ -678,7 +678,7 @@ export const Mailbox: IModel<IMailbox> = new Model<IMailbox>(
678
678
  "Mailbox",
679
679
  ["mailboxID"],
680
680
  { storage: 0,maxStorage: 0,indexAttachments: false,indexImageAttachments: false,openThreads: 0,totalThreads: 0,unread: 0,dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),isChannel: false,isPrivateChannel: false,requireApproval: false,subscriberCount: 0 },
681
- {"name":"mailboxes","keys":[{"name":"mailboxID","type":"number"}],"properties":[{"name":"domainID","type":"number"},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]},{"name":"indexAttachments","type":"boolean","default":["indexAttachments","false"]},{"name":"indexImageAttachments","type":"boolean","default":["indexImageAttachments","false"]},{"name":"firstID","type":"number","default":["firstID","0"]},{"name":"recentID","type":"number","default":["recentID","0"]},{"name":"openThreads","type":"number","default":["openThreads","0"]},{"name":"totalThreads","type":"number","default":["totalThreads","0"]},{"name":"unread","type":"number","default":["unread","0"]},{"name":"logoID","type":"number"},{"name":"description","type":"string","default":["description","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"isChannel","type":"boolean","default":["isChannel","false"]},{"name":"isPrivateChannel","type":"boolean","default":["isPrivateChannel","false"]},{"name":"requireApproval","type":"boolean","default":["requireApproval","false"]},{"name":"subscriberCount","type":"number","default":["subscriberCount","0"]},{"name":"datePublished","type":"DateTime","default":["datePublished","new DefaultFactory(() => new DateTime())"]},{"name":"dateEngaged","type":"DateTime","default":["dateEngaged","new DefaultFactory(() => new DateTime())"]},{"name":"parentID","type":"number","default":["parentID","0"]}],"relations":[{"name":"emailAddress","fkMap":[{"fk":"mailboxID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"logo","fkMap":[{"fk":"logoID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"MailboxEmail"},{"name":"mailboxContacts","isCollection":true,"isInverse":true,"relatedName":"MailboxContact"},{"name":"threadEmails","isCollection":true,"isInverse":true,"relatedName":"MailboxContactEmail"},{"name":"syncTargets","isCollection":true,"isInverse":true,"relatedName":"MailboxSyncTarget"},{"name":"channelConfig","isCollection":false,"isInverse":true,"relatedName":"ChannelConfig"},{"name":"subscriberActivities","isCollection":true,"isInverse":true,"relatedName":"SubscriberActivity"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"websiteChannels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"}]}
681
+ {"name":"mailboxes","keys":[{"name":"mailboxID","type":"number"}],"properties":[{"name":"domainID","type":"number"},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]},{"name":"indexAttachments","type":"boolean","default":["indexAttachments","false"]},{"name":"indexImageAttachments","type":"boolean","default":["indexImageAttachments","false"]},{"name":"firstID","type":"number","default":["firstID","0"]},{"name":"recentID","type":"number","default":["recentID","0"]},{"name":"openThreads","type":"number","default":["openThreads","0"]},{"name":"totalThreads","type":"number","default":["totalThreads","0"]},{"name":"unread","type":"number","default":["unread","0"]},{"name":"logoID","type":"number"},{"name":"description","type":"string","default":["description","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"isChannel","type":"boolean","default":["isChannel","false"]},{"name":"isPrivateChannel","type":"boolean","default":["isPrivateChannel","false"]},{"name":"requireApproval","type":"boolean","default":["requireApproval","false"]},{"name":"subscriberCount","type":"number","default":["subscriberCount","0"]},{"name":"datePublished","type":"DateTime","default":["datePublished","new DefaultFactory(() => new DateTime())"]},{"name":"dateEngaged","type":"DateTime","default":["dateEngaged","new DefaultFactory(() => new DateTime())"]},{"name":"parentID","type":"number","default":["parentID","0"]}],"relations":[{"name":"emailAddress","fkMap":[{"fk":"mailboxID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"Domain"},{"name":"logo","fkMap":[{"fk":"logoID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"MailboxEmail"},{"name":"mailboxContacts","isCollection":true,"isInverse":true,"relatedName":"MailboxContact"},{"name":"threadEmails","isCollection":true,"isInverse":true,"relatedName":"MailboxContactEmail"},{"name":"syncTargets","isCollection":true,"isInverse":true,"relatedName":"MailboxSyncTarget"},{"name":"channelConfig","isCollection":false,"isInverse":true,"relatedName":"ChannelConfig"},{"name":"subscriberActivities","isCollection":true,"isInverse":true,"relatedName":"SubscriberActivity"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"websiteChannels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"}]}
682
682
  );
683
683
  modelEntitySchemas["Mailbox"] = Mailbox;
684
684
 
@@ -925,6 +925,7 @@ export interface IStore extends IClrEntity {
925
925
  insights?: ICollection<IStoreInsight>;
926
926
  ledgers?: ICollection<IStoreLedger>;
927
927
  journals?: ICollection<IStoreJournal>;
928
+ tags?: ICollection<IStoreTag>;
928
929
  storeWebsites?: ICollection<IWebSiteStore>;
929
930
  }
930
931
 
@@ -932,7 +933,7 @@ export const Store: IModel<IStore> = new Model<IStore>(
932
933
  "Store",
933
934
  ["storeID"],
934
935
  { name: "" },
935
- {"name":"stores","keys":[{"name":"storeID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"sellerID","type":"number"},{"name":"folderID","type":"number"}],"relations":[{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"storeUsers","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"configs","isCollection":true,"isInverse":true,"relatedName":"StoreConfig"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"itemFolders","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"journals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"storeWebsites","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}]}
936
+ {"name":"stores","keys":[{"name":"storeID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"sellerID","type":"number"},{"name":"folderID","type":"number"}],"relations":[{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"storeUsers","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"configs","isCollection":true,"isInverse":true,"relatedName":"StoreConfig"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"itemFolders","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"journals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"StoreTag"},{"name":"storeWebsites","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}]}
936
937
  );
937
938
  modelEntitySchemas["Store"] = Store;
938
939
 
@@ -1024,16 +1025,33 @@ export interface IStoreItemFolder extends IClrEntity {
1024
1025
  parent?: IStoreItemFolder;
1025
1026
  children?: ICollection<IStoreItemFolder>;
1026
1027
  items?: ICollection<IStoreItem>;
1028
+ tags?: ICollection<IStoreItemFolderTag>;
1027
1029
  }
1028
1030
 
1029
1031
  export const StoreItemFolder: IModel<IStoreItemFolder> = new Model<IStoreItemFolder>(
1030
1032
  "StoreItemFolder",
1031
1033
  ["itemFolderID"],
1032
1034
  { name: "",path: "" },
1033
- {"name":"store_item_folders","keys":[{"name":"itemFolderID","type":"number","generated":"identity"}],"properties":[{"name":"storeID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"path","type":"string","default":["path","\"\""]},{"name":"parentID","type":"number"}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"StoreItem"}]}
1035
+ {"name":"store_item_folders","keys":[{"name":"itemFolderID","type":"number","generated":"identity"}],"properties":[{"name":"storeID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"path","type":"string","default":["path","\"\""]},{"name":"parentID","type":"number"}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolderTag"}]}
1034
1036
  );
1035
1037
  modelEntitySchemas["StoreItemFolder"] = StoreItemFolder;
1036
1038
 
1039
+ export interface IStoreItemFolderTag extends IClrEntity {
1040
+ itemFolderID?: number;
1041
+ tagID?: number;
1042
+ count?: number;
1043
+ itemFolder?: IStoreItemFolder;
1044
+ tag?: ITag;
1045
+ }
1046
+
1047
+ export const StoreItemFolderTag: IModel<IStoreItemFolderTag> = new Model<IStoreItemFolderTag>(
1048
+ "StoreItemFolderTag",
1049
+ ["itemFolderID","tagID"],
1050
+ { count: 0 },
1051
+ {"name":"store_item_folder_tags","keys":[{"name":"itemFolderID","type":"number"},{"name":"tagID","type":"number"}],"properties":[{"name":"count","type":"number","default":["count","0"]}],"relations":[{"name":"itemFolder","fkMap":[{"fk":"itemFolderID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"tag","fkMap":[{"fk":"tagID","relatedKey":"tagID"}],"relatedName":"Tag"}]}
1052
+ );
1053
+ modelEntitySchemas["StoreItemFolderTag"] = StoreItemFolderTag;
1054
+
1037
1055
  export interface IStoreItemPrice extends IClrEntity {
1038
1056
  readonly priceID?: number;
1039
1057
  storeItemID?: number;
@@ -1236,6 +1254,22 @@ export const StoreItemTax: IModel<IStoreItemTax> = new Model<IStoreItemTax>(
1236
1254
  );
1237
1255
  modelEntitySchemas["StoreItemTax"] = StoreItemTax;
1238
1256
 
1257
+ export interface IStoreTag extends IClrEntity {
1258
+ storeID?: number;
1259
+ tagID?: number;
1260
+ count?: number;
1261
+ store?: IStore;
1262
+ tag?: ITag;
1263
+ }
1264
+
1265
+ export const StoreTag: IModel<IStoreTag> = new Model<IStoreTag>(
1266
+ "StoreTag",
1267
+ ["storeID","tagID"],
1268
+ { count: 0 },
1269
+ {"name":"store_tags","keys":[{"name":"storeID","type":"number"},{"name":"tagID","type":"number"}],"properties":[{"name":"count","type":"number","default":["count","0"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"tag","fkMap":[{"fk":"tagID","relatedKey":"tagID"}],"relatedName":"Tag"}]}
1270
+ );
1271
+ modelEntitySchemas["StoreTag"] = StoreTag;
1272
+
1239
1273
  export interface IStoreItemTag extends IClrEntity {
1240
1274
  storeItemID?: number;
1241
1275
  tagID?: number;
@@ -1263,11 +1297,17 @@ export interface IUser extends IClrEntity {
1263
1297
  dateUpdated?: DateTime;
1264
1298
  readonly storage?: number;
1265
1299
  maxStorage?: number;
1300
+ maxWebSites?: number;
1301
+ maxExternalInboxes?: number;
1302
+ maxChildUsers?: number;
1303
+ parentID?: number | null;
1266
1304
  /** Save this to change password */
1267
1305
  changePassword?: { oldPassword?: string;newPassword?: string;forceChangePasswordOnLogin?: boolean };
1268
1306
  createFolder?: boolean;
1269
1307
  createWebSite?: boolean;
1270
1308
  autoEnableMF?: boolean;
1309
+ parent?: IUser;
1310
+ children?: ICollection<IUser>;
1271
1311
  createdFiles?: ICollection<IAppFile>;
1272
1312
  sentEmails?: ICollection<IEmail>;
1273
1313
  accessTokens?: ICollection<IAccessToken>;
@@ -1290,8 +1330,8 @@ export const UserStatusArray = [{"label":"active","value":"active"},{"label":"bl
1290
1330
  export const User: IModel<IUser> = new Model<IUser>(
1291
1331
  "User",
1292
1332
  ["userID"],
1293
- { userName: "",displayName: "",status: "active",isExternal: false,multiFactor: false,dateUpdated: new DefaultFactory(() => new DateTime()),storage: 0,maxStorage: 0 },
1294
- {"name":"users","keys":[{"name":"userID","type":"number","generated":"identity"}],"properties":[{"name":"userName","type":"string","default":["userName","\"\""]},{"name":"displayName","type":"string","default":["displayName","\"\""]},{"name":"passwordHash","type":"string","default":["passwordHash","\"\""]},{"name":"passwordSalt","type":"string","default":["passwordSalt","\"\""]},{"name":"status","type":"string","default":["status","\"active\""]},{"name":"isExternal","type":"boolean","default":["isExternal","false"]},{"name":"multiFactor","type":"boolean","default":["multiFactor","false"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]}],"relations":[{"name":"createdFiles","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"sentEmails","isCollection":true,"isInverse":true,"relatedName":"Email"},{"name":"accessTokens","isCollection":true,"isInverse":true,"relatedName":"AccessToken"},{"name":"versions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"sessions","isCollection":true,"isInverse":true,"relatedName":"LoginSession"},{"name":"fileAccessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"domainUsers","isCollection":true,"isInverse":true,"relatedName":"DomainUser"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"pins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userPushSubscriptions","isCollection":true,"isInverse":true,"relatedName":"UserPushSubscription"},{"name":"roles","isCollection":true,"isInverse":true,"relatedName":"UserRole"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"authFactors","isCollection":true,"isInverse":true,"relatedName":"UserAuthFactor"},{"name":"publishedWebSiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}]}
1333
+ { userName: "",displayName: "",status: "active",isExternal: false,multiFactor: false,dateUpdated: new DefaultFactory(() => new DateTime()),storage: 0,maxStorage: 0,maxWebSites: 0,maxExternalInboxes: 0,maxChildUsers: 0 },
1334
+ {"name":"users","keys":[{"name":"userID","type":"number","generated":"identity"}],"properties":[{"name":"userName","type":"string","default":["userName","\"\""]},{"name":"displayName","type":"string","default":["displayName","\"\""]},{"name":"passwordHash","type":"string","default":["passwordHash","\"\""]},{"name":"passwordSalt","type":"string","default":["passwordSalt","\"\""]},{"name":"status","type":"string","default":["status","\"active\""]},{"name":"isExternal","type":"boolean","default":["isExternal","false"]},{"name":"multiFactor","type":"boolean","default":["multiFactor","false"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]},{"name":"maxWebSites","type":"number","default":["maxWebSites","0"]},{"name":"maxExternalInboxes","type":"number","default":["maxExternalInboxes","0"]},{"name":"maxChildUsers","type":"number","default":["maxChildUsers","0"]},{"name":"parentID","type":"number"}],"relations":[{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"userID"}],"relatedName":"User"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"User"},{"name":"createdFiles","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"sentEmails","isCollection":true,"isInverse":true,"relatedName":"Email"},{"name":"accessTokens","isCollection":true,"isInverse":true,"relatedName":"AccessToken"},{"name":"versions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"sessions","isCollection":true,"isInverse":true,"relatedName":"LoginSession"},{"name":"fileAccessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"domainUsers","isCollection":true,"isInverse":true,"relatedName":"DomainUser"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"pins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userPushSubscriptions","isCollection":true,"isInverse":true,"relatedName":"UserPushSubscription"},{"name":"roles","isCollection":true,"isInverse":true,"relatedName":"UserRole"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"authFactors","isCollection":true,"isInverse":true,"relatedName":"UserAuthFactor"},{"name":"publishedWebSiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}]}
1295
1335
  );
1296
1336
  modelEntitySchemas["User"] = User;
1297
1337
 
@@ -1546,13 +1586,13 @@ modelEntitySchemas["IncomingSmsSource"] = IncomingSmsSource;
1546
1586
  export interface IVerificationToken extends IClrEntity {
1547
1587
  readonly verificationID?: number;
1548
1588
  externalID?: string | null;
1549
- externalConfig?: string | null;
1550
1589
  dateCreated?: DateTime;
1551
1590
  expiry?: DateTime;
1552
1591
  verified?: boolean;
1553
1592
  code?: string;
1554
1593
  accessCode?: string;
1555
1594
  ipAddress?: string | null;
1595
+ externalConfig?: string | null;
1556
1596
  smsConfig?: Object;
1557
1597
  loginSessions?: ICollection<ILoginSession>;
1558
1598
  authFactors?: ICollection<IUserAuthFactor>;
@@ -1563,7 +1603,7 @@ export const VerificationToken: IModel<IVerificationToken> = new Model<IVerifica
1563
1603
  "VerificationToken",
1564
1604
  ["verificationID"],
1565
1605
  { dateCreated: new DefaultFactory(() => new DateTime()),expiry: new DefaultFactory(() => new DateTime()),verified: false,code: "",accessCode: "" },
1566
- {"name":"verification_tokens","keys":[{"name":"verificationID","type":"number","generated":"identity"}],"properties":[{"name":"externalID","type":"string","default":["externalID","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"expiry","type":"DateTime","default":["expiry","new DefaultFactory(() => new DateTime())"]},{"name":"verified","type":"boolean","default":["verified","false"]},{"name":"code","type":"string","default":["code","\"\""]},{"name":"accessCode","type":"string","default":["accessCode","\"\""]},{"name":"ipAddress","type":"string","default":["ipAddress","\"\""]}],"relations":[{"name":"loginSessions","isCollection":true,"isInverse":true,"relatedName":"LoginSession"},{"name":"authFactors","isCollection":true,"isInverse":true,"relatedName":"UserAuthFactor"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"VerificationTokenAddress"}]}
1606
+ {"name":"verification_tokens","keys":[{"name":"verificationID","type":"number","generated":"identity"}],"properties":[{"name":"externalID","type":"string","default":["externalID","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"expiry","type":"DateTime","default":["expiry","new DefaultFactory(() => new DateTime())"]},{"name":"verified","type":"boolean","default":["verified","false"]},{"name":"code","type":"string","default":["code","\"\""]},{"name":"accessCode","type":"string","default":["accessCode","\"\""]},{"name":"ipAddress","type":"string","default":["ipAddress","\"\""]},{"name":"externalConfig","type":"string","default":["externalConfig","\"\""]}],"relations":[{"name":"loginSessions","isCollection":true,"isInverse":true,"relatedName":"LoginSession"},{"name":"authFactors","isCollection":true,"isInverse":true,"relatedName":"UserAuthFactor"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"VerificationTokenAddress"}]}
1567
1607
  );
1568
1608
  modelEntitySchemas["VerificationToken"] = VerificationToken;
1569
1609
 
@@ -1584,6 +1624,7 @@ modelEntitySchemas["VerificationTokenAddress"] = VerificationTokenAddress;
1584
1624
  export interface ITag extends IClrEntity {
1585
1625
  readonly tagID?: number;
1586
1626
  name?: string;
1627
+ label?: string;
1587
1628
  readonly lowerCaseName?: string;
1588
1629
  path?: string | null;
1589
1630
  isSystemTag?: boolean;
@@ -1594,116 +1635,19 @@ export interface ITag extends IClrEntity {
1594
1635
  fileTags?: ICollection<IAppFileTag>;
1595
1636
  emailTags?: ICollection<IEmailTag>;
1596
1637
  mailboxContactTags?: ICollection<IMailboxContactTag>;
1638
+ storeItemFolderTags?: ICollection<IStoreItemFolderTag>;
1639
+ storeTags?: ICollection<IStoreTag>;
1597
1640
  storeItemTags?: ICollection<IStoreItemTag>;
1598
1641
  }
1599
1642
 
1600
1643
  export const Tag: IModel<ITag> = new Model<ITag>(
1601
1644
  "Tag",
1602
1645
  ["tagID"],
1603
- { name: "",isSystemTag: false },
1604
- {"name":"tags","keys":[{"name":"tagID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"lowerCaseName","type":"string","generated":"computed"},{"name":"path","type":"string","default":["path","\"\""]},{"name":"isSystemTag","type":"boolean","default":["isSystemTag","false"]},{"name":"contentTypes","type":"string","default":["contentTypes","\"\""]},{"name":"parentID","type":"number"}],"relations":[{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"tagID"}],"relatedName":"Tag"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"Tag"},{"name":"fileTags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"emailTags","isCollection":true,"isInverse":true,"relatedName":"EmailTag"},{"name":"mailboxContactTags","isCollection":true,"isInverse":true,"relatedName":"MailboxContactTag"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}]}
1646
+ { name: "",label: "",isSystemTag: false },
1647
+ {"name":"tags","keys":[{"name":"tagID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"label","type":"string","default":["label","\"\""]},{"name":"lowerCaseName","type":"string","generated":"computed"},{"name":"path","type":"string","default":["path","\"\""]},{"name":"isSystemTag","type":"boolean","default":["isSystemTag","false"]},{"name":"contentTypes","type":"string","default":["contentTypes","\"\""]},{"name":"parentID","type":"number"}],"relations":[{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"tagID"}],"relatedName":"Tag"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"Tag"},{"name":"fileTags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"emailTags","isCollection":true,"isInverse":true,"relatedName":"EmailTag"},{"name":"mailboxContactTags","isCollection":true,"isInverse":true,"relatedName":"MailboxContactTag"},{"name":"storeItemFolderTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolderTag"},{"name":"storeTags","isCollection":true,"isInverse":true,"relatedName":"StoreTag"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}]}
1605
1648
  );
1606
1649
  modelEntitySchemas["Tag"] = Tag;
1607
1650
 
1608
- export interface IVirtualServer extends IClrEntity {
1609
- readonly serverID?: number;
1610
- serverName?: string;
1611
- ownerEmailAddress?: string | null;
1612
- ownerPhoneNumber?: string | null;
1613
- active?: boolean;
1614
- bucketName?: string | null;
1615
- database?: string | null;
1616
- host?: string;
1617
- forwardHost?: string | null;
1618
- forwardPublicKey?: string | null;
1619
- environmentVariables?: string | null;
1620
- maxStorageGB?: number;
1621
- dnsZones?: ICollection<IDnsZone>;
1622
- }
1623
-
1624
- export const VirtualServer: IModel<IVirtualServer> = new Model<IVirtualServer>(
1625
- "VirtualServer",
1626
- ["serverID"],
1627
- { serverName: "",active: false,host: "",maxStorageGB: 0 },
1628
- {"name":"virtual_servers","keys":[{"name":"serverID","type":"number","generated":"identity"}],"properties":[{"name":"serverName","type":"string","default":["serverName","\"\""]},{"name":"ownerEmailAddress","type":"string","default":["ownerEmailAddress","\"\""]},{"name":"ownerPhoneNumber","type":"string","default":["ownerPhoneNumber","\"\""]},{"name":"active","type":"boolean","default":["active","false"]},{"name":"bucketName","type":"string","default":["bucketName","\"\""]},{"name":"database","type":"string","default":["database","\"\""]},{"name":"host","type":"string","default":["host","\"\""]},{"name":"forwardHost","type":"string","default":["forwardHost","\"\""]},{"name":"forwardPrivateKey","type":"string","default":["forwardPrivateKey","\"\""]},{"name":"forwardPublicKey","type":"string","default":["forwardPublicKey","\"\""]},{"name":"environmentVariables","type":"string","default":["environmentVariables","\"\""]},{"name":"maxStorageGB","type":"number","default":["maxStorageGB","0"]}],"relations":[{"name":"dnsZones","isCollection":true,"isInverse":true,"relatedName":"DnsZone"}]}
1629
- );
1630
- modelEntitySchemas["VirtualServer"] = VirtualServer;
1631
-
1632
- export interface IDnsZone extends IClrEntity {
1633
- readonly zoneID?: number;
1634
- serverID?: number;
1635
- zone?: string;
1636
- keySigningKeyID?: number;
1637
- zoneSigningKeyID?: number;
1638
- dateCreated?: DateTime;
1639
- dateUpdated?: DateTime;
1640
- signed?: string | null;
1641
- unsigned?: string | null;
1642
- virtualServer?: IVirtualServer;
1643
- ksk?: IDnsSigningKey;
1644
- zsk?: IDnsSigningKey;
1645
- records?: ICollection<IDnsZoneRecord>;
1646
- }
1647
-
1648
- export const DnsZone: IModel<IDnsZone> = new Model<IDnsZone>(
1649
- "DnsZone",
1650
- ["zoneID"],
1651
- { zone: "",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()) },
1652
- {"name":"dns_zones","keys":[{"name":"zoneID","type":"number","generated":"identity"}],"properties":[{"name":"serverID","type":"number"},{"name":"zone","type":"string","default":["zone","\"\""]},{"name":"zoneLowerCase","type":"string","generated":"computed"},{"name":"keySigningKeyID","type":"number"},{"name":"zoneSigningKeyID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"signed","type":"string","default":["signed","\"\""]},{"name":"unsigned","type":"string","default":["unsigned","\"\""]}],"relations":[{"name":"virtualServer","fkMap":[{"fk":"serverID","relatedKey":"serverID"}],"relatedName":"VirtualServer"},{"name":"ksk","fkMap":[{"fk":"keySigningKeyID","relatedKey":"keyID"}],"relatedName":"DnsSigningKey"},{"name":"zsk","fkMap":[{"fk":"zoneSigningKeyID","relatedKey":"keyID"}],"relatedName":"DnsSigningKey"},{"name":"records","isCollection":true,"isInverse":true,"relatedName":"DnsZoneRecord"}]}
1653
- );
1654
- modelEntitySchemas["DnsZone"] = DnsZone;
1655
-
1656
- export interface IDnsZoneRecord extends IClrEntity {
1657
- readonly recordID?: number;
1658
- zoneID?: number;
1659
- disabled?: boolean;
1660
- name?: string;
1661
- type?: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "PTR" | "SRV" | "CAA" | "NS" | "SOA";
1662
- isAlias?: boolean;
1663
- value?: string;
1664
- ttl?: number;
1665
- dateCreated?: DateTime;
1666
- dateUpdated?: DateTime;
1667
- notes?: string | null;
1668
- signature?: string | null;
1669
- expiryDate?: DateTime | null;
1670
- readonly fqdn?: string | null;
1671
- hosted?: boolean;
1672
- zone?: IDnsZone;
1673
- }
1674
-
1675
- export const DnsZoneRecordTypeArray = [{"label":"A","value":"A"},{"label":"AAAA","value":"AAAA"},{"label":"CNAME","value":"CNAME"},{"label":"MX","value":"MX"},{"label":"TXT","value":"TXT"},{"label":"PTR","value":"PTR"},{"label":"SRV","value":"SRV"},{"label":"CAA","value":"CAA"},{"label":"NS","value":"NS"},{"label":"SOA","value":"SOA"}];
1676
-
1677
- export const DnsZoneRecord: IModel<IDnsZoneRecord> = new Model<IDnsZoneRecord>(
1678
- "DnsZoneRecord",
1679
- ["recordID"],
1680
- { disabled: false,name: "",type: "A",isAlias: false,value: "",ttl: 0,dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),hosted: false },
1681
- {"name":"dns_zone_records","keys":[{"name":"recordID","type":"number","generated":"identity"}],"properties":[{"name":"zoneID","type":"number"},{"name":"disabled","type":"boolean","default":["disabled","false"]},{"name":"name","type":"string","default":["name","\"\""]},{"name":"type","type":"Object","default":["type","\"A\""]},{"name":"isAlias","type":"boolean","default":["isAlias","false"]},{"name":"value","type":"string","default":["value","\"\""]},{"name":"ttl","type":"number","default":["ttl","0"]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"notes","type":"string","default":["notes","\"\""]},{"name":"signature","type":"string","default":["signature","\"\""]},{"name":"expiryDate","type":"DateTime","default":["expiryDate","new DefaultFactory(() => new DateTime())"]},{"name":"fqdn","type":"string","default":["fqdn","\"\""]},{"name":"hosted","type":"boolean","default":["hosted","false"]}],"relations":[{"name":"zone","fkMap":[{"fk":"zoneID","relatedKey":"zoneID"}],"relatedName":"DnsZone"}]}
1682
- );
1683
- modelEntitySchemas["DnsZoneRecord"] = DnsZoneRecord;
1684
-
1685
- export interface IDnsSigningKey extends IClrEntity {
1686
- readonly keyID?: number;
1687
- publicKey?: string;
1688
- digestAlgorithm?: number;
1689
- signingAlgorithm?: number;
1690
- digest?: string;
1691
- flags?: number;
1692
- dateCreated?: DateTime;
1693
- expiryDate?: DateTime;
1694
- fileName?: string;
1695
- kskZones?: ICollection<IDnsZone>;
1696
- zskZones?: ICollection<IDnsZone>;
1697
- }
1698
-
1699
- export const DnsSigningKey: IModel<IDnsSigningKey> = new Model<IDnsSigningKey>(
1700
- "DnsSigningKey",
1701
- ["keyID"],
1702
- { publicKey: "",digestAlgorithm: 0,signingAlgorithm: 0,digest: "",flags: 0,dateCreated: new DefaultFactory(() => new DateTime()),expiryDate: new DefaultFactory(() => new DateTime()),fileName: "" },
1703
- {"name":"dns_signing_keys","keys":[{"name":"keyID","type":"number","generated":"identity"}],"properties":[{"name":"publicKey","type":"string","default":["publicKey","\"\""]},{"name":"privateKey","type":"string","default":["privateKey","\"\""]},{"name":"digestAlgorithm","type":"number","default":["digestAlgorithm","0"]},{"name":"signingAlgorithm","type":"number","default":["signingAlgorithm","0"]},{"name":"digest","type":"string","default":["digest","\"\""]},{"name":"flags","type":"number","default":["flags","0"]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"expiryDate","type":"DateTime","default":["expiryDate","new DefaultFactory(() => new DateTime())"]},{"name":"fileName","type":"string","default":["fileName","\"\""]}],"relations":[{"name":"kskZones","isCollection":true,"isInverse":true,"relatedName":"DnsZone"},{"name":"zskZones","isCollection":true,"isInverse":true,"relatedName":"DnsZone"}]}
1704
- );
1705
- modelEntitySchemas["DnsSigningKey"] = DnsSigningKey;
1706
-
1707
1651
  const fixRelatedSchemas = (schema) => {
1708
1652
  for (const key in schema) {
1709
1653
  if (Object.prototype.hasOwnProperty.call(schema, key)) {
@@ -66,8 +66,8 @@ const css = styled.css `
66
66
  & > .preview {
67
67
  grid-row: 1;
68
68
  grid-column: 2;
69
- height: 60vh;
70
- min-width: 50vw;
69
+ height: 60%;
70
+ min-width: 50%;
71
71
  & img {
72
72
  -webkit-user-drag: none;
73
73
  }
@@ -76,7 +76,7 @@ const css = styled.css `
76
76
  }
77
77
 
78
78
  & img {
79
- max-width: 90vw;
79
+ max-width: 90%;
80
80
  }
81
81
  `.installLocal();
82
82