node-red 3.1.8 → 4.0.0-beta.2

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,55 @@
1
+ #### 4.0.0-beta.2: Beta Release
2
+
3
+ Editor
4
+
5
+ - Introduce multiplayer feature (#4629) @knolleary
6
+ - Separate the "add new config-node" option into a new (+) button (#4627) @GogoVega
7
+ - Retain Palette categories collapsed and filter to localStorage (#4634) @knolleary
8
+ - Ensure palette filter reapplies and clear up unknown categories (#4637) @knolleary
9
+ - Add support for plugin (only) modules to the palette manager (#4620) @knolleary
10
+ - Update monaco to latest and node types to 18 LTS (#4615) @Steve-Mcl
11
+
12
+ Runtime
13
+
14
+ - Fix handling of subflow config-node select type in sf module (#4643) @knolleary
15
+ - Comms API updates (#4628) @knolleary
16
+ - Add French translations for 4.0.0-beta.1 (#4621) @GogoVega
17
+ - Add Japanese translations for 4.0.0-beta.1 (#4612) @kazuhitoyokoi
18
+
19
+ Nodes
20
+ - Fix change node handling of replacing with boolean (#4639) @knolleary
21
+
22
+ #### 4.0.0-beta.1: Beta Release
23
+
24
+ Editor
25
+
26
+ - Click on id in debug panel highlights node or flow (#4439) @ralphwetzel
27
+ - Support config selection in a subflow env var (#4587) @Steve-Mcl
28
+ - Add timestamp formatting options to TypedInput (#4468) @knolleary
29
+ - Allow RED.view.select to select links (#4553) @lgrkvst
30
+ - Add auto-complete to flow/global/env typedInput types (#4480) @knolleary
31
+ - Improve the appearance of the Node-RED primary header (#4598) @joepavitt
32
+
33
+ Runtime
34
+
35
+ - let settings.httpNodeAuth accept single middleware or array of middlewares (#4572) @kevinGodell
36
+ - Upgrade to JSONata 2.x (#4590) @knolleary
37
+ - Bump minimum version to node 18 (#4571) @knolleary
38
+ - npm: Remove production flag on npm invocation (#4347) @ZJvandeWeg
39
+ - Timer testing fix (#4367) @hlovdal
40
+ - Bump to 4.0.0-dev (#4322) @knolleary
41
+
42
+ Nodes
43
+
44
+ - TCP node - when resetting, if no payload, stay disconnected @dceejay
45
+ - HTML node: add option for collecting attributes and content (#4513) @gorenje
46
+ - let split node specify property to split on, and join auto join correctly (#4386) @dceejay
47
+ - Add RFC4180 compliant mode to CSV node (#4540) @Steve-Mcl
48
+ - Fix change node to return boolean if asked (#4525) @dceejay
49
+ - Let msg.reset reset Tcp request node connection when in stay connected mode (#4406) @dceejay
50
+ - Let debug node status msg length be settable via settings (#4402) @dceejay
51
+ - Feat: Add ability to set headers for WebSocket client (#4436) @marcus-j-davies
52
+
1
53
  #### 3.1.8: Maintenance Release
2
54
 
3
55
  - Add validation and error handling on subflow instance properties (#4632) @knolleary
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.8",
3
+ "version": "4.0.0-beta.2",
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.8",
35
- "@node-red/runtime": "3.1.8",
36
- "@node-red/util": "3.1.8",
37
- "@node-red/nodes": "3.1.8",
34
+ "@node-red/editor-api": "4.0.0-beta.2",
35
+ "@node-red/runtime": "4.0.0-beta.2",
36
+ "@node-red/util": "4.0.0-beta.2",
37
+ "@node-red/nodes": "4.0.0-beta.2",
38
38
  "basic-auth": "2.0.1",
39
39
  "bcryptjs": "2.4.3",
40
40
  "express": "4.19.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
@@ -437,6 +437,10 @@ module.exports = {
437
437
  }
438
438
  },
439
439
 
440
+ multiplayer: {
441
+ /** To enable the Multiplayer feature, set this value to true */
442
+ enabled: false
443
+ },
440
444
  },
441
445
 
442
446
  /*******************************************************************************
@@ -449,6 +453,7 @@ module.exports = {
449
453
  * - ui (for use with Node-RED Dashboard)
450
454
  * - debugUseColors
451
455
  * - debugMaxLength
456
+ * - debugStatusLength
452
457
  * - execMaxBufferSize
453
458
  * - httpRequestTimeout
454
459
  * - mqttReconnectTime
@@ -504,6 +509,9 @@ module.exports = {
504
509
  /** The maximum length, in characters, of any message sent to the debug sidebar tab */
505
510
  debugMaxLength: 1000,
506
511
 
512
+ /** The maximum length, in characters, of status messages under the debug node */
513
+ //debugStatusLength: 32,
514
+
507
515
  /** Maximum buffer size for the exec node. Defaults to 10Mb */
508
516
  //execMaxBufferSize: 10000000,
509
517