@serve.zone/dcrouter 11.14.0 → 11.16.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 (207) hide show
  1. package/dist_serve/bundle.js +5 -9
  2. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  3. package/dist_ts/00_commitinfo_data.js +9 -0
  4. package/dist_ts/cache/classes.cache.cleaner.d.ts +47 -0
  5. package/dist_ts/cache/classes.cache.cleaner.js +130 -0
  6. package/dist_ts/cache/classes.cached.document.d.ts +76 -0
  7. package/dist_ts/cache/classes.cached.document.js +100 -0
  8. package/dist_ts/cache/classes.cachedb.d.ts +60 -0
  9. package/dist_ts/cache/classes.cachedb.js +126 -0
  10. package/dist_ts/cache/documents/classes.cached.email.d.ts +125 -0
  11. package/dist_ts/cache/documents/classes.cached.email.js +337 -0
  12. package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +119 -0
  13. package/dist_ts/cache/documents/classes.cached.ip.reputation.js +323 -0
  14. package/dist_ts/cache/documents/index.d.ts +2 -0
  15. package/dist_ts/cache/documents/index.js +3 -0
  16. package/dist_ts/cache/index.d.ts +4 -0
  17. package/dist_ts/cache/index.js +7 -0
  18. package/dist_ts/classes.cert-provision-scheduler.d.ts +54 -0
  19. package/dist_ts/classes.cert-provision-scheduler.js +118 -0
  20. package/dist_ts/classes.dcrouter.d.ts +399 -0
  21. package/dist_ts/classes.dcrouter.js +1697 -0
  22. package/dist_ts/classes.storage-cert-manager.d.ts +18 -0
  23. package/dist_ts/classes.storage-cert-manager.js +43 -0
  24. package/dist_ts/config/classes.api-token-manager.d.ts +46 -0
  25. package/dist_ts/config/classes.api-token-manager.js +150 -0
  26. package/dist_ts/config/classes.route-config-manager.d.ts +38 -0
  27. package/dist_ts/config/classes.route-config-manager.js +257 -0
  28. package/dist_ts/config/index.d.ts +3 -0
  29. package/dist_ts/config/index.js +5 -0
  30. package/dist_ts/config/validator.d.ts +104 -0
  31. package/dist_ts/config/validator.js +152 -0
  32. package/dist_ts/errors/base.errors.d.ts +224 -0
  33. package/dist_ts/errors/base.errors.js +320 -0
  34. package/dist_ts/errors/error-handler.d.ts +98 -0
  35. package/dist_ts/errors/error-handler.js +282 -0
  36. package/dist_ts/errors/error.codes.d.ts +115 -0
  37. package/dist_ts/errors/error.codes.js +136 -0
  38. package/dist_ts/errors/index.d.ts +54 -0
  39. package/dist_ts/errors/index.js +136 -0
  40. package/dist_ts/errors/reputation.errors.d.ts +183 -0
  41. package/dist_ts/errors/reputation.errors.js +292 -0
  42. package/dist_ts/http3/http3-route-augmentation.d.ts +50 -0
  43. package/dist_ts/http3/http3-route-augmentation.js +98 -0
  44. package/dist_ts/http3/index.d.ts +1 -0
  45. package/dist_ts/http3/index.js +2 -0
  46. package/dist_ts/index.d.ts +8 -0
  47. package/dist_ts/index.js +29 -0
  48. package/dist_ts/logger.d.ts +21 -0
  49. package/dist_ts/logger.js +81 -0
  50. package/dist_ts/monitoring/classes.metricscache.d.ts +32 -0
  51. package/dist_ts/monitoring/classes.metricscache.js +63 -0
  52. package/dist_ts/monitoring/classes.metricsmanager.d.ts +184 -0
  53. package/dist_ts/monitoring/classes.metricsmanager.js +744 -0
  54. package/dist_ts/monitoring/index.d.ts +1 -0
  55. package/dist_ts/monitoring/index.js +2 -0
  56. package/dist_ts/opsserver/classes.opsserver.d.ts +38 -0
  57. package/dist_ts/opsserver/classes.opsserver.js +87 -0
  58. package/dist_ts/opsserver/handlers/admin.handler.d.ts +31 -0
  59. package/dist_ts/opsserver/handlers/admin.handler.js +180 -0
  60. package/dist_ts/opsserver/handlers/api-token.handler.d.ts +6 -0
  61. package/dist_ts/opsserver/handlers/api-token.handler.js +62 -0
  62. package/dist_ts/opsserver/handlers/certificate.handler.d.ts +32 -0
  63. package/dist_ts/opsserver/handlers/certificate.handler.js +421 -0
  64. package/dist_ts/opsserver/handlers/config.handler.d.ts +7 -0
  65. package/dist_ts/opsserver/handlers/config.handler.js +192 -0
  66. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +30 -0
  67. package/dist_ts/opsserver/handlers/email-ops.handler.js +227 -0
  68. package/dist_ts/opsserver/handlers/index.d.ts +12 -0
  69. package/dist_ts/opsserver/handlers/index.js +13 -0
  70. package/dist_ts/opsserver/handlers/logs.handler.d.ts +25 -0
  71. package/dist_ts/opsserver/handlers/logs.handler.js +256 -0
  72. package/dist_ts/opsserver/handlers/radius.handler.d.ts +6 -0
  73. package/dist_ts/opsserver/handlers/radius.handler.js +295 -0
  74. package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +6 -0
  75. package/dist_ts/opsserver/handlers/remoteingress.handler.js +156 -0
  76. package/dist_ts/opsserver/handlers/route-management.handler.d.ts +14 -0
  77. package/dist_ts/opsserver/handlers/route-management.handler.js +117 -0
  78. package/dist_ts/opsserver/handlers/security.handler.d.ts +9 -0
  79. package/dist_ts/opsserver/handlers/security.handler.js +233 -0
  80. package/dist_ts/opsserver/handlers/stats.handler.d.ts +11 -0
  81. package/dist_ts/opsserver/handlers/stats.handler.js +403 -0
  82. package/dist_ts/opsserver/handlers/vpn.handler.d.ts +6 -0
  83. package/dist_ts/opsserver/handlers/vpn.handler.js +197 -0
  84. package/dist_ts/opsserver/helpers/guards.d.ts +27 -0
  85. package/dist_ts/opsserver/helpers/guards.js +43 -0
  86. package/dist_ts/opsserver/index.d.ts +1 -0
  87. package/dist_ts/opsserver/index.js +2 -0
  88. package/dist_ts/paths.d.ts +26 -0
  89. package/dist_ts/paths.js +45 -0
  90. package/dist_ts/plugins.d.ts +81 -0
  91. package/dist_ts/plugins.js +115 -0
  92. package/dist_ts/radius/classes.accounting.manager.d.ts +231 -0
  93. package/dist_ts/radius/classes.accounting.manager.js +462 -0
  94. package/dist_ts/radius/classes.radius.server.d.ts +171 -0
  95. package/dist_ts/radius/classes.radius.server.js +386 -0
  96. package/dist_ts/radius/classes.vlan.manager.d.ts +128 -0
  97. package/dist_ts/radius/classes.vlan.manager.js +279 -0
  98. package/dist_ts/radius/index.d.ts +13 -0
  99. package/dist_ts/radius/index.js +14 -0
  100. package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +94 -0
  101. package/dist_ts/remoteingress/classes.remoteingress-manager.js +271 -0
  102. package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +59 -0
  103. package/dist_ts/remoteingress/classes.tunnel-manager.js +165 -0
  104. package/dist_ts/remoteingress/index.d.ts +2 -0
  105. package/dist_ts/remoteingress/index.js +3 -0
  106. package/dist_ts/security/classes.contentscanner.d.ts +164 -0
  107. package/dist_ts/security/classes.contentscanner.js +642 -0
  108. package/dist_ts/security/classes.ipreputationchecker.d.ts +160 -0
  109. package/dist_ts/security/classes.ipreputationchecker.js +537 -0
  110. package/dist_ts/security/classes.securitylogger.d.ts +144 -0
  111. package/dist_ts/security/classes.securitylogger.js +235 -0
  112. package/dist_ts/security/index.d.ts +3 -0
  113. package/dist_ts/security/index.js +4 -0
  114. package/dist_ts/sms/classes.smsservice.d.ts +15 -0
  115. package/dist_ts/sms/classes.smsservice.js +72 -0
  116. package/dist_ts/sms/config/sms.config.d.ts +93 -0
  117. package/dist_ts/sms/config/sms.config.js +2 -0
  118. package/dist_ts/sms/config/sms.schema.d.ts +5 -0
  119. package/dist_ts/sms/config/sms.schema.js +121 -0
  120. package/dist_ts/sms/index.d.ts +1 -0
  121. package/dist_ts/sms/index.js +2 -0
  122. package/dist_ts/storage/classes.storagemanager.d.ts +83 -0
  123. package/dist_ts/storage/classes.storagemanager.js +348 -0
  124. package/dist_ts/storage/index.d.ts +1 -0
  125. package/dist_ts/storage/index.js +3 -0
  126. package/dist_ts/vpn/classes.vpn-manager.d.ts +129 -0
  127. package/dist_ts/vpn/classes.vpn-manager.js +329 -0
  128. package/dist_ts/vpn/index.d.ts +1 -0
  129. package/dist_ts/vpn/index.js +2 -0
  130. package/dist_ts_apiclient/classes.apitoken.d.ts +41 -0
  131. package/dist_ts_apiclient/classes.apitoken.js +115 -0
  132. package/dist_ts_apiclient/classes.certificate.d.ts +57 -0
  133. package/dist_ts_apiclient/classes.certificate.js +69 -0
  134. package/dist_ts_apiclient/classes.config.d.ts +7 -0
  135. package/dist_ts_apiclient/classes.config.js +11 -0
  136. package/dist_ts_apiclient/classes.dcrouterapiclient.d.ts +41 -0
  137. package/dist_ts_apiclient/classes.dcrouterapiclient.js +81 -0
  138. package/dist_ts_apiclient/classes.email.d.ts +30 -0
  139. package/dist_ts_apiclient/classes.email.js +52 -0
  140. package/dist_ts_apiclient/classes.logs.d.ts +21 -0
  141. package/dist_ts_apiclient/classes.logs.js +14 -0
  142. package/dist_ts_apiclient/classes.radius.d.ts +59 -0
  143. package/dist_ts_apiclient/classes.radius.js +95 -0
  144. package/dist_ts_apiclient/classes.remoteingress.d.ts +54 -0
  145. package/dist_ts_apiclient/classes.remoteingress.js +136 -0
  146. package/dist_ts_apiclient/classes.route.d.ts +42 -0
  147. package/dist_ts_apiclient/classes.route.js +154 -0
  148. package/dist_ts_apiclient/classes.stats.d.ts +47 -0
  149. package/dist_ts_apiclient/classes.stats.js +38 -0
  150. package/dist_ts_apiclient/index.d.ts +10 -0
  151. package/dist_ts_apiclient/index.js +14 -0
  152. package/dist_ts_apiclient/plugins.d.ts +3 -0
  153. package/dist_ts_apiclient/plugins.js +5 -0
  154. package/dist_ts_interfaces/data/remoteingress.d.ts +2 -0
  155. package/dist_ts_interfaces/data/vpn.d.ts +1 -2
  156. package/dist_ts_interfaces/requests/vpn.d.ts +1 -1
  157. package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
  158. package/dist_ts_web/00_commitinfo_data.js +9 -0
  159. package/dist_ts_web/appstate.d.ts +238 -0
  160. package/dist_ts_web/appstate.js +1174 -0
  161. package/dist_ts_web/elements/index.d.ts +13 -0
  162. package/dist_ts_web/elements/index.js +14 -0
  163. package/dist_ts_web/elements/ops-dashboard.d.ts +23 -0
  164. package/dist_ts_web/elements/ops-dashboard.js +323 -0
  165. package/dist_ts_web/elements/ops-view-apitokens.d.ts +13 -0
  166. package/dist_ts_web/elements/ops-view-apitokens.js +371 -0
  167. package/dist_ts_web/elements/ops-view-certificates.d.ts +22 -0
  168. package/dist_ts_web/elements/ops-view-certificates.js +528 -0
  169. package/dist_ts_web/elements/ops-view-config.d.ts +19 -0
  170. package/dist_ts_web/elements/ops-view-config.js +339 -0
  171. package/dist_ts_web/elements/ops-view-emails.d.ts +21 -0
  172. package/dist_ts_web/elements/ops-view-emails.js +165 -0
  173. package/dist_ts_web/elements/ops-view-logs.d.ts +13 -0
  174. package/dist_ts_web/elements/ops-view-logs.js +159 -0
  175. package/dist_ts_web/elements/ops-view-network.d.ts +71 -0
  176. package/dist_ts_web/elements/ops-view-network.js +764 -0
  177. package/dist_ts_web/elements/ops-view-overview.d.ts +22 -0
  178. package/dist_ts_web/elements/ops-view-overview.js +456 -0
  179. package/dist_ts_web/elements/ops-view-remoteingress.d.ts +20 -0
  180. package/dist_ts_web/elements/ops-view-remoteingress.js +494 -0
  181. package/dist_ts_web/elements/ops-view-routes.d.ts +12 -0
  182. package/dist_ts_web/elements/ops-view-routes.js +404 -0
  183. package/dist_ts_web/elements/ops-view-security.d.ts +21 -0
  184. package/dist_ts_web/elements/ops-view-security.js +574 -0
  185. package/dist_ts_web/elements/ops-view-vpn.d.ts +14 -0
  186. package/dist_ts_web/elements/ops-view-vpn.js +365 -0
  187. package/dist_ts_web/elements/shared/css.d.ts +1 -0
  188. package/dist_ts_web/elements/shared/css.js +10 -0
  189. package/dist_ts_web/elements/shared/index.d.ts +2 -0
  190. package/dist_ts_web/elements/shared/index.js +3 -0
  191. package/dist_ts_web/elements/shared/ops-sectionheading.d.ts +5 -0
  192. package/dist_ts_web/elements/shared/ops-sectionheading.js +82 -0
  193. package/dist_ts_web/index.d.ts +1 -0
  194. package/dist_ts_web/index.js +10 -0
  195. package/dist_ts_web/plugins.d.ts +6 -0
  196. package/dist_ts_web/plugins.js +11 -0
  197. package/dist_ts_web/router.d.ts +19 -0
  198. package/dist_ts_web/router.js +91 -0
  199. package/package.json +2 -2
  200. package/ts/00_commitinfo_data.ts +1 -1
  201. package/ts/classes.dcrouter.ts +51 -20
  202. package/ts/config/classes.route-config-manager.ts +7 -6
  203. package/ts/opsserver/handlers/vpn.handler.ts +3 -5
  204. package/ts/vpn/classes.vpn-manager.ts +68 -19
  205. package/ts_web/00_commitinfo_data.ts +1 -1
  206. package/ts_web/appstate.ts +2 -2
  207. package/ts_web/elements/ops-view-vpn.ts +5 -9
@@ -0,0 +1,13 @@
1
+ export * from './ops-dashboard.js';
2
+ export * from './ops-view-overview.js';
3
+ export * from './ops-view-network.js';
4
+ export * from './ops-view-emails.js';
5
+ export * from './ops-view-logs.js';
6
+ export * from './ops-view-config.js';
7
+ export * from './ops-view-routes.js';
8
+ export * from './ops-view-apitokens.js';
9
+ export * from './ops-view-security.js';
10
+ export * from './ops-view-certificates.js';
11
+ export * from './ops-view-remoteingress.js';
12
+ export * from './ops-view-vpn.js';
13
+ export * from './shared/index.js';
@@ -0,0 +1,14 @@
1
+ export * from './ops-dashboard.js';
2
+ export * from './ops-view-overview.js';
3
+ export * from './ops-view-network.js';
4
+ export * from './ops-view-emails.js';
5
+ export * from './ops-view-logs.js';
6
+ export * from './ops-view-config.js';
7
+ export * from './ops-view-routes.js';
8
+ export * from './ops-view-apitokens.js';
9
+ export * from './ops-view-security.js';
10
+ export * from './ops-view-certificates.js';
11
+ export * from './ops-view-remoteingress.js';
12
+ export * from './ops-view-vpn.js';
13
+ export * from './shared/index.js';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyJ9
@@ -0,0 +1,23 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as appstate from '../appstate.js';
3
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
4
+ export declare class OpsDashboard extends DeesElement {
5
+ accessor loginState: appstate.ILoginState;
6
+ accessor uiState: appstate.IUiState;
7
+ private viewTabs;
8
+ /**
9
+ * Get the current view tab based on the UI state's activeView.
10
+ * Used to pass the correct selectedView to dees-simple-appdash on initial render.
11
+ */
12
+ private get currentViewTab();
13
+ constructor();
14
+ /**
15
+ * Sync the dees-simple-appdash view selection with the current state.
16
+ * This is needed when the URL changes and we need to update the UI.
17
+ */
18
+ private syncAppdashView;
19
+ static styles: plugins.deesElement.CSSResult[];
20
+ render(): TemplateResult;
21
+ firstUpdated(): Promise<void>;
22
+ private login;
23
+ }
@@ -0,0 +1,323 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import * as plugins from '../plugins.js';
36
+ import * as appstate from '../appstate.js';
37
+ import * as interfaces from '../../dist_ts_interfaces/index.js';
38
+ import { appRouter } from '../router.js';
39
+ import { DeesElement, css, cssManager, customElement, html, state } from '@design.estate/dees-element';
40
+ // Import view components
41
+ import { OpsViewOverview } from './ops-view-overview.js';
42
+ import { OpsViewNetwork } from './ops-view-network.js';
43
+ import { OpsViewEmails } from './ops-view-emails.js';
44
+ import { OpsViewLogs } from './ops-view-logs.js';
45
+ import { OpsViewConfig } from './ops-view-config.js';
46
+ import { OpsViewRoutes } from './ops-view-routes.js';
47
+ import { OpsViewApiTokens } from './ops-view-apitokens.js';
48
+ import { OpsViewSecurity } from './ops-view-security.js';
49
+ import { OpsViewCertificates } from './ops-view-certificates.js';
50
+ import { OpsViewRemoteIngress } from './ops-view-remoteingress.js';
51
+ import { OpsViewVpn } from './ops-view-vpn.js';
52
+ let OpsDashboard = (() => {
53
+ let _classDecorators = [customElement('ops-dashboard')];
54
+ let _classDescriptor;
55
+ let _classExtraInitializers = [];
56
+ let _classThis;
57
+ let _classSuper = DeesElement;
58
+ let _loginState_decorators;
59
+ let _loginState_initializers = [];
60
+ let _loginState_extraInitializers = [];
61
+ let _uiState_decorators;
62
+ let _uiState_initializers = [];
63
+ let _uiState_extraInitializers = [];
64
+ var OpsDashboard = class extends _classSuper {
65
+ static { _classThis = this; }
66
+ static {
67
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
68
+ _loginState_decorators = [state()];
69
+ _uiState_decorators = [state()];
70
+ __esDecorate(this, null, _loginState_decorators, { kind: "accessor", name: "loginState", static: false, private: false, access: { has: obj => "loginState" in obj, get: obj => obj.loginState, set: (obj, value) => { obj.loginState = value; } }, metadata: _metadata }, _loginState_initializers, _loginState_extraInitializers);
71
+ __esDecorate(this, null, _uiState_decorators, { kind: "accessor", name: "uiState", static: false, private: false, access: { has: obj => "uiState" in obj, get: obj => obj.uiState, set: (obj, value) => { obj.uiState = value; } }, metadata: _metadata }, _uiState_initializers, _uiState_extraInitializers);
72
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
73
+ OpsDashboard = _classThis = _classDescriptor.value;
74
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
75
+ }
76
+ #loginState_accessor_storage = __runInitializers(this, _loginState_initializers, {
77
+ identity: null,
78
+ isLoggedIn: false,
79
+ });
80
+ get loginState() { return this.#loginState_accessor_storage; }
81
+ set loginState(value) { this.#loginState_accessor_storage = value; }
82
+ #uiState_accessor_storage = (__runInitializers(this, _loginState_extraInitializers), __runInitializers(this, _uiState_initializers, {
83
+ activeView: 'overview',
84
+ sidebarCollapsed: false,
85
+ autoRefresh: true,
86
+ refreshInterval: 1000,
87
+ theme: 'light',
88
+ }));
89
+ get uiState() { return this.#uiState_accessor_storage; }
90
+ set uiState(value) { this.#uiState_accessor_storage = value; }
91
+ // Store viewTabs as a property to maintain object references
92
+ viewTabs = (__runInitializers(this, _uiState_extraInitializers), [
93
+ {
94
+ name: 'Overview',
95
+ iconName: 'lucide:layoutDashboard',
96
+ element: OpsViewOverview,
97
+ },
98
+ {
99
+ name: 'Configuration',
100
+ iconName: 'lucide:settings',
101
+ element: OpsViewConfig,
102
+ },
103
+ {
104
+ name: 'Network',
105
+ iconName: 'lucide:network',
106
+ element: OpsViewNetwork,
107
+ },
108
+ {
109
+ name: 'Emails',
110
+ iconName: 'lucide:mail',
111
+ element: OpsViewEmails,
112
+ },
113
+ {
114
+ name: 'Logs',
115
+ iconName: 'lucide:scrollText',
116
+ element: OpsViewLogs,
117
+ },
118
+ {
119
+ name: 'Routes',
120
+ iconName: 'lucide:route',
121
+ element: OpsViewRoutes,
122
+ },
123
+ {
124
+ name: 'ApiTokens',
125
+ iconName: 'lucide:key',
126
+ element: OpsViewApiTokens,
127
+ },
128
+ {
129
+ name: 'Security',
130
+ iconName: 'lucide:shield',
131
+ element: OpsViewSecurity,
132
+ },
133
+ {
134
+ name: 'Certificates',
135
+ iconName: 'lucide:badgeCheck',
136
+ element: OpsViewCertificates,
137
+ },
138
+ {
139
+ name: 'RemoteIngress',
140
+ iconName: 'lucide:globe',
141
+ element: OpsViewRemoteIngress,
142
+ },
143
+ {
144
+ name: 'VPN',
145
+ iconName: 'lucide:shield',
146
+ element: OpsViewVpn,
147
+ },
148
+ ]);
149
+ /**
150
+ * Get the current view tab based on the UI state's activeView.
151
+ * Used to pass the correct selectedView to dees-simple-appdash on initial render.
152
+ */
153
+ get currentViewTab() {
154
+ return this.viewTabs.find(t => t.name.toLowerCase() === this.uiState.activeView) || this.viewTabs[0];
155
+ }
156
+ constructor() {
157
+ super();
158
+ document.title = 'DCRouter OpsServer';
159
+ // Subscribe to login state
160
+ const loginSubscription = appstate.loginStatePart
161
+ .select((stateArg) => stateArg)
162
+ .subscribe((loginState) => {
163
+ this.loginState = loginState;
164
+ // Trigger data fetch when logged in
165
+ if (loginState.isLoggedIn) {
166
+ appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
167
+ appstate.configStatePart.dispatchAction(appstate.fetchConfigurationAction, null);
168
+ }
169
+ });
170
+ this.rxSubscriptions.push(loginSubscription);
171
+ // Subscribe to UI state
172
+ const uiSubscription = appstate.uiStatePart
173
+ .select((stateArg) => stateArg)
174
+ .subscribe((uiState) => {
175
+ this.uiState = uiState;
176
+ // Sync appdash view when state changes (e.g., from URL navigation)
177
+ this.syncAppdashView(uiState.activeView);
178
+ });
179
+ this.rxSubscriptions.push(uiSubscription);
180
+ }
181
+ /**
182
+ * Sync the dees-simple-appdash view selection with the current state.
183
+ * This is needed when the URL changes and we need to update the UI.
184
+ */
185
+ syncAppdashView(viewName) {
186
+ const appDash = this.shadowRoot?.querySelector('dees-simple-appdash');
187
+ if (!appDash)
188
+ return;
189
+ const targetTab = this.viewTabs.find(t => t.name.toLowerCase() === viewName);
190
+ if (!targetTab)
191
+ return;
192
+ // Check if we need to switch (avoid unnecessary updates)
193
+ if (appDash.selectedView === targetTab)
194
+ return;
195
+ // Update the selected view programmatically
196
+ appDash.selectedView = targetTab;
197
+ // Update the displayed content
198
+ const content = appDash.shadowRoot?.querySelector('.appcontent');
199
+ if (content) {
200
+ if (appDash.currentView) {
201
+ appDash.currentView.remove();
202
+ }
203
+ const view = new targetTab.element();
204
+ content.appendChild(view);
205
+ appDash.currentView = view;
206
+ }
207
+ }
208
+ static styles = [
209
+ cssManager.defaultStyles,
210
+ css `
211
+ :host {
212
+ display: block;
213
+ width: 100%;
214
+ height: 100vh;
215
+ overflow: hidden;
216
+ }
217
+
218
+ .maincontainer {
219
+ position: relative;
220
+ width: 100%;
221
+ height: 100%;
222
+ }
223
+ `,
224
+ ];
225
+ render() {
226
+ return html `
227
+ <div class="maincontainer">
228
+ <dees-simple-login
229
+ name="DCRouter OpsServer"
230
+ >
231
+ <dees-simple-appdash
232
+ name="DCRouter OpsServer"
233
+ .viewTabs=${this.viewTabs}
234
+ .selectedView=${this.currentViewTab}
235
+ >
236
+ </dees-simple-appdash>
237
+ </dees-simple-login>
238
+ </div>
239
+ `;
240
+ }
241
+ async firstUpdated() {
242
+ const simpleLogin = this.shadowRoot.querySelector('dees-simple-login');
243
+ simpleLogin.addEventListener('login', (e) => {
244
+ // Handle logout event
245
+ const detail = e.detail;
246
+ this.login(detail.data.username, detail.data.password);
247
+ });
248
+ // Handle view changes
249
+ const appDash = this.shadowRoot.querySelector('dees-simple-appdash');
250
+ if (appDash) {
251
+ appDash.addEventListener('view-select', (e) => {
252
+ const viewName = e.detail.view.name.toLowerCase();
253
+ // Use router for navigation instead of direct state update
254
+ appRouter.navigateToView(viewName);
255
+ });
256
+ // Handle logout event
257
+ appDash.addEventListener('logout', async () => {
258
+ await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
259
+ });
260
+ }
261
+ // Handle initial state - check if we have a stored session that's still valid
262
+ const loginState = appstate.loginStatePart.getState();
263
+ if (loginState.identity?.jwt) {
264
+ if (loginState.identity.expiresAt > Date.now()) {
265
+ // Client-side expiry looks valid — verify with server (keypair may have changed)
266
+ try {
267
+ const verifyRequest = new plugins.domtools.plugins.typedrequest.TypedRequest('/typedrequest', 'verifyIdentity');
268
+ const response = await verifyRequest.fire({ identity: loginState.identity });
269
+ if (response.valid) {
270
+ // JWT confirmed valid by server
271
+ this.loginState = loginState;
272
+ await simpleLogin.switchToSlottedContent();
273
+ await appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
274
+ await appstate.configStatePart.dispatchAction(appstate.fetchConfigurationAction, null);
275
+ }
276
+ else {
277
+ // Server rejected the JWT — clear state, show login
278
+ await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
279
+ }
280
+ }
281
+ catch {
282
+ // Server unreachable or error — clear state, show login
283
+ await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
284
+ }
285
+ }
286
+ else {
287
+ // JWT expired, clear the stored state
288
+ await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
289
+ }
290
+ }
291
+ }
292
+ async login(username, password) {
293
+ const domtools = await this.domtoolsPromise;
294
+ console.log(`Attempting to login...`);
295
+ const simpleLogin = this.shadowRoot.querySelector('dees-simple-login');
296
+ const form = simpleLogin.shadowRoot.querySelector('dees-form');
297
+ form.setStatus('pending', 'Logging in...');
298
+ const state = await appstate.loginStatePart.dispatchAction(appstate.loginAction, {
299
+ username,
300
+ password,
301
+ });
302
+ if (state.identity) {
303
+ console.log('Login successful');
304
+ this.loginState = state;
305
+ form.setStatus('success', 'Logged in!');
306
+ await simpleLogin.switchToSlottedContent();
307
+ await appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
308
+ await appstate.configStatePart.dispatchAction(appstate.fetchConfigurationAction, null);
309
+ }
310
+ else {
311
+ form.setStatus('error', 'Login failed!');
312
+ await domtools.convenience.smartdelay.delayFor(2000);
313
+ form.reset();
314
+ }
315
+ }
316
+ static {
317
+ __runInitializers(_classThis, _classExtraInitializers);
318
+ }
319
+ };
320
+ return OpsDashboard = _classThis;
321
+ })();
322
+ export { OpsDashboard };
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9vcHMtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssUUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxVQUFVLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLEdBQUcsRUFDSCxVQUFVLEVBQ1YsYUFBYSxFQUNiLElBQUksRUFDSixLQUFLLEVBRU4sTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyx5QkFBeUI7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FB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
@@ -0,0 +1,13 @@
1
+ import * as appstate from '../appstate.js';
2
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
3
+ export declare class OpsViewApiTokens extends DeesElement {
4
+ accessor routeState: appstate.IRouteManagementState;
5
+ constructor();
6
+ static styles: import("@design.estate/dees-element").CSSResult[];
7
+ render(): TemplateResult;
8
+ private renderScopePills;
9
+ private renderStatusBadge;
10
+ private showCreateTokenDialog;
11
+ private showRollTokenDialog;
12
+ firstUpdated(): Promise<void>;
13
+ }