diff --git a/src/models/credentials.ts b/src/models/credentials.ts deleted file mode 100644 index 7f2d5fc..0000000 --- a/src/models/credentials.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { appStorage } from "../storage.js"; - -interface ICredentials { - appname: string; - credentials: string; -} - -export default { - findOne: ( - where: { appname: string }, - cb: (err: Error | null, credentials?: ICredentials) => void - ) => { - appStorage - .getItem("credentials") - .then((value) => { - const entity: ICredentials = { - appname: where.appname, - credentials: value && value.toString(), - }; - cb(null, entity); - }) - .catch(cb); - }, - - findOneAndUpdate: ( - where: { appname: string }, - data: { credentials: any }, - cb: (err: Error | null, credentials?: ICredentials) => {} - ) => { - const entity: ICredentials = { - appname: where.appname, - credentials: data.credentials, - }; - - appStorage - .setItem("credentials", entity) - .then(() => cb(null, entity)) - .catch(cb); - }, -}; diff --git a/src/models/flows.ts b/src/models/flows.ts deleted file mode 100644 index c805312..0000000 --- a/src/models/flows.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { appStorage } from "../storage.js"; - -interface IFlows { - appname: string; - flow: any; -} - -export default { - findOne: ( - where: { appname: string }, - cb: (err: Error | null, flows?: IFlows) => void - ) => { - appStorage - .getItem("flows") - .then((value) => { - const entity: IFlows = { - appname: where.appname, - flow: value, - }; - cb(null, entity); - }) - .catch(cb); - }, - - findOneAndUpdate: ( - where: { appname: string }, - data: { flow: any }, - cb: (err: Error | null, flows?: IFlows) => {} - ) => { - const entity: IFlows = { - appname: where.appname, - flow: data.flow, - }; - - appStorage - .setItem("flows", entity) - .then(() => cb(null, entity)) - .catch(cb); - }, -}; diff --git a/src/models/sessions.ts b/src/models/sessions.ts deleted file mode 100644 index 1de1a3f..0000000 --- a/src/models/sessions.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { appStorage } from "../storage.js"; - -interface ISessions { - appname: string; - sessions: any; -} - -export default { - findOne: ( - where: { appname: string }, - cb: (err: Error | null, sessions?: ISessions) => void - ) => { - appStorage - .getItem("sessions") - .then((value) => { - const entity: ISessions = { - appname: where.appname, - sessions: value, - }; - cb(null, entity); - }) - .catch(cb); - }, - - findOneAndUpdate: ( - where: { appname: string }, - data: { sessions: any }, - cb: (err: Error | null, sessions?: ISessions) => {} - ) => { - const entity: ISessions = { - appname: where.appname, - sessions: data.sessions, - }; - - appStorage - .setItem("sessions", entity) - .then(() => cb(null, entity)) - .catch(cb); - }, -}; diff --git a/src/models/settings.ts b/src/models/settings.ts deleted file mode 100644 index dd23fcc..0000000 --- a/src/models/settings.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { appStorage } from "../storage.js"; - -interface ISettings { - appname: string; - settings: any; -} - -export default { - findOne: ( - where: { appname: string }, - cb: (err: Error | null, settings?: ISettings) => void - ) => { - appStorage - .getItem("settings") - .then((value) => { - const entity: ISettings = { - appname: where.appname, - settings: value, - }; - cb(null, entity); - }) - .catch(cb); - }, - - findOneAndUpdate: ( - where: { appname: string }, - data: { settings: any }, - cb: (err: Error | null, settings?: ISettings) => {} - ) => { - const entity: ISettings = { - appname: where.appname, - settings: data.settings, - }; - - appStorage - .setItem("settings", entity) - .then(() => cb(null, entity)) - .catch(cb); - }, -}; diff --git a/src/storage.ts b/src/storage.ts index 645344e..dff210b 100644 --- a/src/storage.ts +++ b/src/storage.ts @@ -1,10 +1,6 @@ //@ts-nocheck import type { StorageModule } from "@node-red/runtime"; import { createStorage, prefixStorage, Storage } from "unstorage"; -import Flows from "./models/flows.js"; -import Credentials from "./models/credentials.js"; -import Settings from "./models/settings.js"; -import Sessions from "./models/sessions.js"; import Library from "./models/library.js"; import fsDriver from "unstorage/drivers/fs"; @@ -23,149 +19,24 @@ export const storageModule: StorageModule = { appStorage = prefixStorage(unstorage, appname); }, - getFlows: function () { //Needed - console.log("********* getFlows *********"); + getFlows: () => appStorage.getItem("flows").then((flows) => flows || []), - return new Promise(function (resolve, reject) { - Flows.findOne({ appname: appname }, function (err, flows) { - if (err) { - reject(err); - } else { - if (flows.flow) { - resolve(flows.flow); - } else { - resolve([]); - } - } - }); - }); - }, - - saveFlows: function (flows) { //Needed - console.log("********* saveFlows *********"); - - return new Promise(function (resolve, reject) { - Flows.findOneAndUpdate( - { appname: appname }, - { flow: flows }, - function (err, flows) { - if (err) { - reject(err); - } else { - resolve(); - } - } - ); - }); - }, - - getCredentials: function () { //Needed - console.log("********* getCredentials *********"); - - return new Promise(function (resolve, reject) { - Credentials.findOne({ appname: appname }, function (err, credentials) { - if (err) { - reject(err); - } else { - if (credentials.credentials) { - resolve(JSON.parse(credentials.credentials)); - } else { - resolve({}); - } - } - }); - }); - }, - - saveCredentials: function (credentials) { - console.log("********* saveCredentials *********"); - - return new Promise(function (resolve, reject) { - Credentials.findOneAndUpdate( - { appname: appname }, - { credentials: JSON.stringify(credentials) }, - function (err, credentials) { - if (err) { - reject(err); - } else { - resolve(); - } - } - ); - }); - }, - - getSettings: function () { //Needed - console.log("********* getSettings *********"); - - return new Promise(function (resolve, reject) { - Settings.findOne({ appname: appname }, function (err, settings) { - if (err) { - reject(err); - } else { - if (settings.settings) { - resolve(settings.settings); - } else { - resolve({}); - } - } - }); - }); - }, + saveFlows: (flows) => appStorage.setItem("flows", flows), - saveSettings: function (settings) { //Needed - console.log("********* saveSettings *********"); + getCredentials: () => + appStorage.getItem("credentials").then((creds) => creds || {}), - return new Promise(function (resolve, reject) { - Settings.findOneAndUpdate( - { appname: appname }, - { settings: settings }, - function (err, settings) { - if (err) { - reject(err); - } else { - resolve(); - } - } - ); - }); - }, + saveCredentials: () => appStorage.setItem("credentials", credentials), - getSessions: function () { - console.log("********* getSessions *********"); + getSettings: () => + appStorage.getItem("settings").then((settings) => settings || {}), - return new Promise(function (resolve, reject) { - Sessions.findOne({ appname: appname }, function (err, sessions) { - if (err) { - reject(err); - } else { - if (sessions.sessions) { - resolve(sessions.sessions); - } else { - resolve({}); - } - } - }); - }); - }, + saveSettings: () => appStorage.setItem("settings", settings), - saveSessions: function (sessions) { - console.log("********* saveSessions *********"); + getSessions: () => + appStorage.getItem("sessions").then((sessions) => sessions || {}), - return new Promise(function (resolve, reject) { - Sessions.findOneAndUpdate( - { appname: appname }, - { sessions: sessions }, - function (err, sessions) { - if (err) { - reject(err); - } else { - resolve(); - } - } - ); - }); - }, + saveSessions: () => appStorage.setItem("sessions", sessions), getLibraryEntry: function (type, name) { console.log("********* getLibraryEntry *********"); diff --git a/tmp/app0/flows b/tmp/app0/flows index 3485120..d518595 100644 --- a/tmp/app0/flows +++ b/tmp/app0/flows @@ -1,58 +1,55 @@ -{ - "appname": "app0", - "flow": [ - { - "id": "64c62fe28a7137ee", - "type": "tab", - "label": "Flow 1", - "disabled": false, - "info": "", - "env": [] - }, - { - "id": "2dedf91579a19ed6", - "type": "inject", - "z": "64c62fe28a7137ee", - "name": "", - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": 0.1, - "topic": "", - "payload": "", - "payloadType": "date", - "x": 280, - "y": 140, - "wires": [ - [ - "896cec745f1a1a0f" - ] +[ + { + "id": "ca62c5c8d2804cf1", + "type": "tab", + "label": "Flow 1", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "2e0dc21189ec9b7c", + "type": "inject", + "z": "ca62c5c8d2804cf1", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 340, + "y": 120, + "wires": [ + [ + "09c1ee47d041fe6f" ] - }, - { - "id": "896cec745f1a1a0f", - "type": "debug", - "z": "64c62fe28a7137ee", - "name": "debug 1", - "active": true, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "false", - "statusVal": "", - "statusType": "auto", - "x": 580, - "y": 140, - "wires": [] - } - ] -} + ] + }, + { + "id": "09c1ee47d041fe6f", + "type": "debug", + "z": "ca62c5c8d2804cf1", + "name": "debug 1", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 640, + "y": 100, + "wires": [] + } +] diff --git a/tmp/app0/settings b/tmp/app0/settings index a92c624..f2fdd29 100644 --- a/tmp/app0/settings +++ b/tmp/app0/settings @@ -1 +1 @@ -{"appname":"app0","settings":{"appname":"app0","settings":{"nodes":{"node-red":{"name":"node-red","version":"3.0.2-git","local":false,"user":false,"nodes":{"junction":{"name":"junction","types":["junction"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\05-junction.js"},"inject":{"name":"inject","types":["inject"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\20-inject.js"},"debug":{"name":"debug","types":["debug"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\21-debug.js"},"complete":{"name":"complete","types":["complete"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\24-complete.js"},"catch":{"name":"catch","types":["catch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-catch.js"},"status":{"name":"status","types":["status"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-status.js"},"link":{"name":"link","types":["link in","link out","link call"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\60-link.js"},"comment":{"name":"comment","types":["comment"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\90-comment.js"},"unknown":{"name":"unknown","types":["unknown"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\98-unknown.js"},"function":{"name":"function","types":["function"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-function.js"},"switch":{"name":"switch","types":["switch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-switch.js"},"change":{"name":"change","types":["change"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\15-change.js"},"range":{"name":"range","types":["range"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\16-range.js"},"template":{"name":"template","types":["template"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\80-template.js"},"delay":{"name":"delay","types":["delay"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-delay.js"},"trigger":{"name":"trigger","types":["trigger"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-trigger.js"},"exec":{"name":"exec","types":["exec"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\90-exec.js"},"rbe":{"name":"rbe","types":["rbe"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\rbe.js"},"tls":{"name":"tls","types":["tls-config"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\05-tls.js"},"httpproxy":{"name":"httpproxy","types":["http proxy"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\06-httpproxy.js"},"mqtt":{"name":"mqtt","types":["mqtt in","mqtt out","mqtt-broker"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\10-mqtt.js"},"httpin":{"name":"httpin","types":["http in","http response"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httpin.js"},"httprequest":{"name":"httprequest","types":["http request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httprequest.js"},"websocket":{"name":"websocket","types":["websocket in","websocket out","websocket-listener","websocket-client"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\22-websocket.js"},"tcpin":{"name":"tcpin","types":["tcp in","tcp out","tcp request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\31-tcpin.js"},"udp":{"name":"udp","types":["udp in","udp out"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\32-udp.js"},"CSV":{"name":"CSV","types":["csv"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-CSV.js"},"HTML":{"name":"HTML","types":["html"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-HTML.js"},"JSON":{"name":"JSON","types":["json"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-JSON.js"},"XML":{"name":"XML","types":["xml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-XML.js"},"YAML":{"name":"YAML","types":["yaml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-YAML.js"},"split":{"name":"split","types":["split","join"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\17-split.js"},"sort":{"name":"sort","types":["sort"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\18-sort.js"},"batch":{"name":"batch","types":["batch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\19-batch.js"},"file":{"name":"file","types":["file","file in"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\10-file.js"},"watch":{"name":"watch","types":["watch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\23-watch.js"}}},"node-red-contrib-sendgrid":{"name":"node-red-contrib-sendgrid","version":"0.2.1","local":true,"user":true,"nodes":{"sendgrid":{"name":"sendgrid","types":["sendgrid"],"enabled":true,"local":true,"user":false,"module":"node-red-contrib-sendgrid","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\node-red-contrib-sendgrid\\node.js"}}}},"users":{"_":{"editor":{"view":{"view-store-zoom":false,"view-store-position":false,"view-show-grid":true,"view-snap-grid":true,"view-grid-size":20,"view-node-status":true,"view-node-show-label":true,"view-show-tips":true,"view-show-welcome-tours":true},"tours":{"welcome":"3.0.2-git"}}}}},"nodes":{"node-red":{"name":"node-red","version":"3.0.2-git","local":false,"user":false,"nodes":{"junction":{"name":"junction","types":["junction"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\05-junction.js"},"inject":{"name":"inject","types":["inject"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\20-inject.js"},"debug":{"name":"debug","types":["debug"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\21-debug.js"},"complete":{"name":"complete","types":["complete"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\24-complete.js"},"catch":{"name":"catch","types":["catch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-catch.js"},"status":{"name":"status","types":["status"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-status.js"},"link":{"name":"link","types":["link in","link out","link call"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\60-link.js"},"comment":{"name":"comment","types":["comment"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\90-comment.js"},"unknown":{"name":"unknown","types":["unknown"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\98-unknown.js"},"function":{"name":"function","types":["function"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-function.js"},"switch":{"name":"switch","types":["switch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-switch.js"},"change":{"name":"change","types":["change"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\15-change.js"},"range":{"name":"range","types":["range"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\16-range.js"},"template":{"name":"template","types":["template"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\80-template.js"},"delay":{"name":"delay","types":["delay"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-delay.js"},"trigger":{"name":"trigger","types":["trigger"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-trigger.js"},"exec":{"name":"exec","types":["exec"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\90-exec.js"},"rbe":{"name":"rbe","types":["rbe"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\rbe.js"},"tls":{"name":"tls","types":["tls-config"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\05-tls.js"},"httpproxy":{"name":"httpproxy","types":["http proxy"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\06-httpproxy.js"},"mqtt":{"name":"mqtt","types":["mqtt in","mqtt out","mqtt-broker"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\10-mqtt.js"},"httpin":{"name":"httpin","types":["http in","http response"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httpin.js"},"httprequest":{"name":"httprequest","types":["http request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httprequest.js"},"websocket":{"name":"websocket","types":["websocket in","websocket out","websocket-listener","websocket-client"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\22-websocket.js"},"tcpin":{"name":"tcpin","types":["tcp in","tcp out","tcp request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\31-tcpin.js"},"udp":{"name":"udp","types":["udp in","udp out"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\32-udp.js"},"CSV":{"name":"CSV","types":["csv"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-CSV.js"},"HTML":{"name":"HTML","types":["html"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-HTML.js"},"JSON":{"name":"JSON","types":["json"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-JSON.js"},"XML":{"name":"XML","types":["xml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-XML.js"},"YAML":{"name":"YAML","types":["yaml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-YAML.js"},"split":{"name":"split","types":["split","join"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\17-split.js"},"sort":{"name":"sort","types":["sort"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\18-sort.js"},"batch":{"name":"batch","types":["batch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\19-batch.js"},"file":{"name":"file","types":["file","file in"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\10-file.js"},"watch":{"name":"watch","types":["watch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\23-watch.js"}}},"node-red-contrib-sendgrid":{"name":"node-red-contrib-sendgrid","version":"0.2.1","local":true,"user":true,"nodes":{"sendgrid":{"name":"sendgrid","types":["sendgrid"],"enabled":true,"local":true,"user":false,"module":"node-red-contrib-sendgrid","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\node-red-contrib-sendgrid\\node.js"}}}}}} \ No newline at end of file +{"nodes":{"node-red":{"name":"node-red","version":"3.0.2-git","local":false,"user":false,"nodes":{"junction":{"name":"junction","types":["junction"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\05-junction.js"},"inject":{"name":"inject","types":["inject"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\20-inject.js"},"debug":{"name":"debug","types":["debug"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\21-debug.js"},"complete":{"name":"complete","types":["complete"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\24-complete.js"},"catch":{"name":"catch","types":["catch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-catch.js"},"status":{"name":"status","types":["status"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-status.js"},"link":{"name":"link","types":["link in","link out","link call"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\60-link.js"},"comment":{"name":"comment","types":["comment"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\90-comment.js"},"unknown":{"name":"unknown","types":["unknown"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\98-unknown.js"},"function":{"name":"function","types":["function"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-function.js"},"switch":{"name":"switch","types":["switch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-switch.js"},"change":{"name":"change","types":["change"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\15-change.js"},"range":{"name":"range","types":["range"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\16-range.js"},"template":{"name":"template","types":["template"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\80-template.js"},"delay":{"name":"delay","types":["delay"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-delay.js"},"trigger":{"name":"trigger","types":["trigger"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-trigger.js"},"exec":{"name":"exec","types":["exec"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\90-exec.js"},"rbe":{"name":"rbe","types":["rbe"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\rbe.js"},"tls":{"name":"tls","types":["tls-config"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\05-tls.js"},"httpproxy":{"name":"httpproxy","types":["http proxy"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\06-httpproxy.js"},"mqtt":{"name":"mqtt","types":["mqtt in","mqtt out","mqtt-broker"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\10-mqtt.js"},"httpin":{"name":"httpin","types":["http in","http response"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httpin.js"},"httprequest":{"name":"httprequest","types":["http request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httprequest.js"},"websocket":{"name":"websocket","types":["websocket in","websocket out","websocket-listener","websocket-client"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\22-websocket.js"},"tcpin":{"name":"tcpin","types":["tcp in","tcp out","tcp request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\31-tcpin.js"},"udp":{"name":"udp","types":["udp in","udp out"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\32-udp.js"},"CSV":{"name":"CSV","types":["csv"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-CSV.js"},"HTML":{"name":"HTML","types":["html"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-HTML.js"},"JSON":{"name":"JSON","types":["json"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-JSON.js"},"XML":{"name":"XML","types":["xml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-XML.js"},"YAML":{"name":"YAML","types":["yaml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-YAML.js"},"split":{"name":"split","types":["split","join"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\17-split.js"},"sort":{"name":"sort","types":["sort"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\18-sort.js"},"batch":{"name":"batch","types":["batch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\19-batch.js"},"file":{"name":"file","types":["file","file in"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\10-file.js"},"watch":{"name":"watch","types":["watch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\23-watch.js"}}},"node-red-contrib-sendgrid":{"name":"node-red-contrib-sendgrid","version":"0.2.1","local":true,"user":true,"nodes":{"sendgrid":{"name":"sendgrid","types":["sendgrid"],"enabled":true,"local":true,"user":false,"module":"node-red-contrib-sendgrid","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\node-red-contrib-sendgrid\\node.js"}}}},"users":{"_":{"editor":{"view":{"view-store-zoom":false,"view-store-position":false,"view-show-grid":true,"view-snap-grid":true,"view-grid-size":20,"view-node-status":true,"view-node-show-label":true,"view-show-tips":true,"view-show-welcome-tours":true},"tours":{"welcome":"3.0.2-git"}}}}} \ No newline at end of file