From 6f34696687bd0ff129136ed0af863a58c0f9d391 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 9 Jun 2025 11:47:18 +0100 Subject: [PATCH 1/5] Initial prep for 4.1.0-beta.1 release --- CHANGELOG.md | 73 +++++++++++++++++++ package.json | 2 +- .../@node-red/editor-api/package.json | 6 +- .../@node-red/editor-client/package.json | 2 +- .../node_modules/@node-red/nodes/package.json | 2 +- .../@node-red/registry/package.json | 4 +- .../@node-red/runtime/package.json | 6 +- .../node_modules/@node-red/util/package.json | 2 +- packages/node_modules/node-red/package.json | 10 +-- 9 files changed, 90 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e77657c8..95df0d08a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,76 @@ +#### 4.1.0-beta.1: Beta Release + +Editor + + - Add update notification (#5117) @knolleary + - Add a node annotation if the info property is set (#4955) @knolleary + - Add node suggestion api to editor and apply to typeSearch (#5135) @knolleary + - Node filter support for typedInput's builtin node (#5154) @GogoVega + - Import `got` module only once when sending metrics (#5152) @GogoVega + - Trigger button action of the selected nodes with new Hotkey (#4924) @GogoVega + - Handle deleting of subflow context entries (#5071) @knolleary + - Add the `changed` badge to the config node (#5062) @GogoVega + - Default Palette Search: Sort by Downloads (#5108) @joepavitt + - Show deprecated message if module flagged (#5134) @knolleary + - Add link icon to node docs and warn for major update (#5143) @GogoVega + - Support for a module with nodes and plugins in the palette (#4945) @GogoVega + - Include module list in global-config node when importing/exporting flows (#4599) @knolleary + - Add `Install all` button to the module list feature (#5123) @GogoVega + - Fix node tab filtering (#5119) @knolleary + - Cleanup global Palette Manager variables (#4958) @GogoVega + - Add a new `update available` widget to statusBar (#4948) @knolleary + - Add a queue while installing or removing a module from the Palette Manager (#4937) @GogoVega + - Ignore state of disabled nodes/flows during deployment (#5054) @GogoVega + - Exclude internal properties from node definition (#5144) @GogoVega + - Refresh config node sidebar when changing lock state of a flow (#5072) @knolleary + - Add a border to better distinguish typedInput type/option dropdowns (#5078) @knolleary + - Fix undo of subflow color change not applying to instances (#5012) @GogoVega + - Properly handle scale factor in getLinksAtPoint for firefox (#5087) @knolleary + - Update markdown drop-target appearance (#5059) @knolleary + - Support for disabled flows in Sidebar Config (#5061) @GogoVega + - Support text drag & drop into markdown editor (#5056) @gorenje + - Truncate long messages from the Debug Sidebar (#4944) @GogoVega + - Handle link nodes with show/hide label action (#5106) @knolleary + - Update the Node-RED logo to use the hex variant (#5103) @joepavitt + - Add the vertical marker to the palette hand (#4954) @GogoVega + - Monaco Latest (0.52.0) (#4930) @Steve-Mcl + - Updates monaco to 0.52.0 for action widget sizing fix (#5110) @Steve-Mcl + - Bump Multer to 2.0.1 (#5151) @hardillb + - Upgrade multer to 2.0.0 (#5148) @hardillb + - Update dompurify (#5120) @knolleary + - Colourise the Node-RED logs (#5109) @hardillb + - Only apply colours for non-default log lines (#5129) @knolleary + - feat: import default export if plugin is a transpiled es module (#5137) @dschmidt + - Add an additional git_auth_failed condition (#5145) @sonnyp + - Fix Sass deprecation warnings (#4922) @bonanitech + - chore(editor)!: remove Internet Explorer polyfill (#5070) @Rotzbua + - Remove Internet Explorer CSS hacks (#5142) @bonanitech + +Runtime + + - fix: set label in themeSettings.deployButton despite type attribute (#5053) @matiseni51 + - fix(html): correct buggy html (#4768) @Rotzbua + - Update dev (#4836) @knolleary + - Update dependencies (#5107) @knolleary + - Bump i18next to 24.x and auto-migrate message catalog format (#5088) @knolleary + - chore(editor): update `DOMPurify` flag (#5073) @Rotzbua + - Add .editorconfig to .gitignore (#5060) @gorenje + +Nodes + + - Complete/Status: Fix complete node to not feedback immediately connected nodes (#5114) @dceejay + - Function: Add URL/URLSearchParams to Function sandbox (#5159) @knolleary + - Function: Add support for node: prefixed modules in function node (#5067) @knolleary + - Function: Add globalFunctionTimeout (#4985) @vasuvanka + - Exec: Make encoding handling consistent between stdout and err (#5158) @knolleary + - Split: Let split node send original msg to complete node (#5113) @dceejay + - Split: Rename Split The field (#5130) @dceejay + - MQTT: Ensure generated mqtt clientId uses only valid chars (#5156) @knolleary + - HTTP Request: Fix the capitisation for ALPN settings in http-request (#5105) @hardillb + - HTTP Request: (docs) Recommend HTTPS over HTTP (#5141) @ZJvandeWeg + - Catch: Add code to error object sent by Catch node (#5081) @knolleary + - Debug: Improve debug display of error objects (#5079) @knolleary + #### 4.0.9: Maintenance Release Editor diff --git a/package.json b/package.json index df423ad0f..41edfd069 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "description": "Low-code programming for event-driven applications", "homepage": "https://nodered.org", "license": "Apache-2.0", diff --git a/packages/node_modules/@node-red/editor-api/package.json b/packages/node_modules/@node-red/editor-api/package.json index 4ed4e3f4a..a9f91fa3c 100644 --- a/packages/node_modules/@node-red/editor-api/package.json +++ b/packages/node_modules/@node-red/editor-api/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/editor-api", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "main": "./lib/index.js", "repository": { @@ -16,8 +16,8 @@ } ], "dependencies": { - "@node-red/util": "4.1.0-beta.0", - "@node-red/editor-client": "4.1.0-beta.0", + "@node-red/util": "4.1.0-beta.1", + "@node-red/editor-client": "4.1.0-beta.1", "bcryptjs": "3.0.2", "body-parser": "1.20.3", "clone": "2.1.2", diff --git a/packages/node_modules/@node-red/editor-client/package.json b/packages/node_modules/@node-red/editor-client/package.json index c50b279a1..9cb219576 100644 --- a/packages/node_modules/@node-red/editor-client/package.json +++ b/packages/node_modules/@node-red/editor-client/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/editor-client", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/packages/node_modules/@node-red/nodes/package.json b/packages/node_modules/@node-red/nodes/package.json index c9a6f0166..fd5fef6b4 100644 --- a/packages/node_modules/@node-red/nodes/package.json +++ b/packages/node_modules/@node-red/nodes/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/nodes", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/packages/node_modules/@node-red/registry/package.json b/packages/node_modules/@node-red/registry/package.json index 1e886a159..0014d853a 100644 --- a/packages/node_modules/@node-red/registry/package.json +++ b/packages/node_modules/@node-red/registry/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/registry", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "main": "./lib/index.js", "repository": { @@ -16,7 +16,7 @@ } ], "dependencies": { - "@node-red/util": "4.1.0-beta.0", + "@node-red/util": "4.1.0-beta.1", "clone": "2.1.2", "fs-extra": "11.3.0", "semver": "7.7.1", diff --git a/packages/node_modules/@node-red/runtime/package.json b/packages/node_modules/@node-red/runtime/package.json index 03ef360d2..c2a0a91ef 100644 --- a/packages/node_modules/@node-red/runtime/package.json +++ b/packages/node_modules/@node-red/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/runtime", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "main": "./lib/index.js", "repository": { @@ -16,8 +16,8 @@ } ], "dependencies": { - "@node-red/registry": "4.1.0-beta.0", - "@node-red/util": "4.1.0-beta.0", + "@node-red/registry": "4.1.0-beta.1", + "@node-red/util": "4.1.0-beta.1", "async-mutex": "0.5.0", "clone": "2.1.2", "cronosjs": "1.7.1", diff --git a/packages/node_modules/@node-red/util/package.json b/packages/node_modules/@node-red/util/package.json index dffc817b0..316d0696f 100644 --- a/packages/node_modules/@node-red/util/package.json +++ b/packages/node_modules/@node-red/util/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/util", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/packages/node_modules/node-red/package.json b/packages/node_modules/node-red/package.json index f36273986..0806b69b9 100644 --- a/packages/node_modules/node-red/package.json +++ b/packages/node_modules/node-red/package.json @@ -1,6 +1,6 @@ { "name": "node-red", - "version": "4.1.0-beta.0", + "version": "4.1.0-beta.1", "description": "Low-code programming for event-driven applications", "homepage": "https://nodered.org", "license": "Apache-2.0", @@ -31,10 +31,10 @@ "flow" ], "dependencies": { - "@node-red/editor-api": "4.1.0-beta.0", - "@node-red/runtime": "4.1.0-beta.0", - "@node-red/util": "4.1.0-beta.0", - "@node-red/nodes": "4.1.0-beta.0", + "@node-red/editor-api": "4.1.0-beta.1", + "@node-red/runtime": "4.1.0-beta.1", + "@node-red/util": "4.1.0-beta.1", + "@node-red/nodes": "4.1.0-beta.1", "basic-auth": "2.0.1", "bcryptjs": "3.0.2", "cors": "2.8.5", From 9c086a1e611fc4e44970aada373d695756c533ee Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 9 Jun 2025 17:01:59 +0100 Subject: [PATCH 2/5] Update tour for beta.1 --- .../src/tours/images/missing-modules.png | Bin 0 -> 47386 bytes .../src/tours/images/node-docs.png | Bin 0 -> 7524 bytes .../src/tours/images/update-notification.png | Bin 0 -> 24604 bytes .../editor-client/src/tours/welcome.js | 97 +++++++++++------- 4 files changed, 61 insertions(+), 36 deletions(-) create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/missing-modules.png create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/node-docs.png create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/update-notification.png diff --git a/packages/node_modules/@node-red/editor-client/src/tours/images/missing-modules.png b/packages/node_modules/@node-red/editor-client/src/tours/images/missing-modules.png new file mode 100644 index 0000000000000000000000000000000000000000..f96144395b9e8c9dea38bafccd07164521be4f4f GIT binary patch literal 47386 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 literal 0 HcmV?d00001 diff --git a/packages/node_modules/@node-red/editor-client/src/tours/images/update-notification.png b/packages/node_modules/@node-red/editor-client/src/tours/images/update-notification.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4b610e787e6e24af4f02870d95825780ee229f GIT binary patch literal 24604 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 new

` + "en-US": `

Stay up to date with notifications when there is a new Node-RED version available, or updates to the nodes you have installed

` } }, - // { - // title: { - // "en-US": "Node Updates", - // "ja": "ノードの更新", - // "fr": "Mises à jour des noeuds" - // }, - // // image: "images/", - // description: { - // "en-US": `

The core nodes have received lots of minor fixes, documentation updates and - // small enhancements. Check the full changelog in the Help sidebar for a full list.

- //
    - //
  • A fully RFC4180 compliant CSV mode
  • - //
  • Customisable headers on the WebSocket node
  • - //
  • Split node now can operate on any message property
  • - //
  • and lots more...
  • - //
`, - // "ja": `

コアノードには沢山の軽微な修正、ドキュメント更新、小さな機能拡張が入っています。全リストはヘルプサイドバーにある変更履歴を参照してください。

- //
    - //
  • RFC4180に完全に準拠したCSVモード
  • - //
  • WebSocketノードのカスタマイズ可能なヘッダ
  • - //
  • Splitノードは、メッセージプロパティで操作できるようになりました
  • - //
  • 他にも沢山あります...
  • - //
`, - // "fr": `

Les noeuds principaux ont reçu de nombreux correctifs mineurs ainsi que des améliorations. La documentation a été mise à jour. - // Consultez le journal des modifications dans la barre latérale d'aide pour une liste complète. Ci-dessous, les changements les plus importants :

- //
    - //
  • Un mode CSV entièrement conforme à la norme RFC4180
  • - //
  • En-têtes personnalisables pour le noeud WebSocket
  • - //
  • Le noeud Split peut désormais fonctionner sur n'importe quelle propriété de message
  • - //
  • Et bien plus encore...
  • - //
` - // } - // } + { + title: { + "en-US": "Flow documentation", + }, + image: 'images/node-docs.png', + description: { + "en-US": `

Quickly see which nodes have additional documentation with the new documentation icon.

Clicking on the icon opens up the Description tab of the node edit dialog.

` + } + }, + { + title: { + "en-US": "Palette Manager Improvements", + }, + description: { + "en-US": `

There are lots of improvements to the palette manager:

+
    +
  • Search results are sorted by downloads to help you find the most popular nodes
  • +
  • See which nodes have been deprecated by their author and are no longer recommended for use
  • +
  • Links to node documentation for the nodes you already have installed
  • +
` + } + }, + { + title: { + "en-US": "Installing missing modules", + }, + image: 'images/missing-modules.png', + description: { + "en-US": `

Flows exported from Node-RED 4.1 now include information on what additional modules need to be installed.

+

When importing a flow with this information, the editor will let you know what is missing and help to get them installed.

+ ` + } + }, + { + title: { + "en-US": "Node Updates", + "ja": "ノードの更新", + "fr": "Mises à jour des noeuds" + }, + // image: "images/", + description: { + "en-US": `

The core nodes have received lots of minor fixes, documentation updates and + small enhancements. Check the full changelog in the Help sidebar for a full list.

+
    +
  • Support for node: prefixed modules in the Function node
  • +
  • The ability to set a global timeout for Function nodes via the runtime settings
  • +
  • Better display of error objects in the Debug sidebar
  • +
  • and lots more...
  • +
`, + // "ja": `

コアノードには沢山の軽微な修正、ドキュメント更新、小さな機能拡張が入っています。全リストはヘルプサイドバーにある変更履歴を参照してください。

+ //
    + //
`, + // "fr": `

Les noeuds principaux ont reçu de nombreux correctifs mineurs ainsi que des améliorations. La documentation a été mise à jour. + // Consultez le journal des modifications dans la barre latérale d'aide pour une liste complète. Ci-dessous, les changements les plus importants :

+ //
    + //
` + } + } ] } From 1ba0980a3392be964a2b51a757da5e9dfbef9f97 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 10 Jun 2025 10:17:17 +0100 Subject: [PATCH 3/5] Bump node-red-admin version --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 41edfd069..2a132cd9c 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ } ], "dependencies": { - "acorn": "8.14.1", + "acorn": "8.15.0", "acorn-walk": "8.3.4", "ajv": "8.17.1", "async-mutex": "0.5.0", @@ -65,7 +65,7 @@ "mqtt": "5.11.0", "multer": "2.0.1", "mustache": "4.2.0", - "node-red-admin": "^4.0.2", + "node-red-admin": "^4.1.0", "node-watch": "0.7.4", "nopt": "5.0.0", "oauth2orize": "1.12.0", From 7f1eede6f8cc650bde948886b60c14071b53a3ab Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 10 Jun 2025 10:41:21 +0100 Subject: [PATCH 4/5] Update dependencies --- packages/node_modules/@node-red/nodes/package.json | 2 +- packages/node_modules/node-red/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/package.json b/packages/node_modules/@node-red/nodes/package.json index fd5fef6b4..c6b385979 100644 --- a/packages/node_modules/@node-red/nodes/package.json +++ b/packages/node_modules/@node-red/nodes/package.json @@ -15,7 +15,7 @@ } ], "dependencies": { - "acorn": "8.14.1", + "acorn": "8.15.0", "acorn-walk": "8.3.4", "ajv": "8.17.1", "body-parser": "1.20.3", diff --git a/packages/node_modules/node-red/package.json b/packages/node_modules/node-red/package.json index 0806b69b9..d189fb5e3 100644 --- a/packages/node_modules/node-red/package.json +++ b/packages/node_modules/node-red/package.json @@ -40,7 +40,7 @@ "cors": "2.8.5", "express": "4.21.2", "fs-extra": "11.3.0", - "node-red-admin": "^4.0.2", + "node-red-admin": "^4.1.0", "nopt": "5.0.0", "semver": "7.7.1" }, From 3e6a44fa65c89652a385906a3c7fe093b43d9f8f Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 10 Jun 2025 16:13:59 +0100 Subject: [PATCH 5/5] Fix unit test failures due to timing issue around start/stop lifecyclce --- packages/node_modules/@node-red/runtime/lib/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/runtime/lib/index.js b/packages/node_modules/@node-red/runtime/lib/index.js index 3251ff2fa..1ac43032b 100644 --- a/packages/node_modules/@node-red/runtime/lib/index.js +++ b/packages/node_modules/@node-red/runtime/lib/index.js @@ -237,8 +237,12 @@ function start() { } } return redNodes.loadContextsPlugin().then(function () { - redNodes.loadFlows().then(() => { redNodes.startFlows() }).catch(function(err) {}); started = true; + redNodes.loadFlows().then(() => { + if (started) { + redNodes.startFlows() + } + }).catch(function(err) {}); }); }); });