From a49eeb0fda3e25281dd1ebcb03e52263b3aa8fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Thu, 8 Jan 2015 22:46:06 +0100 Subject: [PATCH 01/20] Prepare release on npmjs.org --- .editorconfig | 17 +++++++++++++++++ .gitignore | 23 +++++++++++++++++++++++ .npmignore | 10 ++++++++++ LICENSE | 22 ++++++++++++++++++++++ package.json | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 106 insertions(+) create mode 100644 .editorconfig create mode 100644 .npmignore create mode 100644 LICENSE create mode 100644 package.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..74d1b27 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +# Change these settings to your own preference +indent_style = tab +indent_size = 2 +tab_width = 2 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore index 45d62d8..8f3832d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,24 @@ *.sw? + +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Commenting this out is preferred by some people, see +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- +node_modules + +# Users Environment Variables +.lock-wscript diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..44fe7e4 --- /dev/null +++ b/.npmignore @@ -0,0 +1,10 @@ +.*.swp +._* +.DS_Store +.editorconfig +.git +.hg +.lock-wscript +.wafpickle-* +CVS +npm-debug.log diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94dc9f9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 André L. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/package.json b/package.json new file mode 100644 index 0000000..fa950ad --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "node-red-firebase", + "version": "0.1.0", + "description": "Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store.", + "main": "firebase_query.js", + "repository": { + "type": "git", + "url": "https://github.com/hovissimo/node-red-firebase.git" + }, + "keywords": [ + "node-red", + "node", + "firebase", + "real", + "time", + "socket" + ], + "node-red": { + "nodes": { + "firebase_modify": "firebase_modify.js", + "firebase_query": "firebase_query.js", + "firebase_watch": "firebase_watch.js" + } + }, + "author": "Hovis ", + "contributors": [ + "André Lademann " + ], + "license": "MIT", + "bugs": { + "url": "https://github.com/hovissimo/node-red-firebase/issues" + }, + "homepage": "https://github.com/hovissimo/node-red-firebase" +} From d322317a0422aeb19944bc99d3bc7943784d04d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Fri, 9 Jan 2015 19:29:39 +0100 Subject: [PATCH 02/20] Inital commit with credential input node --- .editorconfig | 11 ++++++++--- firebase_modify.html | 8 +++++++- firebase_query.html | 6 ++++++ firebase_server.html | 37 +++++++++++++++++++++++++++++++++++++ firebase_server.js | 17 +++++++++++++++++ firebase_watch.html | 6 ++++++ package.json | 15 +++++++++++---- 7 files changed, 92 insertions(+), 8 deletions(-) create mode 100644 firebase_server.html create mode 100644 firebase_server.js diff --git a/.editorconfig b/.editorconfig index 74d1b27..4df1318 100644 --- a/.editorconfig +++ b/.editorconfig @@ -4,11 +4,16 @@ root = true -[*] # Change these settings to your own preference -indent_style = tab +[*] +indent_style = space +indent_size = 4 +tab_width = 4 + +# Matches the exact files either package.json or .travis.yml +[{package.json,.travis.yml}] +indent_style = space indent_size = 2 -tab_width = 2 # We recommend you to keep these unchanged end_of_line = lf diff --git a/firebase_modify.html b/firebase_modify.html index de7ca04..ba61690 100644 --- a/firebase_modify.html +++ b/firebase_modify.html @@ -1,4 +1,9 @@ diff --git a/firebase_query.html b/firebase_query.html index c88bf0a..13f26e1 100644 --- a/firebase_query.html +++ b/firebase_query.html @@ -1,4 +1,9 @@ + + diff --git a/firebase_server.js b/firebase_server.js new file mode 100644 index 0000000..731053e --- /dev/null +++ b/firebase_server.js @@ -0,0 +1,17 @@ +module.exports = function (RED) { + "use strict"; + + // The Server Definition - this opens (and closes) the connection + function FirebaseServerNode(n) { + RED.nodes.createNode(this, n); + this.firebaseserver = n.firebaseserver; + } + + RED.nodes.registerType("firebase server", FirebaseServerNode, { + credentials: { + url: { type: "text" }, + email: { type: "text" }, + password: { type: "password" } + } + }); +} diff --git a/firebase_watch.html b/firebase_watch.html index ba80a0f..4c6ffa8 100644 --- a/firebase_watch.html +++ b/firebase_watch.html @@ -6,6 +6,11 @@ +
+ + +
+
@@ -39,6 +44,7 @@ category: 'firebase', // the palette category defaults: { // defines the editable properties of the node name: {value:""}, // along with default values. + firebaseserver: {type:"firebase server",required:true}, firebaseurl: {value:"", required:true}, }, color: "#B24317", diff --git a/package.json b/package.json index fa950ad..d93f2be 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "type": "git", "url": "https://github.com/hovissimo/node-red-firebase.git" }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, "keywords": [ "node-red", "node", @@ -23,12 +26,16 @@ } }, "author": "Hovis ", - "contributors": [ - "André Lademann " - ], + "contributors": [ + "André Lademann " + ], "license": "MIT", "bugs": { "url": "https://github.com/hovissimo/node-red-firebase/issues" }, - "homepage": "https://github.com/hovissimo/node-red-firebase" + "homepage": "https://github.com/hovissimo/node-red-firebase", + "dependencies": { + "firebase": "^2.1.0", + "firebase-login": "^0.1.2" + } } From a7162e3eb7906aeeeb997ca66047dad201a02bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Wed, 4 Mar 2015 23:02:05 +0100 Subject: [PATCH 03/20] Add email and custom login methods and status icon to firebase nodes --- README.md | 1 - firebase_login.html | 113 +++++++++++++++++++++++++++++++++ firebase_login.js | 144 +++++++++++++++++++++++++++++++++++++++++++ firebase_modify.html | 55 +++++++++-------- firebase_modify.js | 87 ++++++++++++++++---------- firebase_query.html | 36 +++++------ firebase_query.js | 44 +++++++++---- firebase_server.html | 37 ----------- firebase_server.js | 17 ----- firebase_watch.html | 28 ++++----- firebase_watch.js | 38 ++++++++---- package.json | 3 +- utility/status.js | 124 +++++++++++++++++++++++++++++++++++++ 13 files changed, 552 insertions(+), 175 deletions(-) create mode 100644 firebase_login.html create mode 100644 firebase_login.js delete mode 100644 firebase_server.html delete mode 100644 firebase_server.js create mode 100644 utility/status.js diff --git a/README.md b/README.md index 87d9945..8d614c4 100644 --- a/README.md +++ b/README.md @@ -24,4 +24,3 @@ It's easiest to see what's going on if you have the live Firebase view open in a Have questions? Found a bug? ----------------------------- Please submit issues to the Github issue tracker - diff --git a/firebase_login.html b/firebase_login.html new file mode 100644 index 0000000..a85459c --- /dev/null +++ b/firebase_login.html @@ -0,0 +1,113 @@ + + + diff --git a/firebase_login.js b/firebase_login.js new file mode 100644 index 0000000..e16404e --- /dev/null +++ b/firebase_login.js @@ -0,0 +1,144 @@ +module.exports = function (RED) { + 'use strict'; + + /** + * FirebaseLoginNode + * + * The Server Definition - this opens (and closes) the connection + * + * @param n + * @constructor + */ + function FirebaseLoginNode(n) { + + var Firebase, + node = this, + firebaseStatus = require('./utility/status'); + + RED.nodes.createNode(this, n); + + this.appid = n.appid; + this.type = n.type; + this.uid = n.uid; + this.email = n.email; + this.password = n.password; + this.secret = n.secret; + + Firebase = require('firebase'); + + // Retrieve the config node + this.server = RED.nodes.getNode(n.server); + + if (this.credentials + && this.credentials.appid + && this.credentials.type) { + + firebaseStatus.connecting(this); + + this.url = 'https://' + this.credentials.appid + '.firebaseio.com'; + global.refFirebase = new Firebase(this.url); + switch (this.credentials.type) { + case 'custom': + LoginTypeCustom(node, firebaseStatus); + break; + case 'email': + LoginTypeEmail(node); + break; + } + } + else { + this.error('Check your credentials! (Login node)'); + } + + } + + /** + * Fire base login via user and secret + * @constructor + * @return void + */ + function LoginTypeCustom(node) { + var FirebaseLoginCustom, + firebaseLoginCustom; + + FirebaseLoginCustom = require('firebase-login-custom'); + + node.log('Firebase login custom'); + + if (node.credentials.secret && + node.credentials.uid) { + node.data = { + uid: node.credentials.uid, + secret: node.credentials.secret + }; + + firebaseLoginCustom = new FirebaseLoginCustom(node.refFirebase, + { + uid: node.data.uid + }, + { + secret: node.data.secret + }, + function (error) { + if (error !== null) { + node.error('Login error with custom login'); + node.error(error); + } else { + node.log('Login successful'); + } + } + ); + } else { + node.error('Check your secret!'); + } + } + + /** + * Fire base login via password and email + * @constructor + * @return void + */ + function LoginTypeEmail(node) { + var FirebaseLoginEmail, + firebaseLoginEmail; + + FirebaseLoginEmail = require('firebase-login-email'); + + node.log('Firebase login email'); + + if (node.credentials.email && + node.credentials.password) { + + node.data = { + email: node.credentials.email, + password: node.credentials.password + }; + + firebaseLoginEmail = new FirebaseLoginEmail( + global.refFirebase, + node.data, + function (error) { + if (error !== null) { + node.error('Login error with custom login'); + node.error(error); + } else { + node.log('Login successful'); + } + } + ); + } else { + node.error('Check your email credentials!'); + } + } + + RED.nodes.registerType('firebase login', FirebaseLoginNode, { + credentials: { + appid: {type: 'text'}, + type: {type: 'text'}, + uid: {type: 'text'}, + email: {type: 'text'}, + password: {type: 'password'}, + secret: {type: 'text'} + } + }); +}; diff --git a/firebase_modify.html b/firebase_modify.html index ba61690..e948cbe 100644 --- a/firebase_modify.html +++ b/firebase_modify.html @@ -1,12 +1,12 @@ diff --git a/firebase_modify.js b/firebase_modify.js index 843cf5e..7bf1894 100644 --- a/firebase_modify.js +++ b/firebase_modify.js @@ -1,40 +1,59 @@ -module.exports = function(RED) { - "use strict"; - var Firebase = require("firebase"); +module.exports = function (RED) { + 'use strict'; function FirebaseModify(n) { - RED.nodes.createNode(this,n); - this.firebaseurl = n.firebaseurl; + var Firebase = require('firebase'), + firebaseStatus = require('./utility/status'); + + RED.nodes.createNode(this, n); + this.child = n.child; + this.credentials = RED.nodes.getNode(n.firebaselogin).credentials; + this.firebasepath = n.firebasepath; this.method = n.method; - this.firebase = new Firebase(this.firebaseurl); - - switch (this.method) { - case "set": - case "update": - case "push": - // To prevent code repetition, call the Firebase API function based on method directly - this.on('input', function(msg) { - // get path from msg or default to / - var childpath = (this.child) ? msg[this.child] : ""; - // make sure the path starts with / - childpath = (childpath.indexOf("/") == 0) ? childpath : "/" + childpath; - - this.firebase.child(childpath)[this.method](msg.payload); - }); - break; - case "remove": - // Remove method expects first argument to be a function, so we call it differently - this.on('input', function(msg) { - // get path from msg or default to / - var childpath = (this.child) ? msg[this.child] : ""; - // make sure the path starts with / - childpath = (childpath.indexOf("/") == 0) ? childpath : "/" + childpath; - - this.firebase.child(childpath)[this.method](); - }); - break; + + // Status + firebaseStatus.connecting(this); + + // Retrieve the config node + if (!this.credentials.appid) { + firebaseStatus.error(this, 'Check credentials!'); + this.error('You need to setup Firebase credentials!'); + } else { + this.firebaseurl = 'https://' + this.credentials.appid + '.firebaseio.com/' + this.firebasepath; + this.firebase = new Firebase(this.firebaseurl); + + // Status + firebaseStatus.checkStatus(this); + + switch (this.method) { + case 'set': + case 'update': + case 'push': + // To prevent code repetition, call the Firebase API function based on method directly + this.on('input', function (msg) { + // get path from msg or default to / + var childpath = (this.child) ? msg[this.child] : ''; + // make sure the path starts with / + childpath = (childpath.indexOf('/') == 0) ? childpath : '/' + childpath; + + this.firebase.child(childpath)[this.method](msg.payload); + }); + break; + case 'remove': + // Remove method expects first argument to be a function, so we call it differently + this.on('input', function (msg) { + // get path from msg or default to / + var childpath = (this.child) ? msg[this.child] : ''; + // make sure the path starts with / + childpath = (childpath.indexOf('/') == 0) ? childpath : '/' + childpath; + + this.firebase.child(childpath)[this.method](); + }); + break; + } } } - RED.nodes.registerType("firebase modify", FirebaseModify); -} + + RED.nodes.registerType('firebase modify', FirebaseModify); +}; diff --git a/firebase_query.html b/firebase_query.html index 13f26e1..a3e2599 100644 --- a/firebase_query.html +++ b/firebase_query.html @@ -1,12 +1,12 @@ diff --git a/firebase_query.js b/firebase_query.js index 4b0c509..36ff40a 100644 --- a/firebase_query.js +++ b/firebase_query.js @@ -1,25 +1,43 @@ -module.exports = function(RED) { - "use strict"; - var Firebase = require("firebase"); +module.exports = function (RED) { + 'use strict'; function sendMessageFromSnapshot(msg, snapshot) { msg.href = snapshot.ref().toString(); msg.payload = snapshot.val(); this.send(msg); } + function FirebaseQuery(n) { - RED.nodes.createNode(this,n); + var Firebase = require('firebase'), + firebaseStatus = require('./utility/status'); + + RED.nodes.createNode(this, n); - this.firebaseurl = n.firebaseurl; this.child = n.child; - this.firebase = new Firebase(this.firebaseurl); + this.credentials = RED.nodes.getNode(n.firebaselogin).credentials; + this.firebasepath = n.firebasepath; + + // Status + firebaseStatus.connecting(this); - this.on('input', function(msg) { - var childpath = (this.child) ? String(msg[this.child]) : ""; // get path from msg or default to / - childpath = (childpath.indexOf("/") == 0) ? childpath : "/" + childpath; // make sure the path starts with / + // Check credentials + if (!this.credentials.appid) { + firebaseStatus.error(this, 'Check credentials! (Query)'); + } else { + this.firebaseurl = 'https://' + this.credentials.appid + '.firebaseio.com/' + this.firebasepath; + this.firebase = new Firebase(this.firebaseurl); - this.firebase.child(childpath).once('value', sendMessageFromSnapshot.bind(this, msg)); - }); + // Status + firebaseStatus.checkStatus(this); + + // Add listener + this.on('input', function (msg) { + var childpath = (this.child) ? String(msg[this.child]) : ''; // get path from msg or default to + childpath = (childpath.indexOf('/') == 0) ? childpath : '/' + childpath; // make sure the path starts with + this.firebase.child(childpath).once('value', sendMessageFromSnapshot.bind(this, msg)); + }); + } } - RED.nodes.registerType("firebase query", FirebaseQuery); -} + + RED.nodes.registerType('firebase query', FirebaseQuery); +}; diff --git a/firebase_server.html b/firebase_server.html deleted file mode 100644 index 74f9931..0000000 --- a/firebase_server.html +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/firebase_server.js b/firebase_server.js deleted file mode 100644 index 731053e..0000000 --- a/firebase_server.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = function (RED) { - "use strict"; - - // The Server Definition - this opens (and closes) the connection - function FirebaseServerNode(n) { - RED.nodes.createNode(this, n); - this.firebaseserver = n.firebaseserver; - } - - RED.nodes.registerType("firebase server", FirebaseServerNode, { - credentials: { - url: { type: "text" }, - email: { type: "text" }, - password: { type: "password" } - } - }); -} diff --git a/firebase_watch.html b/firebase_watch.html index 4c6ffa8..9057325 100644 --- a/firebase_watch.html +++ b/firebase_watch.html @@ -1,19 +1,13 @@ diff --git a/firebase_watch.js b/firebase_watch.js index 749b018..da2b4c6 100644 --- a/firebase_watch.js +++ b/firebase_watch.js @@ -1,6 +1,5 @@ module.exports = function(RED) { - "use strict"; - var Firebase = require("firebase"); + 'use strict'; function sendMessageFromSnapshot(snapshot) { var msg = {}; @@ -10,18 +9,35 @@ module.exports = function(RED) { } function FirebaseWatch(n) { + var Firebase = require('firebase'), + firebaseStatus = require('./utility/status'); + RED.nodes.createNode(this,n); - this.firebaseurl = n.firebaseurl; - this.firebase = new Firebase(this.firebaseurl); + this.credentials = RED.nodes.getNode(n.firebaselogin).credentials; this.onValue = sendMessageFromSnapshot.bind(this); + this.firebasepath = n.firebasepath; + + // Status + firebaseStatus.connecting(this); + + // Check credentials + if (!this.credentials.appid) { + firebaseStatus.error(this,'Check credentials!'); + this.error('You need to setup Firebase credentials!'); + } else { + this.firebaseurl = 'https://' + this.credentials.appid + '.firebaseio.com/' + this.firebasepath; + this.firebase = new Firebase(this.firebaseurl); - this.firebase.on("value", this.onValue); + // Status + firebaseStatus.checkStatus(this); - this.on('close', function() { - // We need to unbind our callback, or we'll get duplicate messages when we redeploy - this.firebase.off("value", this.onValue); - }); + this.firebase.on('value', this.onValue); + this.on('close', function() { + // We need to unbind our callback, or we'll get duplicate messages when we redeploy + this.firebase.off('value', this.onValue); + }); + } } - RED.nodes.registerType("firebase watch", FirebaseWatch); -} + RED.nodes.registerType('firebase watch', FirebaseWatch); +}; diff --git a/package.json b/package.json index d93f2be..7f11795 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "homepage": "https://github.com/hovissimo/node-red-firebase", "dependencies": { "firebase": "^2.1.0", - "firebase-login": "^0.1.2" + "firebase-login-custom": "0.0.4", + "firebase-login-email": "^0.0.4" } } diff --git a/utility/status.js b/utility/status.js new file mode 100644 index 0000000..c276cbe --- /dev/null +++ b/utility/status.js @@ -0,0 +1,124 @@ +/** + * Status + * + * @type {{offline: Function, connecting: Function, connected: Function, error: Function, addListener: Function}} + */ +module.exports = { + + /** + * Status offline + * + * @param node + */ + offline: function (node) { + node.status({ + fill: 'gray', + shape: 'ring', + text: 'disconnected' + } + ); + }, + + /** + * Status connecting + * + * @param node + */ + connecting: function (node) { + node.status({ + fill: 'grey', + shape: 'ring', + text: 'connecting' + } + ); + }, + + /** + * Status connected + * + * @param node + */ + connected: function (node) { + node.status({ + fill: 'green', + shape: 'dot', + text: 'connected' + } + ); + }, + + /** + * Status error + * + * @param node + * @param msg + */ + error: function (node, msg) { + node.status({ + fill: 'red', + shape: 'ring', + text: msg || 'connection failed' + } + ); + }, + + /** + * AddEventListener + * + * @param node + */ + addListener: function (node) { + + var self = this; + + global.refFirebase.onAuth(function(authData) { + if (authData) { + self.connected(node); + } else { + self.error(node); + } + }); + + global.refFirebase.offAuth(function(authData) { + if (authData) { + self.connected(node); + } else { + self.offline(node); + } + }); + }, + + /** + * AddEventListener + * + * @param node + */ + checkStatus: function (node) { + + var authData, + self = this; + + node.firebase.onAuth(function(authData) { + if (authData) { + self.connected(node); + } else { + self.error(node); + } + }); + + node.firebase.offAuth(function(authData) { + if (authData) { + self.connected(node); + } else { + self.offline(node); + } + }); + + authData = node.firebase.getAuth(); + if (authData) { + self.connected(node); + } else { + self.offline(node); + } + } +}; From 07426d2a7eb6092c27542d94da9b96c5117e1d08 Mon Sep 17 00:00:00 2001 From: vergissberlin Date: Thu, 6 Aug 2015 22:58:31 +0200 Subject: [PATCH 04/20] Upgrade all dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7f11795..5b464e4 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/hovissimo/node-red-firebase", "dependencies": { - "firebase": "^2.1.0", + "firebase": "^2.2.9", "firebase-login-custom": "0.0.4", "firebase-login-email": "^0.0.4" } From 75b50b5f6557db5edfd2d3eefcbe375457858422 Mon Sep 17 00:00:00 2001 From: vergissberlin Date: Sun, 23 Aug 2015 15:56:43 +0200 Subject: [PATCH 05/20] Improve README --- .gitignore | 2 + .npmignore | 2 + README.md | 72 +++++++++++++++++++++++++++-------- docs/node-modify-200.png | Bin 0 -> 9434 bytes docs/node-modify-300.png | Bin 0 -> 15215 bytes docs/node-modify-500.png | Bin 0 -> 28865 bytes docs/node-query-200.png | Bin 0 -> 9681 bytes docs/node-query-300.png | Bin 0 -> 15481 bytes docs/node-query-500.png | Bin 0 -> 29279 bytes docs/node-watch-200.png | Bin 0 -> 8808 bytes docs/node-watch-300.png | Bin 0 -> 14103 bytes docs/node-watch-500.png | Bin 0 -> 26497 bytes docs/settings-modify-500.png | Bin 0 -> 22764 bytes 13 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 docs/node-modify-200.png create mode 100644 docs/node-modify-300.png create mode 100644 docs/node-modify-500.png create mode 100644 docs/node-query-200.png create mode 100644 docs/node-query-300.png create mode 100644 docs/node-query-500.png create mode 100644 docs/node-watch-200.png create mode 100644 docs/node-watch-300.png create mode 100644 docs/node-watch-500.png create mode 100644 docs/settings-modify-500.png diff --git a/.gitignore b/.gitignore index 8f3832d..9af6309 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +/dev + *.sw? # Logs diff --git a/.npmignore b/.npmignore index 44fe7e4..f856fae 100644 --- a/.npmignore +++ b/.npmignore @@ -3,8 +3,10 @@ .DS_Store .editorconfig .git +.gitignore .hg .lock-wscript .wafpickle-* CVS npm-debug.log +/docs diff --git a/README.md b/README.md index 8d614c4..fad63cd 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,68 @@ # Firebase nodes for Node-RED -Check it out! Now you can access your Firebase data with Node-RED! + +[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase.svg)](https://github.com/vergissberlin/node-red-contrib-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +--- + +Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store. -Installing node-red-firebase ----------------------------- - npm install firebase - cd nodes/ - git clone https://github.com/hovissimo/node-red-firebase +![Inline docs](docs/node-watch-200.png) ![Inline docs](docs/node-query-200.png) ![Inline docs](docs/node-modify-200.png) + + +## Dedicated to + +**If you are using** + +- the fantastic program [Node-RED](http://nodered.org), +- and you wanna interact with [Firebase API](https://www.firebase.com) [1](#glossary), + +**that node is made for you!** + +--- + +## Features + +1. **Modify node** + - [SET](https://www.firebase.com/docs/web/api/firebase/set.html), [PUSH](https://www.firebase.com/docs/web/api/firebase/push.html), [UPDATE](https://www.firebase.com/docs/web/api/firebase/update.html), [REMOVE](https://www.firebase.com/docs/web/api/firebase/remove.html) record +2. **Watch node** + - Watch [on changes](https://www.firebase.com/docs/web/api/query/on.html) _Firebase_ API childs and send content to the output of the node +3. **Query node** + - Query to a value of a Firebase node + +## Installation -Check out the demo flows ------------------------ -To see the Firebase nodes in action, you can start Node-RED with + cd ~/.node-red + npm install node-red-contrib-firebase + node-red -v - node red nodes/node-red-firebase/demo_flows.json - +Open your *Node-RED* Frontend and you will find the new node under the group *output*. **Happy wiring!** -Note: You'll need to register your own Firebase account, and edit all of the Firebase nodes to use your personal Firebase URL. + +## Demo +Check out the demo flows to see the Firebase nodes in action, you can start Node-RED with + + node-red node_modules/node-red-contrib-firebase/demo_flows.json It's easiest to see what's going on if you have the live Firebase view open in another browser window while you interact with the flows. -Have questions? Found a bug? ------------------------------ -Please submit issues to the Github issue tracker + +## Bugs, questions, contribute +- **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-contrib-firebase/issues). +- **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me +- **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-contrib-firebase#fork-destination-box) an send me an pull request. + + + + +--- +**Glossary ** + +1. *[PM2](https://github.com/Unitech/pm2) Firebase is a cloud services provider and backend as a service company based in San Francisco, California. The company makes a number of products for software developers building mobile or web applications.* + + + + + diff --git a/docs/node-modify-200.png b/docs/node-modify-200.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb68377ea6b6c4b1b137aeb4a2829af9be7db3f GIT binary patch literal 9434 zcmaKSbyOVB)-4bqI6(sh88k3qaGfB*8GK-n5Zv9}-Q6X)h2ZY)5IndCx8T9yk^9}> z{oWt%zFw=ls(S6c `@t7@I=h@`0EOF8&*^PnKVJR64_f?o<^ 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 literal 0 HcmV?d00001 diff --git a/docs/node-modify-300.png b/docs/node-modify-300.png new file mode 100644 index 0000000000000000000000000000000000000000..541e35faae74aa08b5eb3913406bfb0c72ae9857 GIT binary patch literal 15215 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 H!=V2MJ@}QH literal 0 HcmV?d00001 diff --git a/docs/node-modify-500.png b/docs/node-modify-500.png new file mode 100644 index 0000000000000000000000000000000000000000..afe442ddf6fd5ed700d3ff9286bfdf27c66b008d GIT binary patch literal 28865 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 HgP{Kd;KCXD literal 0 HcmV?d00001 diff --git a/docs/node-query-500.png b/docs/node-query-500.png new file mode 100644 index 0000000000000000000000000000000000000000..aca2f5d27e703f500dafbccf8723563f8d1a750c GIT binary patch literal 29279 zcmaI6V|-;z(=Qy`_GDt)wr$(CZDTUAt%+?X6WivFF|pswb=~)K-Vf(F`@`D3)~~9% zs_WlfUELL_ASVtFg98Hu1OzWBA)*8X1bp|^j)j8wdJ4uwuz&qwyNGJIDBGL4xEnf| z0tuSf8<`SH+8UahDw!IZcsh=n@&EyW5?QKfxM;}Aa2ea%(i#4xq4ThH_~Hfv;^Fsj zFf_I{bs;n|HMg|mCA#Y9AtJOi;U!XMm1U515H_{2l<;ygRrZooG4`@H<}@MV=Og6t z;QA6^YwBW1=wWMP=gj57OZ1OiuCMmr&-6ru|B$#?^Ai25l!mMVp|HJ^DIqHz1FbOw z8v`L5BON0%3p+bI4IvW)BLh7H6FnmnEh9S@GZPmB1L1#uL|?r*nV4}YiHQBDudg>= zA`2H62QGSgcXxL>cV;?!Cv$p6PEO9hGMJcXzbI&(J?&f!J!tKmiT^7>#MIf?$5f5h53|7V!K28`ar(1D(jj^VFK|0R@_{eP3%+Wrr< zvx}1H|IzpVD%e@Y)4`Np$<*22)yeqFac0DSyK>+Xb}}_|v3F9jx3~H4C@NUkyVyHh z*gFskE3*>H8X8;L{eAz3URIV%($3k%(9YOYQiPZ2O9Gvxr3n`k3nLo~n=mU2BL^EJ zqbMsU8waBZg9tl28;c;TFca&4c}47vU2RS6T>i^z@_%^Q{#V|=P_T9Q>RH6p$-x`QLS6`CobIzm%c>>)8LFqyPKq3q60E{{!2vm;V92 zsofXaoxWg=HMjl?2*_?;QbbV2W9_^PGL3XqmFy|pmrcK2N?mhH-PN^8y=6@*c7b*t zDj~#RW{Tk&IM@v<(h&KV!E@LUGdF}8a9wRf#{?mSVMwB&(s+}WmHOslNkx0RObYwS zR>e4<<~U+f~1vmdkw`pA{wsOTv1GZoIp8Mlu zZG9Hq;eJI|^@y8aof?LMWexU%h^oPV?x{x)+~s|Ls_JQEWCR=NU1O?=4|c=}VXa0G z1R3!y#AG0N`KeYC*2h4Tb7s$-Jw?MP(p1hMH=4w=;jKD6B?Zdkwpm8tw_1n@vflYG zwaVAw;ow~vYSj=H4b0|I%_N39Q?|J@T#@W`Kv=e~7Fo8Vx+pAS`qKhc`>kZkmQ>aX0;|E( zPw})6O?&(wkw${}$Y?RLiUkMqrV#v$jCD!CxwXeVh;VQ`-hgcPkGG{NZE+~?b5>7T zYfFUpv1Dqd_pZ?1*HpZbX9`yfE{NT)arjcrt|(+l_XTgQ$$Ht}e|>%H!JC$rR(%PF zZ`3*;d4m${m^a1L_eVqOIpYDA6GfwYs zV`XI}40jBVFG~1P9T^$tD$IM*T1GJ&W!o+mtjaY)r!*3U&0 zP)&BUd4;9#zQZlvwXQm;`CPqn;d?`C_TBDjZ34>feFa3Mf5P~haX#1wY5@hdf+UC) zr42KTq_DyTzF`Od8fWqV%|9Hrz}m~ zAj;|ov>7eWq~N8R%4_ibzI!Okyy9U}XJ zHD76n(ei@}PP{5_9U*Y5P~yaW(yUmXV+_)OQ`0G$(As~myNYuDfYnJQnXL61^gEwYK-N($2*A3WQ zi=TVwP+awc+z=Vd-8xjPSiP$Sj7C+sed};IM6I&#_B`ng1od~H2jLn?N6mAWlau@K zY17%7bVhVuVF-9PDX(1QH+uvP( zTKab<=j(5R(f$q+%6KfMW+;G5Lf0o!U=zbr@)vyOPPx`Rrz?mv;4oGHBYA6UtLNDU8QNP<=%8C*nR-?kR&amUJ3prWw9EboWt=k zG5rbr3Rq{=zON5m^?zObiOmhPoDpa zl3%7J)iC|poX<3K06kC+%&~K51ui}R_xo+V*v2EPVkOPGVD7kvN*%iG$hN57R=PRN zErGqc@xCn2iHUy~X3ev_YT;@*BF__!a}|u?Vcv$rkW`q^{+#`hcz&nroj!AQw3+E# z{vM`fsfo}9NBj?WOwBDBx+)ll9IZLz4DL`Snv%N(NB?UO@4U+@l`ySr|M}KhV+^}I zue^+m4HiEB#Y(N=z*7{^i&WZ1`EJ(8!>nc#wh^Fw7dD~t85{a$8Bk@juvEg|WiVv@ z=Ur*~JNTz$;>DaR0sp@y76$<(s#HcTBr8)~v}O+Pr{5k64lj5^&s-4+e7-~hapC(s z*U0{8)=X)td46j<@NS9MEkP(lYNb9y=`|g#3@p2lV&H)$`+oA1)VM#9!A>fz_GBL7 zPos*i9?2T!o|<?vxLkUA^r-og)TBiXu= zoWt}@y>=zcqR zPU^9v=_2pH4c@O8BOm=Joj6OhbqaXe{UzpsMXx|3<#G*Ti4DNI=f$S2h>-<5?ogs~ zE7pB+Nl-11E!cEio%=_*GvhiYl77}93R%R7N}AKtT%|vTBifl83EHKj1Y|VWHJIpl zqo}y#NZ*>?+HA~PD)1(3$B}^aNZWOaudsVvWyQ3`g!R=yw7p%=S9AJ?1Tpn}+#&>4 z1f|8qn99FrD|}BH?k%~U8IOg1zzP}WnYL4rRjFj7gd~tjij&t8Dq|2x`yiz#k}Qkr zp@^cvC@)EvK~XFib2;BPg%%$dFxTsA4vFE`*4apQoe}FL$lUwKx7DaTV9jmpzo0Aj z7uH`_6Js?A8zl4&l4n>*JYV*f6Rwl%DPMm7jIx)bXf=`e&5b0(i+=)Pb^!M)i8MT| zHRRz}*!wzatFt_g`-SXYZyd>sm&ySbdgC!AkN3(Tv3qH4F?nD!2J~u7l!;Vu5pvl$ zjB7aAFZ7(!8Ao)Z6&RWU!MZ)9-f;@lR(W(8v?zpO@o}u|G9!z|pu`)h;SxBsKM+zy ziYv{`XU<2Nd+!A1%-7 zw@|>Yyef$ft7;YnwTFIbEZ=4zdgjhQK3U2xJ89HM3kA-^<}~*-4x7sDjO_t1mBIb_ z*r@4X`t=SGC1x;%V4sVxbR(u1gbSqCbqG?Xri)fVV7EOR6yMDrjmSe{d}aosKSZ=+ zcE$1X>!tVnJDBx@REw_`4U+1;^c6C7&7_CNxpFTI(3S8=f=;L7%1~-9{qEo@Q8hv) zAF6qDz{QUsQ)r766G;u&C%;ykIQK3bi&r(D@*^E`*1GVBZJ}d04?C%T2H@BDJD~L+ zan}d`NfGdYy)+7w1G!ilU}K<{gm1lrR*0@p2j>>MwIA^X4D?(~ee6VrkU^YTnI7>B z3J4dHL{{ga;d7t*+}Hi^@ zf6=@@-N4;X`L$aHcH-Ec8V1q?@?0PyfsF9~vGSr1XZe)s8@M7gU73_GMcLevjbyJgpfm>7}hmfYv0RUf?lW;MJ*&oKPaU+ z-^%C}=dVSd?q&?l&oAe)f4J5=sHbdfDVjUjN|zdc(Ahhb%*@7gTS78IHb!(@6ZbJP+?%knapBQGz3O%gY3rw|_`~bp!VnC*FY_Be?7w50xf;$tR9-}E*J0~Q3R(5U z0{No81>6$W)YQ5{k`syPW-whteqK?&J@X^%Y&3!387;Q&F`FX@GRyF9ZLn9eH)TeA z!VicQTN%czu^YS|xyk=Xl%hDckvAAALA&gxjUKs@-xdCLC8S8Tzj~E&v#if_-2{;S zooZ|JR4*a7{|N0+QDk5~hO8FNkwyEDSIEHbD9X;-r!3ExTp>M(>ZH0*@q#^*1?r^? zKI^{y-tpcRT~0HnZrk%Ng@hWpw8OI_1OLSd##io3Khw^cM%?0S@0O^|`@1J2MS*VZ zDRkQpKKCQqSb`kA(TsIB0?T$;NF*y0uw*GqObRsm+ZDMMF<#AKR|{L;-w@CL4wLF~ zEq7@8Ljz&^@tuIcKRnd`%?G0Ah8!YH4Bjf3#?T}!m_i6~W&)W&Y)1E^k4alS zD66)fb*ccO|(9dJ^hS2>!#-Zm^ z6{62QAD86|?ee*qVh!J3R%<-|zXqQ(A=$Lmz8m*Of~`P+|~l$hb z2R#33&Pofz9~PQtdDYN1^^a{R8|Bkj0&+~|Xt(rU=_&^2r3G`d1JSc1FPhV|5|8SZ zgR*y%e1q-V{LEe%vu!%TfmsfS!}r_Z>^#YVDg>6nZP{Fm<$ua{-(CKQ2VDQbRac}@ z9eO-pA%l!GAkoYyd?i7CrCT6ehIHhHqCU7vdnaebrd-uY7#s;L0x0d7~K6QGq9qLZI{;V>~)Dw4eC zm|wHPg11;*%N3C#HK^uFsDB?cg7-Koa&Ryvo3c$2+7ENkQxAHjfJJhLO@;pHnwRWX zdHmhd>_~1<39AN~9e6`<*V7lVp3im#eH z&CV%Y+C@2`%7<-W1{(-uBgKSCx-(ev8MBxVYgG>3($SwqZQa}usk7+K`6sxCk=)dg za1p=Qxf1p%LN$yuPhZVacgWThHb2-nykOKu%wD)94Yp1}TWA)QR~cs0=6SL*f7iMk zjwOHN@c(#&%ru};DqldN#kAzyT3h2191nfH?6`VNMV;Y>`t9GXRn?ukbcKh5gMvH2 zROw8TJPRo3|DhQ=r{f%uWEGfXc`sP&&mQy9C86s9pPn==R4s#2TdH<&bko@&wY->P zxbD!2;NBYu5t_8AmO)* zp~CTv=f1F_peA#?y2MJjA@?U4!v&PGyh5)iA+32UG*!D~zUTJ{Z}VxkDa2mUHCyVv zTqLu>$TtW*1N}!4MJzcV=6N!t@mLHsM%Gcm*+qvj$wa#n?foyYmtv%jb`CJvl2GQ`Fi5HRgKfCOka@82U-)C z)--}LZgZ7w-EVgx?g@A=d$O3G8!}~Vy8~;M^;eZ`_ zj*d@eBG4tItmesrNMmU zTHH!eXptWhZIRt7q8owtw9C@D73d;tcMBF^Pecb-AAcj;wQcP!l}J08NV4-;w;@1S zGxP2{F0(IM7#g5c4!U=ZV5L|({#%z7G>?A%mf5i68itk|4Kd%X&_{fP8 zIf2Aau-X>MX8YL44&D@v!CH+?7pS52Enw|{HfHiGO;ZDakVU=idPn!mV$Fv-$W!h{ zm-i#)5ts{GC2GVcT;Q|(SMqEPIZ13w(tJsY1Jl9_(#8^c*LF3t{e4EyzSOgp7yKE8 z(X2&*`9#`j0j^pm*o)R$XF-Kde8mguAOgq-Xu}EWZFfP?!N-C?!Hn z2*3*Ik6EYb))L9eX$+{D_y z84@L8t=5~4N4o}09m=mxOf}{Ryd{o~j{3{yMur+aI~_UeYb>%!dLXrrvP6Y%L9_Bl z3?5UqTDgrPq2;KOCN$Avs)w!8OqFZ#_Dr<_xH~+ZkX8=G0@Wh}T2UB##F=_RN*)t< z!@=c?e)|#W+FZ9R7X|8}BGp`+O?LMz#Qc^PR0bh$BNGHPkLO(0S#MZV=e=Ke zU0YutXBGJN?HeW}5mnF4*Zo_M6_(hxPn^9EGT2MODGoK*FF2i+rr@~I^_$O!p=|fIuc7tYMjoZ#H zAV>6jvPXzgHV6yFKGI`(P9DSG{=};Qs}V~(7_08t0l46D%(hwsOnL<%A#x6Srf9v9 zDPp*-=*s$E8OL`#Xix^96)TbK7ezn@ZGBq(Ip?az+adG2vAR`i-9H!(U@*!HK0v=^Ej6DjYks>1Y@^T9s^k2wG0d_Xpvm*+hd+>&u z=qQ~$ciutU*K6E6c7ocs)M)!zXU``jyInbCbTbRc_5Wbse(ZjHU&qOlmzBK%o=cWG zB!}MkmVr3&JUD8C@^w^9I4SUpKHQW~1?B5-M@&qNfr|@=&F3MyUPgs&JM3UlSpt!V z+AfTowu&~N*dyw4`lbPa4&HL51D7a6@25mEX-@%8f9FNuXtqCP<@_1zwD+j|BNgTR zC}dFpGBK1U>MtE=pq@TxJ3;uI(EjjWyhfollhfi4)%;01w@%{k)5e;DyB&I@Lsyl_ zZdndLB-m;#$$_@Te~@leVa`;-xU(aN4S%;`9zrZXSA@GmzP=&{-)T)8R*tE2?-rimyjomc#1pQ`?!!~e)3}m$glnw^vHd2xzSIVQ!$OgPWOW{@{Ijb|EE__CIpDD?>jFHtn zuiO!gSM^TGYS?NktaJsSv{%%`#f z4Y8bqxOPneH~S;}1Rz|mU8ZGq-@aeu`Li(~;>z;(+qP_mrKDguGQxE?+eS|xYCLHO zuHbojc{z;WyGO`x@rlb1oF0d+cC4F^<#ZiS{XCPw-hgJ~dsT%UssoEHOJq6*nK-lz zBdDrZqh3K_?Gk@X4z_XpbC=cjOHSQHd&c>@ENIh$2=a9X>ci0zR87v1v>twMM+E-9 z8t6>T8nn;+@2HPd9D(#$Px<0Mt>lVG)3Hq=V%m!&>js@rqpkbwwng#?GS<2@`?4g@^M%7_mX^W@V{BII;`y;V(@h>9ANRMs zufR+Fv!yK!=3iG@OSb1RT!S;!sBbcxOB`L0{@6pa_@k@2VT8l)XEbpO(_ z!gV-#w?%yuPn-#BLVEe&9v1w{OXgc7k>Y3Z4=(!WP(582{Tjb6Hye45&zssyk9h=7 zpV105^B8T(UGn?N!5Db?jK0Wc`v;*OWqK%q?wmGT{+c|JmB-ileT&2m>=EOVkD&Bn zaBlSNTMav4H@iMb_rk^txz_R&&8{_UcQ0@6y01MV!|ZsJv3^924YUEsBoIGl135;| z?VrPO`AACOd6ui<B!0AX)S6eg$f4w zg0Fk~k|`Cq;Ip5&$eoD;p3a1CGR%G#OQF4!vZHGh0QQ}Zn$n^3a23e zHx%KkLd=02bpJG!`ti9Ud_H3v1Sb9ScV-@+JT#`_o^4vwe!6jNJUHhFxn zx`tKm%t@G~&eL}}%zDEC2p4yE*u#Q!^u9+GnSQ%7*wY01nCa_97YaJN@rg#IQYDxv zed>LHpF1A89q_Bl#zHpn5S+2t@y|8%(z@)gPPxd zm#)$`#&d@huW@NdrftA6U0#5uncJ)?n5=nS=(*mpKQ5!HyVn@^()v5T5g}EfqVuGi zx5+4~;f%YxxZ5^;xo^p#HC-w~Y$rm?Ce>Kcwl0x~2Y5INog5gxq$`~8OZFL>I?jvO zR9N!fJSkLp*$@uq;9(B_PT(Ft(ZT|ajKms2wJkYrCUR0x;N){2HFTar2QG1(5&!u3 z59zM?yh-7=l+X{*y9_u@$`Q#w8V02llt!5F@hmP-t^P*NJ2Jubt@uv0j$K_(0v^4d zf%Xh?S~F5~i%m2#)L2FY*%KaJq!QbPBZj|N<0IkCo0V1IcN3pzF~@JXt$LzW{kV$E zhxeoAoFxe+dmu*>-YA=}je1zKp-EdsR+%bPbCq)+VSh3f%!O<*ztDquZ*m=Oz=9Sd z+FQj45V?9Z<+)qS(p`%SeN1EXeWwj>)pr4-6>Gp-!5dnNNzirQLG?{j`A611Fl_{i~I@&conDL zgo~4$yWA-yw1_Jz+63<#IGv!T-K6m>y+{;6k>pPc#zq#$3G{f*_nh^aZ>liIv8dB5 z#vOP_c^j+se-iX)k1)_))I+-?R8P@76iZRZX_vPf*Dk*iR7Hg=C4tdJ)8`G2@aotODKeAt zd=`#u%8vMYM2?68g^L)^EYFG+!{8nmejR$C4f^T;A#cgfOGG>`mvxD|8{DZ zzCJs!5;qP_1&>yy;r2w%NL~!&RSmwlK9c{v6834XMa*&JLv5q21^xBW)!=GM?fk0- zNGuLW57B7$8QftLs@(0JsU!@W;v3k3SD4rXS{3;lhdYEL`892g=kX-)+N4sObRfBQ z6o%ZxfW4k({}8Nc=ZhM4cs$zmMx|({XLFFxP*4ey1Ec|gmh+0>HOc$YVrNwN8qMId zX^J|B`YXCosJi9OL($6?Ygvo?Ea5gCHZ_;RpQnRH=uARvf$Ug0iPVKJFxd-s=9+DmuWXjOP<7>L5Ni?hBD~_D1pC!eMmRr#XV56FhABT_t@#F=W3ud{J-?$WJJF;MP? zzB1rc*&=)vq$?t~DFX`+YW|=1DA8Z{`bOmyKw-!4Jp#5qA!~-7x9L~9eI`lpGKuN? zO7wmF)h#w7hkjjti2WK z@wX9W(B*S92z=Q__2@eeY7EFbrgn7Y0}+kwy-D2R{i=KzRoKzzf;|k3#MiZChh#B% z+JgHh1G-(z&kOFE)$~Df{}br~f#{N1q28&COq%)uNs6C=k-(th^2tz{^pH1$epG`OJ^6F@Lw9i`dVz} zj%Xp1qXLbF#M<_L1St;hlm(6llj^jq^$$^t>fn+>s!WJ_Fd0mI;lUGD7>_i z(-1l0l3kk+E^~w16joamwN&zEj(EG?k6&!WFw_Q<5xq_-SyOH?rq*9iTv!4(3+Q70owY z6V3Bb0jD}|nLWu|&!G5H;zf|g%X9l?+Ie@11fSMya8M3s*;Ry9#uDTdk>=3qpeW6K z%mufWWAIRN(p#nh){Typ!UBJ+iVDG+DcJExxZ zdGZ`h5L&I#@)(s_hM#^*b6#v_1iAMsW&-fMWT>w|&+zG=A}PaWs36MW#rH_Fg6(e< zy=eaNh?i6{nbOVz<&T^nbmKI&d(tLl;Qr(d^ip5yhZxF2U3jhG0hdpk8GxEU?ouwhI4`~C+T@1Vn(6PK#$x_tUij$pvYai$ zEve)(CzZ&rROeddv@aAB5nx@q*zklqZUHJ2*B8%WmOqBsdOgs4p{C8cpaGePEQjG* zSDtYd1=@2lQ|$psIe#`|(w!HXAo3prdtw82$yXSh5s^GNp-rU*>-Q7m0Ujh$lur=U zjv~R@eQ6=e$MYSNsxrtVL4($$30apQaRFZIZpz^!<;Qeq5e&2_CRzM3r&@_HT*m8; zcZ@ub0BN@#^19uOP0q(m0mO?o9@}(%2#$q_Iv94F!($w96zCmnL@fKO?YJ5tkGh^Z zO^+-sDVca%&66rDz$RKNx6rU_l)dtTFHPJR9g4;sDZrVf@4^eXnHrju>h9EB6o9}R z-+`jcVQG4E=!B4p-vx2{mUHX#kveYsWMSvAm1@#lgIyb+u9+2?Hn~cbQ2aV4A0?D) z1r6wAFg9k|Bb|=3(q4#KvCmp*#JLGRbbl+Dj4Gt7Hf1EZva#!t8tIVgv6m6fB08Fa zK?Mlp+;$H|&YXYEi1ZFB>Q=kX!u`>3mYviJY^s!)jrTcQfo3&Y~J zyvPa&16E718i8%t(1iOP2rA5$B)~Kqd3ot(IOnD#_h=qHWPa;+$i-hVS@{gRFxMbd zkv_$1??pER+rQcw;2Uj=*N-{T@LMp)!!F)Zqeup6o!w^kvSqUYyXSiJQ9#-?kLw15 z#5n{l;Uz}IF6L;wlIM>~I5{k{#lAs0slsOM*zFIS;?dcFZ9xD*90fMhTh>id9E4@I zmuUU|%9$8~_=HMq7ff$a&bFk%NB#td*H0^D`)3ABKI3z~E()O)KJB#t=|P{uBip!D zbMa_1g)zZvp;JY78PrRoju4x~Dq{P_vwo+CY7g!Tm66w5TE&NRB2Lr#r5IFh&EUO+8RE_wGO$fGm6gzRyH-KTvWVuSZ6 zr0_08c!s-B@pks;-r4AEaq(uA0oK&Jo$*M1YZVEp3A}!` z8k=KaT+=GrA`-@YqUXJzu+ClB&Y$9(;EoWFO?jjM$hL*IXaK`LxNGkd_G#>|{AFQ{nG}{>02%;& z{CF}Jv`z*&!ef6zF>}S72nh6!DkWu8SWm%W!jgtNuKe?dT8TIb<|t>R2RPtXqk{bgF@QMAV^oX zR7;KEP2(&bT4#lZR}{{P7leyiJbauJP8?+>eq^EFzXWOo{R-AfqZxoa3a;1;g;GrWm?fEgGU{>l^N4-F=i82=eW)D=X!amUs+j>qRn((X)i|KXia|S!NJeKs!rxwwjLQTj8jVgt%v()`oD0ggA z(LZvioSL4mOr8oQF~-tbAIbaDS{KPNPH_8R@s;f$}R}L}c;&E*f-UhtpmYJiEmKUB!SE3C?vz`X`YlV8uLO@-n!YPG|zdigibXJJqIZDllQ0<0S}qGbVfYtH@)VN&ONd zF-%qRrAE&+%R(ABjYGI=34(Gl(k3INiqmF$RTlCD)4o(vCVjQu@=sP%tWw{gNZ;_F z2slKbci_?p*?5pDbB9^{gVf@8Gu~{4VOW`Ks`Ax#GH7ScOkr&%N*6bh1gX*fv+f3B zQGx3GCf>-9>hFm&2{L5~qUkKnAV`=jQVS2(y-yTX@qGD@@IVYrhY+RWJzsW~&%oFENqb%fwH^)CEmeGha{)72r9W zIBH=rt@!w09vsBz)L82^0G)AQ`B=m$wutohKFH!A+hddi@ki z#qMRukYgXIt8)&Iz7!LVt!|@#Y=q0?c!Ft~Gg2!kWycm-bG6wiVihIV(oOCxrLsF0 zlsgnWd{@yh=w~>i(EzTbrUNFhNB_^siQL|-cPuLDtW2{Mzi>4SNwb2M7+yfUwj|F1 z#j(;k8L@8HeVN4a(5{uDvv=AAK%oFDykaPz`(YKu`cg{+QP*lprVHn&ecno-svoCE z5$sYGWYUTe$c`?v;+axU6Ins!(;m1a5av6iGz*{vu&Azwifx9sz|K-0#S7XYRm&#AJ81r)nUW5zbStV)nSv*|Uc(>MZrp6KUu-Dokna8R_Wpt_ zCAa!WM9z!S39(cMTV0~>MCF%f^|U;h^U~~TNw5Y7OSN%m6!;Jd=u0gA5ea91Nf%Uf z3TOagcdF2iYp_>`8838dG2vn*CYlj6FfWiXrG^NNb{-g%I6)i4Q~~WQ&*d)@k3P@U z!{J-A@+N|klx+Pyb&ocE4#Y_-w;P9X#~Io=E3!W~`;(Qjdwc20b>giZaXCPJOp&n| zyycf(I*Fmv-^qAH19AtIl1Lq8+%bVO!-_bB(g@Vh+#Qoe!=FNL0X{m9?Ux1H&0QIh zsgov~_{POY@XVp0UW#xJ4U|bbQ;&_=A_azs5H}sD$*%W!g8_cj(Y<<>!>~-C3q?EV zaDDD{tw{{J^j&J7I&lI1Cj6_h0oG8*dJM;4<;5af?o9*{U18r>Dpyg0sB9CDJYxrP z$U83qI6ke|DS#n3Uu@Aqg!$e~co>)8$ht8AvT>fPaRix4mc>4E$Ky`5q}$QJKf6`r z0;xQTFilA5{Evc@sJ9!rls3cnD(HX@4(qeT-l<;bcYSIkgMb9$+3NG?m!-0{}CD*T@whB`d)C81qkz2y3t{`CX}8|#=IKDT}ZuT%wZ`} zOEt;ijj-dLj$z%?(>(DOcEvN{dGD$c&szEUK)$j5uCSiWiwg*t7#;RTmU$B+`p3hg z0h?hr@K@UKA@`l|hV+7v(t3%{voml3C_*bRfkgBev~D+$fcu|15@?u3?CrCAy=OY! zA2zJ+x~Gx3Rg;ysK#x__KWb}f4!6pQ&P3A~KVFK|8Eb>l`Wxc56rLbC?94<~S68dg zekG$|!`+7k3F?foQ~n_y`~nsiwn;Jgxiapl72KwE+=tRax~x?JDOfL0DIZe0Mrx;L zXHo%-pobl2nzDU!3nB>~AGzp4hK5>TzOxydkx7lKxQV+RefB6r+ zRPEra3u~~Ic%(eS&Omruer)`)i&n~8oo2U_)B_6pp@W#S zMRR=RDea7k0GKm>wNrB?{t+&5#SAp-7G5lhe-{>c?QEBDSR=k>T{RnqqluNKg{IG zrB22uoQXXKzWK=2$R7}{%~Z8f6urS%_wdz4C`K2$vRR@ko`e^0F*Kc~MJ_W8DcnGz zQlo;s>YDFH%`Mc}3&i?%_^K+Sg`eISX|cAZBg~Q%FtahS4Dq<@;}hZHsjFI(@MXbT%q%h3 zoLMYSqCe^@tngf%5@n{XVY$nE+N;L6n%d>wx)vOM?+SS|6<4D{Y(qucY@3}{*Q$3^ zsN4f*R#q2`2hOlAP0f!YVQwCTP{p3I<}>(gp+cx!8%s;8dxEbT|h zvd&k244U>La?$HW__3k+8R%GSVs#5dfh&Vz z*t*>_2R2vC+_JjTLWN?36AjXxYa(v_Co7|-+};~0B(&{I(*xMkAYtc5Kj&aeW!SZy z8xGbB2YeRbyokZQ`i`Mr>I@ubC){(Z+wk&dI=(q(Lk;MRy@(F4KB~NV5pI2fBfqn* z%XXo^X-ZQ8>@Dxv5zbYkN|zVe)UN9}UMb`U_}fKMDeUz7F-1Q*@Z-!Cw+K;ArYBNb zCdXtfXC=K(hjBOT5A%5eAu$^)2$}g#!we~pEvsY*taS{|iOemmYObR+!M?K4?_c$M zB)~66A<-cR1BB{Q^Om*mcjn_yQ!R4>;RxlE?nsWh&;(}Ak?{<-Yc9pU@iMq z7Hd9}Is5+t*Dom0QUG$JqR`CEZ-U}`)~Z<8L4YhrMi6n&T^T1hPF?bY5!p&JU{1%> zhb%u8WUupU3*4ko?m7Z5JVl-rcWyNHMHP!mr6NA(Y72d5%b85(oT4b@X6&4{qg*ay zVq#)pChwIpn^9XPCnv>4ahqn2P%>oKf>O?lN7`FNI~jBDXt8m7#uI}rlh$-f#@Q0(|9a&z#Hy|eJNm9I?fHX{47!yb*^`-rf@uqJ`EfW zb=6U6(9OVJVduEBb`qBw%GuYHGOv(+V4YZF-*mN4buijtqM zs0~gNeB?T>7OyW)-9TWKE$hsBXx|uekTPIX;SLcke>=wTDWU~Ll14Q z?g};Yt380Z=<6tkJ>GYur^p#1y6s?#n1k`Dt_WqMf~;CC1{F^gf7)$j(ITMO$ts{ z@nVOV6%ejDeRraO6lV4>C-&g^Pj-%5iPELQ^h!tmdZl&7@%bFrxi#>zgiJf zJB`yi?CpMrl(`i3(J+Der65sGZP?)H7E(65mFl{Sa9EtyNLN=W0A{7BM{o$F*REX? z7IqeqLq zT$kT0Dxp(0aY!o*@U8=NTE=P6eYV<)_ov6iAiSLY&*1h9f%%ZD%*Z~#?YcivBt^qr zAfN*&V#8djvl_7|`1#Ex0nB}hv8ZSXzb1DIBaXIck6pHEbjSvJRST!=Lh^6xs4$qwj)f~iqVc!V`>#OwXr^)qd_n(W{Y}cy(5OyB+j%OwtE=loUtixDbz)-T zS|X7+Q>|7Xp~gy$KVr><4>~X~fK)0afSnJ%(ig_(Wp$#-I-npr13On)c3Jz_reI?b?7HTRQQb7tV>2s6(SweDRqo{^^+!WYQY8 z^`~%PR}Q!BZo~c^E!fnZMoU{lR9Z_WWGH%27)1{AyGt__jz*VrFK}85mmp7VDcN6#?5cR?r&WO2a2b;Ld5%W4LA$(24j*5Ny z;?R@ZIbi9yOuyBZkO+p`#LVdmz9am^6Me^RWWv);4Q@xt*&7Ew@lT<+f(*rNV&TW9FC7OadCD7BE zz{Z{|Hua{_vmuS{&Lle9Qpn|0WU?vfbP_giCzHAWP%gx#$bMEgO%*O{^fHD0>QehW zzizropiOMsFlAKA7K(WjlSK!k1l}WK2CfX3aBZk8K1aqY$QMm&7c+3#S1t&|Gbu#? zHtQEf!x8QJ!{7T5e*X`@jX(I~??O)L2rWze{tr|nJk}m(A6k(C1sv;b;o)QfUm(WZ z%thkqN{iUWpw1wF?Ln`3bqkocgeOWCmI47Pi0&oAbZJZ z!TS~Sy83gyu=E^V=T2hjmmID3d@*U^6t4qjN`y)BoOvRcGT~VLt)vVksqf0}O`f8J zt(k5GT7FdcURea{(k$T0z8(HiGCqbX^zVHYc2=-Gb@o*#`77|0@K6jJxhV zfY1KLS6~zSO(g2CQP)+{+EVCdM>0BwLBFX~4ZL-sj8{)i(lIPJbS#y=*J(*66av%) z9Y^-p>9+}D@VWqXKP*nyBmwTGB?+R=gQP_bq|?)}E$SD8zN2-6)+-haV&)coDP}?F zW#nTes9mX~iuRmd(1nFSyI+o{QapjiVouX zsVgk^CJMMhAaL{LPM*VU31*?TLjMcl0xEmbGKU;>2OtiquPdx#LiPo zOw-D*0(*JisaJ^QYqeNxDQMG61Y}vM4ev;e3wxJ+9S`>$>6_MsSgwrQwGv)6(jp|% zpBVH++ToXsjHs{{Iz{qR(m~J4LA^wT;?_{%JtYBs_$0CP!^q$9Zoka+EK|yCr9OWA zxbWrLv}uz7btbipeaivnjKd-RO-)VV!i5V02WOi%kKm@Yb?er@?e6ZbAh6-0rKM$@ znD=kw^ZENs)7&x_sIxG0W-~aO;CTr(mg~JB4o%~W;BbME3D0>kDzV(Lt4N=F*=Of! zW=ZE(B8F@RVP>?uwzv7i9o?*{LRE|i?d=)==6QZ>x|n*Phd?F8CdDQhRiSqKv!4D9 zvgw)(V*FLQCIVo?M3I2lw5!CPr~Ej_TBcS{uzpVpyoQCHRTg1%qHMavU{8G_bJ81T z_!_bbGjCN);fMD|#LP4MaNJ;Oq|w^qTR=v~3fR7_L!392Nnz*qc6{U8&I~|_Wo219 zKP^wD$1zsy!YN{uQ6Q58z`s`$x12-s(1n7$vRE7<8(JBin5@P3{a zPVuQp^CdI7-JF5YC0u3Opb8YerUZfrpY)bS_)4 z`h^0suNb)E9uysQO*`3fU-!}TvQf1#X(bWPeenGH1y>h}T&QNTpZgZg5;fzi?yZtQ zl&38%B(I)9Wy|d_ySEZAnmuJVgDcOevx6Fu;2QQVhr=8Ld5C`u?2LW$fjN!uW-ga| z=I*=i{!g{{DWv%H<5R7zt^e29*x0YrfbYD=ZAETm@hF&wVR7$F7V&s$QvA+Z!sH4k%GpmW@Y`|=t~SiO@;OIn z+dq`s@UWwZWHr4?MF35pehN?Pvy~)XAcf;1feinKL(I0Qra1Q463UYL=3^I6q^9th zQl}_yDmAd`Z&b6S>}YsfqKF;TpJ`G$*!(OM>}c5{X}TgF138ztJ!hqH&Q1s-@JMRn zhNpa;`}tCEH?eM3xNJ;&@2K@9r;wok@1*-^d$(4hCbsIT69dQ{{}!f{cf;!FgXGNa z#uYto zTo!ZGI%%_+G;3*+Fsn;JA{YUx0=R8NtC$I9PwZWhXc2Sp4CtQlG!LB&!w7=t-{CeV zc*sN@bNB%7v-;_I9DgonTEXPM4TCj53suuXDxu-vZ5#34ckjjbec#=<x4E$yoZ>b}wnLm-p<9=f1%;rr`UScvA22Y#VZULVo;EvAF zg!8gPq)>dR(uxfP+Fh!H9@?K(&~a+(pv|DIitJ>paM;4p&cTBOLa&->4AFJyOK2D? zCtHYZz9*H(UsJneUWh?Y2i6g4qvH>*TnTT;)i7eK zn4oqK6R`JF-#tdR?IypeOp!0lkgXOjAoYltUJPbgAK zkV(yhpO7X5#wz`ayPNx#EhlAH!ZkaIo;4n`&CdZ_b%vbmY=&nMLa8j!dGV%v2Wh~} z3>=1=%!xa1wfD^n>NiT*Itz(dO{u%nwA5TtBzB8cz zYvXB^X!s#^o4RxYt*?9@a(P@hHeAm@DhtzKP(n3wbN%Er1kU+4h{axm)Vdehwp}=I zu#1*HeB>h@s+B4R2MZWDJBf4WCvkPKgptuQ@GNq!UmBR|t*tDq)JGXaY_wEicH{RBs6;6E;Y2h%5 zQH;>KVKSKCjm{@40(7R$ zrHy9p=2j?AWDdJOQ5Gh0o;&8mFv|%S51$QU%XeHMD#Y!8oY*q9{c>J(0dEc@Zd=q)@ zB}9E1Jdq+gRE&rU;fk$`FgRxoYrpKgco!))&sMWDo)<6Z_k)QNZt1*`l0u}6$lHl; zpy<6rJOgHDpGXnARs!+~3oKfyM7;mg!w*0FyUmri1}%jFM3&_<1nmDz*Y)2bK>s0P z@hvs8@eKlUc0Tjx%nu`b?5j|!Q`ZINjRQr~RO^yPrzV}Q(Vl5~@ky--u_ z$fnZRwYwd=_VrBviqJcsH!wb7Vq&6-$w`C$HZeI>A&|FFuDY1Ymxbp%vuWFMVN_{w z@)}tw%lIZBjpoK%_y0WyMKv!3qfLjZc5mz{Tz$PYM zB?dk=22_S<6yj`p1wR!CPgTf?S?3<&aJ3s@ewPJsFz9a0Rq!gkdasxnr4s^f;20b{rw59+u>ko3u4- zmp>)oqMHEsJ?T8Qsbx_R#FZSu7L5q2=5;=%v&eSwd3I8N{79x4cD8=43N@v>bmL#?&Dcci#`Qqc^}kDN>kg)qz}i*(VZ-fd?Oa@YfF45i}rkM^M*H!_=39uDEag1#uF?1H$lg}f0;br0J z<;nW08m*uN6^Sa>2p~s^;bv%CmcF7zPtzwYoSZ;SAeYsV%cZexTZ^Aqrty{a+-UQYwJK(Ao>t)ugpEoSTPF`u|1U@KqML@P6W*i-o`pJo71d4q zQQ3MBcDAFId`60n<1578LvqdD@9A{<#Fi~vp1bR=yMBkW!OeqIa|<2tzh$%8za>Eb zDLTO+I?*G=VsU3wb7+=bZa&aw#yukis^n*Oad{5gaiJB)piT}UaqToRXJ3L`8H20m zmiPWio|wa%OHURLyBAm}M67$@g~*_35lB`i1)FEk7hOuMp3qo49AcfXm4RIe>Z!A$ zA_aDS`qYJ!U*m8t+}K4Hxan#Yyv^}rCBudP7Tb8SeO4|$9e;?G>>zud?q39N7YaqB z#A=u_w&B@y;y3(;13R-g29kRT)E^}97x z))VG#AV<$+8=a$@6pJm2ABJZ(gpP4yllP=Y@l-?AIR<79OLLdlpA6h>bpFRu<9H+~ zVbDong3dKT{mD}vJjGE7VzzszFZefXLFgiO&z0$VNfF{OJ60~(yL};MYQC1o>3mP7 z>shb_KT4n+^vg;K-@ySZMaoNkMnZlb-kB)U{Ws#5Z3aH2piQ2KHZcHwvC{5FIp}&09z@XS@eQqhwMB&rZipk zEzI}s1?>_KT;QkMphfy-eg9Zeo#73!Tl<;@c3CVLx>q@^gx$LDM-hVdq^l8lrf`A4 zlb36bhCu=fJ#eH8nfr9;nkN|ZNm35pq=ngj8v_>sZ5w;g6C>>*HhjBY5+PuV1<=rI zp5vM~X%%6155vz~_!a;s0L5mZQc}QRjTH!^a)V>@IeG}p*g0@IHL6=j!t|fCi05eaIrg-p24MU4?Ggca3uzWyTiv6EIm5%lADo(+ z`qO4}?jnA?T0!gUPeUEQL>-WGWcDXD?3v7+zo~; z@Be4-T4Uq5uJgI`+V_JGk)kM4FX}Kl-l)3bbfZ z#C6dIftwm=5w}HDOUv4^@gX{V-LOK;08pv@>-E; zIb!DF2on9AYoP~k!d3K+iQGvsjmoUdfY58px599?FV6}}L;XEmsCN6fS%MR!^7bJg z_I@i~KQp{j4J9Y+i6B?p3p)f+G|*mL%Bu3b+9RXn#gF3k?M0)_WinsaTc?w!m2(ie z{#qEW4W9MJa{E=PF0zu4d+;%^GrLp;)+$4{QXvW1e?ETv_}6M#MANh~l6>h-RaZas z{|*Idkk};>eJ&8EQ9?6QQ&Thez1EaIk-UxEG>t*D*3y{>L!6LNu@(M9qjq?Gq;W;jEhi6%xA$nxEI~f8`K0>GyyM*O6XB zONI%3`yli>>3SvvdGQYHH;O9MUGg*}cM_V3;$kVX_C4nMOCDyT(?fx_@l)oK3NJgH zOtCFNLO56KIGm}(>#j2yg`{EdU?dMo&DrsdYBtYfH~lHp+Ph9R@XXxi;dbIlB<_W- zuC9evjB(R6{)phoYrk~q5*59h8<|6wMyzebeLEhy+>pmE8hhKfyE9lxx?$+NhK)r% zzc;oaYWlISN5q~0QM)}MTNwahY>^jFmzGrM(z*jZxQto_pvvmE}=&7_kl24>M^py=EquqyH)rL*P{IV}UYNge9=xc0n zl~)e+Np!M_%M|_}v7*4FDlD_s4#l!(zt$LKP;>7ER!Y)?>$ke#+(jGWk@}s)G_GX3 zo8W<;^-alj4re}Zn+JGIbCqzm@;NVaezWBHaf{3o*EBAQKR7f5g%tw`jxfK0ODop6i0&_+kE|I-HD;}C}Gh8oFrPJ`(z(fx$7lqT$ zYw*{9UxfcXUw~vZD02@sN2{Gkdx6X*gTd%D&zy2$eo)N9E9JPVE2reQmCbqRF+~!# zkH_cW9y4DR)M4D^gdVn7&E;}RVCGH>;5!LaXZujbfwzhp{CLqy9Z9?$_UD@+)S%b-I05ANH1JC_?0nQ+i7b`9#qNGYIs)BMhzW!WR!m$LW#W5J2 z2-Ry|b5suq(&3{px>)6`_+&rN=b1VtXAZ z*aloE1!X?yrdp6sFI>z}T}cTP{k*ufN>{AdOqx;FzO2NE#Q7l%w5Ph(8?HPb^0 zSTC5T_QWzd%MISCqK5cu#bLrEyj7$x0!3KQCvVDLMWd@yEWyoL8?Iklf;TSC!%P1+ z4?liA2iK>ID%&*@(U8nVb+=w%-28M(!e@JId|*glm5jk)bR3~m6P*#W3~$FX84{Z-8FQg)a>N z{L4)PUM~nJd6WS!koW{xNbc0T{I&Bl@bc?3kcjB8dsiGrhLUjPU{bvf?M*;`Ujq8N zqL59SV8(SYECY1I?;7U|57fBfp@2-Se5;!O3L2|uq10?Z(zROdXedZms`jf+(S@ag z4YLbHxN)-xlamE_@7f}~b0w#i_we(~LK!5f6yccC34PVWfinEbp+AuZ_{Dx3x($!} zp)(jA{mjx}$S5h*w|QwI!AoVRXYlj!$P%24=2V9{_RQ}hLZ6+TUFDI79bYJmorGe- zaQjXNS-icb2fw`AhW+z8yok%R4T{(;)g($j~NiLOx5pPgnI5GkaNKs zlcqKtG$M+n3Y1DZ;0r7wc`qPw=N2W*%@<*2t^&7a3h0TK;MQCjX6H+g%a@^8c7Tf0 zsQqdzYCv~dM`O)c&Ygo$YukT6U;<2JJb1X<*X} zc*t5*b><~it-$y3T}9|;&z^1kg<()vn4mjXD*{F}o@ytNIxcZd!e@GHI2M=i-#HD= z7c`ixPzNbe+Y0(l>qy{99Wu%gAo4{LL;{|guE6_KIrX2iZD-|>#r0S4r<9;d?2W;w<>q%eHAyU{47-rv z%buploY7{itZ3Q_LZ|YxrnK9l=I!+z!aC4XS3?wVAm+eORKPX#j?Wczcza2}pAgUCo&nywc7 zNBM}RMjkhkIDL<=^uG4GN!3nWR?R1ROM!f9{g}dg{csH6C>ktd3AE~w$SFIPh@9(F z8H{b@r6Zy5(Tgx-NEL!#@|eiC3{_6sI$mpgsyYdeq8R}a2~fz+Es64bQ2PR@`;gda znQ%0?Ue@7iQG-h*0auZj=N&&QoS?Zxy310FN(8?Ub(B|@#`rGo@rL2#GBykLT zEeVH^$oHd1J{)zS$Mn?kIl-|q7>w-)nj?2Ox4JMJ?X}&$@2o=tDf~7XdA=Ze}Y{>Xq%P0hY zD!>$eJJ=*Hy{3dcc$)Vr;T#WAXvHUW2@xTK`E$W~?Fdeimj(fT65<3dx;Qh%_Nay9tnL0 zJ^9&+fH{1>=t@|`*L>i~Q&`)EWx{u5Xf&)gZ~Xq$%dd*C!EYu*#7$xHI9|Rajw7u} zNaL41NaDK;dhe-qNT=QuexGaKa~JH5GZ+j;E8IWITQZur1g9!8TIa&T_lS9zl3$3A(U*3=7-u-mV|!vhTWJ?(6n9=$-Y3O zPOmON$@NR(O1Po2=gZF$x!bk=x?FA=LmoGgas>AgC23mRVH`c}6n>5yQoSdYC@l!N zX!V<^Mj03k27}Q$A6;6p#;q&C&uy|SE1yUt-fbD74-5=!`bJIDyfisEc_yFFA8lOj z=0Uk{A9!X0bmtaS`*CkmH0pAy2U;&gv?N;7ZPau-gVmvSvCg(v{Y|w&ZM+^QwlNqC zMmtHsQ=WNo@4aAWc7d?V4GBFKi@lr4WL|9txa<93r`%8^#*o7y- z!GpH5gP<2@cK)?qLBtFOgTdHYPkG7WS4SSn*qJ^Tj=n%Y!n)) z!fp0K>T+m>d_SAb{;+8+J2e&9eE^*9{U9XgS~D0724kB-LkD&EUT_oHh8ga}i_vKG z-GPCDe`w_}jK03UmTVXY|NhOJH!mQef3g{&gJD5_?Bme&qs#n*U@#aA#`c5fLg~;1 zl+Zy1*KR_05>lzu`-cu4dZnd=K0Q6%ngE0lkW423BNmH2f*$+PW?Jy2{sU0l_W;B$ zzXZ}q@Q;JRU@#cl1JVUAmPH;r=x4Y$sXy0seQI!U@Ovbu-cmxR1|TilxM4hx%da4z z9|ma9@`of!ttjM=odj$8GH6R^T<8)0kuVqx2BX8t+*96pVPpb|gGcLC#Ol3s8IQ-O z$H&M2s?|ekDWT)Gz24s5@0LoX2RzRkZXB-g!0z4+i}!sBGOv6Wgy(?NNIr$N3>gdt zgVC8}PFz(yFyUvmYt5^dkk4}?BO`xkW@iI2Eu{y)gICrLE^0+AkmjO zQI5f2Fc@11nlrbd(svA&MovKC!2KZBAaklakH_O@PMkRLb>u&{U86L-HuPL0^yuj5_n^(0-QwcKi|sRX@FdY3I_~ocT%N@D`nq!q_&p`Z z8TnaAzWE}=CeQgN+qIGSD=G{UuGhS0*&UxIG%#AZ{hb9Hf9ngj-0&}%*2|azq8isV zFc^$>df(Lc+6$gSntGL*rHI?f4nX11gHYT%ru0(OI#RC5Z>}f3eFqQz`NKbR>UZMt zc-s%B-5$D{TNoM|`bMEpI5IUg^(9@`*UtW<6OJCc8_&Z0#~y>+(j#Ea-vDEN8jJ;8 z@-v{>MYWES-IKBv0|%|V2*NG}h67`5^9MkeE^L(2rTRa*-=K#XoxxzV14!D^u)s57 zAaz5PPdlkzu+zK1?imCxngl!91u_y-m00Wg_4w>cYu>ZR653a{g3Q}a=pkI!UFh%c z|6|8-($mw^Uog!LWU^BszvJP_jY4VQ5Wt?pN)VsAk!s}<7)2!9@{&K_vB_b0iV#@0 zu7kcbw;Xa|tYL$BXk=~NxFX^&n--MGxMMJ}8KD9N@R69fNp_g7P7GZXFmh^4+qBl7iCt@9*c~r0T5uk>c-@%cOK0phBN=oPd3@>^3`V=S2%qbMlEP&$XHEp} z-F8BH1^LVx9v=SY$0jEJw14;RD_eO?##ZiJN_k~)aPYT2_~3(!NbX;u6GPs*yxp+5 zvZPvE8Q?m=zWMFkEFZ#P=F`StFt!P3`q*)t;>nXIfA7eVBi~G?)1|E*ld;tUux-15 zFHiOK^qj-@e{kc*jR_?63jWRFpA3V+U@$riPNh;2*=+WQCr+IB>fytO|FcsDW^~Lz z4C6F<>93?xsb9m7zrD1yl+rXU$-f;2gTY{IHG;_TEb`La`1tr!qobqGB@&6*P8y@p zNhb@JTX?db7DD`OI-UNbLZR>l&-425?@>~lV=x#D2BXcqM9V@v9=|p`JpA0LQ>UIn z2XskvV8xTsiRTcP8C-r7N&Fc+iGP8leyCh7AE7ymKy^;7NF*<~jEuoxFc_Od+;tp- z#BIl7u{X2X?7NRX`skN+T`za?aTuLCFd}N#b>Hdl@BiGuz`)_NXV3oX!otG-NF-88 zrBZ$P-3XHWZpU#lbn?R*cPbxXFc=I5qZzlwnS>YdVswFGkVj@m#9a%X_^bkWHNl7OLP=( q#^doT)Vmx>{2G3@El=YA3ornj%tyAZJZ=gA0000;Om++Qm`IoN5L;vqI9}D1L5acUqmj7|eNJAT- zfN+BWK)n1w8-5XffQSIEfRM1Ls3;FWkY9kGk6(~aKoBS(Dj_5&!Osu)_r>yH&CS+M zLI4V(nW%g&&$h;*Gq^O;r5bGKwMn>uZEx?@BsmI_i;vAc>|r@pZ=o& zfw|kbIk+Gl5YB+VidNPL52Q59gQx!!0^H?4vd-@RPSZoe_`I!L_ylWWScbsd96VvR zif#xv;9nt2IQ(~C1plkvzqz*m-4~(%%H?}-hVSpf{$C6I&(uTp{O$gyY##>yDSVjo zL$$j-lyyZdX%ZS5S#2#>xhn7@=kFMr9v6yqRvP%SS@3#&{ju;WHCi0hE)y& zONI1f7vaxo>R7gSy%-&Yj(1=iKf6Dd9oGSeU58y4_chSx;Sr5fQ&V47 zS643>#auQn%;w=U!sFirH13Msr+7D$WHKW>D%WaDOUI401J13^+@oXr2fl4t?1@$A zeTSHuE>|r&dA1f6ZAaAB)*8Z>dHKrSGYOI^Dk>6guP^S$`cWi7bFMkWK%ZQ#^OHmMrp{Ee7A}(>GZTD@^*2Zz(5RU@N z*#wV>La`*cw7Xx*$R*n1%NB@F>cSV;<$NXc@OpbhXrVySr%usn_WtCgsTb2cX!4gt z+k1Jxok6X;rNF(x&O}EGb(-_;+k?X%_tTFyBM=O-4FS^ zYl=LW0M?T>EQIZ9f(H{^e%vLU_fKgV5zA?CdFKh zCkIr4elD}i6UGz~aJ&3#*v`3h#Lo|zmy40GEU|z;rLAgNzS@jVp-$R1DM=KC_j4#nc8FPZY)Ubw2@C)q&$#xW=6u2=G#F@fK8kRUxPUb|1WtTV=UNt&J@sSq z0f9+2kX2_#%p?>|K)Vno4%*m&Tu>(D=JX}!amFQNYCj5gR_dQ%2boYaw0wOeHM!+3 z9d3%N(ltJ)OshV|w_5EY(g=C1xYNpKbGli6VR0Bo+@F5B>jmcYL z4Y+ujtIudslkcqZ9Zn6ln}d9=dt=zH1@4P@>Ho4f-{6_pD7uWhCGq|CI;)ituQrk_ zo&r#zX@3P=3CmC*nR2(L*OKwTsOu4m5hd2JvRw(`6j!~Qf2~zm!x?>U_ayfhHQf^o zdI{rRLcYu+XMw&8l=@BVXSvlF-@wi_>gifBIf!y>NF=98LK4M6akHF%sd!l7Ds{P_<+8Jbm9oR8VyeXDGdT0)37?H^W4OYQ^5uw;t{Tf5+97;2!N=ATwApoW;ZKtYe!JfK?zH>TZT67o8?Pad;` zC8XrV_@%z%7be^Ap1_JCN;zo_UARza@;=ENN*Oo?$Il{BG8*tWLbS%IHy5wKM?uatpVpo7NLj!&-VKu`MxRI#*LFm2# z2usN|?>p|vEAQuY&4+s*MVao!?rtOzMP*(DUsGbs=>Yuk3t7Up!0H3#7e5BEWPGcl z;n_oIp##m}P@8=<5`8h#SU(omHh^!CIVFOoBW%s5nc{;GsDf=~ulD;G0X>T^?n=)0 zdDWs&&wl7TJuX%BFx3TRX5|*Zu<-GFk`|v5N~Xb&5|73Y4h|9*o28+B2Rpy7yxiJW zf@^1k1fLc2lPCICh^inEL4@SH?TiwPScr%X-U09|B6pjVvU`A zc*0_C)SehVu0h_3-)D8o*~=^zew!^XMGwgOcB975&l?i-Nuz2rxuzXO-JdPA#Jue3 z$Egm*ncjI-_37j~>re9J;ENai-;xbXVP{8$Fbq=kK}*VPeo8uTVNl4m5LKFj&9UUu zWG>Hg|8Y2n^B>Yqe{L3TvWo^0gK*o`i`&wdZv)O%o_AtJq~)tOH8ys7jsaWz1IM#K zvc`JB%13fIy8D8T)6y#2$zi20^=LEgqk++bwU<~LR)7P20hRPO(3o1o%4pH7z5+C8 zDn15uHA--vt*VZc?8ibDJ8`Dbi(<7PW5DMXd>kbd)alZ0e@s5GUO||<9FEdQH?L&hotU1k zDFdiI9+$H(px@tJaS8*=ZkRSQN(eUoggFb)vg++1M3M*!qGh=7$$G~PpjUq~eWN3( zs}h;>#_rKvK}*=`Yo`F<5HCoZ%Z&l6n}!>+0xNld|Fdx=+VhAwvr|LMfU{Uc_tiI9 zb19lw=|&(C$`7M+KKnzd$ImoVwtZ`8F%oJ9lus_6jOXy|a1nkiGvgQAqZFq9!?k+GX_2Wg9++v5g}R*LoTyR5diKCTUnxl~NCvd_}8&&t0=Ub+rfzPXiW-6EIe>-^u)v~=lPmVpEEW9l6G$2+AMuzs1anH(+HBP&D(+B(! zJLxdWHL(ZxZcl7V?CXo}2~YS$-5NVwsw&XMoO7dg0(??hZ3;Vf=p7|X!apD8IjCZe z1s=<|bs0vsqDG;7W*w4@``-hMq-GD#r! zbRVKTd6zX#Dr(0P=OfX5)vwanTzq^OSVd$<;iIe^tgNDLtC#E5_FDBPc;BuwTt7qh z_vf)0a(CuMg;0lb)1l0swK!>%*~-+TMxz2>fEo@dfmZA$mxXJn)DGq98}s)(pIF7e zIJ8?nCYU_)#710kp1Lh#^k_{?es^Pd#yRPRYw-KEF&A2*66rW!i(U8-<5nQlg!b6N z6q)z}Nr`xaUraDB&51*GrsuIu(C8deTVXTiMUM8G^VIWxv^7Ed^`#%bOy^>Gqo-j;%EkudQ!Svg$oO@@P`Q zy1XG~+&;?eG#!@UQS95iqQM@8LY9!U0~{AZVojoq<8KA{QuinPc>!&~Yx20!#ifje zX>WK+V%g?%SQZZowdoDf1U4ZrL-7iaucckH)yF>DDr+dEL z3LxDuGF!J7SACkzny1wHD34EcgB9q?Ii2o7j>#Qts>S`=#rF||RC9O&1=jbO2)oWb zTS`(vDZ_}1z2ge1%ASTmgd4%dOGRz`?LdOwHP`o-4s4PE#GE4O-yO087W-uG9X*we zqu(G6^8K@VFBvDiUS~`^4~|ZH_RhH}_R`+b3?9%X$KuJyib&V-OctoeTXdqP5n_&Z z;x3lX)wFSPs;1s|?A$_|sw!besb-CO-K_QWkOZB_XTCe!piRg-N!BC=WY;IF>u8HK zZ!8fR7f-Wa5T<>>i{_a>-biC;*J8DT8m8x-5>Zcy>V4S53UZe&c4Dx+>QlJfes)KU z`%HDu3t6p+GumS*F->a)#6F{nq6Tr^u!HKVs$)x6*iFYH=b(nw>C4duj06;71BZ2N zBxF{U03vVvI9>bqW|prE(xAzQu#O9kU{O-xDxbLU233jk4u?*SBMr*sqimwE;a7Qr z!$epksxyWWIooi37QFP@DO%k>Yed_xtYX(_PK~=9OIN&!+91_BKd78T%ucj& z4-D&E7_G4Vss_k~OKTEj<1HyU#6y^)^q*`t-LHeIFyG0avWMu3WFl%b=kSq%ZS9)w^<+O34om<@p3BDS^A$J(_gsblTHB~(I^dB z+N>0CCuxZ`5`YY?Hn@+Q)@s3B-H803NAj&?{*}Y|S>%~Ndp-wHu<}1cNA(p0Uu$p2 zvyVs-pMd$}yiwlP(_1qd?#ARfmMrE3ftuJ6iAq*8ygR)Y98}CP4k^2&U_K1#d9c+K1*{J^JFI*ItYsPPo=@sTgPC8`y=Gb57 zVlhcS(R!2wgE1J7j;S~|plgm@`QWZnyMhlpDU($>TJ+Y@b*-*xYEpeM?B`us8g(B5 zWL~OjgNxn}wLF!#t8=tl;1c~lZ9Ff+)r8d9pX3@Q2$d^!JQT*PI&fJ84j)#i#`tsT z73yDLe%T*)#9PU%=lXn&H90W5Qz7bxHBq+~heOANek7KcU^XkJ6(6uPA_*z)iY>oR zaWB~&t{Q$hvdLPput(V2r8=D&n}SOoj zQrNssZ}t?N<6=pS3ASe3Dj!a<{e-FzAFxL1zSjM@0=lVT|HvYjTZ-!c^6nk-UJpbt z3q5#FcsSQ9K)rNnQUCaG(ma{a97;NJOm`YZC-F@zlLZCdD3N`u(Um9$F}V@Y)l{VoJ&>RNjz>tWqP4<8u!W3I&iVj_v~n zUXisMg(3M&hzM`7LX2XG``^@_QoW9960nCudI<~A26U1ZN)F6)SIcFB zMGLAYOg|XRzlMaW>5*bgvp>~t@v5fdF*=yx9>LPq*$1-y0vVR*aaGu^51=U&7Nx5~ zYYeOW)gHdoDxQXR05Z4Rvh}xpYS-YEpbk`r^Req{yIr+?NyeumYaU5n(dV^>;{zv^ zF(0CY4*V}G?dyNqAZG`XDYm^`*8zD~Bb4Wzzj}qA7C$m)>(59%N!701x8;``dofLs z*$wB~D-_evmw9lnw&(eUd;jE&ns9|CN>>UWS0M=;EGzGkyx| zk}0{pqk3V%2Ss*RU&Gmc|7?X_ z9^U^xboFhFvZ2Ck5#}M`F66;9FQW(D16E5}n%wf{o9rU>%iDy>&r<9S>QY&bH7kqP zJ{=wW^y7Z)!rU3{xZe(GjG_F7$@hUiT#L0!+Cga~}8xZ(S* zdmEOVf`Wpeyx$ok^c~#KsXvlv-MmpJH9w2vW?_}vW#^KJ_Rsk%M}rg{6(zn1yB9Hu zKg)54ILjXr_xejpXcMcIu#LInJ*M+hnoQOdnH$3Fqa#f7%k!2BX`H96nc?^KV;Y!rNPp?L8%>`Zidxb7X5AUDeyw^euawFolCX-zs5vx8{36G&DF!S7I zE#Qs@V+04nHq=C<^9!T&p#FmJLh-kdmxjcqB260#qAgYz1~eb`Qe8%2kfpEHr)^RM z;D#A4-2=AS-7n2$-Pv#|Fbuv0D5qp1Xgd_1AU;%GIK!z5t}!4$OcMFkrVL~|tD=K( zEMS};naYCiK}|iyY$ZESD+c&PPpB?9ZJx?|2ZQhEfL~0V!T7gjg4+vkUh4%c72G*` zM-I^fw0le)Az>N1Afv5r75sY-g9x-YS)SkM)757`o8mru3WPo3YsWBPJxvO_F*^G!7E3weAngYQ54ss&Gi~1hT&-b`T?Zet4TmCLu)Z@*CVV@sc)NFx8S87H zg;OeqQtKy-=)!`QMK-o-)!%LbwT?E-i||GsFSc0PXO_k#DX2T+48>!KyZeftcm_Jb zB;>3Vf`C}rl?;x}gjuX<(n6+}8)u6-NjLLFVdn+x=mvBF*o^Ghp4=K zSI5hf>St4;mmHoh)Rti{gIl<(zikXmulBiXHB4~pds=1-t?-?h{c_}g515y{ME=RNtTqVJkY|vVvtsSnEPBfPn3urT}9@tY-7On`MukAyl9}!abIWD zkLb81e&Y0={6^iGBLA!(HjctpCe&GA+iEe1k|ikd)lPg+lv{>L9vj#!lkF>jWNK^Jw}#0r z&lco&sOb6`^5-Pl@ohwv_n|xdq73y#q`QG7a~+iG^<~cjn+S1Bx?d!#kn}_D^>AfD ztFsyn!Tc{ph~Xgr>DIXD`VHGy1N-oEoYvE(mX;nxuj zpek_eQs5T@ajhNB^0`4{eYvfGoarpms*(OCp$jh&``zW;E2sA^Ny8p5^HV42Fb@ac z=Uig%RU!Ikzb$+Jkt;MPVUYBc%2Q__`s`H=t@`$*>Pkj~Yo+-9E@H4yKmOztnM^Y& za>`e{RBT{K36YikZ5V$xCR;iMFGmrX(+92x5+^#`&3pYs;w%VJ^cAuvocMbe5$BHA~=5cI$F&!$h zyV6xHr5JSxhJnllOP|JOWKhz*7onSGzy0{ST&=uCn^?dYPeAay^^12=d21M&=bD?R zFCK40eJ>&t(i>Ts9Ab{NtI9AiJyu#Hn%R)VB7bL1>ecYmN>%=2qH~ei{&7|kVf8p8--ES zOr=%vAA)9irJ;8uaigymE?ao&RPmbj#kxCfSWAXxOWxcRru)B&U?>EV9lPf%w%`kR zeRtOH8jmLSWvOuThzjR|AS>*{urXOP#~9KnJ0JO-=@K2eG4SJ(OX5$oBI=vUXDzXG5W7T5Z(Nq=tMoZ7M|Xc; zQ$&B<2`w^WU|{gWPw|>%#V?Jh04?)fF+{kBKzjiumelpMI*!bf??LK4S0aH`@RdcE z!E;U8OwerobHpy&R0w8|E0D{4zH*uZUD?oZe*H6{AQ7Y|x;v&WCQ zI*_n1edc%LH#x7ouLE4(=VGb1-JyMl8;2=esBt*AKl%Eqxl)3sqGzeo=QqV^jHabX za8fzR;ab=AZ=GKp?4#pNFOKGvHg^oT)mZe?9t@6^MI4)!urNi8Uszl3@(s$fgcdb5 zc}yfQNZ#469V`xflDYUKG;wo?iA#KAC-|nAt^S1`fxZ7BOc>dNUL@7oc{|Cq{@9~$ zzn+TgR(X0oXY%<=K_)rQucAiB_rA@{9}1of9`%#R`jhya-Em_iO%J~~ zL21d}cBNwWlPqLlPp-xw8KRHTh4cI=B0E#%O}niO+VqBgPcXWT9*hQ8`Cg+f5N*;{ zD0;`kkFq2##fw(B>ggjLsGXM^_6=KB1LsM2*$c|df8LawZtC!LUvAM{{93*cC->@a z*mm8CMw)a%9T$~^*PiifBbay&3L?81>kSKIGV>RyrmY_%nsA#?vEMEEFT{gp)yBlC*8Hk1E02MMeIJ3}; zvF?C?0Lkm?>q9Zmp9}qvSE-+(;uljXb0y1v-8`yV`~EAg`qN7SIgNP_l&S=P^pA;& s$@#8ZTk78v*<`HO)YBpNe7$IoD{WtYc^%^O_umf{s3xQq{37)K03In@Q2+n{ literal 0 HcmV?d00001 diff --git a/docs/node-watch-300.png b/docs/node-watch-300.png new file mode 100644 index 0000000000000000000000000000000000000000..3094e0bc1fbfd153fdcf4372e580f773fd900dea GIT binary patch literal 14103 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 literal 0 HcmV?d00001 diff --git a/docs/node-watch-500.png b/docs/node-watch-500.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0b5a6e07c664641f3dbf84f6f7497a110f9e89 GIT binary patch literal 26497 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

)phJ$+To;cwRRw~vP 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 literal 0 HcmV?d00001 From 20cdff996116d4c5d30dd848b3c55defd12cb46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 21:29:03 +0200 Subject: [PATCH 06/20] Rename repository to node-red-contrib-firebase --- .npmignore | 1 + README.md | 14 ++++++-------- package.json | 11 ++++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.npmignore b/.npmignore index f856fae..978d2f4 100644 --- a/.npmignore +++ b/.npmignore @@ -9,4 +9,5 @@ .wafpickle-* CVS npm-debug.log +travis.yml /docs diff --git a/README.md b/README.md index fad63cd..db14633 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Firebase nodes for Node-RED - [![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase.svg)](https://github.com/vergissberlin/node-red-contrib-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) --- @@ -40,7 +39,6 @@ This allows you to automate Firebase data manipulation or generate custom events Open your *Node-RED* Frontend and you will find the new node under the group *output*. **Happy wiring!** - ## Demo Check out the demo flows to see the Firebase nodes in action, you can start Node-RED with @@ -48,21 +46,21 @@ Check out the demo flows to see the Firebase nodes in action, you can start Node It's easiest to see what's going on if you have the live Firebase view open in another browser window while you interact with the flows. - ## Bugs, questions, contribute - **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-contrib-firebase/issues). - **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me - **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-contrib-firebase#fork-destination-box) an send me an pull request. - + +## Thanks +Special thanks to +- Dave Conway-Jones and Nick O'Leary from IBM, founders of Node-RED. +- [hvissimo](https://github.com/hovissimo) for base of the Firebase node. --- + **Glossary ** 1. *[PM2](https://github.com/Unitech/pm2) Firebase is a cloud services provider and backend as a service company based in San Francisco, California. The company makes a number of products for software developers building mobile or web applications.* - - - - diff --git a/package.json b/package.json index 5b464e4..27a7d7b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "firebase_query.js", "repository": { "type": "git", - "url": "https://github.com/hovissimo/node-red-firebase.git" + "url": "https://github.com/vergissberlin/node-red-contrib-firebase.git" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" @@ -25,15 +25,16 @@ "firebase_watch": "firebase_watch.js" } }, - "author": "Hovis ", + "author": "André Lademann ", "contributors": [ - "André Lademann " + "André Lademann ", + "Hovis " ], "license": "MIT", "bugs": { - "url": "https://github.com/hovissimo/node-red-firebase/issues" + "url": "https://github.com/vergissberlin/node-red-contrib-firebase/issues" }, - "homepage": "https://github.com/hovissimo/node-red-firebase", + "homepage": "https://github.com/vergissberlin/node-red-contrib-firebase", "dependencies": { "firebase": "^2.2.9", "firebase-login-custom": "0.0.4", From 8f75704f7a8ec7d958adf14716e04c8f70219544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 21:30:47 +0200 Subject: [PATCH 07/20] Add travis configuration --- travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 travis.yml diff --git a/travis.yml b/travis.yml new file mode 100644 index 0000000..f90906f --- /dev/null +++ b/travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "0.12" +before_script: + - "sh -e /etc/init.d/xvfb start" + - npm install node-red-firebase-contrib From ef471be9ac40f28d8f6a4ce736f6d503cea2142f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 21:34:23 +0200 Subject: [PATCH 08/20] Ignore IDE files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9af6309..be65907 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.idea + /dev *.sw? From 901a2257b3d66dccf1a9c428e1b202228417157e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 21:39:45 +0200 Subject: [PATCH 09/20] Rename travis file --- travis.yml => .travis.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename travis.yml => .travis.yml (100%) diff --git a/travis.yml b/.travis.yml similarity index 100% rename from travis.yml rename to .travis.yml From 7eb95b96bbd4cc6a24f7890df00f32c45d804511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 22:49:01 +0200 Subject: [PATCH 10/20] Rename to node-red-contrib-firebase-api --- README.md | 12 ++++++------ package.json | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index db14633..bc6d0de 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Firebase nodes for Node-RED -[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase.svg)](https://github.com/vergissberlin/node-red-contrib-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase-api.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase-api) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase-api.svg)](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase-api "View this project on npm") [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) --- @@ -34,7 +34,7 @@ This allows you to automate Firebase data manipulation or generate custom events ## Installation cd ~/.node-red - npm install node-red-contrib-firebase + npm install node-red-contrib-firebase-api node-red -v Open your *Node-RED* Frontend and you will find the new node under the group *output*. **Happy wiring!** @@ -42,14 +42,14 @@ Open your *Node-RED* Frontend and you will find the new node under the group *ou ## Demo Check out the demo flows to see the Firebase nodes in action, you can start Node-RED with - node-red node_modules/node-red-contrib-firebase/demo_flows.json + node-red node_modules/node-red-contrib-firebase-api/demo_flows.json It's easiest to see what's going on if you have the live Firebase view open in another browser window while you interact with the flows. ## Bugs, questions, contribute -- **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-contrib-firebase/issues). -- **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-contrib-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me -- **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-contrib-firebase#fork-destination-box) an send me an pull request. +- **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues). +- **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me +- **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-contrib-firebase-api#fork-destination-box) an send me an pull request. ## Thanks diff --git a/package.json b/package.json index 27a7d7b..b28b3ad 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "firebase_query.js", "repository": { "type": "git", - "url": "https://github.com/vergissberlin/node-red-contrib-firebase.git" + "url": "https://github.com/vergissberlin/node-red-contrib-firebase-api.git" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" @@ -32,9 +32,9 @@ ], "license": "MIT", "bugs": { - "url": "https://github.com/vergissberlin/node-red-contrib-firebase/issues" + "url": "https://github.com/vergissberlin/node-red-contrib-firebase-api/issues" }, - "homepage": "https://github.com/vergissberlin/node-red-contrib-firebase", + "homepage": "https://github.com/vergissberlin/node-red-contrib-firebase-api", "dependencies": { "firebase": "^2.2.9", "firebase-login-custom": "0.0.4", From a0f8b683af5e3b4baf9655eef41be383ef2eb990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 22:50:36 +0200 Subject: [PATCH 11/20] Fixed package name typo --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b28b3ad..28118ff 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "node-red-firebase", + "name": "node-red-contrib-firebase-api", "version": "0.1.0", "description": "Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store.", "main": "firebase_query.js", From 685a02518852d7b4eca9587a7f71a17f55e126bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 23:00:22 +0200 Subject: [PATCH 12/20] Fixed gitter badge in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc6d0de..ca8ed35 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Firebase nodes for Node-RED -[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase-api.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase-api) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase-api.svg)](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase-api "View this project on npm") [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase-api.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase-api) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase-api.svg)](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase-api "View this project on npm") [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) --- From 1f249e93f2d823793b808efedb0415f711890693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 23:07:57 +0200 Subject: [PATCH 13/20] Fixed typo in travis configuration --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f90906f..89a59af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ node_js: - "0.12" before_script: - "sh -e /etc/init.d/xvfb start" - - npm install node-red-firebase-contrib + - npm install node-red-contrib-firebase-api From b813e066e1a7cb18df05ad5e58c9b5c441aeedd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Sun, 23 Aug 2015 23:09:14 +0200 Subject: [PATCH 14/20] Add install test --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 28118ff..0811309 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "url": "https://github.com/vergissberlin/node-red-contrib-firebase-api.git" }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "npm install" }, "keywords": [ "node-red", From a4db48b3870cb561aea84ddf4d2774c23a90dc0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20L=2E?= Date: Mon, 19 Oct 2015 10:12:55 +0200 Subject: [PATCH 15/20] Add firebase login as dependency --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0811309..4af6323 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "homepage": "https://github.com/vergissberlin/node-red-contrib-firebase-api", "dependencies": { "firebase": "^2.2.9", + "firebase-login": "^1.0.0", "firebase-login-custom": "0.0.4", "firebase-login-email": "^0.0.4" } From b05421ec59c7c0b971a5a5f5494b75551e896a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Mon, 19 Oct 2015 10:31:53 +0200 Subject: [PATCH 16/20] 0.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4af6323..f560d55 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-firebase-api", - "version": "0.1.0", + "version": "0.1.1", "description": "Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store.", "main": "firebase_query.js", "repository": { From 705d713574949c57211617f90400384cde217e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Mon, 19 Oct 2015 10:33:45 +0200 Subject: [PATCH 17/20] 0.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f560d55..2d39cb2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-firebase-api", - "version": "0.1.1", + "version": "0.1.2", "description": "Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store.", "main": "firebase_query.js", "repository": { From 2e36a3fb724a6ea94473007db0126affef7173e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lademann?= Date: Mon, 19 Oct 2015 15:12:14 +0200 Subject: [PATCH 18/20] Rename node-red-contrib-firebase-api back to node-red-firebase --- .travis.yml | 2 +- README.md | 12 ++++++------ package.json | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 89a59af..89deefa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ node_js: - "0.12" before_script: - "sh -e /etc/init.d/xvfb start" - - npm install node-red-contrib-firebase-api + - npm install node-red-firebase diff --git a/README.md b/README.md index ca8ed35..b929cc4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Firebase nodes for Node-RED -[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api.svg)](https://gemnasium.com/vergissberlin/node-red-contrib-firebase-api) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-contrib-firebase-api.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-contrib-firebase-api) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-contrib-firebase-api) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-contrib-firebase-api.svg)](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-contrib-firebase-api "View this project on npm") [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-firebase.svg)](https://github.com/vergissberlin/node-red-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vergissberlin/node-red-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) --- @@ -34,7 +34,7 @@ This allows you to automate Firebase data manipulation or generate custom events ## Installation cd ~/.node-red - npm install node-red-contrib-firebase-api + npm install node-red-firebase node-red -v Open your *Node-RED* Frontend and you will find the new node under the group *output*. **Happy wiring!** @@ -42,14 +42,14 @@ Open your *Node-RED* Frontend and you will find the new node under the group *ou ## Demo Check out the demo flows to see the Firebase nodes in action, you can start Node-RED with - node-red node_modules/node-red-contrib-firebase-api/demo_flows.json + node-red node_modules/node-red-firebase/demo_flows.json It's easiest to see what's going on if you have the live Firebase view open in another browser window while you interact with the flows. ## Bugs, questions, contribute -- **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-contrib-firebase-api/issues). -- **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-contrib-firebase-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me -- **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-contrib-firebase-api#fork-destination-box) an send me an pull request. +- **Found a bug?** Please submit issues to the [Github issue tracker](https://github.com/vergissberlin/node-red-firebase/issues). +- **Have questions?** Please use [Gitter](https://gitter.im/vergissberlin/node-red-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) to get in contact with me +- **Wanna contribute?** Please make a [fork](https://github.com/vergissberlin/node-red-firebase#fork-destination-box) an send me an pull request. ## Thanks diff --git a/package.json b/package.json index 2d39cb2..9cf8a07 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { - "name": "node-red-contrib-firebase-api", + "name": "node-red-firebase", "version": "0.1.2", "description": "Check it out! Now you can access your Firebase data with Node-RED! This allows you to automate Firebase data manipulation or generate custom events based on what's going on with your data store.", "main": "firebase_query.js", "repository": { "type": "git", - "url": "https://github.com/vergissberlin/node-red-contrib-firebase-api.git" + "url": "https://github.com/vergissberlin/node-red-firebase.git" }, "scripts": { "test": "npm install" @@ -32,9 +32,9 @@ ], "license": "MIT", "bugs": { - "url": "https://github.com/vergissberlin/node-red-contrib-firebase-api/issues" + "url": "https://github.com/vergissberlin/node-red-firebase/issues" }, - "homepage": "https://github.com/vergissberlin/node-red-contrib-firebase-api", + "homepage": "https://github.com/vergissberlin/node-red-firebase", "dependencies": { "firebase": "^2.2.9", "firebase-login": "^1.0.0", From f8486576ab959c2c9cbadbaaa2551f6429031944 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 22 Jun 2018 09:03:45 +0000 Subject: [PATCH 19/20] chore(package): update dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9cf8a07..85fe35c 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ }, "homepage": "https://github.com/vergissberlin/node-red-firebase", "dependencies": { - "firebase": "^2.2.9", + "firebase": "^5.1.0", "firebase-login": "^1.0.0", "firebase-login-custom": "0.0.4", "firebase-login-email": "^0.0.4" From c196c91f8b058e07f87f8bfb9ade88aeca756f97 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 22 Jun 2018 09:03:52 +0000 Subject: [PATCH 20/20] docs(readme): add Greenkeeper badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b929cc4..037d185 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Firebase nodes for Node-RED -[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-firebase.svg)](https://github.com/vergissberlin/node-red-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vergissberlin/node-red-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Dependency Status](https://gemnasium.com/vergissberlin/node-red-firebase.svg)](https://gemnasium.com/vergissberlin/node-red-firebase) [![Build Status](https://api.travis-ci.org/vergissberlin/node-red-firebase.png?branch=master)](https://travis-ci.org/vergissberlin/node-red-firebase) [![Inline docs](http://inch-ci.org/github/vergissberlin/node-red-firebase.svg?branch=master)](http://inch-ci.org/github/vergissberlin/node-red-firebase) [![Issues](http://img.shields.io/github/issues/vergissberlin/node-red-firebase.svg)](https://github.com/vergissberlin/node-red-firebase/issues "GitHub ticket system") [![npm version](https://img.shields.io/npm/v/node-red-contrib-keymetrics.png)](https://npmjs.org/package/node-red-firebase "View this project on npm") [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vergissberlin/node-red-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Greenkeeper badge](https://badges.greenkeeper.io/vergissberlin/node-red-firebase.svg)](https://greenkeeper.io/) ---