node-red 3.0.2 → 3.1.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,143 @@
1
+ #### 3.1.0-beta.2: Beta Release
2
+
3
+ Editor
4
+
5
+ - NEW: Add change icon to tabs (#4068) @knolleary
6
+ - NEW: Complete overhaul of Group UX (#4079) @knolleary
7
+ - NEW: Add link to node help in node edit dialog footer (#4065) @knolleary
8
+ - NEW: Added editor feature for connecting multiple nodes to single node (#4051) @sonntam
9
+ - NEW: Increase workspace size to 8000x8000 (#4094) @knolleary
10
+ - Ensure node buttons are redrawn when flow lock state is changed (#4091) @knolleary
11
+ - Prevent loops being created with junction nodes (#4087) @knolleary
12
+ - Prevent opening locked node's edit dialog (#4069) @knolleary
13
+ - Reverse direction of tab scroll to expected direction (#4064) @knolleary
14
+ - Add cancel operation to editableList (#4077) @HiroyasuNishiyama
15
+ - Apply Mermaid diagram for project settings UI (#4054) @kazuhitoyokoi
16
+ - Add tooltip for show/hide button on info sidebar (#4050) @kazuhitoyokoi
17
+ - Fix align nodes on locked tab (#4072) @HiroyasuNishiyama
18
+ - Fix importing connected link nodes into a subflow (#4082) @knolleary
19
+ - Fix to add empty marker to empty group (#4060) @HiroyasuNishiyama
20
+ - Fix image URLs for v3.0 tour (#4053) @kazuhitoyokoi
21
+ - Show scrollbar in notification dialog only when needed (#4048) @kazuhitoyokoi
22
+ - Update-monaco-and-typings (#4089) @Steve-Mcl
23
+ - Update jquery UI (#4088) @knolleary
24
+ - Support i18n of lock/unlock buttons in flow property UI (#4049) @kazuhitoyokoi
25
+ - Translation kr (#3895) @hae-iotplatform
26
+ - Translation zhcn (!!请懂中文的帮忙review) (#3952) @cliyr
27
+ - Add French translation of nodes (#3964) @GogoVega
28
+ - Add French translation (#3962) @GogoVega
29
+ - Portuguese Brazilian (pt-BR) translation (#3804) @FabsMuller
30
+
31
+
32
+ Runtime
33
+
34
+ - NEW: Generate stable ids for subflow instance internal nodes (#4093) @knolleary
35
+ - NEW: Change default file name to flows.json in project feature (#4073) @kazuhitoyokoi
36
+ - NEW: Deprecate synchronous access to jsonata (#4090) @knolleary
37
+ - Add Node 18 to test matrix (#4084) @knolleary
38
+ - Bump minimum nodejs version supported to match documented value (#4086) @knolleary
39
+ - Update monaco docs link in settings.js (#4075) @Steve-Mcl
40
+ - Remove duplicated messages in the message catalog (#4066) @kazuhitoyokoi
41
+ - Ensure errors in preDeliver callback are handled (#3911) @knolleary
42
+ - Fix "EADDRINUSE" error (#4046) @bggbr
43
+
44
+ Nodes
45
+
46
+ - Link Call: Clear link-call timeouts when node is closed (#4085) @knolleary
47
+ - Join: ensure inflight status is cleared when in auto mode (#4083) @knolleary
48
+ - File Out: Fix extra newline append for multipart file write (#3915) @dceejay
49
+ - Add validators for complete and link call nodes (#4056) @kazuhitoyokoi
50
+
51
+ #### 3.1.0-beta.1: Beta Release
52
+
53
+ Editor
54
+
55
+ - NEW: Locking Flows (#3938) @knolleary
56
+ - NEW: Improve UX around hiding flows via context menu (#3930) @knolleary
57
+ - NEW: Add support for inline image in markdown editor by drag and drop of an image file (#4006) @HiroyasuNishiyama
58
+ - NEW: Add support for mermaid diagram to markdown editor (#4007) @HiroyasuNishiyama
59
+ - NEW: Support uri fragments for nodes and groups including edit support (#3870) @knolleary
60
+ - NEW: Add global environment variable feature (#3941) @HiroyasuNishiyama
61
+
62
+ - Remember compact/pretty flow export user choice (#3974) @Steve-Mcl
63
+ - fix .red-ui-notification class (#4035) @xiaobinqt
64
+ - Fix border radius on Modules list header (#4038) @bonanitech
65
+ - fix workspace reference error in case of empty tabs (#4029) @HiroyasuNishiyama
66
+ - Disable delete tab menu when single tab exists (#4030) @HiroyasuNishiyama
67
+ - Disable hide all menu if all tabs hidden (#4031) @HiroyasuNishiyama
68
+ - fix hide subflow tooltip (#4033) @HiroyasuNishiyama
69
+ - Fix disabled menu items in project feature (#4027) @kazuhitoyokoi
70
+ - Let themes change radialMenu text colors (#3995) @bonanitech
71
+ - Add Japanese translations for v3.0.3 (#4012) @kazuhitoyokoi
72
+ - Add Japanese translation for v3.1.0-beta.0 (#3997) @kazuhitoyokoi
73
+ - Add Japanese translation for v3.1.0-beta.0 (#3916) @kazuhitoyokoi
74
+ - Hide subflow category after deleting subflow (#3980) @kazuhitoyokoi
75
+ - Prevent dbl-click opening node edit dialog with text selected (#3970) @knolleary
76
+ - Handle replacing unknown node inside group or subflow (#3921) @knolleary
77
+ - Fix #3939, red border red-ui-typedInput-container (#3949) @Steveorevo
78
+ - i18n item URL copy notification & add Japanese message (#3946) @HiroyasuNishiyama
79
+ - add Japanese message for item url copy actions (#3947) @HiroyasuNishiyama
80
+ - Fix autocomplete entry for responseUrl (#3884) @knolleary
81
+ - Fix Japanese translation for JSONata editor (#3872) @HiroyasuNishiyama
82
+ - Fix search type with spaces (#3841) @Steve-Mcl
83
+ - Fix error hanndling of JSONata expression editor for extended functions (#3871) @HiroyasuNishiyama
84
+ - Add button type to the adding SSH key button (#3866) @kazuhitoyokoi
85
+ - Check radio button as default in project dialog (#3879) @kazuhitoyokoi
86
+ - Add $clone as supported function (#3874) @HiroyasuNishiyama
87
+ - Env var jsonata (#3807) @HiroyasuNishiyama
88
+ - Add Japanese translation for v3.0.2 (#3852) @kazuhitoyokoi
89
+
90
+ Runtime
91
+
92
+ - Force IPv4 name resolution to have priority (#4019) @dceejay
93
+ - Fix async loading of modules containing both nodes and plugins (#3999) @knolleary
94
+ - Use main branch as default in project feature (#4036) @kazuhitoyokoi
95
+ - Rename package var to avoid strict mode error (#4020) @knolleary
96
+ - Fix typos in settings.js (#4013) @ypid
97
+ - Ensure credentials object is removed before returning node in getFlow request (#3971) @knolleary
98
+ - Ignore commit error in project feature (#3987) @kazuhitoyokoi
99
+ - Update dependencies (#3969) @knolleary
100
+ - Add check that node sends object rather than primitive type (#3909) @knolleary
101
+ - Ensure key_path is quoted in GIT_SSH_COMMAND in case of spaces in pathname (#3912) @knolleary
102
+ - Fix nodesDir scan when node package has js/html in sub dir to package.json (#3867) @Steve-Mcl
103
+ - Fix file permissions (#3917) @kazuhitoyokoi
104
+ - ci: add minimum GitHub token permissions for workflows (#3907) @boahc077
105
+
106
+ Nodes
107
+
108
+ - Catch: fix typo in catch.html (#3965) @we11adam
109
+ - Change: Fix change node overwriting msg with itself (#3899) @dceejay
110
+ - Comment node: Clarify where the text will appear (#4004) @dirkjanfaber
111
+ - CSV: change replace to replaceAll (#3990) @dceejay
112
+ - CSV node: check header properties for ' and " (#3920) @dceejay
113
+ - CSV: Fix for CSV undefined property (#3906) @dceejay
114
+ - Delay: let delay node handle both flush then reset (#3898) @dceejay
115
+ - Function: Limit number of ports in function node (#3886) @kazuhitoyokoi
116
+ - Function: Remove dot from variable name for external module in function node (#3880) @kazuhitoyokoi
117
+ - Function: add function node monaco types util and promisify (#3868) @Steve-Mcl
118
+ - HTTP In: Ensure msg.req.headers is enumerable (#3908) @knolleary
119
+ - HTTP Request: Support form-data arrays (#3991) @hardillb
120
+ - HTTP Request: Fix httprequest tests to be more lenient on error message (#3922) @knolleary
121
+ - HTTP Request: Add missing property to node object HTTPRequest (#3842) @hardillb
122
+ - HTTP Request/Response: Support sortable list on property UI of http request and http response nodes (#3857) @kazuhitoyokoi
123
+ - HTTP Response: Ensure statusCode is a number (#3894) @hardillb
124
+ - Inject: Allow Inject node to work with async context stores (#4021) @knolleary
125
+ - Join/Batch: Add count to join and batch node labels (#4028) @dceejay
126
+ - MQTT: Fix birth topic handling in MQTT node (#3905) @Steve-Mcl
127
+ - MQTT: Fix pull-down menus of MQTT configuration node (#3890) @kazuhitoyokoi
128
+ - MQTT: Prevent invalid mqtt birth topic crashing node-red (#3869) @Steve-Mcl
129
+ - MQTT: ensure sessionExpiry(Interval) is applied (#3840) @Steve-Mcl
130
+ - MQTT: Fix mqtt nodes not reconnecting on modified-flows deploy (#3992) @knolleary
131
+ - MQTT: fix single subscription mqtt node status (#3966) @Steve-Mcl
132
+ - Range: Add drop mode to range node (#3935) @dceejay
133
+ - Remove done from describe (#3873) @HiroyasuNishiyama
134
+ - Split node: avoid duplicate done call for buffer split (#4000) @knolleary
135
+ - Status: Fix typo in 25-status.html (#3981) @kazuhitoyokoi
136
+ - TCP Node: ensure newline substitution applies to whole message (#4009) @dceejay
137
+ - Template: Add information about environment variable to template node (#3882) @kazuhitoyokoi
138
+ - Trigger: Hide trigger node repeat send option if sending nothing (#4023) @dceejay
139
+ - Watch: fix watch node test on MacOS/ARM (#3942) @HiroyasuNishiyama
140
+
1
141
  #### 3.0.2: Maintenance Release
2
142
 
3
143
  Editor
package/lib/red.js CHANGED
@@ -25,9 +25,15 @@ var api = require("@node-red/editor-api");
25
25
  var server = null;
26
26
  var apiEnabled = false;
27
27
 
28
+ const NODE_MAJOR_VERSION = process.versions.node.split('.')[0];
29
+ if (NODE_MAJOR_VERSION > 14) {
30
+ const dns = require('node:dns');
31
+ dns.setDefaultResultOrder('ipv4first');
32
+ }
33
+
28
34
  function checkVersion(userSettings) {
29
35
  var semver = require('semver');
30
- if (!semver.satisfies(process.version,">=8.9.0")) {
36
+ if (!semver.satisfies(process.version,">=14.0.0")) {
31
37
  // TODO: in the future, make this a hard error.
32
38
  // var e = new Error("Unsupported version of Node.js");
33
39
  // e.code = "unsupported_version";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red",
3
- "version": "3.0.2",
3
+ "version": "3.1.0-beta.2",
4
4
  "description": "Low-code programming for event-driven applications",
5
5
  "homepage": "http://nodered.org",
6
6
  "license": "Apache-2.0",
@@ -31,20 +31,20 @@
31
31
  "flow"
32
32
  ],
33
33
  "dependencies": {
34
- "@node-red/editor-api": "3.0.2",
35
- "@node-red/runtime": "3.0.2",
36
- "@node-red/util": "3.0.2",
37
- "@node-red/nodes": "3.0.2",
34
+ "@node-red/editor-api": "3.1.0-beta.2",
35
+ "@node-red/runtime": "3.1.0-beta.2",
36
+ "@node-red/util": "3.1.0-beta.2",
37
+ "@node-red/nodes": "3.1.0-beta.2",
38
38
  "basic-auth": "2.0.1",
39
39
  "bcryptjs": "2.4.3",
40
- "express": "4.18.1",
40
+ "express": "4.18.2",
41
41
  "fs-extra": "10.1.0",
42
42
  "node-red-admin": "^3.0.0",
43
43
  "nopt": "5.0.0",
44
- "semver": "7.3.7"
44
+ "semver": "7.3.8"
45
45
  },
46
46
  "optionalDependencies": {
47
- "bcrypt": "5.0.1"
47
+ "bcrypt": "5.1.0"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=14"
package/red.js CHANGED
@@ -458,7 +458,7 @@ httpsPromise.then(function(startupHttps) {
458
458
  RED.start().then(function() {
459
459
  if (settings.httpAdminRoot !== false || settings.httpNodeRoot !== false || settings.httpStatic) {
460
460
  server.on('error', function(err) {
461
- if (err.errno === "EADDRINUSE") {
461
+ if (err.code === "EADDRINUSE") {
462
462
  RED.log.error(RED.log._("server.unable-to-listen", {listenpath:getListenPath()}));
463
463
  RED.log.error(RED.log._("server.port-in-use"));
464
464
  } else {
package/settings.js CHANGED
@@ -181,7 +181,7 @@ module.exports = {
181
181
 
182
182
  /** Some nodes, such as HTTP In, can be used to listen for incoming http requests.
183
183
  * By default, these are served relative to '/'. The following property
184
- * can be used to specifiy a different root path. If set to false, this is
184
+ * can be used to specify a different root path. If set to false, this is
185
185
  * disabled.
186
186
  */
187
187
  //httpNodeRoot: '/red-nodes',
@@ -219,17 +219,17 @@ module.exports = {
219
219
  /** When httpAdminRoot is used to move the UI to a different root path, the
220
220
  * following property can be used to identify a directory of static content
221
221
  * that should be served at http://localhost:1880/.
222
- * When httpStaticRoot is set differently to httpAdminRoot, there is no need
222
+ * When httpStaticRoot is set differently to httpAdminRoot, there is no need
223
223
  * to move httpAdminRoot
224
224
  */
225
225
  //httpStatic: '/home/nol/node-red-static/', //single static source
226
226
  /* OR multiple static sources can be created using an array of objects... */
227
227
  //httpStatic: [
228
- // {path: '/home/nol/pics/', root: "/img/"},
229
- // {path: '/home/nol/reports/', root: "/doc/"},
228
+ // {path: '/home/nol/pics/', root: "/img/"},
229
+ // {path: '/home/nol/reports/', root: "/doc/"},
230
230
  //],
231
231
 
232
- /**
232
+ /**
233
233
  * All static routes will be appended to httpStaticRoot
234
234
  * e.g. if httpStatic = "/home/nol/docs" and httpStaticRoot = "/static/"
235
235
  * then "/home/nol/docs" will be served at "/static/"
@@ -256,11 +256,11 @@ module.exports = {
256
256
  */
257
257
  // lang: "de",
258
258
 
259
- /** Configure diagnostics options
259
+ /** Configure diagnostics options
260
260
  * - enabled: When `enabled` is `true` (or unset), diagnostics data will
261
- * be available at http://localhost:1880/diagnostics
262
- * - ui: When `ui` is `true` (or unset), the action `show-system-info` will
263
- * be available to logged in users of node-red editor
261
+ * be available at http://localhost:1880/diagnostics
262
+ * - ui: When `ui` is `true` (or unset), the action `show-system-info` will
263
+ * be available to logged in users of node-red editor
264
264
  */
265
265
  diagnostics: {
266
266
  /** enable or disable diagnostics endpoint. Must be set to `false` to disable */
@@ -268,10 +268,10 @@ module.exports = {
268
268
  /** enable or disable diagnostics display in the node-red editor. Must be set to `false` to disable */
269
269
  ui: true,
270
270
  },
271
- /** Configure runtimeState options
272
- * - enabled: When `enabled` is `true` flows runtime can be Started/Stoped
273
- * by POSTing to available at http://localhost:1880/flows/state
274
- * - ui: When `ui` is `true`, the action `core:start-flows` and
271
+ /** Configure runtimeState options
272
+ * - enabled: When `enabled` is `true` flows runtime can be Started/Stopped
273
+ * by POSTing to available at http://localhost:1880/flows/state
274
+ * - ui: When `ui` is `true`, the action `core:start-flows` and
275
275
  * `core:stop-flows` will be available to logged in users of node-red editor
276
276
  * Also, the deploy menu (when set to default) will show a stop or start button
277
277
  */
@@ -416,13 +416,22 @@ module.exports = {
416
416
  */
417
417
  // theme: "vs",
418
418
  /** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc.
419
- * for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IStandaloneEditorConstructionOptions.html
419
+ * for the full list, see https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html
420
420
  */
421
421
  //fontSize: 14,
422
422
  //fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",
423
423
  //fontLigatures: true,
424
424
  }
425
- }
425
+ },
426
+
427
+ markdownEditor: {
428
+ mermaid: {
429
+ /** enable or disable mermaid diagram in markdown document
430
+ */
431
+ enabled: true
432
+ }
433
+ },
434
+
426
435
  },
427
436
 
428
437
  /*******************************************************************************
@@ -519,7 +528,7 @@ module.exports = {
519
528
  */
520
529
  //tlsConfigDisableLocalFiles: true,
521
530
 
522
- /** The following property can be used to verify websocket connection attempts.
531
+ /** The following property can be used to verify WebSocket connection attempts.
523
532
  * This allows, for example, the HTTP request headers to be checked to ensure
524
533
  * they include valid authentication information.
525
534
  */