@theotherwillembotha/node-red-plugincore 0.0.54 → 0.1.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/README.md +9 -9
- package/build/GenerateNodes.js +0 -1
- package/build/Nodes.html +23 -162
- package/build/Nodes.js +0 -2
- package/build/Plugins.js +2 -3
- package/build/core/NodeConstructor.d.ts +1 -0
- package/build/core/NodeConstructor.d.ts.map +1 -1
- package/build/core/NodeConstructor.js +20 -62
- package/build/core/NodeGenerator.d.ts.map +1 -1
- package/build/core/NodeGenerator.js +8 -11
- 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 -10
- 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 -23
- 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 -165
- 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/node/CounterMetricConfigNode.js +0 -2
- package/build/core/metrics/node/GaugeMetricConfigNode.js +0 -2
- package/build/core/metrics/node/MetricsConfigNode.js +0 -1
- package/build/core/metrics/node/TimerMetricConfigNode.js +0 -2
- package/build/core/metrics/service/MetricsService.js +10 -24
- package/build/core/other/service/SettingsService.js +0 -2
- package/build/core/tagging/service/NodeTypeService.js +1 -2
- package/build/core/webhook/WebhookDecorator.d.ts.map +1 -1
- package/build/core/webhook/WebhookDecorator.js +47 -10
- package/build/core/webhook/node/WebhookServerConfigNode.js +0 -1
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts +1 -2
- package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
- package/build/core/webhook/service/ReverseProxyTypeService.js +1 -6
- 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 -14
- 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 -2
- package/package.json +6 -5
- package/resources/editorLanguageExtension.js +1 -2
- package/src/GenerateNodes.ts +2 -2
- package/src/core/NodeConstructor.ts +7 -14
- package/src/core/NodeGenerator.ts +2 -3
- 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.html +2 -2
- package/src/core/logger/template/LoggerTemplate.ts +11 -1
- package/src/core/metrics/node/TimerMetricConfigNode.html +2 -2
- package/src/core/other/template/BasicTemplate.html +5 -2
- package/src/core/webhook/WebhookDecorator.ts +54 -13
- package/src/core/webhook/service/ReverseProxyTypeService.ts +1 -4
- package/src/core/webhook/service/WebhookServerService.ts +1 -6
- package/src/core/webhook/template/WebhookTemplate.html +1 -1
- package/src/core/webhook/template/WebhookTemplate.ts +1 -1
- package/src/index.ts +2 -2
- package/build/core/logger/node/ConsoleLoggerConfigNode.html +0 -90
- 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 -53
- package/build/core/logger/node/RestLoggerConfigNode.html +0 -183
- 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/build/core/logger/template/LoggerTemplate.html +0 -331
- package/build/core/metrics/node/CounterMetricConfigNode.html +0 -48
- package/build/core/metrics/node/GaugeMetricConfigNode.html +0 -48
- package/build/core/metrics/node/MetricsConfigNode.html +0 -21
- package/build/core/metrics/node/TimerMetricConfigNode.html +0 -190
- package/build/core/metrics/template/CounterMetricTemplate.html +0 -40
- package/build/core/metrics/template/GaugeMetricTemplate.html +0 -39
- package/build/core/metrics/template/MetricsTemplate.html +0 -54
- package/build/core/metrics/template/TimerMetricTemplate.html +0 -39
- package/build/core/other/node/DelegatedConfigReferenceNode.html +0 -1
- package/build/core/other/template/BasicTemplate.html +0 -76
- package/build/core/other/template/SettingsTemplate.html +0 -128
- package/build/core/ui/template/ScriptEditorTemplate.html +0 -50
- package/build/core/ui/template/UIHelperTemplate.html +0 -229
- package/build/core/webhook/node/WebhookServerConfigNode.html +0 -61
- package/build/core/webhook/template/WebhookTemplate.html +0 -442
- 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
|
@@ -2,41 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Logger = Logger;
|
|
4
4
|
const NodeConstructor_1 = require("../NodeConstructor");
|
|
5
|
+
const LoggerService_1 = require("./service/LoggerService");
|
|
5
6
|
function Logger(debug) {
|
|
6
7
|
return function (target, propertyKey) {
|
|
7
8
|
// if the type is a string, then its probably defined in the local (core) module.
|
|
8
9
|
if (typeof propertyKey === "string") {
|
|
9
10
|
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
11
|
+
//console.log("BINDING:", "target", target, "propertyKey", propertyKey );
|
|
10
12
|
Object.defineProperty(target, propertyKey, {
|
|
11
13
|
get: function () {
|
|
14
|
+
//console.log("setting logger on node " + this.name() + " (localized)");
|
|
12
15
|
if (!this[valueSymbol]) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
try {
|
|
17
|
+
let node = this;
|
|
18
|
+
let config = node.config();
|
|
19
|
+
if (!config.logEnabled) {
|
|
20
|
+
return this[valueSymbol] = LoggerService_1.DoNothingAppender.get();
|
|
21
|
+
}
|
|
22
|
+
// get the logger config node.
|
|
23
|
+
let loggerConfigNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.logger).node();
|
|
24
|
+
let loggerTemplateConfig = {
|
|
19
25
|
id: config.id,
|
|
20
26
|
flow: node.flow(),
|
|
21
27
|
type: node.type(),
|
|
22
28
|
name: node.name(),
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
template: config.logTemplateOverride
|
|
29
|
+
level: loggerConfigNode.config().level,
|
|
30
|
+
template: (config.logTemplateOverrideEnabled) ? config.logTemplateOverride : loggerConfigNode.config().template,
|
|
26
31
|
};
|
|
27
32
|
// get a reference to the loggerService.
|
|
28
|
-
|
|
29
|
-
logger = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.logger).node().registerLogger(registration);
|
|
30
|
-
}
|
|
31
|
-
catch (e) {
|
|
32
|
-
console.log("failed getting logger ", config.logger, e);
|
|
33
|
-
logger = { log() { } };
|
|
34
|
-
}
|
|
33
|
+
return this[valueSymbol] = loggerConfigNode.registerTemplate(loggerTemplateConfig);
|
|
35
34
|
}
|
|
36
|
-
|
|
37
|
-
logger
|
|
35
|
+
catch (e) {
|
|
36
|
+
console.log(`failed getting logger "${this?.config()?.logger}"`, e);
|
|
37
|
+
return this[valueSymbol] = LoggerService_1.DoNothingAppender.get();
|
|
38
38
|
}
|
|
39
|
-
this[valueSymbol] = logger;
|
|
40
39
|
}
|
|
41
40
|
return this[valueSymbol];
|
|
42
41
|
},
|
|
@@ -47,39 +46,36 @@ function Logger(debug) {
|
|
|
47
46
|
}
|
|
48
47
|
else {
|
|
49
48
|
let property = propertyKey;
|
|
50
|
-
//property.addInitializer(() => {
|
|
51
49
|
property.addInitializer(function () {
|
|
52
50
|
let node = this;
|
|
53
51
|
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
52
|
+
//console.log("ADDING INITIALIZER:", "node", node, "property.name", property.name );
|
|
54
53
|
Object.defineProperty(node, property.name, {
|
|
55
54
|
get: function () {
|
|
55
|
+
//console.log("setting logger on node " + node.name()+ " (externalized)");
|
|
56
56
|
if (!this[valueSymbol]) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
try {
|
|
58
|
+
let config = node.config();
|
|
59
|
+
if (!config.logEnabled) {
|
|
60
|
+
return this[valueSymbol] = LoggerService_1.DoNothingAppender.get();
|
|
61
|
+
}
|
|
62
|
+
// get the logger config node.
|
|
63
|
+
let loggerConfigNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.logger).node();
|
|
64
|
+
let loggerTemplateConfig = {
|
|
62
65
|
id: config.id,
|
|
63
66
|
flow: node.flow(),
|
|
64
67
|
type: node.type(),
|
|
65
68
|
name: node.name(),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
template: config.logTemplateOverride
|
|
69
|
+
level: loggerConfigNode?.config().level ?? 'info',
|
|
70
|
+
template: (config.logTemplateOverrideEnabled) ? config.logTemplateOverride : (loggerConfigNode?.config().template ?? 'message:{{msg}}'),
|
|
69
71
|
};
|
|
70
72
|
// get a reference to the loggerService.
|
|
71
|
-
|
|
72
|
-
logger = NodeConstructor_1.NodeManager.RED.nodes.getNode(config.logger).node().registerLogger(registration);
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
console.log("failed getting logger ", config.logger, e);
|
|
76
|
-
logger = { log() { } };
|
|
77
|
-
}
|
|
73
|
+
return this[valueSymbol] = loggerConfigNode.registerTemplate(loggerTemplateConfig);
|
|
78
74
|
}
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
catch (e) {
|
|
76
|
+
console.log("failed getting logger ", e);
|
|
77
|
+
return this[valueSymbol] = LoggerService_1.DoNothingAppender.get();
|
|
81
78
|
}
|
|
82
|
-
this[valueSymbol] = logger;
|
|
83
79
|
}
|
|
84
80
|
return this[valueSymbol];
|
|
85
81
|
},
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { Node } from "node-red";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
interface ConsoleLoggerConfigNodeConfig extends ConfigNodeConfig {
|
|
6
|
-
id: string;
|
|
2
|
+
import { LoggerConfigNodeConfig, BaseLoggerConfig, AbstractLogger, LoggerConfigNode, Log, Level } from "../service/LoggerService";
|
|
3
|
+
import { LoggerTemplateConfig } from "../template/LoggerTemplate";
|
|
4
|
+
interface ConsoleLoggerConfigNodeConfig extends LoggerConfigNodeConfig {
|
|
7
5
|
level: Level;
|
|
8
6
|
template: string;
|
|
9
7
|
}
|
|
10
|
-
export declare class ConsoleLoggerConfigNode extends
|
|
8
|
+
export declare class ConsoleLoggerConfigNode extends LoggerConfigNode<ConsoleLoggerConfigNodeConfig, ConsoleLogger> {
|
|
11
9
|
private _logger;
|
|
12
10
|
constructor(node: Node, config: ConsoleLoggerConfigNodeConfig);
|
|
13
|
-
|
|
11
|
+
protected logger(): ConsoleLogger;
|
|
12
|
+
}
|
|
13
|
+
export interface ConsoleLoggerConfig extends BaseLoggerConfig {
|
|
14
|
+
}
|
|
15
|
+
declare class ConsoleLogger extends AbstractLogger<ConsoleLoggerConfig> {
|
|
16
|
+
constructor(config: ConsoleLoggerConfig);
|
|
17
|
+
protected createLogger(config: LoggerTemplateConfig): Log;
|
|
14
18
|
}
|
|
15
19
|
export {};
|
|
16
20
|
//# sourceMappingURL=ConsoleLoggerConfigNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleLoggerConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/node/ConsoleLoggerConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"ConsoleLoggerConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/node/ConsoleLoggerConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAiB,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAU,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAGxJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,UAAU,6BAA8B,SAAQ,sBAAsB;IAClE,KAAK,EAAC,KAAK,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAC;CACnB;AAED,qBASa,uBAAwB,SAAQ,gBAAgB,CAAC,6BAA6B,EAAE,aAAa,CAAC;IAEvG,OAAO,CAAC,OAAO,CAAiB;gBAEpB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B;IAgB7D,SAAS,CAAC,MAAM,IAAG,aAAa;CAGnC;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;CAE5D;AAED,cAAM,aAAc,SAAQ,cAAc,CAAC,mBAAmB,CAAC;gBAE/C,MAAM,EAAC,mBAAmB;IAItC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG;CAG5D"}
|
|
@@ -10,27 +10,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ConsoleLoggerConfigNode = void 0;
|
|
13
|
-
const NodeConstructor_1 = require("../../NodeConstructor");
|
|
14
13
|
const LoggerService_1 = require("../service/LoggerService");
|
|
15
14
|
const NodeGenerator_1 = require("../../NodeGenerator");
|
|
16
|
-
const LoggerServiceTypes_1 = require("../service/LoggerServiceTypes");
|
|
17
15
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
18
|
-
let ConsoleLoggerConfigNode = class ConsoleLoggerConfigNode extends
|
|
19
|
-
_logger;
|
|
16
|
+
let ConsoleLoggerConfigNode = class ConsoleLoggerConfigNode extends LoggerService_1.LoggerConfigNode {
|
|
20
17
|
constructor(node, config) {
|
|
21
18
|
super(node, config);
|
|
22
19
|
let _this = this;
|
|
23
|
-
//
|
|
20
|
+
// create logger config
|
|
24
21
|
let loggerConfig = {
|
|
25
22
|
id: this.id(),
|
|
26
|
-
type:
|
|
27
|
-
template: config.template,
|
|
23
|
+
type: "CONSOLE",
|
|
28
24
|
level: config.level,
|
|
25
|
+
template: config.template,
|
|
29
26
|
};
|
|
30
|
-
|
|
27
|
+
// create logger instance:
|
|
28
|
+
this._logger = new ConsoleLogger(loggerConfig);
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
return this._logger
|
|
30
|
+
logger() {
|
|
31
|
+
return this._logger;
|
|
34
32
|
}
|
|
35
33
|
};
|
|
36
34
|
exports.ConsoleLoggerConfigNode = ConsoleLoggerConfigNode;
|
|
@@ -46,3 +44,19 @@ exports.ConsoleLoggerConfigNode = ConsoleLoggerConfigNode = __decorate([
|
|
|
46
44
|
}),
|
|
47
45
|
__metadata("design:paramtypes", [Object, Object])
|
|
48
46
|
], ConsoleLoggerConfigNode);
|
|
47
|
+
class ConsoleLogger extends LoggerService_1.AbstractLogger {
|
|
48
|
+
constructor(config) {
|
|
49
|
+
super(config);
|
|
50
|
+
}
|
|
51
|
+
createLogger(config) {
|
|
52
|
+
return new ConsoleAppender(config);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
class ConsoleAppender extends LoggerService_1.Log {
|
|
56
|
+
constructor(config) {
|
|
57
|
+
super(config);
|
|
58
|
+
}
|
|
59
|
+
writeToLog(level, message, tags) {
|
|
60
|
+
console.log(new Date().toISOString(), this.config().id, level, tags, message);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Node } from "node-red";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { ApiKeyMechanismType, Level,
|
|
2
|
+
import { ConfigNodeConfig } from "../../NodeConstructor";
|
|
3
|
+
import { LoggerConfigNode, AbstractLogger, BaseLoggerConfig, Log } from "../service/LoggerService";
|
|
4
|
+
import { ApiKeyMechanismType, Level, RestAuthType } from "../service/LoggerService";
|
|
5
|
+
import { LoggerTemplateConfig } from "../template/LoggerTemplate";
|
|
5
6
|
interface RestLoggerConfigNodeConfig extends ConfigNodeConfig {
|
|
6
7
|
id: string;
|
|
7
|
-
platform: PlatformType;
|
|
8
8
|
level: Level;
|
|
9
9
|
template: string;
|
|
10
10
|
rest_url: string;
|
|
11
|
+
rest_ignoresslerror: boolean;
|
|
11
12
|
rest_auth_type: RestAuthType;
|
|
12
13
|
rest_auth_basic_username: string;
|
|
13
14
|
rest_auth_basic_password: string;
|
|
@@ -15,10 +16,25 @@ interface RestLoggerConfigNodeConfig extends ConfigNodeConfig {
|
|
|
15
16
|
rest_auth_apikey_name: string;
|
|
16
17
|
rest_auth_apikey_value: string;
|
|
17
18
|
}
|
|
18
|
-
export declare class RestLoggerConfigNode extends
|
|
19
|
+
export declare class RestLoggerConfigNode extends LoggerConfigNode<RestLoggerConfigNodeConfig, RestLogger> {
|
|
19
20
|
private _logger;
|
|
20
21
|
constructor(node: Node, config: RestLoggerConfigNodeConfig);
|
|
21
|
-
|
|
22
|
+
protected logger(): RestLogger;
|
|
23
|
+
}
|
|
24
|
+
declare class RestLogger extends AbstractLogger<RestLoggerConfig> {
|
|
25
|
+
private winston;
|
|
26
|
+
constructor(config: RestLoggerConfig);
|
|
27
|
+
protected createLogger(config: LoggerTemplateConfig): Log;
|
|
28
|
+
}
|
|
29
|
+
interface RestLoggerConfig extends BaseLoggerConfig {
|
|
30
|
+
url: string;
|
|
31
|
+
ignoresslerror: boolean;
|
|
32
|
+
auth_type: RestAuthType;
|
|
33
|
+
auth_basic_username: string;
|
|
34
|
+
auth_basic_password: string;
|
|
35
|
+
auth_apikey_mechanism: ApiKeyMechanismType;
|
|
36
|
+
auth_apikey_name: string;
|
|
37
|
+
auth_apikey_value: string;
|
|
22
38
|
}
|
|
23
39
|
export {};
|
|
24
40
|
//# sourceMappingURL=RestLoggerConfigNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestLoggerConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/node/RestLoggerConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"RestLoggerConfigNode.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/node/RestLoggerConfigNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAiB,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAU,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAEzH,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKlE,UAAU,0BAA2B,SAAQ,gBAAgB;IAEzD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAC,KAAK,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAC,OAAO,CAAC;IAC5B,cAAc,EAAE,YAAY,CAAC;IAC7B,wBAAwB,EAAC,MAAM,CAAC;IAChC,wBAAwB,EAAC,MAAM,CAAC;IAChC,0BAA0B,EAAC,mBAAmB,CAAC;IAC/C,qBAAqB,EAAC,MAAM,CAAC;IAC7B,sBAAsB,EAAC,MAAM,CAAC;CACjC;AAED,qBASa,oBAAqB,SAAQ,gBAAgB,CAAC,0BAA0B,EAAE,UAAU,CAAC;IAE9F,OAAO,CAAC,OAAO,CAAc;gBAEjB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B;IAyB1D,SAAS,CAAC,MAAM,IAAG,UAAU;CAGhC;AAED,cAAM,UAAW,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAErD,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAC,gBAAgB;IA8DnC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG;CAG5D;AAoBD,UAAU,gBAAiB,SAAQ,gBAAgB;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAC,OAAO,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC;IACxB,mBAAmB,EAAC,MAAM,CAAC;IAC3B,mBAAmB,EAAC,MAAM,CAAC;IAC3B,qBAAqB,EAAC,mBAAmB,CAAC;IAC1C,gBAAgB,EAAC,MAAM,CAAC;IACxB,iBAAiB,EAAC,MAAM,CAAC;CAC5B"}
|
|
@@ -10,37 +10,36 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.RestLoggerConfigNode = void 0;
|
|
13
|
-
const NodeConstructor_1 = require("../../NodeConstructor");
|
|
14
13
|
const LoggerService_1 = require("../service/LoggerService");
|
|
15
14
|
const NodeGenerator_1 = require("../../NodeGenerator");
|
|
16
|
-
const
|
|
15
|
+
const LoggerService_2 = require("../service/LoggerService");
|
|
17
16
|
const NodeDescriptionDecorator_1 = require("../../tagging/NodeDescriptionDecorator");
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
const whatwg_url_1 = require("whatwg-url");
|
|
18
|
+
const winston_1 = require("winston");
|
|
19
|
+
let RestLoggerConfigNode = class RestLoggerConfigNode extends LoggerService_1.LoggerConfigNode {
|
|
20
20
|
constructor(node, config) {
|
|
21
21
|
super(node, config);
|
|
22
22
|
let _this = this;
|
|
23
23
|
// instantiate the logger.
|
|
24
|
-
let loggerConfig
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
this._logger = LoggerService_1.LoggerService.get(loggerConfig);
|
|
24
|
+
let loggerConfig = {
|
|
25
|
+
id: this.id(),
|
|
26
|
+
type: "REST",
|
|
27
|
+
level: config.level,
|
|
28
|
+
template: config.template,
|
|
29
|
+
// additional properties.
|
|
30
|
+
url: config.rest_url,
|
|
31
|
+
ignoresslerror: config.rest_ignoresslerror,
|
|
32
|
+
auth_type: config.rest_auth_type,
|
|
33
|
+
auth_basic_username: config.rest_auth_basic_username,
|
|
34
|
+
auth_basic_password: config.rest_auth_basic_password,
|
|
35
|
+
auth_apikey_mechanism: config.rest_auth_apikey_mechanism,
|
|
36
|
+
auth_apikey_name: config.rest_auth_apikey_name,
|
|
37
|
+
auth_apikey_value: config.rest_auth_apikey_value,
|
|
38
|
+
};
|
|
39
|
+
this._logger = new RestLogger(loggerConfig);
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
return this._logger
|
|
41
|
+
logger() {
|
|
42
|
+
return this._logger;
|
|
44
43
|
}
|
|
45
44
|
};
|
|
46
45
|
exports.RestLoggerConfigNode = RestLoggerConfigNode;
|
|
@@ -56,3 +55,74 @@ exports.RestLoggerConfigNode = RestLoggerConfigNode = __decorate([
|
|
|
56
55
|
}),
|
|
57
56
|
__metadata("design:paramtypes", [Object, Object])
|
|
58
57
|
], RestLoggerConfigNode);
|
|
58
|
+
class RestLogger extends LoggerService_1.AbstractLogger {
|
|
59
|
+
constructor(config) {
|
|
60
|
+
super(config);
|
|
61
|
+
// get the url.
|
|
62
|
+
let hosturl = (0, whatwg_url_1.parseURL)(config.url);
|
|
63
|
+
if (!hosturl) {
|
|
64
|
+
throw Error("could not parse url: " + config.url);
|
|
65
|
+
}
|
|
66
|
+
// get the options
|
|
67
|
+
let httpOptions = {};
|
|
68
|
+
// get the params.
|
|
69
|
+
let httpParams = {
|
|
70
|
+
host: hosturl.host?.toString(),
|
|
71
|
+
path: "/" + (hosturl.path ? [...hosturl.path].join("/") : "") + (hosturl.query ? ("?" + hosturl.query) : ""),
|
|
72
|
+
port: (hosturl.port) ? hosturl.port : undefined,
|
|
73
|
+
ssl: hosturl.scheme.toLowerCase() === "https",
|
|
74
|
+
headers: {},
|
|
75
|
+
};
|
|
76
|
+
httpParams.options = httpOptions;
|
|
77
|
+
// add the ignore ssl error flag if need be.
|
|
78
|
+
if (config.ignoresslerror) {
|
|
79
|
+
httpOptions.rejectUnauthorized = false;
|
|
80
|
+
}
|
|
81
|
+
// configure "none" authentication.
|
|
82
|
+
if (config.auth_type === LoggerService_2.RestAuthType.none) { }
|
|
83
|
+
// configure "basic" authentication.
|
|
84
|
+
if (config.auth_type === LoggerService_2.RestAuthType.basic) {
|
|
85
|
+
httpParams.auth = {
|
|
86
|
+
username: config.auth_basic_username,
|
|
87
|
+
password: config.auth_basic_password
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// configure "apikey" authentication.
|
|
91
|
+
if (config.auth_type === LoggerService_2.RestAuthType.apikey) {
|
|
92
|
+
if (config.auth_apikey_mechanism === LoggerService_2.ApiKeyMechanismType.header) {
|
|
93
|
+
httpParams.headers[config.auth_apikey_name] = config.auth_apikey_value;
|
|
94
|
+
}
|
|
95
|
+
if (config.auth_apikey_mechanism === LoggerService_2.ApiKeyMechanismType.matrixparam) {
|
|
96
|
+
httpParams.path = httpParams.path?.replace(`:${config.auth_apikey_name}`, config.auth_apikey_value);
|
|
97
|
+
}
|
|
98
|
+
if (config.auth_apikey_mechanism === LoggerService_2.ApiKeyMechanismType.queryparam) {
|
|
99
|
+
httpParams.path = httpParams.path + (httpParams.path?.includes("?") ? "&" : "?") + config.auth_apikey_name + "=" + config.auth_apikey_value;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
;
|
|
103
|
+
this.winston = (0, winston_1.createLogger)({
|
|
104
|
+
level: config.level.toString().toLowerCase(),
|
|
105
|
+
format: winston_1.format.json(),
|
|
106
|
+
defaultMeta: {},
|
|
107
|
+
transports: [
|
|
108
|
+
new winston_1.transports.Http(httpParams),
|
|
109
|
+
],
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
createLogger(config) {
|
|
113
|
+
return new RestAppender(config, this.winston);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
class RestAppender extends LoggerService_1.Log {
|
|
117
|
+
constructor(config, winston) {
|
|
118
|
+
super(config);
|
|
119
|
+
this.winston = winston;
|
|
120
|
+
}
|
|
121
|
+
writeToLog(level, message, tags) {
|
|
122
|
+
this.winston.log({
|
|
123
|
+
level: level,
|
|
124
|
+
message: message,
|
|
125
|
+
labels: tags
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -1,88 +1,79 @@
|
|
|
1
|
-
import { BaseService, ServiceDescriptor } from "../../NodeConstructor";
|
|
2
|
-
import { NodeAPI, NodeAPISettingsWithData } from "node-red";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { BaseService, ServiceDescriptor, ConfigNodeConfig, ConfigNode } from "../../NodeConstructor";
|
|
2
|
+
import { NodeAPI, NodeAPISettingsWithData, Node } from "node-red";
|
|
3
|
+
import { LoggerTemplateConfig } from "../template/LoggerTemplate";
|
|
4
|
+
export declare enum Level {
|
|
5
|
+
DEBUG = "DEBUG",
|
|
6
|
+
INFO = "INFO",
|
|
7
|
+
WARNING = "WARNING",
|
|
8
|
+
ERROR = "ERROR"
|
|
9
|
+
}
|
|
10
|
+
export declare enum RestAuthType {
|
|
11
|
+
none = "none",
|
|
12
|
+
basic = "basic",
|
|
13
|
+
apikey = "apikey"
|
|
14
|
+
}
|
|
15
|
+
export declare enum ApiKeyMechanismType {
|
|
16
|
+
header = "header",
|
|
17
|
+
queryparam = "queryparam",
|
|
18
|
+
matrixparam = "matrixparam"
|
|
19
|
+
}
|
|
20
|
+
export type TagMap = {
|
|
21
|
+
id: string;
|
|
7
22
|
node: string;
|
|
8
23
|
type: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export type Log = {
|
|
12
|
-
log(message: {
|
|
13
|
-
[key: string]: any;
|
|
14
|
-
} | string): void;
|
|
24
|
+
flow: string;
|
|
25
|
+
instance: string;
|
|
15
26
|
};
|
|
16
|
-
export declare class
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
log(
|
|
27
|
+
export declare abstract class Log {
|
|
28
|
+
private _config;
|
|
29
|
+
private template;
|
|
30
|
+
private tags;
|
|
31
|
+
protected constructor(config: LoggerTemplateConfig);
|
|
32
|
+
protected config(): LoggerTemplateConfig;
|
|
33
|
+
log(payload: {
|
|
23
34
|
[key: string]: any;
|
|
24
35
|
} | string): void;
|
|
25
|
-
|
|
26
|
-
[key: string]:
|
|
27
|
-
}):
|
|
28
|
-
getTags(): TagMap;
|
|
36
|
+
protected abstract writeToLog(level: string, message: string, tags: {
|
|
37
|
+
[key: string]: string | boolean | number;
|
|
38
|
+
}): void;
|
|
29
39
|
}
|
|
30
|
-
export
|
|
40
|
+
export type BaseLoggerConfig = {
|
|
31
41
|
id: string;
|
|
32
|
-
type:
|
|
42
|
+
type: string;
|
|
33
43
|
level: Level;
|
|
34
44
|
template: string;
|
|
35
|
-
}
|
|
36
|
-
export declare abstract class
|
|
45
|
+
};
|
|
46
|
+
export declare abstract class AbstractLogger<BaseLoggerConfig> {
|
|
37
47
|
private _config;
|
|
38
|
-
private
|
|
39
|
-
constructor(config:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
register(registration: LoggerRegistration): Log;
|
|
44
|
-
serialize(content: any): string;
|
|
45
|
-
config(): ConfigType;
|
|
46
|
-
protected abstract writeToLog(serializedContent: string, tags: TagMap): void;
|
|
47
|
-
}
|
|
48
|
-
export interface ConsoleLoggerConfig extends BaseLoggerConfig {
|
|
49
|
-
}
|
|
50
|
-
export interface LokiLoggerConfig extends BaseLoggerConfig {
|
|
51
|
-
type: PlatformType.loki;
|
|
52
|
-
host: string;
|
|
53
|
-
userid?: string;
|
|
54
|
-
authtoken?: string;
|
|
55
|
-
tenantid?: string;
|
|
56
|
-
}
|
|
57
|
-
export interface RestLoggerConfig extends BaseLoggerConfig {
|
|
58
|
-
type: PlatformType.rest;
|
|
59
|
-
url: string;
|
|
60
|
-
ignoresslerror: boolean;
|
|
61
|
-
auth_type: RestAuthType;
|
|
62
|
-
auth_basic_username: string;
|
|
63
|
-
auth_basic_password: string;
|
|
64
|
-
auth_apikey_mechanism: ApiKeyMechanismType;
|
|
65
|
-
auth_apikey_name: string;
|
|
66
|
-
auth_apikey_value: string;
|
|
48
|
+
private _appenders;
|
|
49
|
+
constructor(config: BaseLoggerConfig);
|
|
50
|
+
config(): BaseLoggerConfig;
|
|
51
|
+
registerTemplate(config: LoggerTemplateConfig): Log;
|
|
52
|
+
protected abstract createLogger(config: LoggerTemplateConfig): Log;
|
|
67
53
|
}
|
|
68
54
|
export declare class LoggerService extends BaseService {
|
|
69
55
|
static instanceID: string;
|
|
70
|
-
private static loggers;
|
|
71
56
|
private red;
|
|
72
57
|
constructor();
|
|
73
58
|
init(red: NodeAPI<NodeAPISettingsWithData>): void | Promise<void>;
|
|
74
59
|
deinit(red: NodeAPI<NodeAPISettingsWithData>): void | Promise<void>;
|
|
75
|
-
static get<ConfigType extends BaseLoggerConfig>(config: ConfigType): NewLogger<ConfigType>;
|
|
76
60
|
static getServiceDescriptor(): ServiceDescriptor;
|
|
77
61
|
}
|
|
78
|
-
export type
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
62
|
+
export type LoggerConfigNodeConfig = ConfigNodeConfig & BaseLoggerConfig & {};
|
|
63
|
+
export declare abstract class LoggerConfigNode<CNC extends LoggerConfigNodeConfig, LoggerType extends AbstractLogger<BaseLoggerConfig>> extends ConfigNode<CNC> {
|
|
64
|
+
protected constructor(node: Node, config: CNC);
|
|
65
|
+
protected abstract logger(): LoggerType;
|
|
66
|
+
registerTemplate(config: LoggerTemplateConfig): Log;
|
|
67
|
+
}
|
|
68
|
+
export declare class DoNothingAppender extends Log {
|
|
69
|
+
private static instance;
|
|
70
|
+
static get(): any;
|
|
71
|
+
private constructor();
|
|
72
|
+
log(payload: {
|
|
73
|
+
[key: string]: any;
|
|
74
|
+
} | string): void;
|
|
75
|
+
protected writeToLog(level: string, message: string, tags: {
|
|
76
|
+
[key: string]: string | boolean | number;
|
|
77
|
+
}): void;
|
|
78
|
+
}
|
|
88
79
|
//# sourceMappingURL=LoggerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerService.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/service/LoggerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"LoggerService.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/service/LoggerService.ts"],"names":[],"mappings":"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"}
|