diff options
author | neauoire <[email protected]> | 2019-10-24 21:18:42 -0400 |
---|---|---|
committer | neauoire <[email protected]> | 2019-10-24 21:18:42 -0400 |
commit | 22e6fc0a43b1903ca64cfa9bb014f2b0a99593e5 (patch) | |
tree | 64593443185f862d0369b20fff5bb12d2c3c08c1 | |
parent | 75a95e3ddfe3f3ff7d45e3f2cad5a332a108eb0d (diff) | |
download | Orca-22e6fc0a43b1903ca64cfa9bb014f2b0a99593e5.tar.gz Orca-22e6fc0a43b1903ca64cfa9bb014f2b0a99593e5.zip |
Improved Midi controls
-rw-r--r-- | desktop/core/io/cc.js | 2 | ||||
-rw-r--r-- | desktop/core/io/midi.js | 18 | ||||
-rw-r--r-- | desktop/core/io/osc.js | 1 | ||||
-rw-r--r-- | desktop/core/io/udp.js | 1 | ||||
-rw-r--r-- | desktop/core/library.js | 24 | ||||
-rw-r--r-- | desktop/core/library/_keys.js | 26 | ||||
-rw-r--r-- | desktop/core/transpose.js | 104 | ||||
-rw-r--r-- | desktop/main.js | 4 | ||||
-rw-r--r-- | desktop/package-lock.json | 1396 | ||||
-rw-r--r-- | desktop/package.json | 23 | ||||
-rw-r--r-- | desktop/sources/index.html | 73 | ||||
-rw-r--r-- | desktop/sources/scripts/clock.js | 18 | ||||
-rw-r--r-- | desktop/sources/scripts/commander.js | 56 | ||||
-rw-r--r-- | desktop/sources/scripts/cursor.js | 57 | ||||
-rw-r--r-- | desktop/sources/scripts/history.js | 2 | ||||
-rw-r--r-- | desktop/sources/scripts/lib/controller.js | 18 | ||||
-rw-r--r-- | desktop/sources/scripts/lib/theme.js | 22 | ||||
-rw-r--r-- | desktop/sources/scripts/source.js | 6 | ||||
-rw-r--r-- | desktop/sources/scripts/terminal.js | 142 | ||||
-rw-r--r-- | desktop/sources/scripts/timer.js | 2 |
20 files changed, 679 insertions, 1316 deletions
diff --git a/desktop/core/io/cc.js b/desktop/core/io/cc.js index eba7f96..f617ea7 100644 --- a/desktop/core/io/cc.js +++ b/desktop/core/io/cc.js @@ -25,7 +25,7 @@ export default function MidiCC (terminal) { } else if (msg.type === 'pg' && !isNaN(msg.channel)) { if (!isNaN(msg.bank)) { device.send([0xb0 + msg.channel, 0, msg.bank]) } if (!isNaN(msg.sub)) { device.send([0xb0 + msg.channel, 32, msg.sub]) } - if (!isNaN(msg.pgm)) { device.send([0xc0 + msg.channel, msg.pgm ]) } + if (!isNaN(msg.pgm)) { device.send([0xc0 + msg.channel, msg.pgm]) } } else { console.warn('CC', 'Unknown message', msg) } diff --git a/desktop/core/io/midi.js b/desktop/core/io/midi.js index 41bceba..b02ad5f 100644 --- a/desktop/core/io/midi.js +++ b/desktop/core/io/midi.js @@ -83,14 +83,14 @@ export default function Midi (terminal) { this.update = () => { terminal.controller.clearCat('default', 'Midi') + terminal.controller.add('default', 'Midi', 'Play/Pause Message', () => { this.toggleClock(true); this.update() }, 'shift+space') terminal.controller.add('default', 'Midi', `MIDI Send Clock ${this.isClock === true ? ' — On' : ' — Off'}`, () => { this.toggleClock(); this.update() }, '') - - terminal.controller.add('default', 'Midi', `Refresh Device List`, () => { this.setup(); this.update() }) + terminal.controller.add('default', 'Midi', 'Refresh Device List', () => { this.setup(); this.update() }) terminal.controller.addSpacer('default', 'Midi', 'spacer1') // Outputs if (this.outputs.length < 1) { - terminal.controller.add('default', 'Midi', `No Midi Outputs`) + terminal.controller.add('default', 'Midi', 'No Midi Outputs') } else { for (const id in this.outputs) { terminal.controller.add('default', 'Midi', `${this.outputs[id].name} Output ${this.outputIndex === parseInt(id) ? ' — Active' : ''}`, () => { this.selectOutput(id) }, '') @@ -101,7 +101,7 @@ export default function Midi (terminal) { // Inputs if (this.inputs.length < 1) { - terminal.controller.add('default', 'Midi', `No Midi Inputs`) + terminal.controller.add('default', 'Midi', 'No Midi Inputs') } else { for (const id in this.inputs) { terminal.controller.add('default', 'Midi', `${this.inputs[id].name} Input ${this.inputIndex === parseInt(id) ? ' — Active' : ''}`, () => { this.selectInput(id) }, '') @@ -123,9 +123,9 @@ export default function Midi (terminal) { } this.allNotesOff = function () { - if (!this.outputDevice()) { return } - console.log('MIDI', 'All Notes Off') - for (let chan = 0; chan < 16; chan++) { + if (!this.outputDevice()) { return } + console.log('MIDI', 'All Notes Off') + for (let chan = 0; chan < 16; chan++) { this.outputDevice().send([0xB0 + chan, 123, 0]) } } @@ -204,7 +204,7 @@ export default function Midi (terminal) { // Tools this.selectOutput = function (id) { - if (id === -1) { this.outputIndex = -1; console.log('MIDI', `Select Output Device: None`); this.update(); return } + if (id === -1) { this.outputIndex = -1; console.log('MIDI', 'Select Output Device: None'); this.update(); return } if (!this.outputs[id]) { return } this.outputIndex = parseInt(id) @@ -214,7 +214,7 @@ export default function Midi (terminal) { this.selectInput = function (id) { if (this.inputDevice()) { this.inputDevice().onmidimessage = null } - if (id === -1) { this.inputIndex = -1; console.log('MIDI', `Select Input Device: None`); this.update(); return } + if (id === -1) { this.inputIndex = -1; console.log('MIDI', 'Select Input Device: None'); this.update(); return } if (!this.inputs[id]) { return } this.inputIndex = parseInt(id) diff --git a/desktop/core/io/osc.js b/desktop/core/io/osc.js index 1e5e107..4409158 100644 --- a/desktop/core/io/osc.js +++ b/desktop/core/io/osc.js @@ -53,6 +53,7 @@ export default function Osc (terminal) { for (const id in this.options) { terminal.controller.add('default', 'OSC', `${id.charAt(0).toUpperCase() + id.substr(1)}(${this.options[id]}) ${this.port === this.options[id] ? ' — Active' : ''}`, () => { this.select(this.options[id]) }, '') } + terminal.controller.add('default', 'OSC', 'Choose Custom Port', () => { terminal.commander.start('osc:') }, '') terminal.controller.commit() } diff --git a/desktop/core/io/udp.js b/desktop/core/io/udp.js index 0a78175..f438ac5 100644 --- a/desktop/core/io/udp.js +++ b/desktop/core/io/udp.js @@ -45,6 +45,7 @@ export default function Udp (terminal) { for (const id in this.options) { terminal.controller.add('default', 'UDP', `${id.charAt(0).toUpperCase() + id.substr(1)}(${this.options[id]}) ${this.port === this.options[id] ? ' — Active' : ''}`, () => { terminal.io.udp.select(this.options[id]) }, '') } + terminal.controller.add('default', 'UDP', 'Choose Custom Port', () => { terminal.commander.start('udp:') }, '') terminal.controller.commit() } diff --git a/desktop/core/library.js b/desktop/core/library.js index 264863f..4eb92e0 100644 --- a/desktop/core/library.js +++ b/desktop/core/library.js @@ -31,7 +31,6 @@ import _bang from './library/_bang.js' import _comment from './library/_comment.js' import _midi from './library/_midi.js' import _mono from './library/_mono.js' -import _keys from './library/_keys.js' import _cc from './library/_cc.js' import _pb from './library/_pb.js' import _udp from './library/_udp.js' @@ -39,16 +38,16 @@ import _osc from './library/_osc.js' import _self from './library/_self.js' export default { - '0': _null, - '1': _null, - '2': _null, - '3': _null, - '4': _null, - '5': _null, - '6': _null, - '7': _null, - '8': _null, - '9': _null, + 0: _null, + 1: _null, + 2: _null, + 3: _null, + 4: _null, + 5: _null, + 6: _null, + 7: _null, + 8: _null, + 9: _null, a, b, c, @@ -79,10 +78,9 @@ export default { '#': _comment, ':': _midi, '%': _mono, - '&': _keys, '!': _cc, '?': _pb, ';': _udp, '=': _osc, - '$': _self + $: _self } diff --git a/desktop/core/library/_keys.js b/desktop/core/library/_keys.js deleted file mode 100644 index 634670c..0000000 --- a/desktop/core/library/_keys.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' - -import Operator from '../operator.js' - -export default function OperatorKeys (orca, x, y, passive) { - Operator.call(this, orca, x, y, '&', true) - - this.name = 'keys' - this.info = 'Receive MIDI note' - - this.ports.channel = { x: 1, y: 0, clamp: { min: 0, max: 16 }, default: '0' } - this.ports.output = { x: 0, y: 1 } - - this.operation = function (force = false) { - const channel = this.listen(this.ports.channel, true) - - const id = terminal.io.midi.keys[channel] - - if (force === true) { - terminal.io.mono.run() - } - this.draw = false - - return id ? terminal.io.midi.convert(id) : '.' - } -} diff --git a/desktop/core/transpose.js b/desktop/core/transpose.js index 2e0d0ac..448fc38 100644 --- a/desktop/core/transpose.js +++ b/desktop/core/transpose.js @@ -1,58 +1,58 @@ 'use strict' export default { - 'A': 'A0', - 'a': 'a0', - 'B': 'B0', - 'C': 'C0', - 'c': 'c0', - 'D': 'D0', - 'd': 'd0', - 'E': 'E0', - 'F': 'F0', - 'f': 'f0', - 'G': 'G0', - 'g': 'g0', - 'H': 'A0', - 'h': 'a0', - 'I': 'B0', - 'J': 'C1', - 'j': 'c1', - 'K': 'D1', - 'k': 'd1', - 'L': 'E1', - 'M': 'F1', - 'm': 'f1', - 'N': 'G1', - 'n': 'g1', - 'O': 'A1', - 'o': 'a1', - 'P': 'B1', - 'Q': 'C2', - 'q': 'c2', - 'R': 'D2', - 'r': 'd2', - 'S': 'E2', - 'T': 'F2', - 't': 'f2', - 'U': 'G2', - 'u': 'g2', - 'V': 'A2', - 'v': 'a2', - 'W': 'B2', - 'X': 'C3', - 'x': 'c3', - 'Y': 'D3', - 'y': 'd3', - 'Z': 'E3', + A: 'A0', + a: 'a0', + B: 'B0', + C: 'C0', + c: 'c0', + D: 'D0', + d: 'd0', + E: 'E0', + F: 'F0', + f: 'f0', + G: 'G0', + g: 'g0', + H: 'A0', + h: 'a0', + I: 'B0', + J: 'C1', + j: 'c1', + K: 'D1', + k: 'd1', + L: 'E1', + M: 'F1', + m: 'f1', + N: 'G1', + n: 'g1', + O: 'A1', + o: 'a1', + P: 'B1', + Q: 'C2', + q: 'c2', + R: 'D2', + r: 'd2', + S: 'E2', + T: 'F2', + t: 'f2', + U: 'G2', + u: 'g2', + V: 'A2', + v: 'a2', + W: 'B2', + X: 'C3', + x: 'c3', + Y: 'D3', + y: 'd3', + Z: 'E3', // Catch e - 'e': 'F0', - 'l': 'F1', - 's': 'F2', - 'z': 'F3', + e: 'F0', + l: 'F1', + s: 'F2', + z: 'F3', // Catch b - 'b': 'C1', - 'i': 'C1', - 'p': 'C2', - 'w': 'C3' + b: 'C1', + i: 'C1', + p: 'C2', + w: 'C3' } diff --git a/desktop/main.js b/desktop/main.js index 7740460..b0017b6 100644 --- a/desktop/main.js +++ b/desktop/main.js @@ -7,8 +7,8 @@ require('electron').protocol.registerSchemesAsPrivileged([ function protocolHandler (request, respond) { try { - let pathname = request.url.replace(/^js:\/*/, '') - let filename = path.resolve(app.getAppPath(), pathname) + const pathname = request.url.replace(/^js:\/*/, '') + const filename = path.resolve(app.getAppPath(), pathname) respond({ mimeType: 'text/javascript', data: require('fs').readFileSync(filename) }) } catch (e) { console.error(e, request) diff --git a/desktop/package-lock.json b/desktop/package-lock.json index 5e7b305..8f58455 100644 --- a/desktop/package-lock.json +++ b/desktop/package-lock.json @@ -4,99 +4,62 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/node": { - "version": "10.14.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.18.tgz", - "integrity": "sha512-ryO3Q3++yZC/+b8j8BdKd/dn9JlzlHBPdm80656xwYUdmPkpTGTjkAdt6BByiNupGPE8w0FhBgvYy/fX9hRNGQ==", - "dev": true - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "@electron/get": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.5.0.tgz", + "integrity": "sha512-tafxBz6n08G6SX961F/h8XFtpB/DdwRvJJoDeOH9x78jDSCMQ2G/rRWqSwLFp9oeMFBJf0Pf5Kkw6TKt5w9TWg==", "dev": true, "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" + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.0" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/node": { + "version": "12.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.7.tgz", + "integrity": "sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==", "dev": true }, "asar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", - "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/asar/-/asar-2.0.1.tgz", + "integrity": "sha512-Vo9yTuUtyFahkVMFaI6uMuX6N7k5DWa6a/8+7ov0/f8Lq9TVR0tUjzSzxQSxT1Y+RJIZgnP7BVb6Uhi+9cjxqA==", "dev": true, "requires": { "chromium-pickle-js": "^0.2.0", - "commander": "^2.19.0", + "commander": "^2.20.0", "cuint": "^0.2.2", "glob": "^7.1.3", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", - "pify": "^4.0.1", "tmp-promise": "^1.0.5" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "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=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "author-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", "dev": true }, - "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=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -104,29 +67,20 @@ "dev": true }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "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=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binpack": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/binpack/-/binpack-0.1.0.tgz", "integrity": "sha1-vT0JdMPyoERuF99PYLVacqIFqX4=" }, "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, "brace-expansion": { @@ -167,26 +121,42 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "chromium-pickle-js": { @@ -195,25 +165,19 @@ "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", "dev": true }, - "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=", - "dev": true - }, - "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==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "mimic-response": "^1.0.0" } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "compare-version": { @@ -238,38 +202,6 @@ "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "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==", - "dev": true, - "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" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "core-util-is": { @@ -278,34 +210,36 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cross-zip": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/cross-zip/-/cross-zip-2.1.6.tgz", + "integrity": "sha512-xLIETNkzRcU6jGRzenJyRFxahbtP4628xEKMTI/Ql0Vu8m4h8M7uRLVi7E5OYHuJ6VQPsG4icJumKAFUvfm0+A==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -317,92 +251,52 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "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==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "mimic-response": "^1.0.0" } }, + "defer-to-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz", + "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "electron": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/electron/-/electron-5.0.10.tgz", - "integrity": "sha512-OSyxTlJ+7Yf0B+6pTdHdxY9RvI4U+mVKAbn+CkAOWxlCPMg3K+jt5UHKSPRRLnXQhQ0Tulg4vupbC0k27aukVw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-7.0.0.tgz", + "integrity": "sha512-vrF1loRW1p0vQCbduqO0EZpo8ePJOuxUT6tSoUSU3lsbGK3VnlJop+0PpCIPzbe2K4G4Gk7WexH08V9se7mJcA==", "dev": true, "requires": { - "@types/node": "^10.12.18", - "electron-download": "^4.1.0", + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", "extract-zip": "^1.0.3" } }, - "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", - "dev": true, - "requires": { - "debug": "^3.0.0", - "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.1", - "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" - } - }, "electron-notarize": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.0.5.tgz", - "integrity": "sha512-YzrqZ6RDQ7Wt2RWlxzRoQUuxnTeXrfp7laH7XKcmQqrZ6GaAr50DMPvFMpqDKdrZSHSbcgZgB7ktIQbjvITmCQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.1.1.tgz", + "integrity": "sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg==", "dev": true, "requires": { - "debug": "^4.1.0", - "fs-extra": "^7.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "debug": "^4.1.1", + "fs-extra": "^8.0.1" } }, "electron-osx-sign": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", - "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.14.tgz", + "integrity": "sha512-72vtrz9I3dOeFDaNvO5thwIjrimDiXMmYEbN0hEBqnvcSSMOWugjim2wiY9ox3dhuBFUhxp3owmuZCoH3Ij08A==", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -422,6 +316,12 @@ "ms": "2.0.0" } }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -431,62 +331,43 @@ } }, "electron-packager": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.1.tgz", - "integrity": "sha512-3Drgcw8OEOP3Psw/PprloAFJSkSUSQgjUq3AmWffJGB3Kj5WXmZl6A3GOUs8aT7bP/8GWg4oYqSiCSnA5PQkdQ==", + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-14.0.6.tgz", + "integrity": "sha512-X+ikV+TnnNkIrK93vOjsjPeykCQBFxBS7LXKMTE1s62rXWirGMdjWL+edVkBOMRkH0ROJyFmWM28Dpj6sfEg+A==", "dev": true, "requires": { - "asar": "^1.0.0", + "@electron/get": "^1.3.0", + "asar": "^2.0.1", + "cross-zip": "^2.1.5", "debug": "^4.0.1", - "electron-download": "^4.1.1", - "electron-notarize": "^0.0.5", + "electron-notarize": "^0.1.1", "electron-osx-sign": "^0.4.11", - "extract-zip": "^1.0.3", - "fs-extra": "^7.0.0", + "fs-extra": "^8.1.0", "galactus": "^0.2.1", "get-package-info": "^1.0.0", + "junk": "^3.1.0", "parse-author": "^2.0.0", - "pify": "^4.0.0", "plist": "^3.0.0", - "rcedit": "^1.0.0", + "rcedit": "^2.0.0", "resolve": "^1.1.6", "sanitize-filename": "^1.6.0", - "semver": "^5.3.0", + "semver": "^6.0.0", "yargs-parser": "^13.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + } + }, + "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==", + "dev": true, + "requires": { + "once": "^1.4.0" } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, "error-ex": { @@ -498,12 +379,6 @@ "is-arrayish": "^0.2.1" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "extract-zip": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", @@ -533,24 +408,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "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=", - "dev": true - }, - "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=", - "dev": true - }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -561,60 +418,44 @@ } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flora-colossus": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz", + "integrity": "sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "debug": "^4.1.1", + "fs-extra": "^7.0.0" }, "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, - "flora-colossus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.0.tgz", - "integrity": "sha1-VHKcNh7ezuAU3UQWeeGjfB13OkU=", - "dev": true, - "requires": { - "debug": "^3.1.0", - "fs-extra": "^4.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -634,6 +475,28 @@ "debug": "^3.1.0", "flora-colossus": "^1.0.0", "fs-extra": "^4.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "get-package-info": { @@ -657,90 +520,27 @@ "ms": "2.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "pump": "^3.0.0" } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -751,53 +551,42 @@ "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "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==", + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" } }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "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==", "dev": true }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true }, "inflight": { "version": "1.0.6", @@ -810,15 +599,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "is-arrayish": { @@ -827,40 +610,10 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isbinaryfile": { @@ -872,34 +625,10 @@ "buffer-alloc": "^1.2.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "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==", - "dev": true - }, - "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=", + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "jsonfile": { @@ -916,29 +645,31 @@ "resolved": "https://registry.npmjs.org/jspack/-/jspack-0.0.4.tgz", "integrity": "sha1-Mt01x/3LPjRWwY+7fvntC8YjgXc=" }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "json-buffer": "3.0.0" } }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -957,55 +688,18 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "map-obj": { + "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1016,9 +710,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { @@ -1028,26 +722,18 @@ "dev": true, "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=", - "dev": true - } } }, "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==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node-osc": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/node-osc/-/node-osc-4.1.1.tgz", - "integrity": "sha512-8kZ6Ey8MYhJd4LOKMoHsSkvN2jXODm0Q3tHODLpfWGHkjYRpUAHfbRjlt8G7dv2PHdDUokEnGv2GnDQIgTsYIw==", + "integrity": "sha1-S8dGwy/Z0vhMMoOExjtmiKxM+BI=", "requires": { "jspack": "0.0.4", "osc-min": "^1.1.1" @@ -1063,62 +749,20 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - } - }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "dev": true, - "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, - "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=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, "once": { @@ -1130,12 +774,6 @@ "wrappy": "1" } }, - "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 - }, "osc-min": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/osc-min/-/osc-min-1.1.1.tgz", @@ -1144,6 +782,12 @@ "binpack": "~0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -1205,14 +849,12 @@ "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "pify": "^2.0.0" } }, "pend": { @@ -1221,33 +863,12 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "plist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", @@ -1259,155 +880,95 @@ "xmldom": "0.1.x" } }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - }, - "process-nextick-args": { + "prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", - "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, - "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==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "rcedit": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.2.tgz", - "integrity": "sha512-z2ypB4gbINhI6wVe0JJMmdpmOpmNc4g90sE6/6JSuch5kYnjfz9CxvVPqqhShgR6GIkmtW3W2UlfiXhWljA0Fw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.0.0.tgz", + "integrity": "sha512-XcFGyEBjhWSsud+R8elwQtGBbVkCf7tAiad+nXo5jc6l2rMf46NfGNwjnmBNneBIZDfq+Npf8lwP371JTONfrw==", "dev": true }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", + "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "path-type": "^2.0.0" } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "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" } }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { - "is-finite": "^1.0.0" + "path-parse": "^1.0.6" } }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "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" + "lowercase-keys": "^1.0.0" } }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "glob": "^7.1.3" } }, "safe-buffer": { @@ -1416,42 +977,21 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "sanitize-filename": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", - "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "dev": true, - "requires": { - "string-width": "^1.0.1" - } - }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -1479,167 +1019,58 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "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" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "safe-buffer": "~5.1.0" } }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", - "dev": true, - "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.0.tgz", + "integrity": "sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ==", "dev": true, "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" + "debug": "^4.1.0" } }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "rimraf": "^2.6.3" } }, "tmp-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.0.5.tgz", - "integrity": "sha512-hOabTz9Tp49wCozFwuJe5ISrOqkECm6kzw66XTP23DuzNU7QS/KiZq5LC9Y7QSy8f1rPSLy4bKaViP0OwGI1cA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.1.0.tgz", + "integrity": "sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw==", "dev": true, "requires": { "bluebird": "^3.5.0", - "tmp": "0.0.33" + "tmp": "0.1.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==", - "dev": true, - "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=", - "dev": true - } - } - }, - "trim-newlines": { + "to-readable-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, "truncate-utf8-bytes": { @@ -1651,21 +1082,6 @@ "utf8-byte-length": "^1.0.1" } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "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=", - "dev": true - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -1678,13 +1094,13 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "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==", + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "punycode": "^2.1.0" + "prepend-http": "^2.0.0" } }, "utf8-byte-length": { @@ -1699,12 +1115,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -1715,17 +1125,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -1744,31 +1143,14 @@ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", "dev": true }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - }, "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } } }, "yauzl": { diff --git a/desktop/package.json b/desktop/package.json index 87286b5..505ea47 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -15,14 +15,29 @@ "push_osx": "~/Applications/butler push ~/Documents/Orca-darwin-x64/ hundredrabbits/orca:osx-64", "push_linux": "~/Applications/butler push ~/Documents/Orca-linux-x64/ hundredrabbits/orca:linux-64", "push_win": "~/Applications/butler push ~/Documents/Orca-win32-x64/ hundredrabbits/orca:windows-64", - "push_status": "~/Applications/butler status hundredrabbits/orca", - "push": "npm run build ; npm run push_osx ; npm run push_linux ; npm run push_win ; npm run clean ; npm run push_status" + "status": "~/Applications/butler status hundredrabbits/orca", + "push": "npm run build ; npm run push_osx ; npm run push_linux ; npm run push_win ; npm run clean ; npm run status" }, "devDependencies": { - "electron": "^5.0.10", - "electron-packager": "^13.1.1" + "electron": "^7.0.0", + "electron-packager": "^14.0.6" }, "dependencies": { "node-osc": "^4.1.1" + }, + "standard": { + "globals": [ + "terminal", + "localStorage", + "DOMParser", + "onMessage", + "postMessage", + "FileReader", + "performance", + "Worker" + ], + "ignore": [ + "/node_modules/*" + ] } } diff --git a/desktop/sources/index.html b/desktop/sources/index.html index 88f820e..2f4d665 100644 --- a/desktop/sources/index.html +++ b/desktop/sources/index.html @@ -1,87 +1,24 @@ -<html> +<!DOCTYPE html> +<html lang='en'> <head> + <meta charset='utf-8'> <link rel="stylesheet" type="text/css" href="links/style.css"/> <title>Orca</title> </head> <body> <script type="module"> 'use strict' - - console.clear() + console.clear() + import Terminal from "js:./sources/scripts/terminal.js"; - const app = require('electron').remote.app const terminal = new Terminal() window.terminal = terminal // global availability for e.g. udp terminal.install(document.body) - terminal.controller.add("default","*","About",() => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Orca') },"CmdOrCtrl+,") - terminal.controller.add("default","*","Fullscreen",() => { app.toggleFullscreen() },"CmdOrCtrl+Enter") - terminal.controller.add("default","*","Hide",() => { app.toggleVisible() },"CmdOrCtrl+H") - terminal.controller.add("default","*","Toggle Menubar",() => { app.toggleMenubar() },"Alt+H") - terminal.controller.add("default","*","Inspect",() => { app.inspect() },"CmdOrCtrl+.") - terminal.controller.add("default","*","Reset",() => { terminal.reset() },"CmdOrCtrl+Backspace") - terminal.controller.add("default","*","Quit",() => { terminal.io.silence(); terminal.source.quit() },"CmdOrCtrl+Q") - - terminal.controller.add("default","File","New",() => { terminal.source.new() },"CmdOrCtrl+N") - terminal.controller.add("default","File","Save",() => { terminal.source.save() },"CmdOrCtrl+S") - terminal.controller.add("default","File","Save As",() => { terminal.source.saveAs() },"CmdOrCtrl+Shift+S") - terminal.controller.add("default","File","Open",() => { terminal.source.open() },"CmdOrCtrl+O") - terminal.controller.add("default","File","Resume",() => { terminal.source.resume() }) - terminal.controller.add("default","File","Revert",() => { terminal.source.revert() },"CmdOrCtrl+W") - - terminal.controller.add("default","Edit","Toggle Insert Mode",() => { terminal.cursor.toggleMode(1) },"CmdOrCtrl+I") - terminal.controller.add("default","Edit","Block Comment",() => { terminal.cursor.comment() },"CmdOrCtrl+/") - terminal.controller.add("default","Edit","Find",() => { terminal.commander.start('find:') },"CmdOrCtrl+P") - terminal.controller.add("default","Edit","Inject",() => { terminal.commander.start('inject:') },"CmdOrCtrl+J") - terminal.controller.add("default","Edit","Trigger Operator",() => { terminal.cursor.trigger() },"CmdOrCtrl+B") - terminal.controller.addSpacer('default', 'Edit', 'selection') - terminal.controller.add("default","Edit","Select All",() => { terminal.cursor.selectAll() },"CmdOrCtrl+A") - terminal.controller.add("default","Edit","Erase Selection",() => { terminal.cursor.erase() },"Backspace") - terminal.controller.add("default","Edit","Copy Selection",() => { terminal.cursor.copy() },"CmdOrCtrl+C") - terminal.controller.add("default","Edit","Cut Selection",() => { terminal.cursor.cut() },"CmdOrCtrl+X") - terminal.controller.add("default","Edit","Paste Selection",() => { terminal.cursor.paste(false) },"CmdOrCtrl+V") - terminal.controller.add("default","Edit","Paste Over",() => { terminal.cursor.paste(true) },"CmdOrCtrl+Shift+V") - terminal.controller.add("default","Edit","Undo",() => { terminal.history.undo() },"CmdOrCtrl+Z") - terminal.controller.add("default","Edit","Redo",() => { terminal.history.redo() },"CmdOrCtrl+Shift+Z") - - terminal.controller.add("default","Clock","Play/Pause",() => { terminal.clock.togglePlay() },"Space") - terminal.controller.add("default","Clock","Frame By Frame",() => { terminal.clock.touch() },"CmdOrCtrl+F") - terminal.controller.add("default","Clock","Reset Frame",() => { terminal.clock.resetFrame() },"CmdOrCtrl+R") - terminal.controller.add("default","Clock","Incr. Speed",() => { terminal.clock.modSpeed(1) },">") - terminal.controller.add("default","Clock","Decr. Speed",() => { terminal.clock.modSpeed(-1) },"<") - terminal.controller.add("default","Clock","Incr. Speed(10x)",() => { terminal.clock.modSpeed(10,true) },"CmdOrCtrl+>") - terminal.controller.add("default","Clock","Decr. Speed(10x)",() => { terminal.clock.modSpeed(-10,true) },"CmdOrCtrl+<") - - terminal.controller.add("default","View","Zoom In",() => { terminal.modZoom(0.0625) },"CmdOrCtrl+=") - terminal.controller.add("default","View","Zoom Out",() => { terminal.modZoom(-0.0625) },"CmdOrCtrl+-") - terminal.controller.add("default","View","Zoom Reset",() => { terminal.modZoom(1,true) },"CmdOrCtrl+0") - terminal.controller.add("default","View","Toggle Retina",() => { terminal.toggleRetina() },"`") - terminal.controller.add("default","View","Toggle Hardmode",() => { terminal.toggleHardmode() },"Tab") - terminal.controller.add("default","View","Toggle Guide",() => { terminal.toggleGuide() },"CmdOrCtrl+G") - terminal.controller.addSpacer('default', 'View', 'commander') - terminal.controller.add("default","View","Toggle Commander",() => { terminal.commander.start() },"CmdOrCtrl+K") - terminal.controller.add("default","View","Run Commander",() => { terminal.commander.run() },"Enter") - terminal.controller.addSpacer('default', 'View', 'sizes') - terminal.controller.add("default","View","Incr. Col",() => { terminal.modGrid(1,0) },"]") - terminal.controller.add("default","View","Decr. Col",() => { terminal.modGrid(-1,0) },"[") - terminal.controller.add("default","View","Incr. Row",() => { terminal.modGrid(0,1) },"}") - terminal.controller.add("default","View","Decr. Row",() => { terminal.modGrid(0,-1) },"{") - - terminal.controller.add("default","Midi","Default") - terminal.controller.add("default","UDP","Default") - terminal.controller.add("default","OSC","Default") - - terminal.controller.add("default","Theme","Open Theme",() => { terminal.theme.open() },"CmdOrCtrl+Shift+O") - terminal.controller.add("default","Theme","Reset Theme",() => { terminal.theme.reset() },"CmdOrCtrl+Shift+Backspace") - terminal.controller.addSpacer('default', 'Theme', 'Download') - terminal.controller.add("default","Theme","Download Themes..",() => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Themes') }) - - terminal.controller.commit() - window.addEventListener('load', () => { terminal.start(); }) diff --git a/desktop/sources/scripts/clock.js b/desktop/sources/scripts/clock.js index 37f4a45..9baecd8 100644 --- a/desktop/sources/scripts/clock.js +++ b/desktop/sources/scripts/clock.js @@ -1,8 +1,6 @@ 'use strict' export default function Clock (terminal) { - const path = require('path') - this.isPaused = true this.timer = null this.isPuppet = false @@ -25,7 +23,7 @@ export default function Clock (terminal) { } this.setSpeed = function (value, target = null, setTimer = false) { - console.info('set') + console.info('Clock', 'set', value) if (value) { this.speed.value = clamp(value, 60, 300) } if (target) { this.speed.target = clamp(target, 60, 300) } if (setTimer === true) { this.setTimer(this.speed.value) } @@ -42,29 +40,29 @@ export default function Clock (terminal) { // Controls - this.togglePlay = function () { + this.togglePlay = function (msg = false) { if (this.isPaused === true) { - this.play() + this.play(msg) } else { - this.stop() + this.stop(msg) } } - this.play = function () { + this.play = function (msg = false) { console.log('Clock', 'Play') if (this.isPaused === false) { console.warn('Clock', 'Already playing'); return } if (this.isPuppet === true) { console.warn('Clock', 'External Midi control'); return } this.isPaused = false - terminal.io.midi.sendClockStart() + if (msg === true) { terminal.io.midi.sendClockStart() } this.setSpeed(this.speed.target, this.speed.target, true) } - this.stop = function () { + this.stop = function (msg = false) { console.log('Clock', 'Stop') if (this.isPaused === true) { console.warn('Clock', 'Already stopped'); return } if (this.isPuppet === true) { console.warn('Clock', 'External Midi control'); return } this.isPaused = true - terminal.io.midi.sendClockStop() + if (msg === true) { terminal.io.midi.sendClockStop() } terminal.io.midi.allNotesOff() this.clearTimer() terminal.io.midi.silence() diff --git a/desktop/sources/scripts/commander.js b/desktop/sources/scripts/commander.js index 8f7f367..4fd4372 100644 --- a/desktop/sources/scripts/commander.js +++ b/desktop/sources/scripts/commander.js @@ -9,43 +9,43 @@ export default function Commander (terminal) { // Library this.passives = { - 'find': (p) => { terminal.cursor.find(p.str) }, - 'select': (p) => { terminal.cursor.select(p.x, p.y, p.w, p.h) }, - 'inject': (p) => { terminal.cursor.select(p._x, p._y); terminal.source.inject(p._str, false) }, - 'write': (p) => { terminal.cursor.select(p._x, p._y, p._str.length) } + find: (p) => { terminal.cursor.find(p.str) }, + select: (p) => { terminal.cursor.select(p.x, p.y, p.w, p.h) }, + inject: (p) => { terminal.cursor.select(p._x, p._y); terminal.source.inject(p._str, false) }, + write: (p) => { terminal.cursor.select(p._x, p._y, p._str.length) } } this.actives = { // Ports - 'osc': (p) => { terminal.io.osc.select(p.int) }, - 'udp': (p) => { terminal.io.udp.select(p.int) }, - 'ip': (p) => { terminal.io.setIp(p.str) }, - 'cc': (p) => { terminal.io.cc.setOffset(p.int) }, - 'pg': (p) => { terminal.io.cc.stack.push({ channel: clamp(p.ints[0], 0, 15), bank: p.ints[1], sub: p.ints[2], pgm: clamp(p.ints[3], 0, 127), type: 'pg' }); terminal.io.cc.run() }, + osc: (p) => { terminal.io.osc.select(p.int) }, + udp: (p) => { terminal.io.udp.select(p.int) }, + ip: (p) => { terminal.io.setIp(p.str) }, + cc: (p) => { terminal.io.cc.setOffset(p.int) }, + pg: (p) => { terminal.io.cc.stack.push({ channel: clamp(p.ints[0], 0, 15), bank: p.ints[1], sub: p.ints[2], pgm: clamp(p.ints[3], 0, 127), type: 'pg' }); terminal.io.cc.run() }, // Cursor - 'copy': (p) => { terminal.cursor.copy() }, - 'paste': (p) => { terminal.cursor.paste(true) }, - 'erase': (p) => { terminal.cursor.erase() }, + copy: (p) => { terminal.cursor.copy() }, + paste: (p) => { terminal.cursor.paste(true) }, + erase: (p) => { terminal.cursor.erase() }, // Controls - 'play': (p) => { terminal.clock.play() }, - 'stop': (p) => { terminal.clock.stop() }, - 'run': (p) => { terminal.run() }, + play: (p) => { terminal.clock.play() }, + stop: (p) => { terminal.clock.stop() }, + run: (p) => { terminal.run() }, // Speed - 'apm': (p) => { terminal.clock.setSpeed(null, p.int) }, - 'bpm': (p) => { terminal.clock.setSpeed(p.int, p.int, true) }, - 'time': (p) => { terminal.clock.setFrame(p.int) }, - 'rewind': (p) => { terminal.clock.setFrame(terminal.orca.f - p.int) }, - 'skip': (p) => { terminal.clock.setFrame(terminal.orca.f + p.int) }, + apm: (p) => { terminal.clock.setSpeed(null, p.int) }, + bpm: (p) => { terminal.clock.setSpeed(p.int, p.int, true) }, + time: (p) => { terminal.clock.setFrame(p.int) }, + rewind: (p) => { terminal.clock.setFrame(terminal.orca.f - p.int) }, + skip: (p) => { terminal.clock.setFrame(terminal.orca.f + p.int) }, // Effects - 'rot': (p) => { terminal.cursor.rotate(p.int) }, + rot: (p) => { terminal.cursor.rotate(p.int) }, // Themeing - 'color': (p) => { terminal.theme.set('b_med', p.parts[0]); terminal.theme.set('b_inv', p.parts[1]); terminal.theme.set('b_high', p.parts[2]) }, - 'graphic': (p) => { terminal.theme.setImage(terminal.source.locate(p.parts[0] + '.' + (p.parts[1] ? p.parts[1] : 'jpg'))) }, + color: (p) => { terminal.theme.set('b_med', p.parts[0]); terminal.theme.set('b_inv', p.parts[1]); terminal.theme.set('b_high', p.parts[2]) }, + graphic: (p) => { terminal.theme.setImage(terminal.source.locate(p.parts[0] + '.' + (p.parts[1] ? p.parts[1] : 'jpg'))) }, // Edit - 'find': (p) => { terminal.cursor.find(p.str) }, - 'select': (p) => { terminal.cursor.select(p.x, p.y, p.w, p.h) }, - 'inject': (p) => { terminal.cursor.select(p._x, p._y); terminal.source.inject(p._str, true) }, - 'write': (p) => { terminal.cursor.select(p._x, p._y, p._str.length); terminal.cursor.writeBlock([p._str.split('')]) } + find: (p) => { terminal.cursor.find(p.str) }, + select: (p) => { terminal.cursor.select(p.x, p.y, p.w, p.h) }, + inject: (p) => { terminal.cursor.select(p._x, p._y); terminal.source.inject(p._str, true) }, + write: (p) => { terminal.cursor.select(p._x, p._y, p._str.length); terminal.cursor.writeBlock([p._str.split('')]) } } // Make shorthands @@ -155,7 +155,7 @@ export default function Commander (terminal) { if (event.metaKey) { return } if (event.ctrlKey) { return } - if (event.key === ' ' && terminal.cursor.mode === 0) { terminal.clock.togglePlay(); event.preventDefault(); return } + if (event.key === ' ' && terminal.cursor.mode === 0) { terminal.clock.togglePlay(event.shiftKey); event.preventDefault(); return } if (event.key === ' ' && terminal.cursor.mode === 1) { terminal.cursor.move(1, 0); event.preventDefault(); return } if (event.key === 'Escape') { terminal.toggleGuide(false); terminal.commander.stop(); terminal.clear(); terminal.isPaused = false; terminal.cursor.reset(); return } diff --git a/desktop/sources/scripts/cursor.js b/desktop/sources/scripts/cursor.js index c418910..ca3659e 100644 --- a/desktop/sources/scripts/cursor.js +++ b/desktop/sources/scripts/cursor.js @@ -8,10 +8,10 @@ export default function Cursor (terminal) { this.w = 0 this.h = 0 - this.minX = 0; - this.maxX = 0; - this.minY = 0; - this.maxY = 0; + this.minX = 0 + this.maxX = 0 + this.minY = 0 + this.maxY = 0 this.mode = 0 @@ -20,7 +20,7 @@ export default function Cursor (terminal) { this.x = clamp(this.x + parseInt(x), 0, terminal.orca.w - 1) this.y = clamp(this.y - parseInt(y), 0, terminal.orca.h - 1) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -29,7 +29,7 @@ export default function Cursor (terminal) { this.x = clamp(parseInt(x), 0, terminal.orca.w - 1) this.y = clamp(parseInt(y), 0, terminal.orca.h - 1) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -38,7 +38,7 @@ export default function Cursor (terminal) { this.w = clamp(this.w + parseInt(x), -this.x, terminal.orca.w - this.x) this.h = clamp(this.h - parseInt(y), -this.y, terminal.orca.h - this.y) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -47,7 +47,7 @@ export default function Cursor (terminal) { this.w = clamp(parseInt(w), -this.x, terminal.orca.w - 1) this.h = clamp(parseInt(h), -this.y, terminal.orca.h - 1) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -56,7 +56,7 @@ export default function Cursor (terminal) { this.w = clamp(parseInt(w), -this.x, terminal.orca.w - this.x) this.h = clamp(parseInt(h), -this.y, terminal.orca.h - this.y) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -75,7 +75,7 @@ export default function Cursor (terminal) { this.h = terminal.orca.h this.mode = 0 - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -83,7 +83,7 @@ export default function Cursor (terminal) { this.moveTo(x, y) this.scaleTo(w, h) - this.calculateBounds(); + this.calculateBounds() terminal.update() } @@ -128,15 +128,15 @@ export default function Cursor (terminal) { terminal.history.record(terminal.orca.s) } - this.erase = function() { + this.erase = function () { for (let y = this.minY; y <= this.maxY; y++) { for (let x = this.minX; x <= this.maxX; x++) { - terminal.orca.write(x, y, "."); + terminal.orca.write(x, y, '.') } } - terminal.history.record(terminal.orca.s); - }; + terminal.history.record(terminal.orca.s) + } this.rotate = function (rate = 1) { if (isNaN(rate)) { return } @@ -152,14 +152,12 @@ export default function Cursor (terminal) { terminal.cursor.writeBlock(cols) } - this.find = function (str) { + this.find = (str) => { const i = terminal.orca.s.indexOf(str) if (i < 0) { return } const pos = terminal.orca.posAt(i) - this.w = str.length - this.h = 1 - this.x = pos.x - this.y = pos.y + this.select(pos.x, pos.y, str.length - 1, 0) + terminal.update() } this.trigger = function () { @@ -223,24 +221,23 @@ export default function Cursor (terminal) { terminal.history.record(terminal.orca.s) } - this.toRect = function() { + this.toRect = function () { return { x: this.minX, y: this.minY, w: this.maxX - this.minX + 1, h: this.maxY - this.minY + 1 - }; - }; - - this.calculateBounds = function() { - this.minX = this.x < this.x + this.w ? this.x : this.x + this.w; - this.minY = this.y < this.y + this.h ? this.y : this.y + this.h; - this.maxX = this.x > this.x + this.w ? this.x : this.x + this.w; - this.maxY = this.y > this.y + this.h ? this.y : this.y + this.h; + } + } + this.calculateBounds = function () { + this.minX = this.x < this.x + this.w ? this.x : this.x + this.w + this.minY = this.y < this.y + this.h ? this.y : this.y + this.h + this.maxX = this.x > this.x + this.w ? this.x : this.x + this.w + this.maxY = this.y > this.y + this.h ? this.y : this.y + this.h } - this.selected = function(x, y) { + this.selected = function (x, y) { return ( x >= this.minX && x <= this.maxX && diff --git a/desktop/sources/scripts/history.js b/desktop/sources/scripts/history.js index be77e28..1d77a58 100644 --- a/desktop/sources/scripts/history.js +++ b/desktop/sources/scripts/history.js @@ -7,7 +7,7 @@ export default function History () { this.key = null this.bind = function (host, key) { - console.log(`History is recording..`) + console.log('History is recording..') this.host = host this.key = key this.reset() diff --git a/desktop/sources/scripts/lib/controller.js b/desktop/sources/scripts/lib/controller.js index 4f667b9..6b81027 100644 --- a/desktop/sources/scripts/lib/controller.js +++ b/desktop/sources/scripts/lib/controller.js @@ -1,12 +1,8 @@ 'use strict' export default function Controller () { - const fs = require('fs') - const { dialog, app } = require('electron').remote - this.menu = { default: {} } this.mode = 'default' - this.app = require('electron').remote.app this.start = function () { @@ -15,11 +11,13 @@ export default function Controller () { this.add = function (mode, cat, label, fn, accelerator) { if (!this.menu[mode]) { this.menu[mode] = {} } if (!this.menu[mode][cat]) { this.menu[mode][cat] = {} } - this.menu[mode][cat][label] = { fn: function (_menuItem, browserWindow) { - browserWindow.webContents.focus() - fn.apply(this, arguments) - }, - accelerator: accelerator } + this.menu[mode][cat][label] = { + fn: function (_menuItem, browserWindow) { + browserWindow.webContents.focus() + fn.apply(this, arguments) + }, + accelerator: accelerator + } } this.addRole = function (mode, cat, label) { @@ -70,7 +68,7 @@ export default function Controller () { this.accelerator = function (key, menu) { const acc = { basic: null, ctrl: null } - for (cat in menu) { + for (const cat in menu) { const options = menu[cat] for (const id in options.submenu) { const option = options.submenu[id]; if (option.role) { continue } diff --git a/desktop/sources/scripts/lib/theme.js b/desktop/sources/scripts/lib/theme.js index 7e52e44..43b6790 100644 --- a/desktop/sources/scripts/lib/theme.js +++ b/desktop/sources/scripts/lib/theme.js @@ -31,7 +31,7 @@ export default function Theme (_default) { this.load = function (data) { const theme = parse(data) if (!validate(theme)) { console.warn('Theme', 'Not a theme', theme); return } - console.log('Theme', `Loaded theme!`) + console.log('Theme', 'Loaded theme!') this.el.innerHTML = `:root { --background: ${theme.background}; --f_high: ${theme.f_high}; --f_med: ${theme.f_med}; --f_low: ${theme.f_low}; --f_inv: ${theme.f_inv}; --b_high: ${theme.b_high}; --b_med: ${theme.b_med}; --b_low: ${theme.b_low}; --b_inv: ${theme.b_inv}; }` localStorage.setItem('theme', JSON.stringify(theme)) this.active = theme @@ -83,7 +83,7 @@ export default function Theme (_default) { this.open = function () { const fs = require('fs') const { dialog, app } = require('electron').remote - let paths = dialog.showOpenDialog(app.win, { properties: ['openFile'], filters: [{ name: 'Themes', extensions: ['svg'] }] }) + const paths = dialog.showOpenDialog(app.win, { properties: ['openFile'], filters: [{ name: 'Themes', extensions: ['svg'] }] }) if (!paths) { console.log('Nothing to load'); return } fs.readFile(paths[0], 'utf8', function (err, data) { if (err) throw err @@ -114,15 +114,15 @@ export default function Theme (_default) { const svg = new DOMParser().parseFromString(text, 'text/xml') try { return { - 'background': svg.getElementById('background').getAttribute('fill'), - 'f_high': svg.getElementById('f_high').getAttribute('fill'), - 'f_med': svg.getElementById('f_med').getAttribute('fill'), - 'f_low': svg.getElementById('f_low').getAttribute('fill'), - 'f_inv': svg.getElementById('f_inv').getAttribute('fill'), - 'b_high': svg.getElementById('b_high').getAttribute('fill'), - 'b_med': svg.getElementById('b_med').getAttribute('fill'), - 'b_low': svg.getElementById('b_low').getAttribute('fill'), - 'b_inv': svg.getElementById('b_inv').getAttribute('fill') + background: svg.getElementById('background').getAttribute('fill'), + f_high: svg.getElementById('f_high').getAttribute('fill'), + f_med: svg.getElementById('f_med').getAttribute('fill'), + f_low: svg.getElementById('f_low').getAttribute('fill'), + f_inv: svg.getElementById('f_inv').getAttribute('fill'), + b_high: svg.getElementById('b_high').getAttribute('fill'), + b_med: svg.getElementById('b_med').getAttribute('fill'), + b_low: svg.getElementById('b_low').getAttribute('fill'), + b_inv: svg.getElementById('b_inv').getAttribute('fill') } } catch (err) { console.warn('Theme', 'Incomplete SVG Theme', err) diff --git a/desktop/sources/scripts/source.js b/desktop/sources/scripts/source.js index 672d6e8..1836afa 100644 --- a/desktop/sources/scripts/source.js +++ b/desktop/sources/scripts/source.js @@ -26,7 +26,7 @@ export default function Source (terminal) { this.open = function () { console.log('Source', 'Open a file..') - let paths = dialog.showOpenDialog(app.win, { properties: ['openFile'], filters: [{ name: 'Orca Machines', extensions: ['orca'] }] }) + const paths = dialog.showOpenDialog(app.win, { properties: ['openFile'], filters: [{ name: 'Orca Machines', extensions: ['orca'] }] }) if (!paths) { console.log('Nothing to load'); return } this.read(paths[0]) } @@ -125,7 +125,7 @@ export default function Source (terminal) { } this.verify = function () { - let response = dialog.showMessageBox(app.win, { + const response = dialog.showMessageBox(app.win, { type: 'question', buttons: ['Cancel', 'Discard', 'Save'], title: 'Confirm', @@ -144,7 +144,7 @@ export default function Source (terminal) { if (!this.path) { console.log('Source', 'File is unsaved..') if (terminal.orca.length() > 2) { - console.log('Source', `File is not empty.`) + console.log('Source', 'File is not empty.') return true } } else { diff --git a/desktop/sources/scripts/terminal.js b/desktop/sources/scripts/terminal.js index e5a18b6..d570f97 100644 --- a/desktop/sources/scripts/terminal.js +++ b/desktop/sources/scripts/terminal.js @@ -40,12 +40,76 @@ export default function Terminal () { this.hardmode = true this.guide = false - this.install = function (host) { + this.install = (host) => { host.appendChild(this.el) this.theme.install(host) - } - this.start = function () { + this.controller.add('default', '*', 'About', () => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Orca') }, 'CmdOrCtrl+,') + this.controller.add('default', '*', 'Fullscreen', () => { require('electron').remote.app.toggleFullscreen() }, 'CmdOrCtrl+Enter') + this.controller.add('default', '*', 'Hide', () => { require('electron').remote.app.toggleVisible() }, 'CmdOrCtrl+H') + this.controller.add('default', '*', 'Toggle Menubar', () => { require('electron').remote.app.toggleMenubar() }, 'Alt+H') + this.controller.add('default', '*', 'Inspect', () => { require('electron').remote.app.inspect() }, 'CmdOrCtrl+.') + this.controller.add('default', '*', 'Reset', () => { this.reset() }, 'CmdOrCtrl+Backspace') + this.controller.add('default', '*', 'Quit', () => { this.io.silence(); this.source.quit() }, 'CmdOrCtrl+Q') + + this.controller.add('default', 'File', 'New', () => { this.source.new() }, 'CmdOrCtrl+N') + this.controller.add('default', 'File', 'Save', () => { this.source.save() }, 'CmdOrCtrl+S') + this.controller.add('default', 'File', 'Save As', () => { this.source.saveAs() }, 'CmdOrCtrl+Shift+S') + this.controller.add('default', 'File', 'Open', () => { this.source.open() }, 'CmdOrCtrl+O') + this.controller.add('default', 'File', 'Resume', () => { this.source.resume() }) + this.controller.add('default', 'File', 'Revert', () => { this.source.revert() }, 'CmdOrCtrl+W') + + this.controller.add('default', 'Edit', 'Toggle Insert Mode', () => { this.cursor.toggleMode(1) }, 'CmdOrCtrl+I') + this.controller.add('default', 'Edit', 'Block Comment', () => { this.cursor.comment() }, 'CmdOrCtrl+/') + this.controller.add('default', 'Edit', 'Find', () => { this.commander.start('find:') }, 'CmdOrCtrl+P') + this.controller.add('default', 'Edit', 'Inject', () => { this.commander.start('inject:') }, 'CmdOrCtrl+J') + this.controller.add('default', 'Edit', 'Trigger Operator', () => { this.cursor.trigger() }, 'CmdOrCtrl+B') + this.controller.addSpacer('default', 'Edit', 'selection') + this.controller.add('default', 'Edit', 'Select All', () => { this.cursor.selectAll() }, 'CmdOrCtrl+A') + this.controller.add('default', 'Edit', 'Erase Selection', () => { this.cursor.erase() }, 'Backspace') + this.controller.add('default', 'Edit', 'Copy Selection', () => { this.cursor.copy() }, 'CmdOrCtrl+C') + this.controller.add('default', 'Edit', 'Cut Selection', () => { this.cursor.cut() }, 'CmdOrCtrl+X') + this.controller.add('default', 'Edit', 'Paste Selection', () => { this.cursor.paste(false) }, 'CmdOrCtrl+V') + this.controller.add('default', 'Edit', 'Paste Over', () => { this.cursor.paste(true) }, 'CmdOrCtrl+Shift+V') + this.controller.add('default', 'Edit', 'Undo', () => { this.history.undo() }, 'CmdOrCtrl+Z') + this.controller.add('default', 'Edit', 'Redo', () => { this.history.redo() }, 'CmdOrCtrl+Shift+Z') + + this.controller.add('default', 'Clock', 'Play/Pause', () => { this.clock.togglePlay(false) }, 'Space') + this.controller.add('default', 'Clock', 'Frame By Frame', () => { this.clock.touch() }, 'CmdOrCtrl+F') + this.controller.add('default', 'Clock', 'Reset Frame', () => { this.clock.resetFrame() }, 'CmdOrCtrl+R') + this.controller.add('default', 'Clock', 'Incr. Speed', () => { this.clock.modSpeed(1) }, '>') + this.controller.add('default', 'Clock', 'Decr. Speed', () => { this.clock.modSpeed(-1) }, '<') + this.controller.add('default', 'Clock', 'Incr. Speed(10x)', () => { this.clock.modSpeed(10, true) }, 'CmdOrCtrl+>') + this.controller.add('default', 'Clock', 'Decr. Speed(10x)', () => { this.clock.modSpeed(-10, true) }, 'CmdOrCtrl+<') + + this.controller.add('default', 'View', 'Zoom In', () => { this.modZoom(0.0625) }, 'CmdOrCtrl+=') + this.controller.add('default', 'View', 'Zoom Out', () => { this.modZoom(-0.0625) }, 'CmdOrCtrl+-') + this.controller.add('default', 'View', 'Zoom Reset', () => { this.modZoom(1, true) }, 'CmdOrCtrl+0') + this.controller.add('default', 'View', 'Toggle Retina', () => { this.toggleRetina() }, '`') + this.controller.add('default', 'View', 'Toggle Hardmode', () => { this.toggleHardmode() }, 'Tab') + this.controller.add('default', 'View', 'Toggle Guide', () => { this.toggleGuide() }, 'CmdOrCtrl+G') + this.controller.addSpacer('default', 'View', 'commander') + this.controller.add('default', 'View', 'Toggle Commander', () => { this.commander.start() }, 'CmdOrCtrl+K') + this.controller.add('default', 'View', 'Run Commander', () => { this.commander.run() }, 'Enter') + this.controller.addSpacer('default', 'View', 'sizes') + this.controller.add('default', 'View', 'Incr. Col', () => { this.modGrid(1, 0) }, ']') + this.controller.add('default', 'View', 'Decr. Col', () => { this.modGrid(-1, 0) }, '[') + this.controller.add('default', 'View', 'Incr. Row', () => { this.modGrid(0, 1) }, '}') + this.controller.add('default', 'View', 'Decr. Row', () => { this.modGrid(0, -1) }, '{') + + this.controller.add('default', 'Midi', 'Default') + this.controller.add('default', 'UDP', 'Default') + this.controller.add('default', 'OSC', 'Default') + + this.controller.add('default', 'Theme', 'Open Theme', () => { this.theme.open() }, 'CmdOrCtrl+Shift+O') + this.controller.add('default', 'Theme', 'Reset Theme', () => { this.theme.reset() }, 'CmdOrCtrl+Shift+Backspace') + this.controller.addSpacer('default', 'Theme', 'Download') + this.controller.add('default', 'Theme', 'Download Themes..', () => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Themes') }) + + this.controller.commit() + } + + this.start = () => { this.theme.start() this.io.start() this.source.start() @@ -58,7 +122,7 @@ export default function Terminal () { this.toggleGuide(this.reqGuide() === true) } - this.run = function () { + this.run = () => { this.io.clear() this.clock.run() this.source.run() @@ -67,7 +131,7 @@ export default function Terminal () { this.update() } - this.update = function () { + this.update = () => { if (document.hidden === true) { return } this.clear() this.ports = this.findPorts() @@ -76,29 +140,29 @@ export default function Terminal () { this.drawGuide() } - this.reset = function () { + this.reset = () => { this.theme.reset() } - this.setGrid = function (w, h) { + this.setGrid = (w, h) => { this.grid.w = w this.grid.h = h this.update() } - this.toggleRetina = function () { + this.toggleRetina = () => { this.scale = this.scale === 1 ? window.devicePixelRatio : 1 console.log('Terminal', `Pixel resolution: ${this.scale}`) this.resize(true) } - this.toggleHardmode = function () { + this.toggleHardmode = () => { this.hardmode = this.hardmode !== true console.log('Terminal', `Hardmode: ${this.hardmode}`) this.update() } - this.toggleGuide = function (force = null) { + this.toggleGuide = (force = null) => { const display = force !== null ? force : this.guide !== true if (display === this.guide) { return } console.log('Terminal', `Toggle Guide: ${display}`) @@ -106,20 +170,20 @@ export default function Terminal () { this.update() } - this.reqGuide = function () { + this.reqGuide = () => { const session = this.source.recall('session') console.log('Terminal', 'Session #' + session) if (!session || parseInt(session) < 20) { return true } return false } - this.modGrid = function (x = 0, y = 0) { + this.modGrid = (x = 0, y = 0) => { const w = clamp(this.grid.w + x, 4, 16) const h = clamp(this.grid.h + y, 4, 16) this.setGrid(w, h) } - this.modZoom = function (mod = 0, reset = false) { + this.modZoom = (mod = 0, reset = false) => { this.tile = { w: reset ? 10 : this.tile.w * (mod + 1), h: reset ? 15 : this.tile.h * (mod + 1) @@ -131,35 +195,35 @@ export default function Terminal () { // - this.isCursor = function (x, y) { + this.isCursor = (x, y) => { return x === this.cursor.x && y === this.cursor.y } - this.isMarker = function (x, y) { + this.isMarker = (x, y) => { return x % this.grid.w === 0 && y % this.grid.h === 0 } - this.isNear = function (x, y) { + this.isNear = (x, y) => { return x > (parseInt(this.cursor.x / this.grid.w) * this.grid.w) - 1 && x <= ((1 + parseInt(this.cursor.x / this.grid.w)) * this.grid.w) && y > (parseInt(this.cursor.y / this.grid.h) * this.grid.h) - 1 && y <= ((1 + parseInt(this.cursor.y / this.grid.h)) * this.grid.h) } - this.isAligned = function (x, y) { + this.isAligned = (x, y) => { return x === this.cursor.x || y === this.cursor.y } - this.isEdge = function (x, y) { + this.isEdge = (x, y) => { return x === 0 || y === 0 || x === this.orca.w - 1 || y === this.orca.h - 1 } - this.isLocals = function (x, y) { + this.isLocals = (x, y) => { return this.isNear(x, y) === true && (x % (this.grid.w / 4) === 0 && y % (this.grid.h / 4) === 0) === true } - this.portAt = function (x, y) { + this.portAt = (x, y) => { return this.ports[this.orca.indexAt(x, y)] } - this.findPorts = function () { + this.findPorts = () => { const a = new Array((this.orca.w * this.orca.h) - 1) for (const id in this.orca.runtime) { const operator = this.orca.runtime[id] @@ -176,7 +240,7 @@ export default function Terminal () { // Interface - this.makeGlyph = function (x, y) { + this.makeGlyph = (x, y) => { const g = this.orca.glyphAt(x, y) if (g !== '.') { return g } if (this.isCursor(x, y)) { return this.isPaused ? '~' : '@' } @@ -184,7 +248,7 @@ export default function Terminal () { return g } - this.makeStyle = function (x, y, glyph, selection) { + this.makeStyle = (x, y, glyph, selection) => { const isLocked = this.orca.lockAt(x, y) const port = this.ports[this.orca.indexAt(x, y)] if (this.cursor.selected(x, y)) { return 4 } @@ -196,7 +260,7 @@ export default function Terminal () { return 9 } - this.makeTheme = function (type) { + this.makeTheme = (type) => { // Operator if (type === 0) { return { bg: this.theme.active.b_med, fg: this.theme.active.f_low } } // Haste @@ -223,11 +287,11 @@ export default function Terminal () { // Canvas - this.clear = function () { + this.clear = () => { this.context.clearRect(0, 0, this.el.width, this.el.height) } - this.drawProgram = function () { + this.drawProgram = () => { const selection = this.cursor.read() for (let y = 0; y < this.orca.h; y++) { for (let x = 0; x < this.orca.w; x++) { @@ -238,11 +302,9 @@ export default function Terminal () { } } - this.drawInterface = function () { + this.drawInterface = () => { const col = this.grid.w const variables = Object.keys(this.orca.variables).join('') - const col1 = this.orca.h - const col2 = this.orca.h + 1 if (this.commander.isActive === true) { this.write(`${this.commander.query}${this.orca.f % 2 === 0 ? '_' : ''}`, col * 0, this.orca.h + 1, this.grid.w * 4) @@ -255,8 +317,8 @@ export default function Terminal () { this.write(`${this.orca.w}x${this.orca.h}`, col * 0, this.orca.h, this.grid.w) this.write(`${this.grid.w}/${this.grid.h}${this.tile.w !== 10 ? ' ' + (this.tile.w / 10).toFixed(1) : ''}`, col * 1, this.orca.h, this.grid.w) - this.write(`${this.source}`, col * 2, this.orca.h, this.grid.w, this.source.queue.length > terminal.orca.f ? 3 : 2) - this.write(`${this.clock}`, col * 3, this.orca.h, this.grid.w, this.clock.isPuppet === true > -1 ? 3 : 2) + this.write(`${this.source}`, col * 2, this.orca.h, this.grid.w, this.source.queue.length > this.orca.f ? 3 : 2) + this.write(`${this.clock}`, col * 3, this.orca.h, this.grid.w, this.clock.isPuppet === true ? 3 : 2) if (this.orca.f < 15) { this.write(`${this.io.midi}`, col * 4, this.orca.h, this.grid.w * 2) @@ -267,7 +329,7 @@ export default function Terminal () { } } - this.drawGuide = function () { + this.drawGuide = () => { if (this.guide !== true) { return } const operators = Object.keys(this.library).filter((val) => { return isNaN(val) }) for (const id in operators) { @@ -282,7 +344,7 @@ export default function Terminal () { } } - this.drawSprite = function (x, y, g, type) { + this.drawSprite = (x, y, g, type) => { const theme = this.makeTheme(type) if (theme.bg) { const bgrect = { x: x * this.tile.w * this.scale, y: (y) * this.tile.h * this.scale, w: this.tile.w * this.scale, h: this.tile.h * this.scale } @@ -296,7 +358,7 @@ export default function Terminal () { } } - this.write = function (text, offsetX, offsetY, limit = 50, type = 2) { + this.write = (text, offsetX, offsetY, limit = 50, type = 2) => { let x = 0 while (x < text.length && x < limit - 1) { this.drawSprite(offsetX + x, offsetY, text.substr(x, 1), type) @@ -306,7 +368,7 @@ export default function Terminal () { // Resize tools - this.fit = function () { + this.fit = () => { const size = { w: (this.orca.w * this.tile.w) + 60, h: (this.orca.h * this.tile.h) + 60 + (2 * this.tile.h) } const win = require('electron').remote.getCurrentWindow() const winSize = win.getSize() @@ -317,7 +379,7 @@ export default function Terminal () { this.resize() } - this.resize = function (force = false) { + this.resize = (force = false) => { const size = { w: window.innerWidth - 60, h: window.innerHeight - (60 + this.tile.h * 2) } const tiles = { w: Math.ceil(size.w / this.tile.w), h: Math.ceil(size.h / this.tile.h) } @@ -347,7 +409,7 @@ export default function Terminal () { this.update() } - this.crop = function (w, h) { + this.crop = (w, h) => { let block = `${this.orca}` if (h > this.orca.h) { @@ -368,7 +430,7 @@ export default function Terminal () { // Docs - this.docs = function () { + this.docs = () => { let html = '' const operators = Object.keys(library).filter((val) => { return isNaN(val) }) for (const id in operators) { @@ -395,11 +457,11 @@ export default function Terminal () { if (!path || path.indexOf('.orca') < 0) { console.log('Orca', 'Not a orca file'); return } - terminal.source.read(path) + this.source.read(path) }) window.onresize = (event) => { - terminal.resize() + this.resize() } // Helpers diff --git a/desktop/sources/scripts/timer.js b/desktop/sources/scripts/timer.js index 6455bbd..823094f 100644 --- a/desktop/sources/scripts/timer.js +++ b/desktop/sources/scripts/timer.js @@ -1,6 +1,6 @@ 'use strict' -onmessage = function (event) { +onmessage = (event) => { console.log('Timer', 'New Interval ' + event.data + 'ms') setInterval(() => { postMessage(true) }, event.data) } |