@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/Nodes.js
CHANGED
|
@@ -7739,6 +7739,10 @@ var require_NodeConstructor = __commonJS({
|
|
|
7739
7739
|
if (Array.isArray(value)) {
|
|
7740
7740
|
return `[${value.map((t) => this.serializeProperty(t)).join(", ")}]`;
|
|
7741
7741
|
}
|
|
7742
|
+
if (value === null) {
|
|
7743
|
+
return "null";
|
|
7744
|
+
}
|
|
7745
|
+
return JSON.stringify(value);
|
|
7742
7746
|
}
|
|
7743
7747
|
}
|
|
7744
7748
|
throw new Error(`no serializeProperty handler for ${typeof value}, ${value}`);
|
|
@@ -8592,16 +8596,19 @@ var require_MetricsService = __commonJS({
|
|
|
8592
8596
|
constructor(config) {
|
|
8593
8597
|
this._config = config;
|
|
8594
8598
|
this._labels = {
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8599
|
+
type: config.type,
|
|
8600
|
+
id: config.id,
|
|
8601
|
+
metric: config.metric,
|
|
8602
|
+
flow: config.flow,
|
|
8603
|
+
name: config.name
|
|
8600
8604
|
};
|
|
8601
8605
|
}
|
|
8602
8606
|
labels() {
|
|
8603
8607
|
return this._labels;
|
|
8604
8608
|
}
|
|
8609
|
+
static labelNames() {
|
|
8610
|
+
return ["flow", "type", "name", "id", "metric"];
|
|
8611
|
+
}
|
|
8605
8612
|
config() {
|
|
8606
8613
|
return this._config;
|
|
8607
8614
|
}
|
|
@@ -8650,6 +8657,8 @@ var require_MetricsService = __commonJS({
|
|
|
8650
8657
|
var DoNothingHistogramMetric = class {
|
|
8651
8658
|
observe(_value) {
|
|
8652
8659
|
}
|
|
8660
|
+
reset() {
|
|
8661
|
+
}
|
|
8653
8662
|
subscribe(_node, _callback) {
|
|
8654
8663
|
}
|
|
8655
8664
|
unsubscribe(_node) {
|
|
@@ -8664,6 +8673,8 @@ var require_MetricsService = __commonJS({
|
|
|
8664
8673
|
var DoNothingSummaryMetric = class {
|
|
8665
8674
|
observe(_value) {
|
|
8666
8675
|
}
|
|
8676
|
+
reset() {
|
|
8677
|
+
}
|
|
8667
8678
|
subscribe(_node, _callback) {
|
|
8668
8679
|
}
|
|
8669
8680
|
unsubscribe(_node) {
|
|
@@ -8688,6 +8699,32 @@ var require_MetricsService = __commonJS({
|
|
|
8688
8699
|
console.warn(`[PluginCore] MetricsContainer: Summary is not supported by this provider.`);
|
|
8689
8700
|
return new DoNothingSummaryMetric();
|
|
8690
8701
|
}
|
|
8702
|
+
/**
|
|
8703
|
+
* Factory method for timer metrics. Called by flow nodes with the common
|
|
8704
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8705
|
+
* Providers override this to interpret their own fragment data and create the
|
|
8706
|
+
* appropriate histogram or summary metric.
|
|
8707
|
+
*/
|
|
8708
|
+
createTimer(metricConfig, fragmentData) {
|
|
8709
|
+
console.warn(`[PluginCore] MetricsContainer: createTimer is not supported by this provider.`);
|
|
8710
|
+
return new DoNothingHistogramMetric();
|
|
8711
|
+
}
|
|
8712
|
+
/**
|
|
8713
|
+
* Factory method for counter metrics. Called by flow nodes with the common
|
|
8714
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8715
|
+
*/
|
|
8716
|
+
createCounter(metricConfig, fragmentData) {
|
|
8717
|
+
console.warn(`[PluginCore] MetricsContainer: createCounter is not supported by this provider.`);
|
|
8718
|
+
return new DoNothingCounterMetric();
|
|
8719
|
+
}
|
|
8720
|
+
/**
|
|
8721
|
+
* Factory method for gauge metrics. Called by flow nodes with the common
|
|
8722
|
+
* metric config and provider-specific fragment data from the ConfigFragment UI.
|
|
8723
|
+
*/
|
|
8724
|
+
createGauge(metricConfig, fragmentData) {
|
|
8725
|
+
console.warn(`[PluginCore] MetricsContainer: createGauge is not supported by this provider.`);
|
|
8726
|
+
return new DoNothingGaugeMetric();
|
|
8727
|
+
}
|
|
8691
8728
|
};
|
|
8692
8729
|
exports2.MetricsContainer = MetricsContainer;
|
|
8693
8730
|
var DoNothingMetricsContainer = class extends MetricsContainer {
|
|
@@ -8711,6 +8748,15 @@ var require_MetricsService = __commonJS({
|
|
|
8711
8748
|
summary(_config) {
|
|
8712
8749
|
return new DoNothingSummaryMetric();
|
|
8713
8750
|
}
|
|
8751
|
+
createTimer(_metricConfig, _fragmentData) {
|
|
8752
|
+
return new DoNothingHistogramMetric();
|
|
8753
|
+
}
|
|
8754
|
+
createCounter(_metricConfig, _fragmentData) {
|
|
8755
|
+
return new DoNothingCounterMetric();
|
|
8756
|
+
}
|
|
8757
|
+
createGauge(_metricConfig, _fragmentData) {
|
|
8758
|
+
return new DoNothingGaugeMetric();
|
|
8759
|
+
}
|
|
8714
8760
|
};
|
|
8715
8761
|
exports2.DoNothingMetricsContainer = DoNothingMetricsContainer;
|
|
8716
8762
|
var _GLOBAL_METRICS_KEY = "__plugincore_metrics__";
|
|
@@ -8796,9 +8842,9 @@ var require_MetricsTemplate = __commonJS({
|
|
|
8796
8842
|
}
|
|
8797
8843
|
});
|
|
8798
8844
|
|
|
8799
|
-
// ../nodered_plugincore/build/core/
|
|
8800
|
-
var
|
|
8801
|
-
"../nodered_plugincore/build/core/
|
|
8845
|
+
// ../nodered_plugincore/build/core/configfragment/service/ConfigFragmentService.js
|
|
8846
|
+
var require_ConfigFragmentService = __commonJS({
|
|
8847
|
+
"../nodered_plugincore/build/core/configfragment/service/ConfigFragmentService.js"(exports2) {
|
|
8802
8848
|
"use strict";
|
|
8803
8849
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8804
8850
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8809,62 +8855,63 @@ var require_CounterMetricConfigNode = __commonJS({
|
|
|
8809
8855
|
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
8810
8856
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
8811
8857
|
};
|
|
8858
|
+
var ConfigFragmentService_1;
|
|
8812
8859
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8813
|
-
exports2.
|
|
8860
|
+
exports2.ConfigFragmentService = void 0;
|
|
8814
8861
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8815
|
-
var
|
|
8816
|
-
var
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
super(node, config);
|
|
8822
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
8823
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
8824
|
-
const counterConfig = {
|
|
8825
|
-
metricname: config.name,
|
|
8826
|
-
metricdescription: config.description,
|
|
8827
|
-
node: {
|
|
8828
|
-
id: this.id(),
|
|
8829
|
-
name: this.name(),
|
|
8830
|
-
flow: this.flow(),
|
|
8831
|
-
type: this.type()
|
|
8832
|
-
}
|
|
8833
|
-
};
|
|
8834
|
-
this._counter = this._metrics.counter(counterConfig);
|
|
8835
|
-
if (config.reset) {
|
|
8836
|
-
this._counter.reset();
|
|
8862
|
+
var ServiceDescriptionDecorator_1 = require_ServiceDescriptionDecorator();
|
|
8863
|
+
var ConfigFragmentService = ConfigFragmentService_1 = class ConfigFragmentService extends NodeConstructor_1.BaseService {
|
|
8864
|
+
// Global-backed registry so fragments registered across bundle boundaries are visible.
|
|
8865
|
+
static get _fragments() {
|
|
8866
|
+
if (!global.__plugincore_config_fragments__) {
|
|
8867
|
+
global.__plugincore_config_fragments__ = [];
|
|
8837
8868
|
}
|
|
8869
|
+
return global.__plugincore_config_fragments__;
|
|
8838
8870
|
}
|
|
8839
|
-
|
|
8840
|
-
|
|
8871
|
+
constructor() {
|
|
8872
|
+
super("configfragments");
|
|
8873
|
+
}
|
|
8874
|
+
init(red) {
|
|
8875
|
+
red.httpAdmin.get("/configfragment/:section/:providerType", red.auth.needsPermission("inject.write"), (request, response) => {
|
|
8876
|
+
const { section, providerType } = request.params;
|
|
8877
|
+
const fragment = ConfigFragmentService_1._fragments.find((f) => f.section === section && f.providerType === providerType);
|
|
8878
|
+
if (fragment) {
|
|
8879
|
+
response.type("text/html").send(fragment.html);
|
|
8880
|
+
} else {
|
|
8881
|
+
response.status(404).send("");
|
|
8882
|
+
}
|
|
8883
|
+
});
|
|
8884
|
+
return Promise.resolve();
|
|
8841
8885
|
}
|
|
8842
|
-
|
|
8843
|
-
return
|
|
8886
|
+
deinit(red) {
|
|
8887
|
+
return Promise.resolve();
|
|
8888
|
+
}
|
|
8889
|
+
/**
|
|
8890
|
+
* Register a config fragment. Called by provider plugins during their service init().
|
|
8891
|
+
* Provider plugins own both sides of the contract: the HTML fragment that collects
|
|
8892
|
+
* the configuration AND the server-side factory that deserializes it.
|
|
8893
|
+
*/
|
|
8894
|
+
static registerFragment(registration) {
|
|
8895
|
+
const existing = ConfigFragmentService_1._fragments.find((f) => f.section === registration.section && f.providerType === registration.providerType);
|
|
8896
|
+
if (!existing) {
|
|
8897
|
+
ConfigFragmentService_1._fragments.push(registration);
|
|
8898
|
+
}
|
|
8844
8899
|
}
|
|
8845
8900
|
};
|
|
8846
|
-
exports2.
|
|
8847
|
-
exports2.
|
|
8848
|
-
(0,
|
|
8849
|
-
id: "
|
|
8850
|
-
|
|
8851
|
-
group: "config",
|
|
8852
|
-
sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "CounterMetricConfigNode.html",
|
|
8853
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
8854
|
-
templates: [
|
|
8855
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: {} }
|
|
8856
|
-
],
|
|
8857
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
8858
|
-
tags: ["MetricType"]
|
|
8901
|
+
exports2.ConfigFragmentService = ConfigFragmentService;
|
|
8902
|
+
exports2.ConfigFragmentService = ConfigFragmentService = ConfigFragmentService_1 = __decorate([
|
|
8903
|
+
(0, ServiceDescriptionDecorator_1.ServiceDescription)({
|
|
8904
|
+
id: "@theotherwillembotha/configfragmentservice",
|
|
8905
|
+
sourceFile: "@theotherwillembotha/node-red-plugincore"
|
|
8859
8906
|
}),
|
|
8860
|
-
__metadata("design:paramtypes", [
|
|
8861
|
-
],
|
|
8907
|
+
__metadata("design:paramtypes", [])
|
|
8908
|
+
], ConfigFragmentService);
|
|
8862
8909
|
}
|
|
8863
8910
|
});
|
|
8864
8911
|
|
|
8865
|
-
// ../nodered_plugincore/build/core/
|
|
8866
|
-
var
|
|
8867
|
-
"../nodered_plugincore/build/core/
|
|
8912
|
+
// ../nodered_plugincore/build/core/configfragment/template/ConfigFragmentTemplate.js
|
|
8913
|
+
var require_ConfigFragmentTemplate = __commonJS({
|
|
8914
|
+
"../nodered_plugincore/build/core/configfragment/template/ConfigFragmentTemplate.js"(exports2) {
|
|
8868
8915
|
"use strict";
|
|
8869
8916
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8870
8917
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8873,27 +8920,27 @@ var require_CounterMetricTemplate = __commonJS({
|
|
|
8873
8920
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8874
8921
|
};
|
|
8875
8922
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8876
|
-
exports2.
|
|
8923
|
+
exports2.ConfigFragmentTemplate = void 0;
|
|
8877
8924
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
8878
8925
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8879
8926
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8880
|
-
var
|
|
8881
|
-
var
|
|
8927
|
+
var ConfigFragmentService_1 = require_ConfigFragmentService();
|
|
8928
|
+
var ConfigFragmentTemplate = class ConfigFragmentTemplate extends NodeConstructor_1.Template {
|
|
8882
8929
|
};
|
|
8883
|
-
exports2.
|
|
8884
|
-
exports2.
|
|
8930
|
+
exports2.ConfigFragmentTemplate = ConfigFragmentTemplate;
|
|
8931
|
+
exports2.ConfigFragmentTemplate = ConfigFragmentTemplate = __decorate([
|
|
8885
8932
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8886
|
-
name: "
|
|
8887
|
-
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "
|
|
8888
|
-
dependencies: [
|
|
8933
|
+
name: "configfragment",
|
|
8934
|
+
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "ConfigFragmentTemplate.html",
|
|
8935
|
+
dependencies: [ConfigFragmentService_1.ConfigFragmentService]
|
|
8889
8936
|
})
|
|
8890
|
-
],
|
|
8937
|
+
], ConfigFragmentTemplate);
|
|
8891
8938
|
}
|
|
8892
8939
|
});
|
|
8893
8940
|
|
|
8894
|
-
// ../nodered_plugincore/build/core/metrics/
|
|
8895
|
-
var
|
|
8896
|
-
"../nodered_plugincore/build/core/metrics/
|
|
8941
|
+
// ../nodered_plugincore/build/core/metrics/template/CounterMetricTemplate.js
|
|
8942
|
+
var require_CounterMetricTemplate = __commonJS({
|
|
8943
|
+
"../nodered_plugincore/build/core/metrics/template/CounterMetricTemplate.js"(exports2) {
|
|
8897
8944
|
"use strict";
|
|
8898
8945
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
8899
8946
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -8901,59 +8948,24 @@ var require_GaugeMetricConfigNode = __commonJS({
|
|
|
8901
8948
|
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;
|
|
8902
8949
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8903
8950
|
};
|
|
8904
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
8905
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
8906
|
-
};
|
|
8907
8951
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
8908
|
-
exports2.
|
|
8952
|
+
exports2.CounterMetricTemplate = void 0;
|
|
8953
|
+
var NodeGenerator_1 = require_NodeGenerator();
|
|
8909
8954
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8955
|
+
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8910
8956
|
var MetricsService_1 = require_MetricsService();
|
|
8911
|
-
var
|
|
8912
|
-
var
|
|
8913
|
-
var
|
|
8914
|
-
var GaugeMetricConfigNode = class GaugeMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
8915
|
-
constructor(node, config) {
|
|
8916
|
-
super(node, config);
|
|
8917
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
8918
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
8919
|
-
const gaugeConfig = {
|
|
8920
|
-
metricname: config.name,
|
|
8921
|
-
metricdescription: config.description,
|
|
8922
|
-
node: {
|
|
8923
|
-
id: this.id(),
|
|
8924
|
-
flow: this.flow(),
|
|
8925
|
-
type: this.type(),
|
|
8926
|
-
name: this.name()
|
|
8927
|
-
}
|
|
8928
|
-
};
|
|
8929
|
-
this._gauge = this._metrics.gauge(gaugeConfig);
|
|
8930
|
-
if (config.reset) {
|
|
8931
|
-
this._gauge.reset();
|
|
8932
|
-
}
|
|
8933
|
-
}
|
|
8934
|
-
metrics() {
|
|
8935
|
-
return this._metrics;
|
|
8936
|
-
}
|
|
8937
|
-
gauge() {
|
|
8938
|
-
return this._gauge;
|
|
8939
|
-
}
|
|
8957
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
8958
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
8959
|
+
var CounterMetricTemplate = class CounterMetricTemplate extends NodeConstructor_1.Template {
|
|
8940
8960
|
};
|
|
8941
|
-
exports2.
|
|
8942
|
-
exports2.
|
|
8943
|
-
(0,
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
templates: [
|
|
8950
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: {} }
|
|
8951
|
-
],
|
|
8952
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
8953
|
-
tags: ["Core", "Metric"]
|
|
8954
|
-
}),
|
|
8955
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
8956
|
-
], GaugeMetricConfigNode);
|
|
8961
|
+
exports2.CounterMetricTemplate = CounterMetricTemplate;
|
|
8962
|
+
exports2.CounterMetricTemplate = CounterMetricTemplate = __decorate([
|
|
8963
|
+
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8964
|
+
name: "countermetric",
|
|
8965
|
+
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "CounterMetricTemplate.html",
|
|
8966
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
8967
|
+
})
|
|
8968
|
+
], CounterMetricTemplate);
|
|
8957
8969
|
}
|
|
8958
8970
|
});
|
|
8959
8971
|
|
|
@@ -8972,7 +8984,9 @@ var require_GaugeMetricTemplate = __commonJS({
|
|
|
8972
8984
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
8973
8985
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
8974
8986
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
8975
|
-
var
|
|
8987
|
+
var MetricsService_1 = require_MetricsService();
|
|
8988
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
8989
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
8976
8990
|
var GaugeMetricTemplate = class GaugeMetricTemplate extends NodeConstructor_1.Template {
|
|
8977
8991
|
};
|
|
8978
8992
|
exports2.GaugeMetricTemplate = GaugeMetricTemplate;
|
|
@@ -8980,7 +8994,7 @@ var require_GaugeMetricTemplate = __commonJS({
|
|
|
8980
8994
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
8981
8995
|
name: "gaugemetric",
|
|
8982
8996
|
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "GaugeMetricTemplate.html",
|
|
8983
|
-
dependencies: [
|
|
8997
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
8984
8998
|
})
|
|
8985
8999
|
], GaugeMetricTemplate);
|
|
8986
9000
|
}
|
|
@@ -9000,253 +9014,10 @@ var require_MetricsConfigNode = __commonJS({
|
|
|
9000
9014
|
MetricsService_1.MetricsService.register(config.id, { id: config.id }, () => this.createContainer({ id: config.id }));
|
|
9001
9015
|
}
|
|
9002
9016
|
metrics() {
|
|
9003
|
-
return MetricsService_1.MetricsService.get({ metricsEnabled: true, metricsReference: this.id() });
|
|
9004
|
-
}
|
|
9005
|
-
};
|
|
9006
|
-
exports2.MetricsConfigNode = MetricsConfigNode;
|
|
9007
|
-
}
|
|
9008
|
-
});
|
|
9009
|
-
|
|
9010
|
-
// ../nodered_plugincore/build/core/metrics/MetricsDecorator.js
|
|
9011
|
-
var require_MetricsDecorator = __commonJS({
|
|
9012
|
-
"../nodered_plugincore/build/core/metrics/MetricsDecorator.js"(exports2) {
|
|
9013
|
-
"use strict";
|
|
9014
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9015
|
-
exports2.MetricCollectorType = exports2.MetricType = void 0;
|
|
9016
|
-
exports2.Metrics = Metrics;
|
|
9017
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9018
|
-
var MetricsService_1 = require_MetricsService();
|
|
9019
|
-
var MetricType;
|
|
9020
|
-
(function(MetricType2) {
|
|
9021
|
-
MetricType2["Counter"] = "Counter";
|
|
9022
|
-
MetricType2["Timer"] = "Timer";
|
|
9023
|
-
MetricType2["Gauge"] = "Gauge";
|
|
9024
|
-
})(MetricType || (exports2.MetricType = MetricType = {}));
|
|
9025
|
-
var MetricCollectorType;
|
|
9026
|
-
(function(MetricCollectorType2) {
|
|
9027
|
-
MetricCollectorType2["histogram"] = "histogram";
|
|
9028
|
-
MetricCollectorType2["summary"] = "summary";
|
|
9029
|
-
})(MetricCollectorType || (exports2.MetricCollectorType = MetricCollectorType = {}));
|
|
9030
|
-
function resolveMetric(node, metricsConfig, _metrics) {
|
|
9031
|
-
const nde = {
|
|
9032
|
-
id: node.id(),
|
|
9033
|
-
name: node.name(),
|
|
9034
|
-
flow: node.flow(),
|
|
9035
|
-
type: node.type()
|
|
9036
|
-
};
|
|
9037
|
-
if (metricsConfig.type === MetricType.Counter) {
|
|
9038
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Counter)) {
|
|
9039
|
-
console.warn(`[PluginCore] @Metrics Counter requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Counter. Using DoNothing.`);
|
|
9040
|
-
}
|
|
9041
|
-
const counterConfig = {
|
|
9042
|
-
metricname: metricsConfig.name,
|
|
9043
|
-
metricdescription: metricsConfig.description,
|
|
9044
|
-
node: nde
|
|
9045
|
-
};
|
|
9046
|
-
return _metrics.counter(counterConfig);
|
|
9047
|
-
}
|
|
9048
|
-
if (metricsConfig.type === MetricType.Gauge) {
|
|
9049
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Gauge)) {
|
|
9050
|
-
console.warn(`[PluginCore] @Metrics Gauge requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Gauge. Using DoNothing.`);
|
|
9051
|
-
}
|
|
9052
|
-
const gaugeConfig = {
|
|
9053
|
-
metricname: metricsConfig.name,
|
|
9054
|
-
metricdescription: metricsConfig.description,
|
|
9055
|
-
node: nde
|
|
9056
|
-
};
|
|
9057
|
-
return _metrics.gauge(gaugeConfig);
|
|
9058
|
-
}
|
|
9059
|
-
if (metricsConfig.type === MetricType.Timer) {
|
|
9060
|
-
if (metricsConfig.collector === MetricCollectorType.histogram) {
|
|
9061
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Histogram)) {
|
|
9062
|
-
console.warn(`[PluginCore] @Metrics Histogram requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Histogram. Using DoNothing.`);
|
|
9063
|
-
}
|
|
9064
|
-
if (metricsConfig.buckettype === MetricsService_1.BucketType.default) {
|
|
9065
|
-
const histogramConfig = {
|
|
9066
|
-
metricname: metricsConfig.name,
|
|
9067
|
-
metricdescription: metricsConfig.description,
|
|
9068
|
-
buckettype: metricsConfig.buckettype,
|
|
9069
|
-
bucketconfig: {},
|
|
9070
|
-
node: nde
|
|
9071
|
-
};
|
|
9072
|
-
return _metrics.histogram(histogramConfig);
|
|
9073
|
-
}
|
|
9074
|
-
}
|
|
9075
|
-
if (metricsConfig.collector === MetricCollectorType.summary) {
|
|
9076
|
-
if (!_metrics.supports(MetricsService_1.MetricCapability.Summary)) {
|
|
9077
|
-
console.warn(`[PluginCore] @Metrics Summary requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Summary. Using DoNothing.`);
|
|
9078
|
-
}
|
|
9079
|
-
}
|
|
9080
|
-
}
|
|
9081
|
-
console.error("[PluginCore] @Metrics: no factory matched for config", metricsConfig);
|
|
9082
|
-
return void 0;
|
|
9083
|
-
}
|
|
9084
|
-
function resolveContainer(metricsReference) {
|
|
9085
|
-
if (!metricsReference)
|
|
9086
|
-
return new MetricsService_1.DoNothingMetricsContainer();
|
|
9087
|
-
const refNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(metricsReference);
|
|
9088
|
-
return refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
9089
|
-
}
|
|
9090
|
-
function dudForType(metricsConfig) {
|
|
9091
|
-
if (metricsConfig.type === MetricType.Counter)
|
|
9092
|
-
return new MetricsService_1.DoNothingCounterMetric();
|
|
9093
|
-
if (metricsConfig.type === MetricType.Gauge)
|
|
9094
|
-
return new MetricsService_1.DoNothingGaugeMetric();
|
|
9095
|
-
if (metricsConfig.type === MetricType.Timer) {
|
|
9096
|
-
if (metricsConfig.collector === MetricCollectorType.histogram)
|
|
9097
|
-
return new MetricsService_1.DoNothingHistogramMetric();
|
|
9098
|
-
if (metricsConfig.collector === MetricCollectorType.summary)
|
|
9099
|
-
return new MetricsService_1.DoNothingSummaryMetric();
|
|
9100
|
-
}
|
|
9101
|
-
return void 0;
|
|
9102
|
-
}
|
|
9103
|
-
function Metrics(metricsConfig) {
|
|
9104
|
-
return function(target, propertyKey) {
|
|
9105
|
-
if (typeof propertyKey === "string") {
|
|
9106
|
-
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
9107
|
-
Object.defineProperty(target, propertyKey, {
|
|
9108
|
-
get: function() {
|
|
9109
|
-
if (this[valueSymbol])
|
|
9110
|
-
return this[valueSymbol];
|
|
9111
|
-
const node = this;
|
|
9112
|
-
const config = node.config();
|
|
9113
|
-
if (config.metricsEnabled) {
|
|
9114
|
-
const _metrics = resolveContainer(config.metricsReference);
|
|
9115
|
-
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
9116
|
-
} else {
|
|
9117
|
-
this[valueSymbol] = dudForType(metricsConfig);
|
|
9118
|
-
}
|
|
9119
|
-
return this[valueSymbol];
|
|
9120
|
-
},
|
|
9121
|
-
enumerable: true,
|
|
9122
|
-
configurable: false
|
|
9123
|
-
});
|
|
9124
|
-
} else {
|
|
9125
|
-
let property = propertyKey;
|
|
9126
|
-
property.addInitializer(function() {
|
|
9127
|
-
const node = this;
|
|
9128
|
-
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
9129
|
-
Object.defineProperty(node, property.name, {
|
|
9130
|
-
get: function() {
|
|
9131
|
-
if (this[valueSymbol])
|
|
9132
|
-
return this[valueSymbol];
|
|
9133
|
-
const config = node.config();
|
|
9134
|
-
if (config.metricsEnabled) {
|
|
9135
|
-
const _metrics = resolveContainer(config.metricsReference);
|
|
9136
|
-
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
9137
|
-
} else {
|
|
9138
|
-
this[valueSymbol] = dudForType(metricsConfig);
|
|
9139
|
-
}
|
|
9140
|
-
return this[valueSymbol];
|
|
9141
|
-
},
|
|
9142
|
-
enumerable: true,
|
|
9143
|
-
configurable: false
|
|
9144
|
-
});
|
|
9145
|
-
});
|
|
9146
|
-
}
|
|
9147
|
-
};
|
|
9148
|
-
}
|
|
9149
|
-
}
|
|
9150
|
-
});
|
|
9151
|
-
|
|
9152
|
-
// ../nodered_plugincore/build/core/metrics/node/TimerMetricConfigNode.js
|
|
9153
|
-
var require_TimerMetricConfigNode = __commonJS({
|
|
9154
|
-
"../nodered_plugincore/build/core/metrics/node/TimerMetricConfigNode.js"(exports2) {
|
|
9155
|
-
"use strict";
|
|
9156
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9157
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9158
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9159
|
-
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;
|
|
9160
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9161
|
-
};
|
|
9162
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
9163
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9164
|
-
};
|
|
9165
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9166
|
-
exports2.TimerMetricConfigNode = void 0;
|
|
9167
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9168
|
-
var MetricsService_1 = require_MetricsService();
|
|
9169
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9170
|
-
var MetricsTemplate_1 = require_MetricsTemplate();
|
|
9171
|
-
var MetricsDecorator_1 = require_MetricsDecorator();
|
|
9172
|
-
var NodeDescriptionDecorator_1 = require_NodeDescriptionDecorator();
|
|
9173
|
-
var TimerMetricConfigNode = class TimerMetricConfigNode extends NodeConstructor_1.ConfigNode {
|
|
9174
|
-
constructor(node, config) {
|
|
9175
|
-
super(node, config);
|
|
9176
|
-
const refNode = config.metricsEnabled && config.metricsReference ? NodeConstructor_1.NodeManager.RED.nodes.getNode(config.metricsReference) : null;
|
|
9177
|
-
this._metrics = refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
9178
|
-
const bucketConfig = {};
|
|
9179
|
-
switch (config.buckettype) {
|
|
9180
|
-
case MetricsService_1.BucketType.manual:
|
|
9181
|
-
bucketConfig.intervals = config.buckettype_manual_intervals.split(",").map((i) => Number.parseFloat(i.trim()));
|
|
9182
|
-
break;
|
|
9183
|
-
case MetricsService_1.BucketType.linear:
|
|
9184
|
-
bucketConfig.start = config.buckettype_linear_start;
|
|
9185
|
-
bucketConfig.interval = config.buckettype_linear_interval;
|
|
9186
|
-
bucketConfig.count = config.buckettype_linear_count;
|
|
9187
|
-
break;
|
|
9188
|
-
case MetricsService_1.BucketType.exponential:
|
|
9189
|
-
bucketConfig.start = config.buckettype_exponential_start;
|
|
9190
|
-
bucketConfig.factor = config.buckettype_exponential_factor;
|
|
9191
|
-
bucketConfig.count = config.buckettype_exponential_count;
|
|
9192
|
-
break;
|
|
9193
|
-
default:
|
|
9194
|
-
break;
|
|
9195
|
-
}
|
|
9196
|
-
if (config.metricType === MetricsDecorator_1.MetricCollectorType.histogram) {
|
|
9197
|
-
const timerConfig = {
|
|
9198
|
-
node: {
|
|
9199
|
-
id: this.id(),
|
|
9200
|
-
name: this.name(),
|
|
9201
|
-
flow: this.flow(),
|
|
9202
|
-
type: this.type()
|
|
9203
|
-
},
|
|
9204
|
-
buckettype: config.buckettype,
|
|
9205
|
-
bucketconfig: bucketConfig,
|
|
9206
|
-
metricname: config.name,
|
|
9207
|
-
metricdescription: config.description
|
|
9208
|
-
};
|
|
9209
|
-
this._timer = this._metrics.histogram(timerConfig);
|
|
9210
|
-
}
|
|
9211
|
-
if (config.metricType === MetricsDecorator_1.MetricCollectorType.summary) {
|
|
9212
|
-
const timerConfig = {
|
|
9213
|
-
node: {
|
|
9214
|
-
id: this.id(),
|
|
9215
|
-
name: this.name(),
|
|
9216
|
-
flow: this.flow(),
|
|
9217
|
-
type: this.type()
|
|
9218
|
-
},
|
|
9219
|
-
percentileType: config.percentiletype,
|
|
9220
|
-
percentileConfig: config.percentiletype_manual_intervals,
|
|
9221
|
-
metricname: config.name,
|
|
9222
|
-
metricdescription: config.description
|
|
9223
|
-
};
|
|
9224
|
-
this._timer = this._metrics.summary(timerConfig);
|
|
9225
|
-
}
|
|
9226
|
-
}
|
|
9227
|
-
metrics() {
|
|
9228
|
-
return this._metrics;
|
|
9229
|
-
}
|
|
9230
|
-
timer() {
|
|
9231
|
-
return this._timer;
|
|
9232
|
-
}
|
|
9233
|
-
};
|
|
9234
|
-
exports2.TimerMetricConfigNode = TimerMetricConfigNode;
|
|
9235
|
-
exports2.TimerMetricConfigNode = TimerMetricConfigNode = __decorate([
|
|
9236
|
-
(0, NodeDescriptionDecorator_1.NodeDescription)({
|
|
9237
|
-
id: "TimerMetricConfigNode",
|
|
9238
|
-
name: "Timer Metric Config Node",
|
|
9239
|
-
group: "config",
|
|
9240
|
-
sourceFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "TimerMetricConfigNode.html",
|
|
9241
|
-
package: "@theotherwillembotha/node-red-plugincore",
|
|
9242
|
-
templates: [
|
|
9243
|
-
{ template: MetricsTemplate_1.MetricsTemplate, config: { isConfigNode: true } }
|
|
9244
|
-
],
|
|
9245
|
-
dependencies: [MetricsService_1.MetricsService],
|
|
9246
|
-
tags: ["Core", "Metric"]
|
|
9247
|
-
}),
|
|
9248
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
9249
|
-
], TimerMetricConfigNode);
|
|
9017
|
+
return MetricsService_1.MetricsService.get({ metricsEnabled: true, metricsReference: this.id() });
|
|
9018
|
+
}
|
|
9019
|
+
};
|
|
9020
|
+
exports2.MetricsConfigNode = MetricsConfigNode;
|
|
9250
9021
|
}
|
|
9251
9022
|
});
|
|
9252
9023
|
|
|
@@ -9265,7 +9036,9 @@ var require_TimerMetricTemplate = __commonJS({
|
|
|
9265
9036
|
var NodeGenerator_1 = require_NodeGenerator();
|
|
9266
9037
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
9267
9038
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9268
|
-
var
|
|
9039
|
+
var MetricsService_1 = require_MetricsService();
|
|
9040
|
+
var DelegatedConfigReferenceNode_1 = require_DelegatedConfigReferenceNode();
|
|
9041
|
+
var ConfigFragmentTemplate_1 = require_ConfigFragmentTemplate();
|
|
9269
9042
|
var TimerMetricTemplate = class TimerMetricTemplate extends NodeConstructor_1.Template {
|
|
9270
9043
|
};
|
|
9271
9044
|
exports2.TimerMetricTemplate = TimerMetricTemplate;
|
|
@@ -9273,7 +9046,7 @@ var require_TimerMetricTemplate = __commonJS({
|
|
|
9273
9046
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9274
9047
|
name: "timermetric",
|
|
9275
9048
|
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "TimerMetricTemplate.html",
|
|
9276
|
-
dependencies: [
|
|
9049
|
+
dependencies: [DelegatedConfigReferenceNode_1.DelegatedConfigReferenceNode, MetricsService_1.MetricsService, ConfigFragmentTemplate_1.ConfigFragmentTemplate]
|
|
9277
9050
|
})
|
|
9278
9051
|
], TimerMetricTemplate);
|
|
9279
9052
|
}
|
|
@@ -9724,16 +9497,53 @@ var require_UIHelperTemplate = __commonJS({
|
|
|
9724
9497
|
var require_ScriptEditorTemplate = __commonJS({
|
|
9725
9498
|
"../nodered_plugincore/build/core/ui/template/ScriptEditorTemplate.js"(exports2) {
|
|
9726
9499
|
"use strict";
|
|
9500
|
+
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
9501
|
+
if (k2 === void 0) k2 = k;
|
|
9502
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9503
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9504
|
+
desc = { enumerable: true, get: function() {
|
|
9505
|
+
return m[k];
|
|
9506
|
+
} };
|
|
9507
|
+
}
|
|
9508
|
+
Object.defineProperty(o, k2, desc);
|
|
9509
|
+
}) : (function(o, m, k, k2) {
|
|
9510
|
+
if (k2 === void 0) k2 = k;
|
|
9511
|
+
o[k2] = m[k];
|
|
9512
|
+
}));
|
|
9513
|
+
var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) {
|
|
9514
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
9515
|
+
}) : function(o, v) {
|
|
9516
|
+
o["default"] = v;
|
|
9517
|
+
});
|
|
9727
9518
|
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9728
9519
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9729
9520
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9730
9521
|
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;
|
|
9731
9522
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9732
9523
|
};
|
|
9524
|
+
var __importStar = exports2 && exports2.__importStar || /* @__PURE__ */ (function() {
|
|
9525
|
+
var ownKeys = function(o) {
|
|
9526
|
+
ownKeys = Object.getOwnPropertyNames || function(o2) {
|
|
9527
|
+
var ar = [];
|
|
9528
|
+
for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k;
|
|
9529
|
+
return ar;
|
|
9530
|
+
};
|
|
9531
|
+
return ownKeys(o);
|
|
9532
|
+
};
|
|
9533
|
+
return function(mod) {
|
|
9534
|
+
if (mod && mod.__esModule) return mod;
|
|
9535
|
+
var result = {};
|
|
9536
|
+
if (mod != null) {
|
|
9537
|
+
for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
9538
|
+
}
|
|
9539
|
+
__setModuleDefault(result, mod);
|
|
9540
|
+
return result;
|
|
9541
|
+
};
|
|
9542
|
+
})();
|
|
9733
9543
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9734
9544
|
exports2.ScriptEditorTemplate = void 0;
|
|
9545
|
+
var path = __importStar(require("path"));
|
|
9735
9546
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
9736
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9737
9547
|
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9738
9548
|
var ScriptEditorTemplate = class ScriptEditorTemplate extends NodeConstructor_1.Template {
|
|
9739
9549
|
};
|
|
@@ -9741,7 +9551,7 @@ var require_ScriptEditorTemplate = __commonJS({
|
|
|
9741
9551
|
exports2.ScriptEditorTemplate = ScriptEditorTemplate = __decorate([
|
|
9742
9552
|
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9743
9553
|
name: "script-editor",
|
|
9744
|
-
templateFile:
|
|
9554
|
+
templateFile: path.join(__dirname, "ScriptEditorTemplate.html")
|
|
9745
9555
|
})
|
|
9746
9556
|
], ScriptEditorTemplate);
|
|
9747
9557
|
}
|
|
@@ -9784,93 +9594,6 @@ var require_InputService = __commonJS({
|
|
|
9784
9594
|
}
|
|
9785
9595
|
});
|
|
9786
9596
|
|
|
9787
|
-
// ../nodered_plugincore/build/core/other/service/SettingsService.js
|
|
9788
|
-
var require_SettingsService = __commonJS({
|
|
9789
|
-
"../nodered_plugincore/build/core/other/service/SettingsService.js"(exports2) {
|
|
9790
|
-
"use strict";
|
|
9791
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9792
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9793
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9794
|
-
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;
|
|
9795
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9796
|
-
};
|
|
9797
|
-
var __metadata = exports2 && exports2.__metadata || function(k, v) {
|
|
9798
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9799
|
-
};
|
|
9800
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9801
|
-
exports2.Settings = exports2.SettingsService = void 0;
|
|
9802
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9803
|
-
var ServiceDescriptionDecorator_1 = require_ServiceDescriptionDecorator();
|
|
9804
|
-
var SettingsService = class SettingsService extends NodeConstructor_1.BaseService {
|
|
9805
|
-
static create(node, config) {
|
|
9806
|
-
let settings = NodeConstructor_1.NodeManager.RED.settings.get("NodeSettings_" + config.id);
|
|
9807
|
-
if (settings === void 0) {
|
|
9808
|
-
settings = {};
|
|
9809
|
-
}
|
|
9810
|
-
return new Settings(settings, config);
|
|
9811
|
-
}
|
|
9812
|
-
constructor() {
|
|
9813
|
-
super("SettingsService");
|
|
9814
|
-
}
|
|
9815
|
-
init(red) {
|
|
9816
|
-
red.httpAdmin.post("/utils/getNodeSettings", red.auth.needsPermission("inject.write"), async function(request, response) {
|
|
9817
|
-
let config = request.body;
|
|
9818
|
-
let settings = red.settings.get("NodeSettings_" + config.nodeId);
|
|
9819
|
-
response.send({
|
|
9820
|
-
status: "ok",
|
|
9821
|
-
settings
|
|
9822
|
-
});
|
|
9823
|
-
});
|
|
9824
|
-
}
|
|
9825
|
-
deinit(red) {
|
|
9826
|
-
red.httpAdmin.post("/utils/getNodeSettings", red.auth.needsPermission("inject.write"), async function(request, response) {
|
|
9827
|
-
response.status(404);
|
|
9828
|
-
});
|
|
9829
|
-
}
|
|
9830
|
-
};
|
|
9831
|
-
exports2.SettingsService = SettingsService;
|
|
9832
|
-
exports2.SettingsService = SettingsService = __decorate([
|
|
9833
|
-
(0, ServiceDescriptionDecorator_1.ServiceDescription)({
|
|
9834
|
-
id: "@theotherwillembotha/settingsservice",
|
|
9835
|
-
sourceFile: "@theotherwillembotha/node-red-plugincore"
|
|
9836
|
-
}),
|
|
9837
|
-
__metadata("design:paramtypes", [])
|
|
9838
|
-
], SettingsService);
|
|
9839
|
-
var Settings = class {
|
|
9840
|
-
constructor(settings, config) {
|
|
9841
|
-
this._settings = settings;
|
|
9842
|
-
this._config = config;
|
|
9843
|
-
if (!this.hasChanged()) {
|
|
9844
|
-
Object.keys(this._settings).forEach((key) => this._config[key] = this._settings[key]);
|
|
9845
|
-
}
|
|
9846
|
-
}
|
|
9847
|
-
value(key) {
|
|
9848
|
-
return this._settings[key];
|
|
9849
|
-
}
|
|
9850
|
-
values() {
|
|
9851
|
-
return this._settings;
|
|
9852
|
-
}
|
|
9853
|
-
update(key, value) {
|
|
9854
|
-
this._settings[key] = value;
|
|
9855
|
-
}
|
|
9856
|
-
updateAll(value) {
|
|
9857
|
-
this._settings = value;
|
|
9858
|
-
}
|
|
9859
|
-
// the settings are considdered changed if the settingsTimestamp value is different;
|
|
9860
|
-
hasChanged() {
|
|
9861
|
-
return this._settings.settingsTimestamp !== this._config.settingsTimestamp;
|
|
9862
|
-
}
|
|
9863
|
-
persist() {
|
|
9864
|
-
NodeConstructor_1.NodeManager.RED.settings.set("NodeSettings_" + this._config.id, this._settings);
|
|
9865
|
-
}
|
|
9866
|
-
delete() {
|
|
9867
|
-
NodeConstructor_1.NodeManager.RED.settings.delete("NodeSettings_" + this._config.id);
|
|
9868
|
-
}
|
|
9869
|
-
};
|
|
9870
|
-
exports2.Settings = Settings;
|
|
9871
|
-
}
|
|
9872
|
-
});
|
|
9873
|
-
|
|
9874
9597
|
// ../nodered_plugincore/build/core/other/template/BasicTemplate.js
|
|
9875
9598
|
var require_BasicTemplate = __commonJS({
|
|
9876
9599
|
"../nodered_plugincore/build/core/other/template/BasicTemplate.js"(exports2) {
|
|
@@ -9898,35 +9621,6 @@ var require_BasicTemplate = __commonJS({
|
|
|
9898
9621
|
}
|
|
9899
9622
|
});
|
|
9900
9623
|
|
|
9901
|
-
// ../nodered_plugincore/build/core/other/template/SettingsTemplate.js
|
|
9902
|
-
var require_SettingsTemplate = __commonJS({
|
|
9903
|
-
"../nodered_plugincore/build/core/other/template/SettingsTemplate.js"(exports2) {
|
|
9904
|
-
"use strict";
|
|
9905
|
-
var __decorate = exports2 && exports2.__decorate || function(decorators, target, key, desc) {
|
|
9906
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9907
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
9908
|
-
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;
|
|
9909
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9910
|
-
};
|
|
9911
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
9912
|
-
exports2.SettingsTemplate = void 0;
|
|
9913
|
-
var NodeConstructor_1 = require_NodeConstructor();
|
|
9914
|
-
var NodeGenerator_1 = require_NodeGenerator();
|
|
9915
|
-
var TemplateDescriptionDecorator_1 = require_TemplateDescriptionDecorator();
|
|
9916
|
-
var SettingsService_1 = require_SettingsService();
|
|
9917
|
-
var SettingsTemplate = class SettingsTemplate extends NodeConstructor_1.Template {
|
|
9918
|
-
};
|
|
9919
|
-
exports2.SettingsTemplate = SettingsTemplate;
|
|
9920
|
-
exports2.SettingsTemplate = SettingsTemplate = __decorate([
|
|
9921
|
-
(0, TemplateDescriptionDecorator_1.TemplateDescription)({
|
|
9922
|
-
name: "settings",
|
|
9923
|
-
templateFile: NodeGenerator_1.SourceUtility.getSourcePath("/build/", "/src/") + "SettingsTemplate.html",
|
|
9924
|
-
dependencies: [SettingsService_1.SettingsService]
|
|
9925
|
-
})
|
|
9926
|
-
], SettingsTemplate);
|
|
9927
|
-
}
|
|
9928
|
-
});
|
|
9929
|
-
|
|
9930
9624
|
// ../nodered_plugincore/node_modules/ms/index.js
|
|
9931
9625
|
var require_ms = __commonJS({
|
|
9932
9626
|
"../nodered_plugincore/node_modules/ms/index.js"(exports2, module2) {
|
|
@@ -34003,6 +33697,148 @@ var require_LoggerDecorator = __commonJS({
|
|
|
34003
33697
|
}
|
|
34004
33698
|
});
|
|
34005
33699
|
|
|
33700
|
+
// ../nodered_plugincore/build/core/metrics/MetricsDecorator.js
|
|
33701
|
+
var require_MetricsDecorator = __commonJS({
|
|
33702
|
+
"../nodered_plugincore/build/core/metrics/MetricsDecorator.js"(exports2) {
|
|
33703
|
+
"use strict";
|
|
33704
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
33705
|
+
exports2.MetricCollectorType = exports2.MetricType = void 0;
|
|
33706
|
+
exports2.Metrics = Metrics;
|
|
33707
|
+
var NodeConstructor_1 = require_NodeConstructor();
|
|
33708
|
+
var MetricsService_1 = require_MetricsService();
|
|
33709
|
+
var MetricType;
|
|
33710
|
+
(function(MetricType2) {
|
|
33711
|
+
MetricType2["Counter"] = "Counter";
|
|
33712
|
+
MetricType2["Timer"] = "Timer";
|
|
33713
|
+
MetricType2["Gauge"] = "Gauge";
|
|
33714
|
+
})(MetricType || (exports2.MetricType = MetricType = {}));
|
|
33715
|
+
var MetricCollectorType;
|
|
33716
|
+
(function(MetricCollectorType2) {
|
|
33717
|
+
MetricCollectorType2["histogram"] = "histogram";
|
|
33718
|
+
MetricCollectorType2["summary"] = "summary";
|
|
33719
|
+
})(MetricCollectorType || (exports2.MetricCollectorType = MetricCollectorType = {}));
|
|
33720
|
+
function resolveMetric(node, metricsConfig, _metrics) {
|
|
33721
|
+
const baseConfig = {
|
|
33722
|
+
id: `${node.id()}_${metricsConfig.name}`,
|
|
33723
|
+
flow: node.flow(),
|
|
33724
|
+
name: node.name(),
|
|
33725
|
+
description: metricsConfig.description || void 0
|
|
33726
|
+
};
|
|
33727
|
+
if (metricsConfig.type === MetricType.Counter) {
|
|
33728
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Counter)) {
|
|
33729
|
+
console.warn(`[PluginCore] @Metrics Counter requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Counter. Using DoNothing.`);
|
|
33730
|
+
}
|
|
33731
|
+
const counterConfig = {
|
|
33732
|
+
...baseConfig,
|
|
33733
|
+
type: node.type(),
|
|
33734
|
+
metric: metricsConfig.name
|
|
33735
|
+
};
|
|
33736
|
+
return _metrics.counter(counterConfig);
|
|
33737
|
+
}
|
|
33738
|
+
if (metricsConfig.type === MetricType.Gauge) {
|
|
33739
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Gauge)) {
|
|
33740
|
+
console.warn(`[PluginCore] @Metrics Gauge requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Gauge. Using DoNothing.`);
|
|
33741
|
+
}
|
|
33742
|
+
const gaugeConfig = {
|
|
33743
|
+
...baseConfig,
|
|
33744
|
+
type: node.type(),
|
|
33745
|
+
metric: metricsConfig.name
|
|
33746
|
+
};
|
|
33747
|
+
return _metrics.gauge(gaugeConfig);
|
|
33748
|
+
}
|
|
33749
|
+
if (metricsConfig.type === MetricType.Timer) {
|
|
33750
|
+
if (metricsConfig.collector === MetricCollectorType.histogram) {
|
|
33751
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Histogram)) {
|
|
33752
|
+
console.warn(`[PluginCore] @Metrics Histogram requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Histogram. Using DoNothing.`);
|
|
33753
|
+
}
|
|
33754
|
+
if (metricsConfig.buckettype === MetricsService_1.BucketType.default) {
|
|
33755
|
+
const histogramConfig = {
|
|
33756
|
+
...baseConfig,
|
|
33757
|
+
type: node.type(),
|
|
33758
|
+
metric: metricsConfig.name,
|
|
33759
|
+
buckettype: metricsConfig.buckettype,
|
|
33760
|
+
bucketconfig: {}
|
|
33761
|
+
};
|
|
33762
|
+
return _metrics.histogram(histogramConfig);
|
|
33763
|
+
}
|
|
33764
|
+
}
|
|
33765
|
+
if (metricsConfig.collector === MetricCollectorType.summary) {
|
|
33766
|
+
if (!_metrics.supports(MetricsService_1.MetricCapability.Summary)) {
|
|
33767
|
+
console.warn(`[PluginCore] @Metrics Summary requested by node "${node.name()}" (${node.type()}) but the selected provider does not support Summary. Using DoNothing.`);
|
|
33768
|
+
}
|
|
33769
|
+
}
|
|
33770
|
+
}
|
|
33771
|
+
console.error("[PluginCore] @Metrics: no factory matched for config", metricsConfig);
|
|
33772
|
+
return void 0;
|
|
33773
|
+
}
|
|
33774
|
+
function resolveContainer(metricsReference) {
|
|
33775
|
+
if (!metricsReference)
|
|
33776
|
+
return new MetricsService_1.DoNothingMetricsContainer();
|
|
33777
|
+
const refNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(metricsReference);
|
|
33778
|
+
return refNode ? refNode.node().metrics() : new MetricsService_1.DoNothingMetricsContainer();
|
|
33779
|
+
}
|
|
33780
|
+
function dudForType(metricsConfig) {
|
|
33781
|
+
if (metricsConfig.type === MetricType.Counter)
|
|
33782
|
+
return new MetricsService_1.DoNothingCounterMetric();
|
|
33783
|
+
if (metricsConfig.type === MetricType.Gauge)
|
|
33784
|
+
return new MetricsService_1.DoNothingGaugeMetric();
|
|
33785
|
+
if (metricsConfig.type === MetricType.Timer) {
|
|
33786
|
+
if (metricsConfig.collector === MetricCollectorType.histogram)
|
|
33787
|
+
return new MetricsService_1.DoNothingHistogramMetric();
|
|
33788
|
+
if (metricsConfig.collector === MetricCollectorType.summary)
|
|
33789
|
+
return new MetricsService_1.DoNothingSummaryMetric();
|
|
33790
|
+
}
|
|
33791
|
+
return void 0;
|
|
33792
|
+
}
|
|
33793
|
+
function Metrics(metricsConfig) {
|
|
33794
|
+
return function(target, propertyKey) {
|
|
33795
|
+
if (typeof propertyKey === "string") {
|
|
33796
|
+
const valueSymbol = Symbol(`_${String(propertyKey)}_value`);
|
|
33797
|
+
Object.defineProperty(target, propertyKey, {
|
|
33798
|
+
get: function() {
|
|
33799
|
+
if (this[valueSymbol])
|
|
33800
|
+
return this[valueSymbol];
|
|
33801
|
+
const node = this;
|
|
33802
|
+
const config = node.config();
|
|
33803
|
+
if (config.metricsEnabled) {
|
|
33804
|
+
const _metrics = resolveContainer(config.metricsReference);
|
|
33805
|
+
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
33806
|
+
} else {
|
|
33807
|
+
this[valueSymbol] = dudForType(metricsConfig);
|
|
33808
|
+
}
|
|
33809
|
+
return this[valueSymbol];
|
|
33810
|
+
},
|
|
33811
|
+
enumerable: true,
|
|
33812
|
+
configurable: false
|
|
33813
|
+
});
|
|
33814
|
+
} else {
|
|
33815
|
+
let property = propertyKey;
|
|
33816
|
+
property.addInitializer(function() {
|
|
33817
|
+
const node = this;
|
|
33818
|
+
const valueSymbol = Symbol(`_${String(property.name)}_value`);
|
|
33819
|
+
Object.defineProperty(node, property.name, {
|
|
33820
|
+
get: function() {
|
|
33821
|
+
if (this[valueSymbol])
|
|
33822
|
+
return this[valueSymbol];
|
|
33823
|
+
const config = node.config();
|
|
33824
|
+
if (config.metricsEnabled) {
|
|
33825
|
+
const _metrics = resolveContainer(config.metricsReference);
|
|
33826
|
+
this[valueSymbol] = resolveMetric(node, metricsConfig, _metrics);
|
|
33827
|
+
} else {
|
|
33828
|
+
this[valueSymbol] = dudForType(metricsConfig);
|
|
33829
|
+
}
|
|
33830
|
+
return this[valueSymbol];
|
|
33831
|
+
},
|
|
33832
|
+
enumerable: true,
|
|
33833
|
+
configurable: false
|
|
33834
|
+
});
|
|
33835
|
+
});
|
|
33836
|
+
}
|
|
33837
|
+
};
|
|
33838
|
+
}
|
|
33839
|
+
}
|
|
33840
|
+
});
|
|
33841
|
+
|
|
34006
33842
|
// ../nodered_plugincore/build/core/webhook/WebhookDecorator.js
|
|
34007
33843
|
var require_WebhookDecorator = __commonJS({
|
|
34008
33844
|
"../nodered_plugincore/build/core/webhook/WebhookDecorator.js"(exports2) {
|
|
@@ -34017,6 +33853,72 @@ var require_WebhookDecorator = __commonJS({
|
|
|
34017
33853
|
var NodeConstructor_1 = require_NodeConstructor();
|
|
34018
33854
|
var ReverseProxyTypeService_1 = require_ReverseProxyTypeService();
|
|
34019
33855
|
var managedProxyHosts = /* @__PURE__ */ new Map();
|
|
33856
|
+
var PROXY_RETRY_ATTEMPTS = 5;
|
|
33857
|
+
var PROXY_RETRY_INTERVAL_MS = 2e3;
|
|
33858
|
+
function delay(ms) {
|
|
33859
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
33860
|
+
}
|
|
33861
|
+
function resolveProxyNode(proxyId) {
|
|
33862
|
+
let rawNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(proxyId);
|
|
33863
|
+
return rawNode ? rawNode.node() : null;
|
|
33864
|
+
}
|
|
33865
|
+
async function resolveProxyNodeWithRetry(proxyId) {
|
|
33866
|
+
for (let attempt = 1; attempt <= PROXY_RETRY_ATTEMPTS; attempt++) {
|
|
33867
|
+
let resolved = resolveProxyNode(proxyId);
|
|
33868
|
+
if (resolved)
|
|
33869
|
+
return resolved;
|
|
33870
|
+
if (attempt < PROXY_RETRY_ATTEMPTS) {
|
|
33871
|
+
console.warn(`Reverse proxy config node "${proxyId}" not available yet (attempt ${attempt}/${PROXY_RETRY_ATTEMPTS}), retrying in ${PROXY_RETRY_INTERVAL_MS}ms...`);
|
|
33872
|
+
await delay(PROXY_RETRY_INTERVAL_MS);
|
|
33873
|
+
}
|
|
33874
|
+
}
|
|
33875
|
+
console.error(`Reverse proxy config node "${proxyId}" not available after ${PROXY_RETRY_ATTEMPTS} attempts \u2014 giving up.`);
|
|
33876
|
+
return null;
|
|
33877
|
+
}
|
|
33878
|
+
async function setupReverseProxies(nodeConfig, webhookServer) {
|
|
33879
|
+
let targetPort = webhookServer.config().port;
|
|
33880
|
+
let targetHost = os_1.default.hostname();
|
|
33881
|
+
let nodeId = nodeConfig.id;
|
|
33882
|
+
let newlyManaged = [];
|
|
33883
|
+
await Promise.all(nodeConfig.reverseProxies_connections.map(async (proxy) => {
|
|
33884
|
+
try {
|
|
33885
|
+
let reverseProxyNode = await resolveProxyNodeWithRetry(proxy.proxy);
|
|
33886
|
+
if (!reverseProxyNode)
|
|
33887
|
+
return;
|
|
33888
|
+
let proxyClient = reverseProxyNode.client();
|
|
33889
|
+
let hosts = await proxyClient.getHosts();
|
|
33890
|
+
let matchingHost = hosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33891
|
+
if (!matchingHost) {
|
|
33892
|
+
await proxyClient.updateHost({ domainNames: [proxy.domainname], forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33893
|
+
let updatedHosts = await proxyClient.getHosts();
|
|
33894
|
+
matchingHost = updatedHosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
33895
|
+
} else if (matchingHost.forwardHost !== targetHost || matchingHost.forwardPort !== targetPort) {
|
|
33896
|
+
await proxyClient.updateHost({ id: matchingHost.id, forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
33897
|
+
}
|
|
33898
|
+
if (matchingHost?.id !== void 0) {
|
|
33899
|
+
newlyManaged.push({ proxyNodeId: proxy.proxy, hostId: matchingHost.id });
|
|
33900
|
+
}
|
|
33901
|
+
} catch (e) {
|
|
33902
|
+
console.error(e);
|
|
33903
|
+
}
|
|
33904
|
+
}));
|
|
33905
|
+
let previouslyManaged = managedProxyHosts.get(nodeId) ?? [];
|
|
33906
|
+
let newHostIds = new Set(newlyManaged.map((m) => m.hostId));
|
|
33907
|
+
await Promise.all(previouslyManaged.filter((m) => !newHostIds.has(m.hostId)).map(async (stale) => {
|
|
33908
|
+
try {
|
|
33909
|
+
let reverseProxyNode = resolveProxyNode(stale.proxyNodeId);
|
|
33910
|
+
if (!reverseProxyNode) {
|
|
33911
|
+
console.warn(`Stale reverse proxy config node "${stale.proxyNodeId}" not found \u2014 skipping cleanup.`);
|
|
33912
|
+
return;
|
|
33913
|
+
}
|
|
33914
|
+
let proxyClient = reverseProxyNode.client();
|
|
33915
|
+
await proxyClient.deleteHost(stale.hostId);
|
|
33916
|
+
} catch (e) {
|
|
33917
|
+
console.error(e);
|
|
33918
|
+
}
|
|
33919
|
+
}));
|
|
33920
|
+
managedProxyHosts.set(nodeId, newlyManaged);
|
|
33921
|
+
}
|
|
34020
33922
|
var Webhook = (0, NodeConstructor_1.createPostConstructDecorator)("Webhook").withInitLogic(async (instance, propertyKey, webhookconfig) => {
|
|
34021
33923
|
let node = instance;
|
|
34022
33924
|
let nodeConfig = node.config();
|
|
@@ -34029,42 +33931,7 @@ var require_WebhookDecorator = __commonJS({
|
|
|
34029
33931
|
let webhookServer = NodeConstructor_1.NodeManager.RED.nodes.getNode(nodeConfig.webhook).node().server();
|
|
34030
33932
|
webhookServer.attach(endpointConfig, (request, respponse) => instance[propertyKey](request, respponse));
|
|
34031
33933
|
if (nodeConfig.reverseProxies_enabled) {
|
|
34032
|
-
|
|
34033
|
-
let targetHost = os_1.default.hostname();
|
|
34034
|
-
let nodeId = nodeConfig.id;
|
|
34035
|
-
let newlyManaged = [];
|
|
34036
|
-
await Promise.all(nodeConfig.reverseProxies_connections.map(async (proxy) => {
|
|
34037
|
-
try {
|
|
34038
|
-
let reverseProxyNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(proxy.proxy).node();
|
|
34039
|
-
let proxyClient = reverseProxyNode.client();
|
|
34040
|
-
let hosts = await proxyClient.getHosts();
|
|
34041
|
-
let matchingHost = hosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
34042
|
-
if (!matchingHost) {
|
|
34043
|
-
await proxyClient.updateHost({ domainNames: [proxy.domainname], forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
34044
|
-
let updatedHosts = await proxyClient.getHosts();
|
|
34045
|
-
matchingHost = updatedHosts.find((h) => h.domainNames?.includes(proxy.domainname));
|
|
34046
|
-
} else if (matchingHost.forwardHost !== targetHost || matchingHost.forwardPort !== targetPort) {
|
|
34047
|
-
await proxyClient.updateHost({ id: matchingHost.id, forwardHost: targetHost, forwardPort: targetPort, scheme: ReverseProxyTypeService_1.HTTPScheme.HTTP });
|
|
34048
|
-
}
|
|
34049
|
-
if (matchingHost?.id !== void 0) {
|
|
34050
|
-
newlyManaged.push({ proxyNodeId: proxy.proxy, hostId: matchingHost.id });
|
|
34051
|
-
}
|
|
34052
|
-
} catch (e) {
|
|
34053
|
-
console.error(e);
|
|
34054
|
-
}
|
|
34055
|
-
}));
|
|
34056
|
-
let previouslyManaged = managedProxyHosts.get(nodeId) ?? [];
|
|
34057
|
-
let newHostIds = new Set(newlyManaged.map((m) => m.hostId));
|
|
34058
|
-
await Promise.all(previouslyManaged.filter((m) => !newHostIds.has(m.hostId)).map(async (stale) => {
|
|
34059
|
-
try {
|
|
34060
|
-
let reverseProxyNode = NodeConstructor_1.NodeManager.RED.nodes.getNode(stale.proxyNodeId).node();
|
|
34061
|
-
let proxyClient = reverseProxyNode.client();
|
|
34062
|
-
await proxyClient.deleteHost(stale.hostId);
|
|
34063
|
-
} catch (e) {
|
|
34064
|
-
console.error(e);
|
|
34065
|
-
}
|
|
34066
|
-
}));
|
|
34067
|
-
managedProxyHosts.set(nodeId, newlyManaged);
|
|
33934
|
+
setupReverseProxies(nodeConfig, webhookServer);
|
|
34068
33935
|
}
|
|
34069
33936
|
node.node().on("close", () => {
|
|
34070
33937
|
webhookServer.detach(endpointConfig);
|
|
@@ -34141,9 +34008,6 @@ var require_build = __commonJS({
|
|
|
34141
34008
|
__exportStar(require_CounterMetricTemplate(), exports2);
|
|
34142
34009
|
__exportStar(require_GaugeMetricTemplate(), exports2);
|
|
34143
34010
|
__exportStar(require_MetricsConfigNode(), exports2);
|
|
34144
|
-
__exportStar(require_CounterMetricConfigNode(), exports2);
|
|
34145
|
-
__exportStar(require_GaugeMetricConfigNode(), exports2);
|
|
34146
|
-
__exportStar(require_TimerMetricConfigNode(), exports2);
|
|
34147
34011
|
__exportStar(require_TimerMetricTemplate(), exports2);
|
|
34148
34012
|
__exportStar(require_StateService(), exports2);
|
|
34149
34013
|
__exportStar(require_StateConfigNode(), exports2);
|
|
@@ -34157,9 +34021,9 @@ var require_build = __commonJS({
|
|
|
34157
34021
|
__exportStar(require_ScriptEditorTemplate(), exports2);
|
|
34158
34022
|
__exportStar(require_DelegatedConfigReferenceNode(), exports2);
|
|
34159
34023
|
__exportStar(require_InputService(), exports2);
|
|
34160
|
-
__exportStar(require_SettingsService(), exports2);
|
|
34161
34024
|
__exportStar(require_BasicTemplate(), exports2);
|
|
34162
|
-
__exportStar(
|
|
34025
|
+
__exportStar(require_ConfigFragmentService(), exports2);
|
|
34026
|
+
__exportStar(require_ConfigFragmentTemplate(), exports2);
|
|
34163
34027
|
__exportStar(require_WebhookTemplate(), exports2);
|
|
34164
34028
|
__exportStar(require_WebhookServerConfigNode(), exports2);
|
|
34165
34029
|
__exportStar(require_WebhookServerService(), exports2);
|