#### 2.2.1: Maintenance Release Editor - Handle mixed-cased filter terms in keyboard shortcut dialog (#3444) @knolleary - Prevent duplicate links being added between nodes (#3442) @knolleary - Fix to hide tooltip after removing subflow tab (#3391) @HiroyasuNishiyama - Fix node validation to be applied to config node (#3397) @HiroyasuNishiyama - Fix: Dont add wires to undo buffer twice (#3437) @Steve-Mcl Runtime - Improve module location parsing (of stack info) when adding hook (#3447) @Steve-Mcl - Fix substitution of NR_NODE_PATH (#3445) @HiroyasuNishiyama - Remove console.log when ignoring disabled module (#3439) @knolleary - Improve "Unexpected Node Error" logging (#3446) @Steve-Mcl Nodes - Debug: Fix no-prototype-builtins bug in debug node and utils (#3394) @Alkarex - Delay: Fix Japanese message of delay node (#3434) - Allow nbRateUnits to be undefined when validating (#3443) @knolleary - Coding help for recently added node-red Predefined Environment Variables (#3440) @Steve-Mcl #### 2.2.0: Milestone Release Editor - Add editorTheme.tours property to default settings file (#3375) @knolleary - Remember Zoom level and Sidebar tab selection between sessions (#3361) @knolleary - Fix timing issue when merging background changes fixes #3364 (#3373) @Steve-Mcl - Use a nodes palette label in help tree (#3372) @Steve-Mcl - Subflow: Add labels to OUTPUT nodes (#3352) @ralphwetzel - Fix vertical align subflow port (#3370) @knolleary - Make actions list i18n ready and Japanese translation (#3359) @HiroyasuNishiyama - Update tour for 2.2.0 (#3378) @knolleary - Include paletteLabel when building search index (#3380) @Steve-Mcl - Fix opening/closing subflow template not to make subflow changed (#3382) @HiroyasuNishiyama - Add Japanese translations for v2.2.0 (#3353, #3381) @kazuhitoyokoi Runtime - Add support for accessing node id & name as environment variable (#3356) @HiroyasuNishiyama - Clear context contents when switching projects (#3243) @knolleary Nodes - MQTT: reject invalid topics (#3374) @Steve-Mcl - Function: Expose node.path property (#3371) @knolleary - Function: Update `node` declarations in func.d.ts (#3377) @Steve-Mcl #### 2.2.0-beta.1: Beta Release Editor - Add search history to main search box (#3262) @knolleary - Check availability of type of config node on deploy (#3304) @k-toumura - Add wire-slice mode to delete wires with Ctrl-RHClick-Drag (#3340) @knolleary - Wiring keyboard shortcuts (#3288) @knolleary - Snap nodes on grid using either edge as reference (#3289) @knolleary - Detach node action (#3338) @knolleary - Highlight links when selecting nodes (#3323) @knolleary - Allow multiple links to be selected by ctrl-click (#3294) @knolleary Nodes - JSON: Let JSON node attempt to parse buffer if it contains a valid string (#3296) @dceejay - Remove use of verbose flag in core nodes - and use node.debug level instead (#3300) @dceejay - TCP: Add TLS option to tcp client nodes (#3307) @dceejay - WebSocket: Implemented support for Websocket Subprotocols in WS Client Node. (#3333) @tobiasoort #### 2.1.6: Maintenance Release Editor - Revert copy-text change and apply alternative fix (#3363) @knolleary - Update marked to latest (#3362) @knolleary - fix to make start of property error tooltip messages aligned (#3358) @HiroyasuNishiyama Nodes - Inject: fix JSON propety validation of inject node (#3349) @HiroyasuNishiyama - Delay: fix unit value validation of delay node (#3351) @HiroyasuNishiyama #### 2.1.5: Maintenance Release Runtime - Handle reporting error location when stack is truncated (#3346) @knolleary - Initialize passport when only adminAuth.tokens is set (#3343) @knolleary - Add log logging (#3342) @knolleary Editor - Fix copy buttons on the debug window (another method) (#3331) @kazuhitoyokoi - Add Japanese translations for hidden flow (#3302) @kazuhitoyokoi - Improve jsonata legacy mode detection regex (#3345) @knolleary - Fix generating flow name with incrementing number (#3347) @knolleary - resume focus after import/export dialog close (#3337) @HiroyasuNishiyama - Fix findPreviousVisibleTab action (#3321) @knolleary - Fix storing hidden tab state when not hidden via action (#3312) @knolleary - Avoid adding empty env properties to tabs/groups (#3311) @knolleary - Fix hide icon in tour guide (#3301) @kazuhitoyokoi Nodes - File: Update file node examples according to node name change (#3335) @HiroyasuNishiyama - Filter (RBE): Fix for filter node narrrowbandEq mode start condition failure (#3339) @dceejay - Function: Prevent function scrollbar from obscuring expand button (#3348) @knolleary - Function: load extralibs when expanding monaco. fixes #3319 (#3334) @Steve-Mcl - Function: Update Function to use correct api to access env vars (#3310) @knolleary - HTTP Request: Fix basic auth with empty username or password (#3325) @hardillb - Inject: Fix incorrect clearing of blank payload property in Inject node (#3322) @knolleary - Link Call: add link call example (#3336) @HiroyasuNishiyama - WebSocket: Only setup ws client heartbeat once it is connected (#3344) @knolleary - Update Japanese translations in node help (#3332) @kazuhitoyokoi #### 2.1.4: Maintenance Release Runtime - fix env var access using $parent for groups (#3278) @HiroyasuNishiyama - Add proper error handling for 404 errors when serving debug files (#3277) @knolleary - Add Japanese translations for Node-RED v2.1.0-beta.1 (#3179) @kazuhitoyokoi - Include full user object on login audit events (#3269) @knolleary - Remove styling from de locale files (#3237) @knolleary Editor - Change tab hide button icon to an eye and add search option (#3282) @knolleary - Fix i18n handling of namespaces with spaces in (#3281) @knolleary - Trigger change event when autoComplete fills in input (#3280) @knolleary - Apply CN i18n fix (#3279) @knolleary - fix select menu label of config node to use paletteLabel (#3273) @HiroyasuNishiyama - fix removed tab not to cause node conflict (#3275) @HiroyasuNishiyama - Group diff fix (#3239) @knolleary - Only toggle disabled workspace flag if on activeWorkspace (#3252) @knolleary - Do not show status for disabled nodes (#3253) @knolleary - Set dimension value for tour guide (#3265) @kazuhitoyokoi - Avoid redundant initialisation of TypedInput type (#3263) @knolleary - Don't let themes change flow port label color (#3270) @bonanitech - Fix treeList gutter calculation to handle floating gutters (#3238) @knolleary Nodes - Debug: Handle RegExp types in Debug sidebar (#3251) @knolleary - Delay: fix 2nd output when in rate limit per topic modes (#3261) @dceejay - Link: fix to show link target when selected (#3267) @HiroyasuNishiyama - Inject: Do not modify inject node props in oneditprepare (#3242) @knolleary - HTTP Request: HTTP Basic Auth should always add : between username and password even if empty (#3236) @hardillb #### 2.1.3: Maintenance Release Runtime - Update gen-publish script to update 'next' tag for main releases - Add environment variable to enable/disable tours (#3221) @hardillb - Fix loading non-default language files leaving runtime in wrong locale (#3225) @knolleary Editor - Refresh editor settings whenever a node is added or enabled (#3227) @knolleary - Revert spinner css change that made it shrink in some cases (#3229) @knolleary - Fix import notification message when importing config nodes (#3224) @knolleary - Handle changing types of TypedInput repeatedly (#3223) @knolleary #### 2.1.2: Maintenance Release Runtime - node-red-pi: Remove bash dependency (#3216) @a16bitsysop Editor - Improved regex for markdown renderer (#3213) @GerwinvBeek - Fix TypedInput initialisation (#3220) @knolleary Nodes - MQTT: fix datatype in node config not used. fixes #3215 (#3219) @Steve-Mcl #### 2.1.1: Maintenance Release Editor - Ensure tourGuide popover doesn't fall offscreen (#3212) @knolleary - Fix issue with old inject nodes that migrated topic to 'string' type (#3210) @knolleary - Add cache-busting query params to index.mst (#3211) @knolleary - Fix TypedInput validation of type without options (#3207) @knolleary #### 2.1.0: Milestone Release Editor - Position popover properly on a scrolled page - Fixes from 2.1.0-beta.2 (#3202) @knolleary Nodes - Link Out: Fix saving link out node links (#3201) @knolleary - Switch: Refix #3170 - copy switch rule type when adding new rule - TCP Request: Add string option to TCP request node output (#3204) @dceejay #### 2.1.0-beta.2: Beta Release Editor - Fix switching projects (#3199) @knolleary - Use locale setting when installing/enabling node (#3198) @knolleary - Do not show projects-wecome dialog until welcome tour completes (#3197) @knolleary - Fix converting selection to subflow (#3196) @knolleary - Avoid conflicts with native browser cmd-ctrl type shortcuts (#3195) @knolleary - Ensure message tools stay attached to top-level entry in Debug/Context (#3186) @knolleary - Ensure tab state updates properly when toggling enable state (#3175) @knolleary - Improve handling of long labels in TreeList (#3176) @knolleary - Shift-click tab scroll arrows to jump to start/end (#3177) @knolleary Runtime - Update package dependencies - Update to latest node-red-admin Nodes - Dynamic MQTT connections (#3189) - Link: Filter out Link Out Return nodes in Link In edit dialog Fixes #3187 - Link: Fix link call label (#3200) @knolleary - Debug: Redesign debug filter options and make them persistant (#3183) @knolleary - Inject: Widen Inject interval box for >1 digit (#3184) @knolleary - Switch: Fix rule focus when switch 'otherwise' rule is used (#3185) @knolleary #### 2.1.0-beta.1: Beta Release Editor - Add Tour Guide component (#3136) @knolleary - Allow tabs to be hidden (#3120) @knolleary - Add align actions to editor (#3110) @knolleary - Add support of environment variable for tab & group (#3112) @HiroyasuNishiyama - Add autoComplete widget and add to TypedInput for msg. props (#3171) @knolleary - Render node documentation to node-red style guide when written in markdown. (#3169) @Steve-Mcl - Allow colouring of tab icon svg (#3140) @harmonic7 - Restore tab selection after merging conflicts (#3151) @GerwinvBeek - Fix serving of theme files on Windows (#3154) @knolleary - Ensure config-node select inherits width properly from input (#3155) @knolleary - Do better remembering TypedInput values whilst switching types (#3159) @knolleary - Update monaco to 0.28.1 (#3153) @knolleary - Improve themeing of tourGuide (#3161) @knolleary - Allow a node to specify a filter for the config nodes it can pick from (#3160) @knolleary - Allow RED.notify.update to modify any notification setting (#3163) @knolleary - Fix typo in ko editor.json Fixes #3119 - Improve RED.actions api to ensure actions cannot be overridden - Ensure treeList row has suitable min-height when no content Fixes #3109 - Refactor edit dialogs to use separate edit panes - Ensure type select button is not focussable when TypedInput only has one type - Place close tab link in front of fade Runtime - Improve error reporting with oauth login strategies (#3148) @knolleary - Add allowUpdate feature to externalModules.palette (#3143) @knolleary - Improve node install error reporting (#3158) @knolleary - Improve unit test coverage (#3168) @knolleary - Allow coreNodesDir to be set to false (#3149) @hardillb - Update package dependencies - uncaughtException debug improvements (#3146) @renatojuniorrs Nodes - Change: Add option to deep-clone properties in Change node (#3156) @knolleary - Delay: Add push to front of rate limit queue. (#3069) @dceejay - File: Add paletteLabel to file nodes to make read/write more obvious (#3157) @knolleary - HTTP Request: Extend HTTP request node to log detailed timing information (#3116) @k-toumura - HTTP Response: Fix sizing of HTTP Response header fields (#3164) @knolleary - Join: Support for msg.restartTimeout (#3121) @magma1447 - Link Call: Add Link Call node (#3152) @knolleary - Switch: Copy previous rule type when adding rule to switch node (#3170) @knolleary - Delay node: add option to send intermediate messages on separate output (#3166) @knolleary - Typo in http request set method translation (#3173) @mailsvb #### 2.0.6: Maintenance Release Editor - Fix typo in ko editor.json Fixes #3119 - Change fade color when hovering an inactive tab (#3106) @bonanitech - Ensure treeList row has suitable min-height when no content Fixes #3109 Runtime - Update tar to latest (#3128) @aksswami - Give passport verify callback the same arity as the original callback (#3117) @dschmidt - Handle HTTPS Key and certificate as string or buffer (#3115) @bartbutenaers #### 2.0.5: Maintenance Release Editor - Remove default ctrl-enter keybinding from monaco editor Fixes #3093 Runtime - Update tar dependency - Add support for maintenance streams in generate-publish-script Nodes - Fix regression in Join node when manual joining array with msg.parts present Fixes #3096 #### 2.0.4: Maintenance Release Editor - Fix tab fade CSS for when using themes (#3085) @bonanitech - Handle just-copied-but-not-deployed node with credentials in editor Fixes #3090 Nodes - Filter: Fix RBE node handling of default topi property Fixes #3087 - HTTP Request: Handle partially encoded url query strings in request node - HTTP Request: Fix support for supplied CA certs (#3089) @hardillb - HTTP Request: Ensure TLS Cert is used (#3092) @hardillb - Inject: Fix inject now button unable to send empty props - Inject: Inject now button success notification should use label with updated props #### 2.0.3: Maintenance Release Nodes - HTML: Fix HTML parsing when body is included in the select tag Fixes #3079 - HTTP Request: Preserve case of user-provided http headers in request node Fixes #3081 - HTTP Request: Set decompress to false for HTTP Request to keep 1.x compatibility Fixes #3083 - HTTP Request: Add unit tests for HTTP Request encodeURI and error response - HTTP Request: Do not throw HTTP errors in request node Fixes #3082 - HTTP Request: Ensure uri is properly encoded before passing to got module Fixes #3080 #### 2.0.2: Maintenance Release Runtime - Use file:// url with dynamic import - Detect if agent-base has patched https.request and undo it Fixes #3072 Editor - Fix tab fade css because Safari Fixes #3073 - Fix error closing library dialog with monaco - Handle other error types in Manage Palette view Nodes - HTTP Request node - ignore invalid cookies rather than fail request Fixes #3075 - Fix msg.reset handling in Delay node Fixes #3074 #### 2.0.1: Maintenance Release Nodes - Function: Ensure default module export is exposed in Function node #### 2.0.0: Milestone Release **Migration from 1.x** - Node-RED now requires Node.js 12.x or later. - The following nodes have had significant dependency updates. Unless stated, they should be fully backward compatible. - RBE: Relabelled as 'filter' to make it more discoverable and made part of the core palette, rather than as a separate module. - Tail: This node has been removed from the default palette. You can reinstall it from node-red-node-tail - HTTP Request: Reimplemented with a different underlying module. We have tried to maintain 100% functional compatibility, but it is possible some edge cases remain. - JSON: The schema validation option no longer supports JSON-Schema draft-04 - HTML: Its underlying module has had a major version update. Should be fully backward compatible. - `functionExternalModules` is now enabled by default for new installs. If you have an existing settings file that contains this setting, you will need to set it to `true` yourself. The external modules will now get installed in your Node-RED user directory, (`~/.node-red`) rather than in a subdirectory. This means all dependencies will be listed in your top-level `package.json`. If you have existing external modules, they will get reinstalled to the new location when you first run Node-RED 2.0. Runtime - Fix missing dependencies (#3052, #2057) @kazuhitoyokoi - Ensure node.types is defined if node html file missing - Fix reporting of type_already_registered error - Move install location of external modules (#3064) @knolleary Editor - Update translations (#3063) @kazuhitoyokoi - Add a slight fade to tab labels that overflow - Show config node details when selected in outliner - Fix layout of info outliner for subflow entries Nodes - Delay: let `msg.flush` specify how many messages to flush from node (#3059) @dceejay - Function: external modules is now enabled by default (#3065) @knolleary - Function: external modules now supports both ES6 and CJS modules (#3065) @knolleary - WebSocket: add option for client node to send automatic pings (#3056) @knolleary ##### 2.0.0-beta.2: Beta Release Runtime - Add `node-red admin init` (via `node-red-admin@2.1.0`) - Move to GH Actions rather than Travis for build (#3042) @knolleary Editor - Include hasUser=false config nodes when exporting whole flow (#3048) - Emit nodes:change for any updated config node when node deleted/added - Fix padding of compact notification Closes #3045 - Ensure any html in changelog is escaped before displaying - Add support for Map/Set property types on Debug (#3040) @knolleary - Add 'theme' to default settings file - Add RED.view.annotations api (#3032) @knolleary - Update monaco editor to V0.25.2 (#3031) @Steve-Mcl - Lower tray zIndex when overlay tray being opened Fixes #3019 - Reduce z-Index of Function expand buttons to prevent overlap Part of #3019 - Ensure RED.clipboard.import displays the right library Fixes #3021 - Batch messages sent over comms to prevent flooding (#3025) @knolleary - Allow RED.popover.panel to specify a closeButton to ignore click events on - Use browser default language for initial page load - Add css var for node font color - Fix label padding of toggleButton - Give sidebar open tab a bit more room for its label - Various Monaco updates (#3015) @Steve-Mcl - Log readOnly on startup (#3024) @sammachin - Translation updates (#3020 #3022) @HiroyasuNishiyama @kazuhitoyokoi Nodes - HTTP Request: Fix proxy handling (#3044) @hardillb - HTTP Request: Handle basic auth with @ in username (#3017) @hardillb - Add Japanese translation for file-in node (#3037 #3039) @kazuhitoyokoi - File In: Add option for file-in node to include all properties (default off) (#3035) @dceejay - Exec: add windowsHide option to hide windows under Windows (#3026) @natcl - Support loading external module sub path Fixes #3023 ##### 2.0.0-beta.1: Beta Release Runtime - [MAJOR] Set minimum node version to 12. - [MAJOR] Fix flowfile name to flows.json in settings (#2951) @dceejay - [MAJOR] Update to latest i18n in editor and runtime (#2940) @knolleary - [MAJOR] Deprecate usage of httpRoot (#2953) @knolleary - Add pre/postInstall hooks to npm install handling (#2936) @knolleary - Add engine-strict flag to npm install args (#2965) @nileio - Restructure default settings.js to be more organised (#3012) @knolleary - Ensure httpServerOptions gets applied to ALL the express apps - Allow RED.settings.set to replace string property with object property - Update debug tests to handle compact comms format - Updates to encode/decode message when passed over debug comms link - Remove all input event listeners on a node once it is closed - Move hooks to util package - Rework hooks structure to be a linkedlist - Update dependencies (#2922) @knolleary Editor - [MAJOR] Change node id generation to give fixed length values without '.' (#2987) @knolleary - [MAJOR] Add Monaco code editor (#2971) @Steve-Mcl - Update to latest Monaco (#3007) @Steve-Mcl - Update Node-RED Function typings in Monaco (#3008) @Steve-Mcl - Add css named variables for certain key colours (#2994) @knolleary - Improve contrast of export dialog JSON font color - Switch editableList buttons from to