@serve.zone/dcrouter 11.0.51 → 11.2.1
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/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts_apiclient/classes.apitoken.d.ts +41 -0
- package/dist_ts_apiclient/classes.apitoken.js +115 -0
- package/dist_ts_apiclient/classes.certificate.d.ts +57 -0
- package/dist_ts_apiclient/classes.certificate.js +69 -0
- package/dist_ts_apiclient/classes.config.d.ts +7 -0
- package/dist_ts_apiclient/classes.config.js +11 -0
- package/dist_ts_apiclient/classes.dcrouterapiclient.d.ts +41 -0
- package/dist_ts_apiclient/classes.dcrouterapiclient.js +81 -0
- package/dist_ts_apiclient/classes.email.d.ts +30 -0
- package/dist_ts_apiclient/classes.email.js +52 -0
- package/dist_ts_apiclient/classes.logs.d.ts +21 -0
- package/dist_ts_apiclient/classes.logs.js +14 -0
- package/dist_ts_apiclient/classes.radius.d.ts +59 -0
- package/dist_ts_apiclient/classes.radius.js +95 -0
- package/dist_ts_apiclient/classes.remoteingress.d.ts +54 -0
- package/dist_ts_apiclient/classes.remoteingress.js +136 -0
- package/dist_ts_apiclient/classes.route.d.ts +42 -0
- package/dist_ts_apiclient/classes.route.js +154 -0
- package/dist_ts_apiclient/classes.stats.d.ts +47 -0
- package/dist_ts_apiclient/classes.stats.js +38 -0
- package/dist_ts_apiclient/index.d.ts +10 -0
- package/dist_ts_apiclient/index.js +14 -0
- package/dist_ts_apiclient/plugins.d.ts +3 -0
- package/dist_ts_apiclient/plugins.js +5 -0
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/package.json +9 -6
- package/readme.md +103 -7
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts_apiclient/classes.apitoken.ts +157 -0
- package/ts_apiclient/classes.certificate.ts +123 -0
- package/ts_apiclient/classes.config.ts +17 -0
- package/ts_apiclient/classes.dcrouterapiclient.ts +112 -0
- package/ts_apiclient/classes.email.ts +77 -0
- package/ts_apiclient/classes.logs.ts +37 -0
- package/ts_apiclient/classes.radius.ts +180 -0
- package/ts_apiclient/classes.remoteingress.ts +185 -0
- package/ts_apiclient/classes.route.ts +203 -0
- package/ts_apiclient/classes.stats.ts +111 -0
- package/ts_apiclient/index.ts +15 -0
- package/ts_apiclient/plugins.ts +8 -0
- package/ts_apiclient/readme.md +279 -0
- package/ts_apiclient/tspublish.json +3 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/readme.md +7 -0
package/dist_serve/bundle.js
CHANGED
|
@@ -39328,4 +39328,4 @@ ibantools/jsnext/ibantools.js:
|
|
|
39328
39328
|
* @preferred
|
|
39329
39329
|
*)
|
|
39330
39330
|
*/
|
|
39331
|
-
//# sourceMappingURL=bundle-
|
|
39331
|
+
//# sourceMappingURL=bundle-1772996333648.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/dcrouter',
|
|
6
|
-
version: '11.
|
|
6
|
+
version: '11.2.1',
|
|
7
7
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDBFQUEwRTtDQUN4RixDQUFBIn0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class ApiToken {
|
|
4
|
+
private clientRef;
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
scopes: interfaces.data.TApiTokenScope[];
|
|
8
|
+
createdAt: number;
|
|
9
|
+
expiresAt: number | null;
|
|
10
|
+
lastUsedAt: number | null;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
/** Only set on creation or roll. Not persisted on server side. */
|
|
13
|
+
tokenValue?: string;
|
|
14
|
+
constructor(clientRef: DcRouterApiClient, data: interfaces.data.IApiTokenInfo, tokenValue?: string);
|
|
15
|
+
revoke(): Promise<void>;
|
|
16
|
+
roll(): Promise<string>;
|
|
17
|
+
toggle(enabled: boolean): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare class ApiTokenBuilder {
|
|
20
|
+
private clientRef;
|
|
21
|
+
private tokenName;
|
|
22
|
+
private tokenScopes;
|
|
23
|
+
private tokenExpiresInDays?;
|
|
24
|
+
constructor(clientRef: DcRouterApiClient);
|
|
25
|
+
setName(name: string): this;
|
|
26
|
+
setScopes(scopes: interfaces.data.TApiTokenScope[]): this;
|
|
27
|
+
addScope(scope: interfaces.data.TApiTokenScope): this;
|
|
28
|
+
setExpiresInDays(days: number | null): this;
|
|
29
|
+
save(): Promise<ApiToken>;
|
|
30
|
+
}
|
|
31
|
+
export declare class ApiTokenManager {
|
|
32
|
+
private clientRef;
|
|
33
|
+
constructor(clientRef: DcRouterApiClient);
|
|
34
|
+
list(): Promise<ApiToken[]>;
|
|
35
|
+
create(options: {
|
|
36
|
+
name: string;
|
|
37
|
+
scopes: interfaces.data.TApiTokenScope[];
|
|
38
|
+
expiresInDays?: number | null;
|
|
39
|
+
}): Promise<ApiToken>;
|
|
40
|
+
build(): ApiTokenBuilder;
|
|
41
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
export class ApiToken {
|
|
3
|
+
clientRef;
|
|
4
|
+
// Data from IApiTokenInfo
|
|
5
|
+
id;
|
|
6
|
+
name;
|
|
7
|
+
scopes;
|
|
8
|
+
createdAt;
|
|
9
|
+
expiresAt;
|
|
10
|
+
lastUsedAt;
|
|
11
|
+
enabled;
|
|
12
|
+
/** Only set on creation or roll. Not persisted on server side. */
|
|
13
|
+
tokenValue;
|
|
14
|
+
constructor(clientRef, data, tokenValue) {
|
|
15
|
+
this.clientRef = clientRef;
|
|
16
|
+
this.id = data.id;
|
|
17
|
+
this.name = data.name;
|
|
18
|
+
this.scopes = data.scopes;
|
|
19
|
+
this.createdAt = data.createdAt;
|
|
20
|
+
this.expiresAt = data.expiresAt;
|
|
21
|
+
this.lastUsedAt = data.lastUsedAt;
|
|
22
|
+
this.enabled = data.enabled;
|
|
23
|
+
this.tokenValue = tokenValue;
|
|
24
|
+
}
|
|
25
|
+
async revoke() {
|
|
26
|
+
const response = await this.clientRef.request('revokeApiToken', this.clientRef.buildRequestPayload({ id: this.id }));
|
|
27
|
+
if (!response.success) {
|
|
28
|
+
throw new Error(response.message || 'Failed to revoke token');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async roll() {
|
|
32
|
+
const response = await this.clientRef.request('rollApiToken', this.clientRef.buildRequestPayload({ id: this.id }));
|
|
33
|
+
if (!response.success) {
|
|
34
|
+
throw new Error(response.message || 'Failed to roll token');
|
|
35
|
+
}
|
|
36
|
+
this.tokenValue = response.tokenValue;
|
|
37
|
+
return response.tokenValue;
|
|
38
|
+
}
|
|
39
|
+
async toggle(enabled) {
|
|
40
|
+
const response = await this.clientRef.request('toggleApiToken', this.clientRef.buildRequestPayload({ id: this.id, enabled }));
|
|
41
|
+
if (!response.success) {
|
|
42
|
+
throw new Error(response.message || 'Failed to toggle token');
|
|
43
|
+
}
|
|
44
|
+
this.enabled = enabled;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class ApiTokenBuilder {
|
|
48
|
+
clientRef;
|
|
49
|
+
tokenName = '';
|
|
50
|
+
tokenScopes = [];
|
|
51
|
+
tokenExpiresInDays;
|
|
52
|
+
constructor(clientRef) {
|
|
53
|
+
this.clientRef = clientRef;
|
|
54
|
+
}
|
|
55
|
+
setName(name) {
|
|
56
|
+
this.tokenName = name;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
setScopes(scopes) {
|
|
60
|
+
this.tokenScopes = scopes;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
addScope(scope) {
|
|
64
|
+
if (!this.tokenScopes.includes(scope)) {
|
|
65
|
+
this.tokenScopes.push(scope);
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
setExpiresInDays(days) {
|
|
70
|
+
this.tokenExpiresInDays = days;
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
async save() {
|
|
74
|
+
const response = await this.clientRef.request('createApiToken', this.clientRef.buildRequestPayload({
|
|
75
|
+
name: this.tokenName,
|
|
76
|
+
scopes: this.tokenScopes,
|
|
77
|
+
expiresInDays: this.tokenExpiresInDays,
|
|
78
|
+
}));
|
|
79
|
+
if (!response.success) {
|
|
80
|
+
throw new Error(response.message || 'Failed to create API token');
|
|
81
|
+
}
|
|
82
|
+
return new ApiToken(this.clientRef, {
|
|
83
|
+
id: response.tokenId,
|
|
84
|
+
name: this.tokenName,
|
|
85
|
+
scopes: this.tokenScopes,
|
|
86
|
+
createdAt: Date.now(),
|
|
87
|
+
expiresAt: this.tokenExpiresInDays
|
|
88
|
+
? Date.now() + this.tokenExpiresInDays * 24 * 60 * 60 * 1000
|
|
89
|
+
: null,
|
|
90
|
+
lastUsedAt: null,
|
|
91
|
+
enabled: true,
|
|
92
|
+
}, response.tokenValue);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export class ApiTokenManager {
|
|
96
|
+
clientRef;
|
|
97
|
+
constructor(clientRef) {
|
|
98
|
+
this.clientRef = clientRef;
|
|
99
|
+
}
|
|
100
|
+
async list() {
|
|
101
|
+
const response = await this.clientRef.request('listApiTokens', this.clientRef.buildRequestPayload());
|
|
102
|
+
return response.tokens.map((t) => new ApiToken(this.clientRef, t));
|
|
103
|
+
}
|
|
104
|
+
async create(options) {
|
|
105
|
+
return this.build()
|
|
106
|
+
.setName(options.name)
|
|
107
|
+
.setScopes(options.scopes)
|
|
108
|
+
.setExpiresInDays(options.expiresInDays ?? null)
|
|
109
|
+
.save();
|
|
110
|
+
}
|
|
111
|
+
build() {
|
|
112
|
+
return new ApiTokenBuilder(this.clientRef);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5hcGl0b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2FwaWNsaWVudC9jbGFzc2VzLmFwaXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHeEQsTUFBTSxPQUFPLFFBQVE7SUFDWCxTQUFTLENBQW9CO0lBRXJDLDBCQUEwQjtJQUNuQixFQUFFLENBQVM7SUFDWCxJQUFJLENBQVM7SUFDYixNQUFNLENBQW1DO0lBQ3pDLFNBQVMsQ0FBUztJQUNsQixTQUFTLENBQWdCO0lBQ3pCLFVBQVUsQ0FBZ0I7SUFDMUIsT0FBTyxDQUFVO0lBRXhCLGtFQUFrRTtJQUMzRCxVQUFVLENBQVU7SUFFM0IsWUFBWSxTQUE0QixFQUFFLElBQW1DLEVBQUUsVUFBbUI7UUFDaEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQyxnQkFBZ0IsRUFDaEIsSUFB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
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class Certificate {
|
|
4
|
+
private clientRef;
|
|
5
|
+
domain: string;
|
|
6
|
+
routeNames: string[];
|
|
7
|
+
status: interfaces.requests.TCertificateStatus;
|
|
8
|
+
source: interfaces.requests.TCertificateSource;
|
|
9
|
+
tlsMode: 'terminate' | 'terminate-and-reencrypt' | 'passthrough';
|
|
10
|
+
expiryDate?: string;
|
|
11
|
+
issuer?: string;
|
|
12
|
+
issuedAt?: string;
|
|
13
|
+
error?: string;
|
|
14
|
+
canReprovision: boolean;
|
|
15
|
+
backoffInfo?: {
|
|
16
|
+
failures: number;
|
|
17
|
+
retryAfter?: string;
|
|
18
|
+
lastError?: string;
|
|
19
|
+
};
|
|
20
|
+
constructor(clientRef: DcRouterApiClient, data: interfaces.requests.ICertificateInfo);
|
|
21
|
+
reprovision(): Promise<void>;
|
|
22
|
+
delete(): Promise<void>;
|
|
23
|
+
export(): Promise<{
|
|
24
|
+
id: string;
|
|
25
|
+
domainName: string;
|
|
26
|
+
created: number;
|
|
27
|
+
validUntil: number;
|
|
28
|
+
privateKey: string;
|
|
29
|
+
publicKey: string;
|
|
30
|
+
csr: string;
|
|
31
|
+
} | undefined>;
|
|
32
|
+
}
|
|
33
|
+
export interface ICertificateSummary {
|
|
34
|
+
total: number;
|
|
35
|
+
valid: number;
|
|
36
|
+
expiring: number;
|
|
37
|
+
expired: number;
|
|
38
|
+
failed: number;
|
|
39
|
+
unknown: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class CertificateManager {
|
|
42
|
+
private clientRef;
|
|
43
|
+
constructor(clientRef: DcRouterApiClient);
|
|
44
|
+
list(): Promise<{
|
|
45
|
+
certificates: Certificate[];
|
|
46
|
+
summary: ICertificateSummary;
|
|
47
|
+
}>;
|
|
48
|
+
import(cert: {
|
|
49
|
+
id: string;
|
|
50
|
+
domainName: string;
|
|
51
|
+
created: number;
|
|
52
|
+
validUntil: number;
|
|
53
|
+
privateKey: string;
|
|
54
|
+
publicKey: string;
|
|
55
|
+
csr: string;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
export class Certificate {
|
|
3
|
+
clientRef;
|
|
4
|
+
// Data from ICertificateInfo
|
|
5
|
+
domain;
|
|
6
|
+
routeNames;
|
|
7
|
+
status;
|
|
8
|
+
source;
|
|
9
|
+
tlsMode;
|
|
10
|
+
expiryDate;
|
|
11
|
+
issuer;
|
|
12
|
+
issuedAt;
|
|
13
|
+
error;
|
|
14
|
+
canReprovision;
|
|
15
|
+
backoffInfo;
|
|
16
|
+
constructor(clientRef, data) {
|
|
17
|
+
this.clientRef = clientRef;
|
|
18
|
+
this.domain = data.domain;
|
|
19
|
+
this.routeNames = data.routeNames;
|
|
20
|
+
this.status = data.status;
|
|
21
|
+
this.source = data.source;
|
|
22
|
+
this.tlsMode = data.tlsMode;
|
|
23
|
+
this.expiryDate = data.expiryDate;
|
|
24
|
+
this.issuer = data.issuer;
|
|
25
|
+
this.issuedAt = data.issuedAt;
|
|
26
|
+
this.error = data.error;
|
|
27
|
+
this.canReprovision = data.canReprovision;
|
|
28
|
+
this.backoffInfo = data.backoffInfo;
|
|
29
|
+
}
|
|
30
|
+
async reprovision() {
|
|
31
|
+
const response = await this.clientRef.request('reprovisionCertificateDomain', this.clientRef.buildRequestPayload({ domain: this.domain }));
|
|
32
|
+
if (!response.success) {
|
|
33
|
+
throw new Error(response.message || 'Failed to reprovision certificate');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async delete() {
|
|
37
|
+
const response = await this.clientRef.request('deleteCertificate', this.clientRef.buildRequestPayload({ domain: this.domain }));
|
|
38
|
+
if (!response.success) {
|
|
39
|
+
throw new Error(response.message || 'Failed to delete certificate');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async export() {
|
|
43
|
+
const response = await this.clientRef.request('exportCertificate', this.clientRef.buildRequestPayload({ domain: this.domain }));
|
|
44
|
+
if (!response.success) {
|
|
45
|
+
throw new Error(response.message || 'Failed to export certificate');
|
|
46
|
+
}
|
|
47
|
+
return response.cert;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class CertificateManager {
|
|
51
|
+
clientRef;
|
|
52
|
+
constructor(clientRef) {
|
|
53
|
+
this.clientRef = clientRef;
|
|
54
|
+
}
|
|
55
|
+
async list() {
|
|
56
|
+
const response = await this.clientRef.request('getCertificateOverview', this.clientRef.buildRequestPayload());
|
|
57
|
+
return {
|
|
58
|
+
certificates: response.certificates.map((c) => new Certificate(this.clientRef, c)),
|
|
59
|
+
summary: response.summary,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async import(cert) {
|
|
63
|
+
const response = await this.clientRef.request('importCertificate', this.clientRef.buildRequestPayload({ cert }));
|
|
64
|
+
if (!response.success) {
|
|
65
|
+
throw new Error(response.message || 'Failed to import certificate');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jZXJ0aWZpY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2FwaWNsaWVudC9jbGFzc2VzLmNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHeEQsTUFBTSxPQUFPLFdBQVc7SUFDZCxTQUFTLENBQW9CO0lBRXJDLDZCQUE2QjtJQUN0QixNQUFNLENBQVM7SUFDZixVQUFVLENBQVc7SUFDckIsTUFBTSxDQUF5QztJQUMvQyxNQUFNLENBQXlDO0lBQy9DLE9BQU8sQ0FBMEQ7SUFDakUsVUFBVSxDQUFVO0lBQ3BCLE1BQU0sQ0FBVTtJQUNoQixRQUFRLENBQVU7SUFDbEIsS0FBSyxDQUFVO0lBQ2YsY0FBYyxDQUFVO0lBQ3hCLFdBQVcsQ0FJaEI7SUFFRixZQUFZLFNBQTRCLEVBQUUsSUFBMEM7UUFDbEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class ConfigManager {
|
|
4
|
+
private clientRef;
|
|
5
|
+
constructor(clientRef: DcRouterApiClient);
|
|
6
|
+
get(section?: string): Promise<interfaces.requests.IReq_GetConfiguration['response']>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
export class ConfigManager {
|
|
3
|
+
clientRef;
|
|
4
|
+
constructor(clientRef) {
|
|
5
|
+
this.clientRef = clientRef;
|
|
6
|
+
}
|
|
7
|
+
async get(section) {
|
|
8
|
+
return this.clientRef.request('getConfiguration', this.clientRef.buildRequestPayload({ section }));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19hcGljbGllbnQvY2xhc3Nlcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUd4RCxNQUFNLE9BQU8sYUFBYTtJQUNoQixTQUFTLENBQW9CO0lBRXJDLFlBQVksU0FBNEI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBZ0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0Isa0JBQWtCLEVBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBUSxDQUN2RCxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
3
|
+
import { RouteManager } from './classes.route.js';
|
|
4
|
+
import { CertificateManager } from './classes.certificate.js';
|
|
5
|
+
import { ApiTokenManager } from './classes.apitoken.js';
|
|
6
|
+
import { RemoteIngressManager } from './classes.remoteingress.js';
|
|
7
|
+
import { StatsManager } from './classes.stats.js';
|
|
8
|
+
import { ConfigManager } from './classes.config.js';
|
|
9
|
+
import { LogManager } from './classes.logs.js';
|
|
10
|
+
import { EmailManager } from './classes.email.js';
|
|
11
|
+
import { RadiusManager } from './classes.radius.js';
|
|
12
|
+
export interface IDcRouterApiClientOptions {
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
apiToken?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class DcRouterApiClient {
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
apiToken?: string;
|
|
19
|
+
identity?: interfaces.data.IIdentity;
|
|
20
|
+
routes: RouteManager;
|
|
21
|
+
certificates: CertificateManager;
|
|
22
|
+
apiTokens: ApiTokenManager;
|
|
23
|
+
remoteIngress: RemoteIngressManager;
|
|
24
|
+
stats: StatsManager;
|
|
25
|
+
config: ConfigManager;
|
|
26
|
+
logs: LogManager;
|
|
27
|
+
emails: EmailManager;
|
|
28
|
+
radius: RadiusManager;
|
|
29
|
+
constructor(options: IDcRouterApiClientOptions);
|
|
30
|
+
login(username: string, password: string): Promise<interfaces.data.IIdentity>;
|
|
31
|
+
logout(): Promise<void>;
|
|
32
|
+
verifyIdentity(): Promise<{
|
|
33
|
+
valid: boolean;
|
|
34
|
+
identity?: interfaces.data.IIdentity;
|
|
35
|
+
}>;
|
|
36
|
+
request<T extends plugins.typedrequestInterfaces.ITypedRequest>(method: string, requestData: T['request']): Promise<T['response']>;
|
|
37
|
+
/**
|
|
38
|
+
* Build a request payload with identity and optional API token auto-injected.
|
|
39
|
+
*/
|
|
40
|
+
buildRequestPayload(extra?: Record<string, any>): Record<string, any>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
3
|
+
import { RouteManager } from './classes.route.js';
|
|
4
|
+
import { CertificateManager } from './classes.certificate.js';
|
|
5
|
+
import { ApiTokenManager } from './classes.apitoken.js';
|
|
6
|
+
import { RemoteIngressManager } from './classes.remoteingress.js';
|
|
7
|
+
import { StatsManager } from './classes.stats.js';
|
|
8
|
+
import { ConfigManager } from './classes.config.js';
|
|
9
|
+
import { LogManager } from './classes.logs.js';
|
|
10
|
+
import { EmailManager } from './classes.email.js';
|
|
11
|
+
import { RadiusManager } from './classes.radius.js';
|
|
12
|
+
export class DcRouterApiClient {
|
|
13
|
+
baseUrl;
|
|
14
|
+
apiToken;
|
|
15
|
+
identity;
|
|
16
|
+
// Resource managers
|
|
17
|
+
routes;
|
|
18
|
+
certificates;
|
|
19
|
+
apiTokens;
|
|
20
|
+
remoteIngress;
|
|
21
|
+
stats;
|
|
22
|
+
config;
|
|
23
|
+
logs;
|
|
24
|
+
emails;
|
|
25
|
+
radius;
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.baseUrl = options.baseUrl.replace(/\/+$/, '');
|
|
28
|
+
this.apiToken = options.apiToken;
|
|
29
|
+
this.routes = new RouteManager(this);
|
|
30
|
+
this.certificates = new CertificateManager(this);
|
|
31
|
+
this.apiTokens = new ApiTokenManager(this);
|
|
32
|
+
this.remoteIngress = new RemoteIngressManager(this);
|
|
33
|
+
this.stats = new StatsManager(this);
|
|
34
|
+
this.config = new ConfigManager(this);
|
|
35
|
+
this.logs = new LogManager(this);
|
|
36
|
+
this.emails = new EmailManager(this);
|
|
37
|
+
this.radius = new RadiusManager(this);
|
|
38
|
+
}
|
|
39
|
+
// =====================
|
|
40
|
+
// Auth
|
|
41
|
+
// =====================
|
|
42
|
+
async login(username, password) {
|
|
43
|
+
const response = await this.request('adminLoginWithUsernameAndPassword', { username, password });
|
|
44
|
+
if (response.identity) {
|
|
45
|
+
this.identity = response.identity;
|
|
46
|
+
}
|
|
47
|
+
return response.identity;
|
|
48
|
+
}
|
|
49
|
+
async logout() {
|
|
50
|
+
await this.request('adminLogout', { identity: this.identity });
|
|
51
|
+
this.identity = undefined;
|
|
52
|
+
}
|
|
53
|
+
async verifyIdentity() {
|
|
54
|
+
const response = await this.request('verifyIdentity', { identity: this.identity });
|
|
55
|
+
if (response.identity) {
|
|
56
|
+
this.identity = response.identity;
|
|
57
|
+
}
|
|
58
|
+
return response;
|
|
59
|
+
}
|
|
60
|
+
// =====================
|
|
61
|
+
// Internal request helper
|
|
62
|
+
// =====================
|
|
63
|
+
async request(method, requestData) {
|
|
64
|
+
const typedRequest = new plugins.typedrequest.TypedRequest(`${this.baseUrl}/typedrequest`, method);
|
|
65
|
+
return typedRequest.fire(requestData);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build a request payload with identity and optional API token auto-injected.
|
|
69
|
+
*/
|
|
70
|
+
buildRequestPayload(extra = {}) {
|
|
71
|
+
const payload = { ...extra };
|
|
72
|
+
if (this.identity) {
|
|
73
|
+
payload.identity = this.identity;
|
|
74
|
+
}
|
|
75
|
+
if (this.apiToken) {
|
|
76
|
+
payload.apiToken = this.apiToken;
|
|
77
|
+
}
|
|
78
|
+
return payload;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kY3JvdXRlcmFwaWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2FwaWNsaWVudC9jbGFzc2VzLmRjcm91dGVyYXBpY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsT0FBTyxDQUFTO0lBQ2hCLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQTZCO0lBRTVDLG9CQUFvQjtJQUNiLE1BQU0sQ0FBZTtJQUNyQixZQUFZLENBQXFCO0lBQ2pDLFNBQVMsQ0FBa0I7SUFDM0IsYUFBYSxDQUF1QjtJQUNwQyxLQUFLLENBQWU7SUFDcEIsTUFBTSxDQUFnQjtJQUN0QixJQUFJLENBQWE7SUFDakIsTUFBTSxDQUFlO0lBQ3JCLE1BQU0sQ0FBZ0I7SUFFN0IsWUFBWSxPQUFrQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FB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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class Email {
|
|
4
|
+
private clientRef;
|
|
5
|
+
id: string;
|
|
6
|
+
direction: interfaces.requests.TEmailDirection;
|
|
7
|
+
status: interfaces.requests.TEmailStatus;
|
|
8
|
+
from: string;
|
|
9
|
+
to: string;
|
|
10
|
+
subject: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
messageId: string;
|
|
13
|
+
size: string;
|
|
14
|
+
constructor(clientRef: DcRouterApiClient, data: interfaces.requests.IEmail);
|
|
15
|
+
getDetail(): Promise<interfaces.requests.IEmailDetail | null>;
|
|
16
|
+
resend(): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
newQueueId?: string;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export declare class EmailManager {
|
|
22
|
+
private clientRef;
|
|
23
|
+
constructor(clientRef: DcRouterApiClient);
|
|
24
|
+
list(): Promise<Email[]>;
|
|
25
|
+
getDetail(emailId: string): Promise<interfaces.requests.IEmailDetail | null>;
|
|
26
|
+
resend(emailId: string): Promise<{
|
|
27
|
+
success: boolean;
|
|
28
|
+
newQueueId?: string;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
export class Email {
|
|
3
|
+
clientRef;
|
|
4
|
+
// Data from IEmail
|
|
5
|
+
id;
|
|
6
|
+
direction;
|
|
7
|
+
status;
|
|
8
|
+
from;
|
|
9
|
+
to;
|
|
10
|
+
subject;
|
|
11
|
+
timestamp;
|
|
12
|
+
messageId;
|
|
13
|
+
size;
|
|
14
|
+
constructor(clientRef, data) {
|
|
15
|
+
this.clientRef = clientRef;
|
|
16
|
+
this.id = data.id;
|
|
17
|
+
this.direction = data.direction;
|
|
18
|
+
this.status = data.status;
|
|
19
|
+
this.from = data.from;
|
|
20
|
+
this.to = data.to;
|
|
21
|
+
this.subject = data.subject;
|
|
22
|
+
this.timestamp = data.timestamp;
|
|
23
|
+
this.messageId = data.messageId;
|
|
24
|
+
this.size = data.size;
|
|
25
|
+
}
|
|
26
|
+
async getDetail() {
|
|
27
|
+
const response = await this.clientRef.request('getEmailDetail', this.clientRef.buildRequestPayload({ emailId: this.id }));
|
|
28
|
+
return response.email;
|
|
29
|
+
}
|
|
30
|
+
async resend() {
|
|
31
|
+
const response = await this.clientRef.request('resendEmail', this.clientRef.buildRequestPayload({ emailId: this.id }));
|
|
32
|
+
return response;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class EmailManager {
|
|
36
|
+
clientRef;
|
|
37
|
+
constructor(clientRef) {
|
|
38
|
+
this.clientRef = clientRef;
|
|
39
|
+
}
|
|
40
|
+
async list() {
|
|
41
|
+
const response = await this.clientRef.request('getAllEmails', this.clientRef.buildRequestPayload());
|
|
42
|
+
return response.emails.map((e) => new Email(this.clientRef, e));
|
|
43
|
+
}
|
|
44
|
+
async getDetail(emailId) {
|
|
45
|
+
const response = await this.clientRef.request('getEmailDetail', this.clientRef.buildRequestPayload({ emailId }));
|
|
46
|
+
return response.email;
|
|
47
|
+
}
|
|
48
|
+
async resend(emailId) {
|
|
49
|
+
return this.clientRef.request('resendEmail', this.clientRef.buildRequestPayload({ emailId }));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2FwaWNsaWVudC9jbGFzc2VzLmVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHeEQsTUFBTSxPQUFPLEtBQUs7SUFDUixTQUFTLENBQW9CO0lBRXJDLG1CQUFtQjtJQUNaLEVBQUUsQ0FBUztJQUNYLFNBQVMsQ0FBc0M7SUFDL0MsTUFBTSxDQUFtQztJQUN6QyxJQUFJLENBQVM7SUFDYixFQUFFLENBQVM7SUFDWCxPQUFPLENBQVM7SUFDaEIsU0FBUyxDQUFTO0lBQ2xCLFNBQVMsQ0FBUztJQUNsQixJQUFJLENBQVM7SUFFcEIsWUFBWSxTQUE0QixFQUFFLElBQWdDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUztRQUNwQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQyxnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQVEsQ0FDaEUsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsYUFBYSxFQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFRLENBQ2hFLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUNmLFNBQVMsQ0FBb0I7SUFFckMsWUFBWSxTQUE0QjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQyxjQUFjLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBUyxDQUM1QyxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQWU7UUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBUSxDQUN2RCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWU7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsYUFBYSxFQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBUSxDQUN2RCxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class LogManager {
|
|
4
|
+
private clientRef;
|
|
5
|
+
constructor(clientRef: DcRouterApiClient);
|
|
6
|
+
getRecent(options?: {
|
|
7
|
+
level?: 'debug' | 'info' | 'warn' | 'error';
|
|
8
|
+
category?: 'smtp' | 'dns' | 'security' | 'system' | 'email';
|
|
9
|
+
limit?: number;
|
|
10
|
+
offset?: number;
|
|
11
|
+
search?: string;
|
|
12
|
+
timeRange?: string;
|
|
13
|
+
}): Promise<interfaces.requests.IReq_GetRecentLogs['response']>;
|
|
14
|
+
getStream(options?: {
|
|
15
|
+
follow?: boolean;
|
|
16
|
+
filters?: {
|
|
17
|
+
level?: string[];
|
|
18
|
+
category?: string[];
|
|
19
|
+
};
|
|
20
|
+
}): Promise<interfaces.requests.IReq_GetLogStream['response']>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
export class LogManager {
|
|
3
|
+
clientRef;
|
|
4
|
+
constructor(clientRef) {
|
|
5
|
+
this.clientRef = clientRef;
|
|
6
|
+
}
|
|
7
|
+
async getRecent(options) {
|
|
8
|
+
return this.clientRef.request('getRecentLogs', this.clientRef.buildRequestPayload(options || {}));
|
|
9
|
+
}
|
|
10
|
+
async getStream(options) {
|
|
11
|
+
return this.clientRef.request('getLogStream', this.clientRef.buildRequestPayload(options || {}));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5sb2dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfYXBpY2xpZW50L2NsYXNzZXMubG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBR3hELE1BQU0sT0FBTyxVQUFVO0lBQ2IsU0FBUyxDQUFvQjtJQUVyQyxZQUFZLFNBQTRCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BT3RCO1FBQ0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsZUFBZSxFQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBUSxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FNdEI7UUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQixjQUFjLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFRLENBQ3pELENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as interfaces from '../dist_ts_interfaces/index.js';
|
|
2
|
+
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
|
|
3
|
+
export declare class RadiusClientManager {
|
|
4
|
+
private clientRef;
|
|
5
|
+
constructor(clientRef: DcRouterApiClient);
|
|
6
|
+
list(): Promise<Array<{
|
|
7
|
+
name: string;
|
|
8
|
+
ipRange: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
}>>;
|
|
12
|
+
set(client: {
|
|
13
|
+
name: string;
|
|
14
|
+
ipRange: string;
|
|
15
|
+
secret: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
remove(name: string): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare class RadiusVlanManager {
|
|
22
|
+
private clientRef;
|
|
23
|
+
constructor(clientRef: DcRouterApiClient);
|
|
24
|
+
list(): Promise<interfaces.requests.IReq_GetVlanMappings['response']>;
|
|
25
|
+
set(mapping: {
|
|
26
|
+
mac: string;
|
|
27
|
+
vlan: number;
|
|
28
|
+
description?: string;
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
remove(mac: string): Promise<void>;
|
|
32
|
+
updateConfig(options: {
|
|
33
|
+
defaultVlan?: number;
|
|
34
|
+
allowUnknownMacs?: boolean;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
defaultVlan: number;
|
|
37
|
+
allowUnknownMacs: boolean;
|
|
38
|
+
}>;
|
|
39
|
+
testAssignment(mac: string): Promise<interfaces.requests.IReq_TestVlanAssignment['response']>;
|
|
40
|
+
}
|
|
41
|
+
export declare class RadiusSessionManager {
|
|
42
|
+
private clientRef;
|
|
43
|
+
constructor(clientRef: DcRouterApiClient);
|
|
44
|
+
list(filter?: {
|
|
45
|
+
username?: string;
|
|
46
|
+
nasIpAddress?: string;
|
|
47
|
+
vlanId?: number;
|
|
48
|
+
}): Promise<interfaces.requests.IReq_GetRadiusSessions['response']>;
|
|
49
|
+
disconnect(sessionId: string, reason?: string): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export declare class RadiusManager {
|
|
52
|
+
private clientRef;
|
|
53
|
+
clients: RadiusClientManager;
|
|
54
|
+
vlans: RadiusVlanManager;
|
|
55
|
+
sessions: RadiusSessionManager;
|
|
56
|
+
constructor(clientRef: DcRouterApiClient);
|
|
57
|
+
getAccountingSummary(startTime: number, endTime: number): Promise<interfaces.requests.IReq_GetRadiusAccountingSummary['response']['summary']>;
|
|
58
|
+
getStatistics(): Promise<interfaces.requests.IReq_GetRadiusStatistics['response']>;
|
|
59
|
+
}
|