From 232f39b861732e0acece57ce635ef121d946bb7e Mon Sep 17 00:00:00 2001 From: sixteenmillimeter Date: Mon, 22 Feb 2021 13:15:38 -0500 Subject: [PATCH] Remove the cli project. It was unmaintained and unnecessarily adds to the project complexity. --- cli/.gitignore | 1 - cli/data/cfg.json | 184 ---- cli/index.js | 99 -- cli/lib/Readme.md | 37 - cli/lib/arduino/Readme.md | 71 -- cli/lib/arduino/index.js | 408 -------- cli/lib/arduino/index.js.map | 1 - cli/lib/arduino/package.json | 11 - cli/lib/cam/Readme.md | 49 - cli/lib/cam/index.js | 224 ---- cli/lib/cam/index.js.map | 1 - cli/lib/cam/package.json | 11 - cli/lib/cmd/Readme.md | 0 cli/lib/cmd/index.js | 577 ----------- cli/lib/cmd/index.js.map | 1 - cli/lib/cmd/package.json | 11 - cli/lib/delay/Readme.md | 12 - cli/lib/delay/index.js | 15 - cli/lib/delay/index.js.map | 1 - cli/lib/delay/package.json | 11 - cli/lib/device/index.js | 301 ------ cli/lib/device/package.json | 11 - cli/lib/devices/Readme.md | 74 -- cli/lib/devices/index.js | 466 --------- cli/lib/devices/index.js.map | 1 - cli/lib/devices/package.json | 11 - cli/lib/display/Readme.md | 0 cli/lib/display/index.js | 190 ---- cli/lib/display/index.js.map | 1 - cli/lib/display/package.json | 11 - cli/lib/exec/Readme.md | 15 - cli/lib/exec/index.js | 44 - cli/lib/exec/index.js.map | 1 - cli/lib/exec/package.json | 11 - cli/lib/exit/Readme.md | 13 - cli/lib/exit/index.js | 20 - cli/lib/exit/index.js.map | 1 - cli/lib/exit/package.json | 11 - cli/lib/ffmpeg/Readme.md | 0 cli/lib/ffmpeg/index.js | 353 ------- cli/lib/ffmpeg/index.js.map | 1 - cli/lib/ffmpeg/package.json | 11 - cli/lib/ffprobe/Readme.md | 0 cli/lib/ffprobe/index.js | 144 --- cli/lib/ffprobe/index.js.map | 1 - cli/lib/ffprobe/package.json | 11 - cli/lib/filmout/Readme.md | 44 - cli/lib/filmout/index.js | 382 ------- cli/lib/filmout/index.js.map | 1 - cli/lib/filmout/package.json | 11 - cli/lib/frame/index.js | 70 -- cli/lib/frame/index.js.map | 1 - cli/lib/intval/Readme.md | 0 cli/lib/intval/index.js | 68 -- cli/lib/intval/index.js.map | 1 - cli/lib/intval/package.json | 11 - cli/lib/light/Readme.md | 32 - cli/lib/light/index.js | 97 -- cli/lib/light/index.js.map | 1 - cli/lib/light/package.json | 11 - cli/lib/log/Readme.md | 8 - cli/lib/log/index.js | 85 -- cli/lib/log/index.js.map | 1 - cli/lib/log/package.json | 11 - cli/lib/mscript/Readme.md | 186 ---- cli/lib/mscript/TODO.md | 13 - cli/lib/mscript/index.js | 691 ------------- cli/lib/mscript/index.js.map | 1 - cli/lib/mscript/index.old.js | 476 --------- cli/lib/mscript/package.json | 11 - cli/lib/proj/Readme.md | 37 - cli/lib/proj/index.js | 175 ---- cli/lib/proj/index.js.map | 1 - cli/lib/proj/package.json | 11 - cli/lib/sequencer/Readme.md | 0 cli/lib/sequencer/index.js | 240 ----- cli/lib/sequencer/index.js.map | 1 - cli/lib/sequencer/package.json | 11 - cli/lib/settings/Readme.md | 42 - cli/lib/settings/index.js | 113 -- cli/lib/settings/index.js.map | 1 - cli/lib/settings/package.json | 11 - cli/lib/spawn/Readme.md | 7 - cli/lib/spawn/index.js | 22 - cli/lib/spawn/package.json | 11 - cli/lib/system/Readme.md | 37 - cli/lib/system/index.js | 122 --- cli/lib/system/index.js.map | 1 - cli/lib/system/package.json | 11 - cli/package-lock.json | 1770 -------------------------------- cli/package.json | 51 - cli/scripts/build.js | 51 - scripts/compile.sh | 2 - scripts/version.sh | 2 +- 94 files changed, 1 insertion(+), 8370 deletions(-) delete mode 100644 cli/.gitignore delete mode 100644 cli/data/cfg.json delete mode 100644 cli/index.js delete mode 100644 cli/lib/Readme.md delete mode 100644 cli/lib/arduino/Readme.md delete mode 100644 cli/lib/arduino/index.js delete mode 100644 cli/lib/arduino/index.js.map delete mode 100644 cli/lib/arduino/package.json delete mode 100644 cli/lib/cam/Readme.md delete mode 100644 cli/lib/cam/index.js delete mode 100644 cli/lib/cam/index.js.map delete mode 100644 cli/lib/cam/package.json delete mode 100644 cli/lib/cmd/Readme.md delete mode 100644 cli/lib/cmd/index.js delete mode 100644 cli/lib/cmd/index.js.map delete mode 100644 cli/lib/cmd/package.json delete mode 100644 cli/lib/delay/Readme.md delete mode 100644 cli/lib/delay/index.js delete mode 100644 cli/lib/delay/index.js.map delete mode 100644 cli/lib/delay/package.json delete mode 100644 cli/lib/device/index.js delete mode 100644 cli/lib/device/package.json delete mode 100644 cli/lib/devices/Readme.md delete mode 100644 cli/lib/devices/index.js delete mode 100644 cli/lib/devices/index.js.map delete mode 100644 cli/lib/devices/package.json delete mode 100644 cli/lib/display/Readme.md delete mode 100644 cli/lib/display/index.js delete mode 100644 cli/lib/display/index.js.map delete mode 100644 cli/lib/display/package.json delete mode 100644 cli/lib/exec/Readme.md delete mode 100644 cli/lib/exec/index.js delete mode 100644 cli/lib/exec/index.js.map delete mode 100644 cli/lib/exec/package.json delete mode 100644 cli/lib/exit/Readme.md delete mode 100644 cli/lib/exit/index.js delete mode 100644 cli/lib/exit/index.js.map delete mode 100644 cli/lib/exit/package.json delete mode 100644 cli/lib/ffmpeg/Readme.md delete mode 100644 cli/lib/ffmpeg/index.js delete mode 100644 cli/lib/ffmpeg/index.js.map delete mode 100644 cli/lib/ffmpeg/package.json delete mode 100644 cli/lib/ffprobe/Readme.md delete mode 100644 cli/lib/ffprobe/index.js delete mode 100644 cli/lib/ffprobe/index.js.map delete mode 100644 cli/lib/ffprobe/package.json delete mode 100644 cli/lib/filmout/Readme.md delete mode 100644 cli/lib/filmout/index.js delete mode 100644 cli/lib/filmout/index.js.map delete mode 100644 cli/lib/filmout/package.json delete mode 100644 cli/lib/frame/index.js delete mode 100644 cli/lib/frame/index.js.map delete mode 100644 cli/lib/intval/Readme.md delete mode 100644 cli/lib/intval/index.js delete mode 100644 cli/lib/intval/index.js.map delete mode 100644 cli/lib/intval/package.json delete mode 100644 cli/lib/light/Readme.md delete mode 100644 cli/lib/light/index.js delete mode 100644 cli/lib/light/index.js.map delete mode 100644 cli/lib/light/package.json delete mode 100644 cli/lib/log/Readme.md delete mode 100644 cli/lib/log/index.js delete mode 100644 cli/lib/log/index.js.map delete mode 100644 cli/lib/log/package.json delete mode 100644 cli/lib/mscript/Readme.md delete mode 100644 cli/lib/mscript/TODO.md delete mode 100644 cli/lib/mscript/index.js delete mode 100644 cli/lib/mscript/index.js.map delete mode 100644 cli/lib/mscript/index.old.js delete mode 100644 cli/lib/mscript/package.json delete mode 100644 cli/lib/proj/Readme.md delete mode 100644 cli/lib/proj/index.js delete mode 100644 cli/lib/proj/index.js.map delete mode 100644 cli/lib/proj/package.json delete mode 100644 cli/lib/sequencer/Readme.md delete mode 100644 cli/lib/sequencer/index.js delete mode 100644 cli/lib/sequencer/index.js.map delete mode 100644 cli/lib/sequencer/package.json delete mode 100644 cli/lib/settings/Readme.md delete mode 100644 cli/lib/settings/index.js delete mode 100644 cli/lib/settings/index.js.map delete mode 100644 cli/lib/settings/package.json delete mode 100644 cli/lib/spawn/Readme.md delete mode 100644 cli/lib/spawn/index.js delete mode 100644 cli/lib/spawn/package.json delete mode 100644 cli/lib/system/Readme.md delete mode 100644 cli/lib/system/index.js delete mode 100644 cli/lib/system/index.js.map delete mode 100644 cli/lib/system/package.json delete mode 100644 cli/package-lock.json delete mode 100644 cli/package.json delete mode 100644 cli/scripts/build.js diff --git a/cli/.gitignore b/cli/.gitignore deleted file mode 100644 index 3c3629e..0000000 --- a/cli/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/cli/data/cfg.json b/cli/data/cfg.json deleted file mode 100644 index aa6d7e0..0000000 --- a/cli/data/cfg.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "version": "1.6.6", - "ext_port": 1111, - "profiles": { - "mcopy": { - "label": "Default mcopy profile", - "cam": { - "time": 850, - "delay": 50, - "momentary": 0 - }, - "proj": { - "time": 1400, - "delay": 50, - "momentary": 0 - }, - "black": { - "before": 0, - "after": 0 - }, - "light": false - }, - "jk103": { - "label": "JK103", - "cam": { - "time": 600, - "delay": 50, - "momentary": 240 - }, - "proj": { - "time": 950, - "delay": 50, - "momentary": 240 - }, - "black": { - "before": 0, - "after": 0 - }, - "light": false - }, - "jk_original": { - "label": "JK45 profile", - "cam": { - "time": 750, - "delay": 50, - "momentary": 300 - }, - "proj": { - "time": 1300, - "delay": 50, - "momentary": 300 - }, - "black": { - "before": 250, - "after": 250 - }, - "light": false - }, - "intval3": { - "label": "INTVAL3", - "cam": { - "time": 630, - "delay": 50, - "momentary": 0 - }, - "light": false - }, - "jk_mono": { - "label": "MONO's JK", - "cam": { - "time": 750, - "delay": 50, - "momentary": 300 - }, - "proj": { - "time": 1300, - "delay": 50, - "momentary": 300 - }, - "light": false, - "projector_second": true - }, - "oxberry": { - "label": "Oxberry", - "cam": { - "time": 550, - "delay": 50, - "momentary": 130 - }, - "proj": { - "time": 1340, - "delay": 50, - "momentary": 300 - }, - "light": false - }, - "norris": { - "label": "Norris", - "cam": { - "time": 650, - "delay": 50, - "momentary": 130 - }, - "light": false - } - }, - "cmd": { - "camera_forward": "CF", - "camera_backward": "CB", - "projector_forward": "PF", - "projector_backward": "PB", - "black_forward": "BF", - "black_backward": "BB", - "camera_second_forward": "C2F", - "camera_second_backward": "C2B", - "cameras_forward": "CCF", - "cameras_backward": "CCB", - "camera_forward_camera_second_backward": "CFCB", - "camera_backward_camera_second_forward": "CBCF", - "projector_second_forward": "P2F", - "projector_second_backward": "P2B", - "projectors_forward": "PPF", - "projectors_backward": "PPB", - "projector_forward_projector_second_backward": "PFPB", - "projector_backward_projector_second_forward": "PBPF", - "pause": "PA", - "alert": "AL" - }, - "arduino": { - "baud": 57600, - "board": "uno", - "serialDelay": 20, - "sequenceDelay": 100, - "cam": { - "time": 850, - "delay": 50, - "momentary": 300 - }, - "proj": { - "time": 1300, - "delay": 50, - "momentary": 300 - }, - "black": { - "before": 250, - "after": 250 - }, - "cmd": { - "debug": "d", - "connect": "i", - "light": "l", - "camera": "c", - "projector": "p", - "black": "b", - "camera_forward": "e", - "camera_backward": "f", - "projector_forward": "g", - "projector_backward": "h", - "projector_identifier": "j", - "camera_identifier": "k", - "mcopy_identifier": "m", - "camera_timed": "n", - "light_identifier": "o", - "projector_light_identifier": "q", - "projector_camera_light_identifier": "r", - "projector_camera_identifier": "s", - "projector_second_identifier": "t", - "projectors_identifier": "d", - "projector_second_forward": "u", - "projector_second_backward": "v", - "projector_second": "w", - "projectors": "x", - "camera_second_identifier": "y", - "cameras_identifier": "a", - "camera_second_forward": "1", - "camera_second_backward": "2", - "camera_second": "3", - "cameras": "4", - "camera_projectors_identifier": "5", - "cameras_projector_identifier": "6", - "cameras_projectors_identifier": "7" - } - } -} diff --git a/cli/index.js b/cli/index.js deleted file mode 100644 index 6a3bd5c..0000000 --- a/cli/index.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict' - -const program = require('commander') -const uuid = require('uuid') -const moment = require('moment') -const events = require('events') -const ee = new events.EventEmitter() - -const cfg = require('../app/data/cfg.json') -const pkg = require('./package.json') - -const { delay } = require('delay') -const { exit } = require('exit') -const intval = require('intval') -const arduino = require('arduino')(cfg, ee) -const Mscript = require('mscript') -const mscript = new Mscript() - -const dev = require('device')(arduino) -let log -let readline - -let devices - -async function command () { - return new Promise ((resolve, reject) => { - return readline.question(`Input:`, (str) => { - log.info(str) - console.dir(mscript.interpret(str)) - - //interpret string - //readline.close() - return resolve(true) - }) - }) -} - -async function live () { - readline = require('readline').createInterface({ - input: process.stdin, - output: process.stdout - }) - log.info('Starting live control mode') - while (true) { - try { - await command() - } catch (err) { - log.error('Error executing command', err) - } - } -} - -function parsePattern () { - -} - -async function main (arg) { - log = await require('log')(arg) - - log.info('mcopy-cli') - - try { - devices = await arduino.enumerate() - } catch (err) { - log.error('Error enumerating devices') - log.error(err) - } - - if (!devices ||devices.length > 1) { - //return exit('No devices found', 1) - devices = [] - } - - await dev.all(devices) - - if (arg.pattern) { - - } - - if (arg.live) { - try { - await live() - } catch (err) { - log.error('Error running in live control mode', err) - } - } -} - -program - .version(pkg.version) - .option('-l, --live', 'Live control mode') - .option('-f, --frames', 'Number of frames to capture with camera') - .option('-p, --pattern', 'Pattern of sequence to be repeated') - .option('-i, --intval', 'URL of intval3') - .option('-m, --mscript', 'Execute an mscript file') - .option('-q, --quiet', 'Suppresses all log messages') - .parse(process.argv) - -main(program) \ No newline at end of file diff --git a/cli/lib/Readme.md b/cli/lib/Readme.md deleted file mode 100644 index 9a1dbf0..0000000 --- a/cli/lib/Readme.md +++ /dev/null @@ -1,37 +0,0 @@ -## Functions - -
-
dependencies(platform)
-

Evaluates system dependencies for digital -projector features by executing processes with ---help flag. If they do not exist, log to console

-
-
system()object
-

Profile the current system and return an object with -data about the displays and dependencies for the digital -projector feature.

-
-
- - - -## dependencies(platform) -Evaluates system dependencies for digital -projector features by executing processes with ---help flag. If they do not exist, log to console - -**Kind**: global function - -| Param | Type | Description | -| --- | --- | --- | -| platform | string | Operating system type | - - - -## system() ⇒ object -Profile the current system and return an object with -data about the displays and dependencies for the digital -projector feature. - -**Kind**: global function -**Returns**: object - Object containing system information diff --git a/cli/lib/arduino/Readme.md b/cli/lib/arduino/Readme.md deleted file mode 100644 index 2e22601..0000000 --- a/cli/lib/arduino/Readme.md +++ /dev/null @@ -1,71 +0,0 @@ - - -## Arduino -Class representing the arduino communication features - -**Kind**: global class - -* [Arduino](#Arduino) - * [.enumerate()](#Arduino+enumerate) ⇒ Promise - * [.sendAsync(device, cmd)](#Arduino+sendAsync) ⇒ Promise - * [.writeAsync(device, str)](#Arduino+writeAsync) ⇒ Promise - * [.openArduino(device)](#Arduino+openArduino) ⇒ Promise - * [.closeArduino(device)](#Arduino+closeArduino) ⇒ Promise - - - -### arduino.enumerate() ⇒ Promise -Enumerate all connected devices that might be Arduinos - -**Kind**: instance method of [Arduino](#Arduino) -**Returns**: Promise - Resolves after enumerating - - -### arduino.sendAsync(device, cmd) ⇒ Promise -Send a command to an Arduino using async/await - -**Kind**: instance method of [Arduino](#Arduino) -**Returns**: Promise - Resolves after sending - -| Param | Type | Description | -| --- | --- | --- | -| device | string | Arduino identifier | -| cmd | string | Single character command to send | - - - -### arduino.writeAsync(device, str) ⇒ Promise -Send a string to an Arduino using async/await - -**Kind**: instance method of [Arduino](#Arduino) -**Returns**: Promise - Resolves after sending - -| Param | Type | Description | -| --- | --- | --- | -| device | string | Arduino identifier | -| str | string | String to send | - - - -### arduino.openArduino(device) ⇒ Promise -Connect to an Arduino using async/await - -**Kind**: instance method of [Arduino](#Arduino) -**Returns**: Promise - Resolves after opening - -| Param | Type | Description | -| --- | --- | --- | -| device | string | Arduino identifier | - - - -### arduino.closeArduino(device) ⇒ Promise -Close a connection to an Arduino using async/await - -**Kind**: instance method of [Arduino](#Arduino) -**Returns**: Promise - Resolves after closing - -| Param | Type | Description | -| --- | --- | --- | -| device | string | Arduino identifier | - diff --git a/cli/lib/arduino/index.js b/cli/lib/arduino/index.js deleted file mode 100644 index 67ac29b..0000000 --- a/cli/lib/arduino/index.js +++ /dev/null @@ -1,408 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -//import Log = require('log'); -const delay_1 = require("delay"); -const SerialPort = require('serialport'); -const Readline = SerialPort.parsers.Readline; -const exec = require('child_process').exec; -const parser = new Readline(''); -const newlineRe = new RegExp('\n', 'g'); -const returnRe = new RegExp('\r', 'g'); -let eventEmitter; -let cfg; -let arduino; -const KNOWN = [ - '/dev/tty.usbmodem1a161', - '/dev/tty.usbserial-A800f8dk', - '/dev/tty.usbserial-A900cebm', - '/dev/tty.usbmodem1a131', - '/dev/tty.usbserial-a900f6de', - '/dev/tty.usbmodem1a141', - '/dev/ttyACM0', - 'COM3' -]; -/** - * Class representing the arduino communication features - **/ -class Arduino { - constructor(errorState) { - this.path = {}; - this.known = KNOWN; - this.alias = {}; - this.serial = { connect: {}, projector: {}, camera: {}, light: {} }; - this.baud = 57600; - this.queue = {}; - this.timer = 0; - this.lock = false; - this.locks = {}; - this.errorState = errorState; - this.init(); - } - async init() { - const Log = require('log'); - this.log = await Log({ label: 'arduino' }); - } - /** - * Enumerate all connected devices that might be Arduinos - * - * @returns {Promise} Resolves after enumerating - **/ - async enumerate() { - let ports; - let matches = []; - try { - ports = await SerialPort.list(); - } - catch (err) { - throw err; - } - this.log.info('Available ports:'); - this.log.info(ports.map((port) => { return port.path; }).join(',')); - ports.forEach((port) => { - if (this.known.indexOf(port.path) !== -1) { - matches.push(port.path); - } - else if ((port.manufacturer + '').toLowerCase().indexOf('arduino') !== -1) { - matches.push(port.path); - } - else if ((port.path + '').toLowerCase().indexOf('usbserial') !== -1) { - matches.push(port.path); - } - else if ((port.path + '').toLowerCase().indexOf('usbmodem') !== -1) { - matches.push(port.path); - } - else if ((port.path + '').toLowerCase().indexOf('ttyusb') !== -1) { - matches.push(port.path); - } - }); - if (matches.length === 0) { - throw new Error('No USB devices found'); - } - else if (matches.length > 0) { - return matches; - } - } - /** - * Send a command to an Arduino using async/await - * - * @param {string} device Arduino identifier - * @param {string} cmd Single character command to send - * - * @returns {Promise} Resolves after sending - **/ - async sendAsync(device, cmd) { - return new Promise((resolve, reject) => { - this.queue[cmd] = (ms) => { - return resolve(ms); - }; - return this.serial[device].write(cmd, (err, results) => { - if (err) { - //console.error(err) - return reject(err); - } - // - }); - }); - } - async send(serial, cmd) { - const device = this.alias[serial]; - let results; - console.log(`${cmd} -> ${serial}`); - if (this.locks[serial]) { - return false; - } - this.timer = new Date().getTime(); - this.locks[serial] = true; - await delay_1.delay(cfg.arduino.serialDelay); - try { - results = await this.sendAsync(device, cmd); - } - catch (e) { - return console.error(e); - } - this.locks[serial] = false; - await eventEmitter.emit('arduino_send', cmd); - return results; - } - async string(serial, str) { - const device = this.alias[serial]; - let writeSuccess; - await delay_1.delay(cfg.arduino.serialDelay); - if (typeof this.serial[device].fake !== 'undefined' - && this.serial[device].fake) { - return this.serial[device].string(str); - } - else { - try { - writeSuccess = await this.writeAsync(device, str); - } - catch (e) { - return console.error(e); - } - return writeSuccess; - } - } - /** - * Send a string to an Arduino using async/await - * - * @param {string} device Arduino identifier - * @param {string} str String to send - * - * @returns {Promise} Resolves after sending - **/ - async writeAsync(device, str) { - return new Promise((resolve, reject) => { - this.serial[device].write(str, function (err, results) { - if (err) { - return reject(err); - } - return resolve(results); - }); - }); - } - end(serial, data) { - const end = new Date().getTime(); - const ms = end - this.timer; - let complete; - console.log(`${serial} -> ${data}`); - if (this.queue[data] !== undefined) { - this.locks[serial] = false; - complete = this.queue[data](ms); //execute callback - eventEmitter.emit('arduino_end', data); - delete this.queue[data]; - } - else if (data === 'E') { - //error state - //stop sequence - //throw error in ui - } - else { - //console.log('Received stray "' + data + '"'); //silent to user - } - return ms; - } - aliasSerial(serial, device) { - //this.log.info(`Making "${serial}" an alias of ${device}`); - this.alias[serial] = device; - } - async connect(serial, device, confirm) { - return new Promise(async (resolve, reject) => { - let connectSuccess; - this.path[serial] = device; - this.alias[serial] = device; - this.serial[device] = new SerialPort(this.path[serial], { - autoOpen: false, - baudRate: cfg.arduino.baud, - parser: parser - }); - this.locks[device] = false; - try { - connectSuccess = await this.openArduino(device); - } - catch (e) { - console.error('failed to open: ' + e); - return reject(e); - } - //console.log(`Opened connection with ${this.path[serial]} as ${serial}`); - if (!confirm) { - this.serial[device].on('data', async (data) => { - let d = data.toString('utf8'); - d = d.replace(newlineRe, '').replace(returnRe, ''); - return this.end(serial, d); - }); - } - else { - this.serial[device].on('data', async (data) => { - let d = data.toString('utf8'); - d = d.replace(newlineRe, '').replace(returnRe, ''); - return await this.confirmEnd(d); - }); - } - return resolve(this.path[serial]); - }); - } - confirmEnd(data) { - //console.dir(data) - if (data === cfg.arduino.cmd.connect - || data === cfg.arduino.cmd.projector_identifier - || data === cfg.arduino.cmd.camera_identifier - || data === cfg.arduino.cmd.light_identifier - || data === cfg.arduino.cmd.projector_light_identifier - || data === cfg.arduino.cmd.projector_camera_light_identifier - || data === cfg.arduino.cmd.projector_camera_identifier - || data === cfg.arduino.cmd.projector_second_identifier - || data === cfg.arduino.cmd.projectors_identifier - || data === cfg.arduino.cmd.projector_second_forward - || data === cfg.arduino.cmd.projector_second_backward - || data === cfg.arduino.cmd.projector_second - || data === cfg.arduino.cmd.projectors - || data === cfg.arduino.cmd.camera_second_identifier - || data === cfg.arduino.cmd.cameras_identifier - || data === cfg.arduino.cmd.camera_second_forward - || data === cfg.arduino.cmd.camera_second_backward - || data === cfg.arduino.cmd.camera_second - || data === cfg.arduino.cmd.cameras) { - this.confirmExec(null, data); - this.confirmExec = {}; - } - } - async verify() { - return new Promise(async (resolve, reject) => { - const device = this.alias['connect']; - let writeSuccess; - this.confirmExec = function (err, data) { - if (data === cfg.arduino.cmd.connect) { - return resolve(true); - } - else { - return reject('Wrong data returned'); - } - }; - await delay_1.delay(cfg.arduino.serialDelay); - try { - writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.connect); - } - catch (e) { - return reject(e); - } - return resolve(writeSuccess); - }); - } - async distinguish() { - return new Promise(async (resolve, reject) => { - const device = this.alias['connect']; - let writeSuccess; - let type; - this.confirmExec = function (err, data) { - if (data === cfg.arduino.cmd.projector_identifier) { - type = 'projector'; - } - else if (data === cfg.arduino.cmd.camera_identifier) { - type = 'camera'; - } - else if (data === cfg.arduino.cmd.light_identifier) { - type = 'light'; - } - else if (data === cfg.arduino.cmd.projector_light_identifier) { - type = 'projector,light'; - } - else if (data === cfg.arduino.cmd.projector_camera_light_identifier) { - type = 'projector,camera,light'; - } - else if (data === cfg.arduino.cmd.projector_camera_identifier) { - type = 'projector,camera'; - } - else if (data === cfg.arduino.cmd.projector_second_identifier) { - type = 'projector_second'; - } - else if (data === cfg.arduino.cmd.projectors_identifier) { - type = 'projector,projector_second'; - } - else if (data === cfg.arduino.cmd.camera_second_identifier) { - type = 'camera_second'; - } - else if (data === cfg.arduino.cmd.cameras_identifier) { - type = 'camera,camera_second'; - } - else if (data === cfg.arduino.cmd.camera_projectors_identifier) { - type = 'camera,projector,projector_second'; - } - else if (data === cfg.arduino.cmd.cameras_projector_identifier) { - type = 'camera,camera_second,projector'; - } - else if (data === cfg.arduino.cmd.cameras_projectors_identifier) { - type = 'camera,camera_second,projector,projector_second'; - } - return resolve(type); - }; - await delay_1.delay(cfg.arduino.serialDelay); - try { - writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.mcopy_identifier); - } - catch (e) { - return reject(e); - } - }); - } - async close() { - const device = this.alias['connect']; - let closeSuccess; - try { - closeSuccess = await this.closeArduino(device); - } - catch (e) { - throw e; - } - return closeSuccess; - } - ; - async fakeConnect(serial) { - const device = '/dev/fake'; - this.alias[serial] = device; - this.serial[device] = { - write: async function (cmd, cb) { - const t = { - c: cfg.arduino.cam.time + cfg.arduino.cam.delay, - p: cfg.arduino.proj.time + cfg.arduino.proj.delay - }; - let timeout = t[cmd]; - if (typeof timeout === 'undefined') - timeout = 10; - arduino.timer = +new Date(); - await delay_1.delay(timeout); - arduino.end(serial, cmd); - return cb(); - }, - string: async function (str) { - //do nothing - return true; - }, - fake: true - }; - //console.log('Connected to fake arduino! Not real! Does not exist!'); - return true; - } - /** - * Connect to an Arduino using async/await - * - * @param {string} device Arduino identifier - * - * @returns {Promise} Resolves after opening - **/ - async openArduino(device) { - return new Promise((resolve, reject) => { - return this.serial[device].open((err) => { - if (err) { - return reject(err); - } - return resolve(true); - }); - }); - } - /** - * Close a connection to an Arduino using async/await - * - * @param {string} device Arduino identifier - * - * @returns {Promise} Resolves after closing - **/ - async closeArduino(device) { - return new Promise((resolve, reject) => { - return this.serial[device].close((err) => { - if (err) { - return reject(err); - } - return resolve(true); - }); - }); - } -} -if (typeof module !== 'undefined' && module.parent) { - module.exports = function (c, ee, errorState) { - eventEmitter = ee; - cfg = c; - arduino = new Arduino(errorState); - return arduino; - }; -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/arduino/index.js.map b/cli/lib/arduino/index.js.map deleted file mode 100644 index a5ad869..0000000 --- a/cli/lib/arduino/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/arduino/package.json b/cli/lib/arduino/package.json deleted file mode 100644 index 43708c1..0000000 --- a/cli/lib/arduino/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "arduino", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/cam/Readme.md b/cli/lib/cam/Readme.md deleted file mode 100644 index 3825697..0000000 --- a/cli/lib/cam/Readme.md +++ /dev/null @@ -1,49 +0,0 @@ - - -## Camera -class representing camera functions - -**Kind**: global class - -* [Camera](#Camera) - * [.init()](#Camera+init) - * [.listen()](#Camera+listen) - * [.set()](#Camera+set) - * [.move()](#Camera+move) - * [.exposure()](#Camera+exposure) - * [.connectIntval()](#Camera+connectIntval) - * [.listener()](#Camera+listener) - * [.end()](#Camera+end) - - - -### camera.init() -**Kind**: instance method of [Camera](#Camera) - - -### camera.listen() -**Kind**: instance method of [Camera](#Camera) - - -### camera.set() -**Kind**: instance method of [Camera](#Camera) - - -### camera.move() -**Kind**: instance method of [Camera](#Camera) - - -### camera.exposure() -**Kind**: instance method of [Camera](#Camera) - - -### camera.connectIntval() -**Kind**: instance method of [Camera](#Camera) - - -### camera.listener() -**Kind**: instance method of [Camera](#Camera) - - -### camera.end() -**Kind**: instance method of [Camera](#Camera) diff --git a/cli/lib/cam/index.js b/cli/lib/cam/index.js deleted file mode 100644 index a69c877..0000000 --- a/cli/lib/cam/index.js +++ /dev/null @@ -1,224 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const intval_1 = require("intval"); -/** class representing camera functions **/ -class Camera { - /** - * - **/ - constructor(arduino, cfg, ui, filmout, second = false) { - this.state = { - pos: 0, - dir: true - }; - this.arduino = null; - this.intval = null; - this.id = 'camera'; - this.arduino = arduino; - this.cfg = cfg; - this.ui = ui; - this.filmout = filmout; - if (second) - this.id += '_second'; - this.init(); - } - /** - * - **/ - async init() { - const Log = require('log'); - this.log = await Log({ label: this.id }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * - **/ - listen() { - this.ipc.on(this.id, this.listener.bind(this)); - this.ipc.on('intval', this.connectIntval.bind(this)); - } - /** - * - **/ - async set(dir, id) { - let cmd; - let ms; - if (dir) { - cmd = this.cfg.arduino.cmd[`${this.id}_forward`]; - } - else { - cmd = this.cfg.arduino.cmd[`${this.id}_backward`]; - } - this.state.dir = dir; - if (this.intval) { - try { - ms = await this.intval.setDir(dir); - } - catch (err) { - this.log.error(err); - } - } - else { - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(err); - } - } - return await this.end(cmd, id, ms); - } - /** - * - **/ - async move(frame, id) { - const cmd = this.cfg.arduino.cmd[this.id]; - let ms; - if (this.filmout.state.enabled) { - await this.filmout.start(); - } - if (this.intval) { - try { - ms = await this.intval.move(); - } - catch (err) { - this.log.error(err); - } - } - else { - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(err); - } - } - if (this.filmout.state.enabled) { - //await delay(100 * 1000); - await this.filmout.end(); - } - //this.log.info('Camera move time', { ms }); - return this.end(cmd, id, ms); - } - async both(frame, id) { - const cmd = this.cfg.arduino.cmd[id]; - let ms; - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(`Error moving ${this.id}`, err); - } - //this.log.info('Cameras move time', { ms }); - return await this.end(cmd, id, ms); - } - /** - * - **/ - exposure(exposure, id) { - let cmd = 'E'; - this.intval.setExposure(this.id, exposure, (ms) => { - this.end(cmd, id, ms); - }); - } - /** - * - **/ - async connectIntval(event, arg) { - return new Promise((resolve, reject) => { - if (arg.connect) { - this.intval = new intval_1.Intval(arg.url); - this.intval.connect((err, ms, state) => { - if (err) { - this.ui.send('intval', { connected: false }); - this.log.info(`Cannot connect to ${arg.url}`, 'INTVAL'); - this.intval = null; - } - else { - this.ui.send('intval', { connected: true, url: arg.url, state: state }); - this.log.info(`Connected to INTVAL3 @ ${arg.url}`, 'INTVAL'); - } - return resolve(true); - }); - } - else if (arg.disconnect) { - this.intval = null; - return resolve(false); - } - }); - } - /** - * - **/ - async listener(event, arg) { - if (typeof arg.dir !== 'undefined') { - try { - await this.set(arg.dir, arg.id); - } - catch (err) { - this.log.error(err); - } - } - else if (typeof arg.frame !== 'undefined') { - try { - await this.move(arg.frame, arg.id); - } - catch (err) { - this.log.error(err); - } - } - else if (typeof arg.val !== 'undefined') { - this.state.pos = arg.val; - } - event.returnValue = true; - } - /** - * - **/ - async end(cmd, id, ms) { - let message = ''; - if (cmd === this.cfg.arduino.cmd.camera_forward) { - message = 'Camera set to FORWARD'; - } - else if (cmd === this.cfg.arduino.cmd.camera_backward) { - message = 'Camera set to BACKWARD'; - } - else if (cmd === this.cfg.arduino.cmd.camera_second_forward) { - message = 'Camera second set to FORWARD'; - } - else if (cmd === this.cfg.arduino.cmd.camera_second_backward) { - message = 'Camera second set to BACKWARD'; - } - else if (cmd === this.cfg.arduino.cmd.camera) { - message = 'Camera '; - if (this.state.dir) { - message += 'ADVANCED'; - } - else { - message += 'REWOUND'; - } - message += ' 1 frame'; - } - else if (cmd === this.cfg.arduino.cmd.camera_second) { - message = 'Camera second '; - if (this.state.dir) { - message += 'ADVANCED'; - } - else { - message += 'REWOUND'; - } - message += ' 1 frame'; - } - else if (cmd === this.cfg.arduino.cmd.camerass) { - message += 'Cameras both MOVED 1 frame each'; - } - message += ` ${ms}ms`; - this.log.info(message); - this.ui.send(this.id, { cmd: cmd, id: id, ms: ms }); - } -} -module.exports = function (arduino, cfg, ui, filmout, second) { - return new Camera(arduino, cfg, ui, filmout, second); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/cam/index.js.map b/cli/lib/cam/index.js.map deleted file mode 100644 index a1ece7a..0000000 --- a/cli/lib/cam/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/cam/package.json b/cli/lib/cam/package.json deleted file mode 100644 index 980dbbd..0000000 --- a/cli/lib/cam/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "cam", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/cmd/Readme.md b/cli/lib/cmd/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/cmd/index.js b/cli/lib/cmd/index.js deleted file mode 100644 index b159fc6..0000000 --- a/cli/lib/cmd/index.js +++ /dev/null @@ -1,577 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const uuid_1 = require("uuid"); -const delay_1 = require("delay"); -class Commands { - /** - * @constructor - * Assign all connected devices and mock devices as private classes. - * - * @param {object} cfg Configuration object - * @param {object} proj Projector 1 - * @param {object} cam Camera 1 - * @param {object} light Light source - * @param {object} cam2 (optional) Camera 2 - * @param {object} proj2 {optional} Projector 2 - **/ - constructor(cfg, proj, cam, light, cam2 = null, proj2 = null) { - this.cfg = cfg; - this.proj = proj; - this.cam = cam; - this.light = light; - if (cam2) - this.cam2 = cam2; - if (proj2) - this.proj2 = proj2; - this.ipc = require('electron').ipcMain; - } - /** - * Move the projector one frame forward - * - * @returns {integer} Length of action in ms - **/ - async projector_forward() { - let ms; - try { - if (!this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.proj.move(); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the projector one frame backward - * - * @returns {integer} Length of action in ms - **/ - async projector_backward() { - let ms; - try { - if (this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.proj.move(); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the camera one frame forward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async camera_forward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (!this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the camera one frame forward with light off - * - * @returns {integer} Length of action in ms - **/ - async black_forward() { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (!this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); //make sure set to off - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the camera one frame backward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async camera_backward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the camera one frame forward, light set to black or off - * - * @returns {integer} Length of action in ms - **/ - async black_backward() { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); //make sure set to off - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the second camera one frame forward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async camera_second_forward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (!this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam2.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the second camera one frame backward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async camera_second_backward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let ms; - try { - if (this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam2.move(); - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the both cameras one frame forward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async cameras_forward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let both; - let ms; - try { - if (!this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(true); - } - if (!this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) { - ms = await this.cam.both(); - } - else { - this.cam.move(); - this.cam2.move(); - both = [await this.cam.move, await this.cam2.move]; - ms = Math.max(...both); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the both cameras one frame backward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async cameras_backward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let both; - let ms; - try { - if (this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(false); - } - if (this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) { - ms = await this.cam.both(); - } - else { - this.cam.move(); - this.cam2.move(); - both = [await this.cam.move, await this.cam2.move]; - ms = Math.max(...both); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move first camera one frame forward and rewind secondary camera one frame backward - * - * @param {array} rgb Color to set light for frames - * - * @returns {integer} Length of action in ms - **/ - async camera_forward_camera_second_backward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let both; - let ms; - try { - if (!this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(true); - } - if (this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) { - ms = await this.cam.both(); - } - else { - this.cam.move(); - this.cam2.move(); - both = [await this.cam.move, await this.cam2.move]; - ms = Math.max(...both); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Rewind first camera one frame backward and move secondary camera one frame forward - * - * @param {array} rgb Color to set light for frame - * - * @returns {integer} Length of action in ms - **/ - async camera_backward_camera_second_forward(rgb = [255, 255, 255]) { - const id = uuid_1.v4(); - const off = [0, 0, 0]; - let both; - let ms; - try { - if (this.cam.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam.set(false); - } - if (!this.cam2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.cam2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(rgb, id); - await delay_1.delay(this.cfg.arduino.serialDelay); - if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) { - ms = await this.cam.both(); - } - else { - this.cam.move(); - this.cam.move(); - both = [await this.cam.move, await this.proj2.move]; - ms = Math.max(...both); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.light.set(off, id); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the secondary projector forward one frame - * - * @returns {integer} Length of action in ms - **/ - async projector_second_forward() { - let ms; - try { - if (!this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.proj2.move(); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Rewind the secondary projector backward one frame - * - * @returns {integer} Length of action in ms - **/ - async projector_second_backward() { - let ms; - try { - if (this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.proj2.move(); - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the both projectors forward one frame - * - * @returns {integer} Length of action in ms - **/ - async projectors_forward() { - let both; - let ms; - try { - if (!this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(true); - } - if (!this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) { - ms = await this.proj.both(); - } - else { - this.proj.move(); - this.proj2.move(); - both = [await this.proj.move, await this.proj2.move]; - ms = Math.max(...both); - } - } - catch (err) { - throw err; - } - return ms; - } - /** - * Rewind both projectors backwards one frame - * - * @returns {integer} Length of action in ms - **/ - async projectors_backward() { - let both; - let ms; - try { - if (this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(false); - } - if (this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - //run one projector without await? - if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) { - ms = await this.proj.both(); - } - else { - this.proj.move(); - this.proj2.move(); - both = [await this.proj.move, await this.proj2.move]; - ms = Math.max(...both); - } - } - catch (err) { - throw err; - } - return ms; - } - /** - * Move the primary projector forward one frame and rewind the secondary projector - * one frame backwards. - * - * @returns {integer} Length of action in ms - **/ - async projector_forward_projector_second_backward() { - let both; - let ms; - try { - if (!this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(true); - } - if (this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(false); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - //run one projector without await? - if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) { - ms = await this.proj.both(); - } - else { - this.proj.move(); - this.proj2.move(); - both = [await this.proj.move, await this.proj2.move]; - ms = Math.max(...both); - } - } - catch (err) { - throw err; - } - return ms; - } - /** - * Rewind the primary projector backwards one frame and move the secondary - * projector forward one frame. - * - * @returns {integer} Length of action in ms - **/ - async projector_backward_projector_second_forward() { - let both; - let ms; - try { - if (this.proj.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj.set(false); - } - if (!this.proj2.state.dir) { - await delay_1.delay(this.cfg.arduino.serialDelay); - await this.proj2.set(true); - } - await delay_1.delay(this.cfg.arduino.serialDelay); - //run one projector without await? - if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) { - ms = await this.proj.both(); - } - else { - this.proj.move(); - this.proj2.move(); - both = [await this.proj.move, await this.proj2.move]; - ms = Math.max(...both); - } - } - catch (err) { - throw err; - } - return ms; - } -} -module.exports = function (cfg, proj, cam, light, cam2, proj2) { - return new Commands(cfg, proj, cam, light, cam2, proj2); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/cmd/index.js.map b/cli/lib/cmd/index.js.map deleted file mode 100644 index f91a2d1..0000000 --- a/cli/lib/cmd/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/cmd/package.json b/cli/lib/cmd/package.json deleted file mode 100644 index c8b0f10..0000000 --- a/cli/lib/cmd/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "cmd", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/delay/Readme.md b/cli/lib/delay/Readme.md deleted file mode 100644 index 7110004..0000000 --- a/cli/lib/delay/Readme.md +++ /dev/null @@ -1,12 +0,0 @@ - - -## delay(ms) ⇒ Promise -Delay in an async/await function - -**Kind**: global function -**Returns**: Promise - Promise to resolve after timeout - -| Param | Type | Description | -| --- | --- | --- | -| ms | integer | Milliseconds to delay for | - diff --git a/cli/lib/delay/index.js b/cli/lib/delay/index.js deleted file mode 100644 index 4a0d243..0000000 --- a/cli/lib/delay/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -/** - * Delay in an async/await function - * - * @param {integer} ms Milliseconds to delay for - * - * @returns {Promise} Promise to resolve after timeout - **/ -function delay(ms) { - return new Promise((resolve) => { - return setTimeout(resolve, ms); - }); -} -module.exports.delay = delay; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/delay/index.js.map b/cli/lib/delay/index.js.map deleted file mode 100644 index 38ed5e5..0000000 --- a/cli/lib/delay/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delay/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,KAAK,CAAE,EAAW;IAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAa,EAAE,EAAE;QACpC,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/cli/lib/delay/package.json b/cli/lib/delay/package.json deleted file mode 100644 index 9a1fe44..0000000 --- a/cli/lib/delay/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "delay", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/device/index.js b/cli/lib/device/index.js deleted file mode 100644 index 40193cd..0000000 --- a/cli/lib/device/index.js +++ /dev/null @@ -1,301 +0,0 @@ -'use strict' - -let arduino -const log = require('log')({quiet : false}) -const dev = {} - -dev.init = function () { - dev.listen() -} - -dev.listen = function () { - ipcMain.on('profile', (event, arg) => { - log.info(`Saving profile ${arg.profile}`, 'SETTINGS', false, false) - settings.update('profile', arg.profile) - settings.save() - }) -} - -dev.enumerate = async function () { - let devices - try{ - devices = await arduino.enumerate() - } catch (err) { - log.info(err, 'SERIAL', false, true) - await delay(1000) - return dev.all([]) - } - log.info(`Found ${devices.length} USB devices`, 'SERIAL', true, true) - devices = dev.favor(devices) - return await dev.all(devices) -} - -dev.favor = function (devices) { - const past = mcopy.settings.devices.filter(device => { - if (device.arduino) { - return device - } - }).map(device => { - return device.arduino - }) - if (past.length === 0) { - return devices - } - devices.sort((a, b) => { - if (past.indexOf(a) !== -1 && past.indexOf(b) === -1) { - return 1 - } else if (past.indexOf(a) === -1 && past.indexOf(b) !== -1) { - return -1 - } - return 0 - }) - return devices -} - -dev.distinguish = async function (device) { - let connectSuccess - let verifySuccess - let type - - try { - connectSuccess = await arduino.connect('connect', device, true) - } catch (err) { - console.error(err) - return null - } - - await delay(2000) - - try { - verifySuccess = await arduino.verify() - } catch (err) { - console.error(err) - return null - } - - log.info(`Verified ${device} as mcopy device`, 'SERIAL', true, true) - - await delay(1000) - - try { - type = await arduino.distinguish() - } catch (err) { - console.error(err) - return null - } - - dev.remember('arduino', device, type) - log.info(`Determined ${device} to be ${type}`, 'SERIAL', true, true) - - return type -} - -dev.fakeProjector = async function () { - dev.connected.projector = '/dev/fake' - try { - await arduino.fakeConnect('projector') - } catch (err) { - console.error(err) - log.error(`Error connecting to fake PRONECTOR device`, 'SERIAL', true, true) - return false - } - log.info('Connected to fake PROJECTOR device', 'SERIAL', true, true) - return true -} -dev.fakeCamera = async function () { - dev.connected.camera = '/dev/fake' - try { - await arduino.fakeConnect('camera') - } catch (err) { - console.error(err) - log.error(`Error connecting to fake CAMERA device`, 'SERIAL', true, true) - return false - } - log.info('Connected to fake CAMERA device', 'SERIAL', true, true) - return true -} -dev.fakeLight = async function () { - dev.connected.light = '/dev/fake' - try { - await arduino.fakeConnect('light') - } catch (err) { - console.error(err) - log.error(`Error connecting to fake LIGHT device`, 'SERIAL', true, true) - return false - } - log.info('Connected to fake LIGHT device', 'SERIAL', true, true) - return true -} - -dev.connectDevice = async function (device, type) { - let closeSuccess - let connectSuccess - try { - closeSuccess = await arduino.close() - } catch (err) { - console.error(err) - return false - } - if (type === 'projector') { - dev.connected.projector = device - try { - connectSuccess = await arduino.connect('projector', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true) - } else if (type === 'camera') { - dev.connected.camera = device - try { - connectSuccess = await arduino.connect('camera', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as CAMERA`, 'SERIAL', true, true) - } else if (type === 'light') { - dev.connected.light = device - try { - connectSuccess = await arduino.connect('light', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as LIGHT`, 'SERIAL', true, true) - } else if (type === 'projector,light') { - dev.connected.projector = device - dev.connected.light = device - arduino.alias('light', device) - try{ - connectSuccess = await arduino.connect('projector', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as PROJECTOR + LIGHT`, 'SERIAL', true, true) - - } else if (type === 'projector,camera,light') { - dev.connected.projector = device - dev.connected.camera = device - dev.connected.light = device - arduino.alias('camera', device) - arduino.alias('light', device) - try { - connectSuccess = await arduino.connect('projector', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as PROJECTOR + CAMERA + LIGHT`, 'SERIAL', true, true) - - } else if (type === 'projector,camera') { - dev.connected.projector = device - dev.connected.camera = device - arduino.alias('camera', device) - try { - connectSuccess = await arduino.connect('projector', device, false) - } catch (err) { - console.error(err) - return false - } - log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true) - } - return connectSuccess -} - -//Cases for 1 or 2 arduinos connected -dev.all = async function (devices) { - let c = {} - let p = {} - let l = {} - let type - let d - - - dev.connected = { - projector : false, - camera : false, - light : false - } - - let checklist = [] - - for (let device of devices) { - try { - type = await dev.distinguish(device) - } catch (err) { - console.error(err) - return reject(err) - } - - try { - await dev.connectDevice(device, type) - } catch (err) { - console.error(err) - return reject(err) - } - } - - //done checking devices - - if (!dev.connected.projector) { - await dev.fakeProjector() - } - p.arduino = dev.connected.projector - if (!dev.connected.camera) { - await dev.fakeCamera() - } - c.arduino = dev.connected.camera - - if (mcopy.settings.camera.intval) { - c.intval = mcopy.settings.camera.intval - await delay(1000) - await cam.connectIntval(null, { connect : true, url : c.intval }) - } - - if (!dev.connected.light) { - await dev.fakeLight() - } - - l.arduino = dev.connected.light - - return dev.ready(p, c, l) -} - -dev.remember = function (which, device, type) { - let deviceEntry - const match = mcopy.settings.devices.filter(dev => { - if (dev[which] && dev[which] === device) { - return dev - } - }) - if (match.length === 0) { - deviceEntry = { - type : type - } - deviceEntry[which] = device - mcopy.settings.devices.push(deviceEntry) - settings.update('devices', mcopy.settings.devices) - settings.save() - } -}; - -dev.ready = function (projector, camera, light) { - mainWindow.webContents.send('ready', { - camera, - projector, - light, - profile: mcopy.settings.profile - }) - settings.update('camera', camera) - settings.update('projector', projector) - settings.update('light', light) - settings.save() - return true -}; - -module.exports = function (a) { - arduino = a - return dev -} \ No newline at end of file diff --git a/cli/lib/device/package.json b/cli/lib/device/package.json deleted file mode 100644 index 5911476..0000000 --- a/cli/lib/device/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "device", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/devices/Readme.md b/cli/lib/devices/Readme.md deleted file mode 100644 index e48bcbe..0000000 --- a/cli/lib/devices/Readme.md +++ /dev/null @@ -1,74 +0,0 @@ - - -## Devices -class representing the device discovery features - -**Kind**: global class - -* [Devices](#Devices) - * [.init()](#Devices+init) - * [.listen()](#Devices+listen) - * [.listener()](#Devices+listener) - * [.enumerate()](#Devices+enumerate) - * [.favor()](#Devices+favor) - * [.distinguish()](#Devices+distinguish) - * [.fakeProjector()](#Devices+fakeProjector) - * [.fakeCamera()](#Devices+fakeCamera) - * [.fakeLight()](#Devices+fakeLight) - * [.connectDevice()](#Devices+connectDevice) - * [.all()](#Devices+all) - * [.remember()](#Devices+remember) - * [.ready()](#Devices+ready) - - - -### devices.init() -**Kind**: instance method of [Devices](#Devices) - - -### devices.listen() -**Kind**: instance method of [Devices](#Devices) - - -### devices.listener() -**Kind**: instance method of [Devices](#Devices) - - -### devices.enumerate() -**Kind**: instance method of [Devices](#Devices) - - -### devices.favor() -**Kind**: instance method of [Devices](#Devices) - - -### devices.distinguish() -**Kind**: instance method of [Devices](#Devices) - - -### devices.fakeProjector() -**Kind**: instance method of [Devices](#Devices) - - -### devices.fakeCamera() -**Kind**: instance method of [Devices](#Devices) - - -### devices.fakeLight() -**Kind**: instance method of [Devices](#Devices) - - -### devices.connectDevice() -**Kind**: instance method of [Devices](#Devices) - - -### devices.all() -**Kind**: instance method of [Devices](#Devices) - - -### devices.remember() -**Kind**: instance method of [Devices](#Devices) - - -### devices.ready() -**Kind**: instance method of [Devices](#Devices) diff --git a/cli/lib/devices/index.js b/cli/lib/devices/index.js deleted file mode 100644 index 0a64a76..0000000 --- a/cli/lib/devices/index.js +++ /dev/null @@ -1,466 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const delay_1 = require("delay"); -const Log = require("log"); -/** - * class representing the device discovery features - * - * - **/ -class Devices { - /** - * Constructor assigns arduino, settings, UI browser window and cam objects - * locally to this class for reference. - **/ - constructor(arduino, settings, mainWindow, cam) { - this.connected = {}; - this.arduino = arduino; - this.settings = settings; - this.mainWindow = mainWindow; - this.ui = this.mainWindow.webContents; - this.cam = cam; - this.init(); - } - /** - * Initialize the log for "devices". Establish an ipc connection to the UI. - * Start listening on that ipc connection. - **/ - async init() { - this.log = await Log({ label: 'devices' }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * Listen to the "profile" channel for messages from the UI. - **/ - listen() { - this.ipc.on('profile', this.listener.bind(this)); - } - /** - * The "profile" channel callback. If a profile is changed, set it in the - * local settings object. - **/ - listener(event, arg) { - this.log.info(`Saving profile ${arg.profile}`, 'SETTINGS', false, false); - this.settings.update('profile', arg.profile); - this.settings.save(); - } - /** - * - **/ - async enumerate() { - let devices; - try { - devices = await this.arduino.enumerate(); - } - catch (err) { - this.log.warn(err, 'SERIAL', false, true); - await delay_1.delay(1000); - return this.all([]); - } - this.log.info(`Found ${devices.length} USB devices`, 'SERIAL', true, true); - devices = this.favor(devices); - return await this.all(devices); - } - /** - * - **/ - favor(devices) { - const past = this.settings.state.devices.filter((device) => { - if (device.arduino) { - return device; - } - }).map((device) => { - return device.arduino; - }); - if (past.length === 0) { - return devices; - } - devices.sort((a, b) => { - if (past.indexOf(a) !== -1 && past.indexOf(b) === -1) { - return 1; - } - else if (past.indexOf(a) === -1 && past.indexOf(b) !== -1) { - return -1; - } - return 0; - }); - return devices; - } - /** - * - **/ - async distinguish(device) { - let connectSuccess; - let verifySuccess; - let type; - try { - connectSuccess = await this.arduino.connect('connect', device, true); - } - catch (err) { - this.log.error('Error connecting', err); - return null; - } - await delay_1.delay(2000); - try { - verifySuccess = await this.arduino.verify(); - } - catch (err) { - this.log.error('Error verifying device', err); - return null; - } - this.log.info(`Verified ${device} as mcopy device`, 'SERIAL', true, true); - await delay_1.delay(1000); - try { - type = await this.arduino.distinguish(); - } - catch (err) { - this.log.error('Error distinguishing device', err); - return null; - } - this.remember('arduino', device, type); - this.log.info(`Determined ${device} to be ${type}`, 'SERIAL', true, true); - return type; - } - /** - * - **/ - async fakeProjector() { - this.connected.projector = '/dev/fake'; - try { - await this.arduino.fakeConnect('projector'); - } - catch (err) { - console.error(err); - this.log.error(`Error connecting to fake PRONECTOR device`, 'SERIAL', true, true); - return false; - } - this.log.info('Connected to fake PROJECTOR device', 'SERIAL', true, true); - return true; - } - /** - * - **/ - async fakeCamera() { - this.connected.camera = '/dev/fake'; - try { - await this.arduino.fakeConnect('camera'); - } - catch (err) { - console.error(err); - this.log.error(`Error connecting to fake CAMERA device`, 'SERIAL', true, true); - return false; - } - this.log.info('Connected to fake CAMERA device', 'SERIAL', true, true); - return true; - } - /** - * - **/ - async fakeLight() { - this.connected.light = '/dev/fake'; - try { - await this.arduino.fakeConnect('light'); - } - catch (err) { - console.error(err); - this.log.error(`Error connecting to fake LIGHT device`, 'SERIAL', true, true); - return false; - } - this.log.info('Connected to fake LIGHT device', 'SERIAL', true, true); - return true; - } - /** - * - **/ - async connectDevice(device, type) { - let closeSuccess; - let connectSuccess; - try { - closeSuccess = await this.arduino.close(); - } - catch (err) { - this.log.error('Error closing arduino connection', err); - return false; - } - if (type === 'projector') { - this.connected.projector = device; - try { - connectSuccess = await this.arduino.connect('projector', device, false); - } - catch (err) { - this.log.error('Error connecting to projector', err); - return false; - } - this.log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true); - } - else if (type === 'camera') { - this.connected.camera = device; - try { - connectSuccess = await this.arduino.connect('camera', device, false); - } - catch (err) { - this.log.error('Error connecting to camera', err); - return false; - } - this.log.info(`Connected to ${device} as CAMERA`, 'SERIAL', true, true); - } - else if (type === 'light') { - this.connected.light = device; - try { - connectSuccess = await this.arduino.connect('light', device, false); - } - catch (err) { - this.log.error('Error connecting to light', err); - return false; - } - this.log.info(`Connected to ${device} as LIGHT`, 'SERIAL', true, true); - } - else if (type === 'projector,light') { - this.connected.projector = device; - this.connected.light = device; - this.arduino.aliasSerial('light', device); - try { - connectSuccess = await this.arduino.connect('projector', device, false); - } - catch (err) { - this.log.error('Error connecting to projector and light', err); - return false; - } - this.log.info(`Connected to ${device} as PROJECTOR + LIGHT`, 'SERIAL', true, true); - } - else if (type === 'projector,camera,light') { - this.connected.projector = device; - this.connected.camera = device; - this.connected.light = device; - this.arduino.aliasSerial('camera', device); - this.arduino.aliasSerial('light', device); - try { - connectSuccess = await this.arduino.connect('projector', device, false); - } - catch (err) { - this.log.error('Error connecting to projector, camera and light', err); - return false; - } - this.log.info(`Connected to ${device} as PROJECTOR + CAMERA + LIGHT`, 'SERIAL', true, true); - } - else if (type === 'projector,camera') { - this.connected.projector = device; - this.connected.camera = device; - this.arduino.aliasSerial('camera', device); - try { - connectSuccess = await this.arduino.connect('projector', device, false); - } - catch (err) { - this.log.error('Error connecting to projector and camera', err); - return false; - } - this.log.info(`Connected to ${device} as PROJECTOR + CAMERA`, 'SERIAL', true, true); - } - else if (type === 'projector_second') { - this.connected.projector_second = device; - try { - connectSuccess = await this.arduino.connect('projector_second', device, false); - } - catch (err) { - this.log.error('Error connecting to secondary projector', err); - return false; - } - this.log.info(`Connected to ${device} as PROJECTOR_SECOND`, 'SERIAL', true, true); - } - else if (type === 'projector,projector_second') { - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('projector_second', device); - try { - connectSuccess = await this.arduino.connect('projector', device, false); - } - catch (err) { - this.log.error('Error connecting to projector and secondary projector', err); - return false; - } - } - else if (type === 'camera_second') { - this.connected.camera_second = device; - try { - connectSuccess = await this.arduino.connect('camera_second', device, false); - } - catch (err) { - console.error(err); - return false; - } - } - else if (type === 'camera,camera_second') { - this.connected.camera = device; - this.connected.camera_second = device; - this.arduino.aliasSerial('camera_second', device); - try { - connectSuccess = await this.arduino.connect('camera', device, false); - } - catch (err) { - this.log.error('Error connecting to camera, camera_secondary and projector', err); - return false; - } - } - else if ('camera,projector,projector_second') { - this.connected.camera = device; - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('projector', device); - this.arduino.aliasSerial('projector_second', device); - try { - connectSuccess = await this.arduino.connect('camera', device, false); - } - catch (err) { - this.log.error('Error connecting to camera, projector and projector_second', err); - return false; - } - } - else if ('camera,camera_second,projector') { - this.connected.camera = device; - this.connected.camera_second = device; - this.connected.projector = device; - this.arduino.aliasSerial('camera_second', device); - this.arduino.aliasSerial('projector', device); - try { - connectSuccess = await this.arduino.connect('camera', device, false); - } - catch (err) { - this.log.error('Error connecting to camera, camera_second and projector', err); - return false; - } - } - else if ('camera,camera_second,projector,projector_second') { - this.connected.camera = device; - this.connected.camera_second = device; - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('camera_second', device); - this.arduino.aliasSerial('projector', device); - this.arduino.aliasSerial('projector_second', device); - try { - connectSuccess = await this.arduino.connect('camera', device, false); - } - catch (err) { - this.log.error('Error connecting to camera, camera_second, projector and projector_second', err); - return false; - } - } - return connectSuccess; - } - /** - * - **/ - //Cases for 1 or 2 arduinos connected - async all(devices) { - let c = {}; - let p = {}; - let l = {}; - let type; - let d; - let cs = {}; - let ps = {}; - let checklist = []; - this.connected = { - projector: false, - camera: false, - light: false, - projector_second: false - }; - for (let device of devices) { - try { - type = await this.distinguish(device); - } - catch (err) { - this.log.error('Error distinguishing device', err); - throw err; - } - try { - await this.connectDevice(device, type); - } - catch (err) { - this.log.error('Error connecting to device', err); - throw err; - } - } - //done checking devices - if (!this.connected.projector) { - await this.fakeProjector(); - } - p.arduino = this.connected.projector; - if (!this.connected.camera) { - await this.fakeCamera(); - } - c.arduino = this.connected.camera; - if (!this.connected.light) { - await this.fakeLight(); - } - l.arduino = this.connected.light; - if (this.connected.camera_second) { - cs = { arduino: this.connected.camera_second }; - } - if (this.connected.projector_second) { - ps = { arduino: this.connected.projector_second }; - } - if (this.settings.state.camera && this.settings.state.camera.intval) { - c.intval = this.settings.state.camera.intval; - } - return this.ready(p, c, l, cs, ps); - } - /** - * - **/ - remember(which, device, type) { - let deviceEntry; - const match = this.settings.state.devices.filter((dev) => { - if (dev[which] && dev[which] === device) { - return dev; - } - }); - if (match.length === 0) { - deviceEntry = { - type: type - }; - deviceEntry[which] = device; - this.settings.state.devices.push(deviceEntry); - this.settings.update('devices', this.settings.state.devices); - this.settings.save(); - } - } - /** - * - **/ - ready(projector, camera, light, camera_second, projector_second) { - let args = { - camera, - projector, - light, - profile: this.settings.state.profile - }; - if (projector_second && projector_second.arduino) { - args.projector_second = projector_second; - this.settings.update('projector_second', projector_second); - this.mainWindow.setSize(800, 800); - } - if (camera_second && camera_second.arduino) { - args.camera_second = camera_second; - this.settings.update('camera_second', camera_second); - if (projector_second && projector_second.arduino) { - this.mainWindow.setSize(900, 800); - } - else { - this.mainWindow.setSize(800, 800); - } - } - this.settings.update('camera', camera); - this.settings.update('projector', projector); - this.settings.update('light', light); - this.settings.save(); - this.ui.send('ready', args); - return true; - } -} -module.exports = function (arduino, settings, mainWindow, cam) { - return new Devices(arduino, settings, mainWindow, cam); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/devices/index.js.map b/cli/lib/devices/index.js.map deleted file mode 100644 index fd06dab..0000000 --- a/cli/lib/devices/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/devices/package.json b/cli/lib/devices/package.json deleted file mode 100644 index 53b9f3e..0000000 --- a/cli/lib/devices/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "devices", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/display/Readme.md b/cli/lib/display/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/display/index.js b/cli/lib/display/index.js deleted file mode 100644 index 38653c2..0000000 --- a/cli/lib/display/index.js +++ /dev/null @@ -1,190 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * @module display - * Provides features for displaying a full screen display of images for the digital module. - **/ -const path_1 = require("path"); -const url_1 = require("url"); -const delay_1 = require("delay"); -const { BrowserWindow } = require('electron'); -class WebView { - constructor(platform, display) { - this.opened = false; - this.showing = false; - this.loadWait = {}; - const prefs = { - webPreferences: { - nodeIntegration: true, - allowRunningInsecureContent: false - }, - width: 800, - height: 600, - minWidth: 800, - minHeight: 600 //, - //icon: path.join(__dirname, '../../assets/icons/icon.png') - }; - const pagePath = path_1.normalize(path_1.join(__dirname, '../../display.html')); - const pageUrl = url_1.format({ - pathname: pagePath, - protocol: 'file:' - }); - if (!display.primary) { - prefs.x = display.x + 50; - prefs.y = display.y + 50; - } - this.digitalWindow = new BrowserWindow(prefs); - this.digitalWindow.loadURL(pageUrl); - if (process.argv.indexOf('-d') !== -1 || process.argv.indexOf('--dev') !== -1) { - this.digitalWindow.webContents.openDevTools(); - } - this.digitalWindow.on('closed', () => { - this.digitalWindow = null; - this.close(); - }); - //this.digitalWindow.hide(); - this.platform = platform; - this.display = display; - this.ipc = require('electron').ipcMain; - this.ipc.on('display_load', this.onLoad.bind(this)); - } - async open() { - this.digitalWindow.show(); - this.showing = true; - this.opened = true; - await this.digitalWindow.setFullScreen(true); - await delay_1.delay(300); - if (this.platform === 'osx') { - await delay_1.delay(300); //give macs an extra 300ms to open fullscreen - } - } - async show(src) { - const normalSrc = path_1.normalize(path_1.join(src)); - if (!this.digitalWindow) { - console.warn(`Cannot show "${src}" because window does not exist`); - return false; - } - try { - this.digitalWindow.webContents.send('display', { src: normalSrc }); - } - catch (err) { - console.error(err); - } - this.showing = true; - return new Promise(function (resolve) { - this.loadWait[src] = resolve; - }.bind(this)); - } - onLoad(evt, arg) { - if (this.loadWait[arg.src]) { - this.loadWait[arg.src](); - delete this.loadWait[arg.src]; - } - } - async focus() { - if (!this.digitalWindow) { - console.warn(`Cannot show focus screen because window does not exist`); - return false; - } - await delay_1.delay(500); - try { - this.digitalWindow.webContents.send('focus', { focus: true }); - } - catch (err) { - console.error(err); - } - } - async field(ratio) { - if (!this.digitalWindow) { - console.warn(`Cannot show field guide because window does not exist`); - return false; - } - await delay_1.delay(500); - try { - this.digitalWindow.webContents.send('field', { field: true, ratio }); - } - catch (err) { - console.error(err); - } - } - async meter() { - if (!this.digitalWindow) { - console.warn(`Cannot show meter screen because window does not exist`); - return false; - } - await delay_1.delay(500); - try { - this.digitalWindow.webContents.send('meter', { meter: true }); - } - catch (err) { - console.error(err); - } - } - hide() { - if (this.digitalWindow) { - this.digitalWindow.hide(); - } - this.showing = false; - return true; - } - close() { - this.hide(); - if (this.digitalWindow) { - this.digitalWindow.close(); - this.digitalWindow = null; - } - this.opened = false; - this.showing = false; - return true; - } -} -class Display { - constructor(sys) { - this.platform = sys.platform; - this.displays = sys.displays; - this.tmpdir = path_1.join(sys.tmp, 'mcopy_digital'); - this.display = this.displays.find((display) => { - if (display.primary) - return true; - }); - } - async open() { - if (this.wv && this.wv.display && this.wv.display.id !== this.display.id) { - this.wv.close(); - } - if (!this.wv || !this.wv.opened) { - this.wv = new WebView(this.platform, this.display); - await this.wv.open(); - } - } - async show(src) { - await this.wv.show(src); - } - async showPath(pathStr) { - return await this.wv.show(pathStr); - } - hide() { - } - async close() { - return await this.wv.close(); - } - async focus() { - return await this.wv.focus(); - } - async field(ratio) { - return await this.wv.field(ratio); - } - async meter() { - return await this.wv.meter(); - } - change(id) { - this.display = this.displays.find((display) => { - if (display.id == id) - return true; - }); - } -} -module.exports = function (sys) { - return new Display(sys); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/display/index.js.map b/cli/lib/display/index.js.map deleted file mode 100644 index b9db160..0000000 --- a/cli/lib/display/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/display/package.json b/cli/lib/display/package.json deleted file mode 100644 index 62e044a..0000000 --- a/cli/lib/display/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "display", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/exec/Readme.md b/cli/lib/exec/Readme.md deleted file mode 100644 index 7724e22..0000000 --- a/cli/lib/exec/Readme.md +++ /dev/null @@ -1,15 +0,0 @@ - - -## exec(cmd, arg, opts) ⇒ Promise.<{stdout: string, stderr: stderr}> -Promisified child_process.exec - -**Kind**: global function - -| Param | Type | Description | -| --- | --- | --- | -| cmd | | | -| arg | | | -| opts | | See child_process.exec node docs | -| opts.stdout | stream.Writable | If defined, child process stdout will be piped to it. | -| opts.stderr | stream.Writable | If defined, child process stderr will be piped to it. | - diff --git a/cli/lib/exec/index.js b/cli/lib/exec/index.js deleted file mode 100644 index 2238120..0000000 --- a/cli/lib/exec/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; -const execRaw = require('child_process').exec; -/** - * Promisified child_process.exec - * - * @param cmd - * @param arg - * @param opts See child_process.exec node docs - * @param {stream.Writable} opts.stdout If defined, child process stdout will be piped to it. - * @param {stream.Writable} opts.stderr If defined, child process stderr will be piped to it. - * - * @returns {Promise<{ stdout: string, stderr: stderr }>} - */ -async function exec(...args) { - let cmd = args[0]; - let argz = null; - let opts = null; - if (typeof args[1] === 'object' && Array.isArray(args[1])) { - argz = args[1]; - } - if (argz === null && typeof args[1] === 'object') { - opts = args[1]; - } - else if (typeof args[2] === 'object') { - opts = args[2]; - } - if (opts === null) { - opts = { maxBuffer: 1024 * 1024 }; - } - return new Promise((resolve, reject) => { - const child = execRaw(cmd, opts, (err, stdout, stderr) => err ? reject(err) : resolve({ - stdout, - stderr - })); - if (opts.stdout) { - child.stdout.pipe(opts.stdout); - } - if (opts.stderr) { - child.stderr.pipe(opts.stderr); - } - }); -} -module.exports.exec = exec; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/exec/index.js.map b/cli/lib/exec/index.js.map deleted file mode 100644 index 1e32b7b..0000000 --- a/cli/lib/exec/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exec/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI,CAAC,GAAG,IAAe;IACrC,IAAI,GAAG,GAAY,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,IAAI,GAAS,IAAI,CAAA;IAErB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1D,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;SAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE,SAAS,EAAG,IAAI,GAAG,IAAI,EAAE,CAAA;KAClC;IACE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EACjC,CAAC,GAAW,EAAE,MAAe,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7E,MAAM;YACN,MAAM;SACN,CAAC,CAAC,CAAC;QACC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA"} \ No newline at end of file diff --git a/cli/lib/exec/package.json b/cli/lib/exec/package.json deleted file mode 100644 index 65f0c63..0000000 --- a/cli/lib/exec/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "exec", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/exit/Readme.md b/cli/lib/exit/Readme.md deleted file mode 100644 index 8bed916..0000000 --- a/cli/lib/exit/Readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## exit(msg, code) -Exit process with either a 0 code or other -specified failure code. Print message to console first. - -**Kind**: global function - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| msg | string | | Reason for exit | -| code | integer | 0 | process exit code, default 0 | - diff --git a/cli/lib/exit/index.js b/cli/lib/exit/index.js deleted file mode 100644 index aef14d4..0000000 --- a/cli/lib/exit/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -/** - * Exit process with either a 0 code or other - * specified failure code. Print message to console first. - * - * @param {string} msg Reason for exit - * @param {integer} code process exit code, default 0 - **/ -function exit(msg, code = 0) { - if (code === 0) { - console.log(msg); - process.exit(); - } - else { - console.error(msg); - process.exit(code); - } -} -module.exports.exit = exit; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/exit/index.js.map b/cli/lib/exit/index.js.map deleted file mode 100644 index 32d707c..0000000 --- a/cli/lib/exit/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exit/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,IAAI,CAAE,GAAY,EAAE,OAAgB,CAAC;IAC7C,IAAI,IAAI,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;KACf;SAAM;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AACF,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/cli/lib/exit/package.json b/cli/lib/exit/package.json deleted file mode 100644 index 0ab494d..0000000 --- a/cli/lib/exit/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "exit", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/ffmpeg/Readme.md b/cli/lib/ffmpeg/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/ffmpeg/index.js b/cli/lib/ffmpeg/index.js deleted file mode 100644 index db6f4eb..0000000 --- a/cli/lib/ffmpeg/index.js +++ /dev/null @@ -1,353 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -/** @module ffmpeg **/ -const path_1 = require("path"); -const fs_extra_1 = require("fs-extra"); -const exec_1 = require("exec"); -const child_process_1 = require("child_process"); -async function spawnAsync(bin, args) { - return new Promise((resolve, reject) => { - const child = child_process_1.spawn(bin, args); - let stdout = ''; - let stderr = ''; - child.on('exit', (code) => { - if (code === 0) { - return resolve({ stdout, stderr }); - } - else { - console.error(`Process exited with code: ${code}`); - console.error(stderr); - return reject(stderr); - } - }); - child.stdout.on('data', (data) => { - stdout += data; - }); - child.stderr.on('data', (data) => { - stderr += data; - }); - return child; - }); -} -/** @class FFMPEG **/ -class FFMPEG { - /** - * @constructor - * Creates an ffmpeg class - * - * @param {object} sys System object to be used to get temp directory - **/ - constructor(sys) { - this.id = 'ffmpeg'; - this.onProgress = () => { }; - this.bin = sys.deps.ffmpeg; - this.TMPDIR = path_1.join(sys.tmp, 'mcopy_digital'); - this.init(); - } - /** - * Async method to call async functions from constructor - **/ - async init() { - const Log = require('log'); - this.log = await Log({ label: this.id }); - await this.checkDir(); - } - /** - * Add padding to a number to 5 places. Return a string. - * - * @param {integer} i Integer to pad - * - * @returns {string} Padded string - **/ - padded_frame(i) { - let len = (i + '').length; - let str = i + ''; - for (let x = 0; x < 8 - len; x++) { - str = '0' + str; - } - return str; - } - /** - * Parse the stderr output of ffmpeg - * - * @param {string} line Stderr line - **/ - parseStderr(line) { - //frame= 6416 fps= 30 q=31.0 size= 10251kB time=00:03:34.32 bitrate= 391.8kbits/s speed= 1x - let obj = {}; - if (line.substring(0, 'frame='.length) === 'frame=') { - try { - obj.frame = line.split('frame=')[1].split('fps=')[0]; - obj.frame = parseInt(obj.frame); - obj.fps = line.split('fps=')[1].split('q=')[0]; - obj.fps = parseFloat(obj.fps); - obj.time = line.split('time=')[1].split('bitrate=')[0]; - obj.speed = line.split('speed=')[1].trim().replace('x', ''); - obj.speed = parseFloat(obj.speed); - obj.size = line.split('size=')[1].split('time=')[0].trim(); - } - catch (err) { - console.error(err); - console.log(line); - process.exit(); - } - } - else { - } - return obj; - } - /** - * Render a single frame from a video or image to a png. - * - * @param {object} state State object containing file data - * @param {object} light Object containing color information for frame - * - * @returns {string} Path of frame - **/ - async frame(state, light) { - const frameNum = state.frame; - const video = state.path; - const w = state.info.width; - const h = state.info.height; - const padded = this.padded_frame(frameNum); - let ext = 'png'; - let rgb = light.color; - let rgba = {}; - let tmpoutput; - let cmd; - let output; - let fileExists = false; - let scale = ''; - if (w && h) { - scale = `,scale=${w}:${h}`; - } - tmpoutput = path_1.join(this.TMPDIR, `${state.hash}-export-${padded}.${ext}`); - try { - fileExists = await fs_extra_1.exists(tmpoutput); - } - catch (err) { - // - } - if (fileExists) { - this.log.info(`File ${tmpoutput} exists`); - return tmpoutput; - } - // - cmd = `${this.bin} -y -i "${video}" -vf "select='gte(n\\,${frameNum})'${scale}" -vframes 1 -compression_algo raw -pix_fmt rgb24 -crf 0 "${tmpoutput}"`; - //cmd2 = `${this.convert} "${tmpoutput}" -resize ${w}x${h} -size ${w}x${h} xc:"rgb(${rgb[0]},${rgb[1]},${rgb[2]})" +swap -compose Darken -composite "${tmpoutput}"`; - //ffmpeg -i "${video}" -ss 00:00:07.000 -vframes 1 "export-${time}.jpg" - //ffmpeg -i "${video}" -compression_algo raw -pix_fmt rgb24 "export-%05d.tiff" - //-vf "select=gte(n\,${frame})" -compression_algo raw -pix_fmt rgb24 "export-${padded}.png" - try { - this.log.info(cmd); - output = await exec_1.exec(cmd); - } - catch (err) { - this.log.error(err); - } - if (output && output.stdout) - this.log.info(`"${output.stdout.trim()}"`); - if (rgb[0] !== 255 || rgb[1] !== 255 || rgb[2] !== 255) { - rgb = rgb.map((e) => { - return parseInt(e); - }); - rgba = { r: rgb[0], g: rgb[1], b: rgb[2], a: 255 }; - try { - //await Frame.blend(tmpoutput, rgba, tmpoutput); - } - catch (err) { - this.log.error(err); - } - } - return tmpoutput; - } - /** - * Render all frames in a video to the temp directory. - * Not in use. - * - * @param {string} video Path to video - * @param {object} obj Not sure - * - * @returns {?} - **/ - async frames(state) { - const video = state.path; - const w = state.info.width; - const h = state.info.height; - const tmppath = this.TMPDIR; - let ext = 'png'; - let tmpoutput = path_1.join(tmppath, `${state.hash}-export-%08d.${ext}`); - let args; - let output; - let estimated = -1; - //cmd = `${this.bin} -y -i "${video}" -vf "${scale}" -compression_algo raw -pix_fmt rgb24 -crf 0 "${tmpoutput}"`; - args = [ - '-y', - '-i', video - ]; - if (w && h) { - args.push('-vf'); - args.push(`scale=${w}:${h}`); - } - args = args.concat([ - '-compression_algo', 'raw', - '-pix_fmt', 'rgb24', - '-crf', '0', - tmpoutput - ]); - //console.dir(args) - //console.dir(state) - try { - await fs_extra_1.mkdir(tmppath); - } - catch (err) { - if (err.code && err.code === 'EEXIST') { - //directory exists - } - else { - this.log.error(err); - } - } - //ffmpeg -i "${video}" -compression_algo raw -pix_fmt rgb24 "${tmpoutput}" - return new Promise((resolve, reject) => { - let stdout = ''; - let stderr = ''; - this.log.info(`${this.bin} ${args.join(' ')}`); - this.child = child_process_1.spawn(this.bin, args); - this.child.on('exit', (code) => { - //console.log('GOT TO EXIT'); - if (code === 0) { - console.log(stderr); - console.log(stdout); - return resolve(true); - } - else { - console.error(`Process exited with code: ${code}`); - console.error(stderr); - return reject(stderr + stdout); - } - }); - this.child.stdout.on('data', (data) => { - const line = data.toString(); - stdout += line; - }); - this.child.stderr.on('data', (data) => { - const line = data.toString(); - const obj = this.parseStderr(line); - if (obj.frame && state.frames) { - obj.progress = obj.frame / state.frames; - } - if (obj.frame && obj.speed && state.frames && state.info.fps) { - //scale by speed - obj.remaining = ((state.frames - obj.frame) / state.info.fps) / obj.speed; - obj.estimated = state.info.seconds / obj.speed; - if (obj.estimated > estimated) { - estimated = obj.estimated; - } - } - if (obj.frame) { - //log.info(`${input.name} ${obj.frame}/${input.frames} ${Math.round(obj.progress * 1000) / 10}% ${Math.round(obj.remaining)} seconds remaining of ${Math.round(obj.estimated)}`); - this.onProgress(obj); - } - }); - }); - } - cancel() { - if (this.child) { - this.child.kill(); - this.log.info(`Stopped exporting sequence with ffmpeg`); - } - } - /** - * Clears a specific frame from the tmp directory - * - * @param {integer} frame Integer of frame to clear - * - * @returns {boolean} True if successful, false if not - **/ - async clear(state) { - const padded = this.padded_frame(state.frame); - let ext = 'png'; - let tmppath; - let fileExists; - tmppath = path_1.join(this.TMPDIR, `${state.hash}-export-${padded}.${ext}`); - try { - fileExists = await fs_extra_1.exists(tmppath); - } - catch (err) { - this.log.error(err); - } - if (!fileExists) - return false; - try { - await fs_extra_1.unlink(tmppath); - this.log.info(`Cleared frame ${tmppath}`); - } - catch (err) { - this.log.error(err); - } - return true; - } - /** - * Deletes all frames in temp directory. - * - **/ - async clearAll() { - const tmppath = this.TMPDIR; - let files; - try { - files = await fs_extra_1.readdir(tmppath); - } - catch (err) { - this.log.error(err); - } - files = files.filter((file) => { - if (file.indexOf('-export-') !== -1) { - return true; - } - return false; - }); - if (files) { - files.forEach(async (file, index) => { - try { - await fs_extra_1.unlink(path_1.join(tmppath, file)); - } - catch (err) { - this.log.error(err); - } - }); - } - } - /** - * Checks if mcopy temp directory exists. If it doesn't, - * creates it. - **/ - async checkDir() { - let fileExists; - try { - fileExists = await fs_extra_1.exists(this.TMPDIR); - } - catch (err) { - this.log.error('Error checking for tmp dir', err); - } - if (!fileExists) { - try { - await fs_extra_1.mkdir(this.TMPDIR); - this.log.info(`Created tmpdir ${this.TMPDIR}`); - } - catch (err) { - this.log.error('Error creating tmp dir', err); - } - } - try { - await this.clearAll(); - } - catch (err) { - this.log.error(err); - } - } -} -module.exports = (sys) => { - return new FFMPEG(sys); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/ffmpeg/index.js.map b/cli/lib/ffmpeg/index.js.map deleted file mode 100644 index 238f534..0000000 --- a/cli/lib/ffmpeg/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffmpeg/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/ffmpeg/package.json b/cli/lib/ffmpeg/package.json deleted file mode 100644 index b78c1be..0000000 --- a/cli/lib/ffmpeg/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "ffmpeg", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/ffprobe/Readme.md b/cli/lib/ffprobe/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/ffprobe/index.js b/cli/lib/ffprobe/index.js deleted file mode 100644 index 0ff4750..0000000 --- a/cli/lib/ffprobe/index.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -/** @module FFPROBE **/ -const fs_extra_1 = require("fs-extra"); -const path_1 = require("path"); -const exec_1 = require("exec"); -//const spawn = require('spawn'); -//const exit = require('exit'); -class FFPROBE { - constructor(sys) { - this.bin = sys.deps.ffprobe; - } - /** - * Parse the fps entry into a float representing the fps of a video - **/ - parseFps(fpsStr) { - let fps = 30.0; - let parts; - if (fpsStr.indexOf('/') !== -1) { - parts = fpsStr.split('/'); - fps = parseFloat(parts[0]) / parseFloat(parts[1]); - } - else { - fps = parseFloat(fpsStr); - } - return fps; - } - /** - * Get info on a video in json format. Use for filmout. - * - * @param {string} video Path to video - * - * @returns {object} Video info in an object - **/ - async info(video) { - const cmd = `${this.bin} -v quiet -print_format json -show_format -show_streams "${video}"`; - let fileExists; - let raw; - let json; - let vid; //whether video has stream with video data - try { - fileExists = await fs_extra_1.exists(video); - } - catch (err) { - return exit(err, 5); - } - if (!fileExists) { - //return exit(`File ${video} does not exist`, 6); - console.error(new Error(`File ${video} does not exist`)); - return false; - } - try { - console.log(cmd); - raw = await exec_1.exec(cmd); - } - catch (err) { - //return exit(err, 7); - console.error(err); - return false; - } - try { - json = JSON.parse(raw.stdout); - } - catch (err) { - return raw.stdout; - } - if (json.format && json.format.duration) { - json.seconds = parseFloat(json.format.duration); - } - if (json && json.streams) { - vid = json.streams.find((stream) => { - if (stream.width && stream.height) - return stream; - }); - } - if (vid) { - json.width = vid.width; - json.height = vid.height; - json.fps = this.parseFps(vid.r_frame_rate); - } - return json; - } - /** - * Count the number of frames in the video using one of two methods. - * The first uses -select_streams and is very fast. The second uses - * -count_frames and is VERY slow. - * - * @param {string} video Path to video - * - * @returns {integer} Number of frames in video - **/ - async frames(video) { - const ext = path_1.extname(video.toLowerCase()); - let cmd = `${this.bin} -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 "${video}"`; - let backup_cmd = `${this.bin} -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 "${video}"`; - let gif_cmd = `identify -format "%n\n" "${video}" | head -1`; - let fileExists; - let raw; - let frames; - try { - fileExists = await fs_extra_1.exists(video); - } - catch (err) { - //return exit(err, 5); - console.error(err); - return false; - } - if (!fileExists) { - //return exit(`File ${video} does not exist`, 6); - console.error(new Error(`File ${video} does not exist`)); - return false; - } - if (ext === '.mkv') { - cmd = backup_cmd; - } - else if (ext === '.gif') { - cmd = gif_cmd; - } - try { - console.log(cmd); - raw = await exec_1.exec(cmd); - } - catch (err) { - console.error(err); - return false; - } - try { - frames = parseInt(raw.stdout); - } - catch (err) { - return raw.stdout; - } - return frames; - } -} -/* -function map (obj : any) { - console.dir(obj); -} -*/ -module.exports = (sys) => { - return new FFPROBE(sys); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/ffprobe/index.js.map b/cli/lib/ffprobe/index.js.map deleted file mode 100644 index 61187ca..0000000 --- a/cli/lib/ffprobe/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffprobe/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,uBAAuB;AAEvB,uCAAkC;AAClC,+BAA+B;AAC/B,+BAA4B;AAC5B,iCAAiC;AACjC,+BAA+B;AAE/B,MAAM,OAAO;IAGZ,YAAa,GAAS;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;QAEI;IACI,QAAQ,CAAE,MAAe;QAChC,IAAI,GAAG,GAAY,IAAI,CAAC;QACxB,IAAI,KAAgB,CAAC;QACrB,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1B,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;aAAM;YACN,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IACD;;;;;;QAMI;IACG,KAAK,CAAC,IAAI,CAAE,KAAc;QAChC,MAAM,GAAG,GAAY,GAAG,IAAI,CAAC,GAAG,4DAA4D,KAAK,GAAG,CAAA;QACpG,IAAI,UAAoB,CAAC;QACzB,IAAI,GAAS,CAAC;QACd,IAAI,IAAU,CAAC;QACf,IAAI,GAAS,CAAC,CAAC,0CAA0C;QAEzD,IAAI;YACH,UAAU,GAAG,MAAM,iBAAM,CAAC,KAAK,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,UAAU,EAAE;YAChB,iDAAiD;YACjD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACzD,OAAO,KAAK,CAAA;SACZ;QAED,IAAI;YACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,GAAG,MAAM,WAAI,CAAC,GAAG,CAAC,CAAC;SACtB;QAAC,OAAO,GAAG,EAAE;YACb,sBAAsB;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,KAAK,CAAA;SACZ;QAED,IAAI;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,GAAG,CAAC,MAAM,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChD;QAED,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YACzB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAY,EAAE,EAAE;gBACxC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAO,MAAM,CAAC;YAClD,CAAC,CAAC,CAAC;SACH;QAED,IAAI,GAAG,EAAE;YACR,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;SAC1C;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IACD;;;;;;;;QAQI;IACG,KAAK,CAAC,MAAM,CAAE,KAAc;QAClC,MAAM,GAAG,GAAY,cAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,GAAY,GAAG,IAAI,CAAC,GAAG,wGAAwG,KAAK,GAAG,CAAC;QAC/I,IAAI,UAAU,GAAY,GAAG,IAAI,CAAC,GAAG,2HAA2H,KAAK,GAAG,CAAC;QACzK,IAAI,OAAO,GAAY,4BAA4B,KAAK,aAAa,CAAA;QACrE,IAAI,UAAoB,CAAC;QACzB,IAAI,GAAS,CAAC;QACd,IAAI,MAAe,CAAC;QAEpB,IAAI;YACH,UAAU,GAAG,MAAM,iBAAM,CAAC,KAAK,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACb,sBAAsB;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,UAAU,EAAE;YAChB,iDAAiD;YACjD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;SACb;QAED,IAAI,GAAG,KAAK,MAAM,EAAE;YACnB,GAAG,GAAG,UAAU,CAAC;SACjB;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,GAAG,GAAG,OAAO,CAAC;SACd;QACD,IAAI;YACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,GAAG,MAAM,WAAI,CAAC,GAAG,CAAC,CAAC;SACtB;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;SACb;QAED,IAAI;YACH,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,GAAG,CAAC,MAAM,CAAC;SAClB;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAED;;;;EAIE;AAEF,MAAM,CAAC,OAAO,GAAG,CAAC,GAAS,EAAE,EAAE;IAC9B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAA"} \ No newline at end of file diff --git a/cli/lib/ffprobe/package.json b/cli/lib/ffprobe/package.json deleted file mode 100644 index 586ea4e..0000000 --- a/cli/lib/ffprobe/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "ffprobe", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/filmout/Readme.md b/cli/lib/filmout/Readme.md deleted file mode 100644 index 967474c..0000000 --- a/cli/lib/filmout/Readme.md +++ /dev/null @@ -1,44 +0,0 @@ - - -## Digital -**Kind**: global class - -* [Digital](#Digital) - * [.init()](#Digital+init) - * [.listen()](#Digital+listen) - * [.set()](#Digital+set) - * [.move()](#Digital+move) - * [.start()](#Digital+start) - * [.end()](#Digital+end) - * [.connectDigital()](#Digital+connectDigital) - - - -### digital.init() -**Kind**: instance method of [Digital](#Digital) - - -### digital.listen() -**Kind**: instance method of [Digital](#Digital) - - -### digital.set() -**Kind**: instance method of [Digital](#Digital) - - -### digital.move() -**Kind**: instance method of [Digital](#Digital) - - -### digital.start() -**Kind**: instance method of [Digital](#Digital) - - -### digital.end() -**Kind**: instance method of [Digital](#Digital) - - -### digital.connectDigital() -Use a file as the "digital" source on "projector" - -**Kind**: instance method of [Digital](#Digital) diff --git a/cli/lib/filmout/index.js b/cli/lib/filmout/index.js deleted file mode 100644 index 4b059d0..0000000 --- a/cli/lib/filmout/index.js +++ /dev/null @@ -1,382 +0,0 @@ -'use strict'; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const animated_gif_detector_1 = __importDefault(require("animated-gif-detector")); -const path_1 = require("path"); -const fs_extra_1 = require("fs-extra"); -const delay_1 = require("delay"); -const crypto_1 = require("crypto"); -const frame_1 = __importDefault(require("frame")); -/** - * @module FilmOut - **/ -class FilmOut { - /** - * @constructor - * Builds FilmOut class with display, ffmpeg, ffprobe, ui and light as internal properties. - * - * @param {object} display Display object for showing frames - * @param {object} ffmpeg FFMPEG wrapper - * @param {object} ffprobe FFPROBE wrapper for file info - * @param {object} ui Electron ui object - * @param {object} light Light device object - **/ - constructor(display, ffmpeg, ffprobe, ui, light) { - this.id = 'filmout'; - this.videoExtensions = ['.mpg', '.mpeg', '.mov', '.mkv', '.avi', '.mp4']; - this.stillExtensions = ['.tif', '.tiff', '.png', '.jpg', '.jpeg', '.bmp']; - this.gifExtension = '.gif'; - this.state = { - frame: 0, - frames: 0, - still: false, - path: null, - fileName: null, - info: {}, - dir: true, - enabled: false - }; - this.display = display; - this.ffmpeg = ffmpeg; - this.ffprobe = ffprobe; - this.ui = ui; - this.light = light; - this.init(); - } - /** - * Async function for requiring log, ipcMain and bind events. - **/ - async init() { - const Log = require('log'); - this.log = await Log({ label: this.id }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * - **/ - listen() { - this.ipc.on(this.id, this.onConnect.bind(this)); - this.ipc.on('focus', this.focus.bind(this)); - this.ipc.on('field', this.field.bind(this)); - this.ipc.on('meter', this.meter.bind(this)); - this.ipc.on('filmout_close', this.close.bind(this)); - this.ipc.on('preview', this.preview.bind(this)); - this.ipc.on('preview_frame', this.previewFrame.bind(this)); - this.ipc.on('display', this.onDisplay.bind(this)); - this.ipc.on('pre_export', this.onPreExport.bind(this)); - this.ffmpeg.onProgress = (obj) => { - this.ui.send('pre_export_progress', { progress: obj }); - }; - } - /** - * Create a hash of a string. - * - * @param {string} data Data to produce hash of - */ - hash(data) { - return crypto_1.createHash('sha1').update(data).digest('hex'); - } - /** - * Sets filmout direction. - * - * @param {boolean} dir Direction of filmout - **/ - set(dir) { - this.state.dir = dir; - } - /** - * Moves filmout a frame at a time. - **/ - async move() { - let start = +new Date(); - if (this.state.still) { - return false; - } - if (this.state.dir) { - this.state.frame++; - } - else { - this.state.frame--; - } - if (this.state.frame < 1) { - this.state.frame = 1; - } - return (+new Date()) - start; - } - /** - * Begin the process of exporting single frames from the video for display. - **/ - async start() { - let path; - try { - path = await this.ffmpeg.frame(this.state, this.light.state); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - throw err; - } - await this.display.show(path); - await delay_1.delay(20); - } - /** - * Ends the filmout process and closes the display. - **/ - async end() { - await delay_1.delay(20); - this.display.hide(); - } - /** - * Use a video file as a film out source on "projector" - * - * @param {object} evt Original connect event - * @param {object} arg Arguments from ipc message - **/ - async onConnect(evt, arg) { - let frames = 0; - let isAnimated = false; - let info; - let ext; - ext = path_1.extname(arg.fileName.toLowerCase()); - if (ext === this.gifExtension) { - try { - isAnimated = await this.isGifAnimated(arg.path); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - await this.ui.send(this.id, { valid: false }); - return false; - } - this.state.still = !isAnimated; - } - else if (this.stillExtensions.indexOf(ext) !== -1) { - this.state.still = true; - } - else if (this.videoExtensions.indexOf(ext) !== -1) { - this.state.still = false; - } - else { - this.log.error(`File is not of a valid file type`, 'FILMOUT', true, true); - return false; - } - try { - await this.ffmpeg.clearAll(); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - throw err; - } - if (this.state.still) { - try { - info = await this.stillInfo(arg.path); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - this.state.enabled = false; - await this.ui.send(this.id, { valid: false }); - return false; - } - frames = 1; - } - else { - try { - info = await this.ffprobe.info(arg.path); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - this.state.enabled = false; - await this.ui.send(this.id, { valid: false }); - return false; - } - try { - frames = await this.ffprobe.frames(arg.path); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - this.state.enabled = false; - await this.ui.send(this.id, { valid: false }); - return false; - } - } - this.state.frame = 0; - this.state.path = arg.path; - this.state.fileName = arg.fileName; - this.state.frames = frames; - this.state.info = info; - this.state.hash = this.hash(arg.path); - if (info.seconds) { - this.state.seconds = info.seconds; - } - else if (info.fps && frames) { - this.state.seconds = frames / info.fps; - } - this.log.info(`Opened ${this.state.fileName}`, 'FILMOUT', true, true); - this.log.info(`Frames : ${frames}`, 'FILMOUT', true, true); - this.state.enabled = true; - return await this.ui.send(this.id, { valid: true, state: JSON.stringify(this.state) }); - } - /** - * Pre-export all frames from video for display. - * - * @param {object} evt IPC event - * @param {object} arg IPC args - */ - async onPreExport(evt, arg) { - if (!this.state.path) { - return await this.ui.send('pre_export', { complete: false, err: 'No file to pre export.' }); - } - try { - await this.ffmpeg.frames(this.state); - } - catch (err) { - return await this.ui.send('pre_export', { complete: false, err }); - } - return await this.ui.send('pre_export', { complete: true }); - } - /** - * Return true if gif is animated, false if it is a still - * - * @param {string} pathStr Path to gif to check - * - * @returns {boolean} Whether or not gif is animated - **/ - async isGifAnimated(pathStr) { - let gifBuffer; - try { - gifBuffer = await fs_extra_1.readFile(pathStr); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - return false; - } - return animated_gif_detector_1.default(gifBuffer); - } - /** - * Return information on a still image using the sharp module - * - * @param {string} pathStr Path to gif to check - * - * @returns {object} Info about still from sharp - **/ - async stillInfo(pathStr) { - let info; - try { - info = await frame_1.default.info(pathStr); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - return info; - } - /** - * Preview a frame from the selected video. - * - * @param {object} evt Original event - * @param {object} arg Arguments from message - **/ - async previewFrame(evt, arg) { - const state = JSON.parse(JSON.stringify(this.state)); - let path; - state.frame = arg.frame; - try { - path = await this.ffmpeg.frame(state, { color: [255, 255, 255] }); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - ; - throw err; - } - this.ui.send('preview_frame', { path, frame: arg.frame }); - } - /** - * Open a single frame in a display window to preview filmout. - * - * @param {object} evt Original event - * @param {object} arg Arguments from message - **/ - async preview(evt, arg) { - const state = JSON.parse(JSON.stringify(this.state)); - let path; - state.frame = arg.frame; - this.log.info(`Previewing frame ${state.frame} of ${state.fileName}`); - try { - path = await this.ffmpeg.frame(state, { color: [255, 255, 255] }); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - throw err; - } - try { - await this.display.open(); - await this.display.show(path); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - } - /** - * - **/ - async focus(evt, arg) { - this.log.info(`Showing focus screen`); - try { - await this.display.open(); - await this.display.focus(); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - } - /** - * - **/ - async field(evt, arg) { - const ratio = arg.ratio; - this.log.info(`Showing field guide screen`); - try { - await this.display.open(); - await this.display.field(ratio); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - } - /** - * - **/ - async meter(evt, arg) { - this.log.info(`Showing meter screen`); - try { - await this.display.open(); - await this.display.meter(); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - } - /** - * - **/ - async close(evt, arg) { - try { - await this.display.hide(); - await this.display.close(); - } - catch (err) { - this.log.error(err, 'FILMOUT', true, true); - } - } - /** - * - **/ - onDisplay(evt, arg) { - this.display.change(arg.display); - this.log.info(`Changing the display to ${arg.display}`); - } -} -module.exports = (display, ffmpeg, ffprobe, ui, light) => { - return new FilmOut(display, ffmpeg, ffprobe, ui, light); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/filmout/index.js.map b/cli/lib/filmout/index.js.map deleted file mode 100644 index 82a4c6f..0000000 --- a/cli/lib/filmout/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filmout/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/filmout/package.json b/cli/lib/filmout/package.json deleted file mode 100644 index afe4e39..0000000 --- a/cli/lib/filmout/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "digital", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/frame/index.js b/cli/lib/frame/index.js deleted file mode 100644 index d740511..0000000 --- a/cli/lib/frame/index.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict'; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const jimp_1 = __importDefault(require("jimp")); -class Frame { - static async info(imagePath) { - let image; - try { - image = await jimp_1.default.read(imagePath); - } - catch (err) { - throw err; - } - return { - width: image.bitmap.width, - height: image.bitmap.height - }; - } - static async solidColor(width, height, color) { - //@ts-ignore - const colorInt = jimp_1.default.rgbaToInt(color.r, color.g, color.b, color.a); - return new Promise((resolve, reject) => { - return new jimp_1.default(width, height, colorInt, (err, image) => { - if (err) { - return reject(err); - } - return resolve(image); - }); - }); - } - static async blend(inPath, color, imagePath) { - //cmd2 = `${this.convert} "${tmpoutput}" -resize ${w}x${h} -size ${w}x${h} xc:"rgb(${rgb[0]},${rgb[1]},${rgb[2]})" +swap -compose Darken -composite "${tmpoutput}"`; - const options = { - mode: jimp_1.default.BLEND_DARKEN, - opacitySource: 1.0, - opacityDest: 1.0 - }; - let width; - let height; - let bottom; - let top; - try { - top = await jimp_1.default.read(inPath); - } - catch (err) { - throw err; - } - width = top.bitmap.width; - height = top.bitmap.height; - try { - bottom = await Frame.solidColor(width, height, color); - } - catch (err) { - throw err; - } - bottom.composite(top, 0, 0, options); - try { - await bottom.writeAsync(imagePath); - } - catch (err) { - throw err; - } - return imagePath; - } -} -exports.default = Frame; -module.exports = Frame; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/frame/index.js.map b/cli/lib/frame/index.js.map deleted file mode 100644 index 5221429..0000000 --- a/cli/lib/frame/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/frame/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gDAAwB;AASxB,MAAqB,KAAK;IACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,SAAkB;QACpC,IAAI,KAAW,CAAC;QAChB,IAAI;YACH,KAAK,GAAG,MAAM,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAC;SACV;QACD,OAAO;YACN,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,KAAK;YAC1B,MAAM,EAAG,KAAK,CAAC,MAAM,CAAC,MAAM;SAC5B,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAE,KAAc,EAAE,MAAe,EAAE,KAAY;QACrE,YAAY;QACZ,MAAM,QAAQ,GAAY,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAkB,EAAE,MAAiB,EAAE,EAAE;YAC5D,OAAO,IAAI,cAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACrD,IAAI,GAAG,EAAE;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;gBACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAE,MAAY,EAAE,KAAY,EAAE,SAAkB;QACjE,oKAAoK;QACpK,MAAM,OAAO,GAAS;YACrB,IAAI,EAAE,cAAI,CAAC,YAAY;YACvB,aAAa,EAAE,GAAG;YAClB,WAAW,EAAE,GAAG;SAChB,CAAC;QACF,IAAI,KAAc,CAAC;QACnB,IAAI,MAAe,CAAC;QACpB,IAAI,MAAY,CAAC;QACjB,IAAI,GAAS,CAAC;QAEd,IAAI;YACH,GAAG,GAAG,MAAM,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAC;SACV;QAED,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAE3B,IAAI;YACH,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SACtD;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAC;SACV;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAErC,IAAI;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAC;SACV;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AA/DD,wBA+DC;AAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA"} \ No newline at end of file diff --git a/cli/lib/intval/Readme.md b/cli/lib/intval/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/intval/index.js b/cli/lib/intval/index.js deleted file mode 100644 index 0ecb0fd..0000000 --- a/cli/lib/intval/index.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; -class Intval { - constructor(url) { - this._baseUrl = `http://${url}`; - this.req = require('request'); - } - async move() { - return new Promise((resolve, reject) => { - const timeStart = +new Date(); - const url = `${this._baseUrl}/frame`; - //console.log(url) - return this.req(url, (err, res, body) => { - let ms = (+new Date()) - timeStart; - if (err) { - return reject(err); - } - return resolve(ms); - }); - }); - } - async setDir(dir) { - return new Promise((resolve, reject) => { - const timeStart = +new Date(); - const url = `${this._baseUrl}/dir?dir=${dir}`; - //console.log(url) - return this.req(url, (err, res, body) => { - let ms = (+new Date()) - timeStart; - if (err) { - return reject(err); - } - return resolve(ms); - }); - }); - } - async setExposure(exposure, cb) { - return new Promise((resolve, reject) => { - const timeStart = +new Date(); - const url = `${this._baseUrl}/exposure?exposure=${exposure}`; - //console.log(url) - return this.req(url, (err, res, body) => { - let ms = (+new Date()) - timeStart; - if (err) { - return reject(err); - } - return resolve(ms); - }); - }); - } - connect(cb) { - const timeStart = +new Date(); - const url = `${this._baseUrl}/status`; - const opts = { - method: 'GET', - uri: url, - timeout: 5000 - }; - this.req(opts, (err, res, body) => { - let ms = (+new Date()) - timeStart; - if (err) { - //console.error(err) - return cb(err, ms); - } - cb(null, ms, body); - }); - } -} -module.exports.Intval = Intval; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/intval/index.js.map b/cli/lib/intval/index.js.map deleted file mode 100644 index b951f19..0000000 --- a/cli/lib/intval/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intval/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/intval/package.json b/cli/lib/intval/package.json deleted file mode 100644 index d888b72..0000000 --- a/cli/lib/intval/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "intval", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/light/Readme.md b/cli/lib/light/Readme.md deleted file mode 100644 index fbc28b4..0000000 --- a/cli/lib/light/Readme.md +++ /dev/null @@ -1,32 +0,0 @@ - - -## Light -**Kind**: global class - -* [Light](#Light) - * [.init()](#Light+init) - * [.listen()](#Light+listen) - * [.listener()](#Light+listener) - * [.set()](#Light+set) - * [.end()](#Light+end) - - - -### light.init() -**Kind**: instance method of [Light](#Light) - - -### light.listen() -**Kind**: instance method of [Light](#Light) - - -### light.listener() -**Kind**: instance method of [Light](#Light) - - -### light.set() -**Kind**: instance method of [Light](#Light) - - -### light.end() -**Kind**: instance method of [Light](#Light) diff --git a/cli/lib/light/index.js b/cli/lib/light/index.js deleted file mode 100644 index 33b901b..0000000 --- a/cli/lib/light/index.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const delay_1 = require("delay"); -const Log = require("log"); -class Light { - /** - * - **/ - constructor(arduino, cfg, ui) { - this.state = { color: [0, 0, 0] }; - this.enabled = true; - this.id = 'light'; - this.arduino = arduino; - this.cfg = cfg; - this.ui = ui; - this.init(); - } - /** - * - **/ - async init() { - this.log = await Log({ label: this.id }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * - **/ - listen() { - this.ipc.on(this.id, this.listener.bind(this)); - } - /** - * - **/ - async listener(event, arg) { - if (typeof arg.rgb !== 'undefined') { - try { - await this.set(arg.rgb, arg.id, true); - } - catch (err) { - this.log.error('Error setting light', err); - } - } - else if (typeof arg.enable !== 'undefined') { - this.enabled = true; - } - else if (typeof arg.disable !== 'undefined') { - this.enabled = false; - } - event.returnValue = true; - } - /** - * - **/ - async set(rgb, id, on = true) { - const str = rgb.join(','); - let ms; - this.state.color = rgb; - try { - ms = await this.arduino.send(this.id, this.cfg.arduino.cmd.light); - } - catch (err) { - this.log.error('Error sending light command', err); - } - await delay_1.delay(1); - try { - this.arduino.string(this.id, str); - } - catch (err) { - this.log.error('Error sending light string', err); - } - await delay_1.delay(1); - await ms; - return await this.end(rgb, id, ms); - } - /** - * - **/ - async end(rgb, id, ms) { - let res; - //console.trace() - this.log.info(`Light set to ${rgb.join(',')}`, 'LIGHT', true, true); - try { - //console.dir({ rgb, id, ms }) - res = await this.ui.send(this.id, { rgb, id, ms }); - } - catch (err) { - console.error(err); - throw err; - } - return res; - } -} -module.exports = function (arduino, cfg, ui) { - return new Light(arduino, cfg, ui); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/light/index.js.map b/cli/lib/light/index.js.map deleted file mode 100644 index 850542d..0000000 --- a/cli/lib/light/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/light/package.json b/cli/lib/light/package.json deleted file mode 100644 index 0d59b65..0000000 --- a/cli/lib/light/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "light", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/log/Readme.md b/cli/lib/log/Readme.md deleted file mode 100644 index 4c3bea3..0000000 --- a/cli/lib/log/Readme.md +++ /dev/null @@ -1,8 +0,0 @@ - - -## logFile() ⇒ string -Determine the location of the log file based on the operating system -and return as an absolute string from os.homedir() - -**Kind**: global function -**Returns**: string - Path to log file diff --git a/cli/lib/log/index.js b/cli/lib/log/index.js deleted file mode 100644 index a7e5a3f..0000000 --- a/cli/lib/log/index.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const winston_1 = require("winston"); -const path_1 = require("path"); -const fs_extra_1 = require("fs-extra"); -const os_1 = require("os"); -const logTime = 'MM/DD/YY-HH:mm:ss'; -let transport; -/** - * Determine the location of the log file based on the operating system - * and return as an absolute string from os.homedir() - * - * @returns {string} Path to log file - **/ -async function logFile() { - const homeDir = os_1.homedir(); - const linuxDir = `/.mcopy/`; - const macDir = `/Library/Logs/mcopy/`; - const winDir = `/AppData/Roaming/mcopy/`; - let logPath = path_1.normalize(path_1.join(homeDir, linuxDir)); - let dirExists; - if (process.platform === 'darwin') { - logPath = path_1.normalize(path_1.join(homeDir, macDir)); - } - else if (process.platform === 'win32') { - logPath = path_1.normalize(path_1.join(homeDir, winDir)); - } - try { - dirExists = await fs_extra_1.exists(logPath); - } - catch (err) { - console.error(err); - } - if (!dirExists) { - try { - await fs_extra_1.mkdir(logPath); - } - catch (err) { - console.error(`Error creating directory for mcopy log file, ${logPath}`); - console.error(err); - } - } - return path_1.join(logPath, 'mcopy.log'); -} -/** - * Create and return the logger transport based on settings determined in - * arguments object - * - * @param {object} arg Arguments from process - * - * @returns {object} Logger transport - **/ -module.exports = async function (arg) { - let consoleFormat = { - colorize: true - }; - let fileFormat = { - filename: await logFile(), - json: true - }; - if (arg && arg.quiet) { - transport = { - info: function () { return false; }, - warn: function () { return false; }, - error: function () { return false; } - }; - } - else { - if (arg && arg.label) { - consoleFormat.label = arg.label; - fileFormat.label = arg.label; - } - transport = winston_1.createLogger({ - format: winston_1.format.combine(winston_1.format.label({ label: arg.label || 'mcopy' }), winston_1.format.timestamp({ - format: 'YYYY-MM-DD HH:mm:ss' - }), winston_1.format.printf((info) => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}` + (info.splat !== undefined ? `${info.splat}` : " "))), - transports: [ - new (winston_1.transports.Console)(consoleFormat), - new (winston_1.transports.File)(fileFormat) - ] - }); - } - return transport; -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/log/index.js.map b/cli/lib/log/index.js.map deleted file mode 100644 index 5bdb4b0..0000000 --- a/cli/lib/log/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/log/package.json b/cli/lib/log/package.json deleted file mode 100644 index 7d7202a..0000000 --- a/cli/lib/log/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "log", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/mscript/Readme.md b/cli/lib/mscript/Readme.md deleted file mode 100644 index 3112f09..0000000 --- a/cli/lib/mscript/Readme.md +++ /dev/null @@ -1,186 +0,0 @@ - - -## lib/mscript - -* [lib/mscript](#module_lib/mscript) - * [~Mscript](#module_lib/mscript..Mscript) - * [.clear()](#module_lib/mscript..Mscript+clear) - * [.interpret()](#module_lib/mscript..Mscript+interpret) - * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd) - * [.new_loop()](#module_lib/mscript..Mscript+new_loop) - * [.end_loop()](#module_lib/mscript..Mscript+end_loop) - * [.move_cam()](#module_lib/mscript..Mscript+move_cam) - * [.move_proj()](#module_lib/mscript..Mscript+move_proj) - * [.set_state()](#module_lib/mscript..Mscript+set_state) - * [.last_loop()](#module_lib/mscript..Mscript+last_loop) - * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop) - * [.loop_count()](#module_lib/mscript..Mscript+loop_count) - * [.fade()](#module_lib/mscript..Mscript+fade) - * [.fade_count()](#module_lib/mscript..Mscript+fade_count) - * [.fade_start()](#module_lib/mscript..Mscript+fade_start) - * [.fade_end()](#module_lib/mscript..Mscript+fade_end) - * [.update()](#module_lib/mscript..Mscript+update) - * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr) - * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr) - * [.light_state()](#module_lib/mscript..Mscript+light_state) - * [.fail()](#module_lib/mscript..Mscript+fail) - * [~startsWith()](#module_lib/mscript..startsWith) - - - -### lib/mscript~Mscript -class Mscript - -**Kind**: inner class of [lib/mscript](#module_lib/mscript) - -* [~Mscript](#module_lib/mscript..Mscript) - * [.clear()](#module_lib/mscript..Mscript+clear) - * [.interpret()](#module_lib/mscript..Mscript+interpret) - * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd) - * [.new_loop()](#module_lib/mscript..Mscript+new_loop) - * [.end_loop()](#module_lib/mscript..Mscript+end_loop) - * [.move_cam()](#module_lib/mscript..Mscript+move_cam) - * [.move_proj()](#module_lib/mscript..Mscript+move_proj) - * [.set_state()](#module_lib/mscript..Mscript+set_state) - * [.last_loop()](#module_lib/mscript..Mscript+last_loop) - * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop) - * [.loop_count()](#module_lib/mscript..Mscript+loop_count) - * [.fade()](#module_lib/mscript..Mscript+fade) - * [.fade_count()](#module_lib/mscript..Mscript+fade_count) - * [.fade_start()](#module_lib/mscript..Mscript+fade_start) - * [.fade_end()](#module_lib/mscript..Mscript+fade_end) - * [.update()](#module_lib/mscript..Mscript+update) - * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr) - * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr) - * [.light_state()](#module_lib/mscript..Mscript+light_state) - * [.fail()](#module_lib/mscript..Mscript+fail) - - - -#### mscript.clear() -Clear the state of the script - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.interpret() -Main function, accepts multi-line string, parses into lines -and interprets the instructions from the text. Returns an array -of steps to be fed into the mcopy. - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.basic\_cmd() -Apply a basic two character command - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.new\_loop() -Start a new loop - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.end\_loop() -Close the most recent loop - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.move\_cam() -Move camera to explicitly-defined frame - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.move\_proj() -Move projector to explicitly-defined frame - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.set\_state() -Set the state of either the cam or projector - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.last\_loop() -Return the last loop - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.parent\_loop() -Return the second-last loop - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.loop\_count() -Extract the loop count integer from a LOOP cmd - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.fade() -Execute a fade of frame length, from color to another color - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.fade\_count() -Extract the fade length integer from a FADE cmd - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.fade\_start() -Extract the start color from a string - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.fade\_end() -Extract the end color from a string - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.update() -Increase the state of a specific object, such as the camera/projector, -by the value defined in val - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.str\_to\_arr() -Split string on command, extract any integers from string - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.light\_to\_arr() -Split a string on a command to extract data for light array - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.light\_state() -Split a string to extract an rgb color value - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -#### mscript.fail() -Throw an error with specific message - -**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) - - -### lib/mscript~startsWith() -startswith function from lodash, do not want the entire lib for this - -**Kind**: inner method of [lib/mscript](#module_lib/mscript) diff --git a/cli/lib/mscript/TODO.md b/cli/lib/mscript/TODO.md deleted file mode 100644 index b0f824f..0000000 --- a/cli/lib/mscript/TODO.md +++ /dev/null @@ -1,13 +0,0 @@ -# TODO - mscript - -* Add variables and simple evaluation -* Add "Light" feature - -Bash-like variables? -Similar to LESS/SASS? -Makes a tokenization easier - -@ is better than $ - -RangeError: Invalid array length - at Mscript.str_to_arr (./mcopy/app/lib/mscript/index.js:474:9) diff --git a/cli/lib/mscript/index.js b/cli/lib/mscript/index.js deleted file mode 100644 index daf4dbd..0000000 --- a/cli/lib/mscript/index.js +++ /dev/null @@ -1,691 +0,0 @@ -'use strict'; -const BLACK = '0,0,0'; -const WHITE = '255,255,255'; -const CMD = [ - 'CF', - 'PF', - 'BF', - 'CB', - 'PB', - 'BB' -]; -const ALTS = { - 'CF': ['CAMERA FORWARD', 'CAM FORWARD'], - 'PF': ['PROJECTOR FORWARD', 'PROJ FORWARD'], - 'BF': ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], - 'CB': ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], - 'PB': ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], - 'BB': ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], - 'L ': ['LIGHT', 'COLOR', 'LAMP'], - 'F ': ['FADE'] -}; -const PAUSE = 'PAUSE'; -const ALERT = 'ALERT'; -/** helper functions */ -/** startswith function from lodash, do not want the entire lib for this - * @param str {string} Text to evaluate - * @param target {string} Text to compare string against - * @param position {integer} Position in the string to make comparison at - * - * @returns {boolean} True for match, false for no match - **/ -function startsWith(str, target, position) { - const { length } = str; - position = position == null ? 0 : position; - if (position < 0) { - position = 0; - } - else if (position > length) { - position = length; - } - target = `${target}`; - return str.slice(position, position + target.length) == target; -} -/** class Mscript */ -class Mscript { - /** - * @constructor - * Create new Mscript interpreter - **/ - constructor() { - this.output = {}; - } - /** - * Clear the state of the script - */ - clear() { - this.lines = []; - this.cam = 0; - this.proj = 0; - this.color = ''; - this.loops = []; - this.rec = -1; - this.two = ''; - this.arr = []; - this.meta = []; - this.target = 0; //move to target using CAM # or PROJ # - this.dist = 0; - this.variables = {}; - this.output = {}; - } - /** - * Main function, accepts multi-line string, parses into lines - * and interprets the instructions from the text. Returns an array - * of steps to be fed into the mcopy sequence. - * - * @param {string} text Mscript text to interpret - * @param {function} callback Function to call when string is interpreted - * - * @returns {object} if callback is not provided - */ - interpret(text, callback) { - this.clear(); - if (typeof text === 'undefined') { - return this.fail('No input'); - } - //split string into lines, each containing a command - this.lines = text.split('\n'); - this.lines = this.lines.map(line => { - line = line.replace(/\t+/g, ''); //strip tabs - line = line.trim(); //remove excess whitespace before and after command - line = line.toUpperCase(); - return line; - }); - for (let line of this.lines) { - this.two = line.substring(0, 2); - if (CMD.indexOf(this.two) !== -1) { - this.basic_cmd(line); - } - else if (startsWith(line, PAUSE)) { - this.pause(line); - } - else if (startsWith(line, ALERT)) { - this.alert(line); - } - else if (startsWith(line, '@') || line.indexOf('@') !== -1) { - this.variable(line); - } - else if (startsWith(line, 'LOOP')) { - this.new_loop(line); - } - else if (startsWith(line, 'L ')) { - this.light_state(line); - } - else if (startsWith(line, 'F ')) { - this.new_loop(line, true); - } - else if (startsWith(line, 'END')) { - this.end_loop(line); - } - else if (startsWith(line, 'CAM')) { //directly go to that frame (black?) - this.move_cam(line); - } - else if (startsWith(line, 'PROJ')) { //directly go to that frame - this.move_proj(line); - } - else if (startsWith(line, 'SET')) { //set that state - this.set_state(line); - } - else if (startsWith(line, '#') || startsWith(line, '//')) { - //comments - //ignore while parsing - } - else if (startsWith(line, 'ALERT')) { - } - else if (startsWith(line, 'PAUSE')) { - this.pause(line); - } - } - this.output.success = true; - this.output.arr = this.arr; //all instructions - this.output.meta = this.meta; //all metadata for instructions - this.output.cam = this.cam; - this.output.proj = this.proj; - if (typeof callback !== 'undefined') { - //should only be invoked by running mscript.tests() - callback(this.output); - } - else { - return this.output; - } - } - /** - * Interprets variables for complex sequence behavior. - * TODO: Fully implement, add test coverage - * - * @param {string} line Line containing a variable assignment - * - **/ - variable(line) { - let parts = line.split('='); - let key = parts[0]; - let value = parts[1]; - let update = false; - if (value && value.indexOf('#') !== -1) { - value = value.split('#')[0]; - } - if (value && value.indexOf('//') !== -1) { - value = value.split('//')[0]; - } - if (value && value.indexOf('+') !== -1) { - if (value) - update = true; - } - if (line.indexOf('-') !== -1) { - update = true; - } - if (line.indexOf(',') === -1) { //if not color string - try { - value = parseInt(value); - } - catch (err) { - //supress parsing error - } - } - //console.dir(parts) - if (!this.variables[key] || update) { - this.variables[key] = value; - } - //console.dir(this.variables) - } - /** - * Replace variable with value at time of interpretation - * TODO: Implement this please - * - * @param {string} line Line containing variable to be replaced with value - * - * @returns {string} New string to be interpreted - **/ - variable_replace(line) { - return line; - } - /** - * Interpret a basic two character command - * - * @param {string} line Line of script to interpret - */ - basic_cmd(line) { - if (this.rec !== -1) { - //hold generated arr in state loop array - this.loops[this.rec].arr - .push.apply(this.loops[this.rec].arr, this.str_to_arr(line, this.two)); - this.loops[this.rec].meta - .push.apply(this.loops[this.rec].meta, this.light_to_arr(line, this.two)); - } - else { - this.arr.push.apply(this.arr, this.str_to_arr(line, this.two)); - this.meta.push.apply(this.meta, this.light_to_arr(line, this.two)); - } - } - /** - * Start a new loop - * - * @param {string} line Line to evaluate as either loop or fade - * @param {boolean} fade Flag as boolean if true - */ - new_loop(line, fade) { - this.rec++; - this.loops[this.rec] = { - arr: [], - meta: [], - cam: 0, - proj: 0, - cmd: line + '' - }; - if (fade) { - this.fade(line); - } - } - /** - * Close the most recent loop - * - * @param {string} line Line to interpret - */ - end_loop(line) { - let meta_arr; - let start; - let end; - let len; - for (let x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) { - meta_arr = this.loops[this.rec].meta; - if (this.loops[this.rec].fade) { - start = this.loops[this.rec].start; - end = this.loops[this.rec].end; - len = this.loops[this.rec].fade_len; - meta_arr = meta_arr.map(l => { - return this.fade_rgb(start, end, len, x); - }); - } - if (this.rec === 0) { - this.arr.push.apply(this.arr, this.loops[this.rec].arr); - this.meta.push.apply(this.meta, meta_arr); - } - else if (this.rec >= 1) { - this.loops[this.rec - 1].arr - .push.apply(this.loops[this.rec - 1].arr, this.loops[this.rec].arr); - this.loops[this.rec - 1].meta - .push.apply(this.loops[this.rec - 1].meta, meta_arr); - } - } - this.update('END', this.loop_count(this.loops[this.rec].cmd)); - delete this.loops[this.rec]; - this.rec--; - } - /** - * Move camera to explicitly-defined frame - * - * @param {string} line Line to interpret with camera move statement - */ - move_cam(line) { - this.target = parseInt(line.split('CAM ')[1]); - if (this.rec !== -1) { - if (this.target > this.cam) { - this.dist = this.target - this.cam; - for (let x = 0; x < this.dist; x++) { - this.loops[this.rec].arr.push('BF'); - this.loops[this.rec].meta.push(BLACK); - this.update('BF'); - } - } - else { - this.dist = this.cam - this.target; - for (let x = 0; x < this.dist; x++) { - this.loops[this.rec].arr.push('BB'); - this.loops[this.rec].meta.push(BLACK); - this.update('BB'); - } - } - } - else { - if (this.target > this.cam) { - this.dist = this.target - this.cam; - for (let x = 0; x < this.dist; x++) { - this.arr.push('BF'); - this.meta.push(BLACK); - this.update('BF'); - } - } - else { - this.dist = this.cam - this.target; - for (let x = 0; x < this.dist; x++) { - this.arr.push('BB'); - this.meta.push(BLACK); - this.update('BB'); - } - } - } - } - /** - * Move projector to explicitly-defined frame - * - * @param {string} line Line containing `move` statement to interpret - */ - move_proj(line) { - this.target = parseInt(line.split('PROJ ')[1]); - if (this.rec !== -1) { - if (this.target > this.proj) { - this.dist = this.target - this.proj; - for (let x = 0; x < this.dist; x++) { - this.loops[this.rec].arr.push('PF'); - this.loops[this.rec].meta.push(''); - this.update('PF'); - } - } - else { - this.dist = this.proj - this.target; - for (let x = 0; x < this.dist; x++) { - this.loops[this.rec].arr.push('PB'); - this.loops[this.rec].meta.push(''); - this.update('PB'); - } - } - } - else { - if (this.target > this.proj) { - this.dist = this.target - this.proj; - for (let x = 0; x < this.dist; x++) { - this.arr.push('PF'); - this.meta.push(''); - this.update('PF'); - } - } - else { - this.dist = this.proj - this.target; - for (let x = 0; x < this.dist; x++) { - this.arr.push('PB'); - this.meta.push(''); - this.update('PB'); - } - } - } - } - /** - * Set the state of either the cam or projector - * - * @param line {string} String containing set statement - */ - set_state(line) { - if (startsWith(line, 'SET CAM')) { - this.cam = parseInt(line.split('SET CAM')[1]); - } - else if (startsWith(line, 'SET PROJ')) { - this.proj = parseInt(line.split('SET PROJ')[1]); - } - } - /** - * Return the last loop - * - * @returns {object} - */ - last_loop() { - return this.loops[this.loops.length - 1]; - } - /** - * Return the second-last loop - * - * @returns {object} Loop array - */ - parent_loop() { - return this.loops[this.loops.length - 2]; - } - /** - * Extract the loop count integer from a LOOP cmd - * - * @returns {integer} Loop count in string parsed into integer - */ - loop_count(str) { - return parseInt(str.split(' ')[1]); - } - /** - * Execute a fade of frame length, from color to another color - * - * @param {string} line Line containing a fade initiator - */ - fade(line) { - let len = this.fade_count(line); - let start = this.fade_start(line); - let end = this.fade_end(line); - this.loops[this.rec].start = start; - this.loops[this.rec].end = end; - this.loops[this.rec].fade = true; - this.loops[this.rec].fade_count = 0; - this.loops[this.rec].fade_len = len; - } - /** - * Extract the fade length integer from a FADE cmd - * - * @param {string} str Line containing the length of fade in frames - */ - fade_count(str) { - return parseInt(str.split(' ')[1]); - } - /** - * Extract the start color from a string - * - * @param {string} str Line containing the start color value in a fade initiator - * - * @returns {array} Array containing RGB color values - */ - fade_start(str) { - let color = str.split(' ')[2]; - return this.rgb(color.trim()); - } - /** - * Extract the end color from a string - * - * @param {string} str Line containing the end color value in a fade initiator - * - * @returns {array} Array containing RGB color values - */ - fade_end(str) { - let color = str.split(' ')[3]; - return this.rgb(color.trim()); - } - /** - * Determine the state of a fade at a particular frame in the sequence, x - * - * @param {array} start Color the fade starts at - * @param {array} end Color the fade finishes at - * @param {integer} len Total length of the fade in frames - * @param {integer} x Position of the fade to get color value of - * - * @returns {array} Array containing RGB color values - */ - fade_rgb(start, end, len, x) { - let cur = []; - let diff; - for (let i = 0; i < 3; i++) { - if (x === len - 1) { - cur[i] = end[i]; - } - else if (start[i] >= end[i]) { - diff = start[i] - end[i]; - cur[i] = start[i] - Math.round((diff / (len - 1)) * x); - } - else { - diff = end[i] - start[i]; - cur[i] = start[i] + Math.round((diff / (len - 1)) * x); - } - } - return this.rgb_str(cur); - } - /** - * Parse string into array of RGB color values. 0-255 octet. - * - * @param {string} str String containing only color values as `#,#,#` - **/ - rgb(str) { - let rgb = str.split(','); - return rgb.map((char) => { - return parseInt(char); - }); - } - /** - * Cast RGB color values as string - * - * @param {array} arr Array to join into string - * - * @returns {string} String of RGB values - **/ - rgb_str(arr) { - return arr.join(','); - } - /** - * Increase the state of a specific object, such as the camera/projector, - * by the value defined in val. - * - * @param {string} cmd String representing command to interpret and update state - */ - update(cmd, val = 1) { - if (cmd === 'END') { - //I don't understand this loop - for (let i = 0; i < val; i++) { - if (this.rec === 0) { - this.cam += this.loops[this.rec].cam; - this.proj += this.loops[this.rec].proj; - } - else if (this.rec >= 1) { - this.loops[this.rec - 1].cam += this.loops[this.rec].cam; - this.loops[this.rec - 1].proj += this.loops[this.rec].proj; - } - } - } - else if (cmd === 'CF') { - if (this.rec === -1) { - this.cam += val; - } - else { - this.loops[this.rec].cam += val; - } - } - else if (cmd === 'CB') { - if (this.rec === -1) { - this.cam -= val; - } - else { - this.loops[this.rec].cam--; - } - } - else if (cmd === 'PF') { - if (this.rec === -1) { - this.proj += val; - } - else { - this.loops[this.rec].proj += val; - } - } - else if (cmd === 'PB') { - if (this.rec === -1) { - this.proj -= val; - } - else { - this.loops[this.rec].proj--; - } - } - else if (cmd === 'BF') { - if (this.rec === -1) { - this.cam += val; - } - else { - this.loops[this.rec].cam += val; - } - } - else if (cmd === 'BB') { - if (this.rec === -1) { - this.cam -= val; - } - else { - this.loops[this.rec].cam -= val; - } - } - else if (cmd === 'L ') { - } - } - /** - * Split string on command, turn into array of commands - * as long as count variable. Default 1. - * - * @param {string} str String to split - * @param {string} cmd String representing command to split at - * - * @returns {array} Array containing commands - */ - str_to_arr(str, cmd) { - const cnt = str.split(cmd); - let c = parseInt(cnt[1]); - let arr = []; - if (cnt[1] === '') { - c = 1; - } - else { - c = parseInt(cnt[1]); - } - arr = new Array(c).fill(cmd); - this.update(cmd, c); - return arr; - } - /** - * Split a string on a command to extract data for light array - * - * @param {string} str String containing light command - * @param {string} cmd String representing command - * - * @returns {array} An RGB array containing the color values - */ - light_to_arr(str, cmd) { - const cnt = str.split(cmd); - let c = parseInt(cnt[1]); - let arr = []; - if (cnt[1] === '') { - c = 1; - } - else { - c = parseInt(cnt[1]); - } - for (let i = 0; i < c; i++) { - if (cmd === 'CF' - || cmd === 'CB') { - arr.push(this.color); - } - else if (cmd === 'BF' - || cmd === 'BB') { - arr.push(BLACK); - } - else { - arr.push(''); - } - } - return arr; - } - /** - * Split a string to extract an rgb color value - * - * @param {string} Color string assign to color property - */ - light_state(str) { - //add parsers for other color spaces - const color = str.replace('L ', '').trim(); - this.color = color; - } - /** - * Interpret a pause command - * - * @param {string} line String containing pause command - **/ - pause(line) { - let lenStr = line.split(' ')[1] || ''; - let len; - lenStr = lenStr.trim(); - try { - len = parseInt(lenStr, 10); //clean up string or fail - } - catch (err) { - len = 0; - } - if (isNaN(len)) { - len = 0; - } - lenStr = String(len); - if (this.rec !== -1) { - //hold generated arr in state loop array - this.loops[this.rec].arr - .push('PA'); - this.loops[this.rec].meta - .push(lenStr); - } - else { - this.arr.push('AL'); - this.meta.push(lenStr); - } - } - /** - * Interpret an alert command - * - * @param {string} line String containing pause command - **/ - alert(line) { - let msg = line.split(' ')[1] || ''; - msg = msg.trim(); - if (this.rec !== -1) { - //hold generated arr in state loop array - this.loops[this.rec].arr - .push('AL'); - this.loops[this.rec].meta - .push(msg); - } - else { - this.arr.push('AL'); - this.meta.push(msg); - } - } - /** - * Throw an error with specific message - * - * @param {string} msg Error message to print - */ - fail(msg) { - throw new Error(msg); - } -} -module.exports = Mscript; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/mscript/index.js.map b/cli/lib/mscript/index.js.map deleted file mode 100644 index ea5ec61..0000000 --- a/cli/lib/mscript/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/mscript/index.old.js b/cli/lib/mscript/index.old.js deleted file mode 100644 index 65e8d17..0000000 --- a/cli/lib/mscript/index.old.js +++ /dev/null @@ -1,476 +0,0 @@ -'use strict'; - -/** @module lib/mscript */ - -let fs; -let input; - -/** object mscript */ -const mscript = {}; - -/** - * Check for the presence of specific arguments in process - * argv - * - * @param {string} shrt Short version of argument or flag - * @param {string} lng Long version of argument or flag - * - * @return {boolean} Is flag present - */ -mscript.arg = function arg (shrt, lng) { - if (process.argv.indexOf(shrt) !== -1 || - process.argv.indexOf(lng) !== -1) { - return true; - } - return false; -}; - -/** - * Check for the position of specific arguments in process - * argv - * - * @param {string} shrt Short version of argument or flag - * @param {string} lng Long version of argument or flag - * - * @return {boolean} Position of arg or flag, for locating input - */ -mscript.arg_pos = function arg_pos (shrt, lng) { - var pos = -1; - pos = process.argv.indexOf(shrt); - if (pos === -1) { - pos = process.argv.indexOf(lng); - } - return pos; -}; - -mscript.black = '0,0,0'; -mscript.cmd = [ - 'CF', - 'PF', - 'BF', - 'CB', - 'PB', - 'BB' -]; -mscript.alts = { - 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], - 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], - 'BF' : ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], - 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], - 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], - 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], - 'L ' : ['LIGHT', 'COLOR', 'LAMP'], - 'F ' : ['FADE'] -}; - -mscript.state = {}; - -/** - * Clear the state object - */ -mscript.state_clear = function state_clear () { - mscript.state = { - cam : 0, - proj : 0, - color : '', - loops : [], - rec : -1 - }; -}; -/** - * This is never used and doesn't do anything? - */ -mscript.alts_unique = function alts_unique () { - var ids = Object.keys(mscript.alts), - all = []; - for (var i = 0; i < ids.length; i++) { - if (all.indexOf(ids[i]) === -1) { - all.push(ids[i]); - } else { - mscript.fail("Can't compile"); - } - } -}; -/** - * - */ -mscript.interpret = function interpret (text, callback) { - mscript.state_clear(); - if (typeof text === 'undefined') { - mscript.fail('No input'); - } - var lines = text.split('\n'), - two = '', - arr = [], - light = [], - target = 0, - dist = 0, //? - output = {}; - for (var i = 0; i < lines.length; i++) { - lines[i] = lines[i].replace(/\t+/g, ""); //strip tabs - lines[i] = lines[i].trim(); //remove excess whitespace before and after command - two = lines[i].substring(0, 2); - if (mscript.cmd.indexOf(two) !== -1) { - - if (mscript.state.loops.length > 0) { - //hold generated arr in state loop array - mscript.state.loops[mscript.state.rec].arr - .push.apply(mscript.state.loops[mscript.state.rec].arr, - mscript.str_to_arr(lines[i], - two)); - mscript.state.loops[mscript.state.rec].light - .push.apply(mscript.state.loops[mscript.state.rec].light, - mscript.light_to_arr(lines[i], - two)); - } else { - arr.push.apply(arr, mscript.str_to_arr(lines[i], two)); - light.push.apply(light, mscript.light_to_arr(lines[i], two)) - } - - } else if (lines[i].substring(0, 4) === 'LOOP') { - mscript.state.rec++; - mscript.state.loops[mscript.state.rec] = { - arr : [], - light : [], - cam : 0, - proj : 0, - cmd : lines[i] + '' - }; - } else if (lines[i].substring(0, 2) === 'L ') { - mscript.light_state(lines[i]); - } else if (lines[i].substring(0, 3) === 'END') { - for (var x = 0; x < mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd); x++) { - if (mscript.state.rec === 0) { - arr.push.apply(arr, mscript.state.loops[mscript.state.rec].arr); - light.push.apply(light, mscript.state.loops[mscript.state.rec].light); - } else if (mscript.state.rec >= 1) { - mscript.state.loops[mscript.state.rec - 1].arr - .push.apply(mscript.state.loops[mscript.state.rec - 1].arr, - mscript.state.loops[mscript.state.rec].arr); - mscript.state.loops[mscript.state.rec - 1].light - .push.apply(mscript.state.loops[mscript.state.rec - 1].light, - mscript.state.loops[mscript.state.rec].light); - } - } - mscript.state_update('END', mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd)); - delete mscript.state.loops[mscript.state.rec]; - mscript.state.rec--; - } else if (lines[i].substring(0, 3) === 'CAM') { //directly go to that frame (black?) - target = parseInt(lines[i].split('CAM ')[1]); - if (mscript.state.loops.length > 0) { - if (target > mscript.state.cam) { - dist = target - mscript.state.cam; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('BF'); - mscript.state.loops[mscript.state.rec].light.push(mscript.black); - mscript.state_update('BF'); - } - } else { - dist = mscript.state.cam - target; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('BB'); - mscript.state.loops[mscript.state.rec].light.push(mscript.black); - mscript.state_update('BB'); - } - } - } else { - if (target > mscript.state.cam) { - dist = target - mscript.state.cam; - for (var x = 0; x < dist; x++) { - arr.push('BF'); - light.push(mscript.black); - mscript.state_update('BF'); - } - } else { - dist = mscript.state.cam - target; - for (var x = 0; x < dist; x++) { - arr.push('BB'); - light.push(mscript.black); - mscript.state_update('BB'); - } - } - } - } else if (lines[i].substring(0, 4) === 'PROJ') { //directly go to that frame - target = parseInt(lines[i].split('PROJ ')[1]); - if (mscript.state.loops.length > 0) { - if (target > mscript.state.proj) { - dist = target - mscript.state.proj; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('PF'); - mscript.state.loops[mscript.state.rec].light.push(''); - mscript.state_update('PF'); - } - } else { - dist = mscript.state.proj - target; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('PB'); - mscript.state.loops[mscript.state.rec].light.push(''); - mscript.state_update('PB'); - } - } - } else { - if (target > mscript.state.proj) { - dist = target - mscript.state.proj; - for (var x = 0; x < dist; x++) { - arr.push('PF'); - light.push(''); - mscript.state_update('PF'); - } - } else { - dist = mscript.state.proj - target; - for (var x = 0; x < dist; x++) { - arr.push('PB'); - light.push(''); - mscript.state_update('PB'); - } - } - } - } else if (lines[i].substring(0, 3) === 'SET') { //set that state - if (lines[i].substring(0, 7) === 'SET CAM') { - mscript.state.cam = parseInt(lines[i].split('SET CAM')[1]); - } else if (lines[i].substring(0, 8) === 'SET PROJ') { - mscript.state.proj = parseInt(lines[i].split('SET PROJ')[1]); - } - } else if (lines[i].substring(0, 1) === '#' || lines[i].substring(0, 2) === '//') { - //comments - //ignore while parsing - } - } - output.success = true; - output.arr = arr; - output.light = light; - output.cam = mscript.state.cam; - output.proj = mscript.state.proj; - if (typeof callback !== 'undefined') { - //should only be invoked by running mscript.tests() - callback(output); - } else { - return mscript.output(output); - } -}; -/** - * - */ -mscript.last_loop = function last_loop () { - return mscript.state.loops[mscript.state.loops.length - 1]; -}; -/** - * - */ -mscript.parent_loop = function parent_loop () { - return mscript.state.loops[mscript.state.loops.length - 2]; -}; -/** - * - */ -mscript.state_update = function state_update (cmd, val) { - if (cmd === 'END') { - for (var i = 0; i < val; i++) { - if (mscript.state.rec === 0) { - mscript.state.cam += mscript.state.loops[mscript.state.rec].cam; - mscript.state.proj += mscript.state.loops[mscript.state.rec].proj; - } else if (mscript.state.rec >= 1) { - mscript.state.loops[mscript.state.rec - 1].cam += mscript.state.loops[mscript.state.rec].cam; - mscript.state.loops[mscript.state.rec - 1].proj += mscript.state.loops[mscript.state.rec].proj; - } - } - } else if (cmd === 'CF') { - if (mscript.state.loops.length < 1) { - mscript.state.cam++; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'CB') { - if (mscript.state.loops.length < 1) { - mscript.state.cam--; - } else { - mscript.state.loops[mscript.state.rec].cam--; - } - } else if (cmd === 'PF') { - if (mscript.state.loops.length < 1) { - mscript.state.proj++; - } else { - mscript.state.loops[mscript.state.rec].proj++; - } - } else if (cmd === 'PB') { - if (mscript.state.loops.length < 1) { - mscript.state.proj--; - } else { - mscript.state.loops[mscript.state.rec].proj--; - } - } else if (cmd === 'BF') { - if (mscript.state.loops.length < 1) { - mscript.state.cam++; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'BB') { - if (mscript.state.loops.length < 1) { - mscript.state.cam--; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'L ') { - - } -}; -/** - * - */ -mscript.str_to_arr = function str_to_arr (str, cmd) { - var cnt = str.split(cmd), - c = parseInt(cnt[1]), - arr = []; - if (cnt[1] === '') { - c = 1; - } else { - c = parseInt(cnt[1]); - } - for (var i = 0; i < c; i++) { - arr.push(cmd); - mscript.state_update(cmd); - } - return arr; -}; -/** - * - */ -mscript.light_state = function light_state (str) { - //add parsers for other color spaces - var color = str.replace('L ', '').trim(); - mscript.state.color = color; -}; -/** - * - */ -mscript.light_to_arr = function light_to_arr (str, cmd) { - var cnt = str.split(cmd), - c = parseInt(cnt[1]), - arr = []; - if (cnt[1] === '') { - c = 1; - } else { - c = parseInt(cnt[1]); - } - for (var i = 0; i < c; i++) { - if (cmd === 'CF' - || cmd === 'CB') { - arr.push(mscript.state.color); - } else if (cmd === 'BF' - || cmd === 'BB') { - arr.push(mscript.black); - } else { - arr.push(''); - } - } - return arr; -}; -/** - * - */ -mscript.loop_count = function loop_count (str) { - return parseInt(str.split(' ')[1]); -}; -mscript.fade_count = function fade_count (str) { - return parseInt(str.split(' ')[1]); -} -/** - * - */ -mscript.fail = function fail (reason) { - console.error(JSON.stringify({success: false, error: true, msg : reason})); - if (process) process.exit(); -}; -/** - * - */ -mscript.output = function output (data) { - var json = true; //default - if (mscript.arg('-j', '--json')) { - json = true; - } - - if (mscript.arg('-t', '--text')) { - json = false; - } - - if (json) { - console.log(JSON.stringify(data)); - } else { - var ids = Object.keys(data); - for (var i = 0; i < ids.length; i++) { - console.log(ids[i] + ': ' + data[ids[i]]); - } - } -}; -/** - * - */ -mscript.init = function init () { - if (mscript.arg('-t', '--tests')) { - return mscript.tests(); - } - - if (mscript.arg('-v', '--verbose')) { - console.time('mscript'); - } - - if (mscript.arg('-c', '--cam')) { - mscript.state.cam = parseInt(process.argv[mscript.arg_pos('-c', '--cam') + 1]); - } - - if (mscript.arg('-p', '--proj')) { - mscript.state.proj = parseInt(process.argv[mscript.arg_pos('-p', '--proj') + 1]); - } - - if (mscript.arg('-f', '--file')) { - input = process.argv[mscript.arg_pos('-f', '--file') + 1]; - mscript.interpret(fs.readFileSync(input, 'utf8')); - } else { - mscript.interpret(input); - } - - if (mscript.arg('-v', '--verbose')) { - console.timeEnd('mscript'); - } -}; - -if (typeof document === 'undefined' - && typeof module !== 'undefined' - && !module.parent) { - //node script - fs = require('fs'); - input = process.argv[2]; - mscript.init(); -} else if (typeof module !== 'undefined' && module.parent) { - //module - fs = require('fs'); - module.exports = mscript; -} else { - //web -} - - -/* - -CAM # - go to camera frame # -PROJ # - go to projector frame # - -SET CAM # - sets camera count to # -SET PROJ # - sets projector count to # - -LOOP # - begin loop, can nest recursively, # times -END LOOP - (or END) closes loop - -L #RGB - sets light to rgb value - -FADE - -CF - Camera forwards -PF - Projector forwards -BF - Black forwards -CB - Camera backwards -PB - Projector backwards -BB - Black backwards - -*/ \ No newline at end of file diff --git a/cli/lib/mscript/package.json b/cli/lib/mscript/package.json deleted file mode 100644 index 5453ae8..0000000 --- a/cli/lib/mscript/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "mscript", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/proj/Readme.md b/cli/lib/proj/Readme.md deleted file mode 100644 index a3d61e0..0000000 --- a/cli/lib/proj/Readme.md +++ /dev/null @@ -1,37 +0,0 @@ - - -## Projector -**Kind**: global class - -* [Projector](#Projector) - * [.init()](#Projector+init) - * [.listen()](#Projector+listen) - * [.set()](#Projector+set) - * [.move()](#Projector+move) - * [.listener()](#Projector+listener) - * [.end()](#Projector+end) - - - -### projector.init() -**Kind**: instance method of [Projector](#Projector) - - -### projector.listen() -**Kind**: instance method of [Projector](#Projector) - - -### projector.set() -**Kind**: instance method of [Projector](#Projector) - - -### projector.move() -**Kind**: instance method of [Projector](#Projector) - - -### projector.listener() -**Kind**: instance method of [Projector](#Projector) - - -### projector.end() -**Kind**: instance method of [Projector](#Projector) diff --git a/cli/lib/proj/index.js b/cli/lib/proj/index.js deleted file mode 100644 index 9eaf156..0000000 --- a/cli/lib/proj/index.js +++ /dev/null @@ -1,175 +0,0 @@ -"use strict"; -/** class representing the Projector features **/ -Object.defineProperty(exports, "__esModule", { value: true }); -const Log = require("log"); -class Projector { - /** - * - **/ - constructor(arduino, cfg, ui, filmout, second = false) { - this.state = { - pos: 0, - dir: true - }; - this.arduino = null; - this.id = 'projector'; - this.arduino = arduino; - this.cfg = cfg; - this.ui = ui; - this.filmout = filmout; - if (second) - this.id += '_second'; - this.init(); - } - /** - * - **/ - async init() { - this.log = await Log({ label: this.id }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * - **/ - listen() { - this.ipc.on(this.id, this.listener.bind(this)); - } - /** - * - **/ - async set(dir, id) { - let cmd; - let ms; - if (dir) { - cmd = this.cfg.arduino.cmd[`${this.id}_forward`]; - } - else { - cmd = this.cfg.arduino.cmd[`${this.id}_backward`]; - } - this.state.dir = dir; - if (this.filmout.state.enabled) { - this.filmout.set(dir); - } - else { - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(`Error setting ${this.id} direction`, err); - } - } - return await this.end(cmd, id, ms); - } - /** - * - **/ - async move(frame, id) { - const cmd = this.cfg.arduino.cmd[this.id]; - let ms; - if (this.filmout.state.enabled) { - try { - ms = await this.filmout.move(); - } - catch (err) { - this.log.error(err); - } - } - else { - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(`Error moving ${this.id}`, err); - } - } - //this.log.info('Projector move time', { ms }); - return await this.end(cmd, id, ms); - } - async both(frame, id) { - const cmd = this.cfg.arduino.cmd[this.id + 's']; - let ms; - try { - ms = await this.arduino.send(this.id, cmd); - } - catch (err) { - this.log.error(`Error moving ${this.id}`, err); - } - //this.log.info('Projectors move time', { ms }); - return await this.end(cmd, id, ms); - } - /** - * - **/ - async listener(event, arg) { - if (typeof arg.dir !== 'undefined') { - try { - await this.set(arg.dir, arg.id); - } - catch (err) { - this.log.error(err); - } - } - else if (typeof arg.frame !== 'undefined') { - try { - await this.move(arg.frame, arg.id); - } - catch (err) { - this.log.error(err); - } - } - else if (typeof arg.val !== 'undefined') { - this.state.pos = arg.val; - this.filmout.state.frame = arg.val; - } - event.returnValue = true; - } - /** - * - **/ - async end(cmd, id, ms) { - let message = ''; - if (cmd === this.cfg.arduino.cmd.projector_forward) { - message = 'Projector set to FORWARD'; - } - else if (cmd === this.cfg.arduino.cmd.projector_backward) { - message = 'Projector set to BACKWARD'; - } - else if (cmd === this.cfg.arduino.cmd.projector_second_forward) { - message = 'Projector second set to FORWARD'; - } - else if (cmd === this.cfg.arduino.cmd.projector_second_backward) { - message = 'Projector second set to BACKWARD'; - } - else if (cmd === this.cfg.arduino.cmd.projector) { - message = 'Projector '; - if (this.state.dir) { - message += 'ADVANCED'; - } - else { - message += 'REWOUND'; - } - message += ' 1 frame'; - } - else if (cmd === this.cfg.arduino.cmd.projector_second) { - message = 'Projector second '; - if (this.state.dir) { - message += 'ADVANCED'; - } - else { - message += 'REWOUND'; - } - message += ' 1 frame'; - } - else if (cmd === this.cfg.arduino.cmd.projectors) { - message += 'Projectors both MOVED 1 frame each'; - } - message += ` ${ms}ms`; - this.log.info(message, 'PROJECTOR'); - return await this.ui.send(this.id, { cmd: cmd, id: id, ms: ms }); - } -} -module.exports = function (arduino, cfg, ui, filmout, second) { - return new Projector(arduino, cfg, ui, filmout, second); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/proj/index.js.map b/cli/lib/proj/index.js.map deleted file mode 100644 index d6afd21..0000000 --- a/cli/lib/proj/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proj/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/proj/package.json b/cli/lib/proj/package.json deleted file mode 100644 index 9c9782f..0000000 --- a/cli/lib/proj/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "proj", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/sequencer/Readme.md b/cli/lib/sequencer/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/cli/lib/sequencer/index.js b/cli/lib/sequencer/index.js deleted file mode 100644 index a742f34..0000000 --- a/cli/lib/sequencer/index.js +++ /dev/null @@ -1,240 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const Log = require("log"); -const electron_1 = require("electron"); -/** @module lib/sequencer **/ -let seq; -class Sequencer { - /** - * @constructor - * Create a new sequencer and assign command and UI as private sub-classes - * - * @param {object} cfg Configuration object - * @param {object} cmd Shared command class - * @param {object} ui Electron UI, browser window - **/ - constructor(cfg, cmd, ui) { - this.running = false; - this.paused = false; - this.grid = []; - this.gridLoops = 1; - this.arr = []; //store sequence from gui - this.loops = 1; - this.CMDS = {}; - this.id = 'sequence'; - this.alerted = false; - this.cfg = cfg; - this.cmd = cmd; - this.ui = ui; - this.cmds(cfg.cmd); - this.init(); - } - /** - * Take configuration object and assign all commands as keys - * in the internal CMDS object. - * - * @param {object} obj Configuration object - **/ - cmds(obj) { - let keys = Object.keys(obj); - for (let key of keys) { - this.CMDS[obj[key]] = key; - } - // - // - } - /** - * Initialize the class by requiring ipcMain from electron - * and creating logger. - * - **/ - async init() { - this.log = await Log({ label: this.id }); - this.ipc = require('electron').ipcMain; - this.listen(); - } - /** - * Bind ipc listener to channel 'sequencer' or current id of - * class. - **/ - listen() { - this.ipc.on(this.id, this.listener.bind(this)); - } - /** - * Listener callback function. Called whenever ipc - * message is sent to channel 'sequencer'. - * - * @param {object} event IPC message event - * @param {object} arg Arguments provided in message - **/ - async listener(event, arg) { - if (arg && arg.start) { - this.start(arg); - } - else if (arg && arg.stop) { - this.stop(); - } - else if (arg && arg.pause) { - this.pause(); - } - else if (arg && arg.set) { - this.setSteps(arg.set); - } - else if (arg && arg.unset) { - this.unsetSteps(arg.unset); - } - else if (arg && arg.loops) { - this.setLoops(arg.loops); - } - event.returnValue = true; - } - /** - * Sets the value of the loops in the grid sequence - * to value sent by UI in ipc message. - * - * @param {integer} count Number of loops to set grid sequence to - **/ - setLoops(count) { - this.gridLoops = count; - this.log.info(`Set loop count to ${count}`); - } - /** - * Sets multiple steps at once - * - * @param {array} steps Array of steps to set or update - **/ - setSteps(steps) { - for (let step of steps) { - this.grid[step.x] = step; - } - } - /** - * Resets multiple steps to default 'undefined' state - * - * @param {array} steps Array containing the x location of steps to unset - **/ - unsetSteps(steps) { - for (let x of steps) { - this.grid[x] = undefined; - } - } - /** - * Starts a sequence with the existing grid sequence, - * or if one is provided in the arg object, starts - * that sequence. - * - * @param {object} arg Arguments from ipc message - **/ - async start(arg) { - const psbId = electron_1.powerSaveBlocker.start('prevent-display-sleep'); - let startTime = +new Date(); - let ms; - if (arg && arg.arr) { - this.arr = arg.arr; //overwrite sequence - } - else { - this.arr = this.grid; - } - if (arg && arg.loops) { - this.loops = arg.loops; //overwrite loops - } - else { - this.loops = this.gridLoops; - } - this.running = true; - this.paused = false; - //start sequence - this.log.info(`Starting sequence...`); - this.ui.send(this.id, { start: true }); - if (this.cmd.proj.filmout.state.enabled === true) { - await this.cmd.proj.filmout.display.open(); - } - for (let x = 0; x < this.loops; x++) { - //start loop - this.log.info(`Starting loop ${x + 1}`); - this.ui.send(this.id, { loop: x, start: true }); - for (let y = 0; y < this.arr.length; y++) { - //start step - if (!this.running) { - break; - } - //UI initiates pause, not planned - while (this.paused) { - await delay(42); - } - if (typeof this.arr[y] === 'undefined') { - continue; - } - this.log.info(`Starting step ${y + 1} of loop ${x + 1}`); - this.ui.send(this.id, { step: y, loop: x, start: true }); - await this.step(y); - //end step - this.log.info(`Ended step ${y + 1} of loop ${x + 1}`); - this.ui.send(this.id, { step: y, loop: x, stop: true }); - } - if (!this.running) { - break; - } - //end loop - this.log.info(`Ended loop ${x + 1}`); - this.ui.send(this.id, { loop: x, stop: true }); - } - if (this.cmd.proj.filmout.state.enabled === true) { - await this.cmd.proj.filmout.display.close(); - } - electron_1.powerSaveBlocker.stop(psbId); - this.psbId = null; - ms = (+new Date()) - startTime; - //end sequence - this.log.info(`Ended sequence`); - this.ui.send(this.id, { stop: true, ms }); - } - /** - * Pauses sequence from UI. - **/ - pause() { - this.paused = true; - } - /** - * Stops the sequence - **/ - stop() { - if (this.cmd.proj.filmout.state.enabled === true) { - this.cmd.proj.filmout.display.close(); - } - this.running = false; - if (this.psbId) { - electron_1.powerSaveBlocker.stop(this.psbId); - } - //clear? - } - /** - * Execute command @ step x. Wrapper with try catch. - * - * @param {integer} x Step to execute command at - **/ - async step(x) { - try { - await this.cmdExec(x); - } - catch (err) { - throw err; - } - } - /** - * Locate step @ position x and execute the command. - * - * @param {integer} x Step to execute command at - **/ - async cmdExec(x) { - const cmdOriginal = this.arr[x].cmd; - const cmd = this.CMDS[cmdOriginal]; - this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); - //I wrote this when I was very tired and delirious - return await this.cmd[cmd](); - } -} -module.exports = function (cfg, cmd, ui) { - return new Sequencer(cfg, cmd, ui); -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/sequencer/index.js.map b/cli/lib/sequencer/index.js.map deleted file mode 100644 index 08bcbc7..0000000 --- a/cli/lib/sequencer/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/sequencer/package.json b/cli/lib/sequencer/package.json deleted file mode 100644 index 6fb32b0..0000000 --- a/cli/lib/sequencer/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "sequencer", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/settings/Readme.md b/cli/lib/settings/Readme.md deleted file mode 100644 index 7ed0553..0000000 --- a/cli/lib/settings/Readme.md +++ /dev/null @@ -1,42 +0,0 @@ - - -## Settings -**Kind**: global class - -* [Settings](#Settings) - * [.checkDir()](#Settings+checkDir) - * [.save()](#Settings+save) - * [.update()](#Settings+update) - * [.get()](#Settings+get) - * [.all()](#Settings+all) - * [.restore()](#Settings+restore) - * [.reset()](#Settings+reset) - - - -### settings.checkDir() -**Kind**: instance method of [Settings](#Settings) - - -### settings.save() -**Kind**: instance method of [Settings](#Settings) - - -### settings.update() -**Kind**: instance method of [Settings](#Settings) - - -### settings.get() -**Kind**: instance method of [Settings](#Settings) - - -### settings.all() -**Kind**: instance method of [Settings](#Settings) - - -### settings.restore() -**Kind**: instance method of [Settings](#Settings) - - -### settings.reset() -**Kind**: instance method of [Settings](#Settings) diff --git a/cli/lib/settings/index.js b/cli/lib/settings/index.js deleted file mode 100644 index 869e3b4..0000000 --- a/cli/lib/settings/index.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const os = require("os"); -const path = require("path"); -const fs = require("fs-extra"); -class Settings { - /** - * - **/ - constructor() { - this.file = path.join(os.homedir(), `/.mcopy/settings.json`); - this.defaultState = { - server: { - port: 1111, - enabled: true - }, - devices: [], - profile: 'mcopy', - camera: {}, - projector: {}, - light: {} - }; - this.state = this.freshState(); - } - freshState() { - return JSON.parse(JSON.stringify(this.defaultState)); - } - /** - * - **/ - async checkDir() { - const dir = path.join(os.homedir(), '.mcopy/'); - const exists = await fs.exists(dir); - if (!exists) { - try { - await fs.mkdir(dir); - } - catch (err) { - if (err.code === 'EEXIST') - return true; - console.error(err); - } - } - return true; - } - /** - * - **/ - async save() { - const str = JSON.stringify(this.state, null, '\t'); - this.checkDir(); - try { - await fs.writeFile(this.file, str, 'utf8'); - } - catch (err) { - console.error(err); - } - } - /** - * - **/ - update(key, val) { - this.state[key] = val; - } - /** - * - **/ - get(key) { - return this.state[key]; - } - /** - * - **/ - all() { - return this.state; - } - /** - * - **/ - async restore() { - let exists; - let str; - this.checkDir(); - exists = await fs.exists(this.file); - if (exists) { - str = await fs.readFile(this.file, 'utf8'); - this.state = JSON.parse(str); - //console.dir(this.state) - } - else { - this.save(); - } - } - /** - * - **/ - async reset() { - const exists = await fs.exists(this.file); - if (exists) { - try { - await fs.unlink(this.file); - } - catch (err) { - console.error(err); - } - } - this.state = this.freshState(); - this.restore(); - } - ; -} -module.exports = new Settings(); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/settings/index.js.map b/cli/lib/settings/index.js.map deleted file mode 100644 index 09bd78c..0000000 --- a/cli/lib/settings/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/settings/package.json b/cli/lib/settings/package.json deleted file mode 100644 index 87cc2fb..0000000 --- a/cli/lib/settings/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "settings", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/spawn/Readme.md b/cli/lib/spawn/Readme.md deleted file mode 100644 index 83592bb..0000000 --- a/cli/lib/spawn/Readme.md +++ /dev/null @@ -1,7 +0,0 @@ - - -## spawn() -Wrapper function around spawn that prints to console -after process closes. Not used. - -**Kind**: global function diff --git a/cli/lib/spawn/index.js b/cli/lib/spawn/index.js deleted file mode 100644 index 8ea761c..0000000 --- a/cli/lib/spawn/index.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -const spawnRaw = require('child_process').spawn; - -/** - * Wrapper function around spawn that prints to console - * after process closes. Not used. - **/ -function spawn (cmd, args) { - const sp = spawnRaw(cmd, args); - let output = ''; - sp.stderr.on('data', (data) => { - output += data; - //console.log(`${data}`); - }); - sp.on('close', (code) => { - console.log(output); - }); - return sp; -} - -module.exports = spawn; \ No newline at end of file diff --git a/cli/lib/spawn/package.json b/cli/lib/spawn/package.json deleted file mode 100644 index 7fbd317..0000000 --- a/cli/lib/spawn/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "spawn", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/lib/system/Readme.md b/cli/lib/system/Readme.md deleted file mode 100644 index 9a1dbf0..0000000 --- a/cli/lib/system/Readme.md +++ /dev/null @@ -1,37 +0,0 @@ -## Functions - -
-
dependencies(platform)
-

Evaluates system dependencies for digital -projector features by executing processes with ---help flag. If they do not exist, log to console

-
-
system()object
-

Profile the current system and return an object with -data about the displays and dependencies for the digital -projector feature.

-
-
- - - -## dependencies(platform) -Evaluates system dependencies for digital -projector features by executing processes with ---help flag. If they do not exist, log to console - -**Kind**: global function - -| Param | Type | Description | -| --- | --- | --- | -| platform | string | Operating system type | - - - -## system() ⇒ object -Profile the current system and return an object with -data about the displays and dependencies for the digital -projector feature. - -**Kind**: global function -**Returns**: object - Object containing system information diff --git a/cli/lib/system/index.js b/cli/lib/system/index.js deleted file mode 100644 index a1a0436..0000000 --- a/cli/lib/system/index.js +++ /dev/null @@ -1,122 +0,0 @@ -'use strict'; -Object.defineProperty(exports, "__esModule", { value: true }); -const os_1 = require("os"); -const electron_1 = require("electron"); -//private -const exec_1 = require("exec"); -/** - * Evaluates system dependencies for digital - * projector features by executing `which` on binary. - * If they do not exist, log to console - * - * @param {string} platform Operating system type - * - * @returns {object} Object containing path to dependency from `which`, if they exist - **/ -async function dependencies(platform) { - let obj = {}; - let ffmpeg = require('ffmpeg-static'); - let ffprobe = require('ffprobe-static'); - let ffoutput; - //let imoutput : ExecOutput; - let eogoutput; - obj.ffmpeg = ffmpeg; /*.replace( - 'app.asar', - 'app.asar.unpacked' - );*/ - obj.ffprobe = ffprobe.path; /*.replace( - 'app.asar', - 'app.asar.unpacked' - );*/ - try { - //imoutput = await exec('which convert'); - } - catch (err) { - console.error('imagemagick is not installed', err); - } - /*if (!imoutput || imoutput.stdout.trim() === '') { - console.error('imagemagick is not installed'); - } else { - obj.convert = imoutput.stdout.trim(); - }*/ - //if linux - if (platform === 'nix') { - try { - eogoutput = await exec_1.exec('which eog'); - } - catch (err) { - console.error('eog is not installed', err); - } - if (!eogoutput || eogoutput.stdout.trim() === '') { - console.error('eog is not installed'); - } - else { - obj.eog = eogoutput.stdout.trim(); - } - } - return obj; -} -function displayMap(obj) { - const sm = { - id: obj.id, - width: obj.size.width, - height: obj.size.height, - x: obj.bounds.x, - y: obj.bounds.y, - scale: obj.scaleFactor, - primary: (obj.bounds.x === 0 && obj.bounds.y === 0) - }; - const primary = sm.primary ? ' (Primary)' : ''; - sm.name = `${sm.width}x${sm.height}${primary}`; - return sm; -} -function displaySort(a, b) { - if (a.primary) { - return -1; - } - else if (b.primary) { - return 1; - } - return 0; -} -async function displays() { - let displays = electron_1.screen.getAllDisplays(); - displays = displays.map(displayMap); - displays.sort(displaySort); - return displays; -} -/** - * Profile the current system and return an object with - * data about the displays and dependencies for the digital - * projector feature. - * - * @returns {object} Object containing system information - */ -async function system(ui) { - const obj = {}; - let platform; - try { - obj.tmp = os_1.tmpdir(); - } - catch (err) { - obj.tmp = '/tmp'; - } - platform = os_1.type(); - if (platform === 'Darwin') { - obj.platform = 'osx'; - } - else if (platform === 'Windows_NT') { - obj.platform = 'win'; - } - else { - obj.platform = 'nix'; - } - obj.displays = await displays(); - obj.deps = await dependencies(obj.platform); - setTimeout(() => { - ui.send('system', obj); - }, 3000); - return obj; -} -module.exports = system; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/system/index.js.map b/cli/lib/system/index.js.map deleted file mode 100644 index f16e8c7..0000000 --- a/cli/lib/system/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/system/package.json b/cli/lib/system/package.json deleted file mode 100644 index 148877b..0000000 --- a/cli/lib/system/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "system", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/cli/package-lock.json b/cli/package-lock.json deleted file mode 100644 index e2a41bd..0000000 --- a/cli/package-lock.json +++ /dev/null @@ -1,1770 +0,0 @@ -{ - "name": "mcopy-cli", - "version": "1.6.6", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", - "dev": true - }, - "@babel/runtime": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz", - "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - } - }, - "@serialport/binding-abstract": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-8.0.4.tgz", - "integrity": "sha512-1/CWzAk0tIlaf+WkTYD9YogUi6RGurNSV78cHlpkwsJeLY7z3i1rtwapspV5lIziGT/UJPj8pNVcXrv3K2uKZQ==", - "requires": { - "debug": "^4.1.1" - } - }, - "@serialport/binding-mock": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-8.0.4.tgz", - "integrity": "sha512-n6XGkZQaEOZk+wvxKSCNwv9wopS3faD1nf97FJJwJXZdtKk7h2XFtScfrol3bBfHanDMLjwx8oLgs29Jtlxmwg==", - "requires": { - "@serialport/binding-abstract": "^8.0.4", - "debug": "^4.1.1" - } - }, - "@serialport/bindings": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-8.0.4.tgz", - "integrity": "sha512-VNEJs6swCw9D4X0M08850RFvj5wUt+YiVQrQ9/ms9sYfuh//S/TsEKKQuVkyYtaTkiyZUgknkzBH/8u74w8aKQ==", - "requires": { - "@serialport/binding-abstract": "^8.0.4", - "@serialport/parser-readline": "^8.0.4", - "bindings": "^1.5.0", - "debug": "^4.1.1", - "nan": "^2.14.0", - "prebuild-install": "^5.3.0" - } - }, - "@serialport/parser-byte-length": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-8.0.4.tgz", - "integrity": "sha512-5tQQbJZ5KL0eaP750oF1w0iT+E3lFkpDRz/BzONS2jJsGc+Warb+6FH2aWqj1+smz0mAZWdcxNQgJZLrhFy+sw==" - }, - "@serialport/parser-cctalk": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-8.0.4.tgz", - "integrity": "sha512-7GsVAlVgk9pAMfuhbEy5m5t1pe8WCdR8HzXjroE8jwXCPHrGT7aY/sjZSTF91fx+qzqhojLiTJyIlf1HwnqM+g==" - }, - "@serialport/parser-delimiter": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-8.0.4.tgz", - "integrity": "sha512-4XkOQD2uj7jj4q4CltAM74Rk3HNwCk8pqrgvfAtouA3Pmt0AdrC/n9OrpRY13ioZwv+Yjc54HWU2z9VOOGn45Q==" - }, - "@serialport/parser-readline": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-8.0.4.tgz", - "integrity": "sha512-STs0WnGKLBwlXbG3CnTiI+kuWxmHBzwcslrWA2su9G5pPYQJpKGCHs2URLDDhYKmGZtzTftCJXEXABpsTXfNxQ==", - "requires": { - "@serialport/parser-delimiter": "^8.0.4" - } - }, - "@serialport/parser-ready": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-8.0.4.tgz", - "integrity": "sha512-HXFmYve6mcFnOyX/efLvo7MpvOtD0uJrYWXFvuk0xw3DYRBvabL1zYvK0rYPrWJu32I0M3AFFsldSELm0Ic3mQ==" - }, - "@serialport/parser-regex": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-8.0.4.tgz", - "integrity": "sha512-uruaOaxBN4E90oqW/Tfb594uP9qPEgL79XXwXUQGbT554EK4k1VVa9TV1JO16qE8EB6Km6XxdEPEVxAx7HKmpg==" - }, - "@serialport/stream": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-8.0.4.tgz", - "integrity": "sha512-Ux6qhFRPGiW/2XYpR6PeZSCidF32eqC5GEpXrjwHGmif0wvuGWjbJVfl1azBvgXcjARWeyGjSwVEcsJbsDX1QQ==", - "requires": { - "@serialport/binding-mock": "^8.0.4", - "debug": "^4.1.1" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "12.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.18.tgz", - "integrity": "sha512-DBkZuIMFuAfjJHiunyRc+aNvmXYNwV1IPMgGKGlwCp6zh6MKrVtmvjSWK/axWcD25KJffkXgkfvFra8ndenXAw==", - "dev": true - }, - "ajv": { - "version": "6.9.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz", - "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "arduino": { - "version": "file:lib/arduino" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "requires": { - "lodash": "^4.17.11" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz", - "integrity": "sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==", - "requires": { - "readable-stream": "^3.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "dev": true - }, - "cam": { - "version": "file:lib/cam" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" - }, - "cmd": { - "version": "file:lib/cmd" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colornames": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", - "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=" - }, - "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" - }, - "colorspace": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.1.tgz", - "integrity": "sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw==", - "requires": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", - "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "delay": { - "version": "file:../app/lib/delay" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "device": { - "version": "file:lib/device" - }, - "devices": { - "version": "file:lib/devices" - }, - "diagnostics": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", - "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", - "requires": { - "colorspace": "1.1.x", - "enabled": "1.0.x", - "kuler": "1.0.x" - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "display": { - "version": "file:lib/display" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "enabled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", - "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", - "requires": { - "env-variable": "0.0.x" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "env-variable": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.5.tgz", - "integrity": "sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==" - }, - "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec": { - "version": "file:lib/exec" - }, - "exit": { - "version": "file:lib/exit" - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-glob": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", - "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz", - "integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==" - }, - "fastq": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", - "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", - "dev": true, - "requires": { - "reusify": "^1.0.0" - } - }, - "fecha": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filmout": { - "version": "file:lib/filmout" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "humanize-duration": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.21.0.tgz", - "integrity": "sha512-7BLsrQZ2nMGeakmGDUl1pDne6/7iAdvwf1RtDLCOPHNFIHjkOVW7lcu7xHkIM9HhZAlSSO5crhC1dHvtl4dIQw==" - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "into-stream": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", - "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "intval": { - "version": "file:lib/intval" - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kuler": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", - "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==", - "requires": { - "colornames": "^1.1.1" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "light": { - "version": "file:lib/light" - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "log": { - "version": "file:lib/log" - }, - "logform": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz", - "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==", - "requires": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^2.3.3", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - } - }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "requires": { - "mime-db": "~1.38.0" - } - }, - "mimic-response": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.0.0.tgz", - "integrity": "sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "mscript": { - "version": "file:../app/lib/mscript" - }, - "multistream": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", - "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.5" - } - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "napi-build-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", - "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" - }, - "node-abi": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.13.0.tgz", - "integrity": "sha512-9HrZGFVTR5SOu3PZAnAY2hLO36aW1wmA+FDsVkr85BTST32TLCA1H/AEcatVRAsWLyXS3bqUDYCAjq5/QGuSTA==", - "requires": { - "semver": "^5.4.1" - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", - "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", - "dev": true - }, - "pkg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-4.4.2.tgz", - "integrity": "sha512-FEFX43fzHVyEl7fBTTaKxjN3OsWowNfcDGO7+NaxfUsMTMvy8aQX6DscjgoTNnbOehObRK/UqMUGKXt3mvnArg==", - "dev": true, - "requires": { - "@babel/parser": "^7.7.5", - "@babel/runtime": "^7.7.5", - "chalk": "^3.0.0", - "escodegen": "^1.12.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "into-stream": "^5.1.1", - "minimist": "^1.2.0", - "multistream": "^2.1.1", - "pkg-fetch": "^2.6.4", - "progress": "^2.0.3", - "resolve": "^1.13.1", - "stream-meter": "^1.0.4" - } - }, - "pkg-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.6.4.tgz", - "integrity": "sha512-4j4jiuo6RRIuD9e9xUE6OQYnIkQCArZjkHXNYsSJjxhJeiHE16MA+rENMblvGLbeWsTY3BPfcYVCGFXzpfJetA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.5", - "byline": "^5.0.0", - "chalk": "^3.0.0", - "expand-template": "^2.0.3", - "fs-extra": "^8.1.0", - "minimist": "^1.2.0", - "progress": "^2.0.3", - "request": "^2.88.0", - "request-progress": "^3.0.0", - "semver": "^6.3.0", - "unique-temp-dir": "^1.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "prebuild-install": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", - "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proj": { - "version": "file:lib/proj" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, - "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "sequencer": { - "version": "file:lib/sequencer" - }, - "serialport": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/serialport/-/serialport-8.0.5.tgz", - "integrity": "sha512-hYWRpn+pRZWxwCZErLkYcja/ELSrB70dl+z9TcKIHKO2SlHDVNJmXAGGw2nfjg3AqmsHZvRRq8fu1SySYzbZUA==", - "requires": { - "@serialport/binding-mock": "^8.0.4", - "@serialport/bindings": "^8.0.4", - "@serialport/parser-byte-length": "^8.0.4", - "@serialport/parser-cctalk": "^8.0.4", - "@serialport/parser-delimiter": "^8.0.4", - "@serialport/parser-readline": "^8.0.4", - "@serialport/parser-ready": "^8.0.4", - "@serialport/parser-regex": "^8.0.4", - "@serialport/stream": "^8.0.4", - "debug": "^4.1.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "settings": { - "version": "file:lib/settings" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "spawn": { - "version": "file:lib/spawn" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=", - "dev": true, - "requires": { - "readable-stream": "^2.1.4" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "systeminformation": { - "version": "4.27.11", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.27.11.tgz", - "integrity": "sha512-U7bigXbOnsB8k1vNHS0Y13RCsRz5/UohiUmND+3mMUL6vfzrpbe/h4ZqewowB+B+tJNnmGFDj08Z8xGfYo45dQ==" - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "tar-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", - "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", - "requires": { - "bl": "^3.0.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", - "dev": true - }, - "unique-temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", - "uid2": "0.0.3" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "winston": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", - "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", - "requires": { - "async": "^2.6.1", - "diagnostics": "^1.1.1", - "is-stream": "^1.1.0", - "logform": "^2.1.1", - "one-time": "0.0.4", - "readable-stream": "^3.1.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.3.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", - "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "winston-transport": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz", - "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==", - "requires": { - "readable-stream": "^2.3.6", - "triple-beam": "^1.2.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/cli/package.json b/cli/package.json deleted file mode 100644 index 1e18c00..0000000 --- a/cli/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "mcopy-cli", - "version": "1.6.6", - "description": "CLI for controlling the mcopy optical printer platform", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/sixteenmillimeter/mcopy.git" - }, - "author": "mmcwilliams", - "license": "MIT", - "bugs": { - "url": "https://github.com/sixteenmillimeter/mcopy/issues" - }, - "homepage": "https://github.com/sixteenmillimeter/mcopy#readme", - "dependencies": { - "arduino": "file:lib/arduino", - "cam": "file:lib/cam", - "cmd": "file:lib/cmd", - "commander": "^4.0.1", - "delay": "file:../app/lib/delay", - "device": "file:lib/device", - "devices": "file:lib/devices", - "filmout": "file:lib/filmout", - "display": "file:lib/display", - "exec": "file:lib/exec", - "exit": "file:lib/exit", - "fs-extra": "^8.1.0", - "humanize-duration": "^3.21.0", - "intval": "file:lib/intval", - "light": "file:lib/light", - "log": "file:lib/log", - "moment": "^2.24.0", - "mscript": "file:../app/lib/mscript", - "proj": "file:lib/proj", - "request": "^2.88.0", - "sequencer": "file:lib/sequencer", - "serialport": "^8.0.5", - "settings": "file:lib/settings", - "spawn": "file:lib/spawn", - "systeminformation": "^4.27.11", - "uuid": "^3.3.3", - "winston": "^3.2.1" - }, - "devDependencies": { - "pkg": "^4.4.2" - } -} diff --git a/cli/scripts/build.js b/cli/scripts/build.js deleted file mode 100644 index 64203a5..0000000 --- a/cli/scripts/build.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict' - -const { exec } = require('pkg') -const execRaw = require('child_process').exec -const os = require('os') -const fs = require('fs-extra') -const packageJson = require('./package.json') - -const platform = os.platform() -const arch = os.arch() -const name = packageJson.name; - -/** - * Shells out to execute a command with async/await. - * Async wrapper to exec module. - * - * @param {string} cmd Command to execute - * - * @returns {Promise} Promise containing the complete stdio - **/ -async function shell_out (cmd) { - return new Promise((resolve, reject) => { - return execRaw(cmd, (err, stdio, stderr) => { - if (err) return reject(err) - return resolve(stdio) - }) - }) -} - -//exec(args) takes an array of command line arguments and returns a promise. For example: - -if (!fs.existsSync(`./dist/${platform}_${arch}`)) { - fs.mkdirSync(`./dist/${platform}_${arch}`) -} - -console.log(`Building frameloom and saving in dist/${platform}_${arch}...`) -console.time('frameloom') -exec([ 'frameloom', '--target', 'host', '--output', `./dist/${platform}_${arch}/frameloom` ]).then(async (res) => { - try { - await shell_out(`zip -r ./dist/frameloom_${platform}_${arch}_${packageJson.version}.zip ./dist/${platform}_${arch}/frameloom`) - console.log(`Compressed binary to dist/frameloom_${platform}_${arch}_${packageJson.version}.zip`) - } catch (err) { - console.error(err) - process.exit(err) - } - - console.timeEnd('frameloom') - console.log('built') -}).catch(err => { - console.error(err) -}) \ No newline at end of file diff --git a/scripts/compile.sh b/scripts/compile.sh index 2f52709..c1a2c95 100644 --- a/scripts/compile.sh +++ b/scripts/compile.sh @@ -7,10 +7,8 @@ mkdir -p lib #electron-build fails when local modules are in parent directory #copy them into lib directory cp -r ./lib/* ./app/lib/ -cp -r ./lib/* ./cli/lib/ rm -r ./lib cp ./data/cfg.json ./app/data/ -cp ./data/cfg.json ./cli/data/ cp ./data/cfg.json ./processing/mcopy/ \ No newline at end of file diff --git a/scripts/version.sh b/scripts/version.sh index 222e46f..b47ed48 100644 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -6,7 +6,7 @@ npm version --no-git-tag-version ${1} version=$(jq -r '.version' ./package.json) echo "VERSION: $version" -declare -a fileArr=("./data/cfg.json" "./app/package.json" "./cli/package.json") +declare -a fileArr=("./data/cfg.json" "./app/package.json") for i in "${fileArr[@]}" do