@serve.zone/dcrouter 5.0.2 → 5.0.4

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 +30539 -0
  2. package/dist_serve/bundle.js.map +7 -0
  3. package/dist_serve/index.html +1 -0
  4. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  5. package/dist_ts/00_commitinfo_data.js +9 -0
  6. package/dist_ts/cache/classes.cache.cleaner.d.ts +47 -0
  7. package/dist_ts/cache/classes.cache.cleaner.js +130 -0
  8. package/dist_ts/cache/classes.cached.document.d.ts +76 -0
  9. package/dist_ts/cache/classes.cached.document.js +100 -0
  10. package/dist_ts/cache/classes.cachedb.d.ts +60 -0
  11. package/dist_ts/cache/classes.cachedb.js +126 -0
  12. package/dist_ts/cache/documents/classes.cached.email.d.ts +125 -0
  13. package/dist_ts/cache/documents/classes.cached.email.js +337 -0
  14. package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +119 -0
  15. package/dist_ts/cache/documents/classes.cached.ip.reputation.js +323 -0
  16. package/dist_ts/cache/documents/index.d.ts +2 -0
  17. package/dist_ts/cache/documents/index.js +3 -0
  18. package/dist_ts/cache/index.d.ts +4 -0
  19. package/dist_ts/cache/index.js +7 -0
  20. package/dist_ts/classes.dcrouter.d.ts +276 -0
  21. package/dist_ts/classes.dcrouter.js +1033 -0
  22. package/dist_ts/config/index.d.ts +1 -0
  23. package/dist_ts/config/index.js +3 -0
  24. package/dist_ts/config/validator.d.ts +104 -0
  25. package/dist_ts/config/validator.js +152 -0
  26. package/dist_ts/errors/base.errors.d.ts +224 -0
  27. package/dist_ts/errors/base.errors.js +320 -0
  28. package/dist_ts/errors/error-handler.d.ts +98 -0
  29. package/dist_ts/errors/error-handler.js +282 -0
  30. package/dist_ts/errors/error.codes.d.ts +115 -0
  31. package/dist_ts/errors/error.codes.js +136 -0
  32. package/dist_ts/errors/index.d.ts +54 -0
  33. package/dist_ts/errors/index.js +136 -0
  34. package/dist_ts/errors/reputation.errors.d.ts +183 -0
  35. package/dist_ts/errors/reputation.errors.js +292 -0
  36. package/dist_ts/index.d.ts +6 -0
  37. package/dist_ts/index.js +9 -0
  38. package/dist_ts/logger.d.ts +17 -0
  39. package/dist_ts/logger.js +76 -0
  40. package/dist_ts/monitoring/classes.metricscache.d.ts +32 -0
  41. package/dist_ts/monitoring/classes.metricscache.js +63 -0
  42. package/dist_ts/monitoring/classes.metricsmanager.d.ts +112 -0
  43. package/dist_ts/monitoring/classes.metricsmanager.js +446 -0
  44. package/dist_ts/monitoring/index.d.ts +1 -0
  45. package/dist_ts/monitoring/index.js +2 -0
  46. package/dist_ts/opsserver/classes.opsserver.d.ts +22 -0
  47. package/dist_ts/opsserver/classes.opsserver.js +56 -0
  48. package/dist_ts/opsserver/handlers/admin.handler.d.ts +31 -0
  49. package/dist_ts/opsserver/handlers/admin.handler.js +180 -0
  50. package/dist_ts/opsserver/handlers/config.handler.d.ts +9 -0
  51. package/dist_ts/opsserver/handlers/config.handler.js +67 -0
  52. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +12 -0
  53. package/dist_ts/opsserver/handlers/email-ops.handler.js +219 -0
  54. package/dist_ts/opsserver/handlers/index.d.ts +7 -0
  55. package/dist_ts/opsserver/handlers/index.js +8 -0
  56. package/dist_ts/opsserver/handlers/logs.handler.d.ts +10 -0
  57. package/dist_ts/opsserver/handlers/logs.handler.js +122 -0
  58. package/dist_ts/opsserver/handlers/radius.handler.d.ts +8 -0
  59. package/dist_ts/opsserver/handlers/radius.handler.js +296 -0
  60. package/dist_ts/opsserver/handlers/security.handler.d.ts +11 -0
  61. package/dist_ts/opsserver/handlers/security.handler.js +217 -0
  62. package/dist_ts/opsserver/handlers/stats.handler.d.ts +13 -0
  63. package/dist_ts/opsserver/handlers/stats.handler.js +366 -0
  64. package/dist_ts/opsserver/helpers/guards.d.ts +25 -0
  65. package/dist_ts/opsserver/helpers/guards.js +41 -0
  66. package/dist_ts/opsserver/index.d.ts +1 -0
  67. package/dist_ts/opsserver/index.js +2 -0
  68. package/dist_ts/paths.d.ts +16 -0
  69. package/dist_ts/paths.js +43 -0
  70. package/dist_ts/plugins.d.ts +78 -0
  71. package/dist_ts/plugins.js +112 -0
  72. package/dist_ts/radius/classes.accounting.manager.d.ts +218 -0
  73. package/dist_ts/radius/classes.accounting.manager.js +417 -0
  74. package/dist_ts/radius/classes.radius.server.d.ts +171 -0
  75. package/dist_ts/radius/classes.radius.server.js +385 -0
  76. package/dist_ts/radius/classes.vlan.manager.d.ts +128 -0
  77. package/dist_ts/radius/classes.vlan.manager.js +272 -0
  78. package/dist_ts/radius/index.d.ts +13 -0
  79. package/dist_ts/radius/index.js +14 -0
  80. package/dist_ts/security/classes.contentscanner.d.ts +160 -0
  81. package/dist_ts/security/classes.contentscanner.js +637 -0
  82. package/dist_ts/security/classes.ipreputationchecker.d.ts +150 -0
  83. package/dist_ts/security/classes.ipreputationchecker.js +512 -0
  84. package/dist_ts/security/classes.securitylogger.d.ts +140 -0
  85. package/dist_ts/security/classes.securitylogger.js +235 -0
  86. package/dist_ts/security/index.d.ts +3 -0
  87. package/dist_ts/security/index.js +4 -0
  88. package/dist_ts/sms/classes.smsservice.d.ts +15 -0
  89. package/dist_ts/sms/classes.smsservice.js +72 -0
  90. package/dist_ts/sms/config/sms.config.d.ts +93 -0
  91. package/dist_ts/sms/config/sms.config.js +2 -0
  92. package/dist_ts/sms/config/sms.schema.d.ts +5 -0
  93. package/dist_ts/sms/config/sms.schema.js +121 -0
  94. package/dist_ts/sms/index.d.ts +1 -0
  95. package/dist_ts/sms/index.js +2 -0
  96. package/dist_ts/storage/classes.storagemanager.d.ts +82 -0
  97. package/dist_ts/storage/classes.storagemanager.js +344 -0
  98. package/dist_ts/storage/index.d.ts +1 -0
  99. package/dist_ts/storage/index.js +3 -0
  100. package/dist_ts_interfaces/data/auth.d.ts +8 -0
  101. package/dist_ts_interfaces/data/auth.js +2 -0
  102. package/dist_ts_interfaces/data/index.d.ts +2 -0
  103. package/dist_ts_interfaces/data/index.js +3 -0
  104. package/dist_ts_interfaces/data/stats.d.ts +120 -0
  105. package/dist_ts_interfaces/data/stats.js +2 -0
  106. package/{ts_interfaces/index.ts → dist_ts_interfaces/index.d.ts} +1 -5
  107. package/dist_ts_interfaces/index.js +8 -0
  108. package/{ts_interfaces/plugins.ts → dist_ts_interfaces/plugins.d.ts} +1 -5
  109. package/dist_ts_interfaces/plugins.js +4 -0
  110. package/dist_ts_interfaces/requests/admin.d.ts +31 -0
  111. package/dist_ts_interfaces/requests/admin.js +3 -0
  112. package/dist_ts_interfaces/requests/combined.stats.d.ts +24 -0
  113. package/dist_ts_interfaces/requests/combined.stats.js +2 -0
  114. package/dist_ts_interfaces/requests/config.d.ts +13 -0
  115. package/dist_ts_interfaces/requests/config.js +3 -0
  116. package/dist_ts_interfaces/requests/email-ops.d.ts +139 -0
  117. package/dist_ts_interfaces/requests/email-ops.js +3 -0
  118. package/{ts_interfaces/requests/index.ts → dist_ts_interfaces/requests/index.d.ts} +1 -1
  119. package/dist_ts_interfaces/requests/index.js +8 -0
  120. package/dist_ts_interfaces/requests/logs.d.ts +34 -0
  121. package/dist_ts_interfaces/requests/logs.js +4 -0
  122. package/dist_ts_interfaces/requests/radius.d.ts +268 -0
  123. package/dist_ts_interfaces/requests/radius.js +3 -0
  124. package/dist_ts_interfaces/requests/stats.d.ts +131 -0
  125. package/dist_ts_interfaces/requests/stats.js +4 -0
  126. package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
  127. package/dist_ts_web/00_commitinfo_data.js +9 -0
  128. package/dist_ts_web/appstate.d.ts +96 -0
  129. package/dist_ts_web/appstate.js +587 -0
  130. package/dist_ts_web/elements/index.d.ts +8 -0
  131. package/dist_ts_web/elements/index.js +9 -0
  132. package/dist_ts_web/elements/ops-dashboard.d.ts +23 -0
  133. package/dist_ts_web/elements/ops-dashboard.js +271 -0
  134. package/dist_ts_web/elements/ops-view-config.d.ts +17 -0
  135. package/dist_ts_web/elements/ops-view-config.js +414 -0
  136. package/dist_ts_web/elements/ops-view-emails.d.ts +44 -0
  137. package/dist_ts_web/elements/ops-view-emails.js +880 -0
  138. package/dist_ts_web/elements/ops-view-logs.d.ts +13 -0
  139. package/dist_ts_web/elements/ops-view-logs.js +249 -0
  140. package/dist_ts_web/elements/ops-view-network.d.ts +65 -0
  141. package/dist_ts_web/elements/ops-view-network.js +579 -0
  142. package/dist_ts_web/elements/ops-view-overview.d.ts +14 -0
  143. package/dist_ts_web/elements/ops-view-overview.js +344 -0
  144. package/dist_ts_web/elements/ops-view-security.d.ts +21 -0
  145. package/dist_ts_web/elements/ops-view-security.js +568 -0
  146. package/dist_ts_web/elements/shared/css.d.ts +1 -0
  147. package/dist_ts_web/elements/shared/css.js +10 -0
  148. package/dist_ts_web/elements/shared/index.d.ts +2 -0
  149. package/dist_ts_web/elements/shared/index.js +3 -0
  150. package/dist_ts_web/elements/shared/ops-sectionheading.d.ts +5 -0
  151. package/dist_ts_web/elements/shared/ops-sectionheading.js +82 -0
  152. package/dist_ts_web/index.d.ts +1 -0
  153. package/dist_ts_web/index.js +10 -0
  154. package/dist_ts_web/plugins.d.ts +4 -0
  155. package/dist_ts_web/plugins.js +7 -0
  156. package/dist_ts_web/router.d.ts +25 -0
  157. package/dist_ts_web/router.js +165 -0
  158. package/package.json +22 -18
  159. package/readme.hints.md +3 -3
  160. package/readme.md +3 -3
  161. package/ts/00_commitinfo_data.ts +1 -1
  162. package/ts/cache/classes.cachedb.ts +3 -2
  163. package/ts/classes.dcrouter.ts +2 -2
  164. package/ts/paths.ts +11 -5
  165. package/ts_web/00_commitinfo_data.ts +1 -1
  166. package/.dockerignore +0 -1
  167. package/.gitea/workflows/docker_nottags.yaml +0 -71
  168. package/.gitea/workflows/docker_tags.yaml +0 -106
  169. package/.playwright-mcp/dcrouter-scrollbar-issue.png +0 -0
  170. package/.playwright-mcp/page-2026-02-01T23-10-23-737Z.png +0 -0
  171. package/.playwright-mcp/page-2026-02-01T23-11-19-449Z.png +0 -0
  172. package/.playwright-mcp/page-2026-02-01T23-12-03-126Z.png +0 -0
  173. package/.playwright-mcp/page-2026-02-01T23-12-15-576Z.png +0 -0
  174. package/.vscode/launch.json +0 -11
  175. package/.vscode/settings.json +0 -26
  176. package/Dockerfile +0 -46
  177. package/changelog.md +0 -350
  178. package/cli.child.js +0 -4
  179. package/cli.child.ts +0 -4
  180. package/cli.ts.js +0 -5
  181. package/html/index.html +0 -121
  182. package/test/readme.md +0 -443
  183. package/test/test.config.md +0 -175
  184. package/test/test.contentscanner.ts +0 -265
  185. package/test/test.dcrouter.email.ts +0 -159
  186. package/test/test.dns-server-config.ts +0 -140
  187. package/test/test.dns-socket-handler.ts +0 -148
  188. package/test/test.errors.ts +0 -274
  189. package/test/test.ipreputationchecker.ts +0 -179
  190. package/test/test.jwt-auth.ts +0 -131
  191. package/test/test.opsserver-api.ts +0 -84
  192. package/test/test.protected-endpoint.ts +0 -120
  193. package/test/test.storagemanager.ts +0 -289
  194. package/test_watch/devserver.ts +0 -35
  195. package/ts_interfaces/data/auth.ts +0 -8
  196. package/ts_interfaces/data/index.ts +0 -2
  197. package/ts_interfaces/data/stats.ts +0 -131
  198. package/ts_interfaces/readme.md +0 -205
  199. package/ts_interfaces/requests/admin.ts +0 -46
  200. package/ts_interfaces/requests/combined.stats.ts +0 -25
  201. package/ts_interfaces/requests/config.ts +0 -18
  202. package/ts_interfaces/requests/email-ops.ts +0 -239
  203. package/ts_interfaces/requests/logs.ts +0 -44
  204. package/ts_interfaces/requests/radius.ts +0 -329
  205. package/ts_interfaces/requests/stats.ts +0 -162
  206. package/ts_interfaces/tspublish.json +0 -3
  207. package/tsconfig.json +0 -12
@@ -0,0 +1,139 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ export type TEmailQueueStatus = 'pending' | 'processing' | 'delivered' | 'failed' | 'deferred';
4
+ export interface IEmailQueueItem {
5
+ 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;
17
+ }
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;
36
+ }
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;
53
+ }
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
+ };
66
+ }
67
+ export interface IReq_GetSentEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSentEmails> {
68
+ method: 'getSentEmails';
69
+ request: {
70
+ identity?: authInterfaces.IIdentity;
71
+ limit?: number;
72
+ offset?: number;
73
+ };
74
+ response: {
75
+ items: IEmailQueueItem[];
76
+ total: number;
77
+ };
78
+ }
79
+ export interface IReq_GetFailedEmails extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetFailedEmails> {
80
+ method: 'getFailedEmails';
81
+ request: {
82
+ identity?: authInterfaces.IIdentity;
83
+ limit?: number;
84
+ offset?: number;
85
+ };
86
+ response: {
87
+ items: IEmailQueueItem[];
88
+ total: number;
89
+ };
90
+ }
91
+ export interface IReq_ResendEmail extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ResendEmail> {
92
+ method: 'resendEmail';
93
+ request: {
94
+ identity?: authInterfaces.IIdentity;
95
+ emailId: string;
96
+ };
97
+ response: {
98
+ success: boolean;
99
+ newQueueId?: string;
100
+ error?: string;
101
+ };
102
+ }
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
+ }
@@ -0,0 +1,3 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfaW50ZXJmYWNlcy9yZXF1ZXN0cy9lbWFpbC1vcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQyJ9
@@ -4,4 +4,4 @@ export * from './logs.js';
4
4
  export * from './stats.js';
5
5
  export * from './combined.stats.js';
6
6
  export * from './radius.js';
7
- export * from './email-ops.js';
7
+ export * from './email-ops.js';
@@ -0,0 +1,8 @@
1
+ export * from './admin.js';
2
+ export * from './config.js';
3
+ export * from './logs.js';
4
+ export * from './stats.js';
5
+ export * from './combined.stats.js';
6
+ export * from './radius.js';
7
+ export * from './email-ops.js';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -0,0 +1,34 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ import * as statsInterfaces from '../data/stats.js';
4
+ export interface IReq_GetRecentLogs extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRecentLogs> {
5
+ method: 'getRecentLogs';
6
+ request: {
7
+ identity?: authInterfaces.IIdentity;
8
+ level?: 'debug' | 'info' | 'warn' | 'error';
9
+ category?: 'smtp' | 'dns' | 'security' | 'system' | 'email';
10
+ limit?: number;
11
+ offset?: number;
12
+ search?: string;
13
+ timeRange?: '1h' | '6h' | '24h' | '7d' | '30d';
14
+ };
15
+ response: {
16
+ logs: statsInterfaces.ILogEntry[];
17
+ total: number;
18
+ hasMore: boolean;
19
+ };
20
+ }
21
+ export interface IReq_GetLogStream extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetLogStream> {
22
+ method: 'getLogStream';
23
+ request: {
24
+ identity?: authInterfaces.IIdentity;
25
+ follow?: boolean;
26
+ filters?: {
27
+ level?: string[];
28
+ category?: string[];
29
+ };
30
+ };
31
+ response: {
32
+ logStream: plugins.typedrequestInterfaces.IVirtualStream;
33
+ };
34
+ }
@@ -0,0 +1,4 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ import * as statsInterfaces from '../data/stats.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssY0FBYyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxlQUFlLE1BQU0sa0JBQWtCLENBQUMifQ==
@@ -0,0 +1,268 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ /**
4
+ * Get all RADIUS clients (NAS devices)
5
+ */
6
+ export interface IReq_GetRadiusClients extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRadiusClients> {
7
+ method: 'getRadiusClients';
8
+ request: {
9
+ identity?: authInterfaces.IIdentity;
10
+ };
11
+ response: {
12
+ clients: Array<{
13
+ name: string;
14
+ ipRange: string;
15
+ description?: string;
16
+ enabled: boolean;
17
+ }>;
18
+ };
19
+ }
20
+ /**
21
+ * Add or update a RADIUS client
22
+ */
23
+ export interface IReq_SetRadiusClient extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SetRadiusClient> {
24
+ method: 'setRadiusClient';
25
+ request: {
26
+ identity?: authInterfaces.IIdentity;
27
+ client: {
28
+ name: string;
29
+ ipRange: string;
30
+ secret: string;
31
+ description?: string;
32
+ enabled: boolean;
33
+ };
34
+ };
35
+ response: {
36
+ success: boolean;
37
+ message?: string;
38
+ };
39
+ }
40
+ /**
41
+ * Remove a RADIUS client
42
+ */
43
+ export interface IReq_RemoveRadiusClient extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RemoveRadiusClient> {
44
+ method: 'removeRadiusClient';
45
+ request: {
46
+ identity?: authInterfaces.IIdentity;
47
+ name: string;
48
+ };
49
+ response: {
50
+ success: boolean;
51
+ message?: string;
52
+ };
53
+ }
54
+ /**
55
+ * Get all MAC-to-VLAN mappings
56
+ */
57
+ export interface IReq_GetVlanMappings extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetVlanMappings> {
58
+ method: 'getVlanMappings';
59
+ request: {
60
+ identity?: authInterfaces.IIdentity;
61
+ };
62
+ response: {
63
+ mappings: Array<{
64
+ mac: string;
65
+ vlan: number;
66
+ description?: string;
67
+ enabled: boolean;
68
+ createdAt: number;
69
+ updatedAt: number;
70
+ }>;
71
+ config: {
72
+ defaultVlan: number;
73
+ allowUnknownMacs: boolean;
74
+ };
75
+ };
76
+ }
77
+ /**
78
+ * Add or update a VLAN mapping
79
+ */
80
+ export interface IReq_SetVlanMapping extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SetVlanMapping> {
81
+ method: 'setVlanMapping';
82
+ request: {
83
+ identity?: authInterfaces.IIdentity;
84
+ mapping: {
85
+ mac: string;
86
+ vlan: number;
87
+ description?: string;
88
+ enabled: boolean;
89
+ };
90
+ };
91
+ response: {
92
+ success: boolean;
93
+ mapping?: {
94
+ mac: string;
95
+ vlan: number;
96
+ description?: string;
97
+ enabled: boolean;
98
+ createdAt: number;
99
+ updatedAt: number;
100
+ };
101
+ message?: string;
102
+ };
103
+ }
104
+ /**
105
+ * Remove a VLAN mapping
106
+ */
107
+ export interface IReq_RemoveVlanMapping extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RemoveVlanMapping> {
108
+ method: 'removeVlanMapping';
109
+ request: {
110
+ identity?: authInterfaces.IIdentity;
111
+ mac: string;
112
+ };
113
+ response: {
114
+ success: boolean;
115
+ message?: string;
116
+ };
117
+ }
118
+ /**
119
+ * Update VLAN configuration
120
+ */
121
+ export interface IReq_UpdateVlanConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateVlanConfig> {
122
+ method: 'updateVlanConfig';
123
+ request: {
124
+ identity?: authInterfaces.IIdentity;
125
+ defaultVlan?: number;
126
+ allowUnknownMacs?: boolean;
127
+ };
128
+ response: {
129
+ success: boolean;
130
+ config: {
131
+ defaultVlan: number;
132
+ allowUnknownMacs: boolean;
133
+ };
134
+ };
135
+ }
136
+ /**
137
+ * Test VLAN assignment for a MAC address
138
+ */
139
+ export interface IReq_TestVlanAssignment extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_TestVlanAssignment> {
140
+ method: 'testVlanAssignment';
141
+ request: {
142
+ identity?: authInterfaces.IIdentity;
143
+ mac: string;
144
+ };
145
+ response: {
146
+ assigned: boolean;
147
+ vlan: number;
148
+ isDefault: boolean;
149
+ matchedRule?: {
150
+ mac: string;
151
+ vlan: number;
152
+ description?: string;
153
+ };
154
+ };
155
+ }
156
+ /**
157
+ * Get active RADIUS sessions
158
+ */
159
+ export interface IReq_GetRadiusSessions extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRadiusSessions> {
160
+ method: 'getRadiusSessions';
161
+ request: {
162
+ identity?: authInterfaces.IIdentity;
163
+ filter?: {
164
+ username?: string;
165
+ nasIpAddress?: string;
166
+ vlanId?: number;
167
+ };
168
+ };
169
+ response: {
170
+ sessions: Array<{
171
+ sessionId: string;
172
+ username: string;
173
+ macAddress?: string;
174
+ nasIpAddress: string;
175
+ nasIdentifier?: string;
176
+ vlanId?: number;
177
+ framedIpAddress?: string;
178
+ startTime: number;
179
+ lastUpdateTime: number;
180
+ status: 'active' | 'stopped' | 'terminated';
181
+ inputOctets: number;
182
+ outputOctets: number;
183
+ sessionTime: number;
184
+ }>;
185
+ totalCount: number;
186
+ };
187
+ }
188
+ /**
189
+ * Disconnect a RADIUS session
190
+ */
191
+ export interface IReq_DisconnectRadiusSession extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DisconnectRadiusSession> {
192
+ method: 'disconnectRadiusSession';
193
+ request: {
194
+ identity?: authInterfaces.IIdentity;
195
+ sessionId: string;
196
+ reason?: string;
197
+ };
198
+ response: {
199
+ success: boolean;
200
+ message?: string;
201
+ };
202
+ }
203
+ /**
204
+ * Get accounting summary/report
205
+ */
206
+ export interface IReq_GetRadiusAccountingSummary extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRadiusAccountingSummary> {
207
+ method: 'getRadiusAccountingSummary';
208
+ request: {
209
+ identity?: authInterfaces.IIdentity;
210
+ startTime: number;
211
+ endTime: number;
212
+ };
213
+ response: {
214
+ summary: {
215
+ periodStart: number;
216
+ periodEnd: number;
217
+ totalSessions: number;
218
+ activeSessions: number;
219
+ totalInputBytes: number;
220
+ totalOutputBytes: number;
221
+ totalSessionTime: number;
222
+ averageSessionDuration: number;
223
+ uniqueUsers: number;
224
+ sessionsByVlan: Record<number, number>;
225
+ topUsersByTraffic: Array<{
226
+ username: string;
227
+ totalBytes: number;
228
+ }>;
229
+ };
230
+ };
231
+ }
232
+ /**
233
+ * Get RADIUS server statistics
234
+ */
235
+ export interface IReq_GetRadiusStatistics extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRadiusStatistics> {
236
+ method: 'getRadiusStatistics';
237
+ request: {
238
+ identity?: authInterfaces.IIdentity;
239
+ };
240
+ response: {
241
+ stats: {
242
+ running: boolean;
243
+ uptime: number;
244
+ authRequests: number;
245
+ authAccepts: number;
246
+ authRejects: number;
247
+ accountingRequests: number;
248
+ activeSessions: number;
249
+ vlanMappings: number;
250
+ clients: number;
251
+ };
252
+ vlanStats: {
253
+ totalMappings: number;
254
+ enabledMappings: number;
255
+ exactMatches: number;
256
+ ouiPatterns: number;
257
+ wildcardPatterns: number;
258
+ };
259
+ accountingStats: {
260
+ activeSessions: number;
261
+ totalSessionsStarted: number;
262
+ totalSessionsStopped: number;
263
+ totalInputBytes: number;
264
+ totalOutputBytes: number;
265
+ interimUpdatesReceived: number;
266
+ };
267
+ };
268
+ }
@@ -0,0 +1,3 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfaW50ZXJmYWNlcy9yZXF1ZXN0cy9yYWRpdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQyJ9
@@ -0,0 +1,131 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ import * as statsInterfaces from '../data/stats.js';
4
+ export interface IReq_GetServerStatistics extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetServerStatistics> {
5
+ method: 'getServerStatistics';
6
+ request: {
7
+ identity?: authInterfaces.IIdentity;
8
+ includeHistory?: boolean;
9
+ timeRange?: '1h' | '6h' | '24h' | '7d' | '30d';
10
+ };
11
+ response: {
12
+ stats: statsInterfaces.IServerStats;
13
+ history?: Array<{
14
+ timestamp: number;
15
+ value: number;
16
+ }>;
17
+ };
18
+ }
19
+ export interface IReq_GetEmailStatistics extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetEmailStatistics> {
20
+ method: 'getEmailStatistics';
21
+ request: {
22
+ identity?: authInterfaces.IIdentity;
23
+ timeRange?: '1h' | '6h' | '24h' | '7d' | '30d';
24
+ domain?: string;
25
+ includeDetails?: boolean;
26
+ };
27
+ response: {
28
+ stats: statsInterfaces.IEmailStats;
29
+ domainBreakdown?: {
30
+ [domain: string]: statsInterfaces.IEmailStats;
31
+ };
32
+ };
33
+ }
34
+ export interface IReq_GetDnsStatistics extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDnsStatistics> {
35
+ method: 'getDnsStatistics';
36
+ request: {
37
+ identity?: authInterfaces.IIdentity;
38
+ timeRange?: '1h' | '6h' | '24h' | '7d' | '30d';
39
+ domain?: string;
40
+ includeQueryTypes?: boolean;
41
+ };
42
+ response: {
43
+ stats: statsInterfaces.IDnsStats;
44
+ domainBreakdown?: {
45
+ [domain: string]: statsInterfaces.IDnsStats;
46
+ };
47
+ };
48
+ }
49
+ export interface IReq_GetRateLimitStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRateLimitStatus> {
50
+ method: 'getRateLimitStatus';
51
+ request: {
52
+ identity?: authInterfaces.IIdentity;
53
+ domain?: string;
54
+ ip?: string;
55
+ includeBlocked?: boolean;
56
+ };
57
+ response: {
58
+ limits: statsInterfaces.IRateLimitInfo[];
59
+ globalLimit?: {
60
+ current: number;
61
+ limit: number;
62
+ remaining: number;
63
+ };
64
+ };
65
+ }
66
+ export interface IReq_GetSecurityMetrics extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityMetrics> {
67
+ method: 'getSecurityMetrics';
68
+ request: {
69
+ identity?: authInterfaces.IIdentity;
70
+ timeRange?: '1h' | '6h' | '24h' | '7d' | '30d';
71
+ includeDetails?: boolean;
72
+ };
73
+ response: {
74
+ metrics: statsInterfaces.ISecurityMetrics;
75
+ trends?: {
76
+ spam: Array<{
77
+ timestamp: number;
78
+ value: number;
79
+ }>;
80
+ malware: Array<{
81
+ timestamp: number;
82
+ value: number;
83
+ }>;
84
+ phishing: Array<{
85
+ timestamp: number;
86
+ value: number;
87
+ }>;
88
+ };
89
+ };
90
+ }
91
+ export interface IReq_GetActiveConnections extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetActiveConnections> {
92
+ method: 'getActiveConnections';
93
+ request: {
94
+ identity?: authInterfaces.IIdentity;
95
+ protocol?: 'smtp' | 'smtps' | 'http' | 'https';
96
+ state?: string;
97
+ };
98
+ response: {
99
+ connections: statsInterfaces.IConnectionInfo[];
100
+ summary: {
101
+ total: number;
102
+ byProtocol: {
103
+ [protocol: string]: number;
104
+ };
105
+ byState: {
106
+ [state: string]: number;
107
+ };
108
+ };
109
+ };
110
+ }
111
+ export interface IReq_GetQueueStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetQueueStatus> {
112
+ method: 'getQueueStatus';
113
+ request: {
114
+ identity?: authInterfaces.IIdentity;
115
+ queueName?: string;
116
+ };
117
+ response: {
118
+ queues: statsInterfaces.IQueueStatus[];
119
+ totalItems: number;
120
+ };
121
+ }
122
+ export interface IReq_GetHealthStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetHealthStatus> {
123
+ method: 'getHealthStatus';
124
+ request: {
125
+ identity?: authInterfaces.IIdentity;
126
+ detailed?: boolean;
127
+ };
128
+ response: {
129
+ health: statsInterfaces.IHealthStatus;
130
+ };
131
+ }
@@ -0,0 +1,4 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ import * as statsInterfaces from '../data/stats.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL3N0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxrQkFBa0IsQ0FBQyJ9
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
+ */
4
+ export declare const commitinfo: {
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@serve.zone/dcrouter',
6
+ version: '5.0.4',
7
+ description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9