@serve.zone/dcrouter 11.0.4 → 11.0.5
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.
- package/dist_serve/bundle.js +1 -1
- package/package.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/dist_ts/00_commitinfo_data.d.ts +0 -8
- package/dist_ts/00_commitinfo_data.js +0 -9
- package/dist_ts/cache/classes.cache.cleaner.d.ts +0 -47
- package/dist_ts/cache/classes.cache.cleaner.js +0 -130
- package/dist_ts/cache/documents/classes.cached.email.d.ts +0 -125
- package/dist_ts/cache/documents/classes.cached.email.js +0 -337
- package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +0 -119
- package/dist_ts/cache/documents/classes.cached.ip.reputation.js +0 -323
- package/dist_ts/cache/documents/index.d.ts +0 -2
- package/dist_ts/cache/documents/index.js +0 -3
- package/dist_ts/cache/index.d.ts +0 -4
- package/dist_ts/cache/index.js +0 -7
- package/dist_ts/classes.cert-provision-scheduler.d.ts +0 -53
- package/dist_ts/classes.cert-provision-scheduler.js +0 -110
- package/dist_ts/classes.dcrouter.d.ts +0 -337
- package/dist_ts/classes.dcrouter.js +0 -1405
- package/dist_ts/classes.storage-cert-manager.d.ts +0 -18
- package/dist_ts/classes.storage-cert-manager.js +0 -43
- package/dist_ts/config/classes.api-token-manager.d.ts +0 -46
- package/dist_ts/config/classes.api-token-manager.js +0 -150
- package/dist_ts/config/classes.route-config-manager.d.ts +0 -35
- package/dist_ts/config/classes.route-config-manager.js +0 -231
- package/dist_ts/config/index.d.ts +0 -3
- package/dist_ts/config/index.js +0 -5
- package/dist_ts/config/validator.d.ts +0 -104
- package/dist_ts/config/validator.js +0 -152
- package/dist_ts/errors/base.errors.d.ts +0 -224
- package/dist_ts/errors/base.errors.js +0 -320
- package/dist_ts/errors/error-handler.d.ts +0 -98
- package/dist_ts/errors/error-handler.js +0 -282
- package/dist_ts/errors/error.codes.d.ts +0 -115
- package/dist_ts/errors/error.codes.js +0 -136
- package/dist_ts/errors/index.d.ts +0 -54
- package/dist_ts/errors/index.js +0 -136
- package/dist_ts/errors/reputation.errors.d.ts +0 -183
- package/dist_ts/errors/reputation.errors.js +0 -292
- package/dist_ts/index.d.ts +0 -7
- package/dist_ts/index.js +0 -11
- package/dist_ts/logger.d.ts +0 -21
- package/dist_ts/logger.js +0 -81
- package/dist_ts/monitoring/classes.metricscache.d.ts +0 -32
- package/dist_ts/monitoring/classes.metricscache.js +0 -63
- package/dist_ts/monitoring/classes.metricsmanager.d.ts +0 -178
- package/dist_ts/monitoring/classes.metricsmanager.js +0 -642
- package/dist_ts/monitoring/index.d.ts +0 -1
- package/dist_ts/monitoring/index.js +0 -2
- package/dist_ts/opsserver/classes.opsserver.d.ts +0 -37
- package/dist_ts/opsserver/classes.opsserver.js +0 -85
- package/dist_ts/opsserver/handlers/admin.handler.d.ts +0 -31
- package/dist_ts/opsserver/handlers/admin.handler.js +0 -180
- package/dist_ts/opsserver/handlers/api-token.handler.d.ts +0 -6
- package/dist_ts/opsserver/handlers/api-token.handler.js +0 -62
- package/dist_ts/opsserver/handlers/certificate.handler.d.ts +0 -32
- package/dist_ts/opsserver/handlers/certificate.handler.js +0 -421
- package/dist_ts/opsserver/handlers/config.handler.d.ts +0 -7
- package/dist_ts/opsserver/handlers/config.handler.js +0 -192
- package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +0 -30
- package/dist_ts/opsserver/handlers/email-ops.handler.js +0 -227
- package/dist_ts/opsserver/handlers/index.d.ts +0 -11
- package/dist_ts/opsserver/handlers/index.js +0 -12
- package/dist_ts/opsserver/handlers/logs.handler.d.ts +0 -25
- package/dist_ts/opsserver/handlers/logs.handler.js +0 -256
- package/dist_ts/opsserver/handlers/radius.handler.d.ts +0 -6
- package/dist_ts/opsserver/handlers/radius.handler.js +0 -295
- package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +0 -6
- package/dist_ts/opsserver/handlers/remoteingress.handler.js +0 -156
- package/dist_ts/opsserver/handlers/route-management.handler.d.ts +0 -14
- package/dist_ts/opsserver/handlers/route-management.handler.js +0 -117
- package/dist_ts/opsserver/handlers/security.handler.d.ts +0 -9
- package/dist_ts/opsserver/handlers/security.handler.js +0 -231
- package/dist_ts/opsserver/handlers/stats.handler.d.ts +0 -11
- package/dist_ts/opsserver/handlers/stats.handler.js +0 -399
- package/dist_ts/opsserver/helpers/guards.d.ts +0 -27
- package/dist_ts/opsserver/helpers/guards.js +0 -43
- package/dist_ts/opsserver/index.d.ts +0 -1
- package/dist_ts/opsserver/index.js +0 -2
- package/dist_ts/paths.d.ts +0 -26
- package/dist_ts/paths.js +0 -45
- package/dist_ts/plugins.d.ts +0 -79
- package/dist_ts/plugins.js +0 -113
- package/dist_ts/radius/classes.accounting.manager.d.ts +0 -218
- package/dist_ts/radius/classes.accounting.manager.js +0 -417
- package/dist_ts/radius/classes.radius.server.d.ts +0 -171
- package/dist_ts/radius/classes.radius.server.js +0 -385
- package/dist_ts/radius/classes.vlan.manager.d.ts +0 -128
- package/dist_ts/radius/classes.vlan.manager.js +0 -279
- package/dist_ts/radius/index.d.ts +0 -13
- package/dist_ts/radius/index.js +0 -14
- package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +0 -82
- package/dist_ts/remoteingress/classes.remoteingress-manager.js +0 -227
- package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +0 -59
- package/dist_ts/remoteingress/classes.tunnel-manager.js +0 -165
- package/dist_ts/remoteingress/index.d.ts +0 -2
- package/dist_ts/remoteingress/index.js +0 -3
- package/dist_ts/security/classes.contentscanner.d.ts +0 -164
- package/dist_ts/security/classes.contentscanner.js +0 -642
- package/dist_ts/security/classes.ipreputationchecker.d.ts +0 -160
- package/dist_ts/security/classes.ipreputationchecker.js +0 -537
- package/dist_ts/security/classes.securitylogger.d.ts +0 -144
- package/dist_ts/security/classes.securitylogger.js +0 -233
- package/dist_ts/security/index.d.ts +0 -3
- package/dist_ts/security/index.js +0 -4
- package/dist_ts/sms/classes.smsservice.d.ts +0 -15
- package/dist_ts/sms/classes.smsservice.js +0 -72
- package/dist_ts/sms/config/sms.config.d.ts +0 -93
- package/dist_ts/sms/config/sms.config.js +0 -2
- package/dist_ts/sms/config/sms.schema.d.ts +0 -5
- package/dist_ts/sms/config/sms.schema.js +0 -121
- package/dist_ts/sms/index.d.ts +0 -1
- package/dist_ts/sms/index.js +0 -2
- package/dist_ts/storage/classes.storagemanager.d.ts +0 -83
- package/dist_ts/storage/classes.storagemanager.js +0 -350
- package/dist_ts/storage/index.d.ts +0 -1
- package/dist_ts/storage/index.js +0 -3
|
@@ -1,399 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
-
import { MetricsManager } from '../../monitoring/index.js';
|
|
4
|
-
import { SecurityLogger } from '../../security/classes.securitylogger.js';
|
|
5
|
-
export class StatsHandler {
|
|
6
|
-
opsServerRef;
|
|
7
|
-
constructor(opsServerRef) {
|
|
8
|
-
this.opsServerRef = opsServerRef;
|
|
9
|
-
this.registerHandlers();
|
|
10
|
-
}
|
|
11
|
-
registerHandlers() {
|
|
12
|
-
// All stats endpoints register directly on viewRouter (valid identity required via middleware)
|
|
13
|
-
const router = this.opsServerRef.viewRouter;
|
|
14
|
-
// Server Statistics Handler
|
|
15
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getServerStatistics', async (dataArg, toolsArg) => {
|
|
16
|
-
const stats = await this.collectServerStats();
|
|
17
|
-
return {
|
|
18
|
-
stats: {
|
|
19
|
-
uptime: stats.uptime,
|
|
20
|
-
startTime: Date.now() - (stats.uptime * 1000),
|
|
21
|
-
memoryUsage: stats.memoryUsage,
|
|
22
|
-
cpuUsage: stats.cpuUsage,
|
|
23
|
-
activeConnections: stats.activeConnections,
|
|
24
|
-
totalConnections: stats.totalConnections,
|
|
25
|
-
requestsPerSecond: stats.requestsPerSecond,
|
|
26
|
-
throughput: stats.throughput,
|
|
27
|
-
},
|
|
28
|
-
history: dataArg.includeHistory ? stats.history : undefined,
|
|
29
|
-
};
|
|
30
|
-
}));
|
|
31
|
-
// Email Statistics Handler
|
|
32
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getEmailStatistics', async (dataArg, toolsArg) => {
|
|
33
|
-
const emailServer = this.opsServerRef.dcRouterRef.emailServer;
|
|
34
|
-
if (!emailServer) {
|
|
35
|
-
return {
|
|
36
|
-
stats: {
|
|
37
|
-
sent: 0,
|
|
38
|
-
received: 0,
|
|
39
|
-
bounced: 0,
|
|
40
|
-
queued: 0,
|
|
41
|
-
failed: 0,
|
|
42
|
-
averageDeliveryTime: 0,
|
|
43
|
-
deliveryRate: 0,
|
|
44
|
-
bounceRate: 0,
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
const stats = await this.collectEmailStats();
|
|
49
|
-
return {
|
|
50
|
-
stats: {
|
|
51
|
-
sent: stats.sentToday,
|
|
52
|
-
received: stats.receivedToday,
|
|
53
|
-
bounced: Math.floor(stats.sentToday * stats.bounceRate / 100),
|
|
54
|
-
queued: stats.queueSize,
|
|
55
|
-
failed: 0,
|
|
56
|
-
averageDeliveryTime: 0,
|
|
57
|
-
deliveryRate: stats.deliveryRate,
|
|
58
|
-
bounceRate: stats.bounceRate,
|
|
59
|
-
},
|
|
60
|
-
domainBreakdown: dataArg.includeDetails ? stats.domainBreakdown : undefined,
|
|
61
|
-
};
|
|
62
|
-
}));
|
|
63
|
-
// DNS Statistics Handler
|
|
64
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getDnsStatistics', async (dataArg, toolsArg) => {
|
|
65
|
-
const dnsServer = this.opsServerRef.dcRouterRef.dnsServer;
|
|
66
|
-
if (!dnsServer) {
|
|
67
|
-
return {
|
|
68
|
-
stats: {
|
|
69
|
-
totalQueries: 0,
|
|
70
|
-
cacheHits: 0,
|
|
71
|
-
cacheMisses: 0,
|
|
72
|
-
cacheHitRate: 0,
|
|
73
|
-
activeDomains: 0,
|
|
74
|
-
averageResponseTime: 0,
|
|
75
|
-
queryTypes: {},
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
const stats = await this.collectDnsStats();
|
|
80
|
-
return {
|
|
81
|
-
stats: {
|
|
82
|
-
totalQueries: stats.totalQueries,
|
|
83
|
-
cacheHits: stats.cacheHits,
|
|
84
|
-
cacheMisses: stats.cacheMisses,
|
|
85
|
-
cacheHitRate: stats.cacheHitRate,
|
|
86
|
-
activeDomains: stats.topDomains.length,
|
|
87
|
-
averageResponseTime: 0,
|
|
88
|
-
queryTypes: stats.queryTypes,
|
|
89
|
-
},
|
|
90
|
-
domainBreakdown: dataArg.includeQueryTypes ? stats.domainBreakdown : undefined,
|
|
91
|
-
};
|
|
92
|
-
}));
|
|
93
|
-
// Queue Status Handler
|
|
94
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getQueueStatus', async (dataArg, toolsArg) => {
|
|
95
|
-
const emailServer = this.opsServerRef.dcRouterRef.emailServer;
|
|
96
|
-
const queues = [];
|
|
97
|
-
if (emailServer) {
|
|
98
|
-
const status = await this.getQueueStatus();
|
|
99
|
-
queues.push({
|
|
100
|
-
name: dataArg.queueName || 'default',
|
|
101
|
-
size: status.pending,
|
|
102
|
-
processing: status.active,
|
|
103
|
-
failed: status.failed,
|
|
104
|
-
retrying: status.retrying,
|
|
105
|
-
averageProcessingTime: 0,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
queues,
|
|
110
|
-
totalItems: queues.reduce((sum, q) => sum + q.size + q.processing + q.failed + q.retrying, 0),
|
|
111
|
-
};
|
|
112
|
-
}));
|
|
113
|
-
// Health Status Handler
|
|
114
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getHealthStatus', async (dataArg, toolsArg) => {
|
|
115
|
-
const health = await this.checkHealthStatus();
|
|
116
|
-
return {
|
|
117
|
-
health: {
|
|
118
|
-
healthy: health.healthy,
|
|
119
|
-
uptime: process.uptime(),
|
|
120
|
-
services: health.services.reduce((acc, service) => {
|
|
121
|
-
acc[service.name] = {
|
|
122
|
-
status: service.status,
|
|
123
|
-
message: service.message,
|
|
124
|
-
lastCheck: Date.now(),
|
|
125
|
-
};
|
|
126
|
-
return acc;
|
|
127
|
-
}, {}),
|
|
128
|
-
version: '2.12.0', // TODO: Get from package.json
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
}));
|
|
132
|
-
// Combined Metrics Handler - More efficient for frontend polling
|
|
133
|
-
router.addTypedHandler(new plugins.typedrequest.TypedHandler('getCombinedMetrics', async (dataArg, toolsArg) => {
|
|
134
|
-
const sections = dataArg.sections || {
|
|
135
|
-
server: true,
|
|
136
|
-
email: true,
|
|
137
|
-
dns: true,
|
|
138
|
-
security: true,
|
|
139
|
-
network: true,
|
|
140
|
-
};
|
|
141
|
-
const metrics = {};
|
|
142
|
-
// Run all metrics collection in parallel
|
|
143
|
-
const promises = [];
|
|
144
|
-
if (sections.server) {
|
|
145
|
-
promises.push(this.collectServerStats().then(stats => {
|
|
146
|
-
metrics.server = {
|
|
147
|
-
uptime: stats.uptime,
|
|
148
|
-
startTime: Date.now() - (stats.uptime * 1000),
|
|
149
|
-
memoryUsage: stats.memoryUsage,
|
|
150
|
-
cpuUsage: stats.cpuUsage,
|
|
151
|
-
activeConnections: stats.activeConnections,
|
|
152
|
-
totalConnections: stats.totalConnections,
|
|
153
|
-
requestsPerSecond: stats.requestsPerSecond,
|
|
154
|
-
throughput: stats.throughput,
|
|
155
|
-
};
|
|
156
|
-
}));
|
|
157
|
-
}
|
|
158
|
-
if (sections.email) {
|
|
159
|
-
promises.push(this.collectEmailStats().then(stats => {
|
|
160
|
-
// Get time-series data from MetricsManager
|
|
161
|
-
const timeSeries = this.opsServerRef.dcRouterRef.metricsManager
|
|
162
|
-
? this.opsServerRef.dcRouterRef.metricsManager.getEmailTimeSeries(24)
|
|
163
|
-
: undefined;
|
|
164
|
-
metrics.email = {
|
|
165
|
-
sent: stats.sentToday,
|
|
166
|
-
received: stats.receivedToday,
|
|
167
|
-
bounced: Math.floor(stats.sentToday * stats.bounceRate / 100),
|
|
168
|
-
queued: stats.queueSize,
|
|
169
|
-
failed: 0,
|
|
170
|
-
averageDeliveryTime: 0,
|
|
171
|
-
deliveryRate: stats.deliveryRate,
|
|
172
|
-
bounceRate: stats.bounceRate,
|
|
173
|
-
timeSeries,
|
|
174
|
-
};
|
|
175
|
-
}));
|
|
176
|
-
}
|
|
177
|
-
if (sections.dns) {
|
|
178
|
-
promises.push(this.collectDnsStats().then(stats => {
|
|
179
|
-
// Get time-series data from MetricsManager
|
|
180
|
-
const timeSeries = this.opsServerRef.dcRouterRef.metricsManager
|
|
181
|
-
? this.opsServerRef.dcRouterRef.metricsManager.getDnsTimeSeries(24)
|
|
182
|
-
: undefined;
|
|
183
|
-
metrics.dns = {
|
|
184
|
-
totalQueries: stats.totalQueries,
|
|
185
|
-
cacheHits: stats.cacheHits,
|
|
186
|
-
cacheMisses: stats.cacheMisses,
|
|
187
|
-
cacheHitRate: stats.cacheHitRate,
|
|
188
|
-
activeDomains: stats.topDomains.length,
|
|
189
|
-
averageResponseTime: 0,
|
|
190
|
-
queryTypes: stats.queryTypes,
|
|
191
|
-
timeSeries,
|
|
192
|
-
recentQueries: stats.recentQueries,
|
|
193
|
-
};
|
|
194
|
-
}));
|
|
195
|
-
}
|
|
196
|
-
if (sections.security && this.opsServerRef.dcRouterRef.metricsManager) {
|
|
197
|
-
promises.push(this.opsServerRef.dcRouterRef.metricsManager.getSecurityStats().then(stats => {
|
|
198
|
-
// Get recent events from the SecurityLogger singleton
|
|
199
|
-
const securityLogger = SecurityLogger.getInstance();
|
|
200
|
-
const recentEvents = securityLogger.getRecentEvents(50).map((evt) => ({
|
|
201
|
-
timestamp: evt.timestamp,
|
|
202
|
-
level: evt.level,
|
|
203
|
-
type: evt.type,
|
|
204
|
-
message: evt.message,
|
|
205
|
-
details: evt.details,
|
|
206
|
-
ipAddress: evt.ipAddress,
|
|
207
|
-
domain: evt.domain,
|
|
208
|
-
success: evt.success,
|
|
209
|
-
}));
|
|
210
|
-
metrics.security = {
|
|
211
|
-
blockedIPs: stats.blockedIPs,
|
|
212
|
-
reputationScores: {},
|
|
213
|
-
spamDetected: stats.spamDetected,
|
|
214
|
-
malwareDetected: stats.malwareDetected,
|
|
215
|
-
phishingDetected: stats.phishingDetected,
|
|
216
|
-
authenticationFailures: stats.authFailures,
|
|
217
|
-
suspiciousActivities: stats.totalThreatsBlocked,
|
|
218
|
-
recentEvents,
|
|
219
|
-
};
|
|
220
|
-
}));
|
|
221
|
-
}
|
|
222
|
-
if (sections.network && this.opsServerRef.dcRouterRef.metricsManager) {
|
|
223
|
-
promises.push((async () => {
|
|
224
|
-
const stats = await this.opsServerRef.dcRouterRef.metricsManager.getNetworkStats();
|
|
225
|
-
const serverStats = await this.collectServerStats();
|
|
226
|
-
// Build per-IP bandwidth lookup from throughputByIP
|
|
227
|
-
const ipBandwidth = new Map();
|
|
228
|
-
if (stats.throughputByIP) {
|
|
229
|
-
for (const [ip, tp] of stats.throughputByIP) {
|
|
230
|
-
ipBandwidth.set(ip, { in: tp.in, out: tp.out });
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
metrics.network = {
|
|
234
|
-
totalBandwidth: {
|
|
235
|
-
in: stats.throughputRate.bytesInPerSecond,
|
|
236
|
-
out: stats.throughputRate.bytesOutPerSecond,
|
|
237
|
-
},
|
|
238
|
-
totalBytes: {
|
|
239
|
-
in: stats.totalDataTransferred.bytesIn,
|
|
240
|
-
out: stats.totalDataTransferred.bytesOut,
|
|
241
|
-
},
|
|
242
|
-
activeConnections: serverStats.activeConnections,
|
|
243
|
-
connectionDetails: [],
|
|
244
|
-
topEndpoints: stats.topIPs.map(ip => ({
|
|
245
|
-
endpoint: ip.ip,
|
|
246
|
-
requests: ip.count,
|
|
247
|
-
bandwidth: ipBandwidth.get(ip.ip) || { in: 0, out: 0 },
|
|
248
|
-
})),
|
|
249
|
-
throughputHistory: stats.throughputHistory || [],
|
|
250
|
-
requestsPerSecond: stats.requestsPerSecond || 0,
|
|
251
|
-
requestsTotal: stats.requestsTotal || 0,
|
|
252
|
-
};
|
|
253
|
-
})());
|
|
254
|
-
}
|
|
255
|
-
await Promise.all(promises);
|
|
256
|
-
return {
|
|
257
|
-
metrics,
|
|
258
|
-
timestamp: Date.now(),
|
|
259
|
-
};
|
|
260
|
-
}));
|
|
261
|
-
}
|
|
262
|
-
async collectServerStats() {
|
|
263
|
-
// Get metrics from MetricsManager if available
|
|
264
|
-
if (this.opsServerRef.dcRouterRef.metricsManager) {
|
|
265
|
-
const serverStats = await this.opsServerRef.dcRouterRef.metricsManager.getServerStats();
|
|
266
|
-
return {
|
|
267
|
-
uptime: serverStats.uptime,
|
|
268
|
-
cpuUsage: serverStats.cpuUsage,
|
|
269
|
-
memoryUsage: serverStats.memoryUsage,
|
|
270
|
-
requestsPerSecond: serverStats.requestsPerSecond,
|
|
271
|
-
activeConnections: serverStats.activeConnections,
|
|
272
|
-
totalConnections: serverStats.totalConnections,
|
|
273
|
-
throughput: serverStats.throughput,
|
|
274
|
-
history: [], // TODO: Implement history tracking
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
// Fallback to basic stats if MetricsManager not available
|
|
278
|
-
const uptime = process.uptime();
|
|
279
|
-
const memUsage = process.memoryUsage();
|
|
280
|
-
const cpuUsage = plugins.os.loadavg()[0] * 100 / plugins.os.cpus().length;
|
|
281
|
-
return {
|
|
282
|
-
uptime,
|
|
283
|
-
cpuUsage: {
|
|
284
|
-
user: cpuUsage * 0.7,
|
|
285
|
-
system: cpuUsage * 0.3,
|
|
286
|
-
},
|
|
287
|
-
memoryUsage: {
|
|
288
|
-
heapUsed: memUsage.heapUsed,
|
|
289
|
-
heapTotal: memUsage.heapTotal,
|
|
290
|
-
external: memUsage.external,
|
|
291
|
-
rss: memUsage.rss,
|
|
292
|
-
},
|
|
293
|
-
requestsPerSecond: 0,
|
|
294
|
-
activeConnections: 0,
|
|
295
|
-
totalConnections: 0,
|
|
296
|
-
throughput: { bytesIn: 0, bytesOut: 0, bytesInPerSecond: 0, bytesOutPerSecond: 0 },
|
|
297
|
-
history: [],
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
async collectEmailStats() {
|
|
301
|
-
// Get metrics from MetricsManager if available
|
|
302
|
-
if (this.opsServerRef.dcRouterRef.metricsManager) {
|
|
303
|
-
const emailStats = await this.opsServerRef.dcRouterRef.metricsManager.getEmailStats();
|
|
304
|
-
return {
|
|
305
|
-
sentToday: emailStats.sentToday,
|
|
306
|
-
receivedToday: emailStats.receivedToday,
|
|
307
|
-
bounceRate: emailStats.bounceRate,
|
|
308
|
-
deliveryRate: emailStats.deliveryRate,
|
|
309
|
-
queueSize: emailStats.queueSize,
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
// Fallback if MetricsManager not available
|
|
313
|
-
return {
|
|
314
|
-
sentToday: 0,
|
|
315
|
-
receivedToday: 0,
|
|
316
|
-
bounceRate: 0,
|
|
317
|
-
deliveryRate: 100,
|
|
318
|
-
queueSize: 0,
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
async collectDnsStats() {
|
|
322
|
-
// Get metrics from MetricsManager if available
|
|
323
|
-
if (this.opsServerRef.dcRouterRef.metricsManager) {
|
|
324
|
-
const dnsStats = await this.opsServerRef.dcRouterRef.metricsManager.getDnsStats();
|
|
325
|
-
return {
|
|
326
|
-
queriesPerSecond: dnsStats.queriesPerSecond,
|
|
327
|
-
totalQueries: dnsStats.totalQueries,
|
|
328
|
-
cacheHits: dnsStats.cacheHits,
|
|
329
|
-
cacheMisses: dnsStats.cacheMisses,
|
|
330
|
-
cacheHitRate: dnsStats.cacheHitRate,
|
|
331
|
-
topDomains: dnsStats.topDomains,
|
|
332
|
-
queryTypes: dnsStats.queryTypes,
|
|
333
|
-
recentQueries: dnsStats.recentQueries,
|
|
334
|
-
};
|
|
335
|
-
}
|
|
336
|
-
// Fallback if MetricsManager not available
|
|
337
|
-
return {
|
|
338
|
-
queriesPerSecond: 0,
|
|
339
|
-
totalQueries: 0,
|
|
340
|
-
cacheHits: 0,
|
|
341
|
-
cacheMisses: 0,
|
|
342
|
-
cacheHitRate: 0,
|
|
343
|
-
topDomains: [],
|
|
344
|
-
queryTypes: {},
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
async getQueueStatus() {
|
|
348
|
-
// TODO: Implement actual queue status collection
|
|
349
|
-
return {
|
|
350
|
-
pending: 0,
|
|
351
|
-
active: 0,
|
|
352
|
-
failed: 0,
|
|
353
|
-
retrying: 0,
|
|
354
|
-
items: [],
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
async checkHealthStatus() {
|
|
358
|
-
const services = [];
|
|
359
|
-
// Check HTTP Proxy
|
|
360
|
-
if (this.opsServerRef.dcRouterRef.smartProxy) {
|
|
361
|
-
services.push({
|
|
362
|
-
name: 'HTTP/HTTPS Proxy',
|
|
363
|
-
status: 'healthy',
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
// Check Email Server
|
|
367
|
-
if (this.opsServerRef.dcRouterRef.emailServer) {
|
|
368
|
-
services.push({
|
|
369
|
-
name: 'Email Server',
|
|
370
|
-
status: 'healthy',
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
// Check DNS Server
|
|
374
|
-
if (this.opsServerRef.dcRouterRef.dnsServer) {
|
|
375
|
-
services.push({
|
|
376
|
-
name: 'DNS Server',
|
|
377
|
-
status: 'healthy',
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
// Check OpsServer
|
|
381
|
-
services.push({
|
|
382
|
-
name: 'OpsServer',
|
|
383
|
-
status: 'healthy',
|
|
384
|
-
});
|
|
385
|
-
const healthy = services.every(s => s.status === 'healthy');
|
|
386
|
-
return {
|
|
387
|
-
healthy,
|
|
388
|
-
services,
|
|
389
|
-
checks: [
|
|
390
|
-
{
|
|
391
|
-
name: 'Memory Usage',
|
|
392
|
-
passed: process.memoryUsage().heapUsed < (plugins.os.totalmem() * 0.9),
|
|
393
|
-
message: 'Memory usage within limits',
|
|
394
|
-
},
|
|
395
|
-
],
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL29wc3NlcnZlci9oYW5kbGVycy9zdGF0cy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTFFLE1BQU0sT0FBTyxZQUFZO0lBQ0g7SUFBcEIsWUFBb0IsWUFBdUI7UUFBdkIsaUJBQVksR0FBWixZQUFZLENBQVc7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QiwrRkFBK0Y7UUFDL0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFFNUMsNEJBQTRCO1FBQzVCLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQ25DLHFCQUFxQixFQUNyQixLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDOUMsT0FBTztnQkFDTCxLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQzdDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixpQkFBaUIsRUFBRSxLQUFLLENBQUMs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
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import type { AdminHandler } from '../handlers/admin.handler.js';
|
|
3
|
-
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
4
|
-
/**
|
|
5
|
-
* Helper function to use identity guards in handlers
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* // In a handler:
|
|
9
|
-
* await passGuards(toolsArg, this.opsServerRef.adminHandler.validIdentityGuard, dataArg);
|
|
10
|
-
*/
|
|
11
|
-
export declare function passGuards<T extends {
|
|
12
|
-
identity?: any;
|
|
13
|
-
}>(toolsArg: any, guard: plugins.smartguard.Guard<T>, dataArg: T): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Helper to check admin identity in handlers and middleware.
|
|
16
|
-
* Accepts both optional and required identity for flexibility.
|
|
17
|
-
*/
|
|
18
|
-
export declare function requireAdminIdentity(adminHandler: AdminHandler, dataArg: {
|
|
19
|
-
identity?: interfaces.data.IIdentity;
|
|
20
|
-
}): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Helper to check valid identity in handlers and middleware.
|
|
23
|
-
* Accepts both optional and required identity for flexibility.
|
|
24
|
-
*/
|
|
25
|
-
export declare function requireValidIdentity(adminHandler: AdminHandler, dataArg: {
|
|
26
|
-
identity?: interfaces.data.IIdentity;
|
|
27
|
-
}): Promise<void>;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import * as plugins from '../../plugins.js';
|
|
2
|
-
import * as interfaces from '../../../dist_ts_interfaces/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Helper function to use identity guards in handlers
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* // In a handler:
|
|
8
|
-
* await passGuards(toolsArg, this.opsServerRef.adminHandler.validIdentityGuard, dataArg);
|
|
9
|
-
*/
|
|
10
|
-
export async function passGuards(toolsArg, guard, dataArg) {
|
|
11
|
-
const result = await guard.exec(dataArg);
|
|
12
|
-
if (!result) {
|
|
13
|
-
const failedHint = await guard.getFailedHint(dataArg);
|
|
14
|
-
throw new plugins.typedrequest.TypedResponseError(failedHint || 'Guard check failed');
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Helper to check admin identity in handlers and middleware.
|
|
19
|
-
* Accepts both optional and required identity for flexibility.
|
|
20
|
-
*/
|
|
21
|
-
export async function requireAdminIdentity(adminHandler, dataArg) {
|
|
22
|
-
if (!dataArg.identity) {
|
|
23
|
-
throw new plugins.typedrequest.TypedResponseError('No identity provided');
|
|
24
|
-
}
|
|
25
|
-
const passed = await adminHandler.adminIdentityGuard.exec({ identity: dataArg.identity });
|
|
26
|
-
if (!passed) {
|
|
27
|
-
throw new plugins.typedrequest.TypedResponseError('Admin access required');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Helper to check valid identity in handlers and middleware.
|
|
32
|
-
* Accepts both optional and required identity for flexibility.
|
|
33
|
-
*/
|
|
34
|
-
export async function requireValidIdentity(adminHandler, dataArg) {
|
|
35
|
-
if (!dataArg.identity) {
|
|
36
|
-
throw new plugins.typedrequest.TypedResponseError('No identity provided');
|
|
37
|
-
}
|
|
38
|
-
const passed = await adminHandler.validIdentityGuard.exec({ identity: dataArg.identity });
|
|
39
|
-
if (!passed) {
|
|
40
|
-
throw new plugins.typedrequest.TypedResponseError('Valid identity required');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvb3Bzc2VydmVyL2hlbHBlcnMvZ3VhcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsUUFBYSxFQUNiLEtBQWtDLEVBQ2xDLE9BQVU7SUFFVixNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxVQUFVLEdBQUcsTUFBTSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsWUFBMEIsRUFDMUIsT0FBaUQ7SUFFakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLFlBQTBCLEVBQzFCLE9BQWlEO0lBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0UsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './classes.opsserver.js';
|
package/dist_ts/paths.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export declare const packageDir: string;
|
|
2
|
-
export declare const distServe: string;
|
|
3
|
-
export declare const dcrouterHomeDir: string;
|
|
4
|
-
export declare const dataDir: string;
|
|
5
|
-
export declare const defaultTsmDbPath: string;
|
|
6
|
-
export declare const dnsRecordsDir: string;
|
|
7
|
-
/**
|
|
8
|
-
* Resolve all data paths from a given baseDir.
|
|
9
|
-
* When no baseDir is provided, falls back to ~/.serve.zone/dcrouter.
|
|
10
|
-
* Specific overrides (e.g. DATA_DIR env) take precedence.
|
|
11
|
-
*/
|
|
12
|
-
export declare function resolvePaths(baseDir?: string): {
|
|
13
|
-
dcrouterHomeDir: string;
|
|
14
|
-
dataDir: string;
|
|
15
|
-
defaultTsmDbPath: string;
|
|
16
|
-
defaultStoragePath: string;
|
|
17
|
-
dnsRecordsDir: string;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Ensure only the data directories that are actually used exist.
|
|
21
|
-
*/
|
|
22
|
-
export declare function ensureDataDirectories(resolvedPaths: ReturnType<typeof resolvePaths>): void;
|
|
23
|
-
/**
|
|
24
|
-
* Legacy wrapper — delegates to ensureDataDirectories with module-level defaults.
|
|
25
|
-
*/
|
|
26
|
-
export declare function ensureDirectories(): void;
|
package/dist_ts/paths.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
// Code/asset paths (not affected by baseDir)
|
|
3
|
-
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
|
4
|
-
export const distServe = plugins.path.join(packageDir, './dist_serve');
|
|
5
|
-
// Default base for all dcrouter data (always user-writable)
|
|
6
|
-
export const dcrouterHomeDir = plugins.path.join(plugins.os.homedir(), '.serve.zone', 'dcrouter');
|
|
7
|
-
// Configure data directory with environment variable or default to ~/.serve.zone/dcrouter/data
|
|
8
|
-
const DEFAULT_DATA_PATH = plugins.path.join(dcrouterHomeDir, 'data');
|
|
9
|
-
export const dataDir = process.env.DATA_DIR
|
|
10
|
-
? process.env.DATA_DIR
|
|
11
|
-
: DEFAULT_DATA_PATH;
|
|
12
|
-
// Default TsmDB path for CacheDb
|
|
13
|
-
export const defaultTsmDbPath = plugins.path.join(dcrouterHomeDir, 'tsmdb');
|
|
14
|
-
// DNS records directory (only surviving MTA directory reference)
|
|
15
|
-
export const dnsRecordsDir = plugins.path.join(dataDir, 'dns');
|
|
16
|
-
/**
|
|
17
|
-
* Resolve all data paths from a given baseDir.
|
|
18
|
-
* When no baseDir is provided, falls back to ~/.serve.zone/dcrouter.
|
|
19
|
-
* Specific overrides (e.g. DATA_DIR env) take precedence.
|
|
20
|
-
*/
|
|
21
|
-
export function resolvePaths(baseDir) {
|
|
22
|
-
const root = baseDir ?? plugins.path.join(plugins.os.homedir(), '.serve.zone', 'dcrouter');
|
|
23
|
-
const resolvedDataDir = process.env.DATA_DIR ?? plugins.path.join(root, 'data');
|
|
24
|
-
return {
|
|
25
|
-
dcrouterHomeDir: root,
|
|
26
|
-
dataDir: resolvedDataDir,
|
|
27
|
-
defaultTsmDbPath: plugins.path.join(root, 'tsmdb'),
|
|
28
|
-
defaultStoragePath: plugins.path.join(root, 'storage'),
|
|
29
|
-
dnsRecordsDir: plugins.path.join(resolvedDataDir, 'dns'),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Ensure only the data directories that are actually used exist.
|
|
34
|
-
*/
|
|
35
|
-
export function ensureDataDirectories(resolvedPaths) {
|
|
36
|
-
plugins.fsUtils.ensureDirSync(resolvedPaths.dataDir);
|
|
37
|
-
plugins.fsUtils.ensureDirSync(resolvedPaths.dnsRecordsDir);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Legacy wrapper — delegates to ensureDataDirectories with module-level defaults.
|
|
41
|
-
*/
|
|
42
|
-
export function ensureDirectories() {
|
|
43
|
-
ensureDataDirectories(resolvePaths());
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4Qyw2Q0FBNkM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN6QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUMvRCxLQUFLLENBQ04sQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFdkUsNERBQTREO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRywrRkFBK0Y7QUFDL0YsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtJQUN6QyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO0lBQ3RCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUV0QixpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTVFLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRS9EOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWdCO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEYsT0FBTztRQUNMLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7UUFDbEQsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUN0RCxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQztLQUN6RCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLGFBQThDO0lBQ2xGLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMifQ==
|
package/dist_ts/plugins.d.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import * as dns from 'dns';
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
import * as crypto from 'crypto';
|
|
4
|
-
import * as http from 'http';
|
|
5
|
-
import * as net from 'net';
|
|
6
|
-
import * as os from 'os';
|
|
7
|
-
import * as path from 'path';
|
|
8
|
-
import * as tls from 'tls';
|
|
9
|
-
import * as util from 'util';
|
|
10
|
-
export { dns, fs, crypto, http, net, os, path, tls, util, };
|
|
11
|
-
import * as servezoneInterfaces from '@serve.zone/interfaces';
|
|
12
|
-
import * as remoteingress from '@serve.zone/remoteingress';
|
|
13
|
-
export { servezoneInterfaces, remoteingress, };
|
|
14
|
-
import * as typedrequest from '@api.global/typedrequest';
|
|
15
|
-
import * as typedserver from '@api.global/typedserver';
|
|
16
|
-
import * as typedsocket from '@api.global/typedsocket';
|
|
17
|
-
export { typedrequest, typedserver, typedsocket, };
|
|
18
|
-
import * as projectinfo from '@push.rocks/projectinfo';
|
|
19
|
-
import * as qenv from '@push.rocks/qenv';
|
|
20
|
-
import * as smartacme from '@push.rocks/smartacme';
|
|
21
|
-
import * as smartdata from '@push.rocks/smartdata';
|
|
22
|
-
import * as smartdns from '@push.rocks/smartdns';
|
|
23
|
-
import * as smartfile from '@push.rocks/smartfile';
|
|
24
|
-
import * as smartguard from '@push.rocks/smartguard';
|
|
25
|
-
import * as smartjwt from '@push.rocks/smartjwt';
|
|
26
|
-
import * as smartlog from '@push.rocks/smartlog';
|
|
27
|
-
import * as smartmetrics from '@push.rocks/smartmetrics';
|
|
28
|
-
import * as smartmta from '@push.rocks/smartmta';
|
|
29
|
-
import * as smartmongo from '@push.rocks/smartmongo';
|
|
30
|
-
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
31
|
-
import * as smartpath from '@push.rocks/smartpath';
|
|
32
|
-
import * as smartproxy from '@push.rocks/smartproxy';
|
|
33
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
34
|
-
import * as smartradius from '@push.rocks/smartradius';
|
|
35
|
-
import * as smartrequest from '@push.rocks/smartrequest';
|
|
36
|
-
import * as smartrx from '@push.rocks/smartrx';
|
|
37
|
-
import * as smartunique from '@push.rocks/smartunique';
|
|
38
|
-
export { projectinfo, qenv, smartacme, smartdata, smartdns, smartfile, smartguard, smartjwt, smartlog, smartmetrics, smartmongo, smartmta, smartnetwork, smartpath, smartproxy, smartpromise, smartradius, smartrequest, smartrx, smartunique };
|
|
39
|
-
export type TLogLevel = 'error' | 'warn' | 'info' | 'success' | 'debug';
|
|
40
|
-
import * as cloudflare from '@apiclient.xyz/cloudflare';
|
|
41
|
-
export { cloudflare, };
|
|
42
|
-
import * as tsclass from '@tsclass/tsclass';
|
|
43
|
-
export { tsclass, };
|
|
44
|
-
import * as uuid from 'uuid';
|
|
45
|
-
export { uuid, };
|
|
46
|
-
export declare const fsUtils: {
|
|
47
|
-
/**
|
|
48
|
-
* Ensure a directory exists, creating it recursively if needed (sync)
|
|
49
|
-
*/
|
|
50
|
-
ensureDirSync: (dirPath: string) => void;
|
|
51
|
-
/**
|
|
52
|
-
* Ensure a directory exists, creating it recursively if needed (async)
|
|
53
|
-
*/
|
|
54
|
-
ensureDir: (dirPath: string) => Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* Write JSON content to a file synchronously
|
|
57
|
-
*/
|
|
58
|
-
toFsSync: (content: any, filePath: string) => void;
|
|
59
|
-
/**
|
|
60
|
-
* Write JSON content to a file asynchronously
|
|
61
|
-
*/
|
|
62
|
-
toFs: (content: any, filePath: string) => Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Check if a file or directory exists
|
|
65
|
-
*/
|
|
66
|
-
fileExistsSync: (filePath: string) => boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Check if a file or directory exists (async)
|
|
69
|
-
*/
|
|
70
|
-
fileExists: (filePath: string) => Promise<boolean>;
|
|
71
|
-
/**
|
|
72
|
-
* Read a JSON file synchronously
|
|
73
|
-
*/
|
|
74
|
-
toObjectSync: <T = any>(filePath: string) => T;
|
|
75
|
-
/**
|
|
76
|
-
* Read a JSON file asynchronously
|
|
77
|
-
*/
|
|
78
|
-
toObject: <T = any>(filePath: string) => Promise<T>;
|
|
79
|
-
};
|