@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.
Files changed (63) hide show
  1. package/README.md +62 -8
  2. package/build/GenerateNodes.js +0 -1
  3. package/build/Nodes.html +0 -141
  4. package/build/Nodes.js +0 -2
  5. package/build/Plugins.js +2 -2
  6. package/build/core/NodeConstructor.d.ts +1 -0
  7. package/build/core/NodeConstructor.d.ts.map +1 -1
  8. package/build/core/NodeConstructor.js +5 -2
  9. package/build/core/NodeGenerator.js +9 -9
  10. package/build/core/logger/LoggerDecorator.d.ts.map +1 -1
  11. package/build/core/logger/LoggerDecorator.js +34 -38
  12. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +11 -7
  13. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +1 -1
  14. package/build/core/logger/node/ConsoleLoggerConfigNode.js +24 -9
  15. package/build/core/logger/node/RestLoggerConfigNode.d.ts +22 -6
  16. package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +1 -1
  17. package/build/core/logger/node/RestLoggerConfigNode.js +93 -22
  18. package/build/core/logger/service/LoggerService.d.ts +59 -68
  19. package/build/core/logger/service/LoggerService.d.ts.map +1 -1
  20. package/build/core/logger/service/LoggerService.js +76 -155
  21. package/build/core/logger/template/LoggerTemplate.d.ts +9 -1
  22. package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
  23. package/build/core/metrics/service/MetricsService.js +1 -1
  24. package/build/core/webhook/WebhookDecorator.d.ts.map +1 -1
  25. package/build/core/webhook/WebhookDecorator.js +4 -4
  26. package/build/core/webhook/service/ReverseProxyTypeService.d.ts +0 -2
  27. package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
  28. package/build/core/webhook/service/ReverseProxyTypeService.js +1 -4
  29. package/build/core/webhook/service/WebhookServerService.d.ts +1 -1
  30. package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
  31. package/build/core/webhook/service/WebhookServerService.js +6 -6
  32. package/build/core/webhook/template/WebhookTemplate.d.ts +1 -1
  33. package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
  34. package/build/index.d.ts +1 -2
  35. package/build/index.d.ts.map +1 -1
  36. package/build/index.js +1 -2
  37. package/build/resources/editorLanguageExtension.js +1 -1
  38. package/package.json +5 -3
  39. package/resources/editorLanguageExtension.js +1 -1
  40. package/src/GenerateNodes.ts +2 -2
  41. package/src/core/NodeConstructor.ts +5 -1
  42. package/src/core/NodeGenerator.ts +2 -2
  43. package/src/core/logger/LoggerDecorator.ts +56 -53
  44. package/src/core/logger/node/ConsoleLoggerConfigNode.ts +39 -14
  45. package/src/core/logger/node/RestLoggerConfigNode.ts +128 -25
  46. package/src/core/logger/service/LoggerService.ts +103 -239
  47. package/src/core/logger/template/LoggerTemplate.ts +11 -1
  48. package/src/core/webhook/WebhookDecorator.ts +1 -3
  49. package/src/core/webhook/service/ReverseProxyTypeService.ts +0 -4
  50. package/src/core/webhook/service/WebhookServerService.ts +1 -1
  51. package/src/core/webhook/template/WebhookTemplate.ts +1 -1
  52. package/src/index.ts +2 -2
  53. package/build/core/logger/node/LokiLoggerConfigNode.d.ts +0 -20
  54. package/build/core/logger/node/LokiLoggerConfigNode.d.ts.map +0 -1
  55. package/build/core/logger/node/LokiLoggerConfigNode.html +0 -117
  56. package/build/core/logger/node/LokiLoggerConfigNode.js +0 -52
  57. package/build/core/logger/service/LoggerServiceTypes.d.ts +0 -24
  58. package/build/core/logger/service/LoggerServiceTypes.d.ts.map +0 -1
  59. package/build/core/logger/service/LoggerServiceTypes.js +0 -30
  60. package/documentation/LokiLoggerConfigNode.png +0 -0
  61. package/src/core/logger/node/LokiLoggerConfigNode.html +0 -117
  62. package/src/core/logger/node/LokiLoggerConfigNode.ts +0 -58
  63. package/src/core/logger/service/LoggerServiceTypes.ts +0 -26
@@ -3,173 +3,82 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LoggerService = exports.NewLogger = exports.LogImplementation = void 0;
6
+ exports.DoNothingAppender = exports.LoggerConfigNode = exports.LoggerService = exports.AbstractLogger = exports.Log = exports.ApiKeyMechanismType = exports.RestAuthType = exports.Level = void 0;
7
7
  const NodeConstructor_1 = require("../../NodeConstructor");
8
8
  const handlebars_1 = __importDefault(require("handlebars"));
9
- const winston_1 = require("winston");
10
- const winston_loki_1 = __importDefault(require("winston-loki"));
11
- const whatwg_url_1 = require("whatwg-url");
12
9
  const LoggerTemplate_1 = require("../template/LoggerTemplate");
13
10
  var network = require('network');
14
- const deep_equal_1 = __importDefault(require("deep-equal"));
15
- const LoggerServiceTypes_1 = require("./LoggerServiceTypes");
16
11
  // helper for serializing json objects inside handlebars tags.
17
12
  // you can then convert it like this: {{{json myobject}}}
18
13
  handlebars_1.default.registerHelper('json', function (context) {
19
14
  return JSON.stringify(context);
20
15
  });
21
- class LogImplementation {
22
- constructor(root, config) {
23
- this.root = root;
24
- this.config = config;
25
- this.template = (config.override && config.template) ? handlebars_1.default.compile(config.template) : undefined;
26
- this.tagMap = {
27
- instance: LoggerService.instanceID,
28
- flow: config.flow,
16
+ var Level;
17
+ (function (Level) {
18
+ Level["DEBUG"] = "DEBUG";
19
+ Level["INFO"] = "INFO";
20
+ Level["WARNING"] = "WARNING";
21
+ Level["ERROR"] = "ERROR";
22
+ })(Level || (exports.Level = Level = {}));
23
+ var RestAuthType;
24
+ (function (RestAuthType) {
25
+ RestAuthType["none"] = "none";
26
+ RestAuthType["basic"] = "basic";
27
+ RestAuthType["apikey"] = "apikey";
28
+ })(RestAuthType || (exports.RestAuthType = RestAuthType = {}));
29
+ var ApiKeyMechanismType;
30
+ (function (ApiKeyMechanismType) {
31
+ ApiKeyMechanismType["header"] = "header";
32
+ ApiKeyMechanismType["queryparam"] = "queryparam";
33
+ ApiKeyMechanismType["matrixparam"] = "matrixparam";
34
+ })(ApiKeyMechanismType || (exports.ApiKeyMechanismType = ApiKeyMechanismType = {}));
35
+ class Log {
36
+ constructor(config) {
37
+ this._config = config;
38
+ this.template = handlebars_1.default.compile(config.template);
39
+ this.tags = {
40
+ id: config.id,
29
41
  node: config.name,
30
42
  type: config.type,
31
- id: config.id,
32
- };
33
- }
34
- log(message) {
35
- // enrich the logged content with additional properties.
36
- let content = {
37
- currentTime: new Date().toISOString(),
38
- msg: message,
43
+ flow: config.flow,
44
+ instance: LoggerService.instanceID
39
45
  };
40
- // send typ the logger.
41
- this.root.log(this, content);
42
- }
43
- serialize(content) {
44
- return !!this.template ? this.template(content) : this.root.serialize(content);
45
46
  }
46
- getTags() {
47
- return this.tagMap;
48
- }
49
- }
50
- exports.LogImplementation = LogImplementation;
51
- class NewLogger {
52
- constructor(config) {
53
- this._config = config;
54
- this.template = handlebars_1.default.compile(config.template);
47
+ config() {
48
+ return this._config;
55
49
  }
56
- log(reference, content) {
50
+ log(payload) {
57
51
  try {
58
- // step 1, attempt to serialize the content.
59
- let serializedContent = reference.serialize(content);
60
- // step 2, get the tags.
61
- let tags = reference.getTags();
62
- // step 3. write to the logger.
63
- this.writeToLog(serializedContent, tags);
52
+ // step 1. serialize the payload using the template engine.
53
+ let message = (payload instanceof String) ? payload : this.template({ msg: payload });
54
+ // step 2. write to the log appender.
55
+ this.writeToLog(this.config().level, message, this.tags);
64
56
  }
65
- catch (exception) {
66
- console.log(exception.message);
57
+ catch (e) {
58
+ console.log(e);
67
59
  }
68
60
  }
69
- register(registration) {
70
- return new LogImplementation(this, registration);
71
- }
72
- serialize(content) {
73
- return this.template(content);
74
- }
75
- config() {
76
- return this._config;
77
- }
78
- }
79
- exports.NewLogger = NewLogger;
80
- class ConsoleLogger extends NewLogger {
81
- constructor(config) {
82
- super(config);
83
- }
84
- writeToLog(serializedContent, tags) {
85
- console.log(tags, serializedContent);
86
- }
87
61
  }
88
- class LokiLogger extends NewLogger {
62
+ exports.Log = Log;
63
+ class AbstractLogger {
89
64
  constructor(config) {
90
- super(config);
91
- let transportConfig = {
92
- host: config.host,
93
- json: true,
94
- format: winston_1.format.json(),
95
- headers: {
96
- "X-Scope-OrgID": (config.tenantid) ? config.tenantid : undefined
97
- },
98
- replaceTimestamp: true,
99
- onConnectionError: (err) => console.error(err),
100
- basicAuth: (config.userid && config.authtoken)
101
- ? `${config.userid}:${config.authtoken}`
102
- : undefined
103
- };
104
- this.logger = (0, winston_1.createLogger)({
105
- level: this.config().level.toString().toLowerCase(),
106
- format: winston_1.format.json(),
107
- defaultMeta: {},
108
- transports: [
109
- new winston_loki_1.default(transportConfig),
110
- ],
111
- });
65
+ this._appenders = {};
66
+ this._config = config;
112
67
  }
113
- writeToLog(serializedContent, tags) {
114
- this.logger.log({ message: serializedContent, level: this.logger.level, labels: tags });
68
+ config() {
69
+ return this._config;
115
70
  }
116
- }
117
- class RestLogger extends NewLogger {
118
- constructor(config) {
119
- super(config);
120
- let hosturl = (0, whatwg_url_1.parseURL)(config.url);
121
- if (!hosturl) {
122
- throw Error("could not parse url: " + config.url);
71
+ registerTemplate(config) {
72
+ let appender = this._appenders[config.id];
73
+ if (appender) {
74
+ return appender;
123
75
  }
124
- let httpOptions = {};
125
- let httpParams = {
126
- host: hosturl.host?.toString(),
127
- path: "/" + (hosturl.path ? [...hosturl.path].join("/") : "") + (hosturl.query ? ("?" + hosturl.query) : ""),
128
- port: (hosturl.port) ? hosturl.port : undefined,
129
- ssl: hosturl.scheme.toLowerCase() === "https",
130
- headers: {},
131
- };
132
- httpParams.options = httpOptions;
133
- if (config.ignoresslerror) {
134
- httpOptions.rejectUnauthorized = false;
135
- }
136
- if (config.auth_type === LoggerServiceTypes_1.RestAuthType.none) { }
137
- if (config.auth_type === LoggerServiceTypes_1.RestAuthType.basic) {
138
- httpParams.auth = {
139
- username: config.auth_basic_username,
140
- password: config.auth_basic_password
141
- };
142
- }
143
- if (config.auth_type === LoggerServiceTypes_1.RestAuthType.apikey) {
144
- if (config.auth_apikey_mechanism === LoggerServiceTypes_1.ApiKeyMechanismType.header) {
145
- httpParams.headers[config.auth_apikey_name] = config.auth_apikey_value;
146
- }
147
- if (config.auth_apikey_mechanism === LoggerServiceTypes_1.ApiKeyMechanismType.matrixparam) {
148
- httpParams.path = httpParams.path?.replace(`:${config.auth_apikey_name}`, config.auth_apikey_value);
149
- }
150
- if (config.auth_apikey_mechanism === LoggerServiceTypes_1.ApiKeyMechanismType.queryparam) {
151
- httpParams.path = httpParams.path + (httpParams.path?.includes("?") ? "&" : "?") + config.auth_apikey_name + "=" + config.auth_apikey_value;
152
- }
153
- }
154
- ;
155
- this.logger = (0, winston_1.createLogger)({
156
- level: config.level.toString().toLowerCase(),
157
- format: winston_1.format.json(),
158
- defaultMeta: {},
159
- transports: [
160
- new winston_1.transports.Http(httpParams),
161
- ],
162
- });
163
- }
164
- writeToLog(serializedContent, tags) {
165
- this.logger.log({ level: this.logger.level, message: serializedContent, labels: tags });
76
+ let _this = this;
77
+ this._appenders[config.id] = appender = this.createLogger(config);
78
+ return appender;
166
79
  }
167
80
  }
168
- let LoggerTypes = {
169
- console: ConsoleLogger,
170
- loki: LokiLogger,
171
- rest: RestLogger
172
- };
81
+ exports.AbstractLogger = AbstractLogger;
173
82
  class LoggerService extends NodeConstructor_1.BaseService {
174
83
  constructor() {
175
84
  super("logger");
@@ -183,21 +92,33 @@ class LoggerService extends NodeConstructor_1.BaseService {
183
92
  });
184
93
  }
185
94
  deinit(red) { }
186
- static get(config) {
187
- let logger = this.loggers[config.id];
188
- if (logger) {
189
- if (!(0, deep_equal_1.default)(config, logger.config())) {
190
- this.loggers[config.id] = (logger = new (LoggerTypes[config.type])(config));
191
- }
192
- }
193
- else {
194
- this.loggers[config.id] = (logger = new (LoggerTypes[config.type])(config));
195
- }
196
- return logger;
197
- }
198
95
  static getServiceDescriptor() {
199
96
  return new NodeConstructor_1.ServiceDescriptor("@theotherwillembotha/loggerservice", "LoggerService", "services-plugin", "@theotherwillembotha/node-red-plugincore", LoggerService, [LoggerTemplate_1.LoggerTemplate]);
200
97
  }
201
98
  }
202
99
  exports.LoggerService = LoggerService;
203
- LoggerService.loggers = {};
100
+ class LoggerConfigNode extends NodeConstructor_1.ConfigNode {
101
+ constructor(node, config) {
102
+ super(node, config);
103
+ }
104
+ registerTemplate(config) {
105
+ return this.logger().registerTemplate(config);
106
+ }
107
+ }
108
+ exports.LoggerConfigNode = LoggerConfigNode;
109
+ class DoNothingAppender extends Log {
110
+ static { this.instance = new DoNothingAppender(); }
111
+ static get() {
112
+ return DoNothingAppender.instance;
113
+ }
114
+ constructor() {
115
+ super({ flow: "", id: "", level: "", name: "", template: "", type: "" });
116
+ }
117
+ log(payload) {
118
+ // do nothing.
119
+ }
120
+ writeToLog(level, message, tags) {
121
+ // do nothing.
122
+ }
123
+ }
124
+ exports.DoNothingAppender = DoNothingAppender;
@@ -1,10 +1,18 @@
1
1
  import { BaseNodeConfig, Template, TemplateDescriptor } from "../../NodeConstructor";
2
- export interface LoggerTemplateConfig extends BaseNodeConfig {
2
+ export interface LoggerTemplateNodeConfig extends BaseNodeConfig {
3
3
  logEnabled: boolean;
4
4
  logger: string;
5
5
  logTemplateOverrideEnabled: boolean;
6
6
  logTemplateOverride: string;
7
7
  }
8
+ export type LoggerTemplateConfig = {
9
+ id: string;
10
+ flow: string;
11
+ type: string;
12
+ name: string;
13
+ template: string;
14
+ level: string;
15
+ };
8
16
  export declare class LoggerTemplate extends Template {
9
17
  static getTemplateDescriptor(): TemplateDescriptor;
10
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoggerTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/template/LoggerTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEpF,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,UAAU,EAAC,OAAO,CAAC;IACnB,MAAM,EAAC,MAAM,CAAC;IACd,0BAA0B,EAAC,OAAO,CAAC;IACnC,mBAAmB,EAAC,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAGxC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAQrD"}
1
+ {"version":3,"file":"LoggerTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/logger/template/LoggerTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,UAAU,EAAC,OAAO,CAAC;IACnB,MAAM,EAAC,MAAM,CAAC;IACd,0BAA0B,EAAC,OAAO,CAAC;IACnC,mBAAmB,EAAC,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAC,MAAM,CAAC;IACV,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAC;IAChB,KAAK,EAAC,MAAM,CAAC;CAChB,CAAA;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAGxC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAQrD"}
@@ -328,6 +328,7 @@ class MetricsContainer {
328
328
  }
329
329
  exports.MetricsContainer = MetricsContainer;
330
330
  class MetricsService extends NodeConstructor_1.BaseService {
331
+ static { this.metrics = {}; }
331
332
  constructor() {
332
333
  super("MetricsService");
333
334
  }
@@ -365,7 +366,6 @@ class MetricsService extends NodeConstructor_1.BaseService {
365
366
  }
366
367
  }
367
368
  exports.MetricsService = MetricsService;
368
- MetricsService.metrics = {};
369
369
  /*
370
370
  Quick explanation of how this is supposed to work:
371
371
 
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDecorator.d.ts","sourceRoot":"","sources":["../../../src/core/webhook/WebhookDecorator.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,OAAO,KAoDD,CAAC;AAGb,OAAO,EACH,OAAO,EACV,CAAA"}
1
+ {"version":3,"file":"WebhookDecorator.d.ts","sourceRoot":"","sources":["../../../src/core/webhook/WebhookDecorator.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,OAAO,KAkDD,CAAC;AAGb,OAAO,EACH,OAAO,EACV,CAAA"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Webhook = void 0;
4
- const LoggerServiceTypes_1 = require("../logger/service/LoggerServiceTypes");
4
+ const LoggerService_1 = require("../logger/service/LoggerService");
5
5
  const NodeConstructor_1 = require("../NodeConstructor");
6
6
  const Webhook = (0, NodeConstructor_1.createPostConstructDecorator)('Webhook')
7
7
  .withInitLogic(async (instance, propertyKey, webhookconfig) => {
@@ -9,9 +9,9 @@ const Webhook = (0, NodeConstructor_1.createPostConstructDecorator)('Webhook')
9
9
  let node = instance;
10
10
  let nodeConfig = node.config();
11
11
  // create the authentication.
12
- let authentication = (nodeConfig.webhookAuth === LoggerServiceTypes_1.RestAuthType.basic) ? { type: LoggerServiceTypes_1.RestAuthType.basic, username: nodeConfig.webhookAuth_basic_username, password: nodeConfig.webhookAuth_basic_password } :
13
- (nodeConfig.webhookAuth === LoggerServiceTypes_1.RestAuthType.apikey) ? { type: LoggerServiceTypes_1.RestAuthType.apikey, mechanism: nodeConfig.webhookAuth_apikey_mechanism, key: nodeConfig.webhookAuth_apikey_key, value: nodeConfig.webhookAuth_apikey_value } :
14
- { type: LoggerServiceTypes_1.RestAuthType.none };
12
+ let authentication = (nodeConfig.webhookAuth === LoggerService_1.RestAuthType.basic) ? { type: LoggerService_1.RestAuthType.basic, username: nodeConfig.webhookAuth_basic_username, password: nodeConfig.webhookAuth_basic_password } :
13
+ (nodeConfig.webhookAuth === LoggerService_1.RestAuthType.apikey) ? { type: LoggerService_1.RestAuthType.apikey, mechanism: nodeConfig.webhookAuth_apikey_mechanism, key: nodeConfig.webhookAuth_apikey_key, value: nodeConfig.webhookAuth_apikey_value } :
14
+ { type: LoggerService_1.RestAuthType.none };
15
15
  // register a callback listener to the webserver.
16
16
  let endpointConfig = {
17
17
  path: nodeConfig.webhookPath,
@@ -9,8 +9,6 @@ export interface ProxyManagerClient {
9
9
  updateHost(data: Partial<HostEntry>): Promise<void>;
10
10
  getHosts(): Promise<Partial<HostEntry>[]>;
11
11
  }
12
- export declare abstract class ReverseProxyClient {
13
- }
14
12
  export type HostEntry = {
15
13
  id: number;
16
14
  domainNames: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ReverseProxyTypeService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/ReverseProxyTypeService.ts"],"names":[],"mappings":"AAGA,8BAAsB,gBAAgB;IAElC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM;IAK3B,EAAE,IAAG,MAAM;IAGX,IAAI,IAAG,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5C;AAED,8BAAsB,kBAAkB;CAEvC;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAC,MAAM,CAAC;IACV,WAAW,EAAC,MAAM,EAAE,CAAC;IACrB,MAAM,EAAC,UAAU,CAAC;IAClB,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,MAAM,CAAC;IACnB,UAAU,EAAC,MAAM,CAAC;IAClB,WAAW,EAAC,OAAO,CAAC;IACpB,mBAAmB,EAAC,OAAO,CAAC;IAC5B,gBAAgB,EAAC,OAAO,CAAC;CAC5B,CAAA;AAED,oBAAY,UAAU;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB"}
1
+ {"version":3,"file":"ReverseProxyTypeService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/ReverseProxyTypeService.ts"],"names":[],"mappings":"AAGA,8BAAsB,gBAAgB;IAElC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM;IAK3B,EAAE,IAAG,MAAM;IAGX,IAAI,IAAG,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAC,MAAM,CAAC;IACV,WAAW,EAAC,MAAM,EAAE,CAAC;IACrB,MAAM,EAAC,UAAU,CAAC;IAClB,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,MAAM,CAAC;IACnB,UAAU,EAAC,MAAM,CAAC;IAClB,WAAW,EAAC,OAAO,CAAC;IACpB,mBAAmB,EAAC,OAAO,CAAC;IAC5B,gBAAgB,EAAC,OAAO,CAAC;CAC5B,CAAA;AAED,oBAAY,UAAU;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HTTPScheme = exports.ReverseProxyClient = exports.ReverseProxyType = void 0;
3
+ exports.HTTPScheme = exports.ReverseProxyType = void 0;
4
4
  class ReverseProxyType {
5
5
  constructor(id, name) {
6
6
  this._id = id;
@@ -14,9 +14,6 @@ class ReverseProxyType {
14
14
  }
15
15
  }
16
16
  exports.ReverseProxyType = ReverseProxyType;
17
- class ReverseProxyClient {
18
- }
19
- exports.ReverseProxyClient = ReverseProxyClient;
20
17
  var HTTPScheme;
21
18
  (function (HTTPScheme) {
22
19
  HTTPScheme["HTTP"] = "http";
@@ -1,7 +1,7 @@
1
1
  import { BaseService, FlowDeployment, ServiceDescriptor } from "../../NodeConstructor";
2
2
  import { NodeAPI, NodeAPISettingsWithData } from "node-red";
3
3
  import { Request, Response } from "express";
4
- import { ApiKeyMechanismType, RestAuthType } from "../../logger/service/LoggerServiceTypes";
4
+ import { ApiKeyMechanismType, RestAuthType } from "../../logger/service/LoggerService";
5
5
  export declare enum EndpointMethodType {
6
6
  GET = "GET",
7
7
  POST = "POST"
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookServerService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/WebhookServerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAgB,EAAU,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAI5F,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAC,YAAY,CAAC,IAAI,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAC,YAAY,CAAC,KAAK,CAAA;IACvB,QAAQ,EAAC,MAAM,CAAC;IAChB,QAAQ,EAAC,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAC,YAAY,CAAC,MAAM,CAAC;IACzB,SAAS,EAAC,mBAAmB,CAAC;IAC9B,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAC,kBAAkB,EAAE,CAAC;IAC7B,cAAc,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,0BAA0B,CAAC;CACnG,CAAA;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEP,MAAM,EAAC,mBAAmB;IAQtC,MAAM,CAAC,QAAQ,EAAC,cAAc,EAAE,QAAQ,EAAC,CAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,QAAQ,KAAK,GAAG;IA+CpF,MAAM,CAAC,aAAa,EAAC,cAAc;IAsBnC,MAAM,IAAG,mBAAmB;CAGtC;AAED,MAAM,MAAO,mBAAmB,GAAG;IAC/B,EAAE,EAAC,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAC,MAAM,CAAC;IACpB,YAAY,EAAC,MAAM,CAAC;CACvB,CAAA;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IAEjD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmC;;IAMzD,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;WAyCvD,GAAG,CAAE,MAAM,EAAC,mBAAmB,GAAG,aAAa;WAS7C,oBAAoB,IAAG,iBAAiB;CAU3D"}
1
+ {"version":3,"file":"WebhookServerService.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/service/WebhookServerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAgB,EAAU,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvF,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAC,YAAY,CAAC,IAAI,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAC,YAAY,CAAC,KAAK,CAAA;IACvB,QAAQ,EAAC,MAAM,CAAC;IAChB,QAAQ,EAAC,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAC,YAAY,CAAC,MAAM,CAAC;IACzB,SAAS,EAAC,mBAAmB,CAAC;IAC9B,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAC,kBAAkB,EAAE,CAAC;IAC7B,cAAc,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,0BAA0B,CAAC;CACnG,CAAA;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEP,MAAM,EAAC,mBAAmB;IAQtC,MAAM,CAAC,QAAQ,EAAC,cAAc,EAAE,QAAQ,EAAC,CAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,QAAQ,KAAK,GAAG;IA+CpF,MAAM,CAAC,aAAa,EAAC,cAAc;IAsBnC,MAAM,IAAG,mBAAmB;CAGtC;AAED,MAAM,MAAO,mBAAmB,GAAG;IAC/B,EAAE,EAAC,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAC,MAAM,CAAC;IACpB,YAAY,EAAC,MAAM,CAAC;CACvB,CAAA;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IAEjD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmC;;IAMzD,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;WAyCvD,GAAG,CAAE,MAAM,EAAC,mBAAmB,GAAG,aAAa;WAS7C,oBAAoB,IAAG,iBAAiB;CAU3D"}
@@ -8,7 +8,7 @@ const NodeConstructor_1 = require("../../NodeConstructor");
8
8
  const WebhookServerConfigNode_1 = require("../node/WebhookServerConfigNode");
9
9
  const WebhookTemplate_1 = require("../template/WebhookTemplate");
10
10
  const express_1 = __importDefault(require("express"));
11
- const LoggerServiceTypes_1 = require("../../logger/service/LoggerServiceTypes");
11
+ const LoggerService_1 = require("../../logger/service/LoggerService");
12
12
  var bodyParser = require('body-parser');
13
13
  var EndpointMethodType;
14
14
  (function (EndpointMethodType) {
@@ -24,19 +24,19 @@ class WebhookServer {
24
24
  }
25
25
  attach(endpoint, callback) {
26
26
  let authenticator;
27
- if (endpoint.authentication.type === LoggerServiceTypes_1.RestAuthType.none) {
27
+ if (endpoint.authentication.type === LoggerService_1.RestAuthType.none) {
28
28
  authenticator = (request, response) => Promise.resolve(true);
29
29
  }
30
- if (endpoint.authentication.type === LoggerServiceTypes_1.RestAuthType.basic) {
30
+ if (endpoint.authentication.type === LoggerService_1.RestAuthType.basic) {
31
31
  let header = "Basic " + Buffer.from(`${endpoint.authentication.username}:${endpoint.authentication.password}`).toString("base64");
32
32
  authenticator = (request, response) => {
33
33
  return Promise.resolve(header === request.headers.authorization);
34
34
  };
35
35
  }
36
- if (endpoint.authentication.type === LoggerServiceTypes_1.RestAuthType.apikey) {
36
+ if (endpoint.authentication.type === LoggerService_1.RestAuthType.apikey) {
37
37
  let auth = endpoint.authentication;
38
38
  authenticator = (request, response) => {
39
- if (auth.mechanism === LoggerServiceTypes_1.ApiKeyMechanismType.header) {
39
+ if (auth.mechanism === LoggerService_1.ApiKeyMechanismType.header) {
40
40
  return Promise.resolve(request.headers[auth.key] === auth.value);
41
41
  }
42
42
  console.log("No APIKEY Authentication Handler Implementation for Type: " + auth.mechanism);
@@ -87,6 +87,7 @@ class WebhookServer {
87
87
  }
88
88
  exports.WebhookServer = WebhookServer;
89
89
  class WebhookServerService extends NodeConstructor_1.BaseService {
90
+ static { this.webhookServers = {}; }
90
91
  constructor() {
91
92
  super("wehbookserver");
92
93
  }
@@ -143,4 +144,3 @@ class WebhookServerService extends NodeConstructor_1.BaseService {
143
144
  }
144
145
  }
145
146
  exports.WebhookServerService = WebhookServerService;
146
- WebhookServerService.webhookServers = {};
@@ -1,5 +1,5 @@
1
1
  import { BaseNodeConfig, Template, TemplateDescriptor } from "../../NodeConstructor";
2
- import { ApiKeyMechanismType, RestAuthType } from "../../logger/service/LoggerServiceTypes";
2
+ import { RestAuthType, ApiKeyMechanismType } from "../../logger/service/LoggerService";
3
3
  export interface WebhookTemplateConfig extends BaseNodeConfig {
4
4
  webhook: string;
5
5
  webhookPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/template/WebhookTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAE5F,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,OAAO,EAAC,MAAM,CAAC;IACf,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,YAAY,CAAC;IACzB,0BAA0B,EAAC,MAAM,CAAC;IAClC,0BAA0B,EAAC,MAAM,CAAC;IAClC,4BAA4B,EAAC,mBAAmB,CAAC;IACjD,sBAAsB,EAAC,MAAM,CAAC;IAC9B,wBAAwB,EAAC,MAAM,CAAC;IAEhC,sBAAsB,EAAC,OAAO,CAAC;IAC/B,0BAA0B,EAAC,sBAAsB,EAAE,CAAC;CACvD;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,KAAK,EAAC,MAAM,CAAC;IACb,UAAU,EAAC,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAEzC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAMrD"}
1
+ {"version":3,"file":"WebhookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/core/webhook/template/WebhookTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEvF,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,OAAO,EAAC,MAAM,CAAC;IACf,WAAW,EAAC,MAAM,CAAC;IACnB,WAAW,EAAC,YAAY,CAAC;IACzB,0BAA0B,EAAC,MAAM,CAAC;IAClC,0BAA0B,EAAC,MAAM,CAAC;IAClC,4BAA4B,EAAC,mBAAmB,CAAC;IACjD,sBAAsB,EAAC,MAAM,CAAC;IAC9B,wBAAwB,EAAC,MAAM,CAAC;IAEhC,sBAAsB,EAAC,OAAO,CAAC;IAC/B,0BAA0B,EAAC,sBAAsB,EAAE,CAAC;CACvD;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,KAAK,EAAC,MAAM,CAAC;IACb,UAAU,EAAC,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAEzC,MAAM,CAAC,qBAAqB,IAAI,kBAAkB;CAMrD"}
package/build/index.d.ts CHANGED
@@ -2,10 +2,9 @@ export * from "./core/Utils";
2
2
  export * from "./core/NodeGenerator";
3
3
  export * from "./core/NodeConstructor";
4
4
  export * from "./core/logger/service/LoggerService";
5
- export * from "./core/logger/template/LoggerTemplate";
6
5
  export * from "./core/logger/node/ConsoleLoggerConfigNode";
7
6
  export * from "./core/logger/node/RestLoggerConfigNode";
8
- export * from "./core/logger/node/LokiLoggerConfigNode";
7
+ export * from "./core/logger/template/LoggerTemplate";
9
8
  export * from "./core/metrics/service/MetricsService";
10
9
  export * from "./core/metrics/template/MetricsTemplate";
11
10
  export * from "./core/metrics/template/CounterMetricTemplate";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,gDAAgD,CAAC;AAG/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AAItD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,gDAAgD,CAAC;AAG/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
package/build/index.js CHANGED
@@ -19,10 +19,9 @@ __exportStar(require("./core/NodeGenerator"), exports);
19
19
  __exportStar(require("./core/NodeConstructor"), exports);
20
20
  // LOGGER
21
21
  __exportStar(require("./core/logger/service/LoggerService"), exports);
22
- __exportStar(require("./core/logger/template/LoggerTemplate"), exports);
23
22
  __exportStar(require("./core/logger/node/ConsoleLoggerConfigNode"), exports);
24
23
  __exportStar(require("./core/logger/node/RestLoggerConfigNode"), exports);
25
- __exportStar(require("./core/logger/node/LokiLoggerConfigNode"), exports);
24
+ __exportStar(require("./core/logger/template/LoggerTemplate"), exports);
26
25
  // METRICS
27
26
  __exportStar(require("./core/metrics/service/MetricsService"), exports);
28
27
  __exportStar(require("./core/metrics/template/MetricsTemplate"), exports);
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  if (window.ScriptEditorLanguageManager === undefined) {
3
3
  class ScriptEditorLanguageManager {
4
+ static { this.counter = 0; }
4
5
  static async createLanguage(monaco, template) {
5
6
  // generate a language name.
6
7
  let langName = "js_variant_" + ScriptEditorLanguageManager.counter;
@@ -325,7 +326,6 @@ if (window.ScriptEditorLanguageManager === undefined) {
325
326
  });
326
327
  }
327
328
  }
328
- ScriptEditorLanguageManager.counter = 0;
329
329
  class ScriptEditorLanguage {
330
330
  constructor(name) {
331
331
  this.name = name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theotherwillembotha/node-red-plugincore",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "description": "A core framework for building production-grade Node-RED plugins, with built-in support for structured logging, metrics, and webhook ingestion.",
5
5
  "author": "Willem Botha (@theotherwillembotha)",
6
6
  "license": "ISC",
@@ -40,6 +40,9 @@
40
40
  "README.md"
41
41
  ],
42
42
  "homepage": "https://github.com/theotherwillembotha/nodered_plugincore#readme",
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
43
46
  "engines": {
44
47
  "node": ">=18",
45
48
  "nodered": ">=4.0.0"
@@ -65,8 +68,7 @@
65
68
  "prom-client": "^15.1.3",
66
69
  "reflect-metadata": "^0.2.2",
67
70
  "whatwg-url": "^16.0.1",
68
- "winston": "^3.17.0",
69
- "winston-loki": "^6.1.3"
71
+ "winston": "^3.17.0"
70
72
  },
71
73
  "node-red": {
72
74
  "version": ">=4.0.0",
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  if (window.ScriptEditorLanguageManager === undefined) {
3
3
  class ScriptEditorLanguageManager {
4
+ static { this.counter = 0; }
4
5
  static async createLanguage(monaco, template) {
5
6
  // generate a language name.
6
7
  let langName = "js_variant_" + ScriptEditorLanguageManager.counter;
@@ -325,7 +326,6 @@ if (window.ScriptEditorLanguageManager === undefined) {
325
326
  });
326
327
  }
327
328
  }
328
- ScriptEditorLanguageManager.counter = 0;
329
329
  class ScriptEditorLanguage {
330
330
  constructor(name) {
331
331
  this.name = name;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { DelegatedConfigReferenceNode } from "./core/other/node/DelegatedConfigReferenceNode.js";
3
3
  import { NodeTypeService } from "./core/tagging/service/NodeTypeService.js";
4
- import { NodeGenerator, SettingsService, BasicTemplate, SettingsTemplate, TimerMetricTemplate, ConsoleLoggerConfigNode, RestLoggerConfigNode, LokiLoggerConfigNode, UIHelperTemplate, ScriptEditorTemplate } from "./index.js"
4
+ import { NodeGenerator, SettingsService, BasicTemplate, SettingsTemplate, TimerMetricTemplate, ConsoleLoggerConfigNode, RestLoggerConfigNode, UIHelperTemplate, ScriptEditorTemplate } from "./index.js"
5
5
  import { WebhookServerConfigNode, WebhookServerService, WebhookTemplate, } from "./index.js"
6
6
 
7
7
  import {LoggerService, LoggerTemplate } from "./index.js";
@@ -33,7 +33,7 @@ new NodeGenerator("./src/core/")
33
33
  .registerNode(DelegatedConfigReferenceNode)
34
34
  .registerNode(ConsoleLoggerConfigNode)
35
35
  .registerNode(RestLoggerConfigNode)
36
- .registerNode(LokiLoggerConfigNode)
36
+
37
37
  .registerNode(MetricsConfigNode)
38
38
  .registerNode(CounterMetricConfigNode)
39
39
  .registerNode(GaugeMetricConfigNode)
@@ -432,7 +432,7 @@ export class NodeManager{
432
432
  }
433
433
 
434
434
  let nodeConstructor = function(this: any, config: BaseNodeConfig | NodeDef){
435
- console.log("constructing node", typeName);
435
+ //console.log("constructing node", typeName);
436
436
 
437
437
  try{
438
438
  // instantiate the node.
@@ -568,6 +568,7 @@ export type DefaultTemplateType = {
568
568
  required:boolean;
569
569
  minInstances?:number;
570
570
  maxInstances?:number;
571
+ validate?:Function;
571
572
  }
572
573
 
573
574
  export class NodeBuilder {
@@ -715,6 +716,9 @@ export class NodeBuilder {
715
716
  case "string": {
716
717
  return `'${value}'`
717
718
  }
719
+ case "function": {
720
+ return (value as Function).toString();
721
+ }
718
722
  case "object": {
719
723
  if(Array.isArray(value)){
720
724
  return `[${(value as []).map(t => this.serializeProperty(t)).join(", ")}]`
@@ -211,7 +211,7 @@ module.exports = function (RED) {
211
211
  RED.events.on('runtime-event', async (event) => {
212
212
  // startup deployment.
213
213
  if ("runtime-deploy" === event?.id && startupDeployment) {
214
- console.log("STARTUP DEPLOYMENT");
214
+ //console.log("STARTUP DEPLOYMENT");
215
215
  startupDeployment = false;
216
216
  const flows = await runtime.flows.getFlows({});
217
217
  await plugin.instance.onDeploy(flows);
@@ -219,7 +219,7 @@ module.exports = function (RED) {
219
219
 
220
220
  // stopping flows on redeployment.
221
221
  if ("runtime-state" === event?.id && event?.payload?.state === "stop" && event?.payload?.deploy) {
222
- console.log("REDEPLOY!");
222
+ //console.log("REDEPLOY!");
223
223
  const flows = await runtime.flows.getFlows({});
224
224
  await plugin.instance.onDeploy(flows);
225
225
  }