node-red 3.1.0-beta.1 → 3.1.0-beta.3
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 +85 -1
- package/lib/red.js +1 -1
- package/package.json +7 -7
- package/red.js +7 -6
- package/settings.js +8 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,89 @@
|
|
|
1
|
-
#### 3.1.0-beta.
|
|
1
|
+
#### 3.1.0-beta.3: Beta Release
|
|
2
|
+
|
|
3
|
+
Editor
|
|
4
|
+
|
|
5
|
+
- Select the item that is specified in a deep link URL (#4113) @Steve-Mcl
|
|
6
|
+
- Update to Monaco 0.38.0 (#4189) @Steve-Mcl
|
|
7
|
+
- Place subflow outputs/inputs relative to current view (#4183) @knolleary
|
|
8
|
+
- Enable RED.view.select to select group by id (#4184) @knolleary
|
|
9
|
+
- Combine existing env vars when merging groups (#4182) @knolleary
|
|
10
|
+
- Avoid creating empty global-config node if not needed (#4153) @knolleary
|
|
11
|
+
- Fix group selection when using lasso (#4108) @knolleary
|
|
12
|
+
- Use editor path in generating localStorage keys (#4151) @mw75
|
|
13
|
+
- Ensure no node credentials are included when exporting to clipboard (#4112) @knolleary
|
|
14
|
+
- Fix jsonata expression test ui (#4097) @knolleary
|
|
15
|
+
- Fix search button in palette popover (#4096) @knolleary
|
|
16
|
+
|
|
17
|
+
Runtime
|
|
18
|
+
|
|
19
|
+
- Allow options object on each httpStatic configuration (#4109) @kevinGodell
|
|
20
|
+
- Ensure non-zero exit codes for errors (#4181) @knolleary
|
|
21
|
+
- Ensure external modules are installed synchronously (#4180) @knolleary
|
|
22
|
+
- Update dependecies include got (#4155) @knolleary
|
|
23
|
+
- Add Japanese translations for v3.1 beta.2 (#4158) @kazuhitoyokoi
|
|
24
|
+
- Ensure express server options are applied consistently (#4178) @knolleary
|
|
25
|
+
- Remove version info from theme endpoint (#4179) @knolleary
|
|
26
|
+
- Add Japanese translations for welcome tour of 3.1.0 beta.2 (#4145) @kazuhitoyokoi
|
|
27
|
+
- Added SHA-256 and SHA-512-256 digest authentication (#4100) @sroebert
|
|
28
|
+
- Add "timers" types to known types (#4103) @Steve-Mcl
|
|
29
|
+
|
|
30
|
+
Nodes
|
|
31
|
+
|
|
32
|
+
- Allow Catch/Status nodes to be scoped to their group (#4185) @NetHans
|
|
33
|
+
- MQTT: Option to disable MQTT topic unsubscribe on disconnect (#4078) @flying7eleven
|
|
34
|
+
|
|
2
35
|
|
|
36
|
+
#### 3.1.0-beta.2: Beta Release
|
|
37
|
+
|
|
38
|
+
Editor
|
|
39
|
+
|
|
40
|
+
- NEW: Add change icon to tabs (#4068) @knolleary
|
|
41
|
+
- NEW: Complete overhaul of Group UX (#4079) @knolleary
|
|
42
|
+
- NEW: Add link to node help in node edit dialog footer (#4065) @knolleary
|
|
43
|
+
- NEW: Added editor feature for connecting multiple nodes to single node (#4051) @sonntam
|
|
44
|
+
- NEW: Increase workspace size to 8000x8000 (#4094) @knolleary
|
|
45
|
+
- Ensure node buttons are redrawn when flow lock state is changed (#4091) @knolleary
|
|
46
|
+
- Prevent loops being created with junction nodes (#4087) @knolleary
|
|
47
|
+
- Prevent opening locked node's edit dialog (#4069) @knolleary
|
|
48
|
+
- Reverse direction of tab scroll to expected direction (#4064) @knolleary
|
|
49
|
+
- Add cancel operation to editableList (#4077) @HiroyasuNishiyama
|
|
50
|
+
- Apply Mermaid diagram for project settings UI (#4054) @kazuhitoyokoi
|
|
51
|
+
- Add tooltip for show/hide button on info sidebar (#4050) @kazuhitoyokoi
|
|
52
|
+
- Fix align nodes on locked tab (#4072) @HiroyasuNishiyama
|
|
53
|
+
- Fix importing connected link nodes into a subflow (#4082) @knolleary
|
|
54
|
+
- Fix to add empty marker to empty group (#4060) @HiroyasuNishiyama
|
|
55
|
+
- Fix image URLs for v3.0 tour (#4053) @kazuhitoyokoi
|
|
56
|
+
- Show scrollbar in notification dialog only when needed (#4048) @kazuhitoyokoi
|
|
57
|
+
- Update-monaco-and-typings (#4089) @Steve-Mcl
|
|
58
|
+
- Update jquery UI (#4088) @knolleary
|
|
59
|
+
- Support i18n of lock/unlock buttons in flow property UI (#4049) @kazuhitoyokoi
|
|
60
|
+
- Translation kr (#3895) @hae-iotplatform
|
|
61
|
+
- Translation zhcn (!!请懂中文的帮忙review) (#3952) @cliyr
|
|
62
|
+
- Add French translation of nodes (#3964) @GogoVega
|
|
63
|
+
- Add French translation (#3962) @GogoVega
|
|
64
|
+
- Portuguese Brazilian (pt-BR) translation (#3804) @FabsMuller
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
Runtime
|
|
68
|
+
|
|
69
|
+
- NEW: Generate stable ids for subflow instance internal nodes (#4093) @knolleary
|
|
70
|
+
- NEW: Change default file name to flows.json in project feature (#4073) @kazuhitoyokoi
|
|
71
|
+
- NEW: Deprecate synchronous access to jsonata (#4090) @knolleary
|
|
72
|
+
- Add Node 18 to test matrix (#4084) @knolleary
|
|
73
|
+
- Bump minimum nodejs version supported to match documented value (#4086) @knolleary
|
|
74
|
+
- Update monaco docs link in settings.js (#4075) @Steve-Mcl
|
|
75
|
+
- Remove duplicated messages in the message catalog (#4066) @kazuhitoyokoi
|
|
76
|
+
- Ensure errors in preDeliver callback are handled (#3911) @knolleary
|
|
77
|
+
- Fix "EADDRINUSE" error (#4046) @bggbr
|
|
78
|
+
|
|
79
|
+
Nodes
|
|
80
|
+
|
|
81
|
+
- Link Call: Clear link-call timeouts when node is closed (#4085) @knolleary
|
|
82
|
+
- Join: ensure inflight status is cleared when in auto mode (#4083) @knolleary
|
|
83
|
+
- File Out: Fix extra newline append for multipart file write (#3915) @dceejay
|
|
84
|
+
- Add validators for complete and link call nodes (#4056) @kazuhitoyokoi
|
|
85
|
+
|
|
86
|
+
#### 3.1.0-beta.1: Beta Release
|
|
3
87
|
|
|
4
88
|
Editor
|
|
5
89
|
|
package/lib/red.js
CHANGED
|
@@ -33,7 +33,7 @@ if (NODE_MAJOR_VERSION > 14) {
|
|
|
33
33
|
|
|
34
34
|
function checkVersion(userSettings) {
|
|
35
35
|
var semver = require('semver');
|
|
36
|
-
if (!semver.satisfies(process.version,">=
|
|
36
|
+
if (!semver.satisfies(process.version,">=14.0.0")) {
|
|
37
37
|
// TODO: in the future, make this a hard error.
|
|
38
38
|
// var e = new Error("Unsupported version of Node.js");
|
|
39
39
|
// e.code = "unsupported_version";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red",
|
|
3
|
-
"version": "3.1.0-beta.
|
|
3
|
+
"version": "3.1.0-beta.3",
|
|
4
4
|
"description": "Low-code programming for event-driven applications",
|
|
5
5
|
"homepage": "http://nodered.org",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,17 +31,17 @@
|
|
|
31
31
|
"flow"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@node-red/editor-api": "3.1.0-beta.
|
|
35
|
-
"@node-red/runtime": "3.1.0-beta.
|
|
36
|
-
"@node-red/util": "3.1.0-beta.
|
|
37
|
-
"@node-red/nodes": "3.1.0-beta.
|
|
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",
|
|
38
38
|
"basic-auth": "2.0.1",
|
|
39
39
|
"bcryptjs": "2.4.3",
|
|
40
40
|
"express": "4.18.2",
|
|
41
|
-
"fs-extra": "
|
|
41
|
+
"fs-extra": "11.1.1",
|
|
42
42
|
"node-red-admin": "^3.0.0",
|
|
43
43
|
"nopt": "5.0.0",
|
|
44
|
-
"semver": "7.
|
|
44
|
+
"semver": "7.5.0"
|
|
45
45
|
},
|
|
46
46
|
"optionalDependencies": {
|
|
47
47
|
"bcrypt": "5.1.0"
|
package/red.js
CHANGED
|
@@ -148,7 +148,7 @@ try {
|
|
|
148
148
|
} else {
|
|
149
149
|
console.log(err);
|
|
150
150
|
}
|
|
151
|
-
process.exit();
|
|
151
|
+
process.exit(1);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
if (parsedArgs.define) {
|
|
@@ -182,7 +182,7 @@ if (parsedArgs.define) {
|
|
|
182
182
|
}
|
|
183
183
|
} catch (e) {
|
|
184
184
|
console.log("Error processing -D option: "+e.message);
|
|
185
|
-
process.exit();
|
|
185
|
+
process.exit(1);
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
@@ -316,10 +316,10 @@ httpsPromise.then(function(startupHttps) {
|
|
|
316
316
|
} else {
|
|
317
317
|
continue;
|
|
318
318
|
}
|
|
319
|
-
sp.subRoot = formatRoot(sp.root);
|
|
319
|
+
sp.subRoot = formatRoot(sp.root || "/");
|
|
320
320
|
sp.root = formatRoot(path.posix.join(settings.httpStaticRoot,sp.subRoot));
|
|
321
321
|
}
|
|
322
|
-
settings.httpStatic = sanitised.length ? sanitised : false;
|
|
322
|
+
settings.httpStatic = sanitised.length ? sanitised : false;
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
// if we got a port from command line, use it (even if 0)
|
|
@@ -427,6 +427,7 @@ httpsPromise.then(function(startupHttps) {
|
|
|
427
427
|
const sp = settings.httpStatic[si];
|
|
428
428
|
const filePath = sp.path;
|
|
429
429
|
const thisRoot = sp.root || "/";
|
|
430
|
+
const options = sp.options;
|
|
430
431
|
if(appUseMem[filePath + "::" + thisRoot]) {
|
|
431
432
|
continue;// this path and root already registered!
|
|
432
433
|
}
|
|
@@ -434,7 +435,7 @@ httpsPromise.then(function(startupHttps) {
|
|
|
434
435
|
if (settings.httpStaticAuth) {
|
|
435
436
|
app.use(thisRoot, basicAuthMiddleware(settings.httpStaticAuth.user, settings.httpStaticAuth.pass));
|
|
436
437
|
}
|
|
437
|
-
app.use(thisRoot, express.static(filePath));
|
|
438
|
+
app.use(thisRoot, express.static(filePath, options));
|
|
438
439
|
}
|
|
439
440
|
}
|
|
440
441
|
|
|
@@ -458,7 +459,7 @@ httpsPromise.then(function(startupHttps) {
|
|
|
458
459
|
RED.start().then(function() {
|
|
459
460
|
if (settings.httpAdminRoot !== false || settings.httpNodeRoot !== false || settings.httpStatic) {
|
|
460
461
|
server.on('error', function(err) {
|
|
461
|
-
if (err.
|
|
462
|
+
if (err.code === "EADDRINUSE") {
|
|
462
463
|
RED.log.error(RED.log._("server.unable-to-listen", {listenpath:getListenPath()}));
|
|
463
464
|
RED.log.error(RED.log._("server.port-in-use"));
|
|
464
465
|
} else {
|
package/settings.js
CHANGED
|
@@ -223,10 +223,15 @@ module.exports = {
|
|
|
223
223
|
* to move httpAdminRoot
|
|
224
224
|
*/
|
|
225
225
|
//httpStatic: '/home/nol/node-red-static/', //single static source
|
|
226
|
-
|
|
226
|
+
/**
|
|
227
|
+
* OR multiple static sources can be created using an array of objects...
|
|
228
|
+
* Each object can also contain an options object for further configuration.
|
|
229
|
+
* See https://expressjs.com/en/api.html#express.static for available options.
|
|
230
|
+
*/
|
|
227
231
|
//httpStatic: [
|
|
228
232
|
// {path: '/home/nol/pics/', root: "/img/"},
|
|
229
233
|
// {path: '/home/nol/reports/', root: "/doc/"},
|
|
234
|
+
// {path: '/home/nol/videos/', root: "/vid/", options: {maxAge: '1d'}}
|
|
230
235
|
//],
|
|
231
236
|
|
|
232
237
|
/**
|
|
@@ -416,7 +421,7 @@ module.exports = {
|
|
|
416
421
|
*/
|
|
417
422
|
// theme: "vs",
|
|
418
423
|
/** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc.
|
|
419
|
-
* for the full list, see https://microsoft.github.io/monaco-editor/
|
|
424
|
+
* for the full list, see https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html
|
|
420
425
|
*/
|
|
421
426
|
//fontSize: 14,
|
|
422
427
|
//fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",
|
|
@@ -431,7 +436,7 @@ module.exports = {
|
|
|
431
436
|
enabled: true
|
|
432
437
|
}
|
|
433
438
|
},
|
|
434
|
-
|
|
439
|
+
|
|
435
440
|
},
|
|
436
441
|
|
|
437
442
|
/*******************************************************************************
|