UNPKG

farmbot

Version:
3 lines (2 loc) 15.2 kB
var $eSX5Q$mqtt=require("mqtt");function $parcel$exportWildcard(e,r){return Object.keys(r).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})}),e}function $parcel$export(e,r,t,n){Object.defineProperty(e,r,{get:t,set:n,enumerable:!0,configurable:!0})}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}var $parcel$global=globalThis,$parcel$modules={},$parcel$inits={},parcelRequire=$parcel$global.parcelRequire1c57;null==parcelRequire&&((parcelRequire=function(e){if(e in $parcel$modules)return $parcel$modules[e].exports;if(e in $parcel$inits){var r=$parcel$inits[e];delete $parcel$inits[e];var t={id:e,exports:{}};return $parcel$modules[e]=t,r.call(t.exports,t,t.exports),t.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,r){$parcel$inits[e]=r},$parcel$global.parcelRequire1c57=parcelRequire);var parcelRegister=parcelRequire.register;parcelRegister("b3Gr5",function(e,r){var t=parcelRequire("crlg5"),n=parcelRequire("jKhzW"),o=parcelRequire("kgNDz"),i=parcelRequire("el3kn"),a=parcelRequire("hWgEQ");$parcel$exportWildcard(e.exports,t),$parcel$exportWildcard(e.exports,n),$parcel$exportWildcard(e.exports,o),$parcel$exportWildcard(e.exports,i),$parcel$exportWildcard(e.exports,a)}),parcelRegister("crlg5",function(e,r){$parcel$export(e.exports,"LATEST_VERSION",()=>t),$parcel$export(e.exports,"DIGITAL",()=>n),$parcel$export(e.exports,"ANALOG",()=>o);var t=0x133ecf1,n=0,o=1}),parcelRegister("jKhzW",function(e,r){$parcel$export(e.exports,"Farmbot",()=>l),parcelRequire("el3kn");var t=parcelRequire("d3ujF"),n=parcelRequire("2Wyna"),o=parcelRequire("bu5Qj");parcelRequire("b3Gr5");var i=parcelRequire("el3kn"),a=parcelRequire("lYlQL"),c=parcelRequire("c7gS9"),s=parcelRequire("7nBDP"),u=parcelRequire("g4iX8"),p=parcelRequire("7L8KP"),n=parcelRequire("2Wyna"),l=function(){function e(r){var l=this;this.getConfig=function(e){return l.config[e]},this.setConfig=function(e,r){l.config[e]=r},this.installFarmware=function(e){return l.send((0,n.rpcRequest)([{kind:"install_farmware",args:{url:e}}]))},this.updateFarmware=function(e){return l.send((0,n.rpcRequest)([{kind:"update_farmware",args:{package:e}}]))},this.removeFarmware=function(e){return l.send((0,n.rpcRequest)([{kind:"remove_farmware",args:{package:e}}]))},this.installFirstPartyFarmware=function(){return l.send((0,n.rpcRequest)([{kind:"install_first_party_farmware",args:{}}]))},this.powerOff=function(){return l.send((0,n.rpcRequest)([{kind:"power_off",args:{}}]))},this.reboot=function(){return l.send((0,n.rpcRequest)([{kind:"reboot",args:{package:"farmbot_os"}}]))},this.rebootFirmware=function(){return l.send((0,n.rpcRequest)([{kind:"reboot",args:{package:"arduino_firmware"}}]))},this.checkUpdates=function(){return l.send((0,n.rpcRequest)([{kind:"check_updates",args:{package:"farmbot_os"}}]))},this.resetOS=function(){return l.publish((0,n.rpcRequest)([{kind:"factory_reset",args:{package:"farmbot_os"}}]))},this.resetMCU=function(){return l.send((0,n.rpcRequest)([{kind:"factory_reset",args:{package:"arduino_firmware"}}]))},this.flashFirmware=function(e){return l.send((0,n.rpcRequest)([{kind:"flash_firmware",args:{package:e}}]))},this.emergencyLock=function(){var e=(0,n.rpcRequest)([{kind:"emergency_lock",args:{}}],n.Priority.HIGHEST);return l.send(e)},this.emergencyUnlock=function(){var e=(0,n.rpcRequest)([{kind:"emergency_unlock",args:{}}],n.Priority.HIGHEST);return l.send(e)},this.execSequence=function(e,r){return void 0===r&&(r=[]),l.send((0,n.rpcRequest)([{kind:"execute",args:{sequence_id:e},body:r}]))},this.execScript=function(e,r){return l.send((0,n.rpcRequest)([{kind:"execute_script",args:{label:e},body:r}]))},this.home=function(e){return l.send((0,n.rpcRequest)([{kind:"home",args:e}]))},this.findHome=function(e){return l.send((0,n.rpcRequest)([{kind:"find_home",args:e}]))},this.moveAbsolute=function(e){var r=e.x,o=e.y,i=e.z,c=e.speed||a.CONFIG_DEFAULTS.speed;return l.send((0,n.rpcRequest)([{kind:"move_absolute",args:{location:(0,t.coordinate)(r,o,i),offset:(0,t.coordinate)(0,0,0),speed:c}}]))},this.moveRelative=function(e){var r=e.x,t=e.y,o=e.z,i=e.speed||a.CONFIG_DEFAULTS.speed;return l.send((0,n.rpcRequest)([{kind:"move_relative",args:{x:r,y:t,z:o,speed:i}}]))},this.writePin=function(e){return l.send((0,n.rpcRequest)([{kind:"write_pin",args:e}]))},this.readPin=function(e){return l.send((0,n.rpcRequest)([{kind:"read_pin",args:e}]))},this.togglePin=function(e){return l.send((0,n.rpcRequest)([{kind:"toggle_pin",args:e}]))},this.readStatus=function(e){return void 0===e&&(e={}),l.send((0,n.rpcRequest)([{kind:"read_status",args:e}]))},this.takePhoto=function(e){return void 0===e&&(e={}),l.send((0,n.rpcRequest)([{kind:"take_photo",args:e}]))},this.sync=function(e){return void 0===e&&(e={}),l.send((0,n.rpcRequest)([{kind:"sync",args:e}]))},this.setZero=function(e){return l.send((0,n.rpcRequest)([{kind:"zero",args:{axis:e}}]))},this.setUserEnv=function(e){var r=Object.keys(e).map(function(r){return{kind:"pair",args:{label:r,value:e[r]||s.Misc.NULL}}});return l.send((0,n.rpcRequest)([{kind:"set_user_env",args:{},body:r}]))},this.sendMessage=function(e,r,t){void 0===t&&(t=[]),l.send((0,n.rpcRequest)([{kind:"send_message",args:{message_type:e,message:r},body:t.map(function(e){return{kind:"channel",args:{channel_name:e}}})}]))},this.setServoAngle=function(e){var r=l.send((0,n.rpcRequest)([{kind:"set_servo_angle",args:e}]));if(![4,5,6,11].includes(e.pin_number))throw Error("Servos only work on pins 4 and 5");if(e.pin_value>180||e.pin_value<0)throw Error("Pin value outside of 0...180 range");return r},this.calibrate=function(e){return l.send((0,n.rpcRequest)([{kind:"calibrate",args:e}]))},this.lua=function(e){return l.send((0,n.rpcRequest)([{kind:"lua",args:{lua:e}}]))},this.event=function(e){return l._events[e]=l._events[e]||[],l._events[e]},this.on=function(e,r,t){void 0===t&&(t=!1),l.event(e).push({value:r,once:t,event:e})},this.emit=function(e,r){var t=[];l.event(e).concat(l.event("*")).forEach(function(n){try{n.value(r,e),n.once||n.event!==e||t.push(n)}catch(r){console.warn("Exception thrown while handling '".concat(e,"' event.")),console.dir(r)}}),0===t.length?delete l._events[e]:l._events[e]=t},this.publish=function(e,r){if(void 0===r&&(r=!0),l.client)l.emit(s.FbjsEventName.sent,e),l.client.publish(l.channel.toDevice,JSON.stringify(e));else if(r)throw Error("Not connected to server")},this.send=function(e){return new Promise(function(r,t){l.publish(e),l.on(e.args.label,function(e){switch(e.kind){case"rpc_ok":return r(e);case"rpc_error":return t(Error((e.body||[]).map(function(e){return e.args.message}).join(", ")));default:throw console.dir(e),Error("Got a bad CeleryScript node.")}},!0)})},this._onmessage=function(e,r){var t=(0,i.bufferToString)(r),n=e.split(s.Misc.MQTT_DELIM),o=l.emit;try{var a=JSON.parse(t);if(n[0]==s.MqttChanName.publicBroadcast)return o(s.MqttChanName.publicBroadcast,a);switch(n[2]){case s.MqttChanName.logs:return o(s.FbjsEventName.logs,a);case s.MqttChanName.status:return o(s.FbjsEventName.status,a);case s.MqttChanName.sync:return o(s.FbjsEventName.sync,a);case s.MqttChanName.pong:return o(n[3],a);default:var c=(0,u.hasLabel)(a)?a.args.label:s.FbjsEventName.malformed;return o(c,a)}}catch(e){console.dir({text:"Could not parse inbound message from MQTT.",error:e}),o(s.FbjsEventName.malformed,t)}},this.ping=function(e,r){return void 0===e&&(e=1e4),void 0===r&&(r=(0,p.timestamp)()),l.setConfig("LAST_PING_OUT",r),l.doPing(r,e)},this.doPing=function(e,r){return Promise.race([new Promise(function(e,t){return setTimeout(function(){return t(-0)},r)}),new Promise(function(r,t){l.on(""+e,function(){var t=(0,p.timestamp)();l.setConfig("LAST_PING_IN",t),r(t-e)},!0);var n=l.channel.ping(e);l.client&&l.client.publish(n,JSON.stringify(e))})])},this.connect=function(){var r=l.config,t=r.mqttUsername,n=r.token,i=r.mqttServer,a=s.Misc.RECONNECT_THROTTLE_MS,u=$parcel$interopDefault($eSX5Q$mqtt).connect(i,{clean:!0,clientId:"FBJS-".concat(e.VERSION,"-").concat((0,o.uuid)()),password:n,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:a,username:t});l.client=u,l.resources=new(0,c.ResourceAdapter)(l,l.config.mqttUsername),u.on("message",l._onmessage),u.on("offline",function(){return l.emit(s.FbjsEventName.offline,{})}),u.on("connect",function(){return l.emit(s.FbjsEventName.online,{})});var p=[l.channel.logs,l.channel.status,l.channel.sync,l.channel.toClient,l.channel.pong];return u.subscribe(p),new Promise(function(e,r){if(l.client)l.client.once("connect",function(){return e(l)});else throw Error("Please connect first.")})},this._events={},this.config=(0,a.generateConfig)(r),this.resources=new(0,c.ResourceAdapter)(this,this.config.mqttUsername)}return Object.defineProperty(e.prototype,"channel",{get:function(){var e=this.config.mqttUsername;return{toDevice:"bot/".concat(e,"/").concat(s.MqttChanName.fromClients),toClient:"bot/".concat(e,"/").concat(s.MqttChanName.fromDevice),status:"bot/".concat(e,"/").concat(s.MqttChanName.status),logs:"bot/".concat(e,"/").concat(s.MqttChanName.logs),sync:"bot/".concat(e,"/").concat(s.MqttChanName.sync,"/#"),pong:"bot/".concat(e,"/pong/#"),ping:function(r){return"bot/".concat(e,"/ping/").concat(r)}}},enumerable:!1,configurable:!0}),e.VERSION="15.8.11",e}()}),parcelRegister("el3kn",function(e,r){$parcel$export(e.exports,"stringToBuffer",()=>s),$parcel$export(e.exports,"bufferToString",()=>p);var t=parcelRequire("d3ujF"),n=parcelRequire("g4iX8"),o=parcelRequire("cobLS"),i=parcelRequire("Az9Ui"),a=parcelRequire("2Wyna"),c=parcelRequire("bu5Qj");function s(e){return new Uint8Array(e.split("").map(function(e){return e.charCodeAt(0)}))}var u="undefined"!=typeof util&&util.TextDecoder?new util.TextDecoder:"undefined"!=typeof window&&window.TextDecoder?new window.TextDecoder:{decode:function(e){var r=[];return e.forEach(function(e){return r.push(String.fromCharCode(e))}),r.join("")}},p=function(e){return u.decode(e)};$parcel$exportWildcard(e.exports,t),$parcel$exportWildcard(e.exports,n),$parcel$exportWildcard(e.exports,o),$parcel$exportWildcard(e.exports,i),$parcel$exportWildcard(e.exports,a),$parcel$exportWildcard(e.exports,c)}),parcelRegister("d3ujF",function(e,r){$parcel$export(e.exports,"coordinate",()=>t);function t(e,r,t){return{kind:"coordinate",args:{x:e,y:r,z:t}}}}),parcelRegister("g4iX8",function(e,r){$parcel$export(e.exports,"isCeleryScript",()=>n),$parcel$export(e.exports,"hasLabel",()=>o);var t=function(e){return!!(e&&"object"==typeof e)};function n(e){var r;return t(e)&&"string"==typeof e.kind&&t(r=e)&&!!r.args}function o(e){return!!n(e)&&"string"==typeof e.args.label}}),parcelRegister("cobLS",function(e,r){$parcel$export(e.exports,"isNode",()=>t);function t(){return"undefined"==typeof window}}),parcelRegister("Az9Ui",function(e,r){$parcel$export(e.exports,"pick",()=>t);function t(e,r,t){return e[r]}}),parcelRegister("2Wyna",function(e,r){$parcel$export(e.exports,"Priority",()=>n),$parcel$export(e.exports,"rpcRequest",()=>i);var t,n,o=parcelRequire("bu5Qj");(t=n||(n={}))[t.HIGHEST=9e3]="HIGHEST",t[t.NORMAL=600]="NORMAL",t[t.LOWEST=300]="LOWEST";var i=function(e,r){return void 0===r&&(r=n.NORMAL),{kind:"rpc_request",args:{label:(0,o.uuid)(),priority:r},body:e}}}),parcelRegister("bu5Qj",function(e,r){$parcel$export(e.exports,"uuid",()=>t);function t(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)})}}),parcelRegister("lYlQL",function(e,r){$parcel$export(e.exports,"CONFIG_DEFAULTS",()=>n),$parcel$export(e.exports,"generateConfig",()=>i),parcelRequire("el3kn");var t=parcelRequire("cobLS"),n={speed:100},o=function(e){try{return JSON.parse(atob(e.split(".")[1]))}catch(e){throw console.warn(e),Error("Unable to parse token. Is it properly formatted?")}},i=function(e){if((0,t.isNode)()&&!$parcel$global.atob)throw Error("NOTE TO NODEJS USERS:\n\nThis library requires an 'atob()' function.\nPlease fix this first.\nSOLUTION: https://github.com/FarmBot/farmbot-js/issues/33");var r=o(e.token);return{speed:e.speed||n.speed,token:e.token,secure:!1!==e.secure,mqttServer:(0,t.isNode)()?"mqtt://".concat(r.mqtt,":1883"):r.mqtt_ws,mqttUsername:r.bot||"MISSING_MQTT_USERNAME",LAST_PING_OUT:0,LAST_PING_IN:0}}}),parcelRegister("c7gS9",function(e,r){$parcel$export(e.exports,"ResourceAdapter",()=>i),parcelRequire("b3Gr5");var t=parcelRequire("bu5Qj"),n=parcelRequire("a32Lo"),o=parcelRequire("adIE7"),i=function(e,r){var i=this;this.parent=e,this.username=r,this.destroy=function(e){var r=i.parent.client;return r?i.doDestroy(r,e.kind,e.id):(0,o.rejectRpc)()},this.save=function(e){var r=i.parent.client;return r?i.doSave(r,e):(0,o.rejectRpc)()},this.destroyAll=function(e){return Promise.all(e.map(function(e){return i.destroy(e)}))},this.doDestroy=function(e,r,o){return new Promise(function(a,c){var s=(0,t.uuid)();i.parent.on(s,(0,n.resolveOrReject)(a,c)),e.publish((0,n.outboundChanFor)(i.username,"destroy",r,s,o),"")})},this.doSave=function(e,r){return new Promise(function(o,a){var c=(0,t.uuid)();i.parent.on(c,(0,n.resolveOrReject)(o,a));var s=(0,n.outboundChanFor)(i.username,"save",r.kind,c,r.body.id);e.publish(s,JSON.stringify(r.body))})}}}),parcelRegister("a32Lo",function(e,r){$parcel$export(e.exports,"outboundChanFor",()=>t),$parcel$export(e.exports,"internalError",()=>n),$parcel$export(e.exports,"resolveOrReject",()=>o);var t=function(e,r,t,n,o){return void 0===o&&(o=0),["bot",e,"resources_v0",r,t,n,o].join("/")},n={kind:"rpc_error",args:{label:"BROWSER_LEVEL_FAILURE"},body:[{kind:"explanation",args:{message:"Tried to perform batch operation before connect."}}]},o=function(e,r){return function(t){return("rpc_ok"==t.kind?e:r)(t)}}}),parcelRegister("adIE7",function(e,r){$parcel$export(e.exports,"rejectRpc",()=>n);var t=parcelRequire("a32Lo"),n=function(){return Promise.reject(t.internalError)}}),parcelRegister("7nBDP",function(e,r){var t,n,o,i,a,c;$parcel$export(e.exports,"MqttChanName",()=>t),$parcel$export(e.exports,"FbjsEventName",()=>n),$parcel$export(e.exports,"Misc",()=>o),(i=t||(t={})).fromApi="from_api",i.fromClients="from_clients",i.fromDevice="from_device",i.logs="logs",i.status="status",i.sync="sync",i.publicBroadcast="public_broadcast",i.pong="pong",(a=n||(n={})).status="status",a.logs="logs",a.malformed="malformed",a.offline="offline",a.online="online",a.publicBroadcast="public_broadcast",a.sent="sent",a.sync="sync",a.remove="remove",(c=o||(o={})).MQTT_DELIM="/",c.NULL="null",c[c.RECONNECT_THROTTLE_MS=1e3]="RECONNECT_THROTTLE_MS"}),parcelRegister("7L8KP",function(e,r){$parcel$export(e.exports,"timestamp",()=>t);function t(){return Math.round(new Date().getTime()/100)}}),parcelRegister("kgNDz",function(e,r){var t,n;$parcel$export(e.exports,"Encoder",()=>t),(n=t||(t={}))[n.unknown=-1]="unknown",n[n.quadrature=0]="quadrature",n[n.differential=1]="differential"}),parcelRegister("hWgEQ",function(e,r){var t,n;$parcel$export(e.exports,"SpecialStatus",()=>t),(n=t||(t={})).DIRTY="DIRTY",n.SAVING="SAVING",n.SAVED=""}),window.fbjs=parcelRequire("b3Gr5"); //# sourceMappingURL=farmbot_single_file.js.map