@theotherwillembotha/node-red-plugincore 0.0.53 → 0.0.55
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/README.md +62 -8
- package/build/GenerateNodes.js +0 -1
- package/build/Nodes.html +0 -141
- package/build/Nodes.js +0 -2
- package/build/Plugins.js +2 -2
- package/build/core/NodeConstructor.d.ts +1 -0
- package/build/core/NodeConstructor.d.ts.map +1 -1
- package/build/core/NodeConstructor.js +5 -2
- package/build/core/NodeGenerator.js +9 -9
- package/build/core/logger/LoggerDecorator.d.ts.map +1 -1
- package/build/core/logger/LoggerDecorator.js +34 -38
- package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +11 -7
- package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +1 -1
- package/build/core/logger/node/ConsoleLoggerConfigNode.js +24 -9
- package/build/core/logger/node/RestLoggerConfigNode.d.ts +22 -6
- package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +1 -1
- package/build/core/logger/node/RestLoggerConfigNode.js +93 -22
- package/build/core/logger/service/LoggerService.d.ts +59 -68
- package/build/core/logger/service/LoggerService.d.ts.map +1 -1
- package/build/core/logger/service/LoggerService.js +76 -155
- package/build/core/logger/template/LoggerTemplate.d.ts +9 -1
- package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
- package/build/core/metrics/service/MetricsService.js +1 -1
- package/build/core/webhook/WebhookDecorator.d.ts.map +1 -1
- package/build/core/webhook/WebhookDecorator.js +4 -4
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts +0 -2
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
- package/build/core/webhook/service/ReverseProxyTypeService.js +1 -4
- package/build/core/webhook/service/WebhookServerService.d.ts +1 -1
- package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
- package/build/core/webhook/service/WebhookServerService.js +6 -6
- package/build/core/webhook/template/WebhookTemplate.d.ts +1 -1
- package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
- package/build/index.d.ts +1 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -2
- package/build/resources/editorLanguageExtension.js +1 -1
- package/package.json +5 -3
- package/resources/editorLanguageExtension.js +1 -1
- package/src/GenerateNodes.ts +2 -2
- package/src/core/NodeConstructor.ts +5 -1
- package/src/core/NodeGenerator.ts +2 -2
- package/src/core/logger/LoggerDecorator.ts +56 -53
- package/src/core/logger/node/ConsoleLoggerConfigNode.ts +39 -14
- package/src/core/logger/node/RestLoggerConfigNode.ts +128 -25
- package/src/core/logger/service/LoggerService.ts +103 -239
- package/src/core/logger/template/LoggerTemplate.ts +11 -1
- package/src/core/webhook/WebhookDecorator.ts +1 -3
- package/src/core/webhook/service/ReverseProxyTypeService.ts +0 -4
- package/src/core/webhook/service/WebhookServerService.ts +1 -1
- package/src/core/webhook/template/WebhookTemplate.ts +1 -1
- package/src/index.ts +2 -2
- package/build/core/logger/node/LokiLoggerConfigNode.d.ts +0 -20
- package/build/core/logger/node/LokiLoggerConfigNode.d.ts.map +0 -1
- package/build/core/logger/node/LokiLoggerConfigNode.html +0 -117
- package/build/core/logger/node/LokiLoggerConfigNode.js +0 -52
- package/build/core/logger/service/LoggerServiceTypes.d.ts +0 -24
- package/build/core/logger/service/LoggerServiceTypes.d.ts.map +0 -1
- package/build/core/logger/service/LoggerServiceTypes.js +0 -30
- package/documentation/LokiLoggerConfigNode.png +0 -0
- package/src/core/logger/node/LokiLoggerConfigNode.html +0 -117
- package/src/core/logger/node/LokiLoggerConfigNode.ts +0 -58
- package/src/core/logger/service/LoggerServiceTypes.ts +0 -26
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.LokiLoggerConfigNode = void 0;
|
|
13
|
-
const NodeConstructor_1 = require("../../NodeConstructor");
|
|
14
|
-
const LoggerService_1 = require("../service/LoggerService");
|
|
15
|
-
const NodeGenerator_1 = require("../../NodeGenerator");
|
|
16
|
-
const LoggerServiceTypes_1 = require("../service/LoggerServiceTypes");
|
|
17
|
-
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
18
|
-
let LokiLoggerConfigNode = class LokiLoggerConfigNode extends NodeConstructor_1.ConfigNode {
|
|
19
|
-
constructor(node, config) {
|
|
20
|
-
super(node, config);
|
|
21
|
-
let _this = this;
|
|
22
|
-
// instantiate the logger.
|
|
23
|
-
let loggerConfig;
|
|
24
|
-
loggerConfig = {
|
|
25
|
-
id: this.id(),
|
|
26
|
-
type: LoggerServiceTypes_1.PlatformType.loki,
|
|
27
|
-
template: config.template,
|
|
28
|
-
level: config.level,
|
|
29
|
-
host: config.loki_host,
|
|
30
|
-
userid: config.loki_userid,
|
|
31
|
-
authtoken: config.loki_authtoken,
|
|
32
|
-
tenantID: config.loki_tenantid,
|
|
33
|
-
};
|
|
34
|
-
this._logger = LoggerService_1.LoggerService.get(loggerConfig);
|
|
35
|
-
}
|
|
36
|
-
registerLogger(registration) {
|
|
37
|
-
return this._logger.register(registration);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
exports.LokiLoggerConfigNode = LokiLoggerConfigNode;
|
|
41
|
-
exports.LokiLoggerConfigNode = LokiLoggerConfigNode = __decorate([
|
|
42
|
-
(0, NodeDescriptionDecorator_1.NodeDescription)({
|
|
43
|
-
id: "LokiLoggerConfigNode",
|
|
44
|
-
name: "Loki Logger",
|
|
45
|
-
group: "config",
|
|
46
|
-
sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "LokiLoggerConfigNode.html",
|
|
47
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
48
|
-
dependencies: [LoggerService_1.LoggerService],
|
|
49
|
-
tags: ["LoggerType"]
|
|
50
|
-
}),
|
|
51
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
52
|
-
], LokiLoggerConfigNode);
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export declare enum Level {
|
|
2
|
-
DEBUG = "DEBUG",
|
|
3
|
-
INFO = "INFO",
|
|
4
|
-
WARNING = "WARNING",
|
|
5
|
-
ERROR = "ERROR"
|
|
6
|
-
}
|
|
7
|
-
export declare enum PlatformType {
|
|
8
|
-
console = "console",
|
|
9
|
-
rest = "rest",
|
|
10
|
-
loki = "loki",
|
|
11
|
-
elasticsearch = "elasticsearch",
|
|
12
|
-
datadog = "datadog"
|
|
13
|
-
}
|
|
14
|
-
export declare enum RestAuthType {
|
|
15
|
-
none = "none",
|
|
16
|
-
basic = "basic",
|
|
17
|
-
apikey = "apikey"
|
|
18
|
-
}
|
|
19
|
-
export declare enum ApiKeyMechanismType {
|
|
20
|
-
header = "header",
|
|
21
|
-
queryparam = "queryparam",
|
|
22
|
-
matrixparam = "matrixparam"
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=LoggerServiceTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerServiceTypes.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/service/LoggerServiceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAClB;AAED,oBAAY,YAAY;IACpB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,OAAO,YAAY;CACtB;AAED,oBAAY,YAAY;IACpB,IAAI,SAAO;IACX,KAAK,UAAQ;IACb,MAAM,WAAS;CAClB;AAED,oBAAY,mBAAmB;IAC3B,MAAM,WAAS;IACf,UAAU,eAAa;IACvB,WAAW,gBAAc;CAC5B"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApiKeyMechanismType = exports.RestAuthType = exports.PlatformType = exports.Level = void 0;
|
|
4
|
-
var Level;
|
|
5
|
-
(function (Level) {
|
|
6
|
-
Level["DEBUG"] = "DEBUG";
|
|
7
|
-
Level["INFO"] = "INFO";
|
|
8
|
-
Level["WARNING"] = "WARNING";
|
|
9
|
-
Level["ERROR"] = "ERROR";
|
|
10
|
-
})(Level || (exports.Level = Level = {}));
|
|
11
|
-
var PlatformType;
|
|
12
|
-
(function (PlatformType) {
|
|
13
|
-
PlatformType["console"] = "console";
|
|
14
|
-
PlatformType["rest"] = "rest";
|
|
15
|
-
PlatformType["loki"] = "loki";
|
|
16
|
-
PlatformType["elasticsearch"] = "elasticsearch";
|
|
17
|
-
PlatformType["datadog"] = "datadog";
|
|
18
|
-
})(PlatformType || (exports.PlatformType = PlatformType = {}));
|
|
19
|
-
var RestAuthType;
|
|
20
|
-
(function (RestAuthType) {
|
|
21
|
-
RestAuthType["none"] = "none";
|
|
22
|
-
RestAuthType["basic"] = "basic";
|
|
23
|
-
RestAuthType["apikey"] = "apikey";
|
|
24
|
-
})(RestAuthType || (exports.RestAuthType = RestAuthType = {}));
|
|
25
|
-
var ApiKeyMechanismType;
|
|
26
|
-
(function (ApiKeyMechanismType) {
|
|
27
|
-
ApiKeyMechanismType["header"] = "header";
|
|
28
|
-
ApiKeyMechanismType["queryparam"] = "queryparam";
|
|
29
|
-
ApiKeyMechanismType["matrixparam"] = "matrixparam";
|
|
30
|
-
})(ApiKeyMechanismType || (exports.ApiKeyMechanismType = ApiKeyMechanismType = {}));
|
|
Binary file
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<script type="text/javascript" template-section="onCompose">
|
|
3
|
-
node
|
|
4
|
-
.addDefault("name", {value:"Logger Example", required:true})
|
|
5
|
-
.addDefault("template", {value:`message:{{msg}}`, required:true})
|
|
6
|
-
.addDefault("level", {value:"info", required:true})
|
|
7
|
-
|
|
8
|
-
.addDefault("loki_host", {})
|
|
9
|
-
.addDefault("loki_tenantid", {})
|
|
10
|
-
.addDefault("loki_userid", {})
|
|
11
|
-
.addDefault("loki_authtoken", {})
|
|
12
|
-
|
|
13
|
-
.setPaletteLabel("Loki Logger Config Node")
|
|
14
|
-
.setLabel(function() {return this.name })
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<script type="text/javascript" template-section="onIncludeEditPrepare">
|
|
18
|
-
{
|
|
19
|
-
let node = this;
|
|
20
|
-
|
|
21
|
-
let levelSelection = $("#node-config-input-level");
|
|
22
|
-
levelSelection.typedInput({type:"level", types:[{
|
|
23
|
-
value: "level",
|
|
24
|
-
options: [
|
|
25
|
-
{ value: "DEBUG", label: "debug"},
|
|
26
|
-
{ value: "INFO", label: "info"},
|
|
27
|
-
{ value: "WARNING", label: "warning"},
|
|
28
|
-
{ value: "ERROR", label: "error"},
|
|
29
|
-
]
|
|
30
|
-
}]});
|
|
31
|
-
|
|
32
|
-
this.editor = RED.editor.createEditor({
|
|
33
|
-
id: 'node-config-input-templateEditor',
|
|
34
|
-
mode: 'ace/mode/handlebars',
|
|
35
|
-
value: this.template
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
</script>
|
|
39
|
-
|
|
40
|
-
<script type="text/javascript" template-section="onIncludeEditSave">
|
|
41
|
-
{
|
|
42
|
-
let node = this;
|
|
43
|
-
|
|
44
|
-
this.template = this.editor.getValue();
|
|
45
|
-
this.editor.destroy();
|
|
46
|
-
delete this.editor;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
</script>
|
|
50
|
-
|
|
51
|
-
<script type="text/html" template-section="onIncludeEditForm">
|
|
52
|
-
<div id="LoggerConfig">
|
|
53
|
-
<div class="form-row">
|
|
54
|
-
<label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
|
|
55
|
-
<input type="text" id="node-config-input-name" />
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<div class="form-row">
|
|
59
|
-
<label class="towb_editorlabel" for="node-config-input-level"><i class="fa fa-signal"></i> Level</label>
|
|
60
|
-
<input type="text" id="node-config-input-level" />
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<div class="form-row">
|
|
64
|
-
<label class="towb_editorlabel" for="node-config-input-loki_host"><i class="fa fa-server"></i> Host</label>
|
|
65
|
-
<input class="required" type="text" id="node-config-input-loki_host" />
|
|
66
|
-
</div>
|
|
67
|
-
<div class="form-row">
|
|
68
|
-
<label class="towb_editorlabel" for="node-config-input-loki_tenantid"><i class="fa fa-building-o"></i> Tenant ID</label>
|
|
69
|
-
<input class="" type="text" id="node-config-input-loki_tenantid" />
|
|
70
|
-
</div>
|
|
71
|
-
<div class="form-row">
|
|
72
|
-
<label class="towb_editorlabel" for="node-config-input-loki_userid"><i class="fa fa-user"></i> Username</label>
|
|
73
|
-
<input class="" type="text" id="node-config-input-loki_userid" />
|
|
74
|
-
</div>
|
|
75
|
-
<div class="form-row">
|
|
76
|
-
<label class="towb_editorlabel" for="node-config-input-loki_authtoken"><i class="fa fa-key"></i> Auth Token</label>
|
|
77
|
-
<input class="" type="password" id="node-config-input-loki_authtoken" />
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
<div class="form-row">
|
|
81
|
-
<label class="towb_editorlabel" for="node-config-input-templateEditor"><i class="fa fa-code"></i> Template</label>
|
|
82
|
-
<div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-config-input-templateEditor"></div>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</script>
|
|
86
|
-
|
|
87
|
-
<script type="text/markdown" template-section="onIncludeDocumentation">
|
|
88
|
-
Pushes log messages to a Grafana Loki instance using the Loki HTTP API.
|
|
89
|
-
|
|
90
|
-
### Properties
|
|
91
|
-
: *name* (string) : A descriptive name for this logger configuration.
|
|
92
|
-
: *level* (level) : The minimum log level. Messages below this threshold are suppressed. Options: DEBUG, INFO, WARNING, ERROR.
|
|
93
|
-
: *host* (string) : The base URL of the Loki instance, including port (e.g. `http://localhost:3100`).
|
|
94
|
-
: *tenant ID* (string) : The tenant identifier for multi-tenant Loki deployments (`X-Scope-OrgID` header). Leave blank for single-tenant deployments.
|
|
95
|
-
: *username* (string) : Username for Loki authentication.
|
|
96
|
-
: *auth token* (string) : Authentication token or password for Loki.
|
|
97
|
-
: *template* (mustache) : A Mustache/Handlebars template that formats the log message body.
|
|
98
|
-
|
|
99
|
-
### Mustache Templating
|
|
100
|
-
Mustache/Handlebars templates build the message string pushed to Loki.
|
|
101
|
-
|
|
102
|
-
#### Provided Properties
|
|
103
|
-
: *msg* (object) : The Node-RED message object passed through the node.
|
|
104
|
-
: *currentTime* (string) : The current time in ISO 8601 format.
|
|
105
|
-
|
|
106
|
-
#### Helpers
|
|
107
|
-
: *json* (helper) : Serialises an object to a JSON string using `JSON.stringify`.
|
|
108
|
-
|
|
109
|
-
#### Examples
|
|
110
|
-
- `{{{json msg}}}` — serialises the full message object as JSON.
|
|
111
|
-
|
|
112
|
-
#### References
|
|
113
|
-
- [Grafana Loki — HTTP API](https://grafana.com/docs/loki/latest/reference/loki-http-api/)
|
|
114
|
-
- [Mustache — Wikipedia](https://en.wikipedia.org/wiki/Mustache_(template_system))
|
|
115
|
-
- [Mustache — Playground](https://jgonggrijp.gitlab.io/wontache/playground.html)
|
|
116
|
-
</script>
|
|
117
|
-
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { Node } from "node-red";
|
|
3
|
-
import { ConfigNode, ConfigNodeConfig } from "../../NodeConstructor"
|
|
4
|
-
import { NewLogger, Log, LoggerRegistration, LoggerService } from "../service/LoggerService"
|
|
5
|
-
import { SourceUtility } from "../../NodeGenerator";
|
|
6
|
-
import { Level, PlatformType } from "../service/LoggerServiceTypes";
|
|
7
|
-
import { NodeDescription } from "../../tagging/NodeDescriptionDecorator";
|
|
8
|
-
|
|
9
|
-
interface LokiLoggerConfigNodeConfig extends ConfigNodeConfig {
|
|
10
|
-
|
|
11
|
-
id: string;
|
|
12
|
-
level:Level;
|
|
13
|
-
template:string;
|
|
14
|
-
|
|
15
|
-
loki_host:string,
|
|
16
|
-
loki_userid?:string,
|
|
17
|
-
loki_authtoken?:string,
|
|
18
|
-
loki_tenantid?:string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@NodeDescription({
|
|
22
|
-
id:"LokiLoggerConfigNode",
|
|
23
|
-
name:"Loki Logger",
|
|
24
|
-
group:"config",
|
|
25
|
-
sourceFile:SourceUtility.getSourcePath("/build/", "/src/") + "LokiLoggerConfigNode.html",
|
|
26
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
27
|
-
dependencies:[ LoggerService ],
|
|
28
|
-
tags: [ "LoggerType" ]
|
|
29
|
-
})
|
|
30
|
-
export class LokiLoggerConfigNode extends ConfigNode<LokiLoggerConfigNodeConfig> {
|
|
31
|
-
|
|
32
|
-
private _logger!: NewLogger<any>;
|
|
33
|
-
|
|
34
|
-
constructor(node: Node, config: LokiLoggerConfigNodeConfig){
|
|
35
|
-
super(node, config);
|
|
36
|
-
let _this = this;
|
|
37
|
-
|
|
38
|
-
// instantiate the logger.
|
|
39
|
-
let loggerConfig:any;
|
|
40
|
-
|
|
41
|
-
loggerConfig = {
|
|
42
|
-
id:this.id(),
|
|
43
|
-
type:PlatformType.loki,
|
|
44
|
-
template:config.template,
|
|
45
|
-
level:config.level,
|
|
46
|
-
host:config.loki_host,
|
|
47
|
-
userid:config.loki_userid,
|
|
48
|
-
authtoken:config.loki_authtoken,
|
|
49
|
-
tenantID:config.loki_tenantid,
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
this._logger = LoggerService.get(loggerConfig);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public registerLogger(registration:LoggerRegistration):Log {
|
|
56
|
-
return this._logger.register(registration)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export enum Level{
|
|
2
|
-
DEBUG = "DEBUG",
|
|
3
|
-
INFO = "INFO",
|
|
4
|
-
WARNING = "WARNING",
|
|
5
|
-
ERROR = "ERROR"
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export enum PlatformType {
|
|
9
|
-
console = 'console',
|
|
10
|
-
rest = 'rest',
|
|
11
|
-
loki = 'loki',
|
|
12
|
-
elasticsearch = 'elasticsearch',
|
|
13
|
-
datadog = 'datadog',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export enum RestAuthType {
|
|
17
|
-
none="none",
|
|
18
|
-
basic="basic",
|
|
19
|
-
apikey="apikey",
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export enum ApiKeyMechanismType {
|
|
23
|
-
header="header",
|
|
24
|
-
queryparam="queryparam",
|
|
25
|
-
matrixparam="matrixparam",
|
|
26
|
-
}
|