@theotherwillembotha/node-red-whatsapp 0.3.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/Nodes.html +78 -21
- package/build/Nodes.js +388 -524
- package/build/Plugins.js +388 -524
- package/build/index.d.ts +7 -0
- package/build/index.d.ts.map +1 -0
- package/build/whatsapp/node/WhatsappAccountConfigNode.d.ts +14 -0
- package/build/whatsapp/node/WhatsappAccountConfigNode.d.ts.map +1 -0
- package/build/whatsapp/node/WhatsappDynamicSendMessageNode.d.ts +19 -0
- package/build/whatsapp/node/WhatsappDynamicSendMessageNode.d.ts.map +1 -0
- package/build/whatsapp/node/WhatsappGroupConfigNode.d.ts +16 -0
- package/build/whatsapp/node/WhatsappGroupConfigNode.d.ts.map +1 -0
- package/build/whatsapp/node/WhatsappReceiveMessageNode.d.ts +20 -0
- package/build/whatsapp/node/WhatsappReceiveMessageNode.d.ts.map +1 -0
- package/build/whatsapp/node/WhatsappSendMessageNode.d.ts +17 -0
- package/build/whatsapp/node/WhatsappSendMessageNode.d.ts.map +1 -0
- package/build/whatsapp/service/WhatsappClient.d.ts +189 -0
- package/build/whatsapp/service/WhatsappClient.d.ts.map +1 -0
- package/build/whatsapp/service/WhatsappService.d.ts +26 -0
- package/build/whatsapp/service/WhatsappService.d.ts.map +1 -0
- package/build/whatsapp/service/WhatsappStore.d.ts +127 -0
- package/build/whatsapp/service/WhatsappStore.d.ts.map +1 -0
- package/package.json +3 -2
package/build/Plugins.js
CHANGED
|
@@ -7637,6 +7637,10 @@ var require_NodeConstructor = __commonJS({
|
|
|
7637
7637
|
if (Array.isArray(value)) {
|
|
7638
7638
|
return `[${value.map((t) => this.serializeProperty(t)).join(", ")}]`;
|
|
7639
7639
|
}
|
|
7640
|
+
if (value === null) {
|
|
7641
|
+
return "null";
|
|
7642
|
+
}
|
|
7643
|
+
return JSON.stringify(value);
|
|
7640
7644
|
}
|
|
7641
7645
|
}
|
|
7642
7646
|
throw new Error(`no serializeProperty handler for ${typeof value}, ${value}`);
|
|
@@ -8490,16 +8494,19 @@ var require_MetricsService = __commonJS({
|
|
|
8490
8494
|
constructor(config) {
|
|
8491
8495
|
this._config = config;
|
|
8492
8496
|
this._labels = {
|
|
8493
|
-
|
|
8494
|
-
|
|
8495
|
-
|
|
8496
|
-
|
|
8497
|
-
|
|
8497
|
+
type: config.type,
|
|
8498
|
+
id: config.id,
|
|
8499
|
+
metric: config.metric,
|
|
8500
|
+
flow: config.flow,
|
|
8501
|
+
name: config.name
|
|
8498
8502
|
};
|
|
8499
8503
|
}
|
|
8500
8504
|
labels() {
|
|
8501
8505
|
return this._labels;
|
|
8502
8506
|
}
|
|
8507
|
+
static labelNames() {
|
|
8508
|
+
return ["flow", "type", "name", "id", "metric"];
|
|
8509
|
+
}
|
|
8503
8510
|
config() {
|
|
8504
8511
|
return this._config;
|
|
8505
8512
|
}
|
|
@@ -8548,6 +8555,8 @@ var require_MetricsService = __commonJS({
|
|
|
8548
8555
|
var DoNothingHistogramMetric = class {
|
|
8549
8556
|
observe(_value) {
|
|
8550
8557
|
}
|
|
8558
|
+
reset() {
|
|
8559
|
+
}
|
|
8551
8560
|
subscribe(_node, _callback) {
|
|
8552
8561
|
}
|
|
8553
8562
|
unsubscribe(_node) {
|
|
@@ -8562,6 +8571,8 @@ var require_MetricsService = __commonJS({
|
|
|
8562
8571
|
var DoNothingSummaryMetric = class {
|
|
8563
8572
|
observe(_value) {
|
|
8564
8573
|
}
|
|
8574
|
+
reset() {
|
|
8575
|
+
}
|
|
8565
8576
|
subscribe(_node, _callback) {
|
|
8566
8577
|
}
|
|
8567
8578
|
unsubscribe(_node) {
|
|
@@ -8586,6 +8597,32 @@ var require_MetricsService = __commonJS({
|
|
|
8586
8597
|
console.warn(`[PluginCore] MetricsContainer: Summary is not supported by this provider.`);
|
|
8587
8598
|
return new DoNothingSummaryMetric();
|
|
8588
8599
|
}
|
|
8600
|
+
/**
|
|
8601
|
+
* Factory method for timer metrics. Called by flow nodes with the common
|
|
8602
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8603
|
+
* Providers override this to interpret their own fragment data and create the
|
|
8604
|
+
* appropriate histogram or summary metric.
|
|
8605
|
+
*/
|
|
8606
|
+
createTimer(metricConfig, fragmentData) {
|
|
8607
|
+
console.warn(`[PluginCore] MetricsContainer: createTimer is not supported by this provider.`);
|
|
8608
|
+
return new DoNothingHistogramMetric();
|
|
8609
|
+
}
|
|
8610
|
+
/**
|
|
8611
|
+
* Factory method for counter metrics. Called by flow nodes with the common
|
|
8612
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8613
|
+
*/
|
|
8614
|
+
createCounter(metricConfig, fragmentData) {
|
|
8615
|
+
console.warn(`[PluginCore] MetricsContainer: createCounter is not supported by this provider.`);
|
|
8616
|
+
return new DoNothingCounterMetric();
|
|
8617
|
+
}
|
|
8618
|
+
/**
|
|
8619
|
+
* Factory method for gauge metrics. Called by flow nodes with the common
|
|
8620
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8621
|
+
*/
|
|
8622
|
+
createGauge(metricConfig, fragmentData) {
|
|
8623
|
+
console.warn(`[PluginCore] MetricsContainer: createGauge is not supported by this provider.`);
|
|
8624
|
+
return new DoNothingGaugeMetric();
|
|
8625
|
+
}
|
|
8589
8626
|
};
|
|
8590
8627
|
exports2.MetricsContainer = MetricsContainer;
|
|
8591
8628
|
var DoNothingMetricsContainer = class extends MetricsContainer {
|
|
@@ -8609,6 +8646,15 @@ var require_MetricsService = __commonJS({
|
|
|
8609
8646
|
summary(_config) {
|
|
8610
8647
|
return new DoNothingSummaryMetric();
|
|
8611
8648
|
}
|
|
8649
|
+
createTimer(_metricConfig, _fragmentData) {
|
|
8650
|
+
return new DoNothingHistogramMetric();
|
|
8651
|
+
}
|
|
8652
|
+
createCounter(_metricConfig, _fragmentData) {
|
|
8653
|
+
return new DoNothingCounterMetric();
|
|
8654
|
+
}
|
|
8655
|
+
createGauge(_metricConfig, _fragmentData) {
|
|
8656
|
+
return new DoNothingGaugeMetric();
|
|
8657
|
+
}
|
|
8612
8658
|
};
|
|
8613
8659
|
exports2.DoNothingMetricsContainer = DoNothingMetricsContainer;
|
|
8614
8660
|
var _GLOBAL_METRICS_KEY = "__plugincore_metrics__";
|
|
@@ -8694,9 +8740,9 @@ var require_MetricsTemplate = __commonJS({
|
|
|
8694
8740
|
}
|
|
8695
8741
|
});
|
|
8696
8742
|
|
|
8697
|
-
// ../nodered_plugincore/build/core/
|
|
8698
|
-
var
|
|
8699
|
-
"../nodered_plugincore/build/core/
|
|
8743
|
+
// ../nodered_plugincore/build/core/configfragment/service/ConfigFragmentService.js
|
|
8744
|
+
var require_ConfigFragmentService = __commonJS({
|
|
8745
|
+
"../nodered_plugincore/build/core/configfragment/service/ConfigFragmentService.js"(exports2) {
|
|
8700
8746
|
"use strict";
|
|
8701
8747
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8702
8748
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8707,62 +8753,63 @@ var require_CounterMetricConfigNode = __commonJS({
|
|
|
8707
8753
|
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
8708
8754
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
8709
8755
|
};
|
|
8756
|
+
var ConfigFragmentService_1;
|
|
8710
8757
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8711
|
-
exports2.
|
|
8758
|
+
exports2.ConfigFragmentService = void 0;
|
|
8712
8759
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8713
|
-
var
|
|
8714
|
-
var
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
super(node, config);
|
|
8720
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
8721
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
8722
|
-
const counterConfig = {
|
|
8723
|
-
metricname: config.name,
|
|
8724
|
-
metricdescription: config.description,
|
|
8725
|
-
node: {
|
|
8726
|
-
id: this.id(),
|
|
8727
|
-
name: this.name(),
|
|
8728
|
-
flow: this.flow(),
|
|
8729
|
-
type: this.type()
|
|
8730
|
-
}
|
|
8731
|
-
};
|
|
8732
|
-
this._counter = this._metrics.counter(counterConfig);
|
|
8733
|
-
if (config.reset) {
|
|
8734
|
-
this._counter.reset();
|
|
8760
|
+
var ServiceDescriptionDecorator_1 = require_ServiceDescriptionDecorator();
|
|
8761
|
+
var ConfigFragmentService = ConfigFragmentService_1 = class ConfigFragmentService extends NodeConstructor_1.BaseService {
|
|
8762
|
+
// Global-backed registry so fragments registered across bundle boundaries are visible.
|
|
8763
|
+
static get _fragments() {
|
|
8764
|
+
if (!global.__plugincore_config_fragments__) {
|
|
8765
|
+
global.__plugincore_config_fragments__ = [];
|
|
8735
8766
|
}
|
|
8767
|
+
return global.__plugincore_config_fragments__;
|
|
8736
8768
|
}
|
|
8737
|
-
|
|
8738
|
-
|
|
8769
|
+
constructor() {
|
|
8770
|
+
super("configfragments");
|
|
8771
|
+
}
|
|
8772
|
+
init(red) {
|
|
8773
|
+
red.httpAdmin.get("/configfragment/:section/:providerType", red.auth.needsPermission("inject.write"), (request, response) => {
|
|
8774
|
+
const { section, providerType } = request.params;
|
|
8775
|
+
const fragment = ConfigFragmentService_1._fragments.find((f) => f.section === section && f.providerType === providerType);
|
|
8776
|
+
if (fragment) {
|
|
8777
|
+
response.type("text/html").send(fragment.html);
|
|
8778
|
+
} else {
|
|
8779
|
+
response.status(404).send("");
|
|
8780
|
+
}
|
|
8781
|
+
});
|
|
8782
|
+
return Promise.resolve();
|
|
8739
8783
|
}
|
|
8740
|
-
|
|
8741
|
-
return
|
|
8784
|
+
deinit(red) {
|
|
8785
|
+
return Promise.resolve();
|
|
8786
|
+
}
|
|
8787
|
+
/**
|
|
8788
|
+
* Register a config fragment. Called by provider plugins during their service init().
|
|
8789
|
+
* Provider plugins own both sides of the contract: the HTML fragment that collects
|
|
8790
|
+
* the configuration AND the server-side factory that deserializes it.
|
|
8791
|
+
*/
|
|
8792
|
+
static registerFragment(registration) {
|
|
8793
|
+
const existing = ConfigFragmentService_1._fragments.find((f) => f.section === registration.section && f.providerType === registration.providerType);
|
|
8794
|
+
if (!existing) {
|
|
8795
|
+
ConfigFragmentService_1._fragments.push(registration);
|
|
8796
|
+
}
|
|
8742
8797
|
}
|
|
8743
8798
|
};
|
|
8744
|
-
exports2.
|
|
8745
|
-
exports2.
|
|
8746
|
-
(0,
|
|
8747
|
-
id: "
|
|
8748
|
-
|
|
8749
|
-
group: "config",
|
|
8750
|
-
sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "CounterMetricConfigNode.html",
|
|
8751
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
8752
|
-
templates: [
|
|
8753
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: {} }
|
|
8754
|
-
],
|
|
8755
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
8756
|
-
tags: ["MetricType"]
|
|
8799
|
+
exports2.ConfigFragmentService = ConfigFragmentService;
|
|
8800
|
+
exports2.ConfigFragmentService = ConfigFragmentService = ConfigFragmentService_1 = __decorate([
|
|
8801
|
+
(0, ServiceDescriptionDecorator_1.ServiceDescription)({
|
|
8802
|
+
id: "@theotherwillembotha/configfragmentservice",
|
|
8803
|
+
sourceFile: "@theotherwillembotha/node-red-plugincore"
|
|
8757
8804
|
}),
|
|
8758
|
-
__metadata("design:paramtypes", [
|
|
8759
|
-
],
|
|
8805
|
+
__metadata("design:paramtypes", [])
|
|
8806
|
+
], ConfigFragmentService);
|
|
8760
8807
|
}
|
|
8761
8808
|
});
|
|
8762
8809
|
|
|
8763
|
-
// ../nodered_plugincore/build/core/
|
|
8764
|
-
var
|
|
8765
|
-
"../nodered_plugincore/build/core/
|
|
8810
|
+
// ../nodered_plugincore/build/core/configfragment/template/ConfigFragmentTemplate.js
|
|
8811
|
+
var require_ConfigFragmentTemplate = __commonJS({
|
|
8812
|
+
"../nodered_plugincore/build/core/configfragment/template/ConfigFragmentTemplate.js"(exports2) {
|
|
8766
8813
|
"use strict";
|
|
8767
8814
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8768
8815
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8771,27 +8818,27 @@ var require_CounterMetricTemplate = __commonJS({
|
|
|
8771
8818
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8772
8819
|
};
|
|
8773
8820
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8774
|
-
exports2.
|
|
8821
|
+
exports2.ConfigFragmentTemplate = void 0;
|
|
8775
8822
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
8776
8823
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8777
8824
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8778
|
-
var
|
|
8779
|
-
var
|
|
8825
|
+
var ConfigFragmentService_1 = require_ConfigFragmentService();
|
|
8826
|
+
var ConfigFragmentTemplate = class ConfigFragmentTemplate extends NodeConstructor_1.Template {
|
|
8780
8827
|
};
|
|
8781
|
-
exports2.
|
|
8782
|
-
exports2.
|
|
8828
|
+
exports2.ConfigFragmentTemplate = ConfigFragmentTemplate;
|
|
8829
|
+
exports2.ConfigFragmentTemplate = ConfigFragmentTemplate = __decorate([
|
|
8783
8830
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8784
|
-
name: "
|
|
8785
|
-
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "
|
|
8786
|
-
dependencies: [
|
|
8831
|
+
name: "configfragment",
|
|
8832
|
+
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "ConfigFragmentTemplate.html",
|
|
8833
|
+
dependencies: [ConfigFragmentService_1.ConfigFragmentService]
|
|
8787
8834
|
})
|
|
8788
|
-
],
|
|
8835
|
+
], ConfigFragmentTemplate);
|
|
8789
8836
|
}
|
|
8790
8837
|
});
|
|
8791
8838
|
|
|
8792
|
-
// ../nodered_plugincore/build/core/metrics/
|
|
8793
|
-
var
|
|
8794
|
-
"../nodered_plugincore/build/core/metrics/
|
|
8839
|
+
// ../nodered_plugincore/build/core/metrics/template/CounterMetricTemplate.js
|
|
8840
|
+
var require_CounterMetricTemplate = __commonJS({
|
|
8841
|
+
"../nodered_plugincore/build/core/metrics/template/CounterMetricTemplate.js"(exports2) {
|
|
8795
8842
|
"use strict";
|
|
8796
8843
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8797
8844
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8799,59 +8846,24 @@ var require_GaugeMetricConfigNode = __commonJS({
|
|
|
8799
8846
|
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;
|
|
8800
8847
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8801
8848
|
};
|
|
8802
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
8803
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
8804
|
-
};
|
|
8805
8849
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8806
|
-
exports2.
|
|
8850
|
+
exports2.CounterMetricTemplate = void 0;
|
|
8851
|
+
var NodeGenerator_1 = require_NodeGenerator();
|
|
8807
8852
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8853
|
+
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8808
8854
|
var MetricsService_1 = require_MetricsService();
|
|
8809
|
-
var
|
|
8810
|
-
var
|
|
8811
|
-
var
|
|
8812
|
-
var GaugeMetricConfigNode = class GaugeMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
8813
|
-
constructor(node, config) {
|
|
8814
|
-
super(node, config);
|
|
8815
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
8816
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
8817
|
-
const gaugeConfig = {
|
|
8818
|
-
metricname: config.name,
|
|
8819
|
-
metricdescription: config.description,
|
|
8820
|
-
node: {
|
|
8821
|
-
id: this.id(),
|
|
8822
|
-
flow: this.flow(),
|
|
8823
|
-
type: this.type(),
|
|
8824
|
-
name: this.name()
|
|
8825
|
-
}
|
|
8826
|
-
};
|
|
8827
|
-
this._gauge = this._metrics.gauge(gaugeConfig);
|
|
8828
|
-
if (config.reset) {
|
|
8829
|
-
this._gauge.reset();
|
|
8830
|
-
}
|
|
8831
|
-
}
|
|
8832
|
-
metrics() {
|
|
8833
|
-
return this._metrics;
|
|
8834
|
-
}
|
|
8835
|
-
gauge() {
|
|
8836
|
-
return this._gauge;
|
|
8837
|
-
}
|
|
8855
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
8856
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
8857
|
+
var CounterMetricTemplate = class CounterMetricTemplate extends NodeConstructor_1.Template {
|
|
8838
8858
|
};
|
|
8839
|
-
exports2.
|
|
8840
|
-
exports2.
|
|
8841
|
-
(0,
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
templates: [
|
|
8848
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: {} }
|
|
8849
|
-
],
|
|
8850
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
8851
|
-
tags: ["Core", "Metric"]
|
|
8852
|
-
}),
|
|
8853
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
8854
|
-
], GaugeMetricConfigNode);
|
|
8859
|
+
exports2.CounterMetricTemplate = CounterMetricTemplate;
|
|
8860
|
+
exports2.CounterMetricTemplate = CounterMetricTemplate = __decorate([
|
|
8861
|
+
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8862
|
+
name: "countermetric",
|
|
8863
|
+
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "CounterMetricTemplate.html",
|
|
8864
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
8865
|
+
})
|
|
8866
|
+
], CounterMetricTemplate);
|
|
8855
8867
|
}
|
|
8856
8868
|
});
|
|
8857
8869
|
|
|
@@ -8870,7 +8882,9 @@ var require_GaugeMetricTemplate = __commonJS({
|
|
|
8870
8882
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
8871
8883
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8872
8884
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8873
|
-
var
|
|
8885
|
+
var MetricsService_1 = require_MetricsService();
|
|
8886
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
8887
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
8874
8888
|
var GaugeMetricTemplate = class GaugeMetricTemplate extends NodeConstructor_1.Template {
|
|
8875
8889
|
};
|
|
8876
8890
|
exports2.GaugeMetricTemplate = GaugeMetricTemplate;
|
|
@@ -8878,7 +8892,7 @@ var require_GaugeMetricTemplate = __commonJS({
|
|
|
8878
8892
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8879
8893
|
name: "gaugemetric",
|
|
8880
8894
|
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "GaugeMetricTemplate.html",
|
|
8881
|
-
dependencies: [
|
|
8895
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
8882
8896
|
})
|
|
8883
8897
|
], GaugeMetricTemplate);
|
|
8884
8898
|
}
|
|
@@ -8898,253 +8912,10 @@ var require_MetricsConfigNode = __commonJS({
|
|
|
8898
8912
|
MetricsService_1.MetricsService.register(config.id, { id: config.id }, () => this.createContainer({ id: config.id }));
|
|
8899
8913
|
}
|
|
8900
8914
|
metrics() {
|
|
8901
|
-
return MetricsService_1.MetricsService.get({ metricsEnabled: true, metricsReference: this.id() });
|
|
8902
|
-
}
|
|
8903
|
-
};
|
|
8904
|
-
exports2.MetricsConfigNode = MetricsConfigNode;
|
|
8905
|
-
}
|
|
8906
|
-
});
|
|
8907
|
-
|
|
8908
|
-
// ../nodered_plugincore/build/core/metrics/MetricsDecorator.js
|
|
8909
|
-
var require_MetricsDecorator = __commonJS({
|
|
8910
|
-
"../nodered_plugincore/build/core/metrics/MetricsDecorator.js"(exports2) {
|
|
8911
|
-
"use strict";
|
|
8912
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8913
|
-
exports2.MetricCollectorType = exports2.MetricType = void 0;
|
|
8914
|
-
exports2.Metrics = Metrics;
|
|
8915
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
8916
|
-
var MetricsService_1 = require_MetricsService();
|
|
8917
|
-
var MetricType;
|
|
8918
|
-
(function(MetricType2) {
|
|
8919
|
-
MetricType2["Counter"] = "Counter";
|
|
8920
|
-
MetricType2["Timer"] = "Timer";
|
|
8921
|
-
MetricType2["Gauge"] = "Gauge";
|
|
8922
|
-
})(MetricType || (exports2.MetricType = MetricType = {}));
|
|
8923
|
-
var MetricCollectorType;
|
|
8924
|
-
(function(MetricCollectorType2) {
|
|
8925
|
-
MetricCollectorType2["histogram"] = "histogram";
|
|
8926
|
-
MetricCollectorType2["summary"] = "summary";
|
|
8927
|
-
})(MetricCollectorType || (exports2.MetricCollectorType = MetricCollectorType = {}));
|
|
8928
|
-
function resolveMetric(node, metricsConfig, _metrics) {
|
|
8929
|
-
const nde = {
|
|
8930
|
-
id: node.id(),
|
|
8931
|
-
name: node.name(),
|
|
8932
|
-
flow: node.flow(),
|
|
8933
|
-
type: node.type()
|
|
8934
|
-
};
|
|
8935
|
-
if (metricsConfig.type === MetricType.Counter) {
|
|
8936
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Counter)) {
|
|
8937
|
-
console.warn(`[PluginCore] @Metrics Counter requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Counter. Using DoNothing.`);
|
|
8938
|
-
}
|
|
8939
|
-
const counterConfig = {
|
|
8940
|
-
metricname: metricsConfig.name,
|
|
8941
|
-
metricdescription: metricsConfig.description,
|
|
8942
|
-
node: nde
|
|
8943
|
-
};
|
|
8944
|
-
return _metrics.counter(counterConfig);
|
|
8945
|
-
}
|
|
8946
|
-
if (metricsConfig.type === MetricType.Gauge) {
|
|
8947
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Gauge)) {
|
|
8948
|
-
console.warn(`[PluginCore] @Metrics Gauge requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Gauge. Using DoNothing.`);
|
|
8949
|
-
}
|
|
8950
|
-
const gaugeConfig = {
|
|
8951
|
-
metricname: metricsConfig.name,
|
|
8952
|
-
metricdescription: metricsConfig.description,
|
|
8953
|
-
node: nde
|
|
8954
|
-
};
|
|
8955
|
-
return _metrics.gauge(gaugeConfig);
|
|
8956
|
-
}
|
|
8957
|
-
if (metricsConfig.type === MetricType.Timer) {
|
|
8958
|
-
if (metricsConfig.collector === MetricCollectorType.histogram) {
|
|
8959
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Histogram)) {
|
|
8960
|
-
console.warn(`[PluginCore] @Metrics Histogram requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Histogram. Using DoNothing.`);
|
|
8961
|
-
}
|
|
8962
|
-
if (metricsConfig.buckettype === MetricsService_1.BucketType.default) {
|
|
8963
|
-
const histogramConfig = {
|
|
8964
|
-
metricname: metricsConfig.name,
|
|
8965
|
-
metricdescription: metricsConfig.description,
|
|
8966
|
-
buckettype: metricsConfig.buckettype,
|
|
8967
|
-
bucketconfig: {},
|
|
8968
|
-
node: nde
|
|
8969
|
-
};
|
|
8970
|
-
return _metrics.histogram(histogramConfig);
|
|
8971
|
-
}
|
|
8972
|
-
}
|
|
8973
|
-
if (metricsConfig.collector === MetricCollectorType.summary) {
|
|
8974
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Summary)) {
|
|
8975
|
-
console.warn(`[PluginCore] @Metrics Summary requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Summary. Using DoNothing.`);
|
|
8976
|
-
}
|
|
8977
|
-
}
|
|
8978
|
-
}
|
|
8979
|
-
console.error("[PluginCore] @Metrics: no factory matched for config", metricsConfig);
|
|
8980
|
-
return void 0;
|
|
8981
|
-
}
|
|
8982
|
-
function resolveContainer(metricsReference) {
|
|
8983
|
-
if (!metricsReference)
|
|
8984
|
-
return new MetricsService_1.DoNothingMetricsContainer();
|
|
8985
|
-
const refNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(metricsReference);
|
|
8986
|
-
return refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
8987
|
-
}
|
|
8988
|
-
function dudForType(metricsConfig) {
|
|
8989
|
-
if (metricsConfig.type === MetricType.Counter)
|
|
8990
|
-
return new MetricsService_1.DoNothingCounterMetric();
|
|
8991
|
-
if (metricsConfig.type === MetricType.Gauge)
|
|
8992
|
-
return new MetricsService_1.DoNothingGaugeMetric();
|
|
8993
|
-
if (metricsConfig.type === MetricType.Timer) {
|
|
8994
|
-
if (metricsConfig.collector === MetricCollectorType.histogram)
|
|
8995
|
-
return new MetricsService_1.DoNothingHistogramMetric();
|
|
8996
|
-
if (metricsConfig.collector === MetricCollectorType.summary)
|
|
8997
|
-
return new MetricsService_1.DoNothingSummaryMetric();
|
|
8998
|
-
}
|
|
8999
|
-
return void 0;
|
|
9000
|
-
}
|
|
9001
|
-
function Metrics(metricsConfig) {
|
|
9002
|
-
return function(target, propertyKey) {
|
|
9003
|
-
if (typeof propertyKey === "string") {
|
|
9004
|
-
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
9005
|
-
Object.defineProperty(target, propertyKey, {
|
|
9006
|
-
get: function() {
|
|
9007
|
-
if (this[valueSymbol])
|
|
9008
|
-
return this[valueSymbol];
|
|
9009
|
-
const node = this;
|
|
9010
|
-
const config = node.config();
|
|
9011
|
-
if (config.metricsEnabled) {
|
|
9012
|
-
const _metrics = resolveContainer(config.metricsReference);
|
|
9013
|
-
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
9014
|
-
} else {
|
|
9015
|
-
this[valueSymbol] = dudForType(metricsConfig);
|
|
9016
|
-
}
|
|
9017
|
-
return this[valueSymbol];
|
|
9018
|
-
},
|
|
9019
|
-
enumerable: true,
|
|
9020
|
-
configurable: false
|
|
9021
|
-
});
|
|
9022
|
-
} else {
|
|
9023
|
-
let property = propertyKey;
|
|
9024
|
-
property.addInitializer(function() {
|
|
9025
|
-
const node = this;
|
|
9026
|
-
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
9027
|
-
Object.defineProperty(node, property.name, {
|
|
9028
|
-
get: function() {
|
|
9029
|
-
if (this[valueSymbol])
|
|
9030
|
-
return this[valueSymbol];
|
|
9031
|
-
const config = node.config();
|
|
9032
|
-
if (config.metricsEnabled) {
|
|
9033
|
-
const _metrics = resolveContainer(config.metricsReference);
|
|
9034
|
-
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
9035
|
-
} else {
|
|
9036
|
-
this[valueSymbol] = dudForType(metricsConfig);
|
|
9037
|
-
}
|
|
9038
|
-
return this[valueSymbol];
|
|
9039
|
-
},
|
|
9040
|
-
enumerable: true,
|
|
9041
|
-
configurable: false
|
|
9042
|
-
});
|
|
9043
|
-
});
|
|
9044
|
-
}
|
|
9045
|
-
};
|
|
9046
|
-
}
|
|
9047
|
-
}
|
|
9048
|
-
});
|
|
9049
|
-
|
|
9050
|
-
// ../nodered_plugincore/build/core/metrics/node/TimerMetricConfigNode.js
|
|
9051
|
-
var require_TimerMetricConfigNode = __commonJS({
|
|
9052
|
-
"../nodered_plugincore/build/core/metrics/node/TimerMetricConfigNode.js"(exports2) {
|
|
9053
|
-
"use strict";
|
|
9054
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9055
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9056
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9057
|
-
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;
|
|
9058
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9059
|
-
};
|
|
9060
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
9061
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9062
|
-
};
|
|
9063
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9064
|
-
exports2.TimerMetricConfigNode = void 0;
|
|
9065
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9066
|
-
var MetricsService_1 = require_MetricsService();
|
|
9067
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9068
|
-
var MetricsTemplate_1 = require_MetricsTemplate();
|
|
9069
|
-
var MetricsDecorator_1 = require_MetricsDecorator();
|
|
9070
|
-
var NodeDescriptionDecorator_1 = require_NodeDescriptionDecorator();
|
|
9071
|
-
var TimerMetricConfigNode = class TimerMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
9072
|
-
constructor(node, config) {
|
|
9073
|
-
super(node, config);
|
|
9074
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
9075
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
9076
|
-
const bucketConfig = {};
|
|
9077
|
-
switch (config.buckettype) {
|
|
9078
|
-
case MetricsService_1.BucketType.manual:
|
|
9079
|
-
bucketConfig.intervals = config.buckettype_manual_intervals.split(",").map((i) => Number.parseFloat(i.trim()));
|
|
9080
|
-
break;
|
|
9081
|
-
case MetricsService_1.BucketType.linear:
|
|
9082
|
-
bucketConfig.start = config.buckettype_linear_start;
|
|
9083
|
-
bucketConfig.interval = config.buckettype_linear_interval;
|
|
9084
|
-
bucketConfig.count = config.buckettype_linear_count;
|
|
9085
|
-
break;
|
|
9086
|
-
case MetricsService_1.BucketType.exponential:
|
|
9087
|
-
bucketConfig.start = config.buckettype_exponential_start;
|
|
9088
|
-
bucketConfig.factor = config.buckettype_exponential_factor;
|
|
9089
|
-
bucketConfig.count = config.buckettype_exponential_count;
|
|
9090
|
-
break;
|
|
9091
|
-
default:
|
|
9092
|
-
break;
|
|
9093
|
-
}
|
|
9094
|
-
if (config.metricType === MetricsDecorator_1.MetricCollectorType.histogram) {
|
|
9095
|
-
const timerConfig = {
|
|
9096
|
-
node: {
|
|
9097
|
-
id: this.id(),
|
|
9098
|
-
name: this.name(),
|
|
9099
|
-
flow: this.flow(),
|
|
9100
|
-
type: this.type()
|
|
9101
|
-
},
|
|
9102
|
-
buckettype: config.buckettype,
|
|
9103
|
-
bucketconfig: bucketConfig,
|
|
9104
|
-
metricname: config.name,
|
|
9105
|
-
metricdescription: config.description
|
|
9106
|
-
};
|
|
9107
|
-
this._timer = this._metrics.histogram(timerConfig);
|
|
9108
|
-
}
|
|
9109
|
-
if (config.metricType === MetricsDecorator_1.MetricCollectorType.summary) {
|
|
9110
|
-
const timerConfig = {
|
|
9111
|
-
node: {
|
|
9112
|
-
id: this.id(),
|
|
9113
|
-
name: this.name(),
|
|
9114
|
-
flow: this.flow(),
|
|
9115
|
-
type: this.type()
|
|
9116
|
-
},
|
|
9117
|
-
percentileType: config.percentiletype,
|
|
9118
|
-
percentileConfig: config.percentiletype_manual_intervals,
|
|
9119
|
-
metricname: config.name,
|
|
9120
|
-
metricdescription: config.description
|
|
9121
|
-
};
|
|
9122
|
-
this._timer = this._metrics.summary(timerConfig);
|
|
9123
|
-
}
|
|
9124
|
-
}
|
|
9125
|
-
metrics() {
|
|
9126
|
-
return this._metrics;
|
|
9127
|
-
}
|
|
9128
|
-
timer() {
|
|
9129
|
-
return this._timer;
|
|
9130
|
-
}
|
|
9131
|
-
};
|
|
9132
|
-
exports2.TimerMetricConfigNode = TimerMetricConfigNode;
|
|
9133
|
-
exports2.TimerMetricConfigNode = TimerMetricConfigNode = __decorate([
|
|
9134
|
-
(0, NodeDescriptionDecorator_1.NodeDescription)({
|
|
9135
|
-
id: "TimerMetricConfigNode",
|
|
9136
|
-
name: "Timer Metric Config Node",
|
|
9137
|
-
group: "config",
|
|
9138
|
-
sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "TimerMetricConfigNode.html",
|
|
9139
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
9140
|
-
templates: [
|
|
9141
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: { isConfigNode: true } }
|
|
9142
|
-
],
|
|
9143
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
9144
|
-
tags: ["Core", "Metric"]
|
|
9145
|
-
}),
|
|
9146
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
9147
|
-
], TimerMetricConfigNode);
|
|
8915
|
+
return MetricsService_1.MetricsService.get({ metricsEnabled: true, metricsReference: this.id() });
|
|
8916
|
+
}
|
|
8917
|
+
};
|
|
8918
|
+
exports2.MetricsConfigNode = MetricsConfigNode;
|
|
9148
8919
|
}
|
|
9149
8920
|
});
|
|
9150
8921
|
|
|
@@ -9163,7 +8934,9 @@ var require_TimerMetricTemplate = __commonJS({
|
|
|
9163
8934
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
9164
8935
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
9165
8936
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9166
|
-
var
|
|
8937
|
+
var MetricsService_1 = require_MetricsService();
|
|
8938
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
8939
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
9167
8940
|
var TimerMetricTemplate = class TimerMetricTemplate extends NodeConstructor_1.Template {
|
|
9168
8941
|
};
|
|
9169
8942
|
exports2.TimerMetricTemplate = TimerMetricTemplate;
|
|
@@ -9171,7 +8944,7 @@ var require_TimerMetricTemplate = __commonJS({
|
|
|
9171
8944
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9172
8945
|
name: "timermetric",
|
|
9173
8946
|
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "TimerMetricTemplate.html",
|
|
9174
|
-
dependencies: [
|
|
8947
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
9175
8948
|
})
|
|
9176
8949
|
], TimerMetricTemplate);
|
|
9177
8950
|
}
|
|
@@ -9622,16 +9395,53 @@ var require_UIHelperTemplate = __commonJS({
|
|
|
9622
9395
|
var require_ScriptEditorTemplate = __commonJS({
|
|
9623
9396
|
"../nodered_plugincore/build/core/ui/template/ScriptEditorTemplate.js"(exports2) {
|
|
9624
9397
|
"use strict";
|
|
9398
|
+
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
9399
|
+
if (k2 === void 0) k2 = k;
|
|
9400
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9401
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9402
|
+
desc = { enumerable: true, get: function() {
|
|
9403
|
+
return m[k];
|
|
9404
|
+
} };
|
|
9405
|
+
}
|
|
9406
|
+
Object.defineProperty(o, k2, desc);
|
|
9407
|
+
}) : (function(o, m, k, k2) {
|
|
9408
|
+
if (k2 === void 0) k2 = k;
|
|
9409
|
+
o[k2] = m[k];
|
|
9410
|
+
}));
|
|
9411
|
+
var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) {
|
|
9412
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
9413
|
+
}) : function(o, v) {
|
|
9414
|
+
o["default"] = v;
|
|
9415
|
+
});
|
|
9625
9416
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9626
9417
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9627
9418
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9628
9419
|
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;
|
|
9629
9420
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9630
9421
|
};
|
|
9422
|
+
var __importStar = exports2 && exports2.__importStar || /* @__PURE__ */ (function() {
|
|
9423
|
+
var ownKeys = function(o) {
|
|
9424
|
+
ownKeys = Object.getOwnPropertyNames || function(o2) {
|
|
9425
|
+
var ar = [];
|
|
9426
|
+
for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k;
|
|
9427
|
+
return ar;
|
|
9428
|
+
};
|
|
9429
|
+
return ownKeys(o);
|
|
9430
|
+
};
|
|
9431
|
+
return function(mod) {
|
|
9432
|
+
if (mod && mod.__esModule) return mod;
|
|
9433
|
+
var result = {};
|
|
9434
|
+
if (mod != null) {
|
|
9435
|
+
for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
9436
|
+
}
|
|
9437
|
+
__setModuleDefault(result, mod);
|
|
9438
|
+
return result;
|
|
9439
|
+
};
|
|
9440
|
+
})();
|
|
9631
9441
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9632
9442
|
exports2.ScriptEditorTemplate = void 0;
|
|
9443
|
+
var path = __importStar(require("path"));
|
|
9633
9444
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
9634
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9635
9445
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9636
9446
|
var ScriptEditorTemplate = class ScriptEditorTemplate extends NodeConstructor_1.Template {
|
|
9637
9447
|
};
|
|
@@ -9639,7 +9449,7 @@ var require_ScriptEditorTemplate = __commonJS({
|
|
|
9639
9449
|
exports2.ScriptEditorTemplate = ScriptEditorTemplate = __decorate([
|
|
9640
9450
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9641
9451
|
name: "script-editor",
|
|
9642
|
-
templateFile:
|
|
9452
|
+
templateFile: path.join(__dirname, "ScriptEditorTemplate.html")
|
|
9643
9453
|
})
|
|
9644
9454
|
], ScriptEditorTemplate);
|
|
9645
9455
|
}
|
|
@@ -9682,93 +9492,6 @@ var require_InputService = __commonJS({
|
|
|
9682
9492
|
}
|
|
9683
9493
|
});
|
|
9684
9494
|
|
|
9685
|
-
// ../nodered_plugincore/build/core/other/service/SettingsService.js
|
|
9686
|
-
var require_SettingsService = __commonJS({
|
|
9687
|
-
"../nodered_plugincore/build/core/other/service/SettingsService.js"(exports2) {
|
|
9688
|
-
"use strict";
|
|
9689
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9690
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9691
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9692
|
-
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;
|
|
9693
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9694
|
-
};
|
|
9695
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
9696
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9697
|
-
};
|
|
9698
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9699
|
-
exports2.Settings = exports2.SettingsService = void 0;
|
|
9700
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9701
|
-
var ServiceDescriptionDecorator_1 = require_ServiceDescriptionDecorator();
|
|
9702
|
-
var SettingsService = class SettingsService extends NodeConstructor_1.BaseService {
|
|
9703
|
-
static create(node, config) {
|
|
9704
|
-
let settings = NodeConstructor_1.NodeManager.RED.settings.get("NodeSettings_" + config.id);
|
|
9705
|
-
if (settings === void 0) {
|
|
9706
|
-
settings = {};
|
|
9707
|
-
}
|
|
9708
|
-
return new Settings(settings, config);
|
|
9709
|
-
}
|
|
9710
|
-
constructor() {
|
|
9711
|
-
super("SettingsService");
|
|
9712
|
-
}
|
|
9713
|
-
init(red) {
|
|
9714
|
-
red.httpAdmin.post("/utils/getNodeSettings", red.auth.needsPermission("inject.write"), async function(request, response) {
|
|
9715
|
-
let config = request.body;
|
|
9716
|
-
let settings = red.settings.get("NodeSettings_" + config.nodeId);
|
|
9717
|
-
response.send({
|
|
9718
|
-
status: "ok",
|
|
9719
|
-
settings
|
|
9720
|
-
});
|
|
9721
|
-
});
|
|
9722
|
-
}
|
|
9723
|
-
deinit(red) {
|
|
9724
|
-
red.httpAdmin.post("/utils/getNodeSettings", red.auth.needsPermission("inject.write"), async function(request, response) {
|
|
9725
|
-
response.status(404);
|
|
9726
|
-
});
|
|
9727
|
-
}
|
|
9728
|
-
};
|
|
9729
|
-
exports2.SettingsService = SettingsService;
|
|
9730
|
-
exports2.SettingsService = SettingsService = __decorate([
|
|
9731
|
-
(0, ServiceDescriptionDecorator_1.ServiceDescription)({
|
|
9732
|
-
id: "@theotherwillembotha/settingsservice",
|
|
9733
|
-
sourceFile: "@theotherwillembotha/node-red-plugincore"
|
|
9734
|
-
}),
|
|
9735
|
-
__metadata("design:paramtypes", [])
|
|
9736
|
-
], SettingsService);
|
|
9737
|
-
var Settings = class {
|
|
9738
|
-
constructor(settings, config) {
|
|
9739
|
-
this._settings = settings;
|
|
9740
|
-
this._config = config;
|
|
9741
|
-
if (!this.hasChanged()) {
|
|
9742
|
-
Object.keys(this._settings).forEach((key) => this._config[key] = this._settings[key]);
|
|
9743
|
-
}
|
|
9744
|
-
}
|
|
9745
|
-
value(key) {
|
|
9746
|
-
return this._settings[key];
|
|
9747
|
-
}
|
|
9748
|
-
values() {
|
|
9749
|
-
return this._settings;
|
|
9750
|
-
}
|
|
9751
|
-
update(key, value) {
|
|
9752
|
-
this._settings[key] = value;
|
|
9753
|
-
}
|
|
9754
|
-
updateAll(value) {
|
|
9755
|
-
this._settings = value;
|
|
9756
|
-
}
|
|
9757
|
-
// the settings are considdered changed if the settingsTimestamp value is different;
|
|
9758
|
-
hasChanged() {
|
|
9759
|
-
return this._settings.settingsTimestamp !== this._config.settingsTimestamp;
|
|
9760
|
-
}
|
|
9761
|
-
persist() {
|
|
9762
|
-
NodeConstructor_1.NodeManager.RED.settings.set("NodeSettings_" + this._config.id, this._settings);
|
|
9763
|
-
}
|
|
9764
|
-
delete() {
|
|
9765
|
-
NodeConstructor_1.NodeManager.RED.settings.delete("NodeSettings_" + this._config.id);
|
|
9766
|
-
}
|
|
9767
|
-
};
|
|
9768
|
-
exports2.Settings = Settings;
|
|
9769
|
-
}
|
|
9770
|
-
});
|
|
9771
|
-
|
|
9772
9495
|
// ../nodered_plugincore/build/core/other/template/BasicTemplate.js
|
|
9773
9496
|
var require_BasicTemplate = __commonJS({
|
|
9774
9497
|
"../nodered_plugincore/build/core/other/template/BasicTemplate.js"(exports2) {
|
|
@@ -9796,35 +9519,6 @@ var require_BasicTemplate = __commonJS({
|
|
|
9796
9519
|
}
|
|
9797
9520
|
});
|
|
9798
9521
|
|
|
9799
|
-
// ../nodered_plugincore/build/core/other/template/SettingsTemplate.js
|
|
9800
|
-
var require_SettingsTemplate = __commonJS({
|
|
9801
|
-
"../nodered_plugincore/build/core/other/template/SettingsTemplate.js"(exports2) {
|
|
9802
|
-
"use strict";
|
|
9803
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9804
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9805
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9806
|
-
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;
|
|
9807
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9808
|
-
};
|
|
9809
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9810
|
-
exports2.SettingsTemplate = void 0;
|
|
9811
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9812
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9813
|
-
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9814
|
-
var SettingsService_1 = require_SettingsService();
|
|
9815
|
-
var SettingsTemplate = class SettingsTemplate extends NodeConstructor_1.Template {
|
|
9816
|
-
};
|
|
9817
|
-
exports2.SettingsTemplate = SettingsTemplate;
|
|
9818
|
-
exports2.SettingsTemplate = SettingsTemplate = __decorate([
|
|
9819
|
-
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9820
|
-
name: "settings",
|
|
9821
|
-
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "SettingsTemplate.html",
|
|
9822
|
-
dependencies: [SettingsService_1.SettingsService]
|
|
9823
|
-
})
|
|
9824
|
-
], SettingsTemplate);
|
|
9825
|
-
}
|
|
9826
|
-
});
|
|
9827
|
-
|
|
9828
9522
|
// ../nodered_plugincore/node_modules/ms/index.js
|
|
9829
9523
|
var require_ms = __commonJS({
|
|
9830
9524
|
"../nodered_plugincore/node_modules/ms/index.js"(exports2, module2) {
|
|
@@ -33901,6 +33595,148 @@ var require_LoggerDecorator = __commonJS({
|
|
|
33901
33595
|
}
|
|
33902
33596
|
});
|
|
33903
33597
|
|
|
33598
|
+
// ../nodered_plugincore/build/core/metrics/MetricsDecorator.js
|
|
33599
|
+
var require_MetricsDecorator = __commonJS({
|
|
33600
|
+
"../nodered_plugincore/build/core/metrics/MetricsDecorator.js"(exports2) {
|
|
33601
|
+
"use strict";
|
|
33602
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
33603
|
+
exports2.MetricCollectorType = exports2.MetricType = void 0;
|
|
33604
|
+
exports2.Metrics = Metrics;
|
|
33605
|
+
var NodeConstructor_1 = require_NodeConstructor();
|
|
33606
|
+
var MetricsService_1 = require_MetricsService();
|
|
33607
|
+
var MetricType;
|
|
33608
|
+
(function(MetricType2) {
|
|
33609
|
+
MetricType2["Counter"] = "Counter";
|
|
33610
|
+
MetricType2["Timer"] = "Timer";
|
|
33611
|
+
MetricType2["Gauge"] = "Gauge";
|
|
33612
|
+
})(MetricType || (exports2.MetricType = MetricType = {}));
|
|
33613
|
+
var MetricCollectorType;
|
|
33614
|
+
(function(MetricCollectorType2) {
|
|
33615
|
+
MetricCollectorType2["histogram"] = "histogram";
|
|
33616
|
+
MetricCollectorType2["summary"] = "summary";
|
|
33617
|
+
})(MetricCollectorType || (exports2.MetricCollectorType = MetricCollectorType = {}));
|
|
33618
|
+
function resolveMetric(node, metricsConfig, _metrics) {
|
|
33619
|
+
const baseConfig = {
|
|
33620
|
+
id: `${node.id()}_${metricsConfig.name}`,
|
|
33621
|
+
flow: node.flow(),
|
|
33622
|
+
name: node.name(),
|
|
33623
|
+
description: metricsConfig.description || void 0
|
|
33624
|
+
};
|
|
33625
|
+
if (metricsConfig.type === MetricType.Counter) {
|
|
33626
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Counter)) {
|
|
33627
|
+
console.warn(`[PluginCore] @Metrics Counter requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Counter. Using DoNothing.`);
|
|
33628
|
+
}
|
|
33629
|
+
const counterConfig = {
|
|
33630
|
+
...baseConfig,
|
|
33631
|
+
type: node.type(),
|
|
33632
|
+
metric: metricsConfig.name
|
|
33633
|
+
};
|
|
33634
|
+
return _metrics.counter(counterConfig);
|
|
33635
|
+
}
|
|
33636
|
+
if (metricsConfig.type === MetricType.Gauge) {
|
|
33637
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Gauge)) {
|
|
33638
|
+
console.warn(`[PluginCore] @Metrics Gauge requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Gauge. Using DoNothing.`);
|
|
33639
|
+
}
|
|
33640
|
+
const gaugeConfig = {
|
|
33641
|
+
...baseConfig,
|
|
33642
|
+
type: node.type(),
|
|
33643
|
+
metric: metricsConfig.name
|
|
33644
|
+
};
|
|
33645
|
+
return _metrics.gauge(gaugeConfig);
|
|
33646
|
+
}
|
|
33647
|
+
if (metricsConfig.type === MetricType.Timer) {
|
|
33648
|
+
if (metricsConfig.collector === MetricCollectorType.histogram) {
|
|
33649
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Histogram)) {
|
|
33650
|
+
console.warn(`[PluginCore] @Metrics Histogram requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Histogram. Using DoNothing.`);
|
|
33651
|
+
}
|
|
33652
|
+
if (metricsConfig.buckettype === MetricsService_1.BucketType.default) {
|
|
33653
|
+
const histogramConfig = {
|
|
33654
|
+
...baseConfig,
|
|
33655
|
+
type: node.type(),
|
|
33656
|
+
metric: metricsConfig.name,
|
|
33657
|
+
buckettype: metricsConfig.buckettype,
|
|
33658
|
+
bucketconfig: {}
|
|
33659
|
+
};
|
|
33660
|
+
return _metrics.histogram(histogramConfig);
|
|
33661
|
+
}
|
|
33662
|
+
}
|
|
33663
|
+
if (metricsConfig.collector === MetricCollectorType.summary) {
|
|
33664
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Summary)) {
|
|
33665
|
+
console.warn(`[PluginCore] @Metrics Summary requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Summary. Using DoNothing.`);
|
|
33666
|
+
}
|
|
33667
|
+
}
|
|
33668
|
+
}
|
|
33669
|
+
console.error("[PluginCore] @Metrics: no factory matched for config", metricsConfig);
|
|
33670
|
+
return void 0;
|
|
33671
|
+
}
|
|
33672
|
+
function resolveContainer(metricsReference) {
|
|
33673
|
+
if (!metricsReference)
|
|
33674
|
+
return new MetricsService_1.DoNothingMetricsContainer();
|
|
33675
|
+
const refNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(metricsReference);
|
|
33676
|
+
return refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
33677
|
+
}
|
|
33678
|
+
function dudForType(metricsConfig) {
|
|
33679
|
+
if (metricsConfig.type === MetricType.Counter)
|
|
33680
|
+
return new MetricsService_1.DoNothingCounterMetric();
|
|
33681
|
+
if (metricsConfig.type === MetricType.Gauge)
|
|
33682
|
+
return new MetricsService_1.DoNothingGaugeMetric();
|
|
33683
|
+
if (metricsConfig.type === MetricType.Timer) {
|
|
33684
|
+
if (metricsConfig.collector === MetricCollectorType.histogram)
|
|
33685
|
+
return new MetricsService_1.DoNothingHistogramMetric();
|
|
33686
|
+
if (metricsConfig.collector === MetricCollectorType.summary)
|
|
33687
|
+
return new MetricsService_1.DoNothingSummaryMetric();
|
|
33688
|
+
}
|
|
33689
|
+
return void 0;
|
|
33690
|
+
}
|
|
33691
|
+
function Metrics(metricsConfig) {
|
|
33692
|
+
return function(target, propertyKey) {
|
|
33693
|
+
if (typeof propertyKey === "string") {
|
|
33694
|
+
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
33695
|
+
Object.defineProperty(target, propertyKey, {
|
|
33696
|
+
get: function() {
|
|
33697
|
+
if (this[valueSymbol])
|
|
33698
|
+
return this[valueSymbol];
|
|
33699
|
+
const node = this;
|
|
33700
|
+
const config = node.config();
|
|
33701
|
+
if (config.metricsEnabled) {
|
|
33702
|
+
const _metrics = resolveContainer(config.metricsReference);
|
|
33703
|
+
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
33704
|
+
} else {
|
|
33705
|
+
this[valueSymbol] = dudForType(metricsConfig);
|
|
33706
|
+
}
|
|
33707
|
+
return this[valueSymbol];
|
|
33708
|
+
},
|
|
33709
|
+
enumerable: true,
|
|
33710
|
+
configurable: false
|
|
33711
|
+
});
|
|
33712
|
+
} else {
|
|
33713
|
+
let property = propertyKey;
|
|
33714
|
+
property.addInitializer(function() {
|
|
33715
|
+
const node = this;
|
|
33716
|
+
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
33717
|
+
Object.defineProperty(node, property.name, {
|
|
33718
|
+
get: function() {
|
|
33719
|
+
if (this[valueSymbol])
|
|
33720
|
+
return this[valueSymbol];
|
|
33721
|
+
const config = node.config();
|
|
33722
|
+
if (config.metricsEnabled) {
|
|
33723
|
+
const _metrics = resolveContainer(config.metricsReference);
|
|
33724
|
+
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
33725
|
+
} else {
|
|
33726
|
+
this[valueSymbol] = dudForType(metricsConfig);
|
|
33727
|
+
}
|
|
33728
|
+
return this[valueSymbol];
|
|
33729
|
+
},
|
|
33730
|
+
enumerable: true,
|
|
33731
|
+
configurable: false
|
|
33732
|
+
});
|
|
33733
|
+
});
|
|
33734
|
+
}
|
|
33735
|
+
};
|
|
33736
|
+
}
|
|
33737
|
+
}
|
|
33738
|
+
});
|
|
33739
|
+
|
|
33904
33740
|
// ../nodered_plugincore/build/core/webhook/WebhookDecorator.js
|
|
33905
33741
|
var require_WebhookDecorator = __commonJS({
|
|
33906
33742
|
"../nodered_plugincore/build/core/webhook/WebhookDecorator.js"(exports2) {
|
|
@@ -33915,6 +33751,72 @@ var require_WebhookDecorator = __commonJS({
|
|
|
33915
33751
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
33916
33752
|
var ReverseProxyTypeService_1 = require_ReverseProxyTypeService();
|
|
33917
33753
|
var managedProxyHosts = /* @__PURE__ */ new Map();
|
|
33754
|
+
var PROXY_RETRY_ATTEMPTS = 5;
|
|
33755
|
+
var PROXY_RETRY_INTERVAL_MS = 2e3;
|
|
33756
|
+
function delay(ms) {
|
|
33757
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
33758
|
+
}
|
|
33759
|
+
function resolveProxyNode(proxyId) {
|
|
33760
|
+
let rawNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(proxyId);
|
|
33761
|
+
return rawNode ? rawNode.node() : null;
|
|
33762
|
+
}
|
|
33763
|
+
async function resolveProxyNodeWithRetry(proxyId) {
|
|
33764
|
+
for (let attempt = 1; attempt <= PROXY_RETRY_ATTEMPTS; attempt++) {
|
|
33765
|
+
let resolved = resolveProxyNode(proxyId);
|
|
33766
|
+
if (resolved)
|
|
33767
|
+
return resolved;
|
|
33768
|
+
if (attempt < PROXY_RETRY_ATTEMPTS) {
|
|
33769
|
+
console.warn(`Reverse proxy config node "${proxyId}" not available yet (attempt ${attempt}/${PROXY_RETRY_ATTEMPTS}), retrying in ${PROXY_RETRY_INTERVAL_MS}ms...`);
|
|
33770
|
+
await delay(PROXY_RETRY_INTERVAL_MS);
|
|
33771
|
+
}
|
|
33772
|
+
}
|
|
33773
|
+
console.error(`Reverse proxy config node "${proxyId}" not available after ${PROXY_RETRY_ATTEMPTS} attempts \u2014 giving up.`);
|
|
33774
|
+
return null;
|
|
33775
|
+
}
|
|
33776
|
+
async function setupReverseProxies(nodeConfig, webhookServer) {
|
|
33777
|
+
let targetPort = webhookServer.config().port;
|
|
33778
|
+
let targetHost = os_1.default.hostname();
|
|
33779
|
+
let nodeId = nodeConfig.id;
|
|
33780
|
+
let newlyManaged = [];
|
|
33781
|
+
await Promise.all(nodeConfig.reverseProxies_connections.map(async (proxy) => {
|
|
33782
|
+
try {
|
|
33783
|
+
let reverseProxyNode = await resolveProxyNodeWithRetry(proxy.proxy);
|
|
33784
|
+
if (!reverseProxyNode)
|
|
33785
|
+
return;
|
|
33786
|
+
let proxyClient = reverseProxyNode.client();
|
|
33787
|
+
let hosts = await proxyClient.getHosts();
|
|
33788
|
+
let matchingHost = hosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33789
|
+
if (!matchingHost) {
|
|
33790
|
+
await proxyClient.updateHost({ domainNames: [proxy.domainname], forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33791
|
+
let updatedHosts = await proxyClient.getHosts();
|
|
33792
|
+
matchingHost = updatedHosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33793
|
+
} else if (matchingHost.forwardHost !== targetHost || matchingHost.forwardPort !== targetPort) {
|
|
33794
|
+
await proxyClient.updateHost({ id: matchingHost.id, forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33795
|
+
}
|
|
33796
|
+
if (matchingHost?.id !== void 0) {
|
|
33797
|
+
newlyManaged.push({ proxyNodeId: proxy.proxy, hostId: matchingHost.id });
|
|
33798
|
+
}
|
|
33799
|
+
} catch (e) {
|
|
33800
|
+
console.error(e);
|
|
33801
|
+
}
|
|
33802
|
+
}));
|
|
33803
|
+
let previouslyManaged = managedProxyHosts.get(nodeId) ?? [];
|
|
33804
|
+
let newHostIds = new Set(newlyManaged.map((m) => m.hostId));
|
|
33805
|
+
await Promise.all(previouslyManaged.filter((m) => !newHostIds.has(m.hostId)).map(async (stale) => {
|
|
33806
|
+
try {
|
|
33807
|
+
let reverseProxyNode = resolveProxyNode(stale.proxyNodeId);
|
|
33808
|
+
if (!reverseProxyNode) {
|
|
33809
|
+
console.warn(`Stale reverse proxy config node "${stale.proxyNodeId}" not found \u2014 skipping cleanup.`);
|
|
33810
|
+
return;
|
|
33811
|
+
}
|
|
33812
|
+
let proxyClient = reverseProxyNode.client();
|
|
33813
|
+
await proxyClient.deleteHost(stale.hostId);
|
|
33814
|
+
} catch (e) {
|
|
33815
|
+
console.error(e);
|
|
33816
|
+
}
|
|
33817
|
+
}));
|
|
33818
|
+
managedProxyHosts.set(nodeId, newlyManaged);
|
|
33819
|
+
}
|
|
33918
33820
|
var Webhook = (0, NodeConstructor_1.createPostConstructDecorator)("Webhook").withInitLogic(async (instance, propertyKey, webhookconfig) => {
|
|
33919
33821
|
let node = instance;
|
|
33920
33822
|
let nodeConfig = node.config();
|
|
@@ -33927,42 +33829,7 @@ var require_WebhookDecorator = __commonJS({
|
|
|
33927
33829
|
let webhookServer = NodeConstructor_1.NodeManager.RED.nodes.getNode(nodeConfig.webhook).node().server();
|
|
33928
33830
|
webhookServer.attach(endpointConfig, (request, respponse) => instance[propertyKey](request, respponse));
|
|
33929
33831
|
if (nodeConfig.reverseProxies_enabled) {
|
|
33930
|
-
|
|
33931
|
-
let targetHost = os_1.default.hostname();
|
|
33932
|
-
let nodeId = nodeConfig.id;
|
|
33933
|
-
let newlyManaged = [];
|
|
33934
|
-
await Promise.all(nodeConfig.reverseProxies_connections.map(async (proxy) => {
|
|
33935
|
-
try {
|
|
33936
|
-
let reverseProxyNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(proxy.proxy).node();
|
|
33937
|
-
let proxyClient = reverseProxyNode.client();
|
|
33938
|
-
let hosts = await proxyClient.getHosts();
|
|
33939
|
-
let matchingHost = hosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33940
|
-
if (!matchingHost) {
|
|
33941
|
-
await proxyClient.updateHost({ domainNames: [proxy.domainname], forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33942
|
-
let updatedHosts = await proxyClient.getHosts();
|
|
33943
|
-
matchingHost = updatedHosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33944
|
-
} else if (matchingHost.forwardHost !== targetHost || matchingHost.forwardPort !== targetPort) {
|
|
33945
|
-
await proxyClient.updateHost({ id: matchingHost.id, forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33946
|
-
}
|
|
33947
|
-
if (matchingHost?.id !== void 0) {
|
|
33948
|
-
newlyManaged.push({ proxyNodeId: proxy.proxy, hostId: matchingHost.id });
|
|
33949
|
-
}
|
|
33950
|
-
} catch (e) {
|
|
33951
|
-
console.error(e);
|
|
33952
|
-
}
|
|
33953
|
-
}));
|
|
33954
|
-
let previouslyManaged = managedProxyHosts.get(nodeId) ?? [];
|
|
33955
|
-
let newHostIds = new Set(newlyManaged.map((m) => m.hostId));
|
|
33956
|
-
await Promise.all(previouslyManaged.filter((m) => !newHostIds.has(m.hostId)).map(async (stale) => {
|
|
33957
|
-
try {
|
|
33958
|
-
let reverseProxyNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(stale.proxyNodeId).node();
|
|
33959
|
-
let proxyClient = reverseProxyNode.client();
|
|
33960
|
-
await proxyClient.deleteHost(stale.hostId);
|
|
33961
|
-
} catch (e) {
|
|
33962
|
-
console.error(e);
|
|
33963
|
-
}
|
|
33964
|
-
}));
|
|
33965
|
-
managedProxyHosts.set(nodeId, newlyManaged);
|
|
33832
|
+
setupReverseProxies(nodeConfig, webhookServer);
|
|
33966
33833
|
}
|
|
33967
33834
|
node.node().on("close", () => {
|
|
33968
33835
|
webhookServer.detach(endpointConfig);
|
|
@@ -34039,9 +33906,6 @@ var require_build = __commonJS({
|
|
|
34039
33906
|
__exportStar(require_CounterMetricTemplate(), exports2);
|
|
34040
33907
|
__exportStar(require_GaugeMetricTemplate(), exports2);
|
|
34041
33908
|
__exportStar(require_MetricsConfigNode(), exports2);
|
|
34042
|
-
__exportStar(require_CounterMetricConfigNode(), exports2);
|
|
34043
|
-
__exportStar(require_GaugeMetricConfigNode(), exports2);
|
|
34044
|
-
__exportStar(require_TimerMetricConfigNode(), exports2);
|
|
34045
33909
|
__exportStar(require_TimerMetricTemplate(), exports2);
|
|
34046
33910
|
__exportStar(require_StateService(), exports2);
|
|
34047
33911
|
__exportStar(require_StateConfigNode(), exports2);
|
|
@@ -34055,9 +33919,9 @@ var require_build = __commonJS({
|
|
|
34055
33919
|
__exportStar(require_ScriptEditorTemplate(), exports2);
|
|
34056
33920
|
__exportStar(require_DelegatedConfigReferenceNode(), exports2);
|
|
34057
33921
|
__exportStar(require_InputService(), exports2);
|
|
34058
|
-
__exportStar(require_SettingsService(), exports2);
|
|
34059
33922
|
__exportStar(require_BasicTemplate(), exports2);
|
|
34060
|
-
__exportStar(
|
|
33923
|
+
__exportStar(require_ConfigFragmentService(), exports2);
|
|
33924
|
+
__exportStar(require_ConfigFragmentTemplate(), exports2);
|
|
34061
33925
|
__exportStar(require_WebhookTemplate(), exports2);
|
|
34062
33926
|
__exportStar(require_WebhookServerConfigNode(), exports2);
|
|
34063
33927
|
__exportStar(require_WebhookServerService(), exports2);
|