mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Merge branch 'master' into dev
This commit is contained in:
commit
51f45293b8
31
CHANGELOG.md
31
CHANGELOG.md
@ -1,6 +1,35 @@
|
|||||||
#### 2.2.0-beta.1: Beta Release
|
#### 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
|
#### 2.1.4: Maintenance Release
|
||||||
|
|
||||||
|
20
package.json
20
package.json
@ -26,13 +26,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": "8.6.0",
|
"acorn": "8.7.0",
|
||||||
"acorn-walk": "8.2.0",
|
"acorn-walk": "8.2.0",
|
||||||
"ajv": "8.8.2",
|
"ajv": "8.8.2",
|
||||||
"async-mutex": "0.3.2",
|
"async-mutex": "0.3.2",
|
||||||
"basic-auth": "2.0.1",
|
"basic-auth": "2.0.1",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.1",
|
||||||
"cheerio": "1.0.0-rc.10",
|
"cheerio": "1.0.0-rc.10",
|
||||||
"clone": "2.1.2",
|
"clone": "2.1.2",
|
||||||
"content-type": "1.0.4",
|
"content-type": "1.0.4",
|
||||||
@ -41,7 +41,7 @@
|
|||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"cronosjs": "1.7.1",
|
"cronosjs": "1.7.1",
|
||||||
"denque": "2.0.1",
|
"denque": "2.0.1",
|
||||||
"express": "4.17.1",
|
"express": "4.17.2",
|
||||||
"express-session": "1.17.2",
|
"express-session": "1.17.2",
|
||||||
"form-data": "4.0.0",
|
"form-data": "4.0.0",
|
||||||
"fs-extra": "10.0.0",
|
"fs-extra": "10.0.0",
|
||||||
@ -50,7 +50,7 @@
|
|||||||
"hash-sum": "2.0.0",
|
"hash-sum": "2.0.0",
|
||||||
"hpagent": "0.1.2",
|
"hpagent": "0.1.2",
|
||||||
"https-proxy-agent": "5.0.0",
|
"https-proxy-agent": "5.0.0",
|
||||||
"i18next": "21.5.4",
|
"i18next": "21.6.6",
|
||||||
"iconv-lite": "0.6.3",
|
"iconv-lite": "0.6.3",
|
||||||
"is-utf8": "0.2.1",
|
"is-utf8": "0.2.1",
|
||||||
"js-yaml": "3.14.1",
|
"js-yaml": "3.14.1",
|
||||||
@ -61,21 +61,21 @@
|
|||||||
"memorystore": "1.6.6",
|
"memorystore": "1.6.6",
|
||||||
"mime": "2.5.2",
|
"mime": "2.5.2",
|
||||||
"moment-timezone": "0.5.34",
|
"moment-timezone": "0.5.34",
|
||||||
"mqtt": "4.2.8",
|
"mqtt": "4.3.4",
|
||||||
"multer": "1.4.3",
|
"multer": "1.4.3",
|
||||||
"mustache": "4.2.0",
|
"mustache": "4.2.0",
|
||||||
"node-red-admin": "^2.2.1",
|
"node-red-admin": "^2.2.1",
|
||||||
"nopt": "5.0.0",
|
"nopt": "5.0.0",
|
||||||
"oauth2orize": "1.11.1",
|
"oauth2orize": "1.11.1",
|
||||||
"on-headers": "1.0.2",
|
"on-headers": "1.0.2",
|
||||||
"passport": "0.5.0",
|
"passport": "0.5.2",
|
||||||
"passport-http-bearer": "1.0.1",
|
"passport-http-bearer": "1.0.1",
|
||||||
"passport-oauth2-client-password": "0.1.2",
|
"passport-oauth2-client-password": "0.1.2",
|
||||||
"raw-body": "2.4.2",
|
"raw-body": "2.4.2",
|
||||||
"semver": "7.3.5",
|
"semver": "7.3.5",
|
||||||
"tar": "6.1.11",
|
"tar": "6.1.11",
|
||||||
"tough-cookie": "4.0.0",
|
"tough-cookie": "4.0.0",
|
||||||
"uglify-js": "3.14.4",
|
"uglify-js": "3.14.5",
|
||||||
"uuid": "8.3.2",
|
"uuid": "8.3.2",
|
||||||
"ws": "7.5.1",
|
"ws": "7.5.1",
|
||||||
"xml2js": "0.4.23"
|
"xml2js": "0.4.23"
|
||||||
@ -84,7 +84,7 @@
|
|||||||
"bcrypt": "5.0.1"
|
"bcrypt": "5.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"dompurify": "2.3.3",
|
"dompurify": "2.3.4",
|
||||||
"grunt": "1.4.1",
|
"grunt": "1.4.1",
|
||||||
"grunt-chmod": "~1.1.1",
|
"grunt-chmod": "~1.1.1",
|
||||||
"grunt-cli": "~1.4.3",
|
"grunt-cli": "~1.4.3",
|
||||||
@ -113,11 +113,11 @@
|
|||||||
"node-red-node-test-helper": "^0.2.7",
|
"node-red-node-test-helper": "^0.2.7",
|
||||||
"nodemon": "2.0.15",
|
"nodemon": "2.0.15",
|
||||||
"proxy": "^1.0.2",
|
"proxy": "^1.0.2",
|
||||||
"sass": "1.44.0",
|
"sass": "1.48.0",
|
||||||
"should": "13.2.3",
|
"should": "13.2.3",
|
||||||
"sinon": "11.1.2",
|
"sinon": "11.1.2",
|
||||||
"stoppable": "^1.1.0",
|
"stoppable": "^1.1.0",
|
||||||
"supertest": "6.1.6"
|
"supertest": "6.2.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
|
@ -19,11 +19,11 @@
|
|||||||
"@node-red/util": "2.2.0-beta.1",
|
"@node-red/util": "2.2.0-beta.1",
|
||||||
"@node-red/editor-client": "2.2.0-beta.1",
|
"@node-red/editor-client": "2.2.0-beta.1",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.1",
|
||||||
"clone": "2.1.2",
|
"clone": "2.1.2",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"express-session": "1.17.2",
|
"express-session": "1.17.2",
|
||||||
"express": "4.17.1",
|
"express": "4.17.2",
|
||||||
"memorystore": "1.6.6",
|
"memorystore": "1.6.6",
|
||||||
"mime": "2.5.2",
|
"mime": "2.5.2",
|
||||||
"multer": "1.4.3",
|
"multer": "1.4.3",
|
||||||
@ -31,7 +31,7 @@
|
|||||||
"oauth2orize": "1.11.1",
|
"oauth2orize": "1.11.1",
|
||||||
"passport-http-bearer": "1.0.1",
|
"passport-http-bearer": "1.0.1",
|
||||||
"passport-oauth2-client-password": "0.1.2",
|
"passport-oauth2-client-password": "0.1.2",
|
||||||
"passport": "0.5.0",
|
"passport": "0.5.2",
|
||||||
"ws": "7.5.1"
|
"ws": "7.5.1"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
@ -946,28 +946,25 @@ RED.clipboard = (function() {
|
|||||||
if (truncated) {
|
if (truncated) {
|
||||||
msg += "_truncated";
|
msg += "_truncated";
|
||||||
}
|
}
|
||||||
$("#red-ui-clipboard-hidden").val(value).focus().select();
|
navigator.clipboard.writeText(value).then(function () {
|
||||||
var result = document.execCommand("copy");
|
if (element) {
|
||||||
if (result && element) {
|
var popover = RED.popover.create({
|
||||||
var popover = RED.popover.create({
|
target: element,
|
||||||
target: element,
|
direction: 'left',
|
||||||
direction: 'left',
|
size: 'small',
|
||||||
size: 'small',
|
content: RED._(msg)
|
||||||
content: RED._(msg)
|
});
|
||||||
});
|
setTimeout(function() {
|
||||||
setTimeout(function() {
|
popover.close();
|
||||||
popover.close();
|
},1000);
|
||||||
},1000);
|
popover.open();
|
||||||
popover.open();
|
}
|
||||||
}
|
if (currentFocus) {
|
||||||
$("#red-ui-clipboard-hidden").val("");
|
$(currentFocus).focus();
|
||||||
if (currentFocus) {
|
}
|
||||||
$(currentFocus).focus();
|
}).catch(err => { console.error("Failed to copy:",err) });
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function importNodes(nodesStr,addFlow) {
|
function importNodes(nodesStr,addFlow) {
|
||||||
var newNodes = nodesStr;
|
var newNodes = nodesStr;
|
||||||
if (typeof nodesStr === 'string') {
|
if (typeof nodesStr === 'string') {
|
||||||
@ -1242,8 +1239,6 @@ RED.clipboard = (function() {
|
|||||||
init: function() {
|
init: function() {
|
||||||
setupDialogs();
|
setupDialogs();
|
||||||
|
|
||||||
$('<textarea type="text" id="red-ui-clipboard-hidden" tabIndex="-1">').appendTo("#red-ui-editor");
|
|
||||||
|
|
||||||
RED.actions.add("core:show-export-dialog",showExportNodes);
|
RED.actions.add("core:show-export-dialog",showExportNodes);
|
||||||
RED.actions.add("core:show-import-dialog",showImportNodes);
|
RED.actions.add("core:show-import-dialog",showImportNodes);
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@
|
|||||||
var currentExpression = expressionEditor.getValue();
|
var currentExpression = expressionEditor.getValue();
|
||||||
var expr;
|
var expr;
|
||||||
var usesContext = false;
|
var usesContext = false;
|
||||||
var legacyMode = /(^|[^a-zA-Z0-9_'"])msg([^a-zA-Z0-9_'"]|$)/.test(currentExpression);
|
var legacyMode = /(^|[^a-zA-Z0-9_'".])msg([^a-zA-Z0-9_'"]|$)/.test(currentExpression);
|
||||||
$(".red-ui-editor-type-expression-legacy").toggle(legacyMode);
|
$(".red-ui-editor-type-expression-legacy").toggle(legacyMode);
|
||||||
try {
|
try {
|
||||||
expr = jsonata(currentExpression);
|
expr = jsonata(currentExpression);
|
||||||
|
@ -66,7 +66,7 @@ RED.workspaces = (function() {
|
|||||||
var tabId = RED.nodes.id();
|
var tabId = RED.nodes.id();
|
||||||
do {
|
do {
|
||||||
workspaceIndex += 1;
|
workspaceIndex += 1;
|
||||||
} while ($("#red-ui-workspace-tabs a[title='"+RED._('workspace.defaultName',{number:workspaceIndex})+"']").size() !== 0);
|
} while ($("#red-ui-workspace-tabs li[flowname='"+RED._('workspace.defaultName',{number:workspaceIndex})+"']").size() !== 0);
|
||||||
|
|
||||||
ws = {
|
ws = {
|
||||||
type: "tab",
|
type: "tab",
|
||||||
@ -79,12 +79,15 @@ RED.workspaces = (function() {
|
|||||||
};
|
};
|
||||||
RED.nodes.addWorkspace(ws,targetIndex);
|
RED.nodes.addWorkspace(ws,targetIndex);
|
||||||
workspace_tabs.addTab(ws,targetIndex);
|
workspace_tabs.addTab(ws,targetIndex);
|
||||||
|
|
||||||
workspace_tabs.activateTab(tabId);
|
workspace_tabs.activateTab(tabId);
|
||||||
if (!skipHistoryEntry) {
|
if (!skipHistoryEntry) {
|
||||||
RED.history.push({t:'add',workspaces:[ws],dirty:RED.nodes.dirty()});
|
RED.history.push({t:'add',workspaces:[ws],dirty:RED.nodes.dirty()});
|
||||||
RED.nodes.dirty(true);
|
RED.nodes.dirty(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$("#red-ui-tab-"+(ws.id.replace(".","-"))).attr("flowname",ws.label)
|
||||||
|
|
||||||
RED.view.focus();
|
RED.view.focus();
|
||||||
return ws;
|
return ws;
|
||||||
}
|
}
|
||||||
@ -583,7 +586,7 @@ RED.workspaces = (function() {
|
|||||||
refresh: function() {
|
refresh: function() {
|
||||||
RED.nodes.eachWorkspace(function(ws) {
|
RED.nodes.eachWorkspace(function(ws) {
|
||||||
workspace_tabs.renameTab(ws.id,ws.label);
|
workspace_tabs.renameTab(ws.id,ws.label);
|
||||||
|
$("#red-ui-tab-"+(ws.id.replace(".","-"))).attr("flowname",ws.label)
|
||||||
})
|
})
|
||||||
RED.nodes.eachSubflow(function(sf) {
|
RED.nodes.eachSubflow(function(sf) {
|
||||||
if (workspace_tabs.contains(sf.id)) {
|
if (workspace_tabs.contains(sf.id)) {
|
||||||
|
@ -356,10 +356,6 @@ button.red-ui-button-small
|
|||||||
background: $secondary-background;
|
background: $secondary-background;
|
||||||
}
|
}
|
||||||
|
|
||||||
#red-ui-clipboard-hidden {
|
|
||||||
position: absolute;
|
|
||||||
top: -3000px;
|
|
||||||
}
|
|
||||||
.form-row .red-ui-editor-node-label-form-row {
|
.form-row .red-ui-editor-node-label-form-row {
|
||||||
margin: 5px 0 0 50px;
|
margin: 5px 0 0 50px;
|
||||||
label {
|
label {
|
||||||
|
@ -91,21 +91,21 @@
|
|||||||
<div id="func-tab-init" style="display:none">
|
<div id="func-tab-init" style="display:none">
|
||||||
<div class="form-row node-text-editor-row" style="position:relative">
|
<div class="form-row node-text-editor-row" style="position:relative">
|
||||||
<div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-init-editor" ></div>
|
<div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-init-editor" ></div>
|
||||||
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 5;"><button id="node-init-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 10;"><button id="node-init-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="func-tab-body" style="display:none">
|
<div id="func-tab-body" style="display:none">
|
||||||
<div class="form-row node-text-editor-row" style="position:relative">
|
<div class="form-row node-text-editor-row" style="position:relative">
|
||||||
<div style="height: 220px; min-height:150px;" class="node-text-editor" id="node-input-func-editor" ></div>
|
<div style="height: 220px; min-height:150px;" class="node-text-editor" id="node-input-func-editor" ></div>
|
||||||
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 5;"><button id="node-function-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 10;"><button id="node-function-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="func-tab-finalize" style="display:none">
|
<div id="func-tab-finalize" style="display:none">
|
||||||
<div class="form-row node-text-editor-row" style="position:relative">
|
<div class="form-row node-text-editor-row" style="position:relative">
|
||||||
<div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-finalize-editor" ></div>
|
<div style="height: 250px; min-height:150px;" class="node-text-editor" id="node-input-finalize-editor" ></div>
|
||||||
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 5;"><button id="node-finalize-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
<div style="position: absolute; right:0; bottom: calc(100% - 20px); z-Index: 10;"><button id="node-finalize-expand-js" class="red-ui-button red-ui-button-small"><i class="fa fa-expand"></i></button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -111,22 +111,24 @@ module.exports = function(RED) {
|
|||||||
if (node.isServer) {
|
if (node.isServer) {
|
||||||
node._clients[id] = socket;
|
node._clients[id] = socket;
|
||||||
node.emit('opened',{count:Object.keys(node._clients).length,id:id});
|
node.emit('opened',{count:Object.keys(node._clients).length,id:id});
|
||||||
} else {
|
|
||||||
if (node.heartbeat) {
|
|
||||||
node.heartbeatInterval = setInterval(function() {
|
|
||||||
if (socket.nrPendingHeartbeat) {
|
|
||||||
// No pong received
|
|
||||||
socket.terminate();
|
|
||||||
socket.nrErrorHandler(new Error("timeout"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
socket.nrPendingHeartbeat = true;
|
|
||||||
socket.ping();
|
|
||||||
},node.heartbeat);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
socket.on('open',function() {
|
socket.on('open',function() {
|
||||||
if (!node.isServer) {
|
if (!node.isServer) {
|
||||||
|
if (node.heartbeat) {
|
||||||
|
clearInterval(node.heartbeatInterval);
|
||||||
|
node.heartbeatInterval = setInterval(function() {
|
||||||
|
if (socket.nrPendingHeartbeat) {
|
||||||
|
// No pong received
|
||||||
|
socket.terminate();
|
||||||
|
socket.nrErrorHandler(new Error("timeout"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
socket.nrPendingHeartbeat = true;
|
||||||
|
try {
|
||||||
|
socket.ping();
|
||||||
|
} catch(err) {}
|
||||||
|
},node.heartbeat);
|
||||||
|
}
|
||||||
node.emit('opened',{count:'',id:id});
|
node.emit('opened',{count:'',id:id});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": "8.6.0",
|
"acorn": "8.7.0",
|
||||||
"acorn-walk": "8.2.0",
|
"acorn-walk": "8.2.0",
|
||||||
"ajv": "8.8.2",
|
"ajv": "8.8.2",
|
||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.1",
|
||||||
"cheerio": "1.0.0-rc.10",
|
"cheerio": "1.0.0-rc.10",
|
||||||
"content-type": "1.0.4",
|
"content-type": "1.0.4",
|
||||||
"cookie-parser": "1.4.6",
|
"cookie-parser": "1.4.6",
|
||||||
@ -36,7 +36,7 @@
|
|||||||
"is-utf8": "0.2.1",
|
"is-utf8": "0.2.1",
|
||||||
"js-yaml": "3.14.1",
|
"js-yaml": "3.14.1",
|
||||||
"media-typer": "1.1.0",
|
"media-typer": "1.1.0",
|
||||||
"mqtt": "4.2.8",
|
"mqtt": "4.3.4",
|
||||||
"multer": "1.4.3",
|
"multer": "1.4.3",
|
||||||
"mustache": "4.2.0",
|
"mustache": "4.2.0",
|
||||||
"on-headers": "1.0.2",
|
"on-headers": "1.0.2",
|
||||||
|
@ -21,6 +21,6 @@
|
|||||||
"fs-extra": "10.0.0",
|
"fs-extra": "10.0.0",
|
||||||
"semver": "7.3.5",
|
"semver": "7.3.5",
|
||||||
"tar": "6.1.11",
|
"tar": "6.1.11",
|
||||||
"uglify-js": "3.14.4"
|
"uglify-js": "3.14.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
"@node-red/util": "2.2.0-beta.1",
|
"@node-red/util": "2.2.0-beta.1",
|
||||||
"async-mutex": "0.3.2",
|
"async-mutex": "0.3.2",
|
||||||
"clone": "2.1.2",
|
"clone": "2.1.2",
|
||||||
"express": "4.17.1",
|
"express": "4.17.2",
|
||||||
"fs-extra": "10.0.0",
|
"fs-extra": "10.0.0",
|
||||||
"json-stringify-safe": "5.0.1"
|
"json-stringify-safe": "5.0.1"
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,14 @@ function wrapEventFunction(obj,func) {
|
|||||||
return function(eventName, listener) {
|
return function(eventName, listener) {
|
||||||
if (deprecatedEvents.hasOwnProperty(eventName)) {
|
if (deprecatedEvents.hasOwnProperty(eventName)) {
|
||||||
const log = require("@node-red/util").log;
|
const log = require("@node-red/util").log;
|
||||||
const stack = (new Error().stack).split("\n")[2].split("(")[1].slice(0,-1);
|
|
||||||
log.warn(`[RED.events] Deprecated use of "${eventName}" event from "${stack}". Use "${deprecatedEvents[eventName]}" instead.`)
|
const stack = (new Error().stack).split("\n");
|
||||||
|
let location = "(unknown)"
|
||||||
|
// See https://github.com/node-red/node-red/issues/3292
|
||||||
|
if (stack.length > 2) {
|
||||||
|
location = stack[2].split("(")[1].slice(0,-1);
|
||||||
|
}
|
||||||
|
log.warn(`[RED.events] Deprecated use of "${eventName}" event from "${location}". Use "${deprecatedEvents[eventName]}" instead.`)
|
||||||
}
|
}
|
||||||
return events["_"+func].call(events,eventName,listener)
|
return events["_"+func].call(events,eventName,listener)
|
||||||
}
|
}
|
||||||
|
@ -686,7 +686,7 @@ function prepareJSONataExpression(value,node) {
|
|||||||
return moment(arg1, arg2, arg3, arg4);
|
return moment(arg1, arg2, arg3, arg4);
|
||||||
});
|
});
|
||||||
expr.registerFunction('clone', cloneMessage, '<(oa)-:o>');
|
expr.registerFunction('clone', cloneMessage, '<(oa)-:o>');
|
||||||
expr._legacyMode = /(^|[^a-zA-Z0-9_'"])msg([^a-zA-Z0-9_'"]|$)/.test(value);
|
expr._legacyMode = /(^|[^a-zA-Z0-9_'".])msg([^a-zA-Z0-9_'"]|$)/.test(value);
|
||||||
expr._node = node;
|
expr._node = node;
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs-extra": "10.0.0",
|
"fs-extra": "10.0.0",
|
||||||
"i18next": "21.5.4",
|
"i18next": "21.6.6",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "5.0.1",
|
||||||
"jsonata": "1.8.5",
|
"jsonata": "1.8.5",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
|
2
packages/node_modules/node-red/package.json
vendored
2
packages/node_modules/node-red/package.json
vendored
@ -37,7 +37,7 @@
|
|||||||
"@node-red/nodes": "2.2.0-beta.1",
|
"@node-red/nodes": "2.2.0-beta.1",
|
||||||
"basic-auth": "2.0.1",
|
"basic-auth": "2.0.1",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"express": "4.17.1",
|
"express": "4.17.2",
|
||||||
"fs-extra": "10.0.0",
|
"fs-extra": "10.0.0",
|
||||||
"node-red-admin": "^2.2.1",
|
"node-red-admin": "^2.2.1",
|
||||||
"nopt": "5.0.0",
|
"nopt": "5.0.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user