@theotherwillembotha/node-red-nginxproxymanager 0.1.0 → 0.4.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.
- package/build/GenerateNodes.d.ts +2 -0
- package/build/GenerateNodes.d.ts.map +1 -0
- package/build/GenerateNodes.js +7 -6
- package/build/Nodes.html +653 -420
- package/build/Nodes.js +34995 -12
- package/build/Plugins.html +37 -0
- package/build/Plugins.js +34650 -54
- package/build/index.d.ts +5 -0
- package/build/index.d.ts.map +1 -0
- package/build/nginx/node/NginxGetHostsNode.d.ts +19 -0
- package/build/nginx/node/NginxGetHostsNode.d.ts.map +1 -0
- package/build/nginx/node/NginxGetHostsNode.js +2 -2
- package/build/nginx/node/NginxProxyManagerConfigNode.d.ts +15 -0
- package/build/nginx/node/NginxProxyManagerConfigNode.d.ts.map +1 -0
- package/build/nginx/node/NginxProxyManagerConfigNode.js +4 -3
- package/build/nginx/node/UpdateHostNode.d.ts +18 -0
- package/build/nginx/node/UpdateHostNode.d.ts.map +1 -0
- package/build/nginx/node/UpdateHostNode.js +2 -3
- package/build/nginx/service/NginxProxyManagerClient.d.ts +9 -0
- package/build/nginx/service/NginxProxyManagerClient.d.ts.map +1 -0
- package/build/nginx/service/NginxProxyManagerService.d.ts +9 -0
- package/build/nginx/service/NginxProxyManagerService.d.ts.map +1 -0
- package/build/nginx/service/NginxProxyManagerService.js +21 -5
- package/build/nginx/service/client/NginxClient.d.ts +69 -0
- package/build/nginx/service/client/NginxClient.d.ts.map +1 -0
- package/build/nginx/service/client/NginxHttpClient.d.ts +26 -0
- package/build/nginx/service/client/NginxHttpClient.d.ts.map +1 -0
- package/build/nginx/service/client/types.d.ts +291 -0
- package/build/nginx/service/client/types.d.ts.map +1 -0
- package/build/runtime/NodeManagerRuntime.js +140 -0
- package/package.json +10 -6
- package/documentation/GetHostsNode.png +0 -0
- package/documentation/NginxProxyManagerConfig.png +0 -0
- package/documentation/UpdateHostNode.png +0 -0
package/build/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AAIzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Node } from "node-red";
|
|
2
|
+
import { BaseNode, BaseNodeConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
3
|
+
import { MetricsTemplateConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
4
|
+
import { LoggerTemplateConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
5
|
+
interface NginxGetHostsNodeConfig extends BaseNodeConfig, MetricsTemplateConfig, LoggerTemplateConfig {
|
|
6
|
+
proxymanagerconfig: string;
|
|
7
|
+
outputpath: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class NginxGetHostsNode extends BaseNode<NginxGetHostsNodeConfig> {
|
|
10
|
+
private log;
|
|
11
|
+
private counter;
|
|
12
|
+
private _client;
|
|
13
|
+
constructor(node: Node, config: NginxGetHostsNodeConfig);
|
|
14
|
+
protected onInput(message: {
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
}, errorHandler: Function): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=NginxGetHostsNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxGetHostsNode.d.ts","sourceRoot":"","sources":["../../../src/nginx/node/NginxGetHostsNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAwD,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAuD,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtI,OAAO,EAA+B,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAI7G,UAAU,uBAAwB,SAAQ,cAAc,EAAE,qBAAqB,EAAE,oBAAoB;IACjG,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,qBAaa,iBAAkB,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IAGpE,OAAO,CAAC,GAAG,CAAO;IAGlB,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAY,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,EAGtD;IAED,UACgB,OAAO,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,YAAY,EAAE,QAAQ,iBAW9E;CACJ"}
|
|
@@ -37,7 +37,7 @@ __decorate([
|
|
|
37
37
|
], NginxGetHostsNode.prototype, "log", void 0);
|
|
38
38
|
__decorate([
|
|
39
39
|
(0, node_red_plugincore_2.Metrics)({ name: "get_hosts_requests", type: node_red_plugincore_2.MetricType.Counter, description: "number of get hosts requests made" }),
|
|
40
|
-
__metadata("design:type",
|
|
40
|
+
__metadata("design:type", Object)
|
|
41
41
|
], NginxGetHostsNode.prototype, "counter", void 0);
|
|
42
42
|
__decorate([
|
|
43
43
|
(0, node_red_plugincore_1.onInput)(),
|
|
@@ -51,7 +51,7 @@ exports.NginxGetHostsNode = NginxGetHostsNode = __decorate([
|
|
|
51
51
|
name: "Nginx Get Hosts",
|
|
52
52
|
group: "nginxproxymanager",
|
|
53
53
|
sourceFile: node_red_plugincore_1.SourceUtility.getSourcePath("/build/", "/src/") + "NginxGetHostsNode.html",
|
|
54
|
-
package: "@theotherwillembotha/
|
|
54
|
+
package: "@theotherwillembotha/node-red-nginxproxymanager",
|
|
55
55
|
templates: [
|
|
56
56
|
{ template: node_red_plugincore_3.LoggerTemplate, config: {} },
|
|
57
57
|
{ template: node_red_plugincore_2.MetricsTemplate, config: {} }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Node } from "node-red";
|
|
2
|
+
import { ConfigNode, ConfigNodeConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
3
|
+
import { NginxProxyManagerClient } from "../service/NginxProxyManagerClient";
|
|
4
|
+
interface NginxProxyManagerConfigNodeConfig extends ConfigNodeConfig {
|
|
5
|
+
url: string;
|
|
6
|
+
email: string;
|
|
7
|
+
password: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class NginxProxyManagerConfigNode extends ConfigNode<NginxProxyManagerConfigNodeConfig> {
|
|
10
|
+
private _client;
|
|
11
|
+
constructor(node: Node, config: NginxProxyManagerConfigNodeConfig);
|
|
12
|
+
client(): NginxProxyManagerClient;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=NginxProxyManagerConfigNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxProxyManagerConfigNode.d.ts","sourceRoot":"","sources":["../../../src/nginx/node/NginxProxyManagerConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoD,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,UAAU,iCAAkC,SAAQ,gBAAgB;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAYa,2BAA4B,SAAQ,UAAU,CAAC,iCAAiC,CAAC;IAE1F,OAAO,CAAC,OAAO,CAA2B;IAE1C,YAAY,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iCAAiC,EAGhE;IAEM,MAAM,IAAI,uBAAuB,CAEvC;CACJ"}
|
|
@@ -12,10 +12,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.NginxProxyManagerConfigNode = void 0;
|
|
13
13
|
const node_red_plugincore_1 = require("@theotherwillembotha/node-red-plugincore");
|
|
14
14
|
const NginxProxyManagerClient_1 = require("../service/NginxProxyManagerClient");
|
|
15
|
+
const NginxProxyManagerService_1 = require("../service/NginxProxyManagerService");
|
|
15
16
|
let NginxProxyManagerConfigNode = class NginxProxyManagerConfigNode extends node_red_plugincore_1.ConfigNode {
|
|
16
17
|
constructor(node, config) {
|
|
17
18
|
super(node, config);
|
|
18
|
-
let _this = this;
|
|
19
19
|
this._client = new NginxProxyManagerClient_1.NginxProxyManagerClient(config.url, config.email, config.password);
|
|
20
20
|
}
|
|
21
21
|
client() {
|
|
@@ -29,11 +29,12 @@ exports.NginxProxyManagerConfigNode = NginxProxyManagerConfigNode = __decorate([
|
|
|
29
29
|
name: "Nginx Proxy Manager Config",
|
|
30
30
|
group: "config",
|
|
31
31
|
sourceFile: node_red_plugincore_1.SourceUtility.getSourcePath("/build/", "/src/") + "NginxProxyManagerConfigNode.html",
|
|
32
|
-
package: "@theotherwillembotha/
|
|
32
|
+
package: "@theotherwillembotha/node-red-nginxproxymanager",
|
|
33
33
|
tags: ["ReverseProxyType"],
|
|
34
34
|
templates: [
|
|
35
35
|
{ template: node_red_plugincore_1.UIHelperTemplate, config: {} }
|
|
36
|
-
]
|
|
36
|
+
],
|
|
37
|
+
dependencies: [NginxProxyManagerService_1.NginxProxyManagerService]
|
|
37
38
|
}),
|
|
38
39
|
__metadata("design:paramtypes", [Object, Object])
|
|
39
40
|
], NginxProxyManagerConfigNode);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Node } from "node-red";
|
|
2
|
+
import { BaseNode, BaseNodeConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
3
|
+
import { MetricsTemplateConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
4
|
+
import { LoggerTemplateConfig } from "@theotherwillembotha/node-red-plugincore";
|
|
5
|
+
interface UpdateNginxHostNodeConfig extends BaseNodeConfig, MetricsTemplateConfig, LoggerTemplateConfig {
|
|
6
|
+
proxymanagerconfig: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class UpdateNginxHostNode extends BaseNode<UpdateNginxHostNodeConfig> {
|
|
9
|
+
private log;
|
|
10
|
+
private counter;
|
|
11
|
+
private _client;
|
|
12
|
+
constructor(node: Node, config: UpdateNginxHostNodeConfig);
|
|
13
|
+
protected onInput(message: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}, errorHandler: Function): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=UpdateHostNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateHostNode.d.ts","sourceRoot":"","sources":["../../../src/nginx/node/UpdateHostNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAwD,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAuD,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtI,OAAO,EAA+B,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAK7G,UAAU,yBAA0B,SAAQ,cAAc,EAAE,qBAAqB,EAAE,oBAAoB;IACnG,kBAAkB,EAAC,MAAM,CAAC;CAC7B;AAED,qBAaa,mBAAoB,SAAQ,QAAQ,CAAC,yBAAyB,CAAC;IAGxE,OAAO,CAAC,GAAG,CAAM;IAGjB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAY,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAIxD;IAED,UACgB,OAAO,CAAC,OAAO,EAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;KAAC,EAAE,YAAY,EAAC,QAAQ,iBAKxE;CACJ"}
|
|
@@ -17,7 +17,6 @@ const NginxProxyManagerConfigNode_1 = require("./NginxProxyManagerConfigNode");
|
|
|
17
17
|
let UpdateNginxHostNode = class UpdateNginxHostNode extends node_red_plugincore_1.BaseNode {
|
|
18
18
|
constructor(node, config) {
|
|
19
19
|
super(node, config);
|
|
20
|
-
let _this = this;
|
|
21
20
|
// get a reference to the NGINXPROXYMANAGER client.
|
|
22
21
|
this._client = node_red_plugincore_1.NodeManager.RED.nodes.getNode(config.proxymanagerconfig).node().client();
|
|
23
22
|
}
|
|
@@ -35,7 +34,7 @@ __decorate([
|
|
|
35
34
|
], UpdateNginxHostNode.prototype, "log", void 0);
|
|
36
35
|
__decorate([
|
|
37
36
|
(0, node_red_plugincore_2.Metrics)({ name: "request", type: node_red_plugincore_2.MetricType.Counter, description: "number of requests made" }),
|
|
38
|
-
__metadata("design:type",
|
|
37
|
+
__metadata("design:type", Object)
|
|
39
38
|
], UpdateNginxHostNode.prototype, "counter", void 0);
|
|
40
39
|
__decorate([
|
|
41
40
|
(0, node_red_plugincore_1.onInput)(),
|
|
@@ -49,7 +48,7 @@ exports.UpdateNginxHostNode = UpdateNginxHostNode = __decorate([
|
|
|
49
48
|
name: "Update Nginx Host",
|
|
50
49
|
group: "nginxproxymanager",
|
|
51
50
|
sourceFile: node_red_plugincore_1.SourceUtility.getSourcePath("/build/", "/src/") + "UpdateHostNode.html",
|
|
52
|
-
package: "@theotherwillembotha/
|
|
51
|
+
package: "@theotherwillembotha/node-red-nginxproxymanager",
|
|
53
52
|
templates: [
|
|
54
53
|
{ template: node_red_plugincore_3.LoggerTemplate, config: {} },
|
|
55
54
|
{ template: node_red_plugincore_2.MetricsTemplate, config: {} }
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProxyManagerClient, HostEntry } from "@theotherwillembotha/node-red-plugincore";
|
|
2
|
+
export declare class NginxProxyManagerClient implements ProxyManagerClient {
|
|
3
|
+
private readonly _client;
|
|
4
|
+
constructor(url: string, email: string, password: string);
|
|
5
|
+
updateHost(data: Partial<HostEntry>): Promise<void>;
|
|
6
|
+
getHosts(): Promise<Partial<HostEntry>[]>;
|
|
7
|
+
deleteHost(id: number): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=NginxProxyManagerClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxProxyManagerClient.d.ts","sourceRoot":"","sources":["../../../src/nginx/service/NginxProxyManagerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAc,MAAM,0CAA0C,CAAC;AAIrG,qBAAa,uBAAwB,YAAW,kBAAkB;IAE9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAEvD;IAEY,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;IAEY,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CASrD;IAEY,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NodeAPI, NodeAPISettingsWithData } from "node-red";
|
|
2
|
+
import { BaseService } from "@theotherwillembotha/node-red-plugincore";
|
|
3
|
+
export declare class NginxProxyManagerService extends BaseService {
|
|
4
|
+
private red;
|
|
5
|
+
constructor();
|
|
6
|
+
init(red: NodeAPI<NodeAPISettingsWithData>): void;
|
|
7
|
+
deinit(red: NodeAPI<NodeAPISettingsWithData>): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=NginxProxyManagerService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxProxyManagerService.d.ts","sourceRoot":"","sources":["../../../src/nginx/service/NginxProxyManagerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAyBtE,qBAMa,wBAAyB,SAAQ,WAAW;IAErD,OAAO,CAAC,GAAG,CAAoC;IAE/C,cAEC;IAED,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CA4EhD;IAED,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAElD;CAEJ"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.NginxProxyManagerService = void 0;
|
|
4
13
|
const node_red_plugincore_1 = require("@theotherwillembotha/node-red-plugincore");
|
|
14
|
+
const node_red_plugincore_2 = require("@theotherwillembotha/node-red-plugincore");
|
|
5
15
|
const NginxClient_1 = require("./client/NginxClient");
|
|
6
16
|
const NginxHttpClient_1 = require("./client/NginxHttpClient");
|
|
7
|
-
class NginxProxyManagerService extends node_red_plugincore_1.BaseService {
|
|
17
|
+
let NginxProxyManagerService = class NginxProxyManagerService extends node_red_plugincore_1.BaseService {
|
|
8
18
|
constructor() {
|
|
9
19
|
super("NginxProxyManagerService");
|
|
10
20
|
}
|
|
@@ -83,8 +93,14 @@ class NginxProxyManagerService extends node_red_plugincore_1.BaseService {
|
|
|
83
93
|
deinit(red) {
|
|
84
94
|
console.log("STOPPING SERVICE: " + this.name());
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
return new node_red_plugincore_1.ServiceDescriptor("@theotherwillembotha/nginxproxymanagerservice", "NginxProxyManagerService", "integration-plugin", "./nginx/service/NginxProxyManagerService", NginxProxyManagerService);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
96
|
+
};
|
|
90
97
|
exports.NginxProxyManagerService = NginxProxyManagerService;
|
|
98
|
+
exports.NginxProxyManagerService = NginxProxyManagerService = __decorate([
|
|
99
|
+
(0, node_red_plugincore_2.ServiceDescription)({
|
|
100
|
+
id: "@theotherwillembotha/nginxproxymanagerservice",
|
|
101
|
+
name: "NginxProxyManagerService",
|
|
102
|
+
type: "integration-plugin",
|
|
103
|
+
sourceFile: "./nginx/service/NginxProxyManagerService"
|
|
104
|
+
}),
|
|
105
|
+
__metadata("design:paramtypes", [])
|
|
106
|
+
], NginxProxyManagerService);
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AccessList, AuditLogEntry, Certificate, CreateAccessListRequest, CreateCertificateRequest, CreateDeadHostRequest, CreateProxyHostRequest, CreateRedirectionHostRequest, CreateStreamRequest, CreateUserRequest, DeadHost, HostReport, ProxyHost, RedirectionHost, Setting, Stream, UpdateAccessListRequest, UpdateDeadHostRequest, UpdateProxyHostRequest, UpdateRedirectionHostRequest, UpdateStreamRequest, UpdateUserRequest, User } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* High-level Nginx Proxy Manager API client.
|
|
4
|
+
* Covers all resources exposed by the NPM REST API.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NginxClient {
|
|
7
|
+
private readonly http;
|
|
8
|
+
constructor(baseUrl: string, email: string, password: string);
|
|
9
|
+
listProxyHosts(): Promise<ProxyHost[]>;
|
|
10
|
+
getProxyHost(id: number): Promise<ProxyHost>;
|
|
11
|
+
createProxyHost(data: CreateProxyHostRequest): Promise<ProxyHost>;
|
|
12
|
+
updateProxyHost(id: number, data: UpdateProxyHostRequest): Promise<ProxyHost>;
|
|
13
|
+
deleteProxyHost(id: number): Promise<void>;
|
|
14
|
+
enableProxyHost(id: number): Promise<void>;
|
|
15
|
+
disableProxyHost(id: number): Promise<void>;
|
|
16
|
+
listAccessLists(): Promise<AccessList[]>;
|
|
17
|
+
getAccessList(id: number): Promise<AccessList>;
|
|
18
|
+
createAccessList(data: CreateAccessListRequest): Promise<AccessList>;
|
|
19
|
+
updateAccessList(id: number, data: UpdateAccessListRequest): Promise<AccessList>;
|
|
20
|
+
deleteAccessList(id: number): Promise<void>;
|
|
21
|
+
listCertificates(): Promise<Certificate[]>;
|
|
22
|
+
getCertificate(id: number): Promise<Certificate>;
|
|
23
|
+
createCertificate(data: CreateCertificateRequest): Promise<Certificate>;
|
|
24
|
+
deleteCertificate(id: number): Promise<void>;
|
|
25
|
+
renewCertificate(id: number): Promise<Certificate>;
|
|
26
|
+
validateCertificate(data: {
|
|
27
|
+
certificate: string;
|
|
28
|
+
certificate_key: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
listDnsProviders(): Promise<Record<string, unknown>[]>;
|
|
31
|
+
listRedirectionHosts(): Promise<RedirectionHost[]>;
|
|
32
|
+
getRedirectionHost(id: number): Promise<RedirectionHost>;
|
|
33
|
+
createRedirectionHost(data: CreateRedirectionHostRequest): Promise<RedirectionHost>;
|
|
34
|
+
updateRedirectionHost(id: number, data: UpdateRedirectionHostRequest): Promise<RedirectionHost>;
|
|
35
|
+
deleteRedirectionHost(id: number): Promise<void>;
|
|
36
|
+
enableRedirectionHost(id: number): Promise<void>;
|
|
37
|
+
disableRedirectionHost(id: number): Promise<void>;
|
|
38
|
+
listDeadHosts(): Promise<DeadHost[]>;
|
|
39
|
+
getDeadHost(id: number): Promise<DeadHost>;
|
|
40
|
+
createDeadHost(data: CreateDeadHostRequest): Promise<DeadHost>;
|
|
41
|
+
updateDeadHost(id: number, data: UpdateDeadHostRequest): Promise<DeadHost>;
|
|
42
|
+
deleteDeadHost(id: number): Promise<void>;
|
|
43
|
+
enableDeadHost(id: number): Promise<void>;
|
|
44
|
+
disableDeadHost(id: number): Promise<void>;
|
|
45
|
+
listStreams(): Promise<Stream[]>;
|
|
46
|
+
getStream(id: number): Promise<Stream>;
|
|
47
|
+
createStream(data: CreateStreamRequest): Promise<Stream>;
|
|
48
|
+
updateStream(id: number, data: UpdateStreamRequest): Promise<Stream>;
|
|
49
|
+
deleteStream(id: number): Promise<void>;
|
|
50
|
+
enableStream(id: number): Promise<void>;
|
|
51
|
+
disableStream(id: number): Promise<void>;
|
|
52
|
+
listUsers(): Promise<User[]>;
|
|
53
|
+
getUser(id: number): Promise<User>;
|
|
54
|
+
createUser(data: CreateUserRequest): Promise<User>;
|
|
55
|
+
updateUser(id: number, data: UpdateUserRequest): Promise<User>;
|
|
56
|
+
deleteUser(id: number): Promise<void>;
|
|
57
|
+
listSettings(): Promise<Setting[]>;
|
|
58
|
+
getSetting(id: string): Promise<Setting>;
|
|
59
|
+
updateSetting(id: string, value: unknown): Promise<Setting>;
|
|
60
|
+
getHostReport(): Promise<HostReport>;
|
|
61
|
+
listAuditLog(): Promise<AuditLogEntry[]>;
|
|
62
|
+
getAuditLogEntry(id: number): Promise<AuditLogEntry>;
|
|
63
|
+
/**
|
|
64
|
+
* Verifies credentials by authenticating against the NPM API.
|
|
65
|
+
* Resolves on success, rejects with NginxApiError on failure.
|
|
66
|
+
*/
|
|
67
|
+
testConnection(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=NginxClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxClient.d.ts","sourceRoot":"","sources":["../../../../src/nginx/service/client/NginxClient.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,EACN,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,EACP,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IAEvC,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAE3D;IAID,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAErC;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3C;IAED,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAEhE;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5E;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzC;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzC;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAID,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAEvC;IAED,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7C;IAED,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnE;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CAE/E;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAID,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAEzC;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAE/C;IAED,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAEtE;IAED,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAEjD;IAED,mBAAmB,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;IAED,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAErD;IAID,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAEjD;IAED,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEvD;IAED,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAElF;IAED,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAE9F;IAED,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IAED,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IAED,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAID,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEnC;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEzC;IAED,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE7D;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEzE;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExC;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExC;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzC;IAID,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/B;IAED,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErC;IAED,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvD;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtC;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtC;IAED,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvC;IAID,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAE3B;IAED,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjC;IAED,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;IAED,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;IAED,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;IAID,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAEjC;IAED,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvC;IAED,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1D;IAID,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAEnC;IAID,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEvC;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEnD;IAID;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;CACJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare class NginxApiError extends Error {
|
|
2
|
+
readonly statusCode: number;
|
|
3
|
+
readonly apiMessage: string;
|
|
4
|
+
constructor(statusCode: number, apiMessage: string);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Low-level HTTP transport for the Nginx Proxy Manager API.
|
|
8
|
+
* Handles authentication, token caching, and automatic re-auth on expiry.
|
|
9
|
+
*/
|
|
10
|
+
export declare class NginxHttpClient {
|
|
11
|
+
private readonly baseUrl;
|
|
12
|
+
private readonly email;
|
|
13
|
+
private readonly password;
|
|
14
|
+
private token;
|
|
15
|
+
private tokenExpires;
|
|
16
|
+
constructor(baseUrl: string, email: string, password: string);
|
|
17
|
+
private isTokenValid;
|
|
18
|
+
private authenticate;
|
|
19
|
+
private ensureAuthenticated;
|
|
20
|
+
private request;
|
|
21
|
+
get<T>(path: string): Promise<T>;
|
|
22
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
23
|
+
put<T>(path: string, body: unknown): Promise<T>;
|
|
24
|
+
delete(path: string): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=NginxHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NginxHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/nginx/service/client/NginxHttpClient.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAc,SAAQ,KAAK;aAEhB,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;IAFtC,YACoB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAIrC;CACJ;AAED;;;GAGG;AACH,qBAAa,eAAe;IAKpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,YAAY,CAAqB;IAEzC,YACqB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EACjC;IAIJ,OAAO,CAAC,YAAY;YAMN,YAAY;YAkBZ,mBAAmB;YAQnB,OAAO;IAoCd,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtC;IAEM,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAEvD;IAEM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAErD;IAEM,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzC;CACJ"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
export type ForwardScheme = "http" | "https";
|
|
2
|
+
export type SslProvider = "letsencrypt" | "other";
|
|
3
|
+
export type AccessDirective = "allow" | "deny";
|
|
4
|
+
export type PermissionLevel = "manage" | "view" | "hidden";
|
|
5
|
+
export type VisibilityLevel = "all" | "user";
|
|
6
|
+
export interface TokenRequest {
|
|
7
|
+
identity: string;
|
|
8
|
+
secret: string;
|
|
9
|
+
scope?: "user";
|
|
10
|
+
}
|
|
11
|
+
export interface TokenResponse {
|
|
12
|
+
expires: string;
|
|
13
|
+
token: string;
|
|
14
|
+
}
|
|
15
|
+
export interface TokenChallenge {
|
|
16
|
+
token: string;
|
|
17
|
+
}
|
|
18
|
+
export interface UserPermissions {
|
|
19
|
+
visibility: VisibilityLevel;
|
|
20
|
+
proxy_hosts: PermissionLevel;
|
|
21
|
+
redirection_hosts: PermissionLevel;
|
|
22
|
+
dead_hosts: PermissionLevel;
|
|
23
|
+
streams: PermissionLevel;
|
|
24
|
+
access_lists: PermissionLevel;
|
|
25
|
+
certificates: PermissionLevel;
|
|
26
|
+
}
|
|
27
|
+
export interface User {
|
|
28
|
+
id: number;
|
|
29
|
+
created_on: string;
|
|
30
|
+
modified_on: string;
|
|
31
|
+
is_disabled: boolean;
|
|
32
|
+
email: string;
|
|
33
|
+
name: string;
|
|
34
|
+
nickname: string;
|
|
35
|
+
avatar: string;
|
|
36
|
+
roles: string[];
|
|
37
|
+
permissions?: UserPermissions;
|
|
38
|
+
}
|
|
39
|
+
export interface CreateUserRequest {
|
|
40
|
+
name: string;
|
|
41
|
+
nickname: string;
|
|
42
|
+
email: string;
|
|
43
|
+
roles: string[];
|
|
44
|
+
is_disabled?: boolean;
|
|
45
|
+
auth?: {
|
|
46
|
+
type: "password";
|
|
47
|
+
secret: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface UpdateUserRequest {
|
|
51
|
+
name?: string;
|
|
52
|
+
nickname?: string;
|
|
53
|
+
email?: string;
|
|
54
|
+
roles?: string[];
|
|
55
|
+
is_disabled?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface CertificateMeta {
|
|
58
|
+
certificate?: string;
|
|
59
|
+
certificate_key?: string;
|
|
60
|
+
dns_challenge?: boolean;
|
|
61
|
+
dns_provider_credentials?: string;
|
|
62
|
+
dns_provider?: string;
|
|
63
|
+
letsencrypt_certificate?: Record<string, unknown>;
|
|
64
|
+
propagation_seconds?: number;
|
|
65
|
+
key_type?: "rsa" | "ecdsa";
|
|
66
|
+
}
|
|
67
|
+
export interface Certificate {
|
|
68
|
+
id: number;
|
|
69
|
+
created_on: string;
|
|
70
|
+
modified_on: string;
|
|
71
|
+
owner_user_id: number;
|
|
72
|
+
provider: SslProvider;
|
|
73
|
+
nice_name: string;
|
|
74
|
+
domain_names: string[];
|
|
75
|
+
expires_on: string;
|
|
76
|
+
meta: CertificateMeta;
|
|
77
|
+
owner?: User;
|
|
78
|
+
}
|
|
79
|
+
export interface CreateCertificateRequest {
|
|
80
|
+
provider: SslProvider;
|
|
81
|
+
nice_name?: string;
|
|
82
|
+
domain_names: string[];
|
|
83
|
+
meta?: CertificateMeta;
|
|
84
|
+
}
|
|
85
|
+
export interface AccessListAuthItem {
|
|
86
|
+
username: string;
|
|
87
|
+
password?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface AccessListClient {
|
|
90
|
+
address: string;
|
|
91
|
+
directive: AccessDirective;
|
|
92
|
+
}
|
|
93
|
+
export interface AccessList {
|
|
94
|
+
id: number;
|
|
95
|
+
created_on: string;
|
|
96
|
+
modified_on: string;
|
|
97
|
+
owner_user_id: number;
|
|
98
|
+
name: string;
|
|
99
|
+
meta: Record<string, unknown>;
|
|
100
|
+
satisfy_any: boolean;
|
|
101
|
+
pass_auth: boolean;
|
|
102
|
+
proxy_host_count: number;
|
|
103
|
+
owner?: User;
|
|
104
|
+
items?: AccessListAuthItem[];
|
|
105
|
+
clients?: AccessListClient[];
|
|
106
|
+
}
|
|
107
|
+
export interface CreateAccessListRequest {
|
|
108
|
+
name: string;
|
|
109
|
+
satisfy_any?: boolean;
|
|
110
|
+
pass_auth?: boolean;
|
|
111
|
+
items?: AccessListAuthItem[];
|
|
112
|
+
clients?: AccessListClient[];
|
|
113
|
+
}
|
|
114
|
+
export type UpdateAccessListRequest = Partial<CreateAccessListRequest>;
|
|
115
|
+
export interface ProxyHostLocation {
|
|
116
|
+
id?: number | null;
|
|
117
|
+
path: string;
|
|
118
|
+
forward_scheme: ForwardScheme;
|
|
119
|
+
forward_host: string;
|
|
120
|
+
forward_port: number;
|
|
121
|
+
forward_path?: string;
|
|
122
|
+
advanced_config?: string;
|
|
123
|
+
}
|
|
124
|
+
export interface ProxyHost {
|
|
125
|
+
id: number;
|
|
126
|
+
created_on: string;
|
|
127
|
+
modified_on: string;
|
|
128
|
+
owner_user_id: number;
|
|
129
|
+
domain_names: string[];
|
|
130
|
+
forward_host: string;
|
|
131
|
+
forward_port: number;
|
|
132
|
+
access_list_id: number;
|
|
133
|
+
certificate_id: number | string;
|
|
134
|
+
ssl_forced: boolean;
|
|
135
|
+
caching_enabled: boolean;
|
|
136
|
+
block_exploits: boolean;
|
|
137
|
+
advanced_config: string;
|
|
138
|
+
meta: Record<string, unknown>;
|
|
139
|
+
allow_websocket_upgrade: boolean;
|
|
140
|
+
http2_support: boolean;
|
|
141
|
+
forward_scheme: ForwardScheme;
|
|
142
|
+
enabled: boolean;
|
|
143
|
+
locations: ProxyHostLocation[];
|
|
144
|
+
hsts_enabled: boolean;
|
|
145
|
+
hsts_subdomains: boolean;
|
|
146
|
+
trust_forwarded_proto: boolean;
|
|
147
|
+
certificate?: Certificate | null;
|
|
148
|
+
owner?: User;
|
|
149
|
+
access_list?: AccessList | null;
|
|
150
|
+
}
|
|
151
|
+
export interface CreateProxyHostRequest {
|
|
152
|
+
domain_names: string[];
|
|
153
|
+
forward_scheme: ForwardScheme;
|
|
154
|
+
forward_host: string;
|
|
155
|
+
forward_port: number;
|
|
156
|
+
access_list_id?: number;
|
|
157
|
+
certificate_id?: number | string;
|
|
158
|
+
ssl_forced?: boolean;
|
|
159
|
+
hsts_enabled?: boolean;
|
|
160
|
+
hsts_subdomains?: boolean;
|
|
161
|
+
trust_forwarded_proto?: boolean;
|
|
162
|
+
http2_support?: boolean;
|
|
163
|
+
block_exploits?: boolean;
|
|
164
|
+
caching_enabled?: boolean;
|
|
165
|
+
allow_websocket_upgrade?: boolean;
|
|
166
|
+
advanced_config?: string;
|
|
167
|
+
enabled?: boolean;
|
|
168
|
+
meta?: Record<string, unknown>;
|
|
169
|
+
locations?: ProxyHostLocation[];
|
|
170
|
+
}
|
|
171
|
+
export type UpdateProxyHostRequest = Partial<CreateProxyHostRequest>;
|
|
172
|
+
export type RedirectionScheme = "auto" | "http" | "https";
|
|
173
|
+
export interface RedirectionHost {
|
|
174
|
+
id: number;
|
|
175
|
+
created_on: string;
|
|
176
|
+
modified_on: string;
|
|
177
|
+
owner_user_id: number;
|
|
178
|
+
domain_names: string[];
|
|
179
|
+
forward_http_code: number;
|
|
180
|
+
forward_scheme: RedirectionScheme;
|
|
181
|
+
forward_domain_name: string;
|
|
182
|
+
preserve_path: boolean;
|
|
183
|
+
certificate_id: number | string;
|
|
184
|
+
ssl_forced: boolean;
|
|
185
|
+
hsts_enabled: boolean;
|
|
186
|
+
hsts_subdomains: boolean;
|
|
187
|
+
http2_support: boolean;
|
|
188
|
+
block_exploits: boolean;
|
|
189
|
+
advanced_config: string;
|
|
190
|
+
enabled: boolean;
|
|
191
|
+
meta: Record<string, unknown>;
|
|
192
|
+
certificate?: Certificate | null;
|
|
193
|
+
owner?: User;
|
|
194
|
+
}
|
|
195
|
+
export interface CreateRedirectionHostRequest {
|
|
196
|
+
domain_names: string[];
|
|
197
|
+
forward_http_code: number;
|
|
198
|
+
forward_scheme: RedirectionScheme;
|
|
199
|
+
forward_domain_name: string;
|
|
200
|
+
preserve_path?: boolean;
|
|
201
|
+
certificate_id?: number | string;
|
|
202
|
+
ssl_forced?: boolean;
|
|
203
|
+
hsts_enabled?: boolean;
|
|
204
|
+
hsts_subdomains?: boolean;
|
|
205
|
+
http2_support?: boolean;
|
|
206
|
+
block_exploits?: boolean;
|
|
207
|
+
advanced_config?: string;
|
|
208
|
+
}
|
|
209
|
+
export type UpdateRedirectionHostRequest = Partial<CreateRedirectionHostRequest>;
|
|
210
|
+
export interface DeadHost {
|
|
211
|
+
id: number;
|
|
212
|
+
created_on: string;
|
|
213
|
+
modified_on: string;
|
|
214
|
+
owner_user_id: number;
|
|
215
|
+
domain_names: string[];
|
|
216
|
+
certificate_id: number | string;
|
|
217
|
+
ssl_forced: boolean;
|
|
218
|
+
hsts_enabled: boolean;
|
|
219
|
+
hsts_subdomains: boolean;
|
|
220
|
+
http2_support: boolean;
|
|
221
|
+
advanced_config: string;
|
|
222
|
+
enabled: boolean;
|
|
223
|
+
meta: Record<string, unknown>;
|
|
224
|
+
certificate?: Certificate | null;
|
|
225
|
+
owner?: User;
|
|
226
|
+
}
|
|
227
|
+
export interface CreateDeadHostRequest {
|
|
228
|
+
domain_names: string[];
|
|
229
|
+
certificate_id?: number | string;
|
|
230
|
+
ssl_forced?: boolean;
|
|
231
|
+
hsts_enabled?: boolean;
|
|
232
|
+
hsts_subdomains?: boolean;
|
|
233
|
+
http2_support?: boolean;
|
|
234
|
+
advanced_config?: string;
|
|
235
|
+
}
|
|
236
|
+
export type UpdateDeadHostRequest = Partial<CreateDeadHostRequest>;
|
|
237
|
+
export interface Stream {
|
|
238
|
+
id: number;
|
|
239
|
+
created_on: string;
|
|
240
|
+
modified_on: string;
|
|
241
|
+
owner_user_id: number;
|
|
242
|
+
incoming_port: number;
|
|
243
|
+
forwarding_host: string;
|
|
244
|
+
forwarding_port: number;
|
|
245
|
+
tcp_forwarding: boolean;
|
|
246
|
+
udp_forwarding: boolean;
|
|
247
|
+
enabled: boolean;
|
|
248
|
+
certificate_id?: number | string;
|
|
249
|
+
meta: Record<string, unknown>;
|
|
250
|
+
certificate?: Certificate | null;
|
|
251
|
+
owner?: User;
|
|
252
|
+
}
|
|
253
|
+
export interface CreateStreamRequest {
|
|
254
|
+
incoming_port: number;
|
|
255
|
+
forwarding_host: string;
|
|
256
|
+
forwarding_port: number;
|
|
257
|
+
tcp_forwarding: boolean;
|
|
258
|
+
udp_forwarding: boolean;
|
|
259
|
+
certificate_id?: number | string;
|
|
260
|
+
}
|
|
261
|
+
export type UpdateStreamRequest = Partial<CreateStreamRequest>;
|
|
262
|
+
export interface Setting {
|
|
263
|
+
id: string;
|
|
264
|
+
name: string;
|
|
265
|
+
description: string;
|
|
266
|
+
value: unknown;
|
|
267
|
+
meta: Record<string, unknown>;
|
|
268
|
+
}
|
|
269
|
+
export interface HostReport {
|
|
270
|
+
proxy: number;
|
|
271
|
+
redirection: number;
|
|
272
|
+
stream: number;
|
|
273
|
+
dead: number;
|
|
274
|
+
}
|
|
275
|
+
export interface AuditLogEntry {
|
|
276
|
+
id: number;
|
|
277
|
+
created_on: string;
|
|
278
|
+
user_id: number;
|
|
279
|
+
object_type: string;
|
|
280
|
+
object_id: number;
|
|
281
|
+
action: string;
|
|
282
|
+
meta: Record<string, unknown>;
|
|
283
|
+
user?: User;
|
|
284
|
+
}
|
|
285
|
+
export interface NginxApiErrorBody {
|
|
286
|
+
error: {
|
|
287
|
+
code: number;
|
|
288
|
+
message: string;
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/nginx/service/client/types.ts"],"names":[],"mappings":"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"}
|