@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
package/dist_ts/plugins.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
// node native
|
|
2
|
-
import * as dns from 'dns';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import * as crypto from 'crypto';
|
|
5
|
-
import * as http from 'http';
|
|
6
|
-
import * as net from 'net';
|
|
7
|
-
import * as os from 'os';
|
|
8
|
-
import * as path from 'path';
|
|
9
|
-
import * as tls from 'tls';
|
|
10
|
-
import * as util from 'util';
|
|
11
|
-
export { dns, fs, crypto, http, net, os, path, tls, util, };
|
|
12
|
-
// @serve.zone scope
|
|
13
|
-
import * as servezoneInterfaces from '@serve.zone/interfaces';
|
|
14
|
-
import * as remoteingress from '@serve.zone/remoteingress';
|
|
15
|
-
export { servezoneInterfaces, remoteingress, };
|
|
16
|
-
// @api.global scope
|
|
17
|
-
import * as typedrequest from '@api.global/typedrequest';
|
|
18
|
-
import * as typedserver from '@api.global/typedserver';
|
|
19
|
-
import * as typedsocket from '@api.global/typedsocket';
|
|
20
|
-
export { typedrequest, typedserver, typedsocket, };
|
|
21
|
-
// @push.rocks scope
|
|
22
|
-
import * as projectinfo from '@push.rocks/projectinfo';
|
|
23
|
-
import * as qenv from '@push.rocks/qenv';
|
|
24
|
-
import * as smartacme from '@push.rocks/smartacme';
|
|
25
|
-
import * as smartdata from '@push.rocks/smartdata';
|
|
26
|
-
import * as smartdns from '@push.rocks/smartdns';
|
|
27
|
-
import * as smartfile from '@push.rocks/smartfile';
|
|
28
|
-
import * as smartguard from '@push.rocks/smartguard';
|
|
29
|
-
import * as smartjwt from '@push.rocks/smartjwt';
|
|
30
|
-
import * as smartlog from '@push.rocks/smartlog';
|
|
31
|
-
import * as smartmetrics from '@push.rocks/smartmetrics';
|
|
32
|
-
import * as smartmta from '@push.rocks/smartmta';
|
|
33
|
-
import * as smartmongo from '@push.rocks/smartmongo';
|
|
34
|
-
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
35
|
-
import * as smartpath from '@push.rocks/smartpath';
|
|
36
|
-
import * as smartproxy from '@push.rocks/smartproxy';
|
|
37
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
38
|
-
import * as smartradius from '@push.rocks/smartradius';
|
|
39
|
-
import * as smartrequest from '@push.rocks/smartrequest';
|
|
40
|
-
import * as smartrx from '@push.rocks/smartrx';
|
|
41
|
-
import * as smartunique from '@push.rocks/smartunique';
|
|
42
|
-
export { projectinfo, qenv, smartacme, smartdata, smartdns, smartfile, smartguard, smartjwt, smartlog, smartmetrics, smartmongo, smartmta, smartnetwork, smartpath, smartproxy, smartpromise, smartradius, smartrequest, smartrx, smartunique };
|
|
43
|
-
// apiclient.xyz scope
|
|
44
|
-
import * as cloudflare from '@apiclient.xyz/cloudflare';
|
|
45
|
-
export { cloudflare, };
|
|
46
|
-
// tsclass scope
|
|
47
|
-
import * as tsclass from '@tsclass/tsclass';
|
|
48
|
-
export { tsclass, };
|
|
49
|
-
// third party
|
|
50
|
-
import * as uuid from 'uuid';
|
|
51
|
-
export { uuid, };
|
|
52
|
-
// Filesystem utilities (compatibility helpers for smartfile v13+)
|
|
53
|
-
export const fsUtils = {
|
|
54
|
-
/**
|
|
55
|
-
* Ensure a directory exists, creating it recursively if needed (sync)
|
|
56
|
-
*/
|
|
57
|
-
ensureDirSync: (dirPath) => {
|
|
58
|
-
fs.mkdirSync(dirPath, { recursive: true });
|
|
59
|
-
},
|
|
60
|
-
/**
|
|
61
|
-
* Ensure a directory exists, creating it recursively if needed (async)
|
|
62
|
-
*/
|
|
63
|
-
ensureDir: async (dirPath) => {
|
|
64
|
-
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
* Write JSON content to a file synchronously
|
|
68
|
-
*/
|
|
69
|
-
toFsSync: (content, filePath) => {
|
|
70
|
-
const data = typeof content === 'string' ? content : JSON.stringify(content, null, 2);
|
|
71
|
-
fs.writeFileSync(filePath, data);
|
|
72
|
-
},
|
|
73
|
-
/**
|
|
74
|
-
* Write JSON content to a file asynchronously
|
|
75
|
-
*/
|
|
76
|
-
toFs: async (content, filePath) => {
|
|
77
|
-
const data = typeof content === 'string' ? content : JSON.stringify(content, null, 2);
|
|
78
|
-
await fs.promises.writeFile(filePath, data);
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* Check if a file or directory exists
|
|
82
|
-
*/
|
|
83
|
-
fileExistsSync: (filePath) => {
|
|
84
|
-
return fs.existsSync(filePath);
|
|
85
|
-
},
|
|
86
|
-
/**
|
|
87
|
-
* Check if a file or directory exists (async)
|
|
88
|
-
*/
|
|
89
|
-
fileExists: async (filePath) => {
|
|
90
|
-
try {
|
|
91
|
-
await fs.promises.access(filePath);
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
/**
|
|
99
|
-
* Read a JSON file synchronously
|
|
100
|
-
*/
|
|
101
|
-
toObjectSync: (filePath) => {
|
|
102
|
-
const content = fs.readFileSync(filePath, 'utf8');
|
|
103
|
-
return JSON.parse(content);
|
|
104
|
-
},
|
|
105
|
-
/**
|
|
106
|
-
* Read a JSON file asynchronously
|
|
107
|
-
*/
|
|
108
|
-
toObject: async (filePath) => {
|
|
109
|
-
const content = await fs.promises.readFile(filePath, 'utf8');
|
|
110
|
-
return JSON.parse(content);
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFDTCxHQUFHLEVBQ0gsRUFBRSxFQUNGLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxFQUNILEVBQUUsRUFDRixJQUFJLEVBQ0osR0FBRyxFQUNILElBQUksR0FDTCxDQUFBO0FBRUQsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsYUFBYSxHQUNkLENBQUE7QUFFRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxHQUNaLENBQUE7QUFFRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFdBQVcsTUFBTSx5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
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import type { StorageManager } from '../storage/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* RADIUS accounting session
|
|
4
|
-
*/
|
|
5
|
-
export interface IAccountingSession {
|
|
6
|
-
/** Unique session ID from RADIUS */
|
|
7
|
-
sessionId: string;
|
|
8
|
-
/** Username (often MAC address for MAB) */
|
|
9
|
-
username: string;
|
|
10
|
-
/** MAC address of the device */
|
|
11
|
-
macAddress?: string;
|
|
12
|
-
/** NAS IP address (switch/AP) */
|
|
13
|
-
nasIpAddress: string;
|
|
14
|
-
/** NAS port (physical or virtual) */
|
|
15
|
-
nasPort?: number;
|
|
16
|
-
/** NAS port type */
|
|
17
|
-
nasPortType?: string;
|
|
18
|
-
/** NAS identifier (name) */
|
|
19
|
-
nasIdentifier?: string;
|
|
20
|
-
/** Assigned VLAN */
|
|
21
|
-
vlanId?: number;
|
|
22
|
-
/** Assigned IP address (if any) */
|
|
23
|
-
framedIpAddress?: string;
|
|
24
|
-
/** Called station ID (usually BSSID for wireless) */
|
|
25
|
-
calledStationId?: string;
|
|
26
|
-
/** Calling station ID (usually client MAC) */
|
|
27
|
-
callingStationId?: string;
|
|
28
|
-
/** Session start time */
|
|
29
|
-
startTime: number;
|
|
30
|
-
/** Session end time (0 if active) */
|
|
31
|
-
endTime: number;
|
|
32
|
-
/** Last update time (interim accounting) */
|
|
33
|
-
lastUpdateTime: number;
|
|
34
|
-
/** Session status */
|
|
35
|
-
status: 'active' | 'stopped' | 'terminated';
|
|
36
|
-
/** Termination cause (if stopped) */
|
|
37
|
-
terminateCause?: string;
|
|
38
|
-
/** Input octets (bytes received by NAS from client) */
|
|
39
|
-
inputOctets: number;
|
|
40
|
-
/** Output octets (bytes sent by NAS to client) */
|
|
41
|
-
outputOctets: number;
|
|
42
|
-
/** Input packets */
|
|
43
|
-
inputPackets: number;
|
|
44
|
-
/** Output packets */
|
|
45
|
-
outputPackets: number;
|
|
46
|
-
/** Session duration in seconds */
|
|
47
|
-
sessionTime: number;
|
|
48
|
-
/** Service type */
|
|
49
|
-
serviceType?: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Accounting summary for a time period
|
|
53
|
-
*/
|
|
54
|
-
export interface IAccountingSummary {
|
|
55
|
-
/** Time period start */
|
|
56
|
-
periodStart: number;
|
|
57
|
-
/** Time period end */
|
|
58
|
-
periodEnd: number;
|
|
59
|
-
/** Total sessions */
|
|
60
|
-
totalSessions: number;
|
|
61
|
-
/** Active sessions */
|
|
62
|
-
activeSessions: number;
|
|
63
|
-
/** Total input bytes */
|
|
64
|
-
totalInputBytes: number;
|
|
65
|
-
/** Total output bytes */
|
|
66
|
-
totalOutputBytes: number;
|
|
67
|
-
/** Total session time (seconds) */
|
|
68
|
-
totalSessionTime: number;
|
|
69
|
-
/** Average session duration (seconds) */
|
|
70
|
-
averageSessionDuration: number;
|
|
71
|
-
/** Unique users/devices */
|
|
72
|
-
uniqueUsers: number;
|
|
73
|
-
/** Sessions by VLAN */
|
|
74
|
-
sessionsByVlan: Record<number, number>;
|
|
75
|
-
/** Top users by traffic */
|
|
76
|
-
topUsersByTraffic: Array<{
|
|
77
|
-
username: string;
|
|
78
|
-
totalBytes: number;
|
|
79
|
-
}>;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Accounting manager configuration
|
|
83
|
-
*/
|
|
84
|
-
export interface IAccountingManagerConfig {
|
|
85
|
-
/** Storage key prefix */
|
|
86
|
-
storagePrefix?: string;
|
|
87
|
-
/** Session retention period in days (default: 30) */
|
|
88
|
-
retentionDays?: number;
|
|
89
|
-
/** Enable detailed session logging */
|
|
90
|
-
detailedLogging?: boolean;
|
|
91
|
-
/** Maximum active sessions to track in memory */
|
|
92
|
-
maxActiveSessions?: number;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Manages RADIUS accounting data including:
|
|
96
|
-
* - Session tracking (start/stop/interim)
|
|
97
|
-
* - Data usage tracking (bytes in/out)
|
|
98
|
-
* - Session history and retention
|
|
99
|
-
* - Billing reports and summaries
|
|
100
|
-
*/
|
|
101
|
-
export declare class AccountingManager {
|
|
102
|
-
private activeSessions;
|
|
103
|
-
private config;
|
|
104
|
-
private storageManager?;
|
|
105
|
-
private stats;
|
|
106
|
-
constructor(config?: IAccountingManagerConfig, storageManager?: StorageManager);
|
|
107
|
-
/**
|
|
108
|
-
* Initialize the accounting manager
|
|
109
|
-
*/
|
|
110
|
-
initialize(): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Handle accounting start request
|
|
113
|
-
*/
|
|
114
|
-
handleAccountingStart(data: {
|
|
115
|
-
sessionId: string;
|
|
116
|
-
username: string;
|
|
117
|
-
macAddress?: string;
|
|
118
|
-
nasIpAddress: string;
|
|
119
|
-
nasPort?: number;
|
|
120
|
-
nasPortType?: string;
|
|
121
|
-
nasIdentifier?: string;
|
|
122
|
-
vlanId?: number;
|
|
123
|
-
framedIpAddress?: string;
|
|
124
|
-
calledStationId?: string;
|
|
125
|
-
callingStationId?: string;
|
|
126
|
-
serviceType?: string;
|
|
127
|
-
}): Promise<void>;
|
|
128
|
-
/**
|
|
129
|
-
* Handle accounting interim update request
|
|
130
|
-
*/
|
|
131
|
-
handleAccountingUpdate(data: {
|
|
132
|
-
sessionId: string;
|
|
133
|
-
inputOctets?: number;
|
|
134
|
-
outputOctets?: number;
|
|
135
|
-
inputPackets?: number;
|
|
136
|
-
outputPackets?: number;
|
|
137
|
-
sessionTime?: number;
|
|
138
|
-
}): Promise<void>;
|
|
139
|
-
/**
|
|
140
|
-
* Handle accounting stop request
|
|
141
|
-
*/
|
|
142
|
-
handleAccountingStop(data: {
|
|
143
|
-
sessionId: string;
|
|
144
|
-
terminateCause?: string;
|
|
145
|
-
inputOctets?: number;
|
|
146
|
-
outputOctets?: number;
|
|
147
|
-
inputPackets?: number;
|
|
148
|
-
outputPackets?: number;
|
|
149
|
-
sessionTime?: number;
|
|
150
|
-
}): Promise<void>;
|
|
151
|
-
/**
|
|
152
|
-
* Get an active session by ID
|
|
153
|
-
*/
|
|
154
|
-
getSession(sessionId: string): IAccountingSession | undefined;
|
|
155
|
-
/**
|
|
156
|
-
* Get all active sessions
|
|
157
|
-
*/
|
|
158
|
-
getActiveSessions(): IAccountingSession[];
|
|
159
|
-
/**
|
|
160
|
-
* Get active sessions by username
|
|
161
|
-
*/
|
|
162
|
-
getSessionsByUsername(username: string): IAccountingSession[];
|
|
163
|
-
/**
|
|
164
|
-
* Get active sessions by NAS IP
|
|
165
|
-
*/
|
|
166
|
-
getSessionsByNas(nasIpAddress: string): IAccountingSession[];
|
|
167
|
-
/**
|
|
168
|
-
* Get active sessions by VLAN
|
|
169
|
-
*/
|
|
170
|
-
getSessionsByVlan(vlanId: number): IAccountingSession[];
|
|
171
|
-
/**
|
|
172
|
-
* Get accounting summary for a time period
|
|
173
|
-
*/
|
|
174
|
-
getSummary(startTime: number, endTime: number): Promise<IAccountingSummary>;
|
|
175
|
-
/**
|
|
176
|
-
* Get statistics
|
|
177
|
-
*/
|
|
178
|
-
getStats(): {
|
|
179
|
-
activeSessions: number;
|
|
180
|
-
totalSessionsStarted: number;
|
|
181
|
-
totalSessionsStopped: number;
|
|
182
|
-
totalInputBytes: number;
|
|
183
|
-
totalOutputBytes: number;
|
|
184
|
-
interimUpdatesReceived: number;
|
|
185
|
-
};
|
|
186
|
-
/**
|
|
187
|
-
* Disconnect a session (admin action)
|
|
188
|
-
*/
|
|
189
|
-
disconnectSession(sessionId: string, reason?: string): Promise<boolean>;
|
|
190
|
-
/**
|
|
191
|
-
* Clean up old archived sessions based on retention policy
|
|
192
|
-
*/
|
|
193
|
-
cleanupOldSessions(): Promise<number>;
|
|
194
|
-
/**
|
|
195
|
-
* Find the oldest active session
|
|
196
|
-
*/
|
|
197
|
-
private findOldestSession;
|
|
198
|
-
/**
|
|
199
|
-
* Evict a session from memory
|
|
200
|
-
*/
|
|
201
|
-
private evictSession;
|
|
202
|
-
/**
|
|
203
|
-
* Load active sessions from storage
|
|
204
|
-
*/
|
|
205
|
-
private loadActiveSessions;
|
|
206
|
-
/**
|
|
207
|
-
* Persist a session to storage
|
|
208
|
-
*/
|
|
209
|
-
private persistSession;
|
|
210
|
-
/**
|
|
211
|
-
* Archive a completed session
|
|
212
|
-
*/
|
|
213
|
-
private archiveSession;
|
|
214
|
-
/**
|
|
215
|
-
* Get archived sessions for a time period
|
|
216
|
-
*/
|
|
217
|
-
private getArchivedSessions;
|
|
218
|
-
}
|