@serve.zone/dcrouter 13.16.1 → 13.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/dist_serve/bundle.js +729 -721
  2. package/package.json +2 -2
  3. package/ts/00_commitinfo_data.ts +1 -1
  4. package/ts/monitoring/classes.metricsmanager.ts +43 -34
  5. package/ts_web/00_commitinfo_data.ts +1 -1
  6. package/ts_web/elements/network/ops-view-network-activity.ts +2 -1
  7. package/ts_web/elements/network/ops-view-routes.ts +24 -8
  8. package/dist_ts/00_commitinfo_data.d.ts +0 -8
  9. package/dist_ts/00_commitinfo_data.js +0 -9
  10. package/dist_ts/acme/index.d.ts +0 -1
  11. package/dist_ts/acme/index.js +0 -2
  12. package/dist_ts/acme/manager.acme-config.d.ts +0 -48
  13. package/dist_ts/acme/manager.acme-config.js +0 -156
  14. package/dist_ts/classes.cert-provision-scheduler.d.ts +0 -52
  15. package/dist_ts/classes.cert-provision-scheduler.js +0 -138
  16. package/dist_ts/classes.dcrouter.d.ts +0 -401
  17. package/dist_ts/classes.dcrouter.js +0 -1852
  18. package/dist_ts/classes.storage-cert-manager.d.ts +0 -15
  19. package/dist_ts/classes.storage-cert-manager.js +0 -53
  20. package/dist_ts/config/classes.api-token-manager.d.ts +0 -44
  21. package/dist_ts/config/classes.api-token-manager.js +0 -180
  22. package/dist_ts/config/classes.db-seeder.d.ts +0 -25
  23. package/dist_ts/config/classes.db-seeder.js +0 -69
  24. package/dist_ts/config/classes.reference-resolver.d.ts +0 -80
  25. package/dist_ts/config/classes.reference-resolver.js +0 -483
  26. package/dist_ts/config/classes.route-config-manager.d.ts +0 -54
  27. package/dist_ts/config/classes.route-config-manager.js +0 -370
  28. package/dist_ts/config/classes.target-profile-manager.d.ts +0 -82
  29. package/dist_ts/config/classes.target-profile-manager.js +0 -349
  30. package/dist_ts/config/index.d.ts +0 -6
  31. package/dist_ts/config/index.js +0 -8
  32. package/dist_ts/config/validator.d.ts +0 -104
  33. package/dist_ts/config/validator.js +0 -152
  34. package/dist_ts/db/classes.cache.cleaner.d.ts +0 -47
  35. package/dist_ts/db/classes.cache.cleaner.js +0 -130
  36. package/dist_ts/db/classes.cached.document.d.ts +0 -76
  37. package/dist_ts/db/classes.cached.document.js +0 -100
  38. package/dist_ts/db/classes.dcrouter-db.d.ts +0 -70
  39. package/dist_ts/db/classes.dcrouter-db.js +0 -146
  40. package/dist_ts/db/documents/classes.accounting-session.doc.d.ts +0 -32
  41. package/dist_ts/db/documents/classes.accounting-session.doc.js +0 -214
  42. package/dist_ts/db/documents/classes.acme-cert.doc.d.ts +0 -13
  43. package/dist_ts/db/documents/classes.acme-cert.doc.js +0 -109
  44. package/dist_ts/db/documents/classes.acme-config.doc.d.ts +0 -22
  45. package/dist_ts/db/documents/classes.acme-config.doc.js +0 -121
  46. package/dist_ts/db/documents/classes.api-token.doc.d.ts +0 -18
  47. package/dist_ts/db/documents/classes.api-token.doc.js +0 -127
  48. package/dist_ts/db/documents/classes.cached.email.d.ts +0 -125
  49. package/dist_ts/db/documents/classes.cached.email.js +0 -337
  50. package/dist_ts/db/documents/classes.cached.ip.reputation.d.ts +0 -119
  51. package/dist_ts/db/documents/classes.cached.ip.reputation.js +0 -323
  52. package/dist_ts/db/documents/classes.cert-backoff.doc.d.ts +0 -11
  53. package/dist_ts/db/documents/classes.cert-backoff.doc.js +0 -97
  54. package/dist_ts/db/documents/classes.dns-provider.doc.d.ts +0 -22
  55. package/dist_ts/db/documents/classes.dns-provider.doc.js +0 -134
  56. package/dist_ts/db/documents/classes.dns-record.doc.d.ts +0 -21
  57. package/dist_ts/db/documents/classes.dns-record.doc.js +0 -143
  58. package/dist_ts/db/documents/classes.domain.doc.d.ts +0 -22
  59. package/dist_ts/db/documents/classes.domain.doc.js +0 -146
  60. package/dist_ts/db/documents/classes.email-domain.doc.d.ts +0 -17
  61. package/dist_ts/db/documents/classes.email-domain.doc.js +0 -124
  62. package/dist_ts/db/documents/classes.network-target.doc.d.ts +0 -15
  63. package/dist_ts/db/documents/classes.network-target.doc.js +0 -118
  64. package/dist_ts/db/documents/classes.proxy-cert.doc.d.ts +0 -12
  65. package/dist_ts/db/documents/classes.proxy-cert.doc.js +0 -103
  66. package/dist_ts/db/documents/classes.remote-ingress-edge.doc.d.ts +0 -17
  67. package/dist_ts/db/documents/classes.remote-ingress-edge.doc.js +0 -130
  68. package/dist_ts/db/documents/classes.route.doc.d.ts +0 -18
  69. package/dist_ts/db/documents/classes.route.doc.js +0 -121
  70. package/dist_ts/db/documents/classes.source-profile.doc.d.ts +0 -15
  71. package/dist_ts/db/documents/classes.source-profile.doc.js +0 -115
  72. package/dist_ts/db/documents/classes.target-profile.doc.d.ts +0 -16
  73. package/dist_ts/db/documents/classes.target-profile.doc.js +0 -121
  74. package/dist_ts/db/documents/classes.vlan-mappings.doc.d.ts +0 -15
  75. package/dist_ts/db/documents/classes.vlan-mappings.doc.js +0 -77
  76. package/dist_ts/db/documents/classes.vpn-client.doc.d.ts +0 -23
  77. package/dist_ts/db/documents/classes.vpn-client.doc.js +0 -172
  78. package/dist_ts/db/documents/classes.vpn-server-keys.doc.d.ts +0 -10
  79. package/dist_ts/db/documents/classes.vpn-server-keys.doc.js +0 -94
  80. package/dist_ts/db/documents/index.d.ts +0 -20
  81. package/dist_ts/db/documents/index.js +0 -30
  82. package/dist_ts/db/index.d.ts +0 -4
  83. package/dist_ts/db/index.js +0 -9
  84. package/dist_ts/dns/index.d.ts +0 -2
  85. package/dist_ts/dns/index.js +0 -3
  86. package/dist_ts/dns/manager.dns.d.ts +0 -267
  87. package/dist_ts/dns/manager.dns.js +0 -906
  88. package/dist_ts/dns/providers/cloudflare.provider.d.ts +0 -21
  89. package/dist_ts/dns/providers/cloudflare.provider.js +0 -106
  90. package/dist_ts/dns/providers/factory.d.ts +0 -23
  91. package/dist_ts/dns/providers/factory.js +0 -47
  92. package/dist_ts/dns/providers/index.d.ts +0 -3
  93. package/dist_ts/dns/providers/index.js +0 -4
  94. package/dist_ts/dns/providers/interfaces.d.ts +0 -54
  95. package/dist_ts/dns/providers/interfaces.js +0 -2
  96. package/dist_ts/email/classes.email-domain.manager.d.ts +0 -46
  97. package/dist_ts/email/classes.email-domain.manager.js +0 -276
  98. package/dist_ts/email/index.d.ts +0 -1
  99. package/dist_ts/email/index.js +0 -2
  100. package/dist_ts/errors/base.errors.d.ts +0 -224
  101. package/dist_ts/errors/base.errors.js +0 -320
  102. package/dist_ts/errors/error-handler.d.ts +0 -98
  103. package/dist_ts/errors/error-handler.js +0 -282
  104. package/dist_ts/errors/error.codes.d.ts +0 -115
  105. package/dist_ts/errors/error.codes.js +0 -136
  106. package/dist_ts/errors/index.d.ts +0 -54
  107. package/dist_ts/errors/index.js +0 -136
  108. package/dist_ts/errors/reputation.errors.d.ts +0 -183
  109. package/dist_ts/errors/reputation.errors.js +0 -292
  110. package/dist_ts/http3/http3-route-augmentation.d.ts +0 -50
  111. package/dist_ts/http3/http3-route-augmentation.js +0 -98
  112. package/dist_ts/http3/index.d.ts +0 -1
  113. package/dist_ts/http3/index.js +0 -2
  114. package/dist_ts/index.d.ts +0 -8
  115. package/dist_ts/index.js +0 -29
  116. package/dist_ts/logger.d.ts +0 -21
  117. package/dist_ts/logger.js +0 -81
  118. package/dist_ts/monitoring/classes.metricscache.d.ts +0 -32
  119. package/dist_ts/monitoring/classes.metricscache.js +0 -63
  120. package/dist_ts/monitoring/classes.metricsmanager.d.ts +0 -233
  121. package/dist_ts/monitoring/classes.metricsmanager.js +0 -897
  122. package/dist_ts/monitoring/index.d.ts +0 -1
  123. package/dist_ts/monitoring/index.js +0 -2
  124. package/dist_ts/opsserver/classes.opsserver.d.ts +0 -47
  125. package/dist_ts/opsserver/classes.opsserver.js +0 -105
  126. package/dist_ts/opsserver/handlers/acme-config.handler.d.ts +0 -16
  127. package/dist_ts/opsserver/handlers/acme-config.handler.js +0 -77
  128. package/dist_ts/opsserver/handlers/admin.handler.d.ts +0 -40
  129. package/dist_ts/opsserver/handlers/admin.handler.js +0 -191
  130. package/dist_ts/opsserver/handlers/api-token.handler.d.ts +0 -6
  131. package/dist_ts/opsserver/handlers/api-token.handler.js +0 -62
  132. package/dist_ts/opsserver/handlers/certificate.handler.d.ts +0 -77
  133. package/dist_ts/opsserver/handlers/certificate.handler.js +0 -574
  134. package/dist_ts/opsserver/handlers/config.handler.d.ts +0 -7
  135. package/dist_ts/opsserver/handlers/config.handler.js +0 -200
  136. package/dist_ts/opsserver/handlers/dns-provider.handler.d.ts +0 -16
  137. package/dist_ts/opsserver/handlers/dns-provider.handler.js +0 -156
  138. package/dist_ts/opsserver/handlers/dns-record.handler.d.ts +0 -13
  139. package/dist_ts/opsserver/handlers/dns-record.handler.js +0 -98
  140. package/dist_ts/opsserver/handlers/domain.handler.d.ts +0 -13
  141. package/dist_ts/opsserver/handlers/domain.handler.js +0 -137
  142. package/dist_ts/opsserver/handlers/email-domain.handler.d.ts +0 -16
  143. package/dist_ts/opsserver/handlers/email-domain.handler.js +0 -150
  144. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +0 -30
  145. package/dist_ts/opsserver/handlers/email-ops.handler.js +0 -227
  146. package/dist_ts/opsserver/handlers/index.d.ts +0 -21
  147. package/dist_ts/opsserver/handlers/index.js +0 -22
  148. package/dist_ts/opsserver/handlers/logs.handler.d.ts +0 -25
  149. package/dist_ts/opsserver/handlers/logs.handler.js +0 -264
  150. package/dist_ts/opsserver/handlers/network-target.handler.d.ts +0 -10
  151. package/dist_ts/opsserver/handlers/network-target.handler.js +0 -117
  152. package/dist_ts/opsserver/handlers/radius.handler.d.ts +0 -6
  153. package/dist_ts/opsserver/handlers/radius.handler.js +0 -295
  154. package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +0 -6
  155. package/dist_ts/opsserver/handlers/remoteingress.handler.js +0 -156
  156. package/dist_ts/opsserver/handlers/route-management.handler.d.ts +0 -14
  157. package/dist_ts/opsserver/handlers/route-management.handler.js +0 -98
  158. package/dist_ts/opsserver/handlers/security.handler.d.ts +0 -9
  159. package/dist_ts/opsserver/handlers/security.handler.js +0 -237
  160. package/dist_ts/opsserver/handlers/source-profile.handler.d.ts +0 -10
  161. package/dist_ts/opsserver/handlers/source-profile.handler.js +0 -119
  162. package/dist_ts/opsserver/handlers/stats.handler.d.ts +0 -11
  163. package/dist_ts/opsserver/handlers/stats.handler.js +0 -461
  164. package/dist_ts/opsserver/handlers/target-profile.handler.d.ts +0 -10
  165. package/dist_ts/opsserver/handlers/target-profile.handler.js +0 -117
  166. package/dist_ts/opsserver/handlers/users.handler.d.ts +0 -12
  167. package/dist_ts/opsserver/handlers/users.handler.js +0 -24
  168. package/dist_ts/opsserver/handlers/vpn.handler.d.ts +0 -6
  169. package/dist_ts/opsserver/handlers/vpn.handler.js +0 -262
  170. package/dist_ts/opsserver/helpers/guards.d.ts +0 -27
  171. package/dist_ts/opsserver/helpers/guards.js +0 -43
  172. package/dist_ts/opsserver/index.d.ts +0 -1
  173. package/dist_ts/opsserver/index.js +0 -2
  174. package/dist_ts/paths.d.ts +0 -25
  175. package/dist_ts/paths.js +0 -44
  176. package/dist_ts/plugins.d.ts +0 -81
  177. package/dist_ts/plugins.js +0 -115
  178. package/dist_ts/radius/classes.accounting.manager.d.ts +0 -223
  179. package/dist_ts/radius/classes.accounting.manager.js +0 -449
  180. package/dist_ts/radius/classes.radius.server.d.ts +0 -169
  181. package/dist_ts/radius/classes.radius.server.js +0 -384
  182. package/dist_ts/radius/classes.vlan.manager.d.ts +0 -124
  183. package/dist_ts/radius/classes.vlan.manager.js +0 -272
  184. package/dist_ts/radius/index.d.ts +0 -13
  185. package/dist_ts/radius/index.js +0 -14
  186. package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +0 -92
  187. package/dist_ts/remoteingress/classes.remoteingress-manager.js +0 -291
  188. package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +0 -59
  189. package/dist_ts/remoteingress/classes.tunnel-manager.js +0 -165
  190. package/dist_ts/remoteingress/index.d.ts +0 -2
  191. package/dist_ts/remoteingress/index.js +0 -3
  192. package/dist_ts/security/classes.contentscanner.d.ts +0 -164
  193. package/dist_ts/security/classes.contentscanner.js +0 -642
  194. package/dist_ts/security/classes.ipreputationchecker.d.ts +0 -145
  195. package/dist_ts/security/classes.ipreputationchecker.js +0 -458
  196. package/dist_ts/security/classes.securitylogger.d.ts +0 -144
  197. package/dist_ts/security/classes.securitylogger.js +0 -235
  198. package/dist_ts/security/index.d.ts +0 -3
  199. package/dist_ts/security/index.js +0 -4
  200. package/dist_ts/sms/classes.smsservice.d.ts +0 -15
  201. package/dist_ts/sms/classes.smsservice.js +0 -72
  202. package/dist_ts/sms/config/sms.config.d.ts +0 -93
  203. package/dist_ts/sms/config/sms.config.js +0 -2
  204. package/dist_ts/sms/config/sms.schema.d.ts +0 -5
  205. package/dist_ts/sms/config/sms.schema.js +0 -121
  206. package/dist_ts/sms/index.d.ts +0 -1
  207. package/dist_ts/sms/index.js +0 -2
  208. package/dist_ts/vpn/classes.vpn-manager.d.ts +0 -159
  209. package/dist_ts/vpn/classes.vpn-manager.js +0 -459
  210. package/dist_ts/vpn/index.d.ts +0 -1
  211. package/dist_ts/vpn/index.js +0 -2
  212. package/dist_ts_apiclient/classes.apitoken.d.ts +0 -41
  213. package/dist_ts_apiclient/classes.apitoken.js +0 -115
  214. package/dist_ts_apiclient/classes.certificate.d.ts +0 -57
  215. package/dist_ts_apiclient/classes.certificate.js +0 -69
  216. package/dist_ts_apiclient/classes.config.d.ts +0 -7
  217. package/dist_ts_apiclient/classes.config.js +0 -11
  218. package/dist_ts_apiclient/classes.dcrouterapiclient.d.ts +0 -41
  219. package/dist_ts_apiclient/classes.dcrouterapiclient.js +0 -81
  220. package/dist_ts_apiclient/classes.email.d.ts +0 -30
  221. package/dist_ts_apiclient/classes.email.js +0 -52
  222. package/dist_ts_apiclient/classes.logs.d.ts +0 -21
  223. package/dist_ts_apiclient/classes.logs.js +0 -14
  224. package/dist_ts_apiclient/classes.radius.d.ts +0 -59
  225. package/dist_ts_apiclient/classes.radius.js +0 -95
  226. package/dist_ts_apiclient/classes.remoteingress.d.ts +0 -54
  227. package/dist_ts_apiclient/classes.remoteingress.js +0 -136
  228. package/dist_ts_apiclient/classes.route.d.ts +0 -39
  229. package/dist_ts_apiclient/classes.route.js +0 -125
  230. package/dist_ts_apiclient/classes.stats.d.ts +0 -47
  231. package/dist_ts_apiclient/classes.stats.js +0 -38
  232. package/dist_ts_apiclient/index.d.ts +0 -10
  233. package/dist_ts_apiclient/index.js +0 -14
  234. package/dist_ts_apiclient/plugins.d.ts +0 -3
  235. package/dist_ts_apiclient/plugins.js +0 -5
  236. package/dist_ts_interfaces/data/acme-config.d.ts +0 -25
  237. package/dist_ts_interfaces/data/acme-config.js +0 -2
  238. package/dist_ts_interfaces/data/auth.d.ts +0 -8
  239. package/dist_ts_interfaces/data/auth.js +0 -2
  240. package/dist_ts_interfaces/data/dns-provider.d.ts +0 -136
  241. package/dist_ts_interfaces/data/dns-provider.js +0 -41
  242. package/dist_ts_interfaces/data/dns-record.d.ts +0 -42
  243. package/dist_ts_interfaces/data/dns-record.js +0 -2
  244. package/dist_ts_interfaces/data/domain.d.ts +0 -35
  245. package/dist_ts_interfaces/data/domain.js +0 -2
  246. package/dist_ts_interfaces/data/email-domain.d.ts +0 -70
  247. package/dist_ts_interfaces/data/email-domain.js +0 -2
  248. package/dist_ts_interfaces/data/index.d.ts +0 -11
  249. package/dist_ts_interfaces/data/index.js +0 -12
  250. package/dist_ts_interfaces/data/remoteingress.d.ts +0 -60
  251. package/dist_ts_interfaces/data/remoteingress.js +0 -2
  252. package/dist_ts_interfaces/data/route-management.d.ts +0 -110
  253. package/dist_ts_interfaces/data/route-management.js +0 -2
  254. package/dist_ts_interfaces/data/stats.d.ts +0 -238
  255. package/dist_ts_interfaces/data/stats.js +0 -2
  256. package/dist_ts_interfaces/data/target-profile.d.ts +0 -28
  257. package/dist_ts_interfaces/data/target-profile.js +0 -2
  258. package/dist_ts_interfaces/data/vpn.d.ts +0 -61
  259. package/dist_ts_interfaces/data/vpn.js +0 -2
  260. package/dist_ts_interfaces/index.d.ts +0 -5
  261. package/dist_ts_interfaces/index.js +0 -8
  262. package/dist_ts_interfaces/plugins.d.ts +0 -2
  263. package/dist_ts_interfaces/plugins.js +0 -4
  264. package/dist_ts_interfaces/requests/acme-config.d.ts +0 -42
  265. package/dist_ts_interfaces/requests/acme-config.js +0 -2
  266. package/dist_ts_interfaces/requests/admin.d.ts +0 -31
  267. package/dist_ts_interfaces/requests/admin.js +0 -3
  268. package/dist_ts_interfaces/requests/api-tokens.d.ts +0 -79
  269. package/dist_ts_interfaces/requests/api-tokens.js +0 -2
  270. package/dist_ts_interfaces/requests/certificate.d.ts +0 -111
  271. package/dist_ts_interfaces/requests/certificate.js +0 -3
  272. package/dist_ts_interfaces/requests/combined.stats.d.ts +0 -28
  273. package/dist_ts_interfaces/requests/combined.stats.js +0 -2
  274. package/dist_ts_interfaces/requests/config.d.ts +0 -90
  275. package/dist_ts_interfaces/requests/config.js +0 -3
  276. package/dist_ts_interfaces/requests/dns-providers.d.ts +0 -117
  277. package/dist_ts_interfaces/requests/dns-providers.js +0 -2
  278. package/dist_ts_interfaces/requests/dns-records.d.ts +0 -89
  279. package/dist_ts_interfaces/requests/dns-records.js +0 -2
  280. package/dist_ts_interfaces/requests/domains.d.ts +0 -142
  281. package/dist_ts_interfaces/requests/domains.js +0 -2
  282. package/dist_ts_interfaces/requests/email-domains.d.ts +0 -142
  283. package/dist_ts_interfaces/requests/email-domains.js +0 -2
  284. package/dist_ts_interfaces/requests/email-ops.d.ts +0 -82
  285. package/dist_ts_interfaces/requests/email-ops.js +0 -3
  286. package/dist_ts_interfaces/requests/index.d.ts +0 -21
  287. package/dist_ts_interfaces/requests/index.js +0 -22
  288. package/dist_ts_interfaces/requests/logs.d.ts +0 -41
  289. package/dist_ts_interfaces/requests/logs.js +0 -4
  290. package/dist_ts_interfaces/requests/network-targets.d.ts +0 -102
  291. package/dist_ts_interfaces/requests/network-targets.js +0 -2
  292. package/dist_ts_interfaces/requests/radius.d.ts +0 -268
  293. package/dist_ts_interfaces/requests/radius.js +0 -3
  294. package/dist_ts_interfaces/requests/remoteingress.d.ts +0 -108
  295. package/dist_ts_interfaces/requests/remoteingress.js +0 -3
  296. package/dist_ts_interfaces/requests/route-management.d.ts +0 -85
  297. package/dist_ts_interfaces/requests/route-management.js +0 -2
  298. package/dist_ts_interfaces/requests/source-profiles.d.ts +0 -102
  299. package/dist_ts_interfaces/requests/source-profiles.js +0 -2
  300. package/dist_ts_interfaces/requests/stats.d.ts +0 -177
  301. package/dist_ts_interfaces/requests/stats.js +0 -4
  302. package/dist_ts_interfaces/requests/target-profiles.d.ts +0 -103
  303. package/dist_ts_interfaces/requests/target-profiles.js +0 -2
  304. package/dist_ts_interfaces/requests/users.d.ts +0 -19
  305. package/dist_ts_interfaces/requests/users.js +0 -3
  306. package/dist_ts_interfaces/requests/vpn.d.ts +0 -177
  307. package/dist_ts_interfaces/requests/vpn.js +0 -3
  308. package/dist_ts_migrations/index.d.ts +0 -28
  309. package/dist_ts_migrations/index.js +0 -82
  310. package/dist_ts_oci_container/index.d.ts +0 -8
  311. package/dist_ts_oci_container/index.js +0 -110
  312. package/dist_ts_oci_container/plugins.d.ts +0 -3
  313. package/dist_ts_oci_container/plugins.js +0 -4
  314. package/dist_ts_web/00_commitinfo_data.d.ts +0 -8
  315. package/dist_ts_web/00_commitinfo_data.js +0 -9
  316. package/dist_ts_web/appstate.d.ts +0 -478
  317. package/dist_ts_web/appstate.js +0 -1968
  318. package/dist_ts_web/elements/access/index.d.ts +0 -2
  319. package/dist_ts_web/elements/access/index.js +0 -3
  320. package/dist_ts_web/elements/access/ops-view-apitokens.d.ts +0 -13
  321. package/dist_ts_web/elements/access/ops-view-apitokens.js +0 -372
  322. package/dist_ts_web/elements/access/ops-view-users.d.ts +0 -11
  323. package/dist_ts_web/elements/access/ops-view-users.js +0 -190
  324. package/dist_ts_web/elements/domains/dns-provider-form.d.ts +0 -60
  325. package/dist_ts_web/elements/domains/dns-provider-form.js +0 -259
  326. package/dist_ts_web/elements/domains/index.d.ts +0 -5
  327. package/dist_ts_web/elements/domains/index.js +0 -6
  328. package/dist_ts_web/elements/domains/ops-view-certificates.d.ts +0 -25
  329. package/dist_ts_web/elements/domains/ops-view-certificates.js +0 -669
  330. package/dist_ts_web/elements/domains/ops-view-dns.d.ts +0 -17
  331. package/dist_ts_web/elements/domains/ops-view-dns.js +0 -305
  332. package/dist_ts_web/elements/domains/ops-view-domains.d.ts +0 -19
  333. package/dist_ts_web/elements/domains/ops-view-domains.js +0 -456
  334. package/dist_ts_web/elements/domains/ops-view-providers.d.ts +0 -21
  335. package/dist_ts_web/elements/domains/ops-view-providers.js +0 -330
  336. package/dist_ts_web/elements/email/index.d.ts +0 -3
  337. package/dist_ts_web/elements/email/index.js +0 -4
  338. package/dist_ts_web/elements/email/ops-view-email-domains.d.ts +0 -19
  339. package/dist_ts_web/elements/email/ops-view-email-domains.js +0 -410
  340. package/dist_ts_web/elements/email/ops-view-email-security.d.ts +0 -14
  341. package/dist_ts_web/elements/email/ops-view-email-security.js +0 -178
  342. package/dist_ts_web/elements/email/ops-view-emails.d.ts +0 -21
  343. package/dist_ts_web/elements/email/ops-view-emails.js +0 -165
  344. package/dist_ts_web/elements/index.d.ts +0 -9
  345. package/dist_ts_web/elements/index.js +0 -10
  346. package/dist_ts_web/elements/network/index.d.ts +0 -7
  347. package/dist_ts_web/elements/network/index.js +0 -8
  348. package/dist_ts_web/elements/network/ops-view-network-activity.d.ts +0 -60
  349. package/dist_ts_web/elements/network/ops-view-network-activity.js +0 -753
  350. package/dist_ts_web/elements/network/ops-view-networktargets.d.ts +0 -17
  351. package/dist_ts_web/elements/network/ops-view-networktargets.js +0 -255
  352. package/dist_ts_web/elements/network/ops-view-remoteingress.d.ts +0 -20
  353. package/dist_ts_web/elements/network/ops-view-remoteingress.js +0 -497
  354. package/dist_ts_web/elements/network/ops-view-routes.d.ts +0 -16
  355. package/dist_ts_web/elements/network/ops-view-routes.js +0 -674
  356. package/dist_ts_web/elements/network/ops-view-sourceprofiles.d.ts +0 -17
  357. package/dist_ts_web/elements/network/ops-view-sourceprofiles.js +0 -278
  358. package/dist_ts_web/elements/network/ops-view-targetprofiles.d.ts +0 -21
  359. package/dist_ts_web/elements/network/ops-view-targetprofiles.js +0 -420
  360. package/dist_ts_web/elements/network/ops-view-vpn.d.ts +0 -31
  361. package/dist_ts_web/elements/network/ops-view-vpn.js +0 -873
  362. package/dist_ts_web/elements/ops-dashboard.d.ts +0 -31
  363. package/dist_ts_web/elements/ops-dashboard.js +0 -405
  364. package/dist_ts_web/elements/ops-view-logs.d.ts +0 -13
  365. package/dist_ts_web/elements/ops-view-logs.js +0 -159
  366. package/dist_ts_web/elements/overview/index.d.ts +0 -2
  367. package/dist_ts_web/elements/overview/index.js +0 -3
  368. package/dist_ts_web/elements/overview/ops-view-config.d.ts +0 -19
  369. package/dist_ts_web/elements/overview/ops-view-config.js +0 -339
  370. package/dist_ts_web/elements/overview/ops-view-overview.d.ts +0 -24
  371. package/dist_ts_web/elements/overview/ops-view-overview.js +0 -545
  372. package/dist_ts_web/elements/security/index.d.ts +0 -3
  373. package/dist_ts_web/elements/security/index.js +0 -4
  374. package/dist_ts_web/elements/security/ops-view-security-authentication.d.ts +0 -13
  375. package/dist_ts_web/elements/security/ops-view-security-authentication.js +0 -157
  376. package/dist_ts_web/elements/security/ops-view-security-blocked.d.ts +0 -15
  377. package/dist_ts_web/elements/security/ops-view-security-blocked.js +0 -153
  378. package/dist_ts_web/elements/security/ops-view-security-overview.d.ts +0 -16
  379. package/dist_ts_web/elements/security/ops-view-security-overview.js +0 -205
  380. package/dist_ts_web/elements/shared/css.d.ts +0 -1
  381. package/dist_ts_web/elements/shared/css.js +0 -10
  382. package/dist_ts_web/elements/shared/index.d.ts +0 -1
  383. package/dist_ts_web/elements/shared/index.js +0 -2
  384. package/dist_ts_web/index.d.ts +0 -1
  385. package/dist_ts_web/index.js +0 -10
  386. package/dist_ts_web/plugins.d.ts +0 -7
  387. package/dist_ts_web/plugins.js +0 -13
  388. package/dist_ts_web/router.d.ts +0 -21
  389. package/dist_ts_web/router.js +0 -151
@@ -1,98 +0,0 @@
1
- /**
2
- * Check whether a TPortRange includes port 443.
3
- */
4
- function portRangeIncludes443(ports) {
5
- if (typeof ports === 'number')
6
- return ports === 443;
7
- if (Array.isArray(ports)) {
8
- return ports.some((p) => {
9
- if (typeof p === 'number')
10
- return p === 443;
11
- return p.from <= 443 && p.to >= 443;
12
- });
13
- }
14
- return false;
15
- }
16
- /**
17
- * Check if a route name indicates an email route that should not get HTTP/3.
18
- */
19
- function isEmailRoute(route) {
20
- const name = route.name?.toLowerCase() || '';
21
- return (name.startsWith('smtp-') ||
22
- name.startsWith('submission-') ||
23
- name.startsWith('smtps-') ||
24
- name.startsWith('email-'));
25
- }
26
- /**
27
- * Determine if a route qualifies for HTTP/3 augmentation.
28
- */
29
- export function routeQualifiesForHttp3(route, globalConfig) {
30
- // Check global enable + per-route override
31
- const globalEnabled = globalConfig.enabled !== false; // default true
32
- const perRouteOverride = route.action.options?.http3;
33
- // If per-route explicitly set, use that; otherwise use global
34
- const shouldAugment = perRouteOverride !== undefined ? perRouteOverride : globalEnabled;
35
- if (!shouldAugment)
36
- return false;
37
- // Must be forward type
38
- if (route.action.type !== 'forward')
39
- return false;
40
- // Must include port 443
41
- if (!portRangeIncludes443(route.match.ports))
42
- return false;
43
- // Must have TLS
44
- if (!route.action.tls)
45
- return false;
46
- // Skip email routes
47
- if (isEmailRoute(route))
48
- return false;
49
- // Skip if already configured with transport 'all' or 'udp'
50
- if (route.match.transport === 'all' || route.match.transport === 'udp')
51
- return false;
52
- // Skip if already has QUIC config
53
- if (route.action.udp?.quic)
54
- return false;
55
- return true;
56
- }
57
- /**
58
- * Augment a single route with HTTP/3 fields.
59
- * Returns a new route object (does not mutate the original).
60
- */
61
- export function augmentRouteWithHttp3(route, config) {
62
- if (!routeQualifiesForHttp3(route, config)) {
63
- return route;
64
- }
65
- return {
66
- ...route,
67
- match: {
68
- ...route.match,
69
- transport: 'all',
70
- },
71
- action: {
72
- ...route.action,
73
- udp: {
74
- ...(route.action.udp || {}),
75
- sessionTimeout: config.udpSettings?.sessionTimeout,
76
- maxSessionsPerIP: config.udpSettings?.maxSessionsPerIP,
77
- maxDatagramSize: config.udpSettings?.maxDatagramSize,
78
- quic: {
79
- enableHttp3: true,
80
- maxIdleTimeout: config.quicSettings?.maxIdleTimeout,
81
- maxConcurrentBidiStreams: config.quicSettings?.maxConcurrentBidiStreams,
82
- maxConcurrentUniStreams: config.quicSettings?.maxConcurrentUniStreams,
83
- altSvcPort: config.altSvc?.port,
84
- altSvcMaxAge: config.altSvc?.maxAge ?? 86400,
85
- initialCongestionWindow: config.quicSettings?.initialCongestionWindow,
86
- },
87
- },
88
- },
89
- };
90
- }
91
- /**
92
- * Augment all qualifying routes in an array.
93
- * Returns a new array (does not mutate originals).
94
- */
95
- export function augmentRoutesWithHttp3(routes, config) {
96
- return routes.map((route) => augmentRouteWithHttp3(route, config));
97
- }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cDMtcm91dGUtYXVnbWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaHR0cDMvaHR0cDMtcm91dGUtYXVnbWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDQTs7R0FFRztBQUNILFNBQVMsb0JBQW9CLENBQUMsS0FBaUI7SUFDN0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQUUsT0FBTyxLQUFLLEtBQUssR0FBRyxDQUFDO0lBQ3BELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RCLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtnQkFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUM7WUFDNUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsWUFBWSxDQUFDLEtBQXNDO0lBQzFELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdDLE9BQU8sQ0FDTCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUFzQyxFQUN0QyxZQUEwQjtJQUUxQiwyQ0FBMkM7SUFDM0MsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxlQUFlO0lBQ3JFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBRXJELDhEQUE4RDtJQUM5RCxNQUFNLGFBQWEsR0FDakIsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ3BFLElBQUksQ0FBQyxhQUFhO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFakMsdUJBQXVCO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWxELHdCQUF3QjtJQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUzRCxnQkFBZ0I7SUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXBDLG9CQUFvQjtJQUNwQixJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV0QywyREFBMkQ7SUFDM0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXJGLGtDQUFrQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV6QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQXNDLEVBQ3RDLE1BQW9CO0lBRXBCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsS0FBSyxFQUFFO1lBQ0wsR0FBRyxLQUFLLENBQUMsS0FBSztZQUNkLFNBQVMsRUFBRSxLQUFjO1NBQzFCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sR0FBRyxLQUFLLENBQUMsTUFBTTtZQUNmLEdBQUcsRUFBRTtnQkFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUMzQixjQUFjLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjO2dCQUNsRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLGdCQUFnQjtnQkFDdEQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsZUFBZTtnQkFDcEQsSUFBSSxFQUFFO29CQUNKLFdBQVcsRUFBRSxJQUFJO29CQUNqQixjQUFjLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxjQUFjO29CQUNuRCx3QkFBd0IsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLHdCQUF3QjtvQkFDdkUsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSx1QkFBdUI7b0JBQ3JFLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUk7b0JBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLO29CQUM1Qyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLHVCQUF1QjtpQkFDdEU7YUFDRjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE1BQXlDLEVBQ3pDLE1BQW9CO0lBRXBCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyJ9
@@ -1 +0,0 @@
1
- export * from './http3-route-augmentation.js';
@@ -1,2 +0,0 @@
1
- export * from './http3-route-augmentation.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9odHRwMy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIn0=
@@ -1,8 +0,0 @@
1
- export * from './00_commitinfo_data.js';
2
- export { UnifiedEmailServer } from '@push.rocks/smartmta';
3
- export type { IUnifiedEmailServerOptions, IEmailRoute, IEmailDomainConfig } from '@push.rocks/smartmta';
4
- export * from './classes.dcrouter.js';
5
- export * from './radius/index.js';
6
- export * from './remoteingress/index.js';
7
- export type { IHttp3Config } from './http3/index.js';
8
- export declare const runCli: () => Promise<void>;
package/dist_ts/index.js DELETED
@@ -1,29 +0,0 @@
1
- export * from './00_commitinfo_data.js';
2
- // Re-export smartmta (excluding commitinfo to avoid naming conflict)
3
- export { UnifiedEmailServer } from '@push.rocks/smartmta';
4
- // DcRouter
5
- import { DcRouter } from './classes.dcrouter.js';
6
- export * from './classes.dcrouter.js';
7
- // RADIUS module
8
- export * from './radius/index.js';
9
- // Remote Ingress module
10
- export * from './remoteingress/index.js';
11
- export const runCli = async () => {
12
- let options = {};
13
- if (process.env.DCROUTER_MODE === 'OCI_CONTAINER') {
14
- const { getOciContainerConfig } = await import('../dist_ts_oci_container/index.js');
15
- options = getOciContainerConfig();
16
- console.log('[DCRouter] Starting in OCI Container mode...');
17
- }
18
- const dcRouter = new DcRouter(options);
19
- await dcRouter.start();
20
- console.log('[DCRouter] Running. Send SIGTERM or SIGINT to stop.');
21
- const shutdown = async () => {
22
- console.log('[DCRouter] Shutting down...');
23
- await dcRouter.stop();
24
- process.exit(0);
25
- };
26
- process.once('SIGINT', shutdown);
27
- process.once('SIGTERM', shutdown);
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLHFFQUFxRTtBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxXQUFXO0FBQ1gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsZ0JBQWdCO0FBQ2hCLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsd0JBQXdCO0FBQ3hCLGNBQWMsMEJBQTBCLENBQUM7QUFLekMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLElBQUksT0FBTyxHQUFxRCxFQUFFLENBQUM7SUFFbkUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNsRCxNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyJ9
@@ -1,21 +0,0 @@
1
- import * as plugins from './plugins.js';
2
- import { SmartlogDestinationBuffer } from '@push.rocks/smartlog/destination-buffer';
3
- export declare const logBuffer: SmartlogDestinationBuffer;
4
- export declare const baseLogger: plugins.smartlog.Smartlog;
5
- declare class StandardLogger {
6
- private defaultContext;
7
- private correlationId;
8
- constructor();
9
- log(level: 'error' | 'warn' | 'info' | 'success' | 'debug', message: string, context?: Record<string, any>): void;
10
- error(message: string, context?: Record<string, any>): void;
11
- warn(message: string, context?: Record<string, any>): void;
12
- info(message: string, context?: Record<string, any>): void;
13
- success(message: string, context?: Record<string, any>): void;
14
- debug(message: string, context?: Record<string, any>): void;
15
- setContext(context: Record<string, any>, overwrite?: boolean): void;
16
- setCorrelationId(id?: string | null): string;
17
- getCorrelationId(): string | null;
18
- clearCorrelationId(): void;
19
- }
20
- export declare const logger: StandardLogger;
21
- export {};
package/dist_ts/logger.js DELETED
@@ -1,81 +0,0 @@
1
- import * as plugins from './plugins.js';
2
- import { randomUUID } from 'node:crypto';
3
- import { SmartlogDestinationBuffer } from '@push.rocks/smartlog/destination-buffer';
4
- // Map NODE_ENV to valid TEnvironment
5
- const nodeEnv = process.env.NODE_ENV || 'production';
6
- const envMap = {
7
- 'development': 'local',
8
- 'test': 'test',
9
- 'staging': 'staging',
10
- 'production': 'production'
11
- };
12
- // In-memory log buffer for the OpsServer UI
13
- export const logBuffer = new SmartlogDestinationBuffer({ maxEntries: 2000 });
14
- // Default Smartlog instance (exported so OpsServer can add push destinations)
15
- export const baseLogger = new plugins.smartlog.Smartlog({
16
- logContext: {
17
- environment: envMap[nodeEnv] || 'production',
18
- runtime: 'node',
19
- zone: 'serve.zone',
20
- }
21
- });
22
- // Wire the buffer destination so all logs are captured
23
- baseLogger.addLogDestination(logBuffer);
24
- // Extended logger compatible with the original enhanced logger API
25
- class StandardLogger {
26
- defaultContext = {};
27
- correlationId = null;
28
- constructor() { }
29
- // Log methods
30
- log(level, message, context = {}) {
31
- const combinedContext = {
32
- ...this.defaultContext,
33
- ...context
34
- };
35
- if (this.correlationId) {
36
- combinedContext.correlation_id = this.correlationId;
37
- }
38
- baseLogger.log(level, message, combinedContext);
39
- }
40
- error(message, context = {}) {
41
- this.log('error', message, context);
42
- }
43
- warn(message, context = {}) {
44
- this.log('warn', message, context);
45
- }
46
- info(message, context = {}) {
47
- this.log('info', message, context);
48
- }
49
- success(message, context = {}) {
50
- this.log('success', message, context);
51
- }
52
- debug(message, context = {}) {
53
- this.log('debug', message, context);
54
- }
55
- // Context management
56
- setContext(context, overwrite = false) {
57
- if (overwrite) {
58
- this.defaultContext = context;
59
- }
60
- else {
61
- this.defaultContext = {
62
- ...this.defaultContext,
63
- ...context
64
- };
65
- }
66
- }
67
- // Correlation ID management
68
- setCorrelationId(id = null) {
69
- this.correlationId = id || randomUUID();
70
- return this.correlationId;
71
- }
72
- getCorrelationId() {
73
- return this.correlationId;
74
- }
75
- clearCorrelationId() {
76
- this.correlationId = null;
77
- }
78
- }
79
- // Export a singleton instance
80
- export const logger = new StandardLogger();
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFcEYscUNBQXFDO0FBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBZ0U7SUFDMUUsYUFBYSxFQUFFLE9BQU87SUFDdEIsTUFBTSxFQUFFLE1BQU07SUFDZCxTQUFTLEVBQUUsU0FBUztJQUNwQixZQUFZLEVBQUUsWUFBWTtDQUMzQixDQUFDO0FBRUYsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLHlCQUF5QixDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFFN0UsOEVBQThFO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3RELFVBQVUsRUFBRTtRQUNWLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksWUFBWTtRQUM1QyxPQUFPLEVBQUUsTUFBTTtRQUNmLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsdURBQXVEO0FBQ3ZELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUV4QyxtRUFBbUU7QUFDbkUsTUFBTSxjQUFjO0lBQ1YsY0FBYyxHQUF3QixFQUFFLENBQUM7SUFDekMsYUFBYSxHQUFrQixJQUFJLENBQUM7SUFFNUMsZ0JBQWUsQ0FBQztJQUVoQixjQUFjO0lBQ1AsR0FBRyxDQUFDLEtBQXNELEVBQUUsT0FBZSxFQUFFLFVBQStCLEVBQUU7UUFDbkgsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxJQUFJLENBQUMsY0FBYztZQUN0QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsZUFBZSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3RELENBQUM7UUFFRCxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUM3RCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUMvRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUM3RCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHFCQUFxQjtJQUNkLFVBQVUsQ0FBQyxPQUE0QixFQUFFLFlBQXFCLEtBQUs7UUFDeEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRztnQkFDcEIsR0FBRyxJQUFJLENBQUMsY0FBYztnQkFDdEIsR0FBRyxPQUFPO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLGdCQUFnQixDQUFDLEtBQW9CLElBQUk7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLElBQUksVUFBVSxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDIn0=
@@ -1,32 +0,0 @@
1
- export interface ICacheEntry<T> {
2
- data: T;
3
- timestamp: number;
4
- }
5
- export declare class MetricsCache {
6
- private cache;
7
- private readonly defaultTTL;
8
- constructor(defaultTTL?: number);
9
- /**
10
- * Get cached data or compute and cache it
11
- */
12
- get<T>(key: string, computeFn: () => T | Promise<T>, ttl?: number): T | Promise<T>;
13
- /**
14
- * Invalidate a specific cache entry
15
- */
16
- invalidate(key: string): void;
17
- /**
18
- * Clear all cache entries
19
- */
20
- clear(): void;
21
- /**
22
- * Get cache statistics
23
- */
24
- getStats(): {
25
- size: number;
26
- keys: string[];
27
- };
28
- /**
29
- * Clean up expired entries
30
- */
31
- cleanup(): void;
32
- }
@@ -1,63 +0,0 @@
1
- export class MetricsCache {
2
- cache = new Map();
3
- defaultTTL;
4
- constructor(defaultTTL = 500) {
5
- this.defaultTTL = defaultTTL;
6
- }
7
- /**
8
- * Get cached data or compute and cache it
9
- */
10
- get(key, computeFn, ttl) {
11
- const cached = this.cache.get(key);
12
- const now = Date.now();
13
- const actualTTL = ttl ?? this.defaultTTL;
14
- if (cached && (now - cached.timestamp) < actualTTL) {
15
- return cached.data;
16
- }
17
- const result = computeFn();
18
- // Handle both sync and async compute functions
19
- if (result instanceof Promise) {
20
- return result.then(data => {
21
- this.cache.set(key, { data, timestamp: now });
22
- return data;
23
- });
24
- }
25
- else {
26
- this.cache.set(key, { data: result, timestamp: now });
27
- return result;
28
- }
29
- }
30
- /**
31
- * Invalidate a specific cache entry
32
- */
33
- invalidate(key) {
34
- this.cache.delete(key);
35
- }
36
- /**
37
- * Clear all cache entries
38
- */
39
- clear() {
40
- this.cache.clear();
41
- }
42
- /**
43
- * Get cache statistics
44
- */
45
- getStats() {
46
- return {
47
- size: this.cache.size,
48
- keys: Array.from(this.cache.keys())
49
- };
50
- }
51
- /**
52
- * Clean up expired entries
53
- */
54
- cleanup() {
55
- const now = Date.now();
56
- for (const [key, entry] of this.cache.entries()) {
57
- if (now - entry.timestamp > this.defaultTTL) {
58
- this.cache.delete(key);
59
- }
60
- }
61
- }
62
- }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5tZXRyaWNzY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb25pdG9yaW5nL2NsYXNzZXMubWV0cmljc2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxZQUFZO0lBQ2YsS0FBSyxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBQ25DLFVBQVUsQ0FBUztJQUVwQyxZQUFZLGFBQXFCLEdBQUc7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksR0FBRyxDQUFJLEdBQVcsRUFBRSxTQUErQixFQUFFLEdBQVk7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRXpDLElBQUksTUFBTSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRTNCLCtDQUErQztRQUMvQyxJQUFJLE1BQU0sWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,233 +0,0 @@
1
- import { DcRouter } from '../classes.dcrouter.js';
2
- export declare class MetricsManager {
3
- private metricsLogger;
4
- private smartMetrics;
5
- private dcRouter;
6
- private resetInterval?;
7
- private metricsCache;
8
- private readonly MAX_TOP_DOMAINS;
9
- private emailMetrics;
10
- private dnsMetrics;
11
- private emailMinuteBuckets;
12
- private dnsMinuteBuckets;
13
- private securityMetrics;
14
- constructor(dcRouter: DcRouter);
15
- start(): Promise<void>;
16
- stop(): Promise<void>;
17
- getServerStats(): Promise<{
18
- uptime: number;
19
- startTime: number;
20
- memoryUsage: {
21
- heapUsed: number;
22
- heapTotal: number;
23
- external: number;
24
- rss: number;
25
- maxMemoryMB: number;
26
- actualUsageBytes: number;
27
- actualUsagePercentage: number;
28
- };
29
- cpuUsage: {
30
- user: number;
31
- system: number;
32
- };
33
- activeConnections: any;
34
- totalConnections: number;
35
- requestsPerSecond: number;
36
- throughput: {
37
- bytesIn: number;
38
- bytesOut: number;
39
- bytesInPerSecond: number;
40
- bytesOutPerSecond: number;
41
- };
42
- }>;
43
- getEmailStats(): Promise<{
44
- sentToday: number;
45
- receivedToday: number;
46
- failedToday: number;
47
- bounceRate: number;
48
- deliveryRate: number;
49
- queueSize: number;
50
- averageDeliveryTime: number;
51
- topRecipients: {
52
- email: string;
53
- count: number;
54
- }[];
55
- recentActivity: {
56
- timestamp: number;
57
- type: string;
58
- details: string;
59
- }[];
60
- }>;
61
- getDnsStats(): Promise<{
62
- queriesPerSecond: number;
63
- totalQueries: number;
64
- cacheHits: number;
65
- cacheMisses: number;
66
- cacheHitRate: number;
67
- topDomains: {
68
- domain: string;
69
- count: number;
70
- }[];
71
- queryTypes: Record<string, number>;
72
- averageResponseTime: number;
73
- activeDomains: number;
74
- recentQueries: {
75
- timestamp: number;
76
- domain: string;
77
- type: string;
78
- answered: boolean;
79
- responseTimeMs: number;
80
- }[];
81
- }>;
82
- /**
83
- * Sync security metrics from the SecurityLogger singleton (last 24h).
84
- * Called before returning security stats so counters reflect real events.
85
- */
86
- private syncFromSecurityLogger;
87
- getSecurityStats(): Promise<{
88
- blockedIPs: number;
89
- authFailures: number;
90
- spamDetected: number;
91
- malwareDetected: number;
92
- phishingDetected: number;
93
- totalThreatsBlocked: number;
94
- recentIncidents: {
95
- timestamp: number;
96
- type: string;
97
- severity: string;
98
- details: string;
99
- }[];
100
- }>;
101
- getConnectionInfo(): Promise<{
102
- type: string;
103
- count: number;
104
- source: string;
105
- lastActivity: Date;
106
- }[]>;
107
- trackEmailSent(recipient?: string, deliveryTimeMs?: number): void;
108
- trackEmailReceived(sender?: string): void;
109
- trackEmailFailed(recipient?: string, reason?: string): void;
110
- trackEmailBounced(recipient?: string): void;
111
- updateQueueSize(size: number): void;
112
- trackDnsQuery(queryType: string, domain: string, cacheHit: boolean, responseTimeMs?: number, answered?: boolean): void;
113
- trackBlockedIP(ip?: string, reason?: string): void;
114
- trackAuthFailure(username?: string, ip?: string): void;
115
- trackSpamDetected(sender?: string): void;
116
- trackMalwareDetected(source?: string): void;
117
- trackPhishingDetected(source?: string): void;
118
- getNetworkStats(): Promise<{
119
- connectionsByIP: Map<string, number>;
120
- throughputRate: {
121
- bytesInPerSecond: number;
122
- bytesOutPerSecond: number;
123
- };
124
- topIPs: Array<{
125
- ip: string;
126
- count: number;
127
- }>;
128
- topIPsByBandwidth: Array<{
129
- ip: string;
130
- count: number;
131
- bwIn: number;
132
- bwOut: number;
133
- }>;
134
- totalDataTransferred: {
135
- bytesIn: number;
136
- bytesOut: number;
137
- };
138
- throughputHistory: Array<{
139
- timestamp: number;
140
- in: number;
141
- out: number;
142
- }>;
143
- throughputByIP: Map<string, {
144
- in: number;
145
- out: number;
146
- }>;
147
- requestsPerSecond: number;
148
- requestsTotal: number;
149
- backends: Array<any>;
150
- domainActivity: Array<{
151
- domain: string;
152
- bytesInPerSecond: number;
153
- bytesOutPerSecond: number;
154
- activeConnections: number;
155
- routeCount: number;
156
- }>;
157
- frontendProtocols?: undefined;
158
- backendProtocols?: undefined;
159
- } | {
160
- connectionsByIP: Map<string, number>;
161
- throughputRate: {
162
- bytesInPerSecond: number;
163
- bytesOutPerSecond: number;
164
- };
165
- topIPs: {
166
- ip: string;
167
- count: number;
168
- }[];
169
- topIPsByBandwidth: {
170
- ip: string;
171
- count: number;
172
- bwIn: number;
173
- bwOut: number;
174
- }[];
175
- totalDataTransferred: {
176
- bytesIn: number;
177
- bytesOut: number;
178
- };
179
- throughputHistory: import("@push.rocks/smartproxy/dist_ts/proxies/smart-proxy/index.js").IThroughputHistoryPoint[];
180
- throughputByIP: Map<string, import("@push.rocks/smartproxy/dist_ts/proxies/smart-proxy/index.js").IThroughputData>;
181
- requestsPerSecond: number;
182
- requestsTotal: number;
183
- backends: any[];
184
- frontendProtocols: import("@push.rocks/smartproxy/dist_ts/proxies/smart-proxy/index.js").IProtocolDistribution;
185
- backendProtocols: import("@push.rocks/smartproxy/dist_ts/proxies/smart-proxy/index.js").IProtocolDistribution;
186
- domainActivity: {
187
- domain: string;
188
- bytesInPerSecond: number;
189
- bytesOutPerSecond: number;
190
- activeConnections: number;
191
- routeCount: number;
192
- }[];
193
- }>;
194
- private static minuteKey;
195
- private incrementEmailBucket;
196
- private incrementDnsBucket;
197
- /**
198
- * Increment the per-second query counter in the ring buffer.
199
- * Zeros any stale slots between the last write and the current second.
200
- */
201
- private incrementQueryRing;
202
- /**
203
- * Sum query counts from the ring buffer for the last N seconds.
204
- */
205
- private getQueryRingSum;
206
- private pruneOldBuckets;
207
- /**
208
- * Get email time-series data for the last N hours, aggregated per minute.
209
- */
210
- getEmailTimeSeries(hours?: number): {
211
- sent: Array<{
212
- timestamp: number;
213
- value: number;
214
- }>;
215
- received: Array<{
216
- timestamp: number;
217
- value: number;
218
- }>;
219
- failed: Array<{
220
- timestamp: number;
221
- value: number;
222
- }>;
223
- };
224
- /**
225
- * Get DNS time-series data for the last N hours, aggregated per minute.
226
- */
227
- getDnsTimeSeries(hours?: number): {
228
- queries: Array<{
229
- timestamp: number;
230
- value: number;
231
- }>;
232
- };
233
- }