Comparing version 2.2.2 to 3.0.0-beta.1
@@ -0,1 +1,78 @@ | ||
#### 3.0.0-beta.1: Beta Release | ||
**Migration from 2.x** | ||
- Node-RED now requires Node.js 14.x or later. | ||
- New installs of Node-RED will default to the monaco editor. | ||
Editor | ||
- Add Junctions (#3462) @knolleary | ||
- Allow node name to be auto-generated when added (#3478, #3538) @knolleary | ||
- Set monaco as default code editor as of v3.x (#3543) @Steve-Mcl | ||
- Update Monaco to V0.33.0 (#3522) @Steve-Mcl | ||
- Auto-complete Improvements (#3521) @Steve-Mcl | ||
- Add a tooltip to debug sidebar messages to reveal full path to node (#3503) @knolleary | ||
- Fix down arrow triggering menu in search box (#3507) @Steve-Mcl | ||
- Add Japanese translations for v3.0 (#3512) @kazuhitoyokoi | ||
- Add feature: Continuous search tools (search previous, search next) (#3405) @Steve-Mcl | ||
- Add feature: split-wire-to-links (#3399, #3476) @Steve-Mcl | ||
- Add copy button to node properties tables (#3390) @knolleary | ||
- Add info-tab search options dropdown to the regular search (#3395) @Steve-Mcl | ||
- New Feature: Add ability to find modified nodes/flows. (#3392) @Steve-Mcl | ||
- Code editor ux improvements around remembering state of each code editor in a flow (#3553) @Steve-Mcl | ||
- Make it easier to apply themes on SVG icons (#3515) @bonanitech | ||
- Add support of property validation message (#3438) @HiroyasuNishiyama | ||
- Ensure node validation tooltip is closed when field becomes valid (#3570) @knolleary | ||
- Add "search for" buttons to notifications (#3567) @Steve-Mcl | ||
- Don't let themes change node config colors (#3564) @bonanitech | ||
- Fix gap between typedInput containers borders (#3560) @bonanitech | ||
- Fix recording removed links in edit history (#3547) @knolleary | ||
- Remove unused SASS vars (#3536) @bonanitech | ||
- Add custom style for jQuery widgets borders (#3537) @bonanitech | ||
- fix out of scope reference of hasUnusedConfig variable (#3535) @HiroyasuNishiyama | ||
- correct "non string" check parenthesis (#3524) @Steve-Mcl | ||
- Ensure i18n of scoped package name (#3516) @Steve-Mcl | ||
- Prevent shortcut deploy when deploy button shaded (#3517) @Steve-Mcl | ||
- Fix: Sidebar "Configuration" filter button tooltip (#3500) @ralphwetzel | ||
- Add the ability to customize diff colors even more (#3499) @bonanitech | ||
- Do JSON comparison of old value/new value in editor (#3481) @Steve-Mcl | ||
- Fix nodes losing their wires when in an iframe (#3484) @zettca | ||
- Improve scroll into view (#3468) @Steve-Mcl | ||
- Do not show 1st tab if hidden when loading (#3464) @Steve-Mcl | ||
Runtime | ||
- Fix importing external module from node-red module (#3541) @knolleary | ||
- Add support for multiple static paths with optional static root (#3542) @Steve-Mcl | ||
- Store external token when authenticating if provided (#3460) @ArFe | ||
- Support OAuth/OpenID logout (#3388) @mw75 | ||
- Allow adminAuth to auto-login users when using passport strategy (#3519) @knolleary | ||
- Add runtime diagnostics admin endpoint (#3511) @Steve-Mcl | ||
- Don't start if user has no home directory (#3540) @hardillb | ||
- Error on invalid encrypted credentials (#3498) @sammachin | ||
Nodes | ||
- Debug: Add message count option to Debug status (#3544 #3551) @rafaelmuynarsk @knolleary | ||
- File: Change basic Filename field to a typedInput (#3533) @Steve-Mcl | ||
- HTTP Request: Add UI for Http Request node headers (#3488) @Steve-Mcl | ||
- Inject: let inject optionally fire at start in only at time mode. (#3385) @dceejay | ||
- Link Call: Dynamic link call (#3463) @Steve-Mcl | ||
- Link Call: Display link targets of nodes in a regular flow, for Link Call nodes inside a subflow (#3528) @Steve-Mcl | ||
- MQTT: MQTT payload auto parsing improvements (#3530) @Steve-Mcl | ||
- MQTT: Add client and Runtime MQTT topic validation (#3563) @Steve-Mcl [dev] | ||
- MQTT: save and restore v5 config user props (#3562) @Steve-Mcl | ||
- MQTT: Fix incorrect MQTT status (#3552) @Steve-Mcl | ||
- MQTT: fix reference error of msg.status in debug node (#3526) @HiroyasuNishiyama | ||
- MQTT: Add unit tests for MQTT nodes (#3497) @Steve-Mcl | ||
- MQTT: fix typo of will properties (#3502) @Steve-Mcl | ||
- MQTT: ensure mqtt v5 props can be set false (#3472) @Steve-Mcl | ||
- Switch: add check for NaN in is of type number to be false (#3409) @dceejay | ||
- TCP: TCP node better split (#3465) @dceejay | ||
- Watch: Update Watch node to use node-watch module (#3559 #3569) @knolleary | ||
- WebSocket: call done after ws disconnects (#3531) @Steve-Mcl | ||
#### 2.2.2: Maintenance Release | ||
@@ -2,0 +79,0 @@ |
@@ -232,3 +232,10 @@ /*! | ||
*/ | ||
auth: api.auth | ||
auth: api.auth, | ||
/** | ||
* The editor authentication api. | ||
* @see @node-red/editor-api_auth | ||
* @memberof node-red | ||
*/ | ||
get diagnostics() { return api.diagnostics } | ||
}; |
{ | ||
"name": "node-red", | ||
"version": "2.2.2", | ||
"version": "3.0.0-beta.1", | ||
"description": "Low-code programming for event-driven applications", | ||
@@ -34,13 +34,13 @@ "homepage": "http://nodered.org", | ||
"dependencies": { | ||
"@node-red/editor-api": "2.2.2", | ||
"@node-red/runtime": "2.2.2", | ||
"@node-red/util": "2.2.2", | ||
"@node-red/nodes": "2.2.2", | ||
"@node-red/editor-api": "3.0.0-beta.1", | ||
"@node-red/runtime": "3.0.0-beta.1", | ||
"@node-red/util": "3.0.0-beta.1", | ||
"@node-red/nodes": "3.0.0-beta.1", | ||
"basic-auth": "2.0.1", | ||
"bcryptjs": "2.4.3", | ||
"express": "4.17.2", | ||
"fs-extra": "10.0.0", | ||
"node-red-admin": "^2.2.3", | ||
"express": "4.18.1", | ||
"fs-extra": "10.1.0", | ||
"node-red-admin": "^3.0.0", | ||
"nopt": "5.0.0", | ||
"semver": "7.3.5" | ||
"semver": "7.3.7" | ||
}, | ||
@@ -51,4 +51,4 @@ "optionalDependencies": { | ||
"engines": { | ||
"node": ">=12" | ||
"node": ">=14" | ||
} | ||
} |
48
red.js
@@ -115,2 +115,6 @@ #!/usr/bin/env node | ||
} else { | ||
if (!parsedArgs.userDir && !(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH)) { | ||
console.log("Could not find user directory. Ensure $HOME is set for the current user, or use --userDir option") | ||
process.exit(1) | ||
} | ||
var userDir = parsedArgs.userDir || path.join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH,".node-red"); | ||
@@ -302,2 +306,22 @@ var userSettingsFile = path.join(userDir,"settings.js"); | ||
if(settings.httpStatic) { | ||
settings.httpStaticRoot = formatRoot(settings.httpStaticRoot || "/"); | ||
const statics = Array.isArray(settings.httpStatic) ? settings.httpStatic : [settings.httpStatic]; | ||
const sanitised = []; | ||
for (let si = 0; si < statics.length; si++) { | ||
let sp = statics[si]; | ||
if(typeof sp === "string") { | ||
sp = { path: sp, root: "" } | ||
sanitised.push(sp); | ||
} else if (typeof sp === "object" && sp.path ) { | ||
sanitised.push(sp); | ||
} else { | ||
continue; | ||
} | ||
sp.subRoot = formatRoot(sp.root); | ||
sp.root = formatRoot(path.posix.join(settings.httpStaticRoot,sp.subRoot)); | ||
} | ||
settings.httpStatic = sanitised.length ? sanitised : false; | ||
} | ||
// if we got a port from command line, use it (even if 0) | ||
@@ -395,8 +419,24 @@ // replicate (settings.uiPort = parsedArgs.port||settings.uiPort||1880;) but allow zero | ||
} | ||
// if (settings.httpStatic) { | ||
// settings.httpStaticAuth = settings.httpStaticAuth || settings.httpAuth; | ||
// if (settings.httpStaticAuth) { | ||
// app.use("/",basicAuthMiddleware(settings.httpStaticAuth.user,settings.httpStaticAuth.pass)); | ||
// } | ||
// app.use("/",express.static(settings.httpStatic)); | ||
// } | ||
if (settings.httpStatic) { | ||
settings.httpStaticAuth = settings.httpStaticAuth || settings.httpAuth; | ||
if (settings.httpStaticAuth) { | ||
app.use("/",basicAuthMiddleware(settings.httpStaticAuth.user,settings.httpStaticAuth.pass)); | ||
let appUseMem = {}; | ||
for (let si = 0; si < settings.httpStatic.length; si++) { | ||
const sp = settings.httpStatic[si]; | ||
const filePath = sp.path; | ||
const thisRoot = sp.root || "/"; | ||
if(appUseMem[filePath + "::" + thisRoot]) { | ||
continue;// this path and root already registered! | ||
} | ||
appUseMem[filePath + "::" + thisRoot] = true; | ||
if (settings.httpStaticAuth) { | ||
app.use(thisRoot, basicAuthMiddleware(settings.httpStaticAuth.user, settings.httpStaticAuth.pass)); | ||
} | ||
app.use(thisRoot, express.static(filePath)); | ||
} | ||
app.use("/",express.static(settings.httpStatic)); | ||
} | ||
@@ -403,0 +443,0 @@ |
@@ -140,2 +140,3 @@ /** | ||
* - httpStatic | ||
* - httpStaticRoot | ||
******************************************************************************/ | ||
@@ -222,8 +223,26 @@ | ||
* that should be served at http://localhost:1880/. | ||
* When httpStaticRoot is set differently to httpAdminRoot, there is no need | ||
* to move httpAdminRoot | ||
*/ | ||
//httpStatic: '/home/nol/node-red-static/', | ||
//httpStatic: '/home/nol/node-red-static/', //single static source | ||
/* OR multiple static sources can be created using an array of objects... */ | ||
//httpStatic: [ | ||
// {path: '/home/nol/pics/', root: "/img/"}, | ||
// {path: '/home/nol/reports/', root: "/doc/"}, | ||
//], | ||
/** | ||
* All static routes will be appended to httpStaticRoot | ||
* e.g. if httpStatic = "/home/nol/docs" and httpStaticRoot = "/static/" | ||
* then "/home/nol/docs" will be served at "/static/" | ||
* e.g. if httpStatic = [{path: '/home/nol/pics/', root: "/img/"}] | ||
* and httpStaticRoot = "/static/" | ||
* then "/home/nol/pics/" will be served at "/static/img/" | ||
*/ | ||
//httpStaticRoot: '/static/', | ||
/******************************************************************************* | ||
* Runtime Settings | ||
* - lang | ||
* - diagnostics | ||
* - logging | ||
@@ -241,2 +260,15 @@ * - contextStorage | ||
/** Configure diagnostics options | ||
* - enabled: When `enabled` is `true` (or unset), diagnostics data will | ||
* be available at http://localhost:1880/diagnostics | ||
* - ui: When `ui` is `true` (or unset), the action `show-system-info` will | ||
* be available to logged in users of node-red editor | ||
*/ | ||
diagnostics: { | ||
/** enable or disable diagnostics endpoint. Must be set to `false` to disable */ | ||
enabled: true, | ||
/** enable or disable diagnostics display in the node-red editor. Must be set to `false` to disable */ | ||
ui: true, | ||
}, | ||
/** Configure the logging output */ | ||
@@ -365,5 +397,5 @@ logging: { | ||
/** Select the text editor component used by the editor. | ||
* Defaults to "ace", but can be set to "ace" or "monaco" | ||
* As of Node-RED V3, this defaults to "monaco", but can be set to "ace" if desired | ||
*/ | ||
lib: "ace", | ||
lib: "monaco", | ||
options: { | ||
@@ -378,3 +410,3 @@ /** The follow options only apply if the editor is set to "monaco" | ||
/** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc. | ||
* for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.istandaloneeditorconstructionoptions.html | ||
* for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IStandaloneEditorConstructionOptions.html | ||
*/ | ||
@@ -381,0 +413,0 @@ //fontSize: 14, |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
90195
1176
1
22
+ Added@node-red/editor-api@3.0.0-beta.1(transitive)
+ Added@node-red/editor-client@3.0.0-beta.1(transitive)
+ Added@node-red/nodes@3.0.0-beta.1(transitive)
+ Added@node-red/registry@3.0.0-beta.1(transitive)
+ Added@node-red/runtime@3.0.0-beta.1(transitive)
+ Added@node-red/util@3.0.0-beta.1(transitive)
+ Addedacorn@8.7.1(transitive)
+ Addedajv@8.11.0(transitive)
+ Addedargparse@2.0.1(transitive)
+ Addedaxios@1.7.9(transitive)
+ Addedbcrypt@5.1.1(transitive)
+ Addedbody-parser@1.20.0(transitive)
+ Addedcall-bind-apply-helpers@1.0.1(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcookie@0.5.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.0.0(transitive)
+ Addedexpress@4.18.1(transitive)
+ Addedfinalhandler@1.2.0(transitive)
+ Addedfs-extra@10.1.0(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.6(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhpagent@1.0.0(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addedhttps-proxy-agent@5.0.1(transitive)
+ Addedi18next@21.6.16(transitive)
+ Addedjs-yaml@4.1.0(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmoment@2.29.3(transitive)
+ Addedmqtt@4.3.7(transitive)
+ Addednode-addon-api@5.1.0(transitive)
+ Addednode-red-admin@3.1.3(transitive)
+ Addednode-watch@0.7.3(transitive)
+ Addedobject-inspect@1.13.3(transitive)
+ Addedon-finished@2.4.1(transitive)
+ Addedproxy-from-env@1.1.0(transitive)
+ Addedqs@6.10.3(transitive)
+ Addedraw-body@2.5.1(transitive)
+ Addedsemver@7.3.7(transitive)
+ Addedsend@0.18.0(transitive)
+ Addedserve-static@1.15.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedstatuses@2.0.1(transitive)
+ Addeduglify-js@3.15.4(transitive)
- Removed@node-red/editor-api@2.2.2(transitive)
- Removed@node-red/editor-client@2.2.2(transitive)
- Removed@node-red/nodes@2.2.2(transitive)
- Removed@node-red/registry@2.2.2(transitive)
- Removed@node-red/runtime@2.2.2(transitive)
- Removed@node-red/util@2.2.2(transitive)
- Removedacorn@8.7.0(transitive)
- Removedajv@8.10.0(transitive)
- Removedargparse@1.0.10(transitive)
- Removedasync@0.1.22(transitive)
- Removedaxios@0.27.0(transitive)
- Removedbody-parser@1.19.1(transitive)
- Removedbytes@3.1.1(transitive)
- Removedcookie@0.4.2(transitive)
- Removeddepd@1.1.2(transitive)
- Removeddestroy@1.0.4(transitive)
- Removedesprima@4.0.1(transitive)
- Removedexpress@4.17.2(transitive)
- Removedfinalhandler@1.1.2(transitive)
- Removedfs-extra@10.0.0(transitive)
- Removedfs.notify@0.0.4(transitive)
- Removedhpagent@0.1.2(transitive)
- Removedhttp-errors@1.8.1(transitive)
- Removedhttps-proxy-agent@5.0.0(transitive)
- Removedi18next@21.6.11(transitive)
- Removedjs-yaml@3.14.1(transitive)
- Removedmoment@2.30.1(transitive)
- Removedmqtt@4.3.5(transitive)
- Removednode-red-admin@2.2.4(transitive)
- Removedon-finished@2.3.0(transitive)
- Removedqs@6.9.6(transitive)
- Removedraw-body@2.4.22.4.3(transitive)
- Removedretry@0.6.1(transitive)
- Removedsemver@7.3.5(transitive)
- Removedsend@0.17.2(transitive)
- Removedserve-static@1.14.2(transitive)
- Removedsprintf-js@1.0.3(transitive)
- Removedstatuses@1.5.0(transitive)
- Removeduglify-js@3.15.1(transitive)
Updated@node-red/nodes@3.0.0-beta.1
Updated@node-red/util@3.0.0-beta.1
Updatedexpress@4.18.1
Updatedfs-extra@10.1.0
Updatednode-red-admin@^3.0.0
Updatedsemver@7.3.7