@theotherwillembotha/node-red-plugincore 0.0.54 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +9 -9
  2. package/build/GenerateNodes.js +0 -1
  3. package/build/Nodes.html +23 -162
  4. package/build/Nodes.js +0 -2
  5. package/build/Plugins.js +2 -3
  6. package/build/core/NodeConstructor.d.ts +1 -0
  7. package/build/core/NodeConstructor.d.ts.map +1 -1
  8. package/build/core/NodeConstructor.js +20 -62
  9. package/build/core/NodeGenerator.d.ts.map +1 -1
  10. package/build/core/NodeGenerator.js +8 -11
  11. package/build/core/logger/LoggerDecorator.d.ts.map +1 -1
  12. package/build/core/logger/LoggerDecorator.js +34 -38
  13. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts +11 -7
  14. package/build/core/logger/node/ConsoleLoggerConfigNode.d.ts.map +1 -1
  15. package/build/core/logger/node/ConsoleLoggerConfigNode.js +24 -10
  16. package/build/core/logger/node/RestLoggerConfigNode.d.ts +22 -6
  17. package/build/core/logger/node/RestLoggerConfigNode.d.ts.map +1 -1
  18. package/build/core/logger/node/RestLoggerConfigNode.js +93 -23
  19. package/build/core/logger/service/LoggerService.d.ts +59 -68
  20. package/build/core/logger/service/LoggerService.d.ts.map +1 -1
  21. package/build/core/logger/service/LoggerService.js +76 -165
  22. package/build/core/logger/template/LoggerTemplate.d.ts +9 -1
  23. package/build/core/logger/template/LoggerTemplate.d.ts.map +1 -1
  24. package/build/core/metrics/node/CounterMetricConfigNode.js +0 -2
  25. package/build/core/metrics/node/GaugeMetricConfigNode.js +0 -2
  26. package/build/core/metrics/node/MetricsConfigNode.js +0 -1
  27. package/build/core/metrics/node/TimerMetricConfigNode.js +0 -2
  28. package/build/core/metrics/service/MetricsService.js +10 -24
  29. package/build/core/other/service/SettingsService.js +0 -2
  30. package/build/core/tagging/service/NodeTypeService.js +1 -2
  31. package/build/core/webhook/WebhookDecorator.d.ts.map +1 -1
  32. package/build/core/webhook/WebhookDecorator.js +47 -10
  33. package/build/core/webhook/node/WebhookServerConfigNode.js +0 -1
  34. package/build/core/webhook/service/ReverseProxyTypeService.d.ts +1 -2
  35. package/build/core/webhook/service/ReverseProxyTypeService.d.ts.map +1 -1
  36. package/build/core/webhook/service/ReverseProxyTypeService.js +1 -6
  37. package/build/core/webhook/service/WebhookServerService.d.ts +1 -1
  38. package/build/core/webhook/service/WebhookServerService.d.ts.map +1 -1
  39. package/build/core/webhook/service/WebhookServerService.js +6 -14
  40. package/build/core/webhook/template/WebhookTemplate.d.ts +1 -1
  41. package/build/core/webhook/template/WebhookTemplate.d.ts.map +1 -1
  42. package/build/index.d.ts +1 -2
  43. package/build/index.d.ts.map +1 -1
  44. package/build/index.js +1 -2
  45. package/build/resources/editorLanguageExtension.js +1 -2
  46. package/package.json +6 -5
  47. package/resources/editorLanguageExtension.js +1 -2
  48. package/src/GenerateNodes.ts +2 -2
  49. package/src/core/NodeConstructor.ts +7 -14
  50. package/src/core/NodeGenerator.ts +2 -3
  51. package/src/core/logger/LoggerDecorator.ts +56 -53
  52. package/src/core/logger/node/ConsoleLoggerConfigNode.ts +39 -14
  53. package/src/core/logger/node/RestLoggerConfigNode.ts +128 -25
  54. package/src/core/logger/service/LoggerService.ts +103 -239
  55. package/src/core/logger/template/LoggerTemplate.html +2 -2
  56. package/src/core/logger/template/LoggerTemplate.ts +11 -1
  57. package/src/core/metrics/node/TimerMetricConfigNode.html +2 -2
  58. package/src/core/other/template/BasicTemplate.html +5 -2
  59. package/src/core/webhook/WebhookDecorator.ts +54 -13
  60. package/src/core/webhook/service/ReverseProxyTypeService.ts +1 -4
  61. package/src/core/webhook/service/WebhookServerService.ts +1 -6
  62. package/src/core/webhook/template/WebhookTemplate.html +1 -1
  63. package/src/core/webhook/template/WebhookTemplate.ts +1 -1
  64. package/src/index.ts +2 -2
  65. package/build/core/logger/node/ConsoleLoggerConfigNode.html +0 -90
  66. package/build/core/logger/node/LokiLoggerConfigNode.d.ts +0 -20
  67. package/build/core/logger/node/LokiLoggerConfigNode.d.ts.map +0 -1
  68. package/build/core/logger/node/LokiLoggerConfigNode.html +0 -117
  69. package/build/core/logger/node/LokiLoggerConfigNode.js +0 -53
  70. package/build/core/logger/node/RestLoggerConfigNode.html +0 -183
  71. package/build/core/logger/service/LoggerServiceTypes.d.ts +0 -24
  72. package/build/core/logger/service/LoggerServiceTypes.d.ts.map +0 -1
  73. package/build/core/logger/service/LoggerServiceTypes.js +0 -30
  74. package/build/core/logger/template/LoggerTemplate.html +0 -331
  75. package/build/core/metrics/node/CounterMetricConfigNode.html +0 -48
  76. package/build/core/metrics/node/GaugeMetricConfigNode.html +0 -48
  77. package/build/core/metrics/node/MetricsConfigNode.html +0 -21
  78. package/build/core/metrics/node/TimerMetricConfigNode.html +0 -190
  79. package/build/core/metrics/template/CounterMetricTemplate.html +0 -40
  80. package/build/core/metrics/template/GaugeMetricTemplate.html +0 -39
  81. package/build/core/metrics/template/MetricsTemplate.html +0 -54
  82. package/build/core/metrics/template/TimerMetricTemplate.html +0 -39
  83. package/build/core/other/node/DelegatedConfigReferenceNode.html +0 -1
  84. package/build/core/other/template/BasicTemplate.html +0 -76
  85. package/build/core/other/template/SettingsTemplate.html +0 -128
  86. package/build/core/ui/template/ScriptEditorTemplate.html +0 -50
  87. package/build/core/ui/template/UIHelperTemplate.html +0 -229
  88. package/build/core/webhook/node/WebhookServerConfigNode.html +0 -61
  89. package/build/core/webhook/template/WebhookTemplate.html +0 -442
  90. package/documentation/LokiLoggerConfigNode.png +0 -0
  91. package/src/core/logger/node/LokiLoggerConfigNode.html +0 -117
  92. package/src/core/logger/node/LokiLoggerConfigNode.ts +0 -58
  93. package/src/core/logger/service/LoggerServiceTypes.ts +0 -26
@@ -1,229 +0,0 @@
1
-
2
- <div template-section="onIncludeOnce">
3
-
4
- <style>
5
- /* ─── PluginCore Dialog overlay ─────────────────────────────────────────── */
6
-
7
- .plugincore-overlay {
8
- position: fixed;
9
- top: 0; left: 0; right: 0; bottom: 0;
10
- background: rgba(0, 0, 0, 0.5);
11
- z-index: 2000;
12
- display: flex;
13
- align-items: center;
14
- justify-content: center;
15
- }
16
-
17
- .plugincore-dialog {
18
- background: #fff;
19
- border: 1px solid #aaa;
20
- border-radius: 4px;
21
- box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
22
- min-width: 540px;
23
- max-width: 85vw;
24
- max-height: 80vh;
25
- display: flex;
26
- flex-direction: column;
27
- overflow: hidden;
28
- }
29
-
30
- /* Title bar — matches Node-RED's main nav bar colour */
31
- .plugincore-dialog-titlebar {
32
- display: flex;
33
- align-items: center;
34
- background: #3d3d3d;
35
- color: #fff;
36
- padding: 6px 8px 6px 12px;
37
- flex-shrink: 0;
38
- }
39
-
40
- .plugincore-dialog-title {
41
- flex: 1;
42
- font-weight: 600;
43
- font-size: 13px;
44
- }
45
-
46
- /* Close button — jQuery UI styling as used in Node-RED dialogs */
47
- .plugincore-dialog-close {
48
- color: #ccc !important;
49
- background: transparent !important;
50
- border-color: transparent !important;
51
- }
52
-
53
- .plugincore-dialog-close:hover {
54
- color: #fff !important;
55
- background: rgba(255, 255, 255, 0.15) !important;
56
- border-color: rgba(255, 255, 255, 0.3) !important;
57
- }
58
-
59
- /* Scrollable body that contains the jQuery UI tab widget */
60
- .plugincore-dialog-body {
61
- flex: 1;
62
- overflow: auto;
63
- padding: 10px;
64
- }
65
-
66
- /* ─── PluginCore Table ───────────────────────────────────────────────────── */
67
-
68
- .plugincore-table {
69
- width: 100%;
70
- border-collapse: collapse;
71
- font-size: 12px;
72
- }
73
-
74
- .plugincore-table th {
75
- background: #f3f3f3;
76
- border: 1px solid #ddd;
77
- padding: 5px 10px;
78
- text-align: left;
79
- font-weight: 600;
80
- white-space: nowrap;
81
- }
82
-
83
- .plugincore-table td {
84
- border: 1px solid #eee;
85
- padding: 5px 10px;
86
- vertical-align: middle;
87
- }
88
-
89
- .plugincore-table tbody tr:nth-child(even) td {
90
- background: #fafafa;
91
- }
92
-
93
- .plugincore-table tbody tr:hover td {
94
- background: #f0f6ff;
95
- }
96
-
97
- .plugincore-status-enabled { color: #27ae60; }
98
- .plugincore-status-disabled { color: #c0392b; }
99
- </style>
100
-
101
- <script type="text/javascript">
102
-
103
- window.PluginCore = window.PluginCore || {};
104
-
105
- /**
106
- * PluginCore.table(config) → jQuery <table>
107
- *
108
- * config: {
109
- * columns : [{ key, label, render?(value, row) → string | jQuery }],
110
- * rows : object[]
111
- * }
112
- */
113
- PluginCore.table = function(config) {
114
- var $table = $('<table class="plugincore-table">');
115
-
116
- // Header
117
- var $thead = $('<thead>');
118
- var $hr = $('<tr>');
119
- config.columns.forEach(function(col) {
120
- $hr.append($('<th>').text(col.label));
121
- });
122
- $thead.append($hr);
123
- $table.append($thead);
124
-
125
- // Body
126
- var $tbody = $('<tbody>');
127
- (config.rows || []).forEach(function(row) {
128
- var $tr = $('<tr>');
129
- config.columns.forEach(function(col) {
130
- var $td = $('<td>');
131
- var val = row[col.key];
132
- if (col.render) {
133
- var rendered = col.render(val, row);
134
- if (rendered && typeof rendered === 'object' && rendered.jquery) {
135
- $td.append(rendered);
136
- } else {
137
- $td.html(rendered != null ? String(rendered) : '');
138
- }
139
- } else {
140
- $td.text(val != null ? String(val) : '');
141
- }
142
- $tr.append($td);
143
- });
144
- $tbody.append($tr);
145
- });
146
- $table.append($tbody);
147
-
148
- return $table;
149
- };
150
-
151
- /**
152
- * PluginCore.dialog(options) → { close() }
153
- *
154
- * options: {
155
- * title : string,
156
- * tabs : [{ label: string, render($container) }]
157
- * }
158
- *
159
- * Uses jQuery UI tabs for the tab widget (already bundled with Node-RED).
160
- * Closes on: close button click, overlay click, or Escape key.
161
- */
162
- PluginCore.dialog = function(options) {
163
- // Only one dialog at a time
164
- $('.plugincore-overlay').remove();
165
-
166
- var uid = 'plugincore-' + Date.now();
167
-
168
- var $overlay = $('<div class="plugincore-overlay">');
169
- var $dialog = $('<div class="plugincore-dialog">');
170
-
171
- // ── Title bar ──────────────────────────────────────────────────────
172
- var $titlebar = $('<div class="plugincore-dialog-titlebar">');
173
- $titlebar.append(
174
- $('<span class="plugincore-dialog-title">').text(options.title || '')
175
- );
176
- var $closeBtn = $(
177
- '<button type="button" class="ui-button ui-corner-all ui-widget plugincore-dialog-close" title="Close">' +
178
- '<span class="ui-icon ui-icon-closethick"></span></button>'
179
- );
180
- $titlebar.append($closeBtn);
181
-
182
- // ── Body + jQuery UI tabs ──────────────────────────────────────────
183
- var $body = $('<div class="plugincore-dialog-body">');
184
- var $tabsEl = $('<div>').attr('id', uid + '-tabs');
185
- var $ul = $('<ul>');
186
-
187
- (options.tabs || []).forEach(function(tab, i) {
188
- var paneId = uid + '-pane-' + i;
189
- $ul.append(
190
- $('<li>').append($('<a>').attr('href', '#' + paneId).text(tab.label))
191
- );
192
- var $pane = $('<div>').attr('id', paneId);
193
- if (tab.render) { tab.render($pane); }
194
- $tabsEl.append($pane);
195
- });
196
-
197
- $tabsEl.prepend($ul);
198
- $body.append($tabsEl);
199
-
200
- // ── Assemble ───────────────────────────────────────────────────────
201
- $dialog.append($titlebar).append($body);
202
- $overlay.append($dialog);
203
- $('body').append($overlay);
204
-
205
- // Initialise jQuery UI tabs (bundled with Node-RED)
206
- $tabsEl.tabs();
207
-
208
- // ── Close logic ───────────────────────────────────────────────────
209
- var escNs = 'keydown.plugincore-dialog-' + uid;
210
-
211
- function close() {
212
- $overlay.fadeOut(150, function() { $overlay.remove(); });
213
- $(document).off(escNs);
214
- }
215
-
216
- $closeBtn.on('click', close);
217
- $overlay.on('click', function(e) {
218
- if ($(e.target).is($overlay)) { close(); }
219
- });
220
- $(document).on(escNs, function(e) {
221
- if (e.key === 'Escape') { close(); }
222
- });
223
-
224
- return { close: close };
225
- };
226
-
227
- </script>
228
-
229
- </div>
@@ -1,61 +0,0 @@
1
-
2
- <script type="text/javascript" template-section="onCompose">
3
- node
4
- .addDefault("name", { value:"Webhook Example", required:true})
5
- .addDefault("port", { value:6644, required:true})
6
- .addDefault("externalHost", { value:"localhost", required:true })
7
- .addDefault("externalPort", { value:6644, required:true})
8
- .addDefault("name", { value:"Example Test Node", required:true})
9
- .setPaletteLabel("Webhook")
10
- .setLabelStyle("node_label_white")
11
- .setLabel(function() {return this.name })
12
- .setColor("#0050E5")
13
- .setInput("testInput")
14
- .addOutputs("testOutput1","testOutput2","testOutput3")
15
- </script>
16
-
17
- <div template-section="onIncludeOnce">
18
- </div>
19
-
20
-
21
- <script type="text/html" template-section="onIncludeEditForm">
22
- <div id="WebhookServerConfig">
23
- <div class="form-row">
24
- <label class="towb_editorlabel" for="node-config-input-name"><i class="fa fa-font"></i> Name</label>
25
- <input type="text" id="node-config-input-name" />
26
- </div>
27
-
28
- <div class="form-row">
29
- <label class="towb_editorlabel" for="node-config-input-port"><i class="fa fa-plug"></i> Port</label>
30
- <input type="number" id="node-config-input-port" />
31
- </div>
32
-
33
- <div class="form-row">
34
- <label class="towb_editorlabel" for="node-config-input-externalHost"><i class="fa fa-globe"></i> External Host</label>
35
- <input type="text" id="node-config-input-externalHost" />
36
- </div>
37
-
38
- <div class="form-row">
39
- <label class="towb_editorlabel" for="node-config-input-externalPort"><i class="fa fa-plug"></i> External Port</label>
40
- <input type="number" id="node-config-input-externalPort" />
41
- </div>
42
- <!-- add a button here to autmatically find an open port -->
43
- </div>
44
-
45
- </script>
46
-
47
- <script type="text/markdown" template-section="onIncludeDocumentation">
48
- Configuration node for an Express HTTP server that webhook nodes attach to. A single server instance is shared by all webhook nodes that reference it. The server is started when the flow is first deployed and stopped when it is torn down.
49
-
50
- ### Inputs
51
- : *name* (string) : A descriptive name for this webhook server.
52
- : *port* (number) : The local port the HTTP server will listen on. Defaults to `6644`. Each server instance must use a unique port.
53
-
54
- ### Reverse Proxy
55
- When this server sits behind a reverse proxy, configure the following fields so that webhook nodes know the externally-visible address. This is used when registering endpoints with a reverse proxy service.
56
-
57
- : *external host* (string) : The public hostname or IP of the reverse proxy (e.g. `myserver.example.com`).
58
- : *external port* (number) : The public port exposed by the reverse proxy.
59
- </script>
60
-
61
-