@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.
Files changed (118) hide show
  1. package/dist_serve/bundle.js +1 -1
  2. package/package.json +1 -1
  3. package/ts/00_commitinfo_data.ts +1 -1
  4. package/ts_web/00_commitinfo_data.ts +1 -1
  5. package/dist_ts/00_commitinfo_data.d.ts +0 -8
  6. package/dist_ts/00_commitinfo_data.js +0 -9
  7. package/dist_ts/cache/classes.cache.cleaner.d.ts +0 -47
  8. package/dist_ts/cache/classes.cache.cleaner.js +0 -130
  9. package/dist_ts/cache/documents/classes.cached.email.d.ts +0 -125
  10. package/dist_ts/cache/documents/classes.cached.email.js +0 -337
  11. package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +0 -119
  12. package/dist_ts/cache/documents/classes.cached.ip.reputation.js +0 -323
  13. package/dist_ts/cache/documents/index.d.ts +0 -2
  14. package/dist_ts/cache/documents/index.js +0 -3
  15. package/dist_ts/cache/index.d.ts +0 -4
  16. package/dist_ts/cache/index.js +0 -7
  17. package/dist_ts/classes.cert-provision-scheduler.d.ts +0 -53
  18. package/dist_ts/classes.cert-provision-scheduler.js +0 -110
  19. package/dist_ts/classes.dcrouter.d.ts +0 -337
  20. package/dist_ts/classes.dcrouter.js +0 -1405
  21. package/dist_ts/classes.storage-cert-manager.d.ts +0 -18
  22. package/dist_ts/classes.storage-cert-manager.js +0 -43
  23. package/dist_ts/config/classes.api-token-manager.d.ts +0 -46
  24. package/dist_ts/config/classes.api-token-manager.js +0 -150
  25. package/dist_ts/config/classes.route-config-manager.d.ts +0 -35
  26. package/dist_ts/config/classes.route-config-manager.js +0 -231
  27. package/dist_ts/config/index.d.ts +0 -3
  28. package/dist_ts/config/index.js +0 -5
  29. package/dist_ts/config/validator.d.ts +0 -104
  30. package/dist_ts/config/validator.js +0 -152
  31. package/dist_ts/errors/base.errors.d.ts +0 -224
  32. package/dist_ts/errors/base.errors.js +0 -320
  33. package/dist_ts/errors/error-handler.d.ts +0 -98
  34. package/dist_ts/errors/error-handler.js +0 -282
  35. package/dist_ts/errors/error.codes.d.ts +0 -115
  36. package/dist_ts/errors/error.codes.js +0 -136
  37. package/dist_ts/errors/index.d.ts +0 -54
  38. package/dist_ts/errors/index.js +0 -136
  39. package/dist_ts/errors/reputation.errors.d.ts +0 -183
  40. package/dist_ts/errors/reputation.errors.js +0 -292
  41. package/dist_ts/index.d.ts +0 -7
  42. package/dist_ts/index.js +0 -11
  43. package/dist_ts/logger.d.ts +0 -21
  44. package/dist_ts/logger.js +0 -81
  45. package/dist_ts/monitoring/classes.metricscache.d.ts +0 -32
  46. package/dist_ts/monitoring/classes.metricscache.js +0 -63
  47. package/dist_ts/monitoring/classes.metricsmanager.d.ts +0 -178
  48. package/dist_ts/monitoring/classes.metricsmanager.js +0 -642
  49. package/dist_ts/monitoring/index.d.ts +0 -1
  50. package/dist_ts/monitoring/index.js +0 -2
  51. package/dist_ts/opsserver/classes.opsserver.d.ts +0 -37
  52. package/dist_ts/opsserver/classes.opsserver.js +0 -85
  53. package/dist_ts/opsserver/handlers/admin.handler.d.ts +0 -31
  54. package/dist_ts/opsserver/handlers/admin.handler.js +0 -180
  55. package/dist_ts/opsserver/handlers/api-token.handler.d.ts +0 -6
  56. package/dist_ts/opsserver/handlers/api-token.handler.js +0 -62
  57. package/dist_ts/opsserver/handlers/certificate.handler.d.ts +0 -32
  58. package/dist_ts/opsserver/handlers/certificate.handler.js +0 -421
  59. package/dist_ts/opsserver/handlers/config.handler.d.ts +0 -7
  60. package/dist_ts/opsserver/handlers/config.handler.js +0 -192
  61. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +0 -30
  62. package/dist_ts/opsserver/handlers/email-ops.handler.js +0 -227
  63. package/dist_ts/opsserver/handlers/index.d.ts +0 -11
  64. package/dist_ts/opsserver/handlers/index.js +0 -12
  65. package/dist_ts/opsserver/handlers/logs.handler.d.ts +0 -25
  66. package/dist_ts/opsserver/handlers/logs.handler.js +0 -256
  67. package/dist_ts/opsserver/handlers/radius.handler.d.ts +0 -6
  68. package/dist_ts/opsserver/handlers/radius.handler.js +0 -295
  69. package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +0 -6
  70. package/dist_ts/opsserver/handlers/remoteingress.handler.js +0 -156
  71. package/dist_ts/opsserver/handlers/route-management.handler.d.ts +0 -14
  72. package/dist_ts/opsserver/handlers/route-management.handler.js +0 -117
  73. package/dist_ts/opsserver/handlers/security.handler.d.ts +0 -9
  74. package/dist_ts/opsserver/handlers/security.handler.js +0 -231
  75. package/dist_ts/opsserver/handlers/stats.handler.d.ts +0 -11
  76. package/dist_ts/opsserver/handlers/stats.handler.js +0 -399
  77. package/dist_ts/opsserver/helpers/guards.d.ts +0 -27
  78. package/dist_ts/opsserver/helpers/guards.js +0 -43
  79. package/dist_ts/opsserver/index.d.ts +0 -1
  80. package/dist_ts/opsserver/index.js +0 -2
  81. package/dist_ts/paths.d.ts +0 -26
  82. package/dist_ts/paths.js +0 -45
  83. package/dist_ts/plugins.d.ts +0 -79
  84. package/dist_ts/plugins.js +0 -113
  85. package/dist_ts/radius/classes.accounting.manager.d.ts +0 -218
  86. package/dist_ts/radius/classes.accounting.manager.js +0 -417
  87. package/dist_ts/radius/classes.radius.server.d.ts +0 -171
  88. package/dist_ts/radius/classes.radius.server.js +0 -385
  89. package/dist_ts/radius/classes.vlan.manager.d.ts +0 -128
  90. package/dist_ts/radius/classes.vlan.manager.js +0 -279
  91. package/dist_ts/radius/index.d.ts +0 -13
  92. package/dist_ts/radius/index.js +0 -14
  93. package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +0 -82
  94. package/dist_ts/remoteingress/classes.remoteingress-manager.js +0 -227
  95. package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +0 -59
  96. package/dist_ts/remoteingress/classes.tunnel-manager.js +0 -165
  97. package/dist_ts/remoteingress/index.d.ts +0 -2
  98. package/dist_ts/remoteingress/index.js +0 -3
  99. package/dist_ts/security/classes.contentscanner.d.ts +0 -164
  100. package/dist_ts/security/classes.contentscanner.js +0 -642
  101. package/dist_ts/security/classes.ipreputationchecker.d.ts +0 -160
  102. package/dist_ts/security/classes.ipreputationchecker.js +0 -537
  103. package/dist_ts/security/classes.securitylogger.d.ts +0 -144
  104. package/dist_ts/security/classes.securitylogger.js +0 -233
  105. package/dist_ts/security/index.d.ts +0 -3
  106. package/dist_ts/security/index.js +0 -4
  107. package/dist_ts/sms/classes.smsservice.d.ts +0 -15
  108. package/dist_ts/sms/classes.smsservice.js +0 -72
  109. package/dist_ts/sms/config/sms.config.d.ts +0 -93
  110. package/dist_ts/sms/config/sms.config.js +0 -2
  111. package/dist_ts/sms/config/sms.schema.d.ts +0 -5
  112. package/dist_ts/sms/config/sms.schema.js +0 -121
  113. package/dist_ts/sms/index.d.ts +0 -1
  114. package/dist_ts/sms/index.js +0 -2
  115. package/dist_ts/storage/classes.storagemanager.d.ts +0 -83
  116. package/dist_ts/storage/classes.storagemanager.js +0 -350
  117. package/dist_ts/storage/index.d.ts +0 -1
  118. package/dist_ts/storage/index.js +0 -3
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFDTCxHQUFHLEVBQ0gsRUFBRSxFQUNGLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxFQUNILEVBQUUsRUFDRixJQUFJLEVBQ0osR0FBRyxFQUNILElBQUksR0FDTCxDQUFBO0FBRUQsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsYUFBYSxHQUNkLENBQUE7QUFFRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxHQUNaLENBQUE7QUFFRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFLaFAsc0JBQXNCO0FBQ3RCLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUNMLFVBQVUsR0FDWCxDQUFBO0FBRUQsZ0JBQWdCO0FBQ2hCLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUNMLE9BQU8sR0FDUixDQUFBO0FBRUQsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFDTCxJQUFJLEdBQ0wsQ0FBQTtBQUVELGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckI7O09BRUc7SUFDSCxhQUFhLEVBQUUsQ0FBQyxPQUFlLEVBQVEsRUFBRTtRQUN2QyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBZSxFQUFpQixFQUFFO1FBQ2xELE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLFFBQWdCLEVBQVEsRUFBRTtRQUNqRCxNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksRUFBRSxLQUFLLEVBQUUsT0FBWSxFQUFFLFFBQWdCLEVBQWlCLEVBQUU7UUFDNUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLEVBQUUsQ0FBQyxRQUFnQixFQUFXLEVBQUU7UUFDNUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBZ0IsRUFBb0IsRUFBRTtRQUN2RCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksRUFBRSxDQUFVLFFBQWdCLEVBQUssRUFBRTtRQUM3QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxFQUFFLEtBQUssRUFBVyxRQUFnQixFQUFjLEVBQUU7UUFDeEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBTSxDQUFDO0lBQ2xDLENBQUM7Q0FDRixDQUFDIn0=
@@ -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
- }