node-red 2.2.2 → 3.0.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 CHANGED
@@ -1,3 +1,154 @@
1
+ #### 3.0.0-beta.3: Beta Release
2
+
3
+ Editor
4
+
5
+ - Add Right-Click content menu (#3678) @knolleary
6
+ - Fix disable junction (#3671) @HiroyasuNishiyama
7
+ - Add Japanese translations for v2.2.3 (#3672) @kazuhitoyokoi
8
+ - Reset mouse state when switching tabs (#3643) @knolleary
9
+ - Fix uncorrect fix of junction to subflow conversion (#3666) @HiroyasuNishiyama
10
+ - Fix undoing junction to subflow (#3653) @HiroyasuNishiyama
11
+ - Fix conversion of junction to subflow (#3652) @HiroyasuNishiyama
12
+ - Fix to include junction to exported nodes (#3650) @HiroyasuNishiyama
13
+ - Fix z-index value for shade to cover nodes in palette (#3649) @kazuhitoyokoi
14
+ - Fix to extend escaped subflow category characters (#3647) @HiroyasuNishiyama
15
+ - Fix to sanitize tab name (#3646) @HiroyasuNishiyama
16
+ - Fix selector placement (#3644) @bonanitech
17
+ - Add Japanese translations for v3.0-beta.2 (#3622) @kazuhitoyokoi
18
+ - Fix new folder menu of save to library dialog (#3633) @HiroyasuNishiyama
19
+ - Fix layer of palette node (#3638) @HiroyasuNishiyama
20
+ - Fix to place a node dragged from palette within the workspace (#3637) @HiroyasuNishiyama
21
+ - Fix typo in CSS (#3628) @bonanitech
22
+ - Use the correct variable for the gutter text color (#3615) @bonanitech
23
+
24
+
25
+ Runtime
26
+
27
+ - Support loading node modules from `nodesdir` (#3676) @Steve-Mcl
28
+ - fix buffer parse error message of evaluateNodeProperty (#3624) @HiroyasuNishiyama
29
+
30
+ Nodes
31
+
32
+ - File: Further simplify file node filename entry UX (v3) (#3677) @Steve-Mcl
33
+ - Function: Fix initial cursor position of init/finalize tab of function node (#3674) @HiroyasuNishiyama
34
+ - Function: Fix ESM module loading in Function node (#3645) @knolleary
35
+ - Inject: Fix JSONata evaluation of inject button (#3632) @HiroyasuNishiyama
36
+ - TCP: Dont delete TCP socket twice (#3630) @Steve-Mcl
37
+ - MQTT Node: define noproxy variable (#3626) @Steve-Mcl
38
+ - Debug: i18n debug sidebar node label (#3623) @HiroyasuNishiyama
39
+
40
+ #### 3.0.0-beta.2: Beta Release
41
+
42
+ **Migration from 2.x**
43
+
44
+ - The 'slice wires' action has changed from Ctrl-RightMouseButton to Alt-LeftMouseButton
45
+
46
+ Editor
47
+
48
+ - Rework Junctions to be more node like in their event handling (#3607) @knolleary
49
+ - Change slicing / slice-junction operations over to mouse button 0 (Left Mouse Button) (#3609) @Steve-Mcl
50
+ - Do not slice-junction link node wires (#3608) @knolleary
51
+ - Handle many-to-one slicing of wires (#3604) @knolleary
52
+ - Ensure ACE worker options are set (#3611) @Steve-Mcl
53
+ - Remove duplicate history add of ungroup event (#3605) @knolleary
54
+ - use text width instead of number of characters for deciding select fi… (#3603) @HiroyasuNishiyama
55
+ - Update Japanese info of link call node reflecting update of English info (#3600) @HiroyasuNishiyama
56
+ - Fix typedInput label not visible on themes (#3580) @bonanitech
57
+ - Fix project switching when junctions are present (#3595) @Steve-Mcl
58
+ - Fix junction: when wiring from a regular nodes INPUT, backwards to a junction (#3591) @Steve-Mcl
59
+ - Fix error initialising flow tab editor (#3585) @Steve-Mcl
60
+ - Add Japanese translations for v3.0-beta.1 (#3576) @kazuhitoyokoi
61
+ - Fix image paths where `red/image/typedInput/XXXX.png` should be `red/image/typedInput/XXXX.svg` (#3592) @kazuhitoyokoi
62
+ - Fix browser console error Uncaught TypeError when searching certain terms (#3584) @Steve-Mcl
63
+
64
+ Runtime
65
+
66
+ - fix error on system-info action (#3589) @HiroyasuNishiyama
67
+
68
+ Nodes
69
+
70
+ - I18n switch rule selector (#3602) @HiroyasuNishiyama
71
+ - Handle removal of event handlers to allow mqtt client.end() to work (#3594) @PhilDay-CT
72
+ - update link-call node info according to current behavior (#3597) @HiroyasuNishiyama
73
+
74
+
75
+ #### 3.0.0-beta.1: Beta Release
76
+
77
+ **Migration from 2.x**
78
+
79
+ - Node-RED now requires Node.js 14.x or later.
80
+ - New installs of Node-RED will default to the monaco editor.
81
+
82
+
83
+ Editor
84
+
85
+ - Add Junctions (#3462) @knolleary
86
+ - Allow node name to be auto-generated when added (#3478, #3538) @knolleary
87
+ - Set monaco as default code editor as of v3.x (#3543) @Steve-Mcl
88
+ - Update Monaco to V0.33.0 (#3522) @Steve-Mcl
89
+ - Auto-complete Improvements (#3521) @Steve-Mcl
90
+ - Add a tooltip to debug sidebar messages to reveal full path to node (#3503) @knolleary
91
+ - Fix down arrow triggering menu in search box (#3507) @Steve-Mcl
92
+ - Add Japanese translations for v3.0 (#3512) @kazuhitoyokoi
93
+ - Add feature: Continuous search tools (search previous, search next) (#3405) @Steve-Mcl
94
+ - Add feature: split-wire-to-links (#3399, #3476) @Steve-Mcl
95
+ - Add copy button to node properties tables (#3390) @knolleary
96
+ - Add info-tab search options dropdown to the regular search (#3395) @Steve-Mcl
97
+ - New Feature: Add ability to find modified nodes/flows. (#3392) @Steve-Mcl
98
+ - Code editor ux improvements around remembering state of each code editor in a flow (#3553) @Steve-Mcl
99
+ - Make it easier to apply themes on SVG icons (#3515) @bonanitech
100
+ - Add support of property validation message (#3438) @HiroyasuNishiyama
101
+ - Ensure node validation tooltip is closed when field becomes valid (#3570) @knolleary
102
+ - Add "search for" buttons to notifications (#3567) @Steve-Mcl
103
+ - Don't let themes change node config colors (#3564) @bonanitech
104
+ - Fix gap between typedInput containers borders (#3560) @bonanitech
105
+ - Fix recording removed links in edit history (#3547) @knolleary
106
+ - Remove unused SASS vars (#3536) @bonanitech
107
+ - Add custom style for jQuery widgets borders (#3537) @bonanitech
108
+ - fix out of scope reference of hasUnusedConfig variable (#3535) @HiroyasuNishiyama
109
+ - correct "non string" check parenthesis (#3524) @Steve-Mcl
110
+ - Ensure i18n of scoped package name (#3516) @Steve-Mcl
111
+ - Prevent shortcut deploy when deploy button shaded (#3517) @Steve-Mcl
112
+ - Fix: Sidebar "Configuration" filter button tooltip (#3500) @ralphwetzel
113
+ - Add the ability to customize diff colors even more (#3499) @bonanitech
114
+ - Do JSON comparison of old value/new value in editor (#3481) @Steve-Mcl
115
+ - Fix nodes losing their wires when in an iframe (#3484) @zettca
116
+ - Improve scroll into view (#3468) @Steve-Mcl
117
+ - Do not show 1st tab if hidden when loading (#3464) @Steve-Mcl
118
+
119
+ Runtime
120
+
121
+ - Fix importing external module from node-red module (#3541) @knolleary
122
+ - Add support for multiple static paths with optional static root (#3542) @Steve-Mcl
123
+ - Store external token when authenticating if provided (#3460) @ArFe
124
+ - Support OAuth/OpenID logout (#3388) @mw75
125
+ - Allow adminAuth to auto-login users when using passport strategy (#3519) @knolleary
126
+ - Add runtime diagnostics admin endpoint (#3511) @Steve-Mcl
127
+ - Don't start if user has no home directory (#3540) @hardillb
128
+ - Error on invalid encrypted credentials (#3498) @sammachin
129
+
130
+ Nodes
131
+
132
+ - Debug: Add message count option to Debug status (#3544 #3551) @rafaelmuynarsk @knolleary
133
+ - File: Change basic Filename field to a typedInput (#3533) @Steve-Mcl
134
+ - HTTP Request: Add UI for Http Request node headers (#3488) @Steve-Mcl
135
+ - Inject: let inject optionally fire at start in only at time mode. (#3385) @dceejay
136
+ - Link Call: Dynamic link call (#3463) @Steve-Mcl
137
+ - Link Call: Display link targets of nodes in a regular flow, for Link Call nodes inside a subflow (#3528) @Steve-Mcl
138
+ - MQTT: MQTT payload auto parsing improvements (#3530) @Steve-Mcl
139
+ - MQTT: Add client and Runtime MQTT topic validation (#3563) @Steve-Mcl [dev]
140
+ - MQTT: save and restore v5 config user props (#3562) @Steve-Mcl
141
+ - MQTT: Fix incorrect MQTT status (#3552) @Steve-Mcl
142
+ - MQTT: fix reference error of msg.status in debug node (#3526) @HiroyasuNishiyama
143
+ - MQTT: Add unit tests for MQTT nodes (#3497) @Steve-Mcl
144
+ - MQTT: fix typo of will properties (#3502) @Steve-Mcl
145
+ - MQTT: ensure mqtt v5 props can be set false (#3472) @Steve-Mcl
146
+ - Switch: add check for NaN in is of type number to be false (#3409) @dceejay
147
+ - TCP: TCP node better split (#3465) @dceejay
148
+ - Watch: Update Watch node to use node-watch module (#3559 #3569) @knolleary
149
+ - WebSocket: call done after ws disconnects (#3531) @Steve-Mcl
150
+
151
+
1
152
  #### 2.2.2: Maintenance Release
2
153
 
3
154
  Nodes
package/lib/red.js CHANGED
@@ -229,5 +229,12 @@ module.exports = {
229
229
  * @see @node-red/editor-api_auth
230
230
  * @memberof node-red
231
231
  */
232
- auth: api.auth
232
+ auth: api.auth,
233
+
234
+ /**
235
+ * The editor authentication api.
236
+ * @see @node-red/editor-api_auth
237
+ * @memberof node-red
238
+ */
239
+ get diagnostics() { return api.diagnostics }
233
240
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red",
3
- "version": "2.2.2",
3
+ "version": "3.0.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,22 +31,22 @@
31
31
  "flow"
32
32
  ],
33
33
  "dependencies": {
34
- "@node-red/editor-api": "2.2.2",
35
- "@node-red/runtime": "2.2.2",
36
- "@node-red/util": "2.2.2",
37
- "@node-red/nodes": "2.2.2",
34
+ "@node-red/editor-api": "3.0.0-beta.3",
35
+ "@node-red/runtime": "3.0.0-beta.3",
36
+ "@node-red/util": "3.0.0-beta.3",
37
+ "@node-red/nodes": "3.0.0-beta.3",
38
38
  "basic-auth": "2.0.1",
39
39
  "bcryptjs": "2.4.3",
40
- "express": "4.17.2",
41
- "fs-extra": "10.0.0",
42
- "node-red-admin": "^2.2.3",
40
+ "express": "4.18.1",
41
+ "fs-extra": "10.1.0",
42
+ "node-red-admin": "^3.0.0",
43
43
  "nopt": "5.0.0",
44
- "semver": "7.3.5"
44
+ "semver": "7.3.7"
45
45
  },
46
46
  "optionalDependencies": {
47
47
  "bcrypt": "5.0.1"
48
48
  },
49
49
  "engines": {
50
- "node": ">=12"
50
+ "node": ">=14"
51
51
  }
52
52
  }
package/red.js CHANGED
@@ -112,6 +112,10 @@ if (parsedArgs.settings) {
112
112
  // Consider compatibility for older versions
113
113
  settingsFile = path.join(process.env.HOMEPATH,".node-red","settings.js");
114
114
  } else {
115
+ if (!parsedArgs.userDir && !(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH)) {
116
+ console.log("Could not find user directory. Ensure $HOME is set for the current user, or use --userDir option")
117
+ process.exit(1)
118
+ }
115
119
  var userDir = parsedArgs.userDir || path.join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH,".node-red");
116
120
  var userSettingsFile = path.join(userDir,"settings.js");
117
121
  if (fs.existsSync(userSettingsFile)) {
@@ -298,6 +302,26 @@ httpsPromise.then(function(startupHttps) {
298
302
  settings.httpNodeAuth = settings.httpNodeAuth || settings.httpAuth;
299
303
  }
300
304
 
305
+ if(settings.httpStatic) {
306
+ settings.httpStaticRoot = formatRoot(settings.httpStaticRoot || "/");
307
+ const statics = Array.isArray(settings.httpStatic) ? settings.httpStatic : [settings.httpStatic];
308
+ const sanitised = [];
309
+ for (let si = 0; si < statics.length; si++) {
310
+ let sp = statics[si];
311
+ if(typeof sp === "string") {
312
+ sp = { path: sp, root: "" }
313
+ sanitised.push(sp);
314
+ } else if (typeof sp === "object" && sp.path ) {
315
+ sanitised.push(sp);
316
+ } else {
317
+ continue;
318
+ }
319
+ sp.subRoot = formatRoot(sp.root);
320
+ sp.root = formatRoot(path.posix.join(settings.httpStaticRoot,sp.subRoot));
321
+ }
322
+ settings.httpStatic = sanitised.length ? sanitised : false;
323
+ }
324
+
301
325
  // if we got a port from command line, use it (even if 0)
302
326
  // replicate (settings.uiPort = parsedArgs.port||settings.uiPort||1880;) but allow zero
303
327
  if (parsedArgs.port !== undefined){
@@ -390,12 +414,28 @@ httpsPromise.then(function(startupHttps) {
390
414
  if (settings.httpNodeRoot !== false) {
391
415
  app.use(settings.httpNodeRoot,RED.httpNode);
392
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
+ // }
393
424
  if (settings.httpStatic) {
394
- settings.httpStaticAuth = settings.httpStaticAuth || settings.httpAuth;
395
- if (settings.httpStaticAuth) {
396
- app.use("/",basicAuthMiddleware(settings.httpStaticAuth.user,settings.httpStaticAuth.pass));
425
+ let appUseMem = {};
426
+ for (let si = 0; si < settings.httpStatic.length; si++) {
427
+ const sp = settings.httpStatic[si];
428
+ const filePath = sp.path;
429
+ const thisRoot = sp.root || "/";
430
+ if(appUseMem[filePath + "::" + thisRoot]) {
431
+ continue;// this path and root already registered!
432
+ }
433
+ appUseMem[filePath + "::" + thisRoot] = true;
434
+ if (settings.httpStaticAuth) {
435
+ app.use(thisRoot, basicAuthMiddleware(settings.httpStaticAuth.user, settings.httpStaticAuth.pass));
436
+ }
437
+ app.use(thisRoot, express.static(filePath));
397
438
  }
398
- app.use("/",express.static(settings.httpStatic));
399
439
  }
400
440
 
401
441
  function getListenPath() {
package/settings.js CHANGED
@@ -137,6 +137,7 @@ module.exports = {
137
137
  * - httpNodeCors
138
138
  * - httpNodeMiddleware
139
139
  * - httpStatic
140
+ * - httpStaticRoot
140
141
  ******************************************************************************/
141
142
 
142
143
  /** the tcp port that the Node-RED web server is listening on */
@@ -218,92 +219,123 @@ module.exports = {
218
219
  /** When httpAdminRoot is used to move the UI to a different root path, the
219
220
  * following property can be used to identify a directory of static content
220
221
  * that should be served at http://localhost:1880/.
222
+ * When httpStaticRoot is set differently to httpAdminRoot, there is no need
223
+ * to move httpAdminRoot
221
224
  */
222
- //httpStatic: '/home/nol/node-red-static/',
225
+ //httpStatic: '/home/nol/node-red-static/', //single static source
226
+ /* OR multiple static sources can be created using an array of objects... */
227
+ //httpStatic: [
228
+ // {path: '/home/nol/pics/', root: "/img/"},
229
+ // {path: '/home/nol/reports/', root: "/doc/"},
230
+ //],
231
+
232
+ /**
233
+ * All static routes will be appended to httpStaticRoot
234
+ * e.g. if httpStatic = "/home/nol/docs" and httpStaticRoot = "/static/"
235
+ * then "/home/nol/docs" will be served at "/static/"
236
+ * e.g. if httpStatic = [{path: '/home/nol/pics/', root: "/img/"}]
237
+ * and httpStaticRoot = "/static/"
238
+ * then "/home/nol/pics/" will be served at "/static/img/"
239
+ */
240
+ //httpStaticRoot: '/static/',
223
241
 
224
242
  /*******************************************************************************
225
243
  * Runtime Settings
226
244
  * - lang
245
+ * - diagnostics
227
246
  * - logging
228
247
  * - contextStorage
229
248
  * - exportGlobalContextKeys
230
249
  * - externalModules
231
250
  ******************************************************************************/
232
251
 
233
- /** Uncomment the following to run node-red in your preferred language.
234
- * Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko
235
- * Some languages are more complete than others.
236
- */
237
- // lang: "de",
238
-
239
- /** Configure the logging output */
240
- logging: {
241
- /** Only console logging is currently supported */
242
- console: {
243
- /** Level of logging to be recorded. Options are:
244
- * fatal - only those errors which make the application unusable should be recorded
245
- * error - record errors which are deemed fatal for a particular request + fatal errors
246
- * warn - record problems which are non fatal + errors + fatal errors
247
- * info - record information about the general running of the application + warn + error + fatal errors
248
- * debug - record information which is more verbose than info + info + warn + error + fatal errors
249
- * trace - record very detailed logging + debug + info + warn + error + fatal errors
250
- * off - turn off all logging (doesn't affect metrics or audit)
251
- */
252
- level: "info",
253
- /** Whether or not to include metric events in the log output */
254
- metrics: false,
255
- /** Whether or not to include audit events in the log output */
256
- audit: false
257
- }
258
- },
259
-
260
- /** Context Storage
261
- * The following property can be used to enable context storage. The configuration
262
- * provided here will enable file-based context that flushes to disk every 30 seconds.
263
- * Refer to the documentation for further options: https://nodered.org/docs/api/context/
264
- */
265
- //contextStorage: {
266
- // default: {
267
- // module:"localfilesystem"
268
- // },
269
- //},
270
-
271
- /** `global.keys()` returns a list of all properties set in global context.
272
- * This allows them to be displayed in the Context Sidebar within the editor.
273
- * In some circumstances it is not desirable to expose them to the editor. The
274
- * following property can be used to hide any property set in `functionGlobalContext`
275
- * from being list by `global.keys()`.
276
- * By default, the property is set to false to avoid accidental exposure of
277
- * their values. Setting this to true will cause the keys to be listed.
278
- */
279
- exportGlobalContextKeys: false,
280
-
281
- /** Configure how the runtime will handle external npm modules.
282
- * This covers:
283
- * - whether the editor will allow new node modules to be installed
284
- * - whether nodes, such as the Function node are allowed to have their
285
- * own dynamically configured dependencies.
286
- * The allow/denyList options can be used to limit what modules the runtime
287
- * will install/load. It can use '*' as a wildcard that matches anything.
288
- */
289
- externalModules: {
290
- // autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */
291
- // autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */
292
- // palette: { /** Configuration for the Palette Manager */
293
- // allowInstall: true, /** Enable the Palette Manager in the editor */
294
- // allowUpdate: true, /** Allow modules to be updated in the Palette Manager */
295
- // allowUpload: true, /** Allow module tgz files to be uploaded and installed */
296
- // allowList: ['*'],
297
- // denyList: [],
298
- // allowUpdateList: ['*'],
299
- // denyUpdateList: []
300
- // },
301
- // modules: { /** Configuration for node-specified modules */
302
- // allowInstall: true,
303
- // allowList: [],
304
- // denyList: []
305
- // }
306
- },
252
+ /** Uncomment the following to run node-red in your preferred language.
253
+ * Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko
254
+ * Some languages are more complete than others.
255
+ */
256
+ // lang: "de",
257
+
258
+ /** Configure diagnostics options
259
+ * - enabled: When `enabled` is `true` (or unset), diagnostics data will
260
+ * be available at http://localhost:1880/diagnostics
261
+ * - ui: When `ui` is `true` (or unset), the action `show-system-info` will
262
+ * be available to logged in users of node-red editor
263
+ */
264
+ diagnostics: {
265
+ /** enable or disable diagnostics endpoint. Must be set to `false` to disable */
266
+ enabled: true,
267
+ /** enable or disable diagnostics display in the node-red editor. Must be set to `false` to disable */
268
+ ui: true,
269
+ },
270
+
271
+ /** Configure the logging output */
272
+ logging: {
273
+ /** Only console logging is currently supported */
274
+ console: {
275
+ /** Level of logging to be recorded. Options are:
276
+ * fatal - only those errors which make the application unusable should be recorded
277
+ * error - record errors which are deemed fatal for a particular request + fatal errors
278
+ * warn - record problems which are non fatal + errors + fatal errors
279
+ * info - record information about the general running of the application + warn + error + fatal errors
280
+ * debug - record information which is more verbose than info + info + warn + error + fatal errors
281
+ * trace - record very detailed logging + debug + info + warn + error + fatal errors
282
+ * off - turn off all logging (doesn't affect metrics or audit)
283
+ */
284
+ level: "info",
285
+ /** Whether or not to include metric events in the log output */
286
+ metrics: false,
287
+ /** Whether or not to include audit events in the log output */
288
+ audit: false
289
+ }
290
+ },
291
+
292
+ /** Context Storage
293
+ * The following property can be used to enable context storage. The configuration
294
+ * provided here will enable file-based context that flushes to disk every 30 seconds.
295
+ * Refer to the documentation for further options: https://nodered.org/docs/api/context/
296
+ */
297
+ //contextStorage: {
298
+ // default: {
299
+ // module:"localfilesystem"
300
+ // },
301
+ //},
302
+
303
+ /** `global.keys()` returns a list of all properties set in global context.
304
+ * This allows them to be displayed in the Context Sidebar within the editor.
305
+ * In some circumstances it is not desirable to expose them to the editor. The
306
+ * following property can be used to hide any property set in `functionGlobalContext`
307
+ * from being list by `global.keys()`.
308
+ * By default, the property is set to false to avoid accidental exposure of
309
+ * their values. Setting this to true will cause the keys to be listed.
310
+ */
311
+ exportGlobalContextKeys: false,
312
+
313
+ /** Configure how the runtime will handle external npm modules.
314
+ * This covers:
315
+ * - whether the editor will allow new node modules to be installed
316
+ * - whether nodes, such as the Function node are allowed to have their
317
+ * own dynamically configured dependencies.
318
+ * The allow/denyList options can be used to limit what modules the runtime
319
+ * will install/load. It can use '*' as a wildcard that matches anything.
320
+ */
321
+ externalModules: {
322
+ // autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */
323
+ // autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */
324
+ // palette: { /** Configuration for the Palette Manager */
325
+ // allowInstall: true, /** Enable the Palette Manager in the editor */
326
+ // allowUpdate: true, /** Allow modules to be updated in the Palette Manager */
327
+ // allowUpload: true, /** Allow module tgz files to be uploaded and installed */
328
+ // allowList: ['*'],
329
+ // denyList: [],
330
+ // allowUpdateList: ['*'],
331
+ // denyUpdateList: []
332
+ // },
333
+ // modules: { /** Configuration for node-specified modules */
334
+ // allowInstall: true,
335
+ // allowList: [],
336
+ // denyList: []
337
+ // }
338
+ },
307
339
 
308
340
 
309
341
  /*******************************************************************************
@@ -359,9 +391,9 @@ module.exports = {
359
391
 
360
392
  codeEditor: {
361
393
  /** Select the text editor component used by the editor.
362
- * Defaults to "ace", but can be set to "ace" or "monaco"
394
+ * As of Node-RED V3, this defaults to "monaco", but can be set to "ace" if desired
363
395
  */
364
- lib: "ace",
396
+ lib: "monaco",
365
397
  options: {
366
398
  /** The follow options only apply if the editor is set to "monaco"
367
399
  *
@@ -371,7 +403,7 @@ module.exports = {
371
403
  */
372
404
  theme: "vs",
373
405
  /** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc.
374
- * for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.istandaloneeditorconstructionoptions.html
406
+ * for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IStandaloneEditorConstructionOptions.html
375
407
  */
376
408
  //fontSize: 14,
377
409
  //fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",