node-red 3.1.0-beta.3 → 3.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,68 @@
1
- #### 3.1.0-beta.3: Beta Release
1
+ #### 3.1.0: Milestone Release
2
+
3
+ Editor
4
+
5
+ - Default filter to All Catalogues and show nodes for small lists (#4318) @knolleary
6
+ - Better distinguish between ctrl and meta keys on mac (#4310) @knolleary
7
+ - Ensure junction appears when filtering quick-add list (#4297) @knolleary
8
+ - Update message catalogs for JSONata Expression editor (#4287) @kazuhitoyokoi
9
+ - Add tooltip to relevance sort button in user settings UI (#4288) @kazuhitoyokoi
10
+ - Capture workspace dirty state when quick-adding junction (#4283) @knolleary
11
+ - Add docs for $clone function (#4284) @knolleary
12
+
13
+ Runtime
14
+
15
+ - Dependency updates (#4317) @knolleary
16
+ - Ensure storage/util.writeFile handles concurrent write attempts (#4316) @knolleary
17
+ - Migrate http -> https for nodered.org (#4313) @Rotzbua
18
+ - Add Node 20 to GH Action test matrix (#4305) @Rotzbua
19
+ - Handle group-scoped nodes inside subflow (#4301) @knolleary
20
+ - Handle non-url-safe chars in context api (#4298) @knolleary
21
+ - Fix git pull operation in project feature (#4290) @kazuhitoyokoi
22
+ - Change linefeed codes in Korean message catalogs (#4286) @kazuhitoyokoi
23
+ - Fix file permissions of message catalogs (#4285) @kazuhitoyokoi
24
+ - Update tour (#4278) @knolleary
25
+
26
+ Nodes
27
+
28
+ - File: Fix handling in file nodes when number is specified as file name (#4267) @kazuhitoyokoi
29
+ - Function: Adding function timeout to settings file (#4265) (#4309) @knolleary
30
+ - Function: Fix function setup tab layout (#4299) @knolleary
31
+ - HTTP Request: Handle 204 in httprequest JSON (#4262) @sammachin
32
+ - JSON: Fix test cases of JSON node (#4275) @kazuhitoyokoi
33
+ - MQTT: Remove unnecessary check for clientid if autoUnsub set (#4302) @knolleary
34
+
35
+ ##### 3.1.0-beta.4: Beta Release
36
+
37
+ Editor
38
+
39
+ - Add Japanese translation for 3.1.0 (#4252) @kazuhitoyokoi
40
+ - Improve Catalogue visibility (#4248) @Steve-Mcl
41
+ - Add support for wiring and moving junctions on touch device (#4244) @Steve-Mcl
42
+ - Show errors and statuses of config nodes in the sidebar when no catch node is available (#4231) @bvmensvoort
43
+ - Improve wiring for horizontally aligned nodes (#4232) @knolleary
44
+ - French translation of Welcome Tours (#4200) @GogoVega
45
+ - French translation of v3.1.0-beta.3 changes (#4199) @GogoVega
46
+ - add Japanese message for 3.1.0 beta 3 (#4209) @HiroyasuNishiyama
47
+ - Dont clone the group nodes `node` array when saving edits (#4208) @Steve-Mcl
48
+
49
+ Runtime
50
+
51
+ - Add NR_SUBFLOW_NAME/ID/PATH env vars (#4250) @knolleary
52
+ - Evaluate all env vars as part of async flow start (#4230) @knolleary
53
+ - Add support for httpStatic middleware (#4229) @knolleary
54
+
55
+ Nodes
56
+
57
+ - Fix JSONata in file nodes (#4246) @kazuhitoyokoi
58
+ - Fix timeout icon in function and link call nodes (#4253) @kazuhitoyokoi
59
+ - Fix connection keep-alive in http request node (#4228) @knolleary
60
+ - adding timeout attribute to function node (#4177) @k1ln
61
+ - Fix manual mode join when multiple sequences being handled (#4143) @BitCaesar
62
+ - Fix delay node flush issue (#4203) @dceejay
63
+ - Update status and catch node labels in group mode (#4207) @Steve-Mcl
64
+
65
+ ##### 3.1.0-beta.3: Beta Release
2
66
 
3
67
  Editor
4
68
 
@@ -33,7 +97,7 @@ Nodes
33
97
  - MQTT: Option to disable MQTT topic unsubscribe on disconnect (#4078) @flying7eleven
34
98
 
35
99
 
36
- #### 3.1.0-beta.2: Beta Release
100
+ ##### 3.1.0-beta.2: Beta Release
37
101
 
38
102
  Editor
39
103
 
@@ -83,7 +147,7 @@ Nodes
83
147
  - File Out: Fix extra newline append for multipart file write (#3915) @dceejay
84
148
  - Add validators for complete and link call nodes (#4056) @kazuhitoyokoi
85
149
 
86
- #### 3.1.0-beta.1: Beta Release
150
+ ##### 3.1.0-beta.1: Beta Release
87
151
 
88
152
  Editor
89
153
 
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Node-RED
2
2
 
3
- http://nodered.org
3
+ https://nodered.org
4
4
 
5
5
  Low-code programming for event-driven applications.
6
6
 
7
- ![Node-RED: Low-code programming for event-driven applications.](http://nodered.org/images/node-red-screenshot.png)
7
+ ![Node-RED: Low-code programming for event-driven applications.](https://nodered.org/images/node-red-screenshot.png)
8
8
 
9
9
  ## Quick Start
10
10
 
11
- Check out http://nodered.org/docs/getting-started/ for full instructions on getting
11
+ Check out https://nodered.org/docs/getting-started/ for full instructions on getting
12
12
  started.
13
13
 
14
14
  1. `sudo npm install -g --unsafe-perm node-red`
@@ -17,7 +17,7 @@ started.
17
17
 
18
18
  ## Getting Help
19
19
 
20
- More documentation can be found [here](http://nodered.org/docs).
20
+ More documentation can be found [here](https://nodered.org/docs).
21
21
 
22
22
  For further help, or general discussion, please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack).
23
23
 
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "node-red",
3
- "version": "3.1.0-beta.3",
3
+ "version": "3.1.0",
4
4
  "description": "Low-code programming for event-driven applications",
5
- "homepage": "http://nodered.org",
5
+ "homepage": "https://nodered.org",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -31,17 +31,17 @@
31
31
  "flow"
32
32
  ],
33
33
  "dependencies": {
34
- "@node-red/editor-api": "3.1.0-beta.3",
35
- "@node-red/runtime": "3.1.0-beta.3",
36
- "@node-red/util": "3.1.0-beta.3",
37
- "@node-red/nodes": "3.1.0-beta.3",
34
+ "@node-red/editor-api": "3.1.0",
35
+ "@node-red/runtime": "3.1.0",
36
+ "@node-red/util": "3.1.0",
37
+ "@node-red/nodes": "3.1.0",
38
38
  "basic-auth": "2.0.1",
39
39
  "bcryptjs": "2.4.3",
40
40
  "express": "4.18.2",
41
41
  "fs-extra": "11.1.1",
42
- "node-red-admin": "^3.0.0",
42
+ "node-red-admin": "^3.1.0",
43
43
  "nopt": "5.0.0",
44
- "semver": "7.5.0"
44
+ "semver": "7.5.4"
45
45
  },
46
46
  "optionalDependencies": {
47
47
  "bcrypt": "5.1.0"
package/red.js CHANGED
@@ -88,7 +88,7 @@ if (parsedArgs.help) {
88
88
  console.log(" -?, --help show this help");
89
89
  console.log(" admin <command> run an admin command");
90
90
  console.log("");
91
- console.log("Documentation can be found at http://nodered.org");
91
+ console.log("Documentation can be found at https://nodered.org");
92
92
  process.exit();
93
93
  }
94
94
 
@@ -302,7 +302,7 @@ httpsPromise.then(function(startupHttps) {
302
302
  settings.httpNodeAuth = settings.httpNodeAuth || settings.httpAuth;
303
303
  }
304
304
 
305
- if(settings.httpStatic) {
305
+ if (settings.httpStatic) {
306
306
  settings.httpStaticRoot = formatRoot(settings.httpStaticRoot || "/");
307
307
  const statics = Array.isArray(settings.httpStatic) ? settings.httpStatic : [settings.httpStatic];
308
308
  const sanitised = [];
@@ -414,13 +414,7 @@ httpsPromise.then(function(startupHttps) {
414
414
  if (settings.httpNodeRoot !== false) {
415
415
  app.use(settings.httpNodeRoot,RED.httpNode);
416
416
  }
417
- // if (settings.httpStatic) {
418
- // settings.httpStaticAuth = settings.httpStaticAuth || settings.httpAuth;
419
- // if (settings.httpStaticAuth) {
420
- // app.use("/",basicAuthMiddleware(settings.httpStaticAuth.user,settings.httpStaticAuth.pass));
421
- // }
422
- // app.use("/",express.static(settings.httpStatic));
423
- // }
417
+
424
418
  if (settings.httpStatic) {
425
419
  let appUseMem = {};
426
420
  for (let si = 0; si < settings.httpStatic.length; si++) {
@@ -428,6 +422,7 @@ httpsPromise.then(function(startupHttps) {
428
422
  const filePath = sp.path;
429
423
  const thisRoot = sp.root || "/";
430
424
  const options = sp.options;
425
+ const middleware = sp.middleware;
431
426
  if(appUseMem[filePath + "::" + thisRoot]) {
432
427
  continue;// this path and root already registered!
433
428
  }
@@ -435,6 +430,9 @@ httpsPromise.then(function(startupHttps) {
435
430
  if (settings.httpStaticAuth) {
436
431
  app.use(thisRoot, basicAuthMiddleware(settings.httpStaticAuth.user, settings.httpStaticAuth.pass));
437
432
  }
433
+ if (middleware) {
434
+ app.use(thisRoot, middleware)
435
+ }
438
436
  app.use(thisRoot, express.static(filePath, options));
439
437
  }
440
438
  }
package/settings.js CHANGED
@@ -71,7 +71,7 @@ module.exports = {
71
71
  ******************************************************************************/
72
72
 
73
73
  /** To password protect the Node-RED editor and admin API, the following
74
- * property can be used. See http://nodered.org/docs/security.html for details.
74
+ * property can be used. See https://nodered.org/docs/security.html for details.
75
75
  */
76
76
  //adminAuth: {
77
77
  // type: "credentials",
@@ -120,7 +120,7 @@ module.exports = {
120
120
  * including node-red-dashboard, or the static content (httpStatic), the
121
121
  * following properties can be used.
122
122
  * The `pass` field is a bcrypt hash of the password.
123
- * See http://nodered.org/docs/security.html#generating-the-password-hash
123
+ * See https://nodered.org/docs/security.html#generating-the-password-hash
124
124
  */
125
125
  //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
126
126
  //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
@@ -444,6 +444,7 @@ module.exports = {
444
444
  * - fileWorkingDirectory
445
445
  * - functionGlobalContext
446
446
  * - functionExternalModules
447
+ * - functionTimeout
447
448
  * - nodeMessageBufferMaxLength
448
449
  * - ui (for use with Node-RED Dashboard)
449
450
  * - debugUseColors
@@ -468,6 +469,9 @@ module.exports = {
468
469
  /** Allow the Function node to load additional npm modules directly */
469
470
  functionExternalModules: true,
470
471
 
472
+ /** Default timeout, in seconds, for the Function node. 0 means no timeout is applied */
473
+ functionTimeout: 0,
474
+
471
475
  /** The following property can be used to set predefined values in Global Context.
472
476
  * This allows extra node modules to be made available with in Function node.
473
477
  * For example, the following: