@serve.zone/dcrouter 13.4.2 → 13.7.0

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 (148) hide show
  1. package/dist_serve/bundle.js +1779 -1375
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/classes.dcrouter.d.ts +2 -5
  4. package/dist_ts/classes.dcrouter.js +41 -10
  5. package/dist_ts/db/documents/classes.dns-provider.doc.d.ts +22 -0
  6. package/dist_ts/db/documents/classes.dns-provider.doc.js +134 -0
  7. package/dist_ts/db/documents/classes.dns-record.doc.d.ts +21 -0
  8. package/dist_ts/db/documents/classes.dns-record.doc.js +143 -0
  9. package/dist_ts/db/documents/classes.domain.doc.d.ts +22 -0
  10. package/dist_ts/db/documents/classes.domain.doc.js +146 -0
  11. package/dist_ts/db/documents/index.d.ts +3 -0
  12. package/dist_ts/db/documents/index.js +5 -1
  13. package/dist_ts/dns/index.d.ts +2 -0
  14. package/dist_ts/dns/index.js +3 -0
  15. package/dist_ts/dns/manager.dns.d.ts +227 -0
  16. package/dist_ts/dns/manager.dns.js +747 -0
  17. package/dist_ts/dns/providers/cloudflare.provider.d.ts +21 -0
  18. package/dist_ts/dns/providers/cloudflare.provider.js +106 -0
  19. package/dist_ts/dns/providers/factory.d.ts +23 -0
  20. package/dist_ts/dns/providers/factory.js +38 -0
  21. package/dist_ts/dns/providers/index.d.ts +3 -0
  22. package/dist_ts/dns/providers/index.js +4 -0
  23. package/dist_ts/dns/providers/interfaces.d.ts +54 -0
  24. package/dist_ts/dns/providers/interfaces.js +2 -0
  25. package/dist_ts/opsserver/classes.opsserver.d.ts +4 -0
  26. package/dist_ts/opsserver/classes.opsserver.js +9 -1
  27. package/dist_ts/opsserver/handlers/admin.handler.d.ts +9 -0
  28. package/dist_ts/opsserver/handlers/admin.handler.js +12 -1
  29. package/dist_ts/opsserver/handlers/config.handler.js +11 -2
  30. package/dist_ts/opsserver/handlers/dns-provider.handler.d.ts +16 -0
  31. package/dist_ts/opsserver/handlers/dns-provider.handler.js +119 -0
  32. package/dist_ts/opsserver/handlers/dns-record.handler.d.ts +13 -0
  33. package/dist_ts/opsserver/handlers/dns-record.handler.js +98 -0
  34. package/dist_ts/opsserver/handlers/domain.handler.d.ts +13 -0
  35. package/dist_ts/opsserver/handlers/domain.handler.js +124 -0
  36. package/dist_ts/opsserver/handlers/index.d.ts +4 -0
  37. package/dist_ts/opsserver/handlers/index.js +5 -1
  38. package/dist_ts/opsserver/handlers/users.handler.d.ts +12 -0
  39. package/dist_ts/opsserver/handlers/users.handler.js +24 -0
  40. package/dist_ts_interfaces/data/dns-provider.d.ts +112 -0
  41. package/dist_ts_interfaces/data/dns-provider.js +27 -0
  42. package/dist_ts_interfaces/data/dns-record.d.ts +40 -0
  43. package/dist_ts_interfaces/data/dns-record.js +2 -0
  44. package/dist_ts_interfaces/data/domain.d.ts +34 -0
  45. package/dist_ts_interfaces/data/domain.js +2 -0
  46. package/dist_ts_interfaces/data/index.d.ts +3 -0
  47. package/dist_ts_interfaces/data/index.js +4 -1
  48. package/dist_ts_interfaces/data/route-management.d.ts +1 -1
  49. package/dist_ts_interfaces/requests/dns-providers.d.ts +117 -0
  50. package/dist_ts_interfaces/requests/dns-providers.js +2 -0
  51. package/dist_ts_interfaces/requests/dns-records.d.ts +89 -0
  52. package/dist_ts_interfaces/requests/dns-records.js +2 -0
  53. package/dist_ts_interfaces/requests/domains.d.ts +118 -0
  54. package/dist_ts_interfaces/requests/domains.js +2 -0
  55. package/dist_ts_interfaces/requests/index.d.ts +4 -0
  56. package/dist_ts_interfaces/requests/index.js +5 -1
  57. package/dist_ts_interfaces/requests/users.d.ts +19 -0
  58. package/dist_ts_interfaces/requests/users.js +3 -0
  59. package/dist_ts_web/00_commitinfo_data.js +1 -1
  60. package/dist_ts_web/appstate.d.ts +85 -0
  61. package/dist_ts_web/appstate.js +339 -6
  62. package/dist_ts_web/elements/access/index.d.ts +1 -0
  63. package/dist_ts_web/elements/access/index.js +2 -1
  64. package/dist_ts_web/elements/access/ops-view-apitokens.js +1 -1
  65. package/dist_ts_web/elements/access/ops-view-users.d.ts +11 -0
  66. package/dist_ts_web/elements/access/ops-view-users.js +190 -0
  67. package/dist_ts_web/elements/domains/dns-provider-form.d.ts +58 -0
  68. package/dist_ts_web/elements/domains/dns-provider-form.js +268 -0
  69. package/dist_ts_web/elements/domains/index.d.ts +5 -0
  70. package/dist_ts_web/elements/domains/index.js +6 -0
  71. package/dist_ts_web/elements/{ops-view-certificates.d.ts → domains/ops-view-certificates.d.ts} +1 -1
  72. package/dist_ts_web/elements/{ops-view-certificates.js → domains/ops-view-certificates.js} +5 -5
  73. package/dist_ts_web/elements/domains/ops-view-dns.d.ts +17 -0
  74. package/dist_ts_web/elements/domains/ops-view-dns.js +304 -0
  75. package/dist_ts_web/elements/domains/ops-view-domains.d.ts +18 -0
  76. package/dist_ts_web/elements/domains/ops-view-domains.js +361 -0
  77. package/dist_ts_web/elements/domains/ops-view-providers.d.ts +21 -0
  78. package/dist_ts_web/elements/domains/ops-view-providers.js +316 -0
  79. package/dist_ts_web/elements/email/ops-view-email-security.js +1 -1
  80. package/dist_ts_web/elements/email/ops-view-emails.js +1 -1
  81. package/dist_ts_web/elements/index.d.ts +1 -1
  82. package/dist_ts_web/elements/index.js +2 -2
  83. package/dist_ts_web/elements/network/ops-view-network-activity.js +6 -2
  84. package/dist_ts_web/elements/network/ops-view-networktargets.js +1 -1
  85. package/dist_ts_web/elements/network/ops-view-remoteingress.js +1 -1
  86. package/dist_ts_web/elements/network/ops-view-routes.js +1 -1
  87. package/dist_ts_web/elements/network/ops-view-sourceprofiles.js +1 -1
  88. package/dist_ts_web/elements/network/ops-view-targetprofiles.js +1 -1
  89. package/dist_ts_web/elements/network/ops-view-vpn.js +1 -1
  90. package/dist_ts_web/elements/ops-dashboard.js +16 -5
  91. package/dist_ts_web/elements/ops-view-logs.js +1 -1
  92. package/dist_ts_web/elements/overview/ops-view-config.js +3 -3
  93. package/dist_ts_web/elements/overview/ops-view-overview.js +1 -1
  94. package/dist_ts_web/elements/security/ops-view-security-authentication.js +1 -1
  95. package/dist_ts_web/elements/security/ops-view-security-blocked.js +1 -1
  96. package/dist_ts_web/elements/security/ops-view-security-overview.js +1 -1
  97. package/dist_ts_web/router.d.ts +1 -1
  98. package/dist_ts_web/router.js +5 -3
  99. package/package.json +2 -2
  100. package/ts/00_commitinfo_data.ts +1 -1
  101. package/ts/classes.dcrouter.ts +46 -17
  102. package/ts/db/documents/classes.dns-provider.doc.ts +63 -0
  103. package/ts/db/documents/classes.dns-record.doc.ts +62 -0
  104. package/ts/db/documents/classes.domain.doc.ts +66 -0
  105. package/ts/db/documents/index.ts +5 -0
  106. package/ts/dns/index.ts +2 -0
  107. package/ts/dns/manager.dns.ts +869 -0
  108. package/ts/dns/providers/cloudflare.provider.ts +131 -0
  109. package/ts/dns/providers/factory.ts +48 -0
  110. package/ts/dns/providers/index.ts +3 -0
  111. package/ts/dns/providers/interfaces.ts +67 -0
  112. package/ts/opsserver/classes.opsserver.ts +8 -0
  113. package/ts/opsserver/handlers/admin.handler.ts +12 -0
  114. package/ts/opsserver/handlers/config.handler.ts +10 -1
  115. package/ts/opsserver/handlers/dns-provider.handler.ts +159 -0
  116. package/ts/opsserver/handlers/dns-record.handler.ts +127 -0
  117. package/ts/opsserver/handlers/domain.handler.ts +161 -0
  118. package/ts/opsserver/handlers/index.ts +5 -1
  119. package/ts/opsserver/handlers/users.handler.ts +30 -0
  120. package/ts_web/00_commitinfo_data.ts +1 -1
  121. package/ts_web/appstate.ts +460 -5
  122. package/ts_web/elements/access/index.ts +1 -0
  123. package/ts_web/elements/access/ops-view-apitokens.ts +1 -1
  124. package/ts_web/elements/access/ops-view-users.ts +140 -0
  125. package/ts_web/elements/domains/dns-provider-form.ts +216 -0
  126. package/ts_web/elements/domains/index.ts +5 -0
  127. package/ts_web/elements/{ops-view-certificates.ts → domains/ops-view-certificates.ts} +4 -4
  128. package/ts_web/elements/domains/ops-view-dns.ts +273 -0
  129. package/ts_web/elements/domains/ops-view-domains.ts +335 -0
  130. package/ts_web/elements/domains/ops-view-providers.ts +284 -0
  131. package/ts_web/elements/email/ops-view-email-security.ts +1 -1
  132. package/ts_web/elements/email/ops-view-emails.ts +1 -1
  133. package/ts_web/elements/index.ts +1 -1
  134. package/ts_web/elements/network/ops-view-network-activity.ts +5 -1
  135. package/ts_web/elements/network/ops-view-networktargets.ts +1 -1
  136. package/ts_web/elements/network/ops-view-remoteingress.ts +1 -1
  137. package/ts_web/elements/network/ops-view-routes.ts +1 -1
  138. package/ts_web/elements/network/ops-view-sourceprofiles.ts +1 -1
  139. package/ts_web/elements/network/ops-view-targetprofiles.ts +1 -1
  140. package/ts_web/elements/network/ops-view-vpn.ts +1 -1
  141. package/ts_web/elements/ops-dashboard.ts +16 -4
  142. package/ts_web/elements/ops-view-logs.ts +1 -1
  143. package/ts_web/elements/overview/ops-view-config.ts +2 -2
  144. package/ts_web/elements/overview/ops-view-overview.ts +1 -1
  145. package/ts_web/elements/security/ops-view-security-authentication.ts +1 -1
  146. package/ts_web/elements/security/ops-view-security-blocked.ts +1 -1
  147. package/ts_web/elements/security/ops-view-security-overview.ts +1 -1
  148. package/ts_web/router.ts +4 -2
@@ -174,7 +174,7 @@ export class OpsViewRemoteIngress extends DeesElement {
174
174
  ];
175
175
 
176
176
  return html`
177
- <dees-heading level="hr">Remote Ingress</dees-heading>
177
+ <dees-heading level="3">Remote Ingress</dees-heading>
178
178
 
179
179
  ${this.riState.newEdgeId ? html`
180
180
  <div class="secretDialog">
@@ -200,7 +200,7 @@ export class OpsViewRoutes extends DeesElement {
200
200
  });
201
201
 
202
202
  return html`
203
- <dees-heading level="hr">Route Management</dees-heading>
203
+ <dees-heading level="3">Route Management</dees-heading>
204
204
 
205
205
  <div class="routesContainer">
206
206
  <dees-statsgrid
@@ -64,7 +64,7 @@ export class OpsViewSourceProfiles extends DeesElement {
64
64
  ];
65
65
 
66
66
  return html`
67
- <dees-heading level="hr">Source Profiles</dees-heading>
67
+ <dees-heading level="3">Source Profiles</dees-heading>
68
68
  <div class="profilesContainer">
69
69
  <dees-statsgrid .tiles=${statsTiles}></dees-statsgrid>
70
70
  <dees-table
@@ -77,7 +77,7 @@ export class OpsViewTargetProfiles extends DeesElement {
77
77
  ];
78
78
 
79
79
  return html`
80
- <dees-heading level="hr">Target Profiles</dees-heading>
80
+ <dees-heading level="3">Target Profiles</dees-heading>
81
81
  <div class="profilesContainer">
82
82
  <dees-statsgrid .tiles=${statsTiles}></dees-statsgrid>
83
83
  <dees-table
@@ -223,7 +223,7 @@ export class OpsViewVpn extends DeesElement {
223
223
  ];
224
224
 
225
225
  return html`
226
- <dees-heading level="hr">VPN</dees-heading>
226
+ <dees-heading level="3">VPN</dees-heading>
227
227
  <div class="vpnContainer">
228
228
 
229
229
  ${this.vpnState.newClientConfig ? html`
@@ -15,7 +15,6 @@ import type { IView } from '@design.estate/dees-catalog';
15
15
 
16
16
  // Top-level / flat views
17
17
  import { OpsViewLogs } from './ops-view-logs.js';
18
- import { OpsViewCertificates } from './ops-view-certificates.js';
19
18
 
20
19
  // Overview group
21
20
  import { OpsViewOverview } from './overview/ops-view-overview.js';
@@ -36,12 +35,19 @@ import { OpsViewEmailSecurity } from './email/ops-view-email-security.js';
36
35
 
37
36
  // Access group
38
37
  import { OpsViewApiTokens } from './access/ops-view-apitokens.js';
38
+ import { OpsViewUsers } from './access/ops-view-users.js';
39
39
 
40
40
  // Security group
41
41
  import { OpsViewSecurityOverview } from './security/ops-view-security-overview.js';
42
42
  import { OpsViewSecurityBlocked } from './security/ops-view-security-blocked.js';
43
43
  import { OpsViewSecurityAuthentication } from './security/ops-view-security-authentication.js';
44
44
 
45
+ // Domains group
46
+ import { OpsViewProviders } from './domains/ops-view-providers.js';
47
+ import { OpsViewDomains } from './domains/ops-view-domains.js';
48
+ import { OpsViewDns } from './domains/ops-view-dns.js';
49
+ import { OpsViewCertificates } from './domains/ops-view-certificates.js';
50
+
45
51
  /**
46
52
  * Extended IView with explicit URL slug. Without an explicit `slug`, the URL
47
53
  * slug is derived from `name.toLowerCase().replace(/\s+/g, '')`.
@@ -114,6 +120,7 @@ export class OpsDashboard extends DeesElement {
114
120
  iconName: 'lucide:keyRound',
115
121
  subViews: [
116
122
  { slug: 'apitokens', name: 'API Tokens', iconName: 'lucide:key', element: OpsViewApiTokens },
123
+ { slug: 'users', name: 'Users', iconName: 'lucide:users', element: OpsViewUsers },
117
124
  ],
118
125
  },
119
126
  {
@@ -126,9 +133,14 @@ export class OpsDashboard extends DeesElement {
126
133
  ],
127
134
  },
128
135
  {
129
- name: 'Certificates',
130
- iconName: 'lucide:badgeCheck',
131
- element: OpsViewCertificates,
136
+ name: 'Domains',
137
+ iconName: 'lucide:globe',
138
+ subViews: [
139
+ { slug: 'providers', name: 'Providers', iconName: 'lucide:plug', element: OpsViewProviders },
140
+ { slug: 'domains', name: 'Domains', iconName: 'lucide:globe', element: OpsViewDomains },
141
+ { slug: 'dns', name: 'DNS', iconName: 'lucide:list', element: OpsViewDns },
142
+ { slug: 'certificates', name: 'Certificates', iconName: 'lucide:badgeCheck', element: OpsViewCertificates },
143
+ ],
132
144
  },
133
145
  ];
134
146
 
@@ -39,7 +39,7 @@ export class OpsViewLogs extends DeesElement {
39
39
 
40
40
  public render() {
41
41
  return html`
42
- <dees-heading level="2">Logs</dees-heading>
42
+ <dees-heading level="3">Logs</dees-heading>
43
43
 
44
44
  <dees-chart-log
45
45
  .label=${'Application Logs'}
@@ -57,7 +57,7 @@ export class OpsViewConfig extends DeesElement {
57
57
 
58
58
  public render() {
59
59
  return html`
60
- <dees-heading level="2">Configuration</dees-heading>
60
+ <dees-heading level="3">Configuration</dees-heading>
61
61
 
62
62
  ${this.configState.isLoading
63
63
  ? html`
@@ -227,7 +227,7 @@ export class OpsViewConfig extends DeesElement {
227
227
 
228
228
  const status = tls.source === 'none' ? 'not-configured' : 'enabled';
229
229
  const actions: IConfigSectionAction[] = [
230
- { label: 'View Certificates', icon: 'lucide:arrow-right', event: 'navigate', detail: { view: 'certificates' } },
230
+ { label: 'View Certificates', icon: 'lucide:arrow-right', event: 'navigate', detail: { view: 'domains', subview: 'certificates' } },
231
231
  ];
232
232
 
233
233
  return html`
@@ -94,7 +94,7 @@ export class OpsViewOverview extends DeesElement {
94
94
 
95
95
  public render() {
96
96
  return html`
97
- <dees-heading level="2">Overview</dees-heading>
97
+ <dees-heading level="3">Stats</dees-heading>
98
98
 
99
99
  ${this.statsState.isLoading ? html`
100
100
  <div class="loadingMessage">
@@ -96,7 +96,7 @@ export class OpsViewSecurityAuthentication extends DeesElement {
96
96
  }));
97
97
 
98
98
  return html`
99
- <dees-heading level="hr">Authentication</dees-heading>
99
+ <dees-heading level="3">Authentication</dees-heading>
100
100
 
101
101
  <dees-statsgrid
102
102
  .tiles=${tiles}
@@ -69,7 +69,7 @@ export class OpsViewSecurityBlocked extends DeesElement {
69
69
  ];
70
70
 
71
71
  return html`
72
- <dees-heading level="hr">Blocked IPs</dees-heading>
72
+ <dees-heading level="3">Blocked IPs</dees-heading>
73
73
 
74
74
  <dees-statsgrid
75
75
  .tiles=${tiles}
@@ -118,7 +118,7 @@ export class OpsViewSecurityOverview extends DeesElement {
118
118
  ];
119
119
 
120
120
  return html`
121
- <dees-heading level="hr">Overview</dees-heading>
121
+ <dees-heading level="3">Overview</dees-heading>
122
122
 
123
123
  <dees-statsgrid
124
124
  .tiles=${tiles}
package/ts_web/router.ts CHANGED
@@ -4,15 +4,16 @@ import * as appstate from './appstate.js';
4
4
  const SmartRouter = plugins.domtools.plugins.smartrouter.SmartRouter;
5
5
 
6
6
  // Flat top-level views (no subviews)
7
- const flatViews = ['logs', 'certificates'] as const;
7
+ const flatViews = ['logs'] as const;
8
8
 
9
9
  // Tabbed views and their valid subviews
10
10
  const subviewMap: Record<string, readonly string[]> = {
11
11
  overview: ['stats', 'configuration'] as const,
12
12
  network: ['activity', 'routes', 'sourceprofiles', 'networktargets', 'targetprofiles', 'remoteingress', 'vpn'] as const,
13
13
  email: ['log', 'security'] as const,
14
- access: ['apitokens'] as const,
14
+ access: ['apitokens', 'users'] as const,
15
15
  security: ['overview', 'blocked', 'authentication'] as const,
16
+ domains: ['providers', 'domains', 'dns', 'certificates'] as const,
16
17
  };
17
18
 
18
19
  // Default subview when user visits the bare parent URL
@@ -22,6 +23,7 @@ const defaultSubview: Record<string, string> = {
22
23
  email: 'log',
23
24
  access: 'apitokens',
24
25
  security: 'overview',
26
+ domains: 'domains',
25
27
  };
26
28
 
27
29
  export const validTopLevelViews = [...flatViews, ...Object.keys(subviewMap)] as const;