1 line
18 KiB
JavaScript
1 line
18 KiB
JavaScript
import{$ as e,B as t,Dt as n,G as r,J as i,N as a,P as o,Pt as s,V as c,Wt as l,X as u,Xt as d,Y as f,dt as p,gt as m,ht as h,ot as g,q as _,ut as v}from"./vendor-quasar-BdHTqpDy.js";import{a as y}from"./vendor-vue-core-CuXzcq2w.js";import{t as b}from"./socketio-D07G01kR.js";var x=y(`deviceStore`,{state:()=>({deviceConnected:!1,lastKnownUptime:0,lastUpdatedTime:null}),getters:{},actions:{digestUpdate(e){this.deviceConnected=e.connected,this.lastKnownUptime=e.uptime,this.lastUpdatedTime=Date.now()},deviceControl(e,t=0){let n=E().debugLog,r={status:``,message:``};return n&&console.log(`deviceStore: got command: `,e,` with delay: `,t,` seconds`),b.emit(`device_control`,{command:e,delay:t},e=>{if(console.log(e.command_status,e.command),e.command_status==`ERROR`)throw r={status:`error`,message:e.message?.toString()},Error(e.message);r={status:`OK`,message:e.message?.toString()}}),r},async deviceControlAsync(e,t=0){let n=E().debugLog;return n&&console.log(`deviceStore: got command: `,e,` with delay: `,t,` seconds`),await new Promise(r=>{b.emit(`device_control`,{command:e,delay:t},e=>{n&&console.log(e.command_status,e.command),r({status:e.command_status===`ERROR`?`error`:`OK`,message:e.message||``})})})}}}),S=m({__name:`iCloudCodeDialog`,emits:[...a.emits],setup(o){let c=l(``),{dialogRef:m,onDialogOK:y,onDialogCancel:b}=a();function x(){y(c.value)}return(a,o)=>(n(),p(e,{ref_key:`dlgRef`,ref:m,persistent:``},{default:s(()=>[h(f,null,{default:s(()=>[h(i,{class:`row items-center`},{default:s(()=>[h(t,{icon:`password_2`,color:`primary`,"text-color":`white`}),o[1]||=v(`span`,{class:`q-ml-sm`},` iCloud Account requires Two-factor authentication.`,-1)]),_:1}),h(i,null,{default:s(()=>[h(r,{dense:``,modelValue:c.value,"onUpdate:modelValue":o[0]||=e=>c.value=e,mask:`######`,autofocus:``,onKeyup:g(x,[`enter`]),label:`Delay (seconds)`,type:`number`,rules:[e=>e.length===6||`Must be 6 digits`]},null,8,[`modelValue`,`rules`])]),_:1}),h(_,{align:`right`},{default:s(()=>[h(u,{flat:``,label:`OK`,color:`primary`,onClick:x}),h(u,{flat:``,label:`Cancel`,color:`primary`,onClick:d(b)},null,8,[`onClick`])]),_:1})]),_:1})]),_:1},512))}}),C=o(),w=y(`icloudStore`,{state:()=>({icloudMonitor:!1,findMyUpdate:null,consumerQueue:0,consumerTask:!1,monitorTask:!1,monitorEnabled:!1,monitorRunning:!1}),getters:{},actions:{bindEvents(){let e=E().debugLog;b.on(`icloud_2fa_request`,t=>{e&&console.log(`iCloud 2FA Request`),C.dialog({component:S}).onOk(e=>{t&&typeof t==`function`&&t(e)}).onCancel(()=>{e&&console.log(`Dialog cancelled`)}).onDismiss(()=>{e&&console.log(`Dialog dismissed`)})})},icloudMonitorControl(e){let t=E().debugLog,n={status:``,message:``};switch(e){case`start`:if(t&&console.log(`socketStore: got command: icloudMonitor start`),this.icloudMonitor)throw n={status:`error`,message:`iCloud Monitor is already running`},Error(`iCloud Monitor is already running`);t&&console.log(`Emitting icloud_monitor_control: start`),b.emit(`icloud_monitor_control`,{command:`start`},e=>{if(n.status=e.command_status,e.command_status==`ERROR`)throw e.message?(t&&console.log(e.message),n.message=e.message):n.message=`Error`,Error(n.message);n={status:`OK`,message:`iCloud Monitor: `+e.command_status},e.data?.icloud&&this.digestUpdate(e.data.icloud)});break;case`stop`:if(t&&console.log(`socketStore: got command: icloudMonitor stop`),!this.icloudMonitor)throw n={status:`error`,message:`iCloud Monitor is not running`},Error(`iCloud Monitor is not running`);t&&console.log(`Emitting icloud_monitor_control: stop`),b.emit(`icloud_monitor_control`,{command:`stop`},e=>{if(n.status=e.command_status,e.command_status==`ERROR`)throw e.message?(t&&console.log(e.message),n.message=e.message):n.message=`Error`,Error(n.message);n={status:`OK`,message:`iCloud Monitor: `+e.command_status},e.data?.icloud&&this.digestUpdate(e.data.icloud)});break;case`status`:t&&console.log(`socketStore: got command: icloudMonitor status`),b.emit(`icloud_monitor_control`,{command:`status`},e=>{if(n.status=e.command_status,e.command_status==`error`)throw e.message?(t&&console.log(e.message),n.message=e.message):n.message=`Error`,Error(n.message);n={status:`OK`,message:`iCloud Location Requested`},e.data?.icloud&&this.digestUpdate(e.data.icloud)});break;case`refresh`:t&&console.log(`socketStore: got command: icloudMonitor refresh`),b.emit(`icloud_monitor_control`,{command:`refresh`},e=>{if(n.status=e.command_status,e.command_status==`ERROR`)throw e.message?(t&&console.log(e.message),n.message=e.message):n.message=`Error`,Error(n.message);n={status:`OK`,message:`iCloud Monitor Enabled: `+e.data?.icloud?.monitor_enabled+`iCloud Monitor Running: `+e.data?.icloud?.monitor_running},e.data?.icloud&&this.digestUpdate(e.data.icloud)});break;default:throw n={status:`error`,message:`Invalid command`},Error(`Invalid command`)}return n},async icloudMonitorControlAsync(e){let t=E().debugLog;if(t&&console.log(`socketStore: got command: icloudMonitor `,e),e===`start`&&this.icloudMonitor)throw Error(`iCloud Monitor is already running`);if(e===`stop`&&!this.icloudMonitor)throw Error(`iCloud Monitor is not running`);return await new Promise(n=>{b.emit(`icloud_monitor_control`,{command:e},e=>{e.data?.icloud&&this.digestUpdate(e.data.icloud),t&&console.log(`response from icloud_monitor_control: `,e),n({status:e.command_status===`ERROR`?`error`:`OK`,message:e.message||``})})})},digestUpdate(e){`monitor_running`in e&&(this.icloudMonitor=e.monitor_running),`monitor_running`in e&&(this.icloudMonitor=e.monitor_running),`consumer_queue`in e&&(this.consumerQueue=e.consumer_queue),`consumer_task`in e&&(this.consumerTask=e.consumer_task),`monitor_enabled`in e&&(this.monitorEnabled=e.monitor_enabled),`monitor_task`in e&&(this.monitorTask=e.monitor_task),`monitor_running`in e&&(this.monitorRunning=e.monitor_running),e.fmf_location&&(this.findMyUpdate=e.fmf_location)}}}),T=y(`tunneldStore`,{state:()=>({tunnelConnected:!1,tunneldWatcher:!1}),getters:{},actions:{digestUpdate(e){this.tunnelConnected=e},tunneldControl(e,t=``){let n=E().debugLog,r={status:``,message:``};n&&console.log(`tunneldStore: got command: `,e);let i={command:e};return t!=``&&(i={command:e,udid:t}),b.emit(`tunneld_control`,i,e=>{if(console.log(e.command_status,e.command),e.command_status==`ERROR`)throw r={status:`error`,message:e.message?.toString()},Error(e.message);r={status:`OK`,message:e.message?.toString()}}),r},async tunneldControlAsync(e,t=``){let n=E().debugLog;n&&console.log(`tunneldStore: got command: `,e);let r={command:e};return t!==``&&(r={command:e,udid:t}),await new Promise(e=>{b.emit(`tunneld_control`,r,t=>{n&&console.log(t.command_status,t.command),e({status:t.command_status===`ERROR`?`error`:`OK`,message:t.message||``})})})}}}),E=y(`socketStore`,{state:()=>({sockConnected:!1,socketID:null,errorList:[],debugLog:!0}),getters:{},actions:{setSockStatus(){this.sockConnected=b.connected,this.socketID=b.id},connect(){this.debugLog&&console.log(`Connecting to server...`),b.connect(),this.setSockStatus()},disconnect(){b.disconnect(),this.setSockStatus()},toggleSock(){this.setSockStatus(),this.sockConnected?b.disconnect():b.connect(),this.setSockStatus()},bindEvents(){this.setSockStatus(),b.on(`connect`,()=>{this.setSockStatus(),b.emit(`message`,`Hello from client`,e=>{this.debugLog&&console.log(`Message delivered: `+e)}),this.debugLog&&console.log(`Connected to server`)}),b.on(`disconnect`,()=>{this.setSockStatus(),console.log(`Disconnected from server`)}),b.on(`error`,e=>{this.setSockStatus();let t={type:e.type,error:e.error};this.errorList.push(t),console.error(`Error Received: `,e)}),b.on(`app_error`,e=>{this.setSockStatus();let t={type:e.type,error:e.error,message:e.message,data:e.data};this.errorList.push(t),console.error(`Error Received: `,e)}),b.on(`test_prompt`,(e,t)=>{c.create({title:`Confirm Action`,message:e.prompt_name,cancel:!0,persistent:!0}).onOk(()=>{t({confirmed:!0})}).onCancel(()=>{t({confirmed:!1})}).onDismiss(()=>{t({confirmed:!1})})}),b.on(`status`,e=>{this.debugLog&&console.log(`StatusUpdate received: `,e),this.digestUpdate(e)})},requestUpdate(){b.emit(`request_update`,e=>{this.debugLog&&console.debug(`Received status update: `,e),this.digestUpdate(e)})},digestUpdate(e){let t=x(),n=w(),r=D(),i=T();if(e.simulation&&r.digestUpdate(e.simulation),e.device){let n=!!e.device.udid;t.digestUpdate({connected:n,uptime:e.device.uptime??0})}e.tunneld&&(i.tunnelConnected=!!e.tunneld.tunnel,i.tunneldWatcher=e.tunneld.tunnel_watcher_running),e.icloud&&n.digestUpdate(e.icloud)},requestSendTestPrompt(e){b.emit(`send_test_prompt`,{prompt_name:e},e=>{console.log(`Response from requestSendTestPrompt:`,e)})}}}),D=y(`simulationStore`,{state:()=>({currentLocation:{loc_id:null,latitude:null,longitude:null},gpsNoise:null,locationQueueData:{},locationQueueDeletedItems:[],locationQueueOrder:[],simulationQueueLength:0,simulationRunning:!1,simulationState:null,testMode:null,workerTask:null}),getters:{locationQueueFilteredActive:e=>{let t=[];return e.simulationQueueLength&&e.simulationQueueLength>0&&(t=e.locationQueueOrder.filter(t=>e.locationQueueData?.[t]?.status===`set`||e.locationQueueData?.[t]?.status===`queued`)),t},locationQueueFilteredDone:e=>{let t=[];return e.simulationQueueLength&&e.simulationQueueLength>0&&(t=e.locationQueueOrder.filter(t=>e.locationQueueData?.[t]?.status===`done`)),t},isLastLocationItem:e=>{if(e.simulationQueueLength&&e.currentLocation.loc_id)if(e.simulationQueueLength>0&&e.currentLocation){let t=e.locationQueueOrder.indexOf(e.currentLocation.loc_id);return e.simulationQueueLength-1===t}else return!1;else return!1}},actions:{bindEvents(){},simulationControl({command:e,latitude:t,longitude:n,loc_id:r,delay:i,address:a,type:o,instruction:s}){let c=E().debugLog,l={status:``,message:``};switch(e){case`start`:if(c&&console.log(`socketStore: got command: start`),this.simulationRunning||this.simulationState==`RUNNING`||this.simulationState==`PAUSED`)throw l={status:`error`,message:`Simulation is already running`},Error(`Simulation is already running`+this.simulationState);c&&console.log(`Emitting simulation_control: start`),b.emit(`simulation_control`,{command:`start`},e=>{if(e.command_status==`ERROR`)throw l={status:`error`,message:e.message?.toString()},Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);c&&console.log(`response from simulate_control_start: `,e)});break;case`test-mode`:b.emit(`simulation_control`,{command:`test-mode`},e=>{if(console.log(e),e.command_status===`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_test-mode: `,e),e.message});break;case`gps-noise`:b.emit(`simulation_control`,{command:`gps-noise`},e=>{if(e.command_status===`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_gps-noise: `,e),e.message});break;case`pause`:if(this.simulationState!==`RUNNING`)throw Error(`Simulation is not running`);b.emit(`simulation_control`,{command:`pause`},e=>{if(e.command_status===`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_pause: `,e),e.message});break;case`resume`:if(this.simulationState!==`PAUSED`)throw Error(`Simulation is not paused`);b.emit(`simulation_control`,{command:`resume`},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_resume: `,e),e.message});break;case`clear`:if(this.simulationQueueLength==0)throw Error(`Simulation queue is empty`);b.emit(`simulation_control`,{command:`clear`},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_clear: `,e),e.message});break;case`reset`:if(this.simulationQueueLength==0)throw Error(`Simulation queue is empty`);b.emit(`simulation_control`,{command:`reset`},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_reset: `,e),e.message});break;case`end`:if(this.simulationState==`ENDED`||!this.simulationRunning)throw Error(`Simulation has already ended`);b.emit(`simulation_control`,{command:`end`},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_end: `,e),e.message});break;case`add`:if(!t||!n)throw Error(`latitude or longitude not set`);a||=``,b.emit(`simulation_control`,{command:`add`,latitude:t,longitude:n,delay:i,address:a,type:o,instruction:s},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_add: `,e),e.message});break;case`delete`:if(!r)throw Error(`loc_id not set.`);b.emit(`simulation_control`,{command:`delete`,loc_id:r},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_delete: `,e),e.message});break;case`next`:b.emit(`simulation_control`,{command:`next`},e=>{if(e.command_status==`ERROR`)throw Error(e.message);if(e.data?.simulation)l={status:`OK`,message:e.message?.toString()},this.digestUpdate(e.data.simulation);else throw l={status:`error`,message:`Simulation queue data missing`},Error(e.message);return c&&console.log(`response from simulate_control_next: `,e),e.message});break;default:throw l={status:`error`,message:`Invalid command`},Error(`Invalid command`)}return l},async simulationControlAsync({command:e,latitude:t,longitude:n,loc_id:r,delay:i,address:a,type:o,instruction:s}){let c=E().debugLog;if(e===`start`&&(this.simulationRunning||this.simulationState===`RUNNING`||this.simulationState===`PAUSED`))throw Error(`Simulation is already running`+this.simulationState);if(e===`pause`&&this.simulationState!==`RUNNING`)throw Error(`Simulation is not running`);if(e===`resume`&&this.simulationState!==`PAUSED`)throw Error(`Simulation is not paused`);if((e===`clear`||e===`reset`)&&this.simulationQueueLength===0)throw Error(`Simulation queue is empty`);if(e===`end`&&(this.simulationState===`ENDED`||!this.simulationRunning))throw Error(`Simulation has already ended`);if(e===`add`&&(!t||!n))throw Error(`latitude or longitude not set`);if(e===`delete`&&!r)throw Error(`loc_id not set.`);let l={command:e,latitude:t,longitude:n,delay:i,loc_id:r,address:a??``,type:o,instruction:s};return c&&console.log(`Emitting simulation_control: `,l),await new Promise(e=>{b.emit(`simulation_control`,l,t=>{t.data?.simulation&&this.digestUpdate(t.data.simulation),c&&console.log(`response from simulation_control: `,t),e({status:t.command_status===`ERROR`?`error`:`OK`,message:t.message||``})})})},updateLocationMark(e,t,n){let r=E().debugLog,i={status:``,message:``};if(r&&console.log(`socketStore: Update LocationMark request, loc_id: %s, key: %s, new value: %s`,e,t,n),!this.locationQueueData[e])throw i={status:`error`,message:`Location Id: `+e+` is not in the simulation queue`},Error(`loc_id `+e+`not found`);r&&console.log(`Emitting LocationItem Update`),b.emit(`location_item_update`,{loc_id:e,key:t,value:n},e=>{if(console.log(`response from location_item_update: `,e),e.command_status==`ERROR`)throw i={status:`error`,message:e.message?.toString()},Error(e.message);if(e.data?.simulation)i={status:`OK`,message:e.message.toString()},this.digestUpdate(e.data.simulation);else throw i={status:`error`,message:`Simulation queue data missing`},Error(e.message);return r&&console.log(`response from simulate_control_test-mode: `,e),i})},updateLocationQueueCombined(e){let t=[...this.locationQueueFilteredDone,...e];this.updateLocationQueueOrder(t)},updateLocationQueueOrder(e){let t=E().debugLog,n;t&&console.log(`socketStore: Update Location Queue Order, new order: %s`,e),b.emit(`queue_order_update`,{newOrder:e},e=>{if(e.command_status==`ERROR`)throw n={status:`error`,message:e.message?.toString()},Error(e.message);if(e.data?.simulation)n={status:`OK`,message:e.message.toString()},this.digestUpdate(e.data.simulation);else throw n={status:`error`,message:`Simulation queue data missing`},Error(e.message);return t&&console.log(`response from simulate_control_test-mode: `,e),n})},getLocationData(e){return this.locationQueueData[e]},digestUpdate(e){e.current_location&&this.updateCurrentLocation(e.current_location),`test_mode`in e&&(this.testMode=e.test_mode),`gps_noise`in e&&(this.gpsNoise=e.gps_noise),`active`in e&&(this.simulationRunning=e.active),`state`in e&&(this.simulationState=e.state),e.data&&this.updateData(e.data),e.order&&(this.locationQueueOrder=e.order,this.simulationQueueLength=e.order.length),`deleted_items`in e&&(this.locationQueueDeletedItems=e.deleted_items??[]),`worker_task`in e&&(this.workerTask=e.worker_task)},updateCurrentLocation(e){`loc_id`in e&&(this.currentLocation.loc_id=e.loc_id??null),`latitude`in e&&(this.currentLocation.latitude=e.latitude??null),`longitude`in e&&(this.currentLocation.longitude=e.longitude??null)},updateData(e){let t=Object.keys(e).length;t===0&&(this.locationQueueData={}),t===1?this.locationQueueData={...this.locationQueueData,...e}:this.locationQueueData=e}}});export{x as a,w as i,E as n,T as r,D as t}; |