kopia lustrzana https://github.com/dceejay/electron-node-red
Bump to 0.19.2 - add more options as examples
rodzic
44f02b969a
commit
8146a0a003
|
@ -2,7 +2,9 @@
|
|||
|
||||
This is an Electron template to embed Node-RED with a Dashboard generated by node-red-dashboard.
|
||||
|
||||
You can base off this model and update the package.json file to include your own required dependencies.
|
||||
This is not intended to be a useful tool as-is, but as a base for you to create your own versions. You will need to edit the `main.js` to suit your application and update the `package.json` file to include your own required dependencies.
|
||||
|
||||
At the top of `main.js` are a couple of flags you can switch to turn off editing, allow loading of a different flow file (and save as), and adding the worldmap to the menu. Again these are only there to show you possibilities. Have fun.
|
||||
|
||||
## To Use
|
||||
|
||||
|
|
11
console.htm
11
console.htm
|
@ -6,21 +6,26 @@
|
|||
<title>Node-RED Console</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0, maximum-scale=1, minimum-scale=1">
|
||||
</head>
|
||||
<body style="margin:0;" >
|
||||
<body style="margin:0;" onload="scrollDown()" >
|
||||
<font style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif; font-size:9pt;">
|
||||
<div id="header" style="background-color:#910000; position:fixed; height:16px; width:100%; padding:8px;"><input type="button" value="Clear Log" onclick="clearList()";/></div>
|
||||
<div id="debug" style="padding:4px; padding-left:8px;"></div>
|
||||
<div id="debug" style="padding:4px; padding-left:8px; padding-top:34px;"></div>
|
||||
</font>
|
||||
<script>
|
||||
const logLength = 250;
|
||||
const { ipcRenderer } = require('electron');
|
||||
const ipc = require('electron').ipcRenderer;
|
||||
var list = [];
|
||||
var scrollDown = function() {
|
||||
setTimeout( function() {
|
||||
window.scrollTo(0,document.body.scrollHeight);
|
||||
}, 50);
|
||||
}
|
||||
var clearList = function() {
|
||||
list = [];
|
||||
document.getElementById("debug").innerHTML = "";
|
||||
ipc.send('clearLogBuffer', "clear");
|
||||
}
|
||||
|
||||
ipc.on('logBuff', (event, data) => {
|
||||
list = data;
|
||||
document.getElementById("debug").innerHTML = list.join("<br/>");
|
||||
|
|
File diff suppressed because one or more lines are too long
263
main.js
263
main.js
|
@ -2,37 +2,38 @@
|
|||
'use strict';
|
||||
|
||||
// Some settings you can edit easily
|
||||
// Flows file name
|
||||
const flowfile = 'electronflow.json';
|
||||
// Start on the dashboard page
|
||||
const urldash = "/ui/#/0";
|
||||
// url for the editor page
|
||||
const urledit = "/red";
|
||||
// url for the console page
|
||||
const urlconsole = "/console.htm";
|
||||
// url for the worldmap page
|
||||
const urlmap = "/worldmap";
|
||||
|
||||
const editable = true; // Set this to false to create a run only application - no editor/no console
|
||||
const allowLoadSave = false; // set to true to allow omport and export of flow
|
||||
const showMap = false; // set to true to add Worldmap to the menu
|
||||
let flowfile = 'electronflow.json'; // default Flows file name - loaded at start
|
||||
const urldash = "/ui/#/0"; // Start on the dashboard page
|
||||
const urledit = "/red"; // url for the editor page
|
||||
const urlconsole = "/console.htm"; // url for the console page
|
||||
const urlmap = "/worldmap"; // url for the worldmap
|
||||
|
||||
// tcp port to use
|
||||
//const listenPort = "18880"; // fix it just because
|
||||
const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port
|
||||
//const listenPort = "18880"; // fix it if you like
|
||||
const listenPort = parseInt(Math.random()*16383+49152) // or random ephemeral port
|
||||
|
||||
const os = require('os');
|
||||
const fs = require('fs');
|
||||
const url = require('url');
|
||||
const path = require('path');
|
||||
const http = require('http');
|
||||
const express = require("express");
|
||||
const electron = require('electron');
|
||||
|
||||
const app = electron.app;
|
||||
const ipc = electron.ipcMain;
|
||||
const dialog = electron.dialog;
|
||||
const BrowserWindow = electron.BrowserWindow;
|
||||
const {Menu, MenuItem} = electron;
|
||||
|
||||
// this should be placed at top of main.js to handle squirrel setup events quickly
|
||||
if (handleSquirrelEvent()) { return; }
|
||||
|
||||
var http = require('http');
|
||||
var express = require("express");
|
||||
var RED = require("node-red");
|
||||
|
||||
// Create an Express app
|
||||
var red_app = express();
|
||||
|
||||
// Add a simple route for static content served from 'public'
|
||||
|
@ -42,22 +43,22 @@ red_app.use("/",express.static("web"));
|
|||
// Create a server
|
||||
var server = http.createServer(red_app);
|
||||
|
||||
var userdir;
|
||||
if (process.argv[1] && (process.argv[1] === "main.js")) {
|
||||
userdir = __dirname;
|
||||
}
|
||||
else { // We set the user directory to be in the users home directory...
|
||||
const fs = require('fs');
|
||||
userdir = os.homedir() + '/.node-red';
|
||||
if (!fs.existsSync(userdir)) {
|
||||
fs.mkdirSync(userdir);
|
||||
var userdir = __dirname;
|
||||
if (editable) {
|
||||
if (process.argv[1] && (process.argv[1] === "main.js")) {
|
||||
userdir = __dirname;
|
||||
}
|
||||
if (!fs.existsSync(userdir+"/"+flowfile)) {
|
||||
fs.writeFileSync(userdir+"/"+flowfile, fs.readFileSync(__dirname+"/"+flowfile));
|
||||
else { // We set the user directory to be in the users home directory...
|
||||
userdir = os.homedir() + '/.node-red';
|
||||
if (!fs.existsSync(userdir)) {
|
||||
fs.mkdirSync(userdir);
|
||||
}
|
||||
if (!fs.existsSync(userdir+"/"+flowfile)) {
|
||||
fs.writeFileSync(userdir+"/"+flowfile, fs.readFileSync(__dirname+"/"+flowfile));
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("Setting UserDir to ",userdir);
|
||||
// console.log("DIR",__dirname);
|
||||
console.log("UserDir :",userdir);
|
||||
// console.log("PORT",listenPort);
|
||||
|
||||
// Keep a global reference of the window objects, if you don't, the window will
|
||||
|
@ -67,13 +68,15 @@ let conWindow;
|
|||
let logBuffer = [];
|
||||
let logLength = 250;
|
||||
|
||||
ipc.on('clearLogBuffer', function(event, arg) { logBuffer = []; });
|
||||
|
||||
// Create the settings object - see default settings.js file for other options
|
||||
var settings = {
|
||||
httpAdminRoot: "/red",
|
||||
httpAdminRoot: "/red", // set to false to disable editor/deploy
|
||||
httpNodeRoot: "/",
|
||||
userDir: userdir,
|
||||
flowFile: flowfile,
|
||||
editorTheme: { projects:{ enabled:true } },
|
||||
editorTheme: { projects:{ enabled:false } },
|
||||
functionGlobalContext: { }, // enables global context
|
||||
logging: {
|
||||
websock: {
|
||||
|
@ -81,67 +84,83 @@ var settings = {
|
|||
metrics: false,
|
||||
handler: function() {
|
||||
return function(msg) {
|
||||
var ts = (new Date(msg.timestamp)).toISOString();
|
||||
ts = ts.replace("Z"," ").replace("T"," ");
|
||||
var line = ts+" : "+msg.msg;
|
||||
logBuffer.push(line);
|
||||
if (conWindow) { conWindow.webContents.send('debugMsg', line); }
|
||||
if (logBuffer.length > logLength) { logBuffer.shift(); }
|
||||
if (editable) { // No logging if not editable
|
||||
var ts = (new Date(msg.timestamp)).toISOString();
|
||||
ts = ts.replace("Z"," ").replace("T"," ");
|
||||
var line = ts+" : "+msg.msg;
|
||||
logBuffer.push(line);
|
||||
if (conWindow) { conWindow.webContents.send('debugMsg', line); }
|
||||
if (logBuffer.length > logLength) { logBuffer.shift(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!editable) {
|
||||
settings.httpAdminRoot = false;
|
||||
settings.readOnly = true;
|
||||
}
|
||||
|
||||
// Initialise the runtime with a server and settings
|
||||
RED.init(server,settings);
|
||||
|
||||
// Serve the editor UI from /red
|
||||
red_app.use(settings.httpAdminRoot,RED.httpAdmin);
|
||||
if (settings.httpAdminRoot !== false) {
|
||||
red_app.use(settings.httpAdminRoot,RED.httpAdmin);
|
||||
}
|
||||
|
||||
// Serve the http nodes UI from /
|
||||
red_app.use(settings.httpNodeRoot,RED.httpNode);
|
||||
|
||||
// Create the Application's main menu
|
||||
var template = [{
|
||||
label: "Application",
|
||||
var template = [
|
||||
// {label: "Application",
|
||||
// submenu: [
|
||||
// { role: 'about' },
|
||||
// { type: "separator" },
|
||||
// { role: 'quit' }
|
||||
// ]},
|
||||
{ label: 'Node-RED',
|
||||
submenu: [
|
||||
{ role: 'about' },
|
||||
{ type: "separator" },
|
||||
{ role: 'quit' }
|
||||
]}, {
|
||||
label: 'Node-RED',
|
||||
submenu: [
|
||||
{ label: 'Console',
|
||||
accelerator: "Shift+CmdOrCtrl+C",
|
||||
click() { createConsole(); }
|
||||
{ label: 'Import Flow',
|
||||
click() { openFlow(); }
|
||||
},
|
||||
{ label: 'Dashboard',
|
||||
accelerator: "Shift+CmdOrCtrl+D",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); }
|
||||
{ label: 'Save Flow As',
|
||||
click() { saveFlow(); }
|
||||
},
|
||||
{ label: 'Editor',
|
||||
accelerator: "Shift+CmdOrCtrl+E",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); }
|
||||
{ type: 'separator' },
|
||||
{ label: 'Console',
|
||||
accelerator: "Shift+CmdOrCtrl+C",
|
||||
click() { createConsole(); }
|
||||
},
|
||||
{ label: 'Worldmap',
|
||||
accelerator: "Shift+CmdOrCtrl+M",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); }
|
||||
{ label: 'Dashboard',
|
||||
accelerator: "Shift+CmdOrCtrl+D",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urldash); }
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{ label: 'Documentation',
|
||||
click() { electron.shell.openExternal('https://nodered.org/docs') }
|
||||
{ label: 'Editor',
|
||||
accelerator: "Shift+CmdOrCtrl+E",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urledit); }
|
||||
},
|
||||
{ label: 'Flows and Nodes',
|
||||
click() { electron.shell.openExternal('https://flows.nodered.org') }
|
||||
{ label: 'Worldmap',
|
||||
accelerator: "Shift+CmdOrCtrl+M",
|
||||
click() { mainWindow.loadURL("http://localhost:"+listenPort+urlmap); }
|
||||
},
|
||||
{ label: 'Discourse Forum',
|
||||
click() { electron.shell.openExternal('https://discourse.nodered.org/') }
|
||||
{ type: 'separator' },
|
||||
{ label: 'Documentation',
|
||||
click() { electron.shell.openExternal('https://nodered.org/docs') }
|
||||
},
|
||||
{ type: "separator" },
|
||||
{ role: 'quit' }
|
||||
]}, {
|
||||
// label: "Edit",
|
||||
{ label: 'Flows and Nodes',
|
||||
click() { electron.shell.openExternal('https://flows.nodered.org') }
|
||||
},
|
||||
{ label: 'Discourse Forum',
|
||||
click() { electron.shell.openExternal('https://discourse.nodered.org/') }
|
||||
},
|
||||
{ type: "separator" },
|
||||
{ role: 'togglefullscreen' },
|
||||
{ role: 'quit' }
|
||||
]}
|
||||
// ,{label: "Edit",
|
||||
// submenu: [
|
||||
// { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
|
||||
// { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
|
||||
|
@ -150,38 +169,76 @@ var template = [{
|
|||
// { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" },
|
||||
// { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
|
||||
// { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
|
||||
// ]}, {
|
||||
label: 'View',
|
||||
submenu: [
|
||||
{ label: 'Reload',
|
||||
accelerator: 'CmdOrCtrl+R',
|
||||
click(item, focusedWindow) { if (focusedWindow) { focusedWindow.reload(); }}
|
||||
},
|
||||
{ label: 'Toggle Developer Tools',
|
||||
accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I',
|
||||
click(item, focusedWindow) { if (focusedWindow) { focusedWindow.webContents.toggleDevTools(); }}
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{ role: 'resetzoom' },
|
||||
{ role: 'zoomin' },
|
||||
{ role: 'zoomout' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'togglefullscreen' },
|
||||
{ role: 'minimize' }
|
||||
]}
|
||||
// ]}
|
||||
// ,{ label: 'View',
|
||||
// submenu: [
|
||||
// { label: 'Reload',
|
||||
// accelerator: 'CmdOrCtrl+R',
|
||||
// click(item, focusedWindow) { if (focusedWindow) { focusedWindow.reload(); }}
|
||||
// },
|
||||
// { label: 'Toggle Developer Tools',
|
||||
// accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I',
|
||||
// click(item, focusedWindow) { if (focusedWindow) { focusedWindow.webContents.toggleDevTools(); }}
|
||||
// },
|
||||
// { type: 'separator' },
|
||||
// { role: 'resetzoom' },
|
||||
// { role: 'zoomin' },
|
||||
// { role: 'zoomout' },
|
||||
// { type: 'separator' },
|
||||
// { role: 'togglefullscreen' },
|
||||
// { role: 'minimize' }
|
||||
// ]}
|
||||
];
|
||||
|
||||
// function openFlow() {
|
||||
// dialog.showOpenDialog(function (fileNames) {
|
||||
// if (fileNames === undefined) {
|
||||
// console.log("No file selected");
|
||||
// }
|
||||
// else {
|
||||
// console.log(fileNames[0]);
|
||||
// //readFile(fileNames[0]);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
if (!showMap) { template[0].submenu.splice(6,1); }
|
||||
|
||||
if (!editable) {
|
||||
template[0].submenu.splice(3,1);
|
||||
template[0].submenu.splice(4,1);
|
||||
}
|
||||
|
||||
if (!allowLoadSave) { template[0].submenu.splice(0,2); }
|
||||
|
||||
let fileName = ""
|
||||
function saveFlow() {
|
||||
dialog.showSaveDialog({
|
||||
filters:[{ name:'JSON', extensions:['json'] }],
|
||||
defaultPath: fileName
|
||||
}, function(file_path) {
|
||||
if (file_path) {
|
||||
var flo = JSON.stringify(RED.nodes.getFlows());
|
||||
fs.writeFile(file_path, flo, function(err) {
|
||||
if (err) { dialog.showErrorBox('Error', err); }
|
||||
else { dialog.showErrorBox('OK', "Flow file saved as\n\n"+file_path); }
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function openFlow() {
|
||||
dialog.showOpenDialog({ filters:[{ name:'JSON', extensions:['json']} ]},
|
||||
function (fileNames) {
|
||||
if (fileNames) {
|
||||
//console.log(fileNames[0]);
|
||||
fs.readFile(fileNames[0], 'utf-8', function (err, data) {
|
||||
try {
|
||||
var flo = JSON.parse(data);
|
||||
if (Array.isArray(flo) && (flo.length > 0)) {
|
||||
RED.nodes.setFlows(flo,"full");
|
||||
fileName = fileNames[0];
|
||||
}
|
||||
else {
|
||||
dialog.showErrorBox("Error", "Failed to parse flow file.\n\n "+fileNames[0]+".\n\nAre you sure it's a flow file ?");
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
dialog.showErrorBox("Error", "Failed to load flow file.\n\n "+fileNames[0]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
// Create the console log window
|
||||
function createConsole() {
|
||||
|
@ -193,7 +250,6 @@ function createConsole() {
|
|||
height: 600,
|
||||
icon: path.join(__dirname, 'nodered.png')
|
||||
});
|
||||
//conWindow.loadURL("http://localhost:"+listenPort+urlconsole);
|
||||
conWindow.loadURL(url.format({
|
||||
pathname: path.join(__dirname, 'console.htm'),
|
||||
protocol: 'file:',
|
||||
|
@ -250,7 +306,10 @@ function createWindow() {
|
|||
mainWindow = null;
|
||||
});
|
||||
|
||||
// Open the DevTools.
|
||||
// Start the app full screen
|
||||
//mainWindow.setFullScreen(true)
|
||||
|
||||
// Open the DevTools at start
|
||||
//mainWindow.webContents.openDevTools();
|
||||
}
|
||||
|
||||
|
@ -273,7 +332,7 @@ app.on('activate', function() {
|
|||
}
|
||||
});
|
||||
|
||||
// Start the Node-RED runtime, then load the inital page
|
||||
// Start the Node-RED runtime, then load the inital dashboard page
|
||||
RED.start().then(function() {
|
||||
server.listen(listenPort,"127.0.0.1",function() {
|
||||
mainWindow.loadURL("http://127.0.0.1:"+listenPort+urldash);
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "electron_node_red",
|
||||
"version": "0.19.1",
|
||||
"version": "0.19.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/node": {
|
||||
"version": "8.10.26",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.26.tgz",
|
||||
"integrity": "sha512-opk6bLLErLSwyVVJeSH5Ek7ZWOBSsN0JrvXTNVGLXLAXKB9xlTYajrplR44xVyMrmbut94H6uJ9jqzM/12jxkA==",
|
||||
"version": "8.10.27",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.27.tgz",
|
||||
"integrity": "sha512-MNRS6EyHl3XbqoJfog2atvSq6nYBFbyQYcw3v6H9AURtA0NYr28Zo/pB2NQ48zev4/KqLkyYTpY8AZZhOg/X7g==",
|
||||
"dev": true
|
||||
},
|
||||
"abbrev": {
|
||||
|
@ -1042,8 +1042,7 @@
|
|||
"commander": {
|
||||
"version": "2.17.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
|
||||
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
|
||||
},
|
||||
"commist": {
|
||||
"version": "1.0.0",
|
||||
|
@ -1203,6 +1202,14 @@
|
|||
"array-find-index": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
|
@ -1409,9 +1416,9 @@
|
|||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
||||
},
|
||||
"electron": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-2.0.7.tgz",
|
||||
"integrity": "sha512-MRrDE6mrp+ZrIBpZM27pxbO2yEDKYfkmc6Ll79BtedMNEZsY4+oblupeDJL6RM6meUIp82KMo63W7fP65Tb89Q==",
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-2.0.8.tgz",
|
||||
"integrity": "sha512-pbeGFbwijb5V3Xy/KMcwIp59eA9igg2br+7EHbbwQoa3HRDF5JjTrciX7OiscCA52+ze2n4q38S4lXPqRitgIA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "^8.0.24",
|
||||
|
@ -1436,28 +1443,6 @@
|
|||
"sumchecker": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "0.30.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^2.1.0",
|
||||
"klaw": "^1.0.0",
|
||||
"path-is-absolute": "^1.0.0",
|
||||
"rimraf": "^2.2.8"
|
||||
}
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
|
@ -1671,12 +1656,66 @@
|
|||
"is-arrayish": "^0.2.1"
|
||||
}
|
||||
},
|
||||
"es5-ext": {
|
||||
"version": "0.10.46",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
|
||||
"integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
|
||||
"requires": {
|
||||
"es6-iterator": "~2.0.3",
|
||||
"es6-symbol": "~3.1.1",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-map": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
|
||||
"integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14",
|
||||
"es6-iterator": "~2.0.1",
|
||||
"es6-set": "~0.1.5",
|
||||
"es6-symbol": "~3.1.1",
|
||||
"event-emitter": "~0.3.5"
|
||||
}
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
|
||||
"dev": true
|
||||
},
|
||||
"es6-set": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
|
||||
"integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14",
|
||||
"es6-iterator": "~2.0.1",
|
||||
"es6-symbol": "3.1.1",
|
||||
"event-emitter": "~0.3.5"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
|
@ -1697,6 +1736,15 @@
|
|||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"express": {
|
||||
"version": "4.16.3",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||
|
@ -1865,13 +1913,16 @@
|
|||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
|
||||
"integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
|
||||
"version": "0.30.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^4.0.0",
|
||||
"universalify": "^0.1.0"
|
||||
"jsonfile": "^2.1.0",
|
||||
"klaw": "^1.0.0",
|
||||
"path-is-absolute": "^1.0.0",
|
||||
"rimraf": "^2.2.8"
|
||||
}
|
||||
},
|
||||
"fs.notify": {
|
||||
|
@ -2066,6 +2117,22 @@
|
|||
"glob-stream": "^6.1.0",
|
||||
"through2": "^2.0.1",
|
||||
"xtend": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"through2": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
||||
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.1.5",
|
||||
"xtend": "~4.0.1"
|
||||
}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
"hoek": {
|
||||
|
@ -2362,9 +2429,10 @@
|
|||
"integrity": "sha512-F/p92UWYUn+kD3SE898jjlz1mkBzjtok9ZTtWT6+axS4Z2Wtc8p/md6xHkyCGWPdIEJBTSw0mlvKE+s+fAVSjg=="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
|
@ -2769,13 +2837,14 @@
|
|||
}
|
||||
},
|
||||
"mqtt": {
|
||||
"version": "2.18.3",
|
||||
"resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.3.tgz",
|
||||
"integrity": "sha512-BXCUugFgA6FOWJGxhvUWtVLOdt6hYTmiMGPksEyKuuF1FQ0ji7UJBJ/0kVRMUtUWCAtPGnt4mZZZgJpzNLcuQg==",
|
||||
"version": "2.18.5",
|
||||
"resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.5.tgz",
|
||||
"integrity": "sha512-VkQeH81VIS0nOL3Ilf58ypPtM3I6VzVsE5as+k/AgrnX7xjcrCSfgSJdYGa6rW3px4DLAnh2gCD3URUZ23riKQ==",
|
||||
"requires": {
|
||||
"commist": "^1.0.0",
|
||||
"concat-stream": "^1.6.2",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"es6-map": "^0.1.5",
|
||||
"help-me": "^1.0.1",
|
||||
"inherits": "^2.0.3",
|
||||
"minimist": "^1.2.0",
|
||||
|
@ -2792,6 +2861,11 @@
|
|||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2835,6 +2909,11 @@
|
|||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
||||
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2863,6 +2942,11 @@
|
|||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||
},
|
||||
"next-tick": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.1.tgz",
|
||||
|
@ -2911,11 +2995,11 @@
|
|||
}
|
||||
},
|
||||
"node-red": {
|
||||
"version": "0.19.1",
|
||||
"resolved": "https://registry.npmjs.org/node-red/-/node-red-0.19.1.tgz",
|
||||
"integrity": "sha512-GYUSFCZ27DI9BPvT0nfmnkQhKBECshWPpSjXxZAiXIN39Kq9oScashDKCNB4vjSIwcJE8cmILtg6ZMLwtc4o0g==",
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmjs.org/node-red/-/node-red-0.19.2.tgz",
|
||||
"integrity": "sha512-788MCJSRjfYhsGsuRDlWL3Q1E2LheTPjnXzvIdX5/94buaczJifGdoqi2lNxQuCjHXPUvWVTeZCF0ot0igdz7Q==",
|
||||
"requires": {
|
||||
"ajv": "6.5.2",
|
||||
"ajv": "6.5.3",
|
||||
"basic-auth": "2.0.0",
|
||||
"bcrypt": "~2.0.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
|
@ -2939,7 +3023,7 @@
|
|||
"jsonata": "1.5.4",
|
||||
"media-typer": "0.3.0",
|
||||
"memorystore": "1.6.0",
|
||||
"mqtt": "2.18.3",
|
||||
"mqtt": "2.18.5",
|
||||
"multer": "1.3.1",
|
||||
"mustache": "2.3.1",
|
||||
"node-red-node-email": "0.1.*",
|
||||
|
@ -2954,23 +3038,23 @@
|
|||
"passport-oauth2-client-password": "0.1.2",
|
||||
"raw-body": "2.3.3",
|
||||
"request": "2.88.0",
|
||||
"semver": "5.5.0",
|
||||
"semver": "5.5.1",
|
||||
"sentiment": "2.1.0",
|
||||
"uglify-js": "3.4.7",
|
||||
"uglify-js": "3.4.8",
|
||||
"when": "3.7.8",
|
||||
"ws": "1.1.5",
|
||||
"xml2js": "0.4.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz",
|
||||
"integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==",
|
||||
"version": "6.5.3",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
|
||||
"integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.1"
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"aws4": {
|
||||
|
@ -3005,6 +3089,16 @@
|
|||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
|
||||
"integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^4.0.0",
|
||||
"universalify": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
|
||||
|
@ -3050,6 +3144,14 @@
|
|||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
|
||||
|
@ -3117,9 +3219,9 @@
|
|||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
|
||||
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
|
||||
"version": "5.5.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
|
||||
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
|
@ -3143,9 +3245,9 @@
|
|||
"integrity": "sha512-/IgV7Skw3NBXNJ2KFqE6wzLJtPrfqBy9nKka0fCofA26eG0RXv0vjS1IpYa3QgQZD9YFMVIcbC0a9HlFK/wY+Q=="
|
||||
},
|
||||
"node-red-contrib-web-worldmap": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-1.3.5.tgz",
|
||||
"integrity": "sha512-2G0KFmHUOyX+A8z0kpzZ0Csbt/xmUvxebNrFF/wmljOJfni8NwbGacW0RD8ACP6r4q5RhqkDBP3Aqvd04qDfmg==",
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/node-red-contrib-web-worldmap/-/node-red-contrib-web-worldmap-1.3.6.tgz",
|
||||
"integrity": "sha512-PefS1QK/wDLIFrCER/vcN4oCm20xt1dOqyvnp8e/RVsAizfidZMkcORYFKnw1OsbxncacoRkMOh8a1jUvItfGQ==",
|
||||
"requires": {
|
||||
"cgi": "0.3.1",
|
||||
"express": "^4.16.3",
|
||||
|
@ -3153,9 +3255,9 @@
|
|||
}
|
||||
},
|
||||
"node-red-dashboard": {
|
||||
"version": "2.9.6",
|
||||
"resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.6.tgz",
|
||||
"integrity": "sha512-d4NIk2oDnOQ3rKB3juE1RX5oDLEOUHdU14yrEBo7sehkcH8Cjb3RcXZ+ZYjuBuETkavFQI8nKJIwLWJ3SsZZSg==",
|
||||
"version": "2.9.7",
|
||||
"resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-2.9.7.tgz",
|
||||
"integrity": "sha512-/F/DSBrFWfPB+6o7ZkvKgs0+ikIli3W83gQKhUjvR9vS3cOZXoSEY44JWVsH6LRhUq5ckAJhd+xRhgp6+1uQcw==",
|
||||
"requires": {
|
||||
"serve-static": "~1.13.2",
|
||||
"socket.io": "^2.1.1"
|
||||
|
@ -3711,51 +3813,6 @@
|
|||
"requires": {
|
||||
"speedometer": "~0.1.2",
|
||||
"through2": "~0.2.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
||||
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.1",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"through2": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
|
||||
"integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "~1.1.9",
|
||||
"xtend": "~2.1.1"
|
||||
}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
|
||||
"integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"object-keys": "~0.4.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"proxy-addr": {
|
||||
|
@ -4274,6 +4331,22 @@
|
|||
"integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
|
||||
"requires": {
|
||||
"through2": "^2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"through2": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
||||
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.1.5",
|
||||
"xtend": "~4.0.1"
|
||||
}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
"sprintf-js": {
|
||||
|
@ -4336,9 +4409,9 @@
|
|||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
|
||||
"integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA=="
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
|
@ -4434,12 +4507,39 @@
|
|||
"dev": true
|
||||
},
|
||||
"through2": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
||||
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
|
||||
"integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "^2.1.5",
|
||||
"xtend": "~4.0.1"
|
||||
"readable-stream": "~1.1.9",
|
||||
"xtend": "~2.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
||||
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.1",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"through2-filter": {
|
||||
|
@ -4449,6 +4549,22 @@
|
|||
"requires": {
|
||||
"through2": "~2.0.0",
|
||||
"xtend": "~4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"through2": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
||||
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.1.5",
|
||||
"xtend": "~4.0.1"
|
||||
}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
"to-absolute-glob": {
|
||||
|
@ -4542,19 +4658,12 @@
|
|||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.4.7",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.7.tgz",
|
||||
"integrity": "sha512-J0M2i1mQA+ze3EdN9SBi751DNdAXmeFLfJrd/MDIkRc3G3Gbb9OPVSx7GIQvVwfWxQARcYV2DTxIkMyDAk3o9Q==",
|
||||
"version": "3.4.8",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.8.tgz",
|
||||
"integrity": "sha512-WatYTD84gP/867bELqI2F/2xC9PQBETn/L+7RGq9MQOA/7yFBNvY1UwXqvtILeE6n0ITwBXxp34M0/o70dzj6A==",
|
||||
"requires": {
|
||||
"commander": "~2.16.0",
|
||||
"commander": "~2.17.1",
|
||||
"source-map": "~0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.16.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
|
||||
"integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"uid-safe": {
|
||||
|
@ -4714,6 +4823,11 @@
|
|||
"safe-buffer": "~5.1.0",
|
||||
"ultron": "~1.1.0"
|
||||
}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4802,9 +4916,13 @@
|
|||
"integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
|
||||
"integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"object-keys": "~0.4.0"
|
||||
}
|
||||
},
|
||||
"y18n": {
|
||||
"version": "3.2.1",
|
||||
|
|
10
package.json
10
package.json
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "electron_node_red",
|
||||
"version": "0.19.1",
|
||||
"version": "0.19.2",
|
||||
"description": "Electron Node-RED application starter",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
@ -29,10 +29,10 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"express": "^4.15.3",
|
||||
"node-red": "~0.19.1",
|
||||
"node-red": "~0.19.2",
|
||||
"node-red-contrib-play-audio": "~2.3.2",
|
||||
"node-red-contrib-web-worldmap": "^1.3.5",
|
||||
"node-red-dashboard": "~2.9.6",
|
||||
"node-red-contrib-web-worldmap": "~1.3.6",
|
||||
"node-red-dashboard": "~2.9.7",
|
||||
"node-red-node-base64": "*",
|
||||
"node-red-node-geofence": "*",
|
||||
"node-red-node-random": "*",
|
||||
|
@ -57,7 +57,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/dceejay/electron-node-red#readme",
|
||||
"devDependencies": {
|
||||
"electron": "~2.0.7",
|
||||
"electron": "~2.0.8",
|
||||
"electron-rebuild": "~1.7.3",
|
||||
"electron-squirrel-startup": "*",
|
||||
"electron-winstaller": "2.5.2"
|
||||
|
|
Ładowanie…
Reference in New Issue