@serve.zone/dcrouter 7.4.3 → 8.1.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 (110) hide show
  1. package/dist_serve/bundle.js +11567 -3516
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/classes.dcrouter.d.ts +9 -0
  4. package/dist_ts/classes.dcrouter.js +27 -1
  5. package/dist_ts/config/classes.api-token-manager.d.ts +38 -0
  6. package/dist_ts/config/classes.api-token-manager.js +134 -0
  7. package/dist_ts/config/classes.route-config-manager.d.ts +35 -0
  8. package/dist_ts/config/classes.route-config-manager.js +231 -0
  9. package/dist_ts/config/index.d.ts +2 -0
  10. package/dist_ts/config/index.js +3 -1
  11. package/dist_ts/opsserver/classes.opsserver.d.ts +2 -0
  12. package/dist_ts/opsserver/classes.opsserver.js +5 -1
  13. package/dist_ts/opsserver/handlers/{email-ops.handler.d.ts → api-token.handler.d.ts} +4 -4
  14. package/dist_ts/opsserver/handlers/api-token.handler.js +66 -0
  15. package/dist_ts/opsserver/handlers/index.d.ts +2 -0
  16. package/dist_ts/opsserver/handlers/index.js +3 -1
  17. package/dist_ts/opsserver/handlers/{radius.handler.d.ts → route-management.handler.d.ts} +6 -1
  18. package/dist_ts/opsserver/handlers/route-management.handler.js +117 -0
  19. package/dist_ts_interfaces/data/index.d.ts +1 -0
  20. package/dist_ts_interfaces/data/index.js +2 -1
  21. package/dist_ts_interfaces/data/route-management.d.ts +68 -0
  22. package/dist_ts_interfaces/data/route-management.js +2 -0
  23. package/dist_ts_interfaces/requests/api-tokens.d.ts +63 -0
  24. package/dist_ts_interfaces/requests/api-tokens.js +2 -0
  25. package/dist_ts_interfaces/requests/email-ops.d.ts +51 -108
  26. package/dist_ts_interfaces/requests/index.d.ts +2 -0
  27. package/dist_ts_interfaces/requests/index.js +3 -1
  28. package/dist_ts_interfaces/requests/route-management.d.ts +114 -0
  29. package/dist_ts_interfaces/requests/route-management.js +2 -0
  30. package/dist_ts_web/00_commitinfo_data.js +1 -1
  31. package/dist_ts_web/appstate.d.ts +38 -16
  32. package/dist_ts_web/appstate.js +226 -177
  33. package/dist_ts_web/elements/index.d.ts +2 -0
  34. package/dist_ts_web/elements/index.js +3 -1
  35. package/dist_ts_web/elements/ops-dashboard.js +11 -1
  36. package/dist_ts_web/elements/ops-view-apitokens.d.ts +12 -0
  37. package/dist_ts_web/elements/ops-view-apitokens.js +306 -0
  38. package/dist_ts_web/elements/ops-view-emails.d.ts +8 -31
  39. package/dist_ts_web/elements/ops-view-emails.js +54 -769
  40. package/dist_ts_web/elements/ops-view-logs.d.ts +2 -8
  41. package/dist_ts_web/elements/ops-view-logs.js +4 -101
  42. package/dist_ts_web/elements/ops-view-routes.d.ts +12 -0
  43. package/dist_ts_web/elements/ops-view-routes.js +404 -0
  44. package/dist_ts_web/plugins.d.ts +2 -1
  45. package/dist_ts_web/plugins.js +4 -2
  46. package/dist_ts_web/router.d.ts +1 -7
  47. package/dist_ts_web/router.js +8 -82
  48. package/package.json +2 -1
  49. package/ts/00_commitinfo_data.ts +1 -1
  50. package/ts/classes.dcrouter.ts +37 -1
  51. package/ts/config/classes.api-token-manager.ts +155 -0
  52. package/ts/config/classes.route-config-manager.ts +271 -0
  53. package/ts/config/index.ts +3 -1
  54. package/ts/opsserver/classes.opsserver.ts +4 -0
  55. package/ts/opsserver/handlers/api-token.handler.ts +96 -0
  56. package/ts/opsserver/handlers/email-ops.handler.ts +177 -225
  57. package/ts/opsserver/handlers/index.ts +3 -1
  58. package/ts/opsserver/handlers/route-management.handler.ts +163 -0
  59. package/ts_web/00_commitinfo_data.ts +1 -1
  60. package/ts_web/appstate.ts +316 -222
  61. package/ts_web/elements/index.ts +2 -0
  62. package/ts_web/elements/ops-dashboard.ts +10 -0
  63. package/ts_web/elements/ops-view-apitokens.ts +281 -0
  64. package/ts_web/elements/ops-view-emails.ts +40 -749
  65. package/ts_web/elements/ops-view-logs.ts +2 -87
  66. package/ts_web/elements/ops-view-routes.ts +389 -0
  67. package/ts_web/plugins.ts +4 -0
  68. package/ts_web/router.ts +7 -82
  69. package/dist_ts/cache/classes.cache.cleaner.d.ts +0 -47
  70. package/dist_ts/cache/classes.cache.cleaner.js +0 -130
  71. package/dist_ts/cache/classes.cached.document.d.ts +0 -76
  72. package/dist_ts/cache/classes.cached.document.js +0 -100
  73. package/dist_ts/cache/classes.cachedb.d.ts +0 -60
  74. package/dist_ts/cache/classes.cachedb.js +0 -126
  75. package/dist_ts/cache/documents/classes.cached.email.d.ts +0 -125
  76. package/dist_ts/cache/documents/classes.cached.email.js +0 -337
  77. package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +0 -119
  78. package/dist_ts/cache/documents/classes.cached.ip.reputation.js +0 -323
  79. package/dist_ts/cache/documents/index.d.ts +0 -2
  80. package/dist_ts/cache/documents/index.js +0 -3
  81. package/dist_ts/cache/index.d.ts +0 -4
  82. package/dist_ts/cache/index.js +0 -7
  83. package/dist_ts/monitoring/classes.metricscache.d.ts +0 -32
  84. package/dist_ts/monitoring/classes.metricscache.js +0 -63
  85. package/dist_ts/monitoring/classes.metricsmanager.d.ts +0 -169
  86. package/dist_ts/monitoring/classes.metricsmanager.js +0 -591
  87. package/dist_ts/monitoring/index.d.ts +0 -1
  88. package/dist_ts/monitoring/index.js +0 -2
  89. package/dist_ts/opsserver/handlers/admin.handler.d.ts +0 -31
  90. package/dist_ts/opsserver/handlers/admin.handler.js +0 -180
  91. package/dist_ts/opsserver/handlers/certificate.handler.d.ts +0 -34
  92. package/dist_ts/opsserver/handlers/certificate.handler.js +0 -419
  93. package/dist_ts/opsserver/handlers/config.handler.d.ts +0 -9
  94. package/dist_ts/opsserver/handlers/config.handler.js +0 -67
  95. package/dist_ts/opsserver/handlers/email-ops.handler.js +0 -219
  96. package/dist_ts/opsserver/handlers/logs.handler.d.ts +0 -17
  97. package/dist_ts/opsserver/handlers/logs.handler.js +0 -215
  98. package/dist_ts/opsserver/handlers/radius.handler.js +0 -296
  99. package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +0 -8
  100. package/dist_ts/opsserver/handlers/remoteingress.handler.js +0 -154
  101. package/dist_ts/opsserver/handlers/security.handler.d.ts +0 -11
  102. package/dist_ts/opsserver/handlers/security.handler.js +0 -232
  103. package/dist_ts/opsserver/handlers/stats.handler.d.ts +0 -13
  104. package/dist_ts/opsserver/handlers/stats.handler.js +0 -400
  105. package/dist_ts/security/classes.securitylogger.d.ts +0 -140
  106. package/dist_ts/security/classes.securitylogger.js +0 -235
  107. package/dist_ts/storage/classes.storagemanager.d.ts +0 -82
  108. package/dist_ts/storage/classes.storagemanager.js +0 -344
  109. package/dist_ts/storage/index.d.ts +0 -1
  110. package/dist_ts/storage/index.js +0 -3
@@ -0,0 +1,63 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type * as authInterfaces from '../data/auth.js';
3
+ import type { IApiTokenInfo, TApiTokenScope } from '../data/route-management.js';
4
+ /**
5
+ * Create a new API token. Returns the raw token value once (never shown again).
6
+ * Admin JWT only — tokens cannot create tokens.
7
+ */
8
+ export interface IReq_CreateApiToken extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateApiToken> {
9
+ method: 'createApiToken';
10
+ request: {
11
+ identity?: authInterfaces.IIdentity;
12
+ name: string;
13
+ scopes: TApiTokenScope[];
14
+ expiresInDays?: number | null;
15
+ };
16
+ response: {
17
+ success: boolean;
18
+ tokenId?: string;
19
+ tokenValue?: string;
20
+ message?: string;
21
+ };
22
+ }
23
+ /**
24
+ * List all API tokens (without hashes).
25
+ */
26
+ export interface IReq_ListApiTokens extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListApiTokens> {
27
+ method: 'listApiTokens';
28
+ request: {
29
+ identity?: authInterfaces.IIdentity;
30
+ };
31
+ response: {
32
+ tokens: IApiTokenInfo[];
33
+ };
34
+ }
35
+ /**
36
+ * Revoke (delete) an API token.
37
+ */
38
+ export interface IReq_RevokeApiToken extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RevokeApiToken> {
39
+ method: 'revokeApiToken';
40
+ request: {
41
+ identity?: authInterfaces.IIdentity;
42
+ id: string;
43
+ };
44
+ response: {
45
+ success: boolean;
46
+ message?: string;
47
+ };
48
+ }
49
+ /**
50
+ * Enable or disable an API token.
51
+ */
52
+ export interface IReq_ToggleApiToken extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ToggleApiToken> {
53
+ method: 'toggleApiToken';
54
+ request: {
55
+ identity?: authInterfaces.IIdentity;
56
+ id: string;
57
+ enabled: boolean;
58
+ };
59
+ response: {
60
+ success: boolean;
61
+ message?: string;
62
+ };
63
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvYXBpLXRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -1,91 +1,71 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import * as authInterfaces from '../data/auth.js';
3
- export type TEmailQueueStatus = 'pending' | 'processing' | 'delivered' | 'failed' | 'deferred';
4
- export interface IEmailQueueItem {
3
+ export type TEmailStatus = 'delivered' | 'bounced' | 'rejected' | 'deferred' | 'pending';
4
+ export type TEmailDirection = 'inbound' | 'outbound';
5
+ export interface IEmail {
5
6
  id: string;
6
- processingMode: 'forward' | 'mta' | 'process';
7
- status: TEmailQueueStatus;
8
- attempts: number;
9
- nextAttempt: number;
10
- lastError?: string;
11
- createdAt: number;
12
- updatedAt: number;
13
- deliveredAt?: number;
14
- from?: string;
15
- to?: string[];
16
- subject?: string;
7
+ direction: TEmailDirection;
8
+ status: TEmailStatus;
9
+ from: string;
10
+ to: string;
11
+ subject: string;
12
+ timestamp: string;
13
+ messageId: string;
14
+ size: string;
17
15
  }
18
- export type TBounceType = 'invalid_recipient' | 'domain_not_found' | 'mailbox_full' | 'mailbox_inactive' | 'blocked' | 'spam_related' | 'policy_related' | 'server_unavailable' | 'temporary_failure' | 'quota_exceeded' | 'network_error' | 'timeout' | 'auto_response' | 'challenge_response' | 'unknown';
19
- export type TBounceCategory = 'hard' | 'soft' | 'auto_response' | 'unknown';
20
- export interface IBounceRecord {
21
- id: string;
22
- originalEmailId?: string;
23
- recipient: string;
24
- sender: string;
25
- domain: string;
26
- subject?: string;
27
- bounceType: TBounceType;
28
- bounceCategory: TBounceCategory;
29
- timestamp: number;
30
- smtpResponse?: string;
31
- diagnosticCode?: string;
32
- statusCode?: string;
33
- processed: boolean;
34
- retryCount?: number;
35
- nextRetryTime?: number;
16
+ export interface ISmtpLogEntry {
17
+ timestamp: string;
18
+ direction: 'client' | 'server';
19
+ command: string;
20
+ responseCode?: number;
36
21
  }
37
- export type TSecurityLogLevel = 'info' | 'warn' | 'error' | 'critical';
38
- export type TSecurityEventType = 'authentication' | 'access_control' | 'email_validation' | 'email_processing' | 'email_forwarding' | 'email_delivery' | 'dkim' | 'spf' | 'dmarc' | 'rate_limit' | 'rate_limiting' | 'spam' | 'malware' | 'connection' | 'data_exposure' | 'configuration' | 'ip_reputation' | 'rejected_connection';
39
- export interface ISecurityIncident {
40
- timestamp: number;
41
- level: TSecurityLogLevel;
42
- type: TSecurityEventType;
43
- message: string;
44
- details?: any;
45
- ipAddress?: string;
46
- userId?: string;
47
- sessionId?: string;
48
- emailId?: string;
49
- domain?: string;
50
- action?: string;
51
- result?: string;
52
- success?: boolean;
22
+ export interface IConnectionInfo {
23
+ sourceIp: string;
24
+ sourceHostname: string;
25
+ destinationIp: string;
26
+ destinationPort: number;
27
+ tlsVersion: string;
28
+ tlsCipher: string;
29
+ authenticated: boolean;
30
+ authMethod: string;
31
+ authUser: string;
53
32
  }
54
- export interface IReq_GetQueuedEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetQueuedEmails> {
55
- method: 'getQueuedEmails';
56
- request: {
57
- identity?: authInterfaces.IIdentity;
58
- status?: TEmailQueueStatus;
59
- limit?: number;
60
- offset?: number;
61
- };
62
- response: {
63
- items: IEmailQueueItem[];
64
- total: number;
65
- };
33
+ export interface IAuthenticationResults {
34
+ spf: 'pass' | 'fail' | 'softfail' | 'neutral' | 'none';
35
+ spfDomain: string;
36
+ dkim: 'pass' | 'fail' | 'none';
37
+ dkimDomain: string;
38
+ dmarc: 'pass' | 'fail' | 'none';
39
+ dmarcPolicy: string;
40
+ }
41
+ export interface IEmailDetail extends IEmail {
42
+ toList: string[];
43
+ cc?: string[];
44
+ smtpLog: ISmtpLogEntry[];
45
+ connectionInfo: IConnectionInfo;
46
+ authenticationResults: IAuthenticationResults;
47
+ rejectionReason?: string;
48
+ bounceMessage?: string;
49
+ headers: Record<string, string>;
50
+ body: string;
66
51
  }
67
- export interface IReq_GetSentEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSentEmails> {
68
- method: 'getSentEmails';
52
+ export interface IReq_GetAllEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetAllEmails> {
53
+ method: 'getAllEmails';
69
54
  request: {
70
55
  identity?: authInterfaces.IIdentity;
71
- limit?: number;
72
- offset?: number;
73
56
  };
74
57
  response: {
75
- items: IEmailQueueItem[];
76
- total: number;
58
+ emails: IEmail[];
77
59
  };
78
60
  }
79
- export interface IReq_GetFailedEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetFailedEmails> {
80
- method: 'getFailedEmails';
61
+ export interface IReq_GetEmailDetail extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetEmailDetail> {
62
+ method: 'getEmailDetail';
81
63
  request: {
82
64
  identity?: authInterfaces.IIdentity;
83
- limit?: number;
84
- offset?: number;
65
+ emailId: string;
85
66
  };
86
67
  response: {
87
- items: IEmailQueueItem[];
88
- total: number;
68
+ email: IEmailDetail | null;
89
69
  };
90
70
  }
91
71
  export interface IReq_ResendEmail extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ResendEmail> {
@@ -100,40 +80,3 @@ export interface IReq_ResendEmail extends plugins.typedrequestInterfaces.impleme
100
80
  error?: string;
101
81
  };
102
82
  }
103
- export interface IReq_GetSecurityIncidents extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityIncidents> {
104
- method: 'getSecurityIncidents';
105
- request: {
106
- identity?: authInterfaces.IIdentity;
107
- type?: TSecurityEventType;
108
- level?: TSecurityLogLevel;
109
- limit?: number;
110
- };
111
- response: {
112
- incidents: ISecurityIncident[];
113
- total: number;
114
- };
115
- }
116
- export interface IReq_GetBounceRecords extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetBounceRecords> {
117
- method: 'getBounceRecords';
118
- request: {
119
- identity?: authInterfaces.IIdentity;
120
- limit?: number;
121
- offset?: number;
122
- };
123
- response: {
124
- records: IBounceRecord[];
125
- suppressionList: string[];
126
- total: number;
127
- };
128
- }
129
- export interface IReq_RemoveFromSuppressionList extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RemoveFromSuppressionList> {
130
- method: 'removeFromSuppressionList';
131
- request: {
132
- identity?: authInterfaces.IIdentity;
133
- email: string;
134
- };
135
- response: {
136
- success: boolean;
137
- error?: string;
138
- };
139
- }
@@ -7,3 +7,5 @@ export * from './radius.js';
7
7
  export * from './email-ops.js';
8
8
  export * from './certificate.js';
9
9
  export * from './remoteingress.js';
10
+ export * from './route-management.js';
11
+ export * from './api-tokens.js';
@@ -7,4 +7,6 @@ export * from './radius.js';
7
7
  export * from './email-ops.js';
8
8
  export * from './certificate.js';
9
9
  export * from './remoteingress.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUMifQ==
10
+ export * from './route-management.js';
11
+ export * from './api-tokens.js';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDIn0=
@@ -0,0 +1,114 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type * as authInterfaces from '../data/auth.js';
3
+ import type { IMergedRoute, IRouteWarning } from '../data/route-management.js';
4
+ import type { IRouteConfig } from '@push.rocks/smartproxy';
5
+ /**
6
+ * Get all merged routes (hardcoded + programmatic) with warnings.
7
+ */
8
+ export interface IReq_GetMergedRoutes extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetMergedRoutes> {
9
+ method: 'getMergedRoutes';
10
+ request: {
11
+ identity?: authInterfaces.IIdentity;
12
+ apiToken?: string;
13
+ };
14
+ response: {
15
+ routes: IMergedRoute[];
16
+ warnings: IRouteWarning[];
17
+ };
18
+ }
19
+ /**
20
+ * Create a new programmatic route.
21
+ */
22
+ export interface IReq_CreateRoute extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateRoute> {
23
+ method: 'createRoute';
24
+ request: {
25
+ identity?: authInterfaces.IIdentity;
26
+ apiToken?: string;
27
+ route: IRouteConfig;
28
+ enabled?: boolean;
29
+ };
30
+ response: {
31
+ success: boolean;
32
+ storedRouteId?: string;
33
+ message?: string;
34
+ };
35
+ }
36
+ /**
37
+ * Update a programmatic route.
38
+ */
39
+ export interface IReq_UpdateRoute extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateRoute> {
40
+ method: 'updateRoute';
41
+ request: {
42
+ identity?: authInterfaces.IIdentity;
43
+ apiToken?: string;
44
+ id: string;
45
+ route?: Partial<IRouteConfig>;
46
+ enabled?: boolean;
47
+ };
48
+ response: {
49
+ success: boolean;
50
+ message?: string;
51
+ };
52
+ }
53
+ /**
54
+ * Delete a programmatic route.
55
+ */
56
+ export interface IReq_DeleteRoute extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteRoute> {
57
+ method: 'deleteRoute';
58
+ request: {
59
+ identity?: authInterfaces.IIdentity;
60
+ apiToken?: string;
61
+ id: string;
62
+ };
63
+ response: {
64
+ success: boolean;
65
+ message?: string;
66
+ };
67
+ }
68
+ /**
69
+ * Set an override on a hardcoded route (disable/enable by name).
70
+ */
71
+ export interface IReq_SetRouteOverride extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SetRouteOverride> {
72
+ method: 'setRouteOverride';
73
+ request: {
74
+ identity?: authInterfaces.IIdentity;
75
+ apiToken?: string;
76
+ routeName: string;
77
+ enabled: boolean;
78
+ };
79
+ response: {
80
+ success: boolean;
81
+ message?: string;
82
+ };
83
+ }
84
+ /**
85
+ * Remove an override from a hardcoded route (restore default behavior).
86
+ */
87
+ export interface IReq_RemoveRouteOverride extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RemoveRouteOverride> {
88
+ method: 'removeRouteOverride';
89
+ request: {
90
+ identity?: authInterfaces.IIdentity;
91
+ apiToken?: string;
92
+ routeName: string;
93
+ };
94
+ response: {
95
+ success: boolean;
96
+ message?: string;
97
+ };
98
+ }
99
+ /**
100
+ * Toggle a programmatic route on/off by id.
101
+ */
102
+ export interface IReq_ToggleRoute extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ToggleRoute> {
103
+ method: 'toggleRoute';
104
+ request: {
105
+ identity?: authInterfaces.IIdentity;
106
+ apiToken?: string;
107
+ id: string;
108
+ enabled: boolean;
109
+ };
110
+ response: {
111
+ success: boolean;
112
+ message?: string;
113
+ };
114
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvcm91dGUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '7.4.3',
6
+ version: '8.1.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
@@ -82,14 +82,7 @@ export interface ICertificateState {
82
82
  lastUpdated: number;
83
83
  }
84
84
  export interface IEmailOpsState {
85
- currentView: 'queued' | 'sent' | 'failed' | 'received' | 'security';
86
- queuedEmails: interfaces.requests.IEmailQueueItem[];
87
- sentEmails: interfaces.requests.IEmailQueueItem[];
88
- failedEmails: interfaces.requests.IEmailQueueItem[];
89
- securityIncidents: interfaces.requests.ISecurityIncident[];
90
- bounceRecords: interfaces.requests.IBounceRecord[];
91
- suppressionList: string[];
92
- selectedEmailId: string | null;
85
+ emails: interfaces.requests.IEmail[];
93
86
  isLoading: boolean;
94
87
  error: string | null;
95
88
  lastUpdated: number;
@@ -112,6 +105,15 @@ export interface IRemoteIngressState {
112
105
  lastUpdated: number;
113
106
  }
114
107
  export declare const remoteIngressStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IRemoteIngressState>;
108
+ export interface IRouteManagementState {
109
+ mergedRoutes: interfaces.data.IMergedRoute[];
110
+ warnings: interfaces.data.IRouteWarning[];
111
+ apiTokens: interfaces.data.IApiTokenInfo[];
112
+ isLoading: boolean;
113
+ error: string | null;
114
+ lastUpdated: number;
115
+ }
116
+ export declare const routeManagementStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IRouteManagementState>;
115
117
  export declare const loginAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ILoginState, {
116
118
  username: string;
117
119
  password: string;
@@ -127,14 +129,7 @@ export declare const fetchRecentLogsAction: plugins.deesElement.domtools.plugins
127
129
  export declare const toggleAutoRefreshAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IUiState, unknown>;
128
130
  export declare const setActiveViewAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IUiState, string>;
129
131
  export declare const fetchNetworkStatsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
130
- export declare const setEmailOpsViewAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, "failed" | "security" | "queued" | "sent" | "received">;
131
- export declare const fetchQueuedEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
132
- export declare const fetchSentEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
133
- export declare const fetchFailedEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
134
- export declare const fetchSecurityIncidentsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
135
- export declare const fetchBounceRecordsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
136
- export declare const resendEmailAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, string>;
137
- export declare const removeFromSuppressionListAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, string>;
132
+ export declare const fetchAllEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
138
133
  export declare const fetchCertificateOverviewAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ICertificateState, unknown>;
139
134
  export declare const reprovisionCertificateAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ICertificateState, string>;
140
135
  export declare const deleteCertificateAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ICertificateState, string>;
@@ -186,3 +181,30 @@ export declare const toggleRemoteIngressAction: plugins.deesElement.domtools.plu
186
181
  id: string;
187
182
  enabled: boolean;
188
183
  }>;
184
+ export declare const fetchMergedRoutesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, unknown>;
185
+ export declare const createRouteAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, {
186
+ route: any;
187
+ enabled?: boolean;
188
+ }>;
189
+ export declare const deleteRouteAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, string>;
190
+ export declare const toggleRouteAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, {
191
+ id: string;
192
+ enabled: boolean;
193
+ }>;
194
+ export declare const setRouteOverrideAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, {
195
+ routeName: string;
196
+ enabled: boolean;
197
+ }>;
198
+ export declare const removeRouteOverrideAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, string>;
199
+ export declare const fetchApiTokensAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, unknown>;
200
+ export declare function createApiToken(name: string, scopes: interfaces.data.TApiTokenScope[], expiresInDays?: number | null): Promise<{
201
+ success: boolean;
202
+ tokenId?: string;
203
+ tokenValue?: string;
204
+ message?: string;
205
+ }>;
206
+ export declare const revokeApiTokenAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, string>;
207
+ export declare const toggleApiTokenAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, {
208
+ id: string;
209
+ enabled: boolean;
210
+ }>;