@node-red/nodes 2.1.3 → 2.1.4

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.
@@ -353,14 +353,16 @@
353
353
  },
354
354
  oneditprepare: function() {
355
355
  var node = this;
356
+ var payloadType = node.payloadType;
357
+
356
358
  if (node.payloadType == null) {
357
359
  if (node.payload == "") {
358
- node.payloadType = "date";
360
+ payloadType = "date";
359
361
  } else {
360
- node.payloadType = "str";
362
+ payloadType = "str";
361
363
  }
362
364
  } else if (node.payloadType === 'string' || node.payloadType === 'none') {
363
- node.payloadType = "str";
365
+ payloadType = "str";
364
366
  }
365
367
 
366
368
  $("#inject-time-type-select").on("change", function() {
@@ -557,7 +559,7 @@
557
559
  var payload = {
558
560
  p:'payload',
559
561
  v: node.payload ? node.payload : '',
560
- vt:node.payloadType ? node.payloadType : 'date'
562
+ vt:payloadType ? payloadType : 'date'
561
563
  };
562
564
  var topic = {
563
565
  p:'topic',
@@ -573,7 +575,7 @@
573
575
  if (newProp.v === undefined) {
574
576
  if (prop.p === 'payload') {
575
577
  newProp.v = node.payload ? node.payload : '';
576
- newProp.vt = node.payloadType ? node.payloadType : 'date';
578
+ newProp.vt = payloadType ? payloadType : 'date';
577
579
  } else if (prop.p === 'topic' && prop.vt === "str") {
578
580
  newProp.v = node.topic ? node.topic : '';
579
581
  }
@@ -280,6 +280,18 @@ module.exports = function(RED) {
280
280
  root: path.join(__dirname,"lib","debug"),
281
281
  dotfiles: 'deny'
282
282
  };
283
- res.sendFile(req.params[0], options);
283
+ try {
284
+ res.sendFile(
285
+ req.params[0],
286
+ options,
287
+ err => {
288
+ if (err) {
289
+ res.sendStatus(404);
290
+ }
291
+ }
292
+ )
293
+ } catch(err) {
294
+ res.sendStatus(404);
295
+ }
284
296
  });
285
297
  };
@@ -372,6 +372,7 @@ module.exports = function(RED) {
372
372
  hit = false;
373
373
  for (var b in node.buffer) { // check if already in queue
374
374
  if (msg.topic === node.buffer[b].msg.topic) {
375
+ if (node.outputs === 2) { send([null,node.buffer[b].msg]) }
375
376
  node.buffer[b].done();
376
377
  node.buffer[b] = {msg, send, done}; // if so - replace existing entry
377
378
  hit = true;
@@ -298,18 +298,14 @@ in your Node-RED user directory (${RED.settings.userDir}).
298
298
  }
299
299
  if (Object.keys(this.credentials).length != 0) {
300
300
  if (this.authType === "basic") {
301
- // Workaround for https://github.com/sindresorhus/got/issues/1169
302
- var cred = ""
303
- if (this.credentials.user) {
304
- // opts.username = this.credentials.user;
305
- cred = this.credentials.user
306
- }
307
- if (this.credentials.password) {
308
- // opts.password = this.credentials.password;
309
- cred += ":" + this.credentials.password
301
+ // Workaround for https://github.com/sindresorhus/got/issues/1169 (fixed in got v12)
302
+ // var cred = ""
303
+ if (this.credentials.user || this.credentials.password) {
304
+ // cred = `${this.credentials.user}:${this.credentials.password}`;
305
+ opts.headers.Authorization = "Basic " + Buffer.from(`${this.credentials.user}:${this.credentials.password}`).toString("base64");
310
306
  }
311
307
  // build own basic auth header
312
- opts.headers.Authorization = "Basic " + Buffer.from(cred).toString("base64");
308
+ // opts.headers.Authorization = "Basic " + Buffer.from(cred).toString("base64");
313
309
  } else if (this.authType === "digest") {
314
310
  let digestCreds = this.credentials;
315
311
  let sentCreds = false;
@@ -25,7 +25,7 @@
25
25
  <dd>Optional nutzbare Nachrichten-Eigenschaft.</dd>
26
26
  </dl>
27
27
  <h3>Details</h3>
28
- <p>Der <span style="background-color:Gainsboro">inject</span>-Node kann einen Flow mit einstellbaren Nutzdaten (Payload) starten.
28
+ <p>Der inject-Node kann einen Flow mit einstellbaren Nutzdaten (Payload) starten.
29
29
  Der voreingestellte Payload ist die aktuelle Zeit als Zeitstempel in Millisekunden
30
30
  seit Beginn der Unix-Zeitrechnung (1. Januar 1970 UTC).</p>
31
31
  <p>Der Node unterstützt auch die Injektion von Zeichenfolgen, Zahlenwerten, Booleschen Werten,
@@ -34,7 +34,7 @@
34
34
  Er kann auch in regelmäßigen Intervallen oder nach einem Zeitplan injizieren.</p>
35
35
  <p>Er kann auch so eingestellt werden, dass er jedes Mal einen Wert injiziert, wenn der Flow gestartet wird.</p>
36
36
  <p>Das maximal einstellbare Intervall beträgt etwa 596 Stunden bzw. 24 Tage.
37
- Wenn jedoch Intervalle größer als 24h benötigt werden, sollte ein <span style="background-color:Gainsboro">scheduler</span>-Node verwendet werden,
37
+ Wenn jedoch Intervalle größer als 24h benötigt werden, sollte ein scheduler-Node verwendet werden,
38
38
  der mit Stromausfällen und Neustarts besser umgehen kann.</p>
39
39
  <p><b>Hinweis</b>: Die Optionen <i>"Intervall zwischen Uhrzeiten"</i> und <i>"Täglicher Zeitpunkt"</i>
40
40
  verwenden das Standard-Cron-System.</p>
@@ -23,10 +23,10 @@
23
23
  <p>JavaScript-Objekte und -Arrays können nach Bedarf ein- und ausgeblendet werden.
24
24
  Binäre Puffer-Objekte (buffer objects) können nach Möglichkeit als Rohdaten oder als Zeichenfolge (string) angezeigt werden.</p>
25
25
  <p>Neben der eigentlichen Nachricht werden im Debug-Tab auch der Empfangszeitpunkt,
26
- der empfangende <span style="background-color:Gainsboro">debug</span>-Node, sowie Name und Typ der Nachricht protokolliert.
27
- Durch Klicken auf die Node-ID wird der entsprechende <span style="background-color:Gainsboro">debug</span>-Node im Arbeitsbereich angezeigt.</p>
28
- <p>Die Schaltfläche des <span style="background-color:Gainsboro">debug</span>-Nodes kann verwendet werden, um die Debug-Ausgabe ein- und auszuschalten.
29
- Es ist empfehlenswert, alle nicht verwendeten <span style="background-color:Gainsboro">debug</span>-Nodes zu deaktivieren oder gleich zu entfernen.</p>
30
- <p>Der <span style="background-color:Gainsboro">debug</span>-Node kann auch so eingestellt werden, dass außerdem alle Nachrichten in der Systemkonsole ausgegeben und/oder
31
- als kurze Statustexte (max. 32 Zeichen) unter dem <span style="background-color:Gainsboro">debug</span>-Node angezeigt werden.</p>
26
+ der empfangende debug-Node, sowie Name und Typ der Nachricht protokolliert.
27
+ Durch Klicken auf die Node-ID wird der entsprechende debug-Node im Arbeitsbereich angezeigt.</p>
28
+ <p>Die Schaltfläche des debug-Nodes kann verwendet werden, um die Debug-Ausgabe ein- und auszuschalten.
29
+ Es ist empfehlenswert, alle nicht verwendeten debug-Nodes zu deaktivieren oder gleich zu entfernen.</p>
30
+ <p>Der debug-Node kann auch so eingestellt werden, dass außerdem alle Nachrichten in der Systemkonsole ausgegeben und/oder
31
+ als kurze Statustexte (max. 32 Zeichen) unter dem debug-Node angezeigt werden.</p>
32
32
  </script>
@@ -18,11 +18,11 @@
18
18
  <p>Anstoß eines weiteren Flows, wenn ein anderer Node seine Nachrichtenbearbeitung abgeschlossen hat.</p>
19
19
  <h3>Details</h3>
20
20
  <p>Wenn ein Node die Bearbeitung seiner Nachrichten abgeschlossen hat,
21
- kann der <span style="background-color:Gainsboro">complete</span>-Node dazu benutzt werden, einen weiteren Flow anzustoßen.</p>
21
+ kann der complete-Node dazu benutzt werden, einen weiteren Flow anzustoßen.</p>
22
22
  <p>Der Node kann z.B. mit einem anderen Node ohne Ausgang verknüpft werden
23
23
  (z.B. E-Mail-Sende-Node), um den Flow fortzusetzen.</p>
24
24
  <p>Im Node werden dazu die zu überwachenden Nodes des selben Flows ausgewählt.
25
- Im Gegensatz zum <span style="background-color:Gainsboro">catch</span>-Node besteht hier jedoch nicht die Auswahlmöglichkeit aller Nodes des Flows.</p>
25
+ Im Gegensatz zum catch-Node besteht hier jedoch nicht die Auswahlmöglichkeit aller Nodes des Flows.</p>
26
26
  <p>Nicht alle Nodes können diesen Node anstoßen.
27
27
  Es hängt davon ab, ob die auslösenden Knoten diese Funktion unterstützen,
28
28
  welche erst mit Node-RED 1.0 eingeführt wurde.</p>
@@ -29,13 +29,13 @@
29
29
  </dl>
30
30
  <h3>Details</h3>
31
31
  <p>Wenn ein Node bei der Verarbeitung einer Nachricht einen Fehler verursacht, wird der Flow in der Regel angehalten.
32
- Der <span style="background-color:Gainsboro">catch</span>-Node kann verwendet werden, um diese Fehler abzufangen und sie mit einem dedizierten Flow zu bearbeiten.</p>
32
+ Der catch-Node kann verwendet werden, um diese Fehler abzufangen und sie mit einem dedizierten Flow zu bearbeiten.</p>
33
33
  <p>Der Node fängt standardmäßig die Fehler aller Nodes im selben Flow ab.
34
34
  Alternativ kann er auch an bestimmte Nodes gebunden werden.</p>
35
- <p>Wenn ein Fehler ausgelöst wird, empfangen alle angebundenen <span style="background-color:Gainsboro">catch</span>-Nodes die Fehlermeldung.</p>
36
- <p>Wenn ein Fehler in einem Subflow ausgelöst wird, wird der Fehler von einem <span style="background-color:Gainsboro">catch</span>-Node
35
+ <p>Wenn ein Fehler ausgelöst wird, empfangen alle angebundenen catch-Nodes die Fehlermeldung.</p>
36
+ <p>Wenn ein Fehler in einem Subflow ausgelöst wird, wird der Fehler von einem catch-Node
37
37
  innerhalb des Subflows abgefangen.
38
- Wenn im Subflow keine <span style="background-color:Gainsboro">catch</span>-Nodes vorhanden sind, wird die Fehlermeldung eine Ebene höher zum Flow weitergereicht,
38
+ Wenn im Subflow keine catch-Nodes vorhanden sind, wird die Fehlermeldung eine Ebene höher zum Flow weitergereicht,
39
39
  in der sich die Subflow-Instanz befindet.</p>
40
40
  <p>Wenn die Nachricht bereits über eine <code>error</code>-Eigenschaft verfügt, wird sie nach <code>_error</code> kopiert.</p>
41
41
  </script>
@@ -17,7 +17,7 @@
17
17
  <script type="text/html" data-help-name="link in">
18
18
  <p>Erstellung virtueller Verbindungen (Links) zwischen Flows.</p>
19
19
  <h3>Details</h3>
20
- <p>Der Node kann mit jedem beliebigen <span style="background-color:Gainsboro">link&nbsp;out</span>-Node in einen beliebigen Flow-Tab verlinkt werden.
20
+ <p>Der Node kann mit jedem beliebigen link&nbsp;out-Node in einen beliebigen Flow-Tab verlinkt werden.
21
21
  Sobald sie verlinkt sind, verhalten sie sich so, als wären sie direkt miteinander verbunden.</p>
22
22
  <p>Die Links zwischen Link-Nodes werden nur angezeigt, wenn ein Link-Node ausgewählt ist.
23
23
  Wenn Links zu anderen Flow-Tabs vorhanden sind, werden virtuelle Link-Nodes als Gegenparts angezeigt,
@@ -28,7 +28,7 @@
28
28
  <script type="text/html" data-help-name="link out">
29
29
  <p>Erstellung virtueller Verbindungen (Links) zwischen Flows.</p>
30
30
  <h3>Details</h3>
31
- <p>Der Node kann mit jedem beliebigen <span style="background-color:Gainsboro">link&nbsp;in</span>-Node in einen beliebigen Flow-Tab verlinkt werden.
31
+ <p>Der Node kann mit jedem beliebigen link&nbsp;in-Node in einen beliebigen Flow-Tab verlinkt werden.
32
32
  Sobald sie verlinkt sind, verhalten sie sich so, als wären sie direkt miteinander verbunden.</p>
33
33
  <p>Die Links zwischen Link-Nodes werden nur angezeigt, wenn ein Link-Node ausgewählt ist.
34
34
  Wenn Links zu anderen Flow-Tabs vorhanden sind, werden virtuelle Link-Nodes als Gegenparts angezeigt,
@@ -47,7 +47,7 @@
47
47
  <li><code>node.error("Fehlermeldungstext")</code></li>
48
48
  </ul>
49
49
  </p>
50
- <p>Der <span style="background-color:Gainsboro">catch</span>-Node kann auch zur Bearbeitung von Fehlern verwendet werden.
50
+ <p>Der catch-Node kann auch zur Bearbeitung von Fehlern verwendet werden.
51
51
  Er wird aufgerufen, indem <code>msg</code> als zweites Argument an <code>node.error</code> übergeben wird:</p>
52
52
  <pre>node.error("Fehlermeldungstext" ,msg);</pre>
53
53
  <h4><b>Zugriff auf Node-Informationen</b></h4>
@@ -27,7 +27,7 @@
27
27
  <ol>
28
28
  <li><b>value rules</b>: Regeln werden hinsichtlich einer eingestellten Eigenschaft ausgewertet</li>
29
29
  <li><b>sequence rules</b>: Regeln beziehen sich auf Nachrichtensequenzen,
30
- wie sie beispielsweise durch den <span style="background-color:Gainsboro">split</span>-Node erzeugt werden</li>
30
+ wie sie beispielsweise durch den split-Node erzeugt werden</li>
31
31
  <li>Ein <b>JSONata-Ausdruck</b> kann die gesamte Eingangsnachricht auswerten und einen <code>true</code>-Wert zurückliefern,
32
32
  um eine Regelerfüllung zu signalisieren</li>
33
33
  <li>Die <b>ansonsten</b>-Regel wird angewendet, wenn keine vorhergehende Regel übereinstimmt</li>
@@ -25,9 +25,9 @@
25
25
  <dt class="optional">payload <span class="property-type">string</span></dt>
26
26
  <dd>Wird an auszuführenden Befehl angehängt, sofern im Node aktiviert.</dd>
27
27
  <dt class="optional">kill <span class="property-type">string</span></dt>
28
- <dd>Typ des Kill-Signals, das an den zu beendenden <span style="background-color:Gainsboro">exec</span>-Node-Prozess gesendet wird.</dd>
28
+ <dd>Typ des Kill-Signals, das an den zu beendenden exec-Node-Prozess gesendet wird.</dd>
29
29
  <dt class="optional">pid <span class="property-type">number | string</span></dt>
30
- <dd>Prozess-ID des zu beendenden <span style="background-color:Gainsboro">exec</span>-Node-Prozesses.</dd>
30
+ <dd>Prozess-ID des zu beendenden exec-Node-Prozesses.</dd>
31
31
  </dl>
32
32
  <h3>Ausgangsdaten</h3>
33
33
  <ol class="node-ports">
@@ -75,7 +75,7 @@
75
75
  <p>Die zurückgegebenen Daten (Payload) sind in der Regel eine <i>Zeichenfolge (string)</i>,
76
76
  außer es werden nicht UTF-8-Zeichen wie bei einem <i>binären Puffer (buffer)</i> erkannt.</p>
77
77
  <p>Bei einem aktiven Node werden Status und die PID angezeigt.
78
- Änderungen können mittels <span style="background-color:Gainsboro">status</span>-Node gelesen werden.</p>
78
+ Änderungen können mittels status-Node gelesen werden.</p>
79
79
  <h4><b>Prozesse beenden</b></h4>
80
80
  <p>Durch Senden von <code>msg.kill</code> wird ein einzelner aktiver Prozess beendet.
81
81
  <code>msg.kill</code> sollte als Zeichenfolge (string) den Signaltyp enthalten,
@@ -94,7 +94,7 @@
94
94
  "label": {
95
95
  "source": "Fehler abfangen von",
96
96
  "selectAll": "Alles auswählen",
97
- "uncaught": "Fehler ignorieren, die von anderen <span style=\"background-color:Gainsboro\">catch</span>-Nodes behandelt wurden"
97
+ "uncaught": "Fehler ignorieren, die von anderen catch-Nodes behandelt wurden"
98
98
  },
99
99
  "scope": {
100
100
  "all": "allen Nodes",
@@ -475,12 +475,12 @@
475
475
  "json": "Ein parsed JSON-Objekt",
476
476
  "tip": {
477
477
  "in": "Die URL ist relativ zu ",
478
- "res": "Die an diesen Node gesendeten Nachrichten <b>müssen</b> von einem <span style=\"background-color:Gainsboro\">http&nbsp;in</span>-Node stammen",
478
+ "res": "Die an diesen Node gesendeten Nachrichten <b>müssen</b> von einem http&nbsp;in-Node stammen",
479
479
  "req": "Tipp: Wenn die JSON-Syntax-Analyse fehlschlägt, wird die abgerufene Zeichenfolge zurückgegeben, wie sie ist."
480
480
  },
481
481
  "httpreq": "http request",
482
482
  "errors": {
483
- "not-created": "<span style=\"background-color:Gainsboro\">http in</span>-Node kann nicht erstellt werden, wenn httpNodeRoot auf 'false' gesetzt ist.",
483
+ "not-created": "http in-Node kann nicht erstellt werden, wenn httpNodeRoot auf 'false' gesetzt ist.",
484
484
  "missing-path": "Fehlender Pfad",
485
485
  "no-response": "Kein Antwort-Objekt",
486
486
  "json-error": "JSON-Parse-Fehler",
@@ -684,7 +684,7 @@
684
684
  },
685
685
  "errors": {
686
686
  "invalid-expr": "Ungültiger JSONata-Ausdruck: __error__",
687
- "too-many": "Zu viele anstehende Nachrichten im <span style=\"background-color:Gainsboro\">switch</span>-Node"
687
+ "too-many": "Zu viele anstehende Nachrichten im switch-Node"
688
688
  }
689
689
  },
690
690
  "change": {
@@ -851,7 +851,6 @@
851
851
  "outputas": "Ausgabe",
852
852
  "breakchunks": "In Chunks aufteilen",
853
853
  "breaklines": "In Linien aufteilen",
854
- "filelabel": "file",
855
854
  "sendError": "Nachricht bei Fehler senden (herkömmlicher Modus)",
856
855
  "encoding": "Kodierung",
857
856
  "deletelabel": "lösche __file__",
@@ -940,8 +939,8 @@
940
939
  "afterTimeout": "Bei Zeitablauf nach erster Nachricht von",
941
940
  "seconds": "Sekunden",
942
941
  "complete": "Nach Nachricht mit <code>msg.complete</code>-Eigenschaft",
943
- "tip": "Dieser Modus setzt voraus, dass dieser Node entweder mit einem <span style=\"background-color:Gainsboro\">split</span>-Node kombiniert ist oder dass die empfangenen Nachrichten über eine ordnungsgemäß konfigurierte <code>msg.parts</code>-Eigenschaft verfügen.",
944
- "too-many": "Zu viele anstehende Nachrichten im <span style=\"background-color:Gainsboro\">join</span>-Node",
942
+ "tip": "Dieser Modus setzt voraus, dass dieser Node entweder mit einem split-Node kombiniert ist oder dass die empfangenen Nachrichten über eine ordnungsgemäß konfigurierte <code>msg.parts</code>-Eigenschaft verfügen.",
943
+ "too-many": "Zu viele anstehende Nachrichten im join-Node",
945
944
  "merge": {
946
945
  "topics-label": "Zusammengeführte Topics",
947
946
  "topics": "Topics",
@@ -970,9 +969,9 @@
970
969
  "ascending": "aufsteigend",
971
970
  "descending": "absteigend",
972
971
  "as-number": "als Zahlenwert",
973
- "invalid-exp": "Ungültiger JSONata-Ausdruck in <span style=\"background-color:Gainsboro\">sort</span>-Node: __message__",
974
- "too-many": "Zu viele anstehende Nachrichten in <span style=\"background-color:Gainsboro\">sort</span>-Node",
975
- "clear": "Anstehende Nachricht in <span style=\"background-color:Gainsboro\">sort</span>-Node löschen"
972
+ "invalid-exp": "Ungültiger JSONata-Ausdruck in sort-Node: __message__",
973
+ "too-many": "Zu viele anstehende Nachrichten in sort-Node",
974
+ "clear": "Anstehende Nachricht in sort-Node löschen"
976
975
  },
977
976
  "batch": {
978
977
  "batch": "batch",
@@ -997,7 +996,7 @@
997
996
  "topics-label": "Topics",
998
997
  "topic": "Topic"
999
998
  },
1000
- "too-many": "Zu viele anstehende Nachrichten im <span style=\"background-color:Gainsboro\">batch</span>-Node",
999
+ "too-many": "Zu viele anstehende Nachrichten im batch-Node",
1001
1000
  "unexpected": "Unerwarteter Modus",
1002
1001
  "no-parts": "Keine parts-Eigenschaft in Nachricht"
1003
1002
  },
@@ -94,8 +94,8 @@
94
94
  <script type="text/html" data-help-name="mqtt-broker">
95
95
  <p>Konfiguration der Verbindung zu einem MQTT-Broker.</p>
96
96
  <p>Diese Konfiguration erstellt eine einzelne Verbindung zu einem Broker,
97
- welche anschließend von den <span style="background-color:Gainsboro">mqtt&nbsp;in</span>- und
98
- <span style="background-color:Gainsboro">mqtt out</span>-Nodes verwendet werden.</p>
97
+ welche anschließend von den mqtt&nbsp;in- und
98
+ mqtt out-Nodes verwendet werden.</p>
99
99
  <p>Der Node generiert eine beliebige Client-ID, falls sie nicht vorgegeben ist und der
100
100
  Node eine bereinigte Sitzung (clean session) verwenden soll.
101
101
  Wenn eine Client-ID vorgegeben wird, muss sie für den Broker eindeutig sein, zu dem die Verbindung hergestellt werden soll.</p>
@@ -36,7 +36,7 @@
36
36
  <dt>res <span class="property-type">object</span></dt>
37
37
  <dd>HTTP-Antwortobjekt.<br/>
38
38
  Diese Eigenschaft sollte nicht direkt verwendet werden.
39
- Im <span style="background-color:Gainsboro">http&nbsp;response</span>-Node ist dokumentiert, wie auf eine Anforderung reagiert wird.
39
+ Im http&nbsp;response-Node ist dokumentiert, wie auf eine Anforderung reagiert wird.
40
40
  Diese Eigenschaft muss an der Nachricht angehängt bleiben, die an den Antwort-Node übergeben wird.</dd>
41
41
  </dl>
42
42
  <h3>Details</h3>
@@ -50,12 +50,12 @@
50
50
  <p>Wenn der Inhaltstyp der Anforderung ermittelt werden kann, wird der Hauptteil als passender Typ analysiert.
51
51
  Z.B. <code>application/json</code> wird zu einem JavaScript-Objekt analysiert.</p>
52
52
  <p><b>Hinweis</b>: Dieser Node sendet keine Antwort an die Anforderung.
53
- Der Flow muss einen <span style="background-color:Gainsboro">http&nbsp;response</span>-Node enthalten,
53
+ Der Flow muss einen http&nbsp;response-Node enthalten,
54
54
  um die Anforderung zu vervollständigen.</p>
55
55
  </script>
56
56
 
57
57
  <script type="text/html" data-help-name="http response">
58
- <p>Senden von Antworten auf Anforderungen, die von einem <span style="background-color:Gainsboro">http&nbsp;in</span>-Node empfangen wurden.</p>
58
+ <p>Senden von Antworten auf Anforderungen, die von einem http&nbsp;in-Node empfangen wurden.</p>
59
59
  <h3>Eingangsdaten</h3>
60
60
  <dl class="message-properties">
61
61
  <dt>payload <span class="property-type">string</span></dt>
@@ -34,17 +34,17 @@
34
34
  </ul>
35
35
  </dd>
36
36
  <dt>schemaError <span class="property-type">array</span></dt>
37
- <dd>Wenn die JSON-Schema-Validierung fehlschlägt, wird für den <span style="background-color:Gainsboro">catch</span>-Node eine <code>schemaError</code>-Eigenschaft erstellt,
37
+ <dd>Wenn die JSON-Schema-Validierung fehlschlägt, wird für den catch-Node eine <code>schemaError</code>-Eigenschaft erstellt,
38
38
  die ein Array von Fehlern enthält.</dd>
39
39
  </dl>
40
40
  <h3>Details</h3>
41
41
  <p>Standardmäßig verarbeitet der Node <code>msg.payload</code>,
42
42
  kann aber auch eine beliebige Nachrichteneigenschaft konvertieren.</p>
43
43
  <p>Die Konvertierungsrichtung kann im Node auch vorgegeben werden, um eine bestimmte Ziel-Kodierung sicherzustellen.
44
- Dies kann z.B. zusammen mit dem <span style="background-color:Gainsboro">http&nbsp;in</span>-Node benutzt werden, um sicherzustellen,
44
+ Dies kann z.B. zusammen mit dem http&nbsp;in-Node benutzt werden, um sicherzustellen,
45
45
  dass die Nutzdaten (Payload) ein analysiertes (parsed) Objekt ist,
46
46
  auch wenn eine eingehende Anfrage seinen Inhaltstyp nicht korrekt eingestellt hat,
47
- damit der <span style="background-color:Gainsboro">http&nbsp;in</span>-Node die Konvertierung durchführen kann.</p>
47
+ damit der http&nbsp;in-Node die Konvertierung durchführen kann.</p>
48
48
  <p>Wenn der Node auf Zeichenfolgen-Eingang (string) eingestellt ist und es einen String empfängt,
49
49
  werden keine weiteren Prüfungen der Eigenschaft durchgeführt.
50
50
  Der Node prüft weder, ob die Zeichenfolge (string) ein gültiges JSON enthält, noch wird er ihn neu formatieren,
@@ -32,7 +32,7 @@
32
32
  <dl class="message-properties">
33
33
  <dt>parts <span class="property-type">object</span></dt>
34
34
  <dd>Diese Eigenschaft enthält Informationen darüber, wie die Nachricht von der ursprünglichen Nachricht abgeteilt wurde.
35
- Bei Übergabe an ein <span style="background-color:Gainsboro">join</span>-Node kann die Sequenz wieder zu einer einzigen Nachricht zusammengeführt werden.
35
+ Bei Übergabe an ein join-Node kann die Sequenz wieder zu einer einzigen Nachricht zusammengeführt werden.
36
36
  Diese Eigenschaft hat die folgenden Eigenschaften:
37
37
  <ul>
38
38
  <li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
@@ -48,7 +48,7 @@
48
48
  </dl>
49
49
  <h3>Details</h3>
50
50
  <p>Dieser Node macht es einfach, einen Flow zu erstellen, der gemeinsame Aktionen über eine Sequenz von Nachrichten ausführt,
51
- bevor die Sequenz mittels <span style="background-color:Gainsboro">join</span>-Node wieder zu einer einzigen Nachricht neu kombiniert wird.</p>
51
+ bevor die Sequenz mittels join-Node wieder zu einer einzigen Nachricht neu kombiniert wird.</p>
52
52
  <p>Der Node verwendet die <code>msg.parts</code>-Eigenschaft, um die einzelnen Sequenzteile nachzuverfolgen.</p>
53
53
  <h4><b>Streaming-Modus</b></h4>
54
54
  <p>Der Node kann auch zum Aufbereiten eines Nachrichtenstroms verwendet werden.
@@ -59,7 +59,7 @@
59
59
  so wird es im Node aufbewahrt und der nächsten empfangenen Nachricht vorangestellt.</p>
60
60
  <p>In diesem Modus wird die <code>msg.parts.count</code>-Eigenschaft nicht gesetzt,
61
61
  da die Anzahl der zu erwartenden Nachrichten im Stream unbekannt ist.
62
- Das bedeutet, dass ein nachfolgender <span style="background-color:Gainsboro">join</span>-Node nicht im Automatikmodus verwendet werden kann.</p>
62
+ Das bedeutet, dass ein nachfolgender join-Node nicht im Automatikmodus verwendet werden kann.</p>
63
63
  </script>
64
64
 
65
65
  <script type="text/html" data-help-name="join">
@@ -67,7 +67,7 @@
67
67
  <p>Es sind drei Modi verfügbar:</p>
68
68
  <dl>
69
69
  <dt>Automatisch</dt>
70
- <dd>In Kombination mit dem <span style="background-color:Gainsboro">split</span>-Node verbindet es automatisch die Nachrichten, um die zuvor durchgeführte Aufteilung rückgängig zu machen.</dd>
70
+ <dd>In Kombination mit dem split-Node verbindet es automatisch die Nachrichten, um die zuvor durchgeführte Aufteilung rückgängig zu machen.</dd>
71
71
  <dt>Manuell</dt>
72
72
  <dd>Die Nachrichtensequenzen können auf verschiedene Weisen verbunden werden.</dd>
73
73
  <dt>Sequenz reduzieren</dt>
@@ -77,7 +77,7 @@
77
77
  <dl class="message-properties">
78
78
  <dt class="optional">parts <span class="property-type">object</span></dt>
79
79
  <dd>Zur automatischen Verbindung einer Nachrichtensequenz sollten alle über diese Eigenschaft verfügen.
80
- Der <span style="background-color:Gainsboro">split</span>-Node erzeugt diese Eigenschaft, sie kann aber auch manuell erstellt werden.
80
+ Der split-Node erzeugt diese Eigenschaft, sie kann aber auch manuell erstellt werden.
81
81
  Sie hat die folgenden Eigenschaften:
82
82
  <ul>
83
83
  <li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
@@ -98,7 +98,7 @@
98
98
  <h4><b>Automatischer Modus</b></h4>
99
99
  <p>Der automatische Modus verwendet die <code>parts</code>-Eigenschaften der eingehenden Nachrichten,
100
100
  um die Sequenz in richtiger Reihenfolge zu verknüpften.
101
- Dies ermöglicht die Aufteilung des <span style="background-color:Gainsboro">split</span>-Nodes automatisch rückgängig zu machen.</p>
101
+ Dies ermöglicht die Aufteilung des split-Nodes automatisch rückgängig zu machen.</p>
102
102
 
103
103
  <h4><b>Manueller Modus</b></h4>
104
104
  <p>Im manuellen Modus werden Nachrichtensequenzen auf verschiedenen Arten zusammengefügt:</p>
@@ -26,8 +26,8 @@
26
26
  <p>Für Zahlenwerte kann die numerische Sortierreihenfolge festgelegt werden.</p>
27
27
  <p>Der Sortierschlüssel kann ein Elementwert oder ein JSONata-Ausdruck beim Sortieren einer Nachrichteneigenschaft
28
28
  bzw. eine Nachrichteneigenschaft oder ein JSONata-Ausdruck beim Sortieren einer Nachrichtensequenz sein.<p>
29
- <p>Zum Sortieren einer Nachrichtensequenz benötigt der <span style="background-color:Gainsboro">sort</span>-Node die gesetzte <code>msg.parts</code>-Eigenschaft bei den empfangenen Nachrichten.
30
- Diese Eigenschaft wird vom <span style="background-color:Gainsboro">split</span>-Node erzeugt und kann aber auch manuell erzeugt werden.
29
+ <p>Zum Sortieren einer Nachrichtensequenz benötigt der sort-Node die gesetzte <code>msg.parts</code>-Eigenschaft bei den empfangenen Nachrichten.
30
+ Diese Eigenschaft wird vom split-Node erzeugt und kann aber auch manuell erzeugt werden.
31
31
  Sie hat die folgenden Eigenschaften:</p>
32
32
  <p>
33
33
  <ul>
@@ -58,5 +58,5 @@
58
58
  aber typischerweise 64k (Linux/Mac) oder 41k (Windows).</p>
59
59
  <p>Bei Aufteilung in mehrere Nachrichten besitzt jede eine <code>parts</code>-Eigenschaft,
60
60
  welche eine komplette Nachrichten-Sequenz bildet.</p>
61
- <p>Fehler sollten mittels <span style="background-color:Gainsboro">catch</span>-Nodes abgefangen und behandelt werden.</p>
61
+ <p>Fehler sollten mittels catch-Nodes abgefangen und behandelt werden.</p>
62
62
  </script>
@@ -29,3 +29,12 @@
29
29
  <p>linkノード間のリンクはlinkノードを選択した場合にのみ表示されます。他のタブへのリンクがある場合には、仮想的なノードを表示します。この仮想的ノードをクリックすると、対応するタブに移動できます。</p>
30
30
  <p><b>注: </b>サブフローの外から中、もしくは、中から外へのリンクを作成することはできません。</p>
31
31
  </script>
32
+
33
+ <script type="text/html" data-help-name="link call">
34
+ <p><code>link in</code> で始まり、応答を返すフローを呼び出します。</p>
35
+ <h3>詳細</h3>
36
+ <p>本ノードは、任意のタブ内に存在する <code>link in</code> ノードに接続できます。 接続先のフローは、`返却`モードが設定された <code>link out</code> ノードで終了する必要があります。</p>
37
+ <p>本ノードはメッセージを受信すると、メッセージを接続した <code>link in</code> ノードへ渡します。
38
+ その後、応答を待った後にメッセージを送信します。</o>
39
+ <p>もし、設定したタイムアウト(デフォルト30秒)以内に応答がない場合は、<code>catch</code> ノードを用いてエラーをログに記録することもできます。</p>
40
+ </script>
@@ -144,11 +144,16 @@
144
144
  "filterCurrent": "現在のフロー",
145
145
  "debugNodes": "debugノード",
146
146
  "clearLog": "ログを削除",
147
+ "clearFilteredLog": "選択したメッセージを削除",
147
148
  "filterLog": "ログのフィルタリング",
148
149
  "openWindow": "新しいウィンドウで開く",
149
150
  "copyPath": "パスをコピー",
150
151
  "copyPayload": "値をコピー",
151
- "pinPath": "展開を固定"
152
+ "pinPath": "展開を固定",
153
+ "selectAll": "全てを選択",
154
+ "selectNone": "選択を外す",
155
+ "all": "全て",
156
+ "filtered": "選択したメッセージ"
152
157
  },
153
158
  "messageMenu": {
154
159
  "collapseAll": "全パスを折りたたむ",
@@ -159,7 +164,15 @@
159
164
  },
160
165
  "link": {
161
166
  "linkIn": "link in",
162
- "linkOut": "link out"
167
+ "linkOut": "link out",
168
+ "linkCall": "link call",
169
+ "linkOutReturn": "link return",
170
+ "outMode": "モード",
171
+ "sendToAll": "接続された全てのlinkノードへ送信",
172
+ "returnToCaller": "link callノードへ返却",
173
+ "error": {
174
+ "missingReturn": "返却するノードの情報が存在しません"
175
+ }
163
176
  },
164
177
  "tls": {
165
178
  "tls": "TLS設定",
@@ -282,7 +295,9 @@
282
295
  "and": "回/",
283
296
  "rate": "流量",
284
297
  "msgper": "メッセージ/",
298
+ "queuemsg": "中間メッセージをキューに追加",
285
299
  "dropmsg": "中間メッセージを削除",
300
+ "sendmsg": "2番目の出力で中間メッセージを送信",
286
301
  "allowrate": "msg.rate(ミリ秒単位)で流量値を上書き",
287
302
  "label": {
288
303
  "delay": "delay",
@@ -401,7 +416,11 @@
401
416
  "maximumPacketSize": "最大パケット長",
402
417
  "receiveMaximum": "最大受信数",
403
418
  "session": "セッション",
404
- "delay": "遅延"
419
+ "delay": "遅延",
420
+ "action": "動作",
421
+ "staticTopic": "1つのトピックを購読",
422
+ "dynamicTopic": "動的な購読",
423
+ "auto-connect": "自動接続"
405
424
  },
406
425
  "sections-label": {
407
426
  "birth-message": "接続時の送信メッセージ(Birthメッセージ)",
@@ -442,7 +461,10 @@
442
461
  "invalid-topic": "不正なトピックが設定されています",
443
462
  "nonclean-missingclientid": "「セッションの初期化」使用時に、クライアントIDが設定されていません",
444
463
  "invalid-json-string": "不正なJSON文字列",
445
- "invalid-json-parse": "JSON文字列のパースに失敗しました"
464
+ "invalid-json-parse": "JSON文字列のパースに失敗しました",
465
+ "invalid-action-action": "指定された動作が不正です",
466
+ "invalid-action-alreadyconnected": "接続する前にブローカから切断してください",
467
+ "invalid-action-badsubscription": "msg.topicが存在しないか不正です"
446
468
  }
447
469
  },
448
470
  "httpin": {
@@ -478,6 +500,7 @@
478
500
  "proxy-config": "プロキシ設定",
479
501
  "use-proxyauth": "プロキシ認証を使用",
480
502
  "noproxy-hosts": "例外ホスト",
503
+ "senderr": "2xx以外の応答をcatchノードへ送信",
481
504
  "utf8": "UTF8文字列",
482
505
  "binary": "バイナリバッファ",
483
506
  "json": "JSONオブジェクト",
@@ -703,13 +726,15 @@
703
726
  "delete": "delete __property__",
704
727
  "move": "move __property__",
705
728
  "changeCount": "change: __count__ rules",
706
- "regex": "正規表現を使用"
729
+ "regex": "正規表現を使用",
730
+ "deepCopy": "値のディープコピー"
707
731
  },
708
732
  "action": {
709
733
  "set": "値の代入",
710
734
  "change": "値の置換",
711
735
  "delete": "値の削除",
712
736
  "move": "値の移動",
737
+ "toValue": "対象の値",
713
738
  "to": "対象の値",
714
739
  "search": "検索する文字列",
715
740
  "replace": "置換後の文字列"
@@ -851,6 +876,8 @@
851
876
  },
852
877
  "file": {
853
878
  "label": {
879
+ "write": "write file",
880
+ "read": "read file",
854
881
  "filename": "ファイル名",
855
882
  "action": "動作",
856
883
  "addnewline": "メッセージの入力のたびに改行を追加",
@@ -858,7 +885,6 @@
858
885
  "outputas": "出力形式",
859
886
  "breakchunks": "チャンクへ分割",
860
887
  "breaklines": "行へ分割",
861
- "filelabel": "file",
862
888
  "sendError": "エラーメッセージを送信(互換モード)",
863
889
  "encoding": "文字コード",
864
890
  "deletelabel": "delete __file__",
@@ -771,7 +771,6 @@
771
771
  "outputas": "출력형식",
772
772
  "breakchunks": "청크로 분할",
773
773
  "breaklines": "행으로 분할",
774
- "filelabel": "file",
775
774
  "sendError": "에러메세지를 송신(호환모드)",
776
775
  "deletelabel": "delete __file__",
777
776
  "utf8String": "UTF8문자열",
@@ -816,7 +816,6 @@
816
816
  "outputas": "Выход",
817
817
  "breakchunks": "Разбить файл на части",
818
818
  "breaklines": "Разбить на строки",
819
- "filelabel": "файл",
820
819
  "sendError": "Отправлять сообщение при ошибке (устаревший режим)",
821
820
  "encoding": "Кодировка",
822
821
  "deletelabel": "удалить __file__",
@@ -804,7 +804,6 @@
804
804
  "outputas": "输出",
805
805
  "breakchunks": "分拆成块",
806
806
  "breaklines": "分拆成行",
807
- "filelabel": "文件",
808
807
  "sendError": "发生错误时发送消息(传统模式)",
809
808
  "encoding": "编码",
810
809
  "deletelabel": "删除 __file__",
@@ -809,7 +809,6 @@
809
809
  "outputas": "輸出",
810
810
  "breakchunks": "分拆成塊",
811
811
  "breaklines": "分拆成行",
812
- "filelabel": "文件",
813
812
  "sendError": "發生錯誤時發送消息(傳統模式)",
814
813
  "encoding": "編碼",
815
814
  "deletelabel": "刪除 __file__",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-red/nodes",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,13 +15,13 @@
15
15
  }
16
16
  ],
17
17
  "dependencies": {
18
- "acorn": "8.5.0",
18
+ "acorn": "8.6.0",
19
19
  "acorn-walk": "8.2.0",
20
- "ajv": "8.6.3",
20
+ "ajv": "8.8.2",
21
21
  "body-parser": "1.19.0",
22
22
  "cheerio": "1.0.0-rc.10",
23
23
  "content-type": "1.0.4",
24
- "cookie-parser": "1.4.5",
24
+ "cookie-parser": "1.4.6",
25
25
  "cookie": "0.4.1",
26
26
  "cors": "2.8.5",
27
27
  "cronosjs": "1.7.1",
@@ -29,7 +29,7 @@
29
29
  "form-data": "4.0.0",
30
30
  "fs-extra": "10.0.0",
31
31
  "fs.notify": "0.0.4",
32
- "got": "11.8.2",
32
+ "got": "11.8.3",
33
33
  "hash-sum": "2.0.0",
34
34
  "hpagent": "0.1.2",
35
35
  "https-proxy-agent": "5.0.0",
@@ -40,7 +40,7 @@
40
40
  "multer": "1.4.3",
41
41
  "mustache": "4.2.0",
42
42
  "on-headers": "1.0.2",
43
- "raw-body": "2.4.1",
43
+ "raw-body": "2.4.2",
44
44
  "tough-cookie": "4.0.0",
45
45
  "uuid": "8.3.2",
46
46
  "ws": "7.5.1",