node-red 3.1.7 → 4.0.0-beta.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,34 @@
1
+ #### 4.0.0-beta.1: Beta Release
2
+
3
+ Editor
4
+
5
+ - Click on id in debug panel highlights node or flow (#4439) @ralphwetzel
6
+ - Support config selection in a subflow env var (#4587) @Steve-Mcl
7
+ - Add timestamp formatting options to TypedInput (#4468) @knolleary
8
+ - Allow RED.view.select to select links (#4553) @lgrkvst
9
+ - Add auto-complete to flow/global/env typedInput types (#4480) @knolleary
10
+ - Improve the appearance of the Node-RED primary header (#4598) @joepavitt
11
+
12
+ Runtime
13
+
14
+ - let settings.httpNodeAuth accept single middleware or array of middlewares (#4572) @kevinGodell
15
+ - Upgrade to JSONata 2.x (#4590) @knolleary
16
+ - Bump minimum version to node 18 (#4571) @knolleary
17
+ - npm: Remove production flag on npm invocation (#4347) @ZJvandeWeg
18
+ - Timer testing fix (#4367) @hlovdal
19
+ - Bump to 4.0.0-dev (#4322) @knolleary
20
+
21
+ Nodes
22
+
23
+ - TCP node - when resetting, if no payload, stay disconnected @dceejay
24
+ - HTML node: add option for collecting attributes and content (#4513) @gorenje
25
+ - let split node specify property to split on, and join auto join correctly (#4386) @dceejay
26
+ - Add RFC4180 compliant mode to CSV node (#4540) @Steve-Mcl
27
+ - Fix change node to return boolean if asked (#4525) @dceejay
28
+ - Let msg.reset reset Tcp request node connection when in stay connected mode (#4406) @dceejay
29
+ - Let debug node status msg length be settable via settings (#4402) @dceejay
30
+ - Feat: Add ability to set headers for WebSocket client (#4436) @marcus-j-davies
31
+
1
32
  #### 3.1.7: Maintenance Release
2
33
 
3
34
  - Add Japanese translation for v3.1.6 (#4603) @kazuhitoyokoi
package/lib/red.js CHANGED
@@ -33,8 +33,7 @@ if (NODE_MAJOR_VERSION >= 16) {
33
33
 
34
34
  function checkVersion(userSettings) {
35
35
  var semver = require('semver');
36
- if (!semver.satisfies(process.version,">=14.0.0")) {
37
- // TODO: in the future, make this a hard error.
36
+ if (!semver.satisfies(process.version,">=18.0.0")) {
38
37
  // var e = new Error("Unsupported version of Node.js");
39
38
  // e.code = "unsupported_version";
40
39
  // throw e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red",
3
- "version": "3.1.7",
3
+ "version": "4.0.0-beta.1",
4
4
  "description": "Low-code programming for event-driven applications",
5
5
  "homepage": "https://nodered.org",
6
6
  "license": "Apache-2.0",
@@ -31,10 +31,10 @@
31
31
  "flow"
32
32
  ],
33
33
  "dependencies": {
34
- "@node-red/editor-api": "3.1.7",
35
- "@node-red/runtime": "3.1.7",
36
- "@node-red/util": "3.1.7",
37
- "@node-red/nodes": "3.1.7",
34
+ "@node-red/editor-api": "4.0.0-beta.1",
35
+ "@node-red/runtime": "4.0.0-beta.1",
36
+ "@node-red/util": "4.0.0-beta.1",
37
+ "@node-red/nodes": "4.0.0-beta.1",
38
38
  "basic-auth": "2.0.1",
39
39
  "bcryptjs": "2.4.3",
40
40
  "express": "4.18.2",
@@ -47,6 +47,6 @@
47
47
  "bcrypt": "5.1.0"
48
48
  },
49
49
  "engines": {
50
- "node": ">=14"
50
+ "node": ">=18"
51
51
  }
52
52
  }
package/red.js CHANGED
@@ -26,6 +26,13 @@ if (process.argv[2] === 'admin') {
26
26
  return;
27
27
  }
28
28
 
29
+ var semver = require('semver');
30
+ if (!semver.satisfies(process.version, ">=18.0.0")) {
31
+ console.log("Unsupported version of Node.js:", process.version);
32
+ console.log("Node-RED requires Node.js v18 or later");
33
+ process.exit(1)
34
+ }
35
+
29
36
  var http = require('http');
30
37
  var https = require('https');
31
38
  var util = require("util");
@@ -346,7 +353,7 @@ httpsPromise.then(function(startupHttps) {
346
353
  } catch(err) {
347
354
  if (err.code == "unsupported_version") {
348
355
  console.log("Unsupported version of Node.js:",process.version);
349
- console.log("Node-RED requires Node.js v8.9.0 or later");
356
+ console.log("Node-RED requires Node.js v18 or later");
350
357
  } else {
351
358
  console.log("Failed to start server:");
352
359
  if (err.stack) {
@@ -408,9 +415,15 @@ httpsPromise.then(function(startupHttps) {
408
415
  if (settings.httpAdminRoot !== false) {
409
416
  app.use(settings.httpAdminRoot,RED.httpAdmin);
410
417
  }
418
+
411
419
  if (settings.httpNodeRoot !== false && settings.httpNodeAuth) {
412
- app.use(settings.httpNodeRoot,basicAuthMiddleware(settings.httpNodeAuth.user,settings.httpNodeAuth.pass));
420
+ if (typeof settings.httpNodeAuth === "function" || Array.isArray(settings.httpNodeAuth)) {
421
+ app.use(settings.httpNodeRoot, settings.httpNodeAuth);
422
+ } else {
423
+ app.use(settings.httpNodeRoot, basicAuthMiddleware(settings.httpNodeAuth.user, settings.httpNodeAuth.pass));
424
+ }
413
425
  }
426
+
414
427
  if (settings.httpNodeRoot !== false) {
415
428
  app.use(settings.httpNodeRoot,RED.httpNode);
416
429
  }
package/settings.js CHANGED
@@ -449,6 +449,7 @@ module.exports = {
449
449
  * - ui (for use with Node-RED Dashboard)
450
450
  * - debugUseColors
451
451
  * - debugMaxLength
452
+ * - debugStatusLength
452
453
  * - execMaxBufferSize
453
454
  * - httpRequestTimeout
454
455
  * - mqttReconnectTime
@@ -504,6 +505,9 @@ module.exports = {
504
505
  /** The maximum length, in characters, of any message sent to the debug sidebar tab */
505
506
  debugMaxLength: 1000,
506
507
 
508
+ /** The maximum length, in characters, of status messages under the debug node */
509
+ //debugStatusLength: 32,
510
+
507
511
  /** Maximum buffer size for the exec node. Defaults to 10Mb */
508
512
  //execMaxBufferSize: 10000000,
509
513