diff --git a/res/controllers/Novation-Launchpad MK2-scripts.js b/res/controllers/Novation-Launchpad MK2-scripts.js index 8d10bb13ba5..bcfc1eff159 100644 --- a/res/controllers/Novation-Launchpad MK2-scripts.js +++ b/res/controllers/Novation-Launchpad MK2-scripts.js @@ -36,30 +36,30 @@ var NovationLaunchpadMK2 = (function () { return obj; } - function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } function _typeof(obj) { - if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { - return _typeof2(obj); + return typeof obj; }; } else { _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; - } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; @@ -99,11 +99,49 @@ var NovationLaunchpadMK2 = (function () { if (superClass) _setPrototypeOf(subClass, superClass); } + function _classCallCheck$1(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties$1(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass$1(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); + if (staticProps) _defineProperties$1(Constructor, staticProps); + return Constructor; + } + + function _defineProperty$1(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -129,17 +167,37 @@ var NovationLaunchpadMK2 = (function () { return _arr; } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } /* global engine, midi, script */ var engine_1 = engine; var midi_1 = midi; + var script_1 = script; /** Detect free variable `global` from Node.js. */ var freeGlobal = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global && global.Object === Object && global; @@ -185,11 +243,12 @@ var NovationLaunchpadMK2 = (function () { try { value[symToStringTag] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { @@ -1586,18 +1645,16 @@ var NovationLaunchpadMK2 = (function () { var range = createRange(); - var Control = - /*#__PURE__*/ - function () { + var Control = /*#__PURE__*/function () { function Control(def) { - _classCallCheck(this, Control); + _classCallCheck$1(this, Control); - _defineProperty(this, "def", void 0); + _defineProperty$1(this, "def", void 0); this.def = def; } - _createClass(Control, [{ + _createClass$1(Control, [{ key: "setValue", value: function setValue(value) { engine_1.setValue(this.def.group, this.def.name, value); @@ -1612,55 +1669,55 @@ var NovationLaunchpadMK2 = (function () { return Control; }(); var playListControlDef = { - 'LoadSelectedIntoFirstStopped': { + LoadSelectedIntoFirstStopped: { group: '[Playlist]', name: 'LoadSelectedIntoFirstStopped', type: 'binary', description: 'Loads the currently highlighted song into the first stopped deck' }, - 'SelectNextPlaylist': { + SelectNextPlaylist: { group: '[Playlist]', name: 'SelectNextPlaylist', type: 'binary', description: 'Switches to the next view (Library, Queue, etc.)' }, - 'SelectPrevPlaylist': { + SelectPrevPlaylist: { group: '[Playlist]', name: 'SelectPrevPlaylist', type: 'binary', description: 'Switches to the previous view (Library, Queue, etc.)' }, - 'ToggleSelectedSidebarItem': { + ToggleSelectedSidebarItem: { group: '[Playlist]', name: 'ToggleSelectedSidebarItem', type: 'binary', description: 'Toggles (expands/collapses) the currently selected sidebar item.' }, - 'SelectNextTrack': { + SelectNextTrack: { group: '[Playlist]', name: 'SelectNextTrack', type: 'binary', description: 'Scrolls to the next track in the track table.' }, - 'SelectPrevTrack': { + SelectPrevTrack: { group: '[Playlist]', name: 'SelectPrevTrack', type: 'binary', description: 'Scrolls to the previous track in the track table.' }, - 'SelectTrackKnob': { + SelectTrackKnob: { group: '[Playlist]', name: 'SelectTrackKnob', type: 'relative value', description: 'Scrolls the given number of tracks in the track table (can be negative for reverse direction).' }, - 'AutoDjAddBottom': { + AutoDjAddBottom: { group: '[Playlist]', name: 'AutoDjAddBottom', type: 'binary', description: 'Add selected track(s) to Auto DJ Queue (bottom).' }, - 'AutoDjAddTop': { + AutoDjAddTop: { group: '[Playlist]', name: 'AutoDjAddTop', type: 'binary', @@ -1668,584 +1725,589 @@ var NovationLaunchpadMK2 = (function () { } }; var playListControl = Object.keys(playListControlDef).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(playListControlDef[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(playListControlDef[key]))); }, {}); var channelDef = function channelDef(type, i) { return { - 'back': { + back: { group: "[".concat(type).concat(i, "]"), name: 'back', type: 'binary' }, - 'beat_active': { + beat_active: { group: "[".concat(type).concat(i, "]"), name: 'beat_active', type: 'binary' }, - 'beatjump': { + beatjump: { group: "[".concat(type).concat(i, "]"), name: 'beatjump', type: 'real number' }, - 'beatjumps': function beatjumps(x) { + beatjumps: function beatjumps(x) { return { - 'forward': { + forward: { group: "[".concat(type).concat(i, "]"), name: "beatjump_".concat(x, "_forward"), type: 'binary' }, - 'backward': { + backward: { group: "[".concat(type).concat(i, "]"), name: "beatjump_".concat(x, "_backward"), type: 'binary' } }; }, - 'beatloop': { + beatloop: { group: "[".concat(type).concat(i, "]"), name: 'beatloop', type: 'positive real number' }, - 'beatloops': function beatloops(x) { + beatloops: function beatloops(x) { return { - 'activate': { + activate: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_activate"), type: 'binary' }, - 'toggle': { + toggle: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_toggle"), type: 'binary' }, - 'enabled': { + enabled: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_enabled"), type: 'binary' } }; }, - 'beats_adjust_faster': { + beats_adjust_faster: { group: "[".concat(type).concat(i, "]"), name: 'beats_adjust_faster', type: 'binary' }, - 'beats_adjust_slower': { + beats_adjust_slower: { group: "[".concat(type).concat(i, "]"), name: 'beats_adjust_slower', type: 'binary' }, - 'beats_translate_curpos': { + beats_translate_curpos: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_curpos', type: 'binary' }, - 'beats_translate_match_alignment': { + beats_translate_match_alignment: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_match_alignment', type: 'binary' }, - 'beats_translate_earlier': { + beats_translate_earlier: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_earlier', type: 'binary' }, - 'beats_translate_later': { + beats_translate_later: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_later', type: 'binary' }, - 'beatsync': { + beatsync: { group: "[".concat(type).concat(i, "]"), name: 'beatsync', type: 'binary' }, - 'beatsync_phase': { + beatsync_phase: { group: "[".concat(type).concat(i, "]"), name: 'beatsync_phase', type: 'binary' }, - 'beatsync_tempo': { + beatsync_tempo: { group: "[".concat(type).concat(i, "]"), name: 'beatsync_tempo', type: 'binary' }, - 'bpm': { + bpm: { group: "[".concat(type).concat(i, "]"), name: 'bpm', type: 'real-valued' }, - 'bpm_tap': { + bpm_tap: { group: "[".concat(type).concat(i, "]"), name: 'bpm_tap', type: 'binary' }, - 'cue_default': { + cue_default: { group: "[".concat(type).concat(i, "]"), name: 'cue_default', type: 'binary' }, - 'cue_gotoandplay': { + cue_gotoandplay: { group: "[".concat(type).concat(i, "]"), name: 'cue_gotoandplay', type: 'binary' }, - 'cue_gotoandstop': { + cue_gotoandstop: { group: "[".concat(type).concat(i, "]"), name: 'cue_gotoandstop', type: 'binary' }, - 'cue_indicator': { + cue_indicator: { group: "[".concat(type).concat(i, "]"), name: 'cue_indicator', type: 'binary' }, - 'cue_cdj': { + cue_cdj: { group: "[".concat(type).concat(i, "]"), name: 'cue_cdj', type: 'binary' }, - 'cue_play': { + cue_play: { group: "[".concat(type).concat(i, "]"), name: 'cue_play', type: 'binary' }, - 'cue_point': { + cue_point: { group: "[".concat(type).concat(i, "]"), name: 'cue_point', type: 'absolute value' }, - 'cue_preview': { + cue_preview: { group: "[".concat(type).concat(i, "]"), name: 'cue_preview', type: 'binary' }, - 'cue_set': { + cue_set: { group: "[".concat(type).concat(i, "]"), name: 'cue_set', type: 'binary' }, - 'cue_simple': { + cue_simple: { group: "[".concat(type).concat(i, "]"), name: 'cue_simple', type: 'binary' }, - 'duration': { + duration: { group: "[".concat(type).concat(i, "]"), name: 'duration', type: 'absolute value' }, - 'eject': { + eject: { group: "[".concat(type).concat(i, "]"), name: 'eject', type: 'binary' }, - 'end': { + end: { group: "[".concat(type).concat(i, "]"), name: 'end', type: 'binary' }, - 'file_bpm': { + file_bpm: { group: "[".concat(type).concat(i, "]"), name: 'file_bpm', type: 'positive value' }, - 'file_key': { + file_key: { group: "[".concat(type).concat(i, "]"), name: 'file_key', type: '?' }, - 'fwd': { + fwd: { group: "[".concat(type).concat(i, "]"), name: 'fwd', type: 'binary' }, - 'hotcues': function hotcues(x) { + hotcues: function hotcues(x) { return { - 'activate': { + activate: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_activate"), type: 'binary' }, - 'clear': { + clear: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_clear"), type: 'binary' }, - 'enabled': { + enabled: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_enabled"), type: 'read-only, binary' }, - 'goto': { + "goto": { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_goto"), type: 'binary' }, - 'gotoandplay': { + gotoandplay: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_gotoandplay"), type: 'binary' }, - 'gotoandstop': { + gotoandstop: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_gotoandstop"), type: 'binary' }, - 'position': { + position: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_position"), type: 'positive integer' }, - 'set': { + set: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_set"), type: 'binary' } }; }, - 'key': { + key: { group: "[".concat(type).concat(i, "]"), name: 'key', type: 'real-valued' }, - 'keylock': { + keylock: { group: "[".concat(type).concat(i, "]"), name: 'keylock', type: 'binary' }, - 'LoadSelectedTrack': { + LoadSelectedTrack: { group: "[".concat(type).concat(i, "]"), name: 'LoadSelectedTrack', type: 'binary' }, - 'LoadSelectedTrackAndPlay': { + LoadSelectedTrackAndPlay: { group: "[".concat(type).concat(i, "]"), name: 'LoadSelectedTrackAndPlay', type: 'binary' }, - 'loop_double': { + loop_double: { group: "[".concat(type).concat(i, "]"), name: 'loop_double', type: 'binary' }, - 'loop_enabled': { + loop_enabled: { group: "[".concat(type).concat(i, "]"), name: 'loop_enabled', type: 'read-only, binary' }, - 'loop_end_position': { + loop_end_position: { group: "[".concat(type).concat(i, "]"), name: 'loop_end_position', type: 'positive integer' }, - 'loop_halve': { + loop_halve: { group: "[".concat(type).concat(i, "]"), name: 'loop_halve', type: 'binary' }, - 'loop_in': { + loop_in: { group: "[".concat(type).concat(i, "]"), name: 'loop_in', type: 'binary' }, - 'loop_out': { + loop_out: { group: "[".concat(type).concat(i, "]"), name: 'loop_out', type: 'binary' }, - 'loop_move': { + loop_move: { group: "[".concat(type).concat(i, "]"), name: 'loop_move', type: 'real number' }, - 'loop_scale': { + loop_scale: { group: "[".concat(type).concat(i, "]"), name: 'loop_scale', type: '0.0 - infinity' }, - 'loop_start_position': { + loop_start_position: { group: "[".concat(type).concat(i, "]"), name: 'loop_start_position', type: 'positive integer' }, - 'orientation': { + orientation: { group: "[".concat(type).concat(i, "]"), name: 'orientation', type: '0-2' }, - 'passthrough': { + passthrough: { group: "[".concat(type).concat(i, "]"), name: 'passthrough', type: 'binary' }, - 'PeakIndicator': { + PeakIndicator: { group: "[".concat(type).concat(i, "]"), name: 'PeakIndicator', type: 'binary' }, - 'pfl': { + pfl: { group: "[".concat(type).concat(i, "]"), name: 'pfl', type: 'binary' }, - 'pitch': { + pitch: { group: "[".concat(type).concat(i, "]"), name: 'pitch', type: '-6.0..6.0' }, - 'pitch_adjust': { + pitch_adjust: { group: "[".concat(type).concat(i, "]"), name: 'pitch_adjust', type: '-3.0..3.0' }, - 'play': { + play: { group: "[".concat(type).concat(i, "]"), name: 'play', type: 'binary' }, - 'play_indicator': { + play_indicator: { group: "[".concat(type).concat(i, "]"), name: 'play_indicator', type: 'binary' }, - 'play_stutter': { + play_stutter: { group: "[".concat(type).concat(i, "]"), name: 'play_stutter', type: 'binary' }, - 'playposition': { + playposition: { group: "[".concat(type).concat(i, "]"), name: 'playposition', type: 'default' }, - 'pregain': { + pregain: { group: "[".concat(type).concat(i, "]"), name: 'pregain', type: '0.0..1.0..4.0' }, - 'quantize': { + quantize: { group: "[".concat(type).concat(i, "]"), name: 'quantize', type: 'binary' }, - 'rate': { + rate: { group: "[".concat(type).concat(i, "]"), name: 'rate', type: '-1.0..1.0' }, - 'rate_dir': { + rate_dir: { group: "[".concat(type).concat(i, "]"), name: 'rate_dir', type: '-1 or 1' }, - 'rate_perm_down': { + rate_perm_down: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_down', type: 'binary' }, - 'rate_perm_down_small': { + rate_perm_down_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_down_small', type: 'binary' }, - 'rate_perm_up': { + rate_perm_up: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_up', type: 'binary' }, - 'rate_perm_up_small': { + rate_perm_up_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_up_small', type: 'binary' }, - 'rate_temp_down': { + rate_temp_down: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_down', type: 'binary' }, - 'rate_temp_down_small': { + rate_temp_down_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_down_small', type: 'binary' }, - 'rate_temp_up': { + rate_temp_up: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_up', type: 'binary' }, - 'rate_temp_up_small': { + rate_temp_up_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_up_small', type: 'binary' }, - 'rateRange': { + rateRange: { group: "[".concat(type).concat(i, "]"), name: 'rateRange', type: '0.0..3.0' }, - 'reloop_exit': { + reloop_andstop: { + group: "[".concat(type).concat(i, "]"), + name: 'reloop_andstop', + type: 'binary' + }, + reloop_exit: { group: "[".concat(type).concat(i, "]"), name: 'reloop_exit', type: 'binary' }, - 'repeat': { + repeat: { group: "[".concat(type).concat(i, "]"), name: 'repeat', type: 'binary' }, - 'reset_key': { + reset_key: { group: "[".concat(type).concat(i, "]"), name: 'reset_key', type: 'binary' }, - 'reverse': { + reverse: { group: "[".concat(type).concat(i, "]"), name: 'reverse', type: 'binary' }, - 'reverseroll': { + reverseroll: { group: "[".concat(type).concat(i, "]"), name: 'reverseroll', type: 'binary' }, - 'slip_enabled': { + slip_enabled: { group: "[".concat(type).concat(i, "]"), name: 'slip_enabled', type: 'binary' }, - 'start': { + start: { group: "[".concat(type).concat(i, "]"), name: 'start', type: 'binary' }, - 'start_play': { + start_play: { group: "[".concat(type).concat(i, "]"), name: 'start_play', type: 'binary' }, - 'start_stop': { + start_stop: { group: "[".concat(type).concat(i, "]"), name: 'start_stop', type: 'binary' }, - 'stop': { + stop: { group: "[".concat(type).concat(i, "]"), name: 'stop', type: 'binary' }, - 'sync_enabled': { + sync_enabled: { group: "[".concat(type).concat(i, "]"), name: 'sync_enabled', type: 'binary' }, - 'sync_master': { + sync_master: { group: "[".concat(type).concat(i, "]"), name: 'sync_master', type: 'binary' }, - 'sync_mode': { + sync_mode: { group: "[".concat(type).concat(i, "]"), name: 'sync_mode', type: 'binary' }, - 'sync_key': { + sync_key: { group: "[".concat(type).concat(i, "]"), name: 'sync_key', type: '?' }, - 'track_samplerate': { + track_samplerate: { group: "[".concat(type).concat(i, "]"), name: 'track_samplerate', type: 'absolute value' }, - 'track_samples': { + track_samples: { group: "[".concat(type).concat(i, "]"), name: 'track_samples', type: 'absolute value' }, - 'volume': { + volume: { group: "[".concat(type).concat(i, "]"), name: 'volume', type: 'default' }, - 'mute': { + mute: { group: "[".concat(type).concat(i, "]"), name: 'mute', type: 'binary' }, - 'vinylcontrol_enabled': { + vinylcontrol_enabled: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_enabled', type: 'binary' }, - 'vinylcontrol_cueing': { + vinylcontrol_cueing: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_cueing', type: '0.0-2.0' }, - 'vinylcontrol_mode': { + vinylcontrol_mode: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_mode', type: '0.0-2.0' }, - 'vinylcontrol_status': { + vinylcontrol_status: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_status', type: '0.0-3.0 (read-only)' }, - 'visual_bpm': { + visual_bpm: { group: "[".concat(type).concat(i, "]"), name: 'visual_bpm', type: '?' }, - 'visual_key': { + visual_key: { group: "[".concat(type).concat(i, "]"), name: 'visual_key', type: '?' }, - 'visual_key_distance': { + visual_key_distance: { group: "[".concat(type).concat(i, "]"), name: 'visual_key_distance', type: '-0.5..0.5' }, - 'VuMeter': { + VuMeter: { group: "[".concat(type).concat(i, "]"), name: 'VuMeter', type: 'default' }, - 'VuMeterL': { + VuMeterL: { group: "[".concat(type).concat(i, "]"), name: 'VuMeterL', type: 'default' }, - 'VuMeterR': { + VuMeterR: { group: "[".concat(type).concat(i, "]"), name: 'VuMeterR', type: 'default' }, - 'waveform_zoom': { + waveform_zoom: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom', type: '1.0 - 6.0' }, - 'waveform_zoom_up': { + waveform_zoom_up: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_up', type: '?' }, - 'waveform_zoom_down': { + waveform_zoom_down: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_down', type: '?' }, - 'waveform_zoom_set_default': { + waveform_zoom_set_default: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_set_default', type: '?' }, - 'wheel': { + wheel: { group: "[".concat(type).concat(i, "]"), name: 'wheel', type: '-3.0..3.0' @@ -2260,9 +2322,9 @@ var NovationLaunchpadMK2 = (function () { return array.reduce(function (arr, i) { var def = one(i); var control = Object.keys(def).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(def[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(def[key]))); }, {}); - return assign(arr, _defineProperty({}, i, control)); + return assign(arr, _defineProperty$1({}, i, control)); }, {}); }; @@ -2276,12 +2338,12 @@ var NovationLaunchpadMK2 = (function () { var channel = Object.keys(channelDefInstance).filter(function (key) { return key !== 'beatjumps' && key !== 'beatloops' && key !== 'hotcues'; }).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(channelDefInstance[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(channelDefInstance[key]))); }, {}); return assign(channel, { - 'beatjumps': createEnumeratedControl(beatjumps, channelDefInstance.beatjumps), - 'beatloops': createEnumeratedControl(beatloops, channelDefInstance.beatloops), - 'hotcues': createEnumeratedControl(range(16).map(function (x) { + beatjumps: createEnumeratedControl(beatjumps, channelDefInstance.beatjumps), + beatloops: createEnumeratedControl(beatloops, channelDefInstance.beatloops), + hotcues: createEnumeratedControl(range(16).map(function (x) { return x + 1; }), channelDefInstance.hotcues) }); @@ -2296,10 +2358,8 @@ var NovationLaunchpadMK2 = (function () { return name.replace('.', '$dot$').replace('[', '$sbs$').replace(']', '$sbe$'); }; - var ControlBus = - /*#__PURE__*/ - function () { - _createClass(ControlBus, null, [{ + var ControlBus = /*#__PURE__*/function () { + _createClass$1(ControlBus, null, [{ key: "create", value: function create(moduleName, registry) { return new ControlBus(moduleName, registry); @@ -2307,20 +2367,20 @@ var NovationLaunchpadMK2 = (function () { }]); function ControlBus(registryName, registry) { - _classCallCheck(this, ControlBus); + _classCallCheck$1(this, ControlBus); - _defineProperty(this, "_registryName", void 0); + _defineProperty$1(this, "_registryName", void 0); - _defineProperty(this, "_registry", void 0); + _defineProperty$1(this, "_registry", void 0); - _defineProperty(this, "_callbackList", void 0); + _defineProperty$1(this, "_callbackList", void 0); this._registryName = registryName; this._registry = registry; this._callbackList = {}; } - _createClass(ControlBus, [{ + _createClass$1(ControlBus, [{ key: "connect", value: function connect(id, control, cb) { var _this = this; @@ -2382,19 +2442,17 @@ var NovationLaunchpadMK2 = (function () { }(); var timerPrefix = '__timer'; - var Timer = - /*#__PURE__*/ - function () { + var Timer = /*#__PURE__*/function () { function Timer(registryName, registry, task) { - _classCallCheck(this, Timer); + _classCallCheck$1(this, Timer); - _defineProperty(this, "task", void 0); + _defineProperty$1(this, "task", void 0); - _defineProperty(this, "_state", void 0); + _defineProperty$1(this, "_state", void 0); - _defineProperty(this, "_registryName", void 0); + _defineProperty$1(this, "_registryName", void 0); - _defineProperty(this, "_registry", void 0); + _defineProperty$1(this, "_registry", void 0); this._registryName = registryName; this._registry = registry; @@ -2402,7 +2460,7 @@ var NovationLaunchpadMK2 = (function () { this._state = undefined; } - _createClass(Timer, [{ + _createClass$1(Timer, [{ key: "start", value: function start(interval) { if (this._state == null) { @@ -2452,31 +2510,6 @@ var NovationLaunchpadMK2 = (function () { }; }; - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - - /** Used to convert symbols to primitives and strings. */ - - var symbolProto = _Symbol ? _Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } @@ -2859,6 +2892,9 @@ var NovationLaunchpadMK2 = (function () { } }); + function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var callbackPrefix$1 = '__midi'; var leftPad = function leftPad(str, padString, length) { @@ -2875,12 +2911,12 @@ var NovationLaunchpadMK2 = (function () { return '0x' + leftPad(n.toString(16).toUpperCase(), '0', d); }; - var MidiBus = - /*#__PURE__*/ - function (_EventEmitter) { + var MidiBus = /*#__PURE__*/function (_EventEmitter) { _inherits(MidiBus, _EventEmitter); - _createClass(MidiBus, null, [{ + var _super = _createSuper(MidiBus); + + _createClass$1(MidiBus, null, [{ key: "create", value: function create(registry, device) { return new MidiBus(registry, device); @@ -2890,13 +2926,13 @@ var NovationLaunchpadMK2 = (function () { function MidiBus(registry, device) { var _this; - _classCallCheck(this, MidiBus); + _classCallCheck$1(this, MidiBus); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiBus).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "registry", void 0); + _defineProperty$1(_assertThisInitialized(_this), "registry", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); _this.registry = registry; _this.device = device; @@ -2949,28 +2985,32 @@ var NovationLaunchpadMK2 = (function () { return _get(target, property, receiver || target); } - var Component = - /*#__PURE__*/ - function (_EventEmitter) { + function _createSuper$1(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$1()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Component = /*#__PURE__*/function (_EventEmitter) { _inherits(Component, _EventEmitter); + var _super = _createSuper$1(Component); + function Component() { - _classCallCheck(this, Component); + _classCallCheck$1(this, Component); - return _possibleConstructorReturn(this, _getPrototypeOf(Component).apply(this, arguments)); + return _super.apply(this, arguments); } - _createClass(Component, [{ + _createClass$1(Component, [{ key: "mount", value: function mount() { this.onMount(); - this.emit("mount", this); + this.emit('mount', this); } }, { key: "unmount", value: function unmount() { this.onUnmount(); - this.emit("unmount", this); + this.emit('unmount', this); } }, { key: "onMount", @@ -2983,28 +3023,32 @@ var NovationLaunchpadMK2 = (function () { return Component; }(eventemitter3); - var MidiComponent = - /*#__PURE__*/ - function (_Component) { + function _createSuper$2(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$2()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var MidiComponent = /*#__PURE__*/function (_Component) { _inherits(MidiComponent, _Component); + var _super = _createSuper$2(MidiComponent); + function MidiComponent(midibus) { var _this; - _classCallCheck(this, MidiComponent); + _classCallCheck$1(this, MidiComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiComponent).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "midibus", void 0); + _defineProperty$1(_assertThisInitialized(_this), "midibus", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); _this.midibus = midibus; _this.device = midibus.device; return _this; } - _createClass(MidiComponent, [{ + _createClass$1(MidiComponent, [{ key: "onMount", value: function onMount() { _get(_getPrototypeOf(MidiComponent.prototype), "onMount", this).call(this); @@ -3019,21 +3063,25 @@ var NovationLaunchpadMK2 = (function () { return MidiComponent; }(Component); - var MidiButtonComponent = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$3(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$3()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var MidiButtonComponent = /*#__PURE__*/function (_MidiComponent) { _inherits(MidiButtonComponent, _MidiComponent); + var _super = _createSuper$3(MidiButtonComponent); + function MidiButtonComponent(midibus, button) { var _this; - _classCallCheck(this, MidiButtonComponent); + _classCallCheck$1(this, MidiButtonComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiButtonComponent).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "button", void 0); + _defineProperty$1(_assertThisInitialized(_this), "button", void 0); - _defineProperty(_assertThisInitialized(_this), "_cb", void 0); + _defineProperty$1(_assertThisInitialized(_this), "_cb", void 0); _this.midibus = midibus; _this.button = button; @@ -3052,7 +3100,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(MidiButtonComponent, [{ + _createClass$1(MidiButtonComponent, [{ key: "onMount", value: function onMount() { _get(_getPrototypeOf(MidiButtonComponent.prototype), "onMount", this).call(this); @@ -3071,6 +3119,10 @@ var NovationLaunchpadMK2 = (function () { return MidiButtonComponent; }(MidiComponent); + function _createSuper$4(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$4()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$4() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + var autoscrolled = function autoscrolled(binding) { return function (timerBuilder) { var started; @@ -3145,19 +3197,19 @@ var NovationLaunchpadMK2 = (function () { button.sendColor(device.colors.black); }; - var PlaylistSidebar = - /*#__PURE__*/ - function (_MidiComponent) { + var PlaylistSidebar = /*#__PURE__*/function (_MidiComponent) { _inherits(PlaylistSidebar, _MidiComponent); + var _super = _createSuper$4(PlaylistSidebar); + function PlaylistSidebar(midibus, timerBuilder) { var _this; - _classCallCheck(this, PlaylistSidebar); + _classCallCheck$1(this, PlaylistSidebar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(PlaylistSidebar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "buttons", void 0); + _defineProperty$1(_assertThisInitialized(_this), "buttons", void 0); var btns = [new MidiButtonComponent(midibus, _this.device.buttons.vol), new MidiButtonComponent(midibus, _this.device.buttons.pan), new MidiButtonComponent(midibus, _this.device.buttons.snda), new MidiButtonComponent(midibus, _this.device.buttons.sndb), new MidiButtonComponent(midibus, _this.device.buttons.stop)]; var prevPlaylist = autoscrolled(btns[0])(timerBuilder); @@ -3188,7 +3240,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(PlaylistSidebar, [{ + _createClass$1(PlaylistSidebar, [{ key: "onMount", value: function onMount() { this.buttons.forEach(function (button) { @@ -3207,25 +3259,29 @@ var NovationLaunchpadMK2 = (function () { return PlaylistSidebar; }(MidiComponent); - var ModifierSidebar = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$5(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$5()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var ModifierSidebar = /*#__PURE__*/function (_MidiComponent) { _inherits(ModifierSidebar, _MidiComponent); + var _super = _createSuper$5(ModifierSidebar); + function ModifierSidebar(midibus) { var _this; - _classCallCheck(this, ModifierSidebar); + _classCallCheck$1(this, ModifierSidebar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(ModifierSidebar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "shift", void 0); + _defineProperty$1(_assertThisInitialized(_this), "shift", void 0); - _defineProperty(_assertThisInitialized(_this), "ctrl", void 0); + _defineProperty$1(_assertThisInitialized(_this), "ctrl", void 0); - _defineProperty(_assertThisInitialized(_this), "state", void 0); + _defineProperty$1(_assertThisInitialized(_this), "state", void 0); - _defineProperty(_assertThisInitialized(_this), "listener", void 0); + _defineProperty$1(_assertThisInitialized(_this), "listener", void 0); _this.shift = new MidiButtonComponent(_this.midibus, _this.device.buttons.solo); _this.ctrl = new MidiButtonComponent(_this.midibus, _this.device.buttons.arm); @@ -3259,7 +3315,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(ModifierSidebar, [{ + _createClass$1(ModifierSidebar, [{ key: "onMount", value: function onMount() { this.shift.mount(); @@ -3314,25 +3370,19 @@ var NovationLaunchpadMK2 = (function () { }; function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } /** Detect free variable `global` from Node.js. */ @@ -3379,11 +3429,12 @@ var NovationLaunchpadMK2 = (function () { try { value[symToStringTag$2] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString$2.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag$2] = tag; } else { @@ -4341,6 +4392,14 @@ var NovationLaunchpadMK2 = (function () { var nodeUtil$1 = function () { try { + // Use `util.types` for Node.js 10+. + var types = freeModule$3 && freeModule$3.require && freeModule$3.require('util').types; + + if (types) { + return types; + } // Legacy `process.binding('util')` for Node.js < 10. + + return freeProcess$1 && freeProcess$1.binding && freeProcess$1.binding('util'); } catch (e) {} }(); @@ -5312,8 +5371,8 @@ var NovationLaunchpadMK2 = (function () { dataViewTag$2 = '[object DataView]'; /** Used to convert symbols to primitives and strings. */ - var symbolProto$1 = _Symbol$1 ? _Symbol$1.prototype : undefined, - symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + var symbolProto = _Symbol$1 ? _Symbol$1.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. @@ -6108,7 +6167,7 @@ var NovationLaunchpadMK2 = (function () { * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ - function arrayMap$1(array, iteratee) { + function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); @@ -6122,11 +6181,11 @@ var NovationLaunchpadMK2 = (function () { /** Used as references for various `Number` constants. */ - var INFINITY$2 = 1 / 0; + var INFINITY$1 = 1 / 0; /** Used to convert symbols to primitives and strings. */ - var symbolProto$2 = _Symbol$1 ? _Symbol$1.prototype : undefined, - symbolToString$1 = symbolProto$2 ? symbolProto$2.toString : undefined; + var symbolProto$1 = _Symbol$1 ? _Symbol$1.prototype : undefined, + symbolToString = symbolProto$1 ? symbolProto$1.toString : undefined; /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. @@ -6136,7 +6195,7 @@ var NovationLaunchpadMK2 = (function () { * @returns {string} Returns the string. */ - function baseToString$1(value) { + function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; @@ -6144,15 +6203,15 @@ var NovationLaunchpadMK2 = (function () { if (isArray$1(value)) { // Recursively convert values (susceptible to call stack limits). - return arrayMap$1(value, baseToString$1) + ''; + return arrayMap(value, baseToString) + ''; } if (isSymbol$1(value)) { - return symbolToString$1 ? symbolToString$1.call(value) : ''; + return symbolToString ? symbolToString.call(value) : ''; } var result = value + ''; - return result == '0' && 1 / value == -INFINITY$2 ? '-0' : result; + return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; } /** @@ -6177,8 +6236,8 @@ var NovationLaunchpadMK2 = (function () { * // => '1,2,3' */ - function toString$1(value) { - return value == null ? '' : baseToString$1(value); + function toString(value) { + return value == null ? '' : baseToString(value); } /** @@ -6195,12 +6254,12 @@ var NovationLaunchpadMK2 = (function () { return value; } - return isKey(value, object) ? [value] : stringToPath(toString$1(value)); + return isKey(value, object) ? [value] : stringToPath(toString(value)); } /** Used as references for various `Number` constants. */ - var INFINITY$3 = 1 / 0; + var INFINITY$2 = 1 / 0; /** * Converts `value` to a string key if it's not a string or symbol. * @@ -6215,7 +6274,7 @@ var NovationLaunchpadMK2 = (function () { } var result = value + ''; - return result == '0' && 1 / value == -INFINITY$3 ? '-0' : result; + return result == '0' && 1 / value == -INFINITY$2 ? '-0' : result; } /** @@ -6518,7 +6577,7 @@ var NovationLaunchpadMK2 = (function () { /** Used as references for various `Number` constants. */ - var INFINITY$4 = 1 / 0, + var INFINITY$3 = 1 / 0, MAX_INTEGER$1 = 1.7976931348623157e+308; /** * Converts `value` to a finite number. @@ -6551,7 +6610,7 @@ var NovationLaunchpadMK2 = (function () { value = toNumber$1(value); - if (value === INFINITY$4 || value === -INFINITY$4) { + if (value === INFINITY$3 || value === -INFINITY$3) { var sign = value < 0 ? -1 : 1; return sign * MAX_INTEGER$1; } @@ -6586,7 +6645,7 @@ var NovationLaunchpadMK2 = (function () { * // => 3 */ - function toInteger$1(value) { + function toInteger(value) { var result = toFinite$1(value), remainder = result % 1; return result === result ? remainder ? result - remainder : result : 0; @@ -6638,13 +6697,13 @@ var NovationLaunchpadMK2 = (function () { return -1; } - var index = fromIndex == null ? 0 : toInteger$1(fromIndex); + var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax$3(length + index, 0); } - return baseFindIndex(array, baseIteratee(predicate, 3), index); + return baseFindIndex(array, baseIteratee(predicate), index); } var play = (function (gridPosition) { @@ -6898,23 +6957,27 @@ var NovationLaunchpadMK2 = (function () { }; }); - var Bpm = - /*#__PURE__*/ - function (_EventEmitter) { + function _createSuper$6(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$6()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Bpm = /*#__PURE__*/function (_EventEmitter) { _inherits(Bpm, _EventEmitter); + var _super = _createSuper$6(Bpm); + function Bpm(max) { var _this; - _classCallCheck(this, Bpm); + _classCallCheck$1(this, Bpm); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Bpm).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "tapTime", void 0); + _defineProperty$1(_assertThisInitialized(_this), "tapTime", void 0); - _defineProperty(_assertThisInitialized(_this), "taps", void 0); + _defineProperty$1(_assertThisInitialized(_this), "taps", void 0); - _defineProperty(_assertThisInitialized(_this), "max", void 0); + _defineProperty$1(_assertThisInitialized(_this), "max", void 0); if (max == null) { max = 8; @@ -6926,7 +6989,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(Bpm, [{ + _createClass$1(Bpm, [{ key: "reset", value: function reset() { this.taps = []; @@ -6974,7 +7037,9 @@ var NovationLaunchpadMK2 = (function () { attack: function attack() { modes(modifier.getState(), function () { tempoBpm.tap(); - }, undefined, function () { + }, function () { + deck.bpm_tap.setValue(1); + }, function () { deck.beats_translate_curpos.setValue(1); }, function () { deck.beats_translate_match_alignment.setValue(1); @@ -7688,8 +7753,8 @@ var NovationLaunchpadMK2 = (function () { */ function map(collection, iteratee) { - var func = isArray$1(collection) ? arrayMap$1 : baseMap; - return func(collection, baseIteratee(iteratee, 3)); + var func = isArray$1(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee)); } /** @@ -7804,8 +7869,7 @@ var NovationLaunchpadMK2 = (function () { var spec = flatMap(jumps, function (j, i) { return [[j, -1], [j, 1]]; - }); // FIXME: flatMap is incorrectly typed see https://github.com/flow-typed/flow-typed/issues/2463 - + }); spec.forEach(function (_ref4, i) { var _ref5 = _slicedToArray(_ref4, 2), jump = _ref5[0], @@ -8069,7 +8133,7 @@ var NovationLaunchpadMK2 = (function () { mount: onMount('halve'), attack: onAttack('halve') }, - double: { + "double": { type: 'button', target: [gridPosition[0] + 1, gridPosition[1]], mount: onMount('double'), @@ -8094,6 +8158,8 @@ var NovationLaunchpadMK2 = (function () { attack: function attack() { modes(modifier.getState(), function () { return deck.reloop_exit.setValue(1); + }, function () { + return deck.reloop_andstop.setValue(1); }); } }, @@ -8118,23 +8184,39 @@ var NovationLaunchpadMK2 = (function () { }; }); + var SMALL_SAMPLES = 125; var loopIo = (function (gridPosition) { return function (deck) { return function (modifier) { return function (device) { + var loopName = { + "in": 'loop_in', + out: 'loop_out' + }; + var loopPosName = { + "in": 'loop_start_position', + out: 'loop_end_position' + }; + var onMidi = function onMidi(dir) { return function (_ref, _ref2) { var value = _ref.value; var bindings = _ref2.bindings; modes(modifier.getState(), function () { if (value) { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck["loop_".concat(dir)].setValue(1); - bindings[dir].button.sendColor(device.colors.hi_green); - } else { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck["loop_".concat(dir)].setValue(0); - bindings[dir].button.sendColor(device.colors.black); + var ctrl = loopName[dir]; + deck[ctrl].setValue(1); + deck[ctrl].setValue(0); + } + }, function () { + if (value) { + var ctrl = loopPosName[dir]; + deck[ctrl].setValue(deck[ctrl].getValue() - SMALL_SAMPLES); + } + }, function () { + if (value) { + var ctrl = loopPosName[dir]; + deck[ctrl].setValue(deck[ctrl].getValue() + SMALL_SAMPLES); } }); }; @@ -8299,6 +8381,9 @@ var NovationLaunchpadMK2 = (function () { beatjump: beatjump([[1, 16], [2, 32]])([0, 6]) }; + function _createSuper$7(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$7()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var makePresetFromPartialTemplate = function makePresetFromPartialTemplate(id, partialTemplate, offset) { return function (deck) { return function (controlComponentBuilder) { @@ -8306,7 +8391,7 @@ var NovationLaunchpadMK2 = (function () { return function (modifier) { var template = {}; Object.keys(partialTemplate).forEach(function (k) { - assign$1(template, _defineProperty({}, k, partialTemplate[k](deck)(modifier)(midibus.device))); + assign$1(template, _defineProperty$1({}, k, partialTemplate[k](deck)(modifier)(midibus.device))); }); return new Preset(midibus, controlComponentBuilder, modifier, id, template, offset); }; @@ -8314,19 +8399,19 @@ var NovationLaunchpadMK2 = (function () { }; }; }; - var Preset = - /*#__PURE__*/ - function (_MidiComponent) { + var Preset = /*#__PURE__*/function (_MidiComponent) { _inherits(Preset, _MidiComponent); + var _super = _createSuper$7(Preset); + function Preset(midibus, controlComponentBuilder, modifier, id, template, offset) { var _this; - _classCallCheck(this, Preset); + _classCallCheck$1(this, Preset); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Preset).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "preset", void 0); + _defineProperty$1(_assertThisInitialized(_this), "preset", void 0); var controlBindings = {}; var controlListeners = {}; @@ -8378,7 +8463,7 @@ var NovationLaunchpadMK2 = (function () { } }); - if (typeof binding['unmount'] !== 'function') { + if (typeof binding.unmount !== 'function') { appendListener('unmount', buttonListeners[_name], function (data) { instance.bindings[bk].button.sendColor(this.device.colors.black); }); @@ -8397,7 +8482,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(Preset, [{ + _createClass$1(Preset, [{ key: "onMount", value: function onMount() { var _this$preset = this.preset, @@ -8487,6 +8572,9 @@ var NovationLaunchpadMK2 = (function () { }); }; + function _createSuper$8(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$8()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$8() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var initialChannels = [0, 1]; var onMidi$1 = function onMidi(selectorBar, channel, modifier) { @@ -8517,31 +8605,31 @@ var NovationLaunchpadMK2 = (function () { }); }; - var SelectorBar = - /*#__PURE__*/ - function (_MidiComponent) { + var SelectorBar = /*#__PURE__*/function (_MidiComponent) { _inherits(SelectorBar, _MidiComponent); + var _super = _createSuper$8(SelectorBar); + function SelectorBar(midibus, controlComponentBuilder, modifier, id) { var _this; - _classCallCheck(this, SelectorBar); + _classCallCheck$1(this, SelectorBar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(SelectorBar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "id", void 0); + _defineProperty$1(_assertThisInitialized(_this), "id", void 0); - _defineProperty(_assertThisInitialized(_this), "bindings", void 0); + _defineProperty$1(_assertThisInitialized(_this), "bindings", void 0); - _defineProperty(_assertThisInitialized(_this), "controlComponentBuilder", void 0); + _defineProperty$1(_assertThisInitialized(_this), "controlComponentBuilder", void 0); - _defineProperty(_assertThisInitialized(_this), "modifier", void 0); + _defineProperty$1(_assertThisInitialized(_this), "modifier", void 0); - _defineProperty(_assertThisInitialized(_this), "chord", void 0); + _defineProperty$1(_assertThisInitialized(_this), "chord", void 0); - _defineProperty(_assertThisInitialized(_this), "layout", void 0); + _defineProperty$1(_assertThisInitialized(_this), "layout", void 0); - _defineProperty(_assertThisInitialized(_this), "mountedPresets", void 0); + _defineProperty$1(_assertThisInitialized(_this), "mountedPresets", void 0); _this.id = id; _this.bindings = SelectorBar.buttons.map(function (v, i) { @@ -8556,7 +8644,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(SelectorBar, [{ + _createClass$1(SelectorBar, [{ key: "getLayout", value: function getLayout() { var res = []; @@ -8682,29 +8770,29 @@ var NovationLaunchpadMK2 = (function () { return SelectorBar; }(MidiComponent); - _defineProperty(SelectorBar, "buttons", ['up', 'down', 'left', 'right', 'session', 'user1', 'user2', 'mixer']); + _defineProperty$1(SelectorBar, "buttons", ['up', 'down', 'left', 'right', 'session', 'user1', 'user2', 'mixer']); - _defineProperty(SelectorBar, "channels", [0, 1, 2, 3, 4, 5, 6, 7]); + _defineProperty$1(SelectorBar, "channels", [0, 1, 2, 3, 4, 5, 6, 7]); - var Layout = - /*#__PURE__*/ - function (_MidiComponent2) { + var Layout = /*#__PURE__*/function (_MidiComponent2) { _inherits(Layout, _MidiComponent2); + var _super2 = _createSuper$8(Layout); + function Layout(midibus, controlComponentBuilder, modifier, id) { var _this4; - _classCallCheck(this, Layout); + _classCallCheck$1(this, Layout); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(Layout).call(this, midibus)); + _this4 = _super2.call(this, midibus); - _defineProperty(_assertThisInitialized(_this4), "selectorBar", void 0); + _defineProperty$1(_assertThisInitialized(_this4), "selectorBar", void 0); _this4.selectorBar = new SelectorBar(midibus, controlComponentBuilder, modifier, "".concat(id, ".selectorBar")); return _this4; } - _createClass(Layout, [{ + _createClass$1(Layout, [{ key: "onMount", value: function onMount() { this.selectorBar.mount(); @@ -8726,12 +8814,12 @@ var NovationLaunchpadMK2 = (function () { var presets = { grande: [Grande], tall: [Tall, Juggler], - short: [Short, Sampler] + "short": [Short, Sampler] }; var cycled = { - 'grande': [].concat(_toConsumableArray(presets.grande), _toConsumableArray(presets.tall), _toConsumableArray(presets.short)), - 'tall': [].concat(_toConsumableArray(presets.tall), _toConsumableArray(presets.short)), - 'short': presets.short + grande: [].concat(_toConsumableArray(presets.grande), _toConsumableArray(presets.tall), _toConsumableArray(presets["short"])), + tall: [].concat(_toConsumableArray(presets.tall), _toConsumableArray(presets["short"])), + "short": presets["short"] }; var blockEquals = function blockEquals(a, b) { @@ -8844,23 +8932,27 @@ var NovationLaunchpadMK2 = (function () { })]]; }; - var Screen = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$9(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$9()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$9() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Screen = /*#__PURE__*/function (_MidiComponent) { _inherits(Screen, _MidiComponent); + var _super = _createSuper$9(Screen); + function Screen(midibus, timerBuilder, controlComponentBuilder, id) { var _this; - _classCallCheck(this, Screen); + _classCallCheck$1(this, Screen); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Screen).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "modifier", void 0); + _defineProperty$1(_assertThisInitialized(_this), "modifier", void 0); - _defineProperty(_assertThisInitialized(_this), "playListSidebar", void 0); + _defineProperty$1(_assertThisInitialized(_this), "playListSidebar", void 0); - _defineProperty(_assertThisInitialized(_this), "layout", void 0); + _defineProperty$1(_assertThisInitialized(_this), "layout", void 0); _this.modifier = new ModifierSidebar(midibus); _this.playListSidebar = new PlaylistSidebar(midibus, timerBuilder); @@ -8868,7 +8960,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(Screen, [{ + _createClass$1(Screen, [{ key: "onMount", value: function onMount() { this.modifier.mount(); @@ -8887,6 +8979,9 @@ var NovationLaunchpadMK2 = (function () { return Screen; }(MidiComponent); + function _createSuper$a(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$a()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var makeControlComponent = function makeControlComponent(controlBus) { return function (id) { return function (control) { @@ -8895,27 +8990,27 @@ var NovationLaunchpadMK2 = (function () { }; }; - var ControlComponent = - /*#__PURE__*/ - function (_Component) { + var ControlComponent = /*#__PURE__*/function (_Component) { _inherits(ControlComponent, _Component); + var _super = _createSuper$a(ControlComponent); + function ControlComponent(controlBus, id, control) { var _this; - _classCallCheck(this, ControlComponent); + _classCallCheck$1(this, ControlComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(ControlComponent).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "value", void 0); + _defineProperty$1(_assertThisInitialized(_this), "value", void 0); - _defineProperty(_assertThisInitialized(_this), "id", void 0); + _defineProperty$1(_assertThisInitialized(_this), "id", void 0); - _defineProperty(_assertThisInitialized(_this), "controlBus", void 0); + _defineProperty$1(_assertThisInitialized(_this), "controlBus", void 0); - _defineProperty(_assertThisInitialized(_this), "control", void 0); + _defineProperty$1(_assertThisInitialized(_this), "control", void 0); - _defineProperty(_assertThisInitialized(_this), "_handle", void 0); + _defineProperty$1(_assertThisInitialized(_this), "_handle", void 0); _this.value = null; _this.id = id; @@ -8925,7 +9020,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(ControlComponent, [{ + _createClass$1(ControlComponent, [{ key: "onMount", value: function onMount() { var _this2 = this; @@ -8973,18 +9068,19 @@ var NovationLaunchpadMK2 = (function () { return ControlComponent; }(Component); - var LaunchpadMidiButton = - /*#__PURE__*/ - function () { + function _createSuper$b(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$b()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$b() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + var LaunchpadMidiButton = /*#__PURE__*/function () { function LaunchpadMidiButton(def) { - _classCallCheck(this, LaunchpadMidiButton); + _classCallCheck$1(this, LaunchpadMidiButton); - _defineProperty(this, "def", void 0); + _defineProperty$1(this, "def", void 0); this.def = def; } - _createClass(LaunchpadMidiButton, [{ + _createClass$1(LaunchpadMidiButton, [{ key: "sendColor", value: function sendColor(value) { midi_1.sendShortMsg(this.def.status, this.def.midino, value); @@ -8994,27 +9090,27 @@ var NovationLaunchpadMK2 = (function () { return LaunchpadMidiButton; }(); - var Global = - /*#__PURE__*/ - function (_Component) { + var Global = /*#__PURE__*/function (_Component) { _inherits(Global, _Component); + var _super = _createSuper$b(Global); + function Global(name, device) { var _this; - _classCallCheck(this, Global); + _classCallCheck$1(this, Global); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Global).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "screen", void 0); + _defineProperty$1(_assertThisInitialized(_this), "screen", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); - _defineProperty(_assertThisInitialized(_this), "name", void 0); + _defineProperty$1(_assertThisInitialized(_this), "name", void 0); - _defineProperty(_assertThisInitialized(_this), "init", void 0); + _defineProperty$1(_assertThisInitialized(_this), "init", void 0); - _defineProperty(_assertThisInitialized(_this), "shutdown", void 0); + _defineProperty$1(_assertThisInitialized(_this), "shutdown", void 0); _this.name = name; _this.device = device; @@ -9034,7 +9130,7 @@ var NovationLaunchpadMK2 = (function () { return _this; } - _createClass(Global, [{ + _createClass$1(Global, [{ key: "onMount", value: function onMount() { this.device.init(); @@ -9055,12 +9151,28 @@ var NovationLaunchpadMK2 = (function () { return new Global(name, device); } + function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + + function _typeof$1(obj) { + if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + _typeof$1 = function _typeof(obj) { + return _typeof2(obj); + }; + } else { + _typeof$1 = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + } + + return _typeof$1(obj); + } + /** Detect free variable `global` from Node.js. */ - var freeGlobal$2 = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global && global.Object === Object && global; + var freeGlobal$2 = (typeof global === "undefined" ? "undefined" : _typeof$1(global)) == 'object' && global && global.Object === Object && global; /** Detect free variable `self`. */ - var freeSelf$2 = (typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self && self.Object === Object && self; + var freeSelf$2 = (typeof self === "undefined" ? "undefined" : _typeof$1(self)) == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root$2 = freeGlobal$2 || freeSelf$2 || Function('return this')(); @@ -9099,11 +9211,12 @@ var NovationLaunchpadMK2 = (function () { try { value[symToStringTag$4] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString$4.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag$4] = tag; } else { @@ -9184,7 +9297,7 @@ var NovationLaunchpadMK2 = (function () { * // => false */ function isObject$2(value) { - var type = _typeof(value); + var type = _typeof$1(value); return value != null && (type == 'object' || type == 'function'); } @@ -9733,7 +9846,7 @@ var NovationLaunchpadMK2 = (function () { */ function isIndex$2(value, length) { - var type = _typeof(value); + var type = _typeof$1(value); length = length == null ? MAX_SAFE_INTEGER$5 : length; return !!length && (type == 'number' || type != 'symbol' && reIsUint$2.test(value)) && value > -1 && value % 1 == 0 && value < length; @@ -9755,7 +9868,7 @@ var NovationLaunchpadMK2 = (function () { return false; } - var type = _typeof(index); + var type = _typeof$1(index); if (type == 'number' ? isArrayLike$2(object) && isIndex$2(index, object.length) : type == 'string' && index in object) { return eq$2(object[index], value); @@ -9860,7 +9973,7 @@ var NovationLaunchpadMK2 = (function () { * // => false */ function isObjectLike$2(value) { - return value != null && _typeof(value) == 'object'; + return value != null && _typeof$1(value) == 'object'; } /** `Object#toString` result references. */ @@ -9956,10 +10069,10 @@ var NovationLaunchpadMK2 = (function () { /** Detect free variable `exports`. */ - var freeExports$4 = (typeof exports === "undefined" ? "undefined" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports; + var freeExports$4 = (typeof exports === "undefined" ? "undefined" : _typeof$1(exports)) == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule$4 = freeExports$4 && (typeof module === "undefined" ? "undefined" : _typeof(module)) == 'object' && module && !module.nodeType && module; + var freeModule$4 = freeExports$4 && (typeof module === "undefined" ? "undefined" : _typeof$1(module)) == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports$4 = freeModule$4 && freeModule$4.exports === freeExports$4; @@ -10047,10 +10160,10 @@ var NovationLaunchpadMK2 = (function () { /** Detect free variable `exports`. */ - var freeExports$5 = (typeof exports === "undefined" ? "undefined" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports; + var freeExports$5 = (typeof exports === "undefined" ? "undefined" : _typeof$1(exports)) == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule$5 = freeExports$5 && (typeof module === "undefined" ? "undefined" : _typeof(module)) == 'object' && module && !module.nodeType && module; + var freeModule$5 = freeExports$5 && (typeof module === "undefined" ? "undefined" : _typeof$1(module)) == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports$5 = freeModule$5 && freeModule$5.exports === freeExports$5; @@ -10273,7 +10386,7 @@ var NovationLaunchpadMK2 = (function () { var dependencies = { "@babel/runtime": "^7.3.1", "@mixxx-launchpad/app": "1.0.0", - "lodash-es": "~4.17.4" + "lodash-es": "~4.17.14" }; var controller = { device: "Launchpad MK2", @@ -10307,82 +10420,82 @@ var NovationLaunchpadMK2 = (function () { var buttons = { /* eslint-disable key-spacing, no-multi-spaces */ - 'up': { + up: { status: 0xB0, midino: 0x68, name: 'up' }, - 'down': { + down: { status: 0xB0, midino: 0x69, name: 'down' }, - 'left': { + left: { status: 0xB0, midino: 0x6A, name: 'left' }, - 'right': { + right: { status: 0xB0, midino: 0x6B, name: 'right' }, - 'session': { + session: { status: 0xB0, midino: 0x6C, name: 'session' }, - 'user1': { + user1: { status: 0xB0, midino: 0x6D, name: 'user1' }, - 'user2': { + user2: { status: 0xB0, midino: 0x6E, name: 'user2' }, - 'mixer': { + mixer: { status: 0xB0, midino: 0x6F, name: 'mixer' }, - 'vol': { + vol: { status: 0x90, midino: 0x59, name: 'vol' }, - 'pan': { + pan: { status: 0x90, midino: 0x4F, name: 'pan' }, - 'snda': { + snda: { status: 0x90, midino: 0x45, name: 'snda' }, - 'sndb': { + sndb: { status: 0x90, midino: 0x3B, name: 'sndb' }, - 'stop': { + stop: { status: 0x90, midino: 0x31, name: 'stop' }, - 'trkon': { + trkon: { status: 0x90, midino: 0x27, name: 'trkon' }, - 'solo': { + solo: { status: 0x90, midino: 0x1D, name: 'solo' }, - 'arm': { + arm: { status: 0x90, midino: 0x13, name: 'arm' @@ -10706,14 +10819,12 @@ var NovationLaunchpadMK2 = (function () { status: 0x90, midino: 0x12, name: '7,7' - /* eslint-enable key-spacing, no-multi-spaces */ - } + /* eslint-enable key-spacing, no-multi-spaces */ + }; - var LaunchpadMK2Device = - /*#__PURE__*/ - function () { + var LaunchpadMK2Device = /*#__PURE__*/function () { function LaunchpadMK2Device() { _classCallCheck(this, LaunchpadMK2Device); @@ -10721,8 +10832,8 @@ var NovationLaunchpadMK2 = (function () { _defineProperty(this, "colors", void 0); - this.buttons = Object.keys(buttons).reduce(function (obj, name$$1) { - return assign$2(obj, _defineProperty({}, name$$1, new LaunchpadMidiButton(buttons[name$$1]))); + this.buttons = Object.keys(buttons).reduce(function (obj, name) { + return assign$2(obj, _defineProperty({}, name, new LaunchpadMidiButton(buttons[name]))); }, {}); this.colors = colors; } diff --git a/res/controllers/Novation-Launchpad-scripts.js b/res/controllers/Novation-Launchpad-scripts.js index a7c55419de0..6817fd5d074 100644 --- a/res/controllers/Novation-Launchpad-scripts.js +++ b/res/controllers/Novation-Launchpad-scripts.js @@ -36,30 +36,30 @@ var NovationLaunchpad = (function () { return obj; } - function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } function _typeof(obj) { - if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { - return _typeof2(obj); + return typeof obj; }; } else { _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; - } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; @@ -99,11 +99,49 @@ var NovationLaunchpad = (function () { if (superClass) _setPrototypeOf(subClass, superClass); } + function _classCallCheck$1(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties$1(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass$1(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); + if (staticProps) _defineProperties$1(Constructor, staticProps); + return Constructor; + } + + function _defineProperty$1(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -129,17 +167,37 @@ var NovationLaunchpad = (function () { return _arr; } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } /* global engine, midi, script */ var engine_1 = engine; var midi_1 = midi; + var script_1 = script; /** Detect free variable `global` from Node.js. */ var freeGlobal = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global && global.Object === Object && global; @@ -185,11 +243,12 @@ var NovationLaunchpad = (function () { try { value[symToStringTag] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { @@ -1586,18 +1645,16 @@ var NovationLaunchpad = (function () { var range = createRange(); - var Control = - /*#__PURE__*/ - function () { + var Control = /*#__PURE__*/function () { function Control(def) { - _classCallCheck(this, Control); + _classCallCheck$1(this, Control); - _defineProperty(this, "def", void 0); + _defineProperty$1(this, "def", void 0); this.def = def; } - _createClass(Control, [{ + _createClass$1(Control, [{ key: "setValue", value: function setValue(value) { engine_1.setValue(this.def.group, this.def.name, value); @@ -1612,55 +1669,55 @@ var NovationLaunchpad = (function () { return Control; }(); var playListControlDef = { - 'LoadSelectedIntoFirstStopped': { + LoadSelectedIntoFirstStopped: { group: '[Playlist]', name: 'LoadSelectedIntoFirstStopped', type: 'binary', description: 'Loads the currently highlighted song into the first stopped deck' }, - 'SelectNextPlaylist': { + SelectNextPlaylist: { group: '[Playlist]', name: 'SelectNextPlaylist', type: 'binary', description: 'Switches to the next view (Library, Queue, etc.)' }, - 'SelectPrevPlaylist': { + SelectPrevPlaylist: { group: '[Playlist]', name: 'SelectPrevPlaylist', type: 'binary', description: 'Switches to the previous view (Library, Queue, etc.)' }, - 'ToggleSelectedSidebarItem': { + ToggleSelectedSidebarItem: { group: '[Playlist]', name: 'ToggleSelectedSidebarItem', type: 'binary', description: 'Toggles (expands/collapses) the currently selected sidebar item.' }, - 'SelectNextTrack': { + SelectNextTrack: { group: '[Playlist]', name: 'SelectNextTrack', type: 'binary', description: 'Scrolls to the next track in the track table.' }, - 'SelectPrevTrack': { + SelectPrevTrack: { group: '[Playlist]', name: 'SelectPrevTrack', type: 'binary', description: 'Scrolls to the previous track in the track table.' }, - 'SelectTrackKnob': { + SelectTrackKnob: { group: '[Playlist]', name: 'SelectTrackKnob', type: 'relative value', description: 'Scrolls the given number of tracks in the track table (can be negative for reverse direction).' }, - 'AutoDjAddBottom': { + AutoDjAddBottom: { group: '[Playlist]', name: 'AutoDjAddBottom', type: 'binary', description: 'Add selected track(s) to Auto DJ Queue (bottom).' }, - 'AutoDjAddTop': { + AutoDjAddTop: { group: '[Playlist]', name: 'AutoDjAddTop', type: 'binary', @@ -1668,584 +1725,589 @@ var NovationLaunchpad = (function () { } }; var playListControl = Object.keys(playListControlDef).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(playListControlDef[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(playListControlDef[key]))); }, {}); var channelDef = function channelDef(type, i) { return { - 'back': { + back: { group: "[".concat(type).concat(i, "]"), name: 'back', type: 'binary' }, - 'beat_active': { + beat_active: { group: "[".concat(type).concat(i, "]"), name: 'beat_active', type: 'binary' }, - 'beatjump': { + beatjump: { group: "[".concat(type).concat(i, "]"), name: 'beatjump', type: 'real number' }, - 'beatjumps': function beatjumps(x) { + beatjumps: function beatjumps(x) { return { - 'forward': { + forward: { group: "[".concat(type).concat(i, "]"), name: "beatjump_".concat(x, "_forward"), type: 'binary' }, - 'backward': { + backward: { group: "[".concat(type).concat(i, "]"), name: "beatjump_".concat(x, "_backward"), type: 'binary' } }; }, - 'beatloop': { + beatloop: { group: "[".concat(type).concat(i, "]"), name: 'beatloop', type: 'positive real number' }, - 'beatloops': function beatloops(x) { + beatloops: function beatloops(x) { return { - 'activate': { + activate: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_activate"), type: 'binary' }, - 'toggle': { + toggle: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_toggle"), type: 'binary' }, - 'enabled': { + enabled: { group: "[".concat(type).concat(i, "]"), name: "beatloop_".concat(x, "_enabled"), type: 'binary' } }; }, - 'beats_adjust_faster': { + beats_adjust_faster: { group: "[".concat(type).concat(i, "]"), name: 'beats_adjust_faster', type: 'binary' }, - 'beats_adjust_slower': { + beats_adjust_slower: { group: "[".concat(type).concat(i, "]"), name: 'beats_adjust_slower', type: 'binary' }, - 'beats_translate_curpos': { + beats_translate_curpos: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_curpos', type: 'binary' }, - 'beats_translate_match_alignment': { + beats_translate_match_alignment: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_match_alignment', type: 'binary' }, - 'beats_translate_earlier': { + beats_translate_earlier: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_earlier', type: 'binary' }, - 'beats_translate_later': { + beats_translate_later: { group: "[".concat(type).concat(i, "]"), name: 'beats_translate_later', type: 'binary' }, - 'beatsync': { + beatsync: { group: "[".concat(type).concat(i, "]"), name: 'beatsync', type: 'binary' }, - 'beatsync_phase': { + beatsync_phase: { group: "[".concat(type).concat(i, "]"), name: 'beatsync_phase', type: 'binary' }, - 'beatsync_tempo': { + beatsync_tempo: { group: "[".concat(type).concat(i, "]"), name: 'beatsync_tempo', type: 'binary' }, - 'bpm': { + bpm: { group: "[".concat(type).concat(i, "]"), name: 'bpm', type: 'real-valued' }, - 'bpm_tap': { + bpm_tap: { group: "[".concat(type).concat(i, "]"), name: 'bpm_tap', type: 'binary' }, - 'cue_default': { + cue_default: { group: "[".concat(type).concat(i, "]"), name: 'cue_default', type: 'binary' }, - 'cue_gotoandplay': { + cue_gotoandplay: { group: "[".concat(type).concat(i, "]"), name: 'cue_gotoandplay', type: 'binary' }, - 'cue_gotoandstop': { + cue_gotoandstop: { group: "[".concat(type).concat(i, "]"), name: 'cue_gotoandstop', type: 'binary' }, - 'cue_indicator': { + cue_indicator: { group: "[".concat(type).concat(i, "]"), name: 'cue_indicator', type: 'binary' }, - 'cue_cdj': { + cue_cdj: { group: "[".concat(type).concat(i, "]"), name: 'cue_cdj', type: 'binary' }, - 'cue_play': { + cue_play: { group: "[".concat(type).concat(i, "]"), name: 'cue_play', type: 'binary' }, - 'cue_point': { + cue_point: { group: "[".concat(type).concat(i, "]"), name: 'cue_point', type: 'absolute value' }, - 'cue_preview': { + cue_preview: { group: "[".concat(type).concat(i, "]"), name: 'cue_preview', type: 'binary' }, - 'cue_set': { + cue_set: { group: "[".concat(type).concat(i, "]"), name: 'cue_set', type: 'binary' }, - 'cue_simple': { + cue_simple: { group: "[".concat(type).concat(i, "]"), name: 'cue_simple', type: 'binary' }, - 'duration': { + duration: { group: "[".concat(type).concat(i, "]"), name: 'duration', type: 'absolute value' }, - 'eject': { + eject: { group: "[".concat(type).concat(i, "]"), name: 'eject', type: 'binary' }, - 'end': { + end: { group: "[".concat(type).concat(i, "]"), name: 'end', type: 'binary' }, - 'file_bpm': { + file_bpm: { group: "[".concat(type).concat(i, "]"), name: 'file_bpm', type: 'positive value' }, - 'file_key': { + file_key: { group: "[".concat(type).concat(i, "]"), name: 'file_key', type: '?' }, - 'fwd': { + fwd: { group: "[".concat(type).concat(i, "]"), name: 'fwd', type: 'binary' }, - 'hotcues': function hotcues(x) { + hotcues: function hotcues(x) { return { - 'activate': { + activate: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_activate"), type: 'binary' }, - 'clear': { + clear: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_clear"), type: 'binary' }, - 'enabled': { + enabled: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_enabled"), type: 'read-only, binary' }, - 'goto': { + "goto": { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_goto"), type: 'binary' }, - 'gotoandplay': { + gotoandplay: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_gotoandplay"), type: 'binary' }, - 'gotoandstop': { + gotoandstop: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_gotoandstop"), type: 'binary' }, - 'position': { + position: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_position"), type: 'positive integer' }, - 'set': { + set: { group: "[".concat(type).concat(i, "]"), name: "hotcue_".concat(x, "_set"), type: 'binary' } }; }, - 'key': { + key: { group: "[".concat(type).concat(i, "]"), name: 'key', type: 'real-valued' }, - 'keylock': { + keylock: { group: "[".concat(type).concat(i, "]"), name: 'keylock', type: 'binary' }, - 'LoadSelectedTrack': { + LoadSelectedTrack: { group: "[".concat(type).concat(i, "]"), name: 'LoadSelectedTrack', type: 'binary' }, - 'LoadSelectedTrackAndPlay': { + LoadSelectedTrackAndPlay: { group: "[".concat(type).concat(i, "]"), name: 'LoadSelectedTrackAndPlay', type: 'binary' }, - 'loop_double': { + loop_double: { group: "[".concat(type).concat(i, "]"), name: 'loop_double', type: 'binary' }, - 'loop_enabled': { + loop_enabled: { group: "[".concat(type).concat(i, "]"), name: 'loop_enabled', type: 'read-only, binary' }, - 'loop_end_position': { + loop_end_position: { group: "[".concat(type).concat(i, "]"), name: 'loop_end_position', type: 'positive integer' }, - 'loop_halve': { + loop_halve: { group: "[".concat(type).concat(i, "]"), name: 'loop_halve', type: 'binary' }, - 'loop_in': { + loop_in: { group: "[".concat(type).concat(i, "]"), name: 'loop_in', type: 'binary' }, - 'loop_out': { + loop_out: { group: "[".concat(type).concat(i, "]"), name: 'loop_out', type: 'binary' }, - 'loop_move': { + loop_move: { group: "[".concat(type).concat(i, "]"), name: 'loop_move', type: 'real number' }, - 'loop_scale': { + loop_scale: { group: "[".concat(type).concat(i, "]"), name: 'loop_scale', type: '0.0 - infinity' }, - 'loop_start_position': { + loop_start_position: { group: "[".concat(type).concat(i, "]"), name: 'loop_start_position', type: 'positive integer' }, - 'orientation': { + orientation: { group: "[".concat(type).concat(i, "]"), name: 'orientation', type: '0-2' }, - 'passthrough': { + passthrough: { group: "[".concat(type).concat(i, "]"), name: 'passthrough', type: 'binary' }, - 'PeakIndicator': { + PeakIndicator: { group: "[".concat(type).concat(i, "]"), name: 'PeakIndicator', type: 'binary' }, - 'pfl': { + pfl: { group: "[".concat(type).concat(i, "]"), name: 'pfl', type: 'binary' }, - 'pitch': { + pitch: { group: "[".concat(type).concat(i, "]"), name: 'pitch', type: '-6.0..6.0' }, - 'pitch_adjust': { + pitch_adjust: { group: "[".concat(type).concat(i, "]"), name: 'pitch_adjust', type: '-3.0..3.0' }, - 'play': { + play: { group: "[".concat(type).concat(i, "]"), name: 'play', type: 'binary' }, - 'play_indicator': { + play_indicator: { group: "[".concat(type).concat(i, "]"), name: 'play_indicator', type: 'binary' }, - 'play_stutter': { + play_stutter: { group: "[".concat(type).concat(i, "]"), name: 'play_stutter', type: 'binary' }, - 'playposition': { + playposition: { group: "[".concat(type).concat(i, "]"), name: 'playposition', type: 'default' }, - 'pregain': { + pregain: { group: "[".concat(type).concat(i, "]"), name: 'pregain', type: '0.0..1.0..4.0' }, - 'quantize': { + quantize: { group: "[".concat(type).concat(i, "]"), name: 'quantize', type: 'binary' }, - 'rate': { + rate: { group: "[".concat(type).concat(i, "]"), name: 'rate', type: '-1.0..1.0' }, - 'rate_dir': { + rate_dir: { group: "[".concat(type).concat(i, "]"), name: 'rate_dir', type: '-1 or 1' }, - 'rate_perm_down': { + rate_perm_down: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_down', type: 'binary' }, - 'rate_perm_down_small': { + rate_perm_down_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_down_small', type: 'binary' }, - 'rate_perm_up': { + rate_perm_up: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_up', type: 'binary' }, - 'rate_perm_up_small': { + rate_perm_up_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_perm_up_small', type: 'binary' }, - 'rate_temp_down': { + rate_temp_down: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_down', type: 'binary' }, - 'rate_temp_down_small': { + rate_temp_down_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_down_small', type: 'binary' }, - 'rate_temp_up': { + rate_temp_up: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_up', type: 'binary' }, - 'rate_temp_up_small': { + rate_temp_up_small: { group: "[".concat(type).concat(i, "]"), name: 'rate_temp_up_small', type: 'binary' }, - 'rateRange': { + rateRange: { group: "[".concat(type).concat(i, "]"), name: 'rateRange', type: '0.0..3.0' }, - 'reloop_exit': { + reloop_andstop: { + group: "[".concat(type).concat(i, "]"), + name: 'reloop_andstop', + type: 'binary' + }, + reloop_exit: { group: "[".concat(type).concat(i, "]"), name: 'reloop_exit', type: 'binary' }, - 'repeat': { + repeat: { group: "[".concat(type).concat(i, "]"), name: 'repeat', type: 'binary' }, - 'reset_key': { + reset_key: { group: "[".concat(type).concat(i, "]"), name: 'reset_key', type: 'binary' }, - 'reverse': { + reverse: { group: "[".concat(type).concat(i, "]"), name: 'reverse', type: 'binary' }, - 'reverseroll': { + reverseroll: { group: "[".concat(type).concat(i, "]"), name: 'reverseroll', type: 'binary' }, - 'slip_enabled': { + slip_enabled: { group: "[".concat(type).concat(i, "]"), name: 'slip_enabled', type: 'binary' }, - 'start': { + start: { group: "[".concat(type).concat(i, "]"), name: 'start', type: 'binary' }, - 'start_play': { + start_play: { group: "[".concat(type).concat(i, "]"), name: 'start_play', type: 'binary' }, - 'start_stop': { + start_stop: { group: "[".concat(type).concat(i, "]"), name: 'start_stop', type: 'binary' }, - 'stop': { + stop: { group: "[".concat(type).concat(i, "]"), name: 'stop', type: 'binary' }, - 'sync_enabled': { + sync_enabled: { group: "[".concat(type).concat(i, "]"), name: 'sync_enabled', type: 'binary' }, - 'sync_master': { + sync_master: { group: "[".concat(type).concat(i, "]"), name: 'sync_master', type: 'binary' }, - 'sync_mode': { + sync_mode: { group: "[".concat(type).concat(i, "]"), name: 'sync_mode', type: 'binary' }, - 'sync_key': { + sync_key: { group: "[".concat(type).concat(i, "]"), name: 'sync_key', type: '?' }, - 'track_samplerate': { + track_samplerate: { group: "[".concat(type).concat(i, "]"), name: 'track_samplerate', type: 'absolute value' }, - 'track_samples': { + track_samples: { group: "[".concat(type).concat(i, "]"), name: 'track_samples', type: 'absolute value' }, - 'volume': { + volume: { group: "[".concat(type).concat(i, "]"), name: 'volume', type: 'default' }, - 'mute': { + mute: { group: "[".concat(type).concat(i, "]"), name: 'mute', type: 'binary' }, - 'vinylcontrol_enabled': { + vinylcontrol_enabled: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_enabled', type: 'binary' }, - 'vinylcontrol_cueing': { + vinylcontrol_cueing: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_cueing', type: '0.0-2.0' }, - 'vinylcontrol_mode': { + vinylcontrol_mode: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_mode', type: '0.0-2.0' }, - 'vinylcontrol_status': { + vinylcontrol_status: { group: "[".concat(type).concat(i, "]"), name: 'vinylcontrol_status', type: '0.0-3.0 (read-only)' }, - 'visual_bpm': { + visual_bpm: { group: "[".concat(type).concat(i, "]"), name: 'visual_bpm', type: '?' }, - 'visual_key': { + visual_key: { group: "[".concat(type).concat(i, "]"), name: 'visual_key', type: '?' }, - 'visual_key_distance': { + visual_key_distance: { group: "[".concat(type).concat(i, "]"), name: 'visual_key_distance', type: '-0.5..0.5' }, - 'VuMeter': { + VuMeter: { group: "[".concat(type).concat(i, "]"), name: 'VuMeter', type: 'default' }, - 'VuMeterL': { + VuMeterL: { group: "[".concat(type).concat(i, "]"), name: 'VuMeterL', type: 'default' }, - 'VuMeterR': { + VuMeterR: { group: "[".concat(type).concat(i, "]"), name: 'VuMeterR', type: 'default' }, - 'waveform_zoom': { + waveform_zoom: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom', type: '1.0 - 6.0' }, - 'waveform_zoom_up': { + waveform_zoom_up: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_up', type: '?' }, - 'waveform_zoom_down': { + waveform_zoom_down: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_down', type: '?' }, - 'waveform_zoom_set_default': { + waveform_zoom_set_default: { group: "[".concat(type).concat(i, "]"), name: 'waveform_zoom_set_default', type: '?' }, - 'wheel': { + wheel: { group: "[".concat(type).concat(i, "]"), name: 'wheel', type: '-3.0..3.0' @@ -2260,9 +2322,9 @@ var NovationLaunchpad = (function () { return array.reduce(function (arr, i) { var def = one(i); var control = Object.keys(def).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(def[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(def[key]))); }, {}); - return assign(arr, _defineProperty({}, i, control)); + return assign(arr, _defineProperty$1({}, i, control)); }, {}); }; @@ -2276,12 +2338,12 @@ var NovationLaunchpad = (function () { var channel = Object.keys(channelDefInstance).filter(function (key) { return key !== 'beatjumps' && key !== 'beatloops' && key !== 'hotcues'; }).reduce(function (obj, key) { - return assign(obj, _defineProperty({}, key, new Control(channelDefInstance[key]))); + return assign(obj, _defineProperty$1({}, key, new Control(channelDefInstance[key]))); }, {}); return assign(channel, { - 'beatjumps': createEnumeratedControl(beatjumps, channelDefInstance.beatjumps), - 'beatloops': createEnumeratedControl(beatloops, channelDefInstance.beatloops), - 'hotcues': createEnumeratedControl(range(16).map(function (x) { + beatjumps: createEnumeratedControl(beatjumps, channelDefInstance.beatjumps), + beatloops: createEnumeratedControl(beatloops, channelDefInstance.beatloops), + hotcues: createEnumeratedControl(range(16).map(function (x) { return x + 1; }), channelDefInstance.hotcues) }); @@ -2296,10 +2358,8 @@ var NovationLaunchpad = (function () { return name.replace('.', '$dot$').replace('[', '$sbs$').replace(']', '$sbe$'); }; - var ControlBus = - /*#__PURE__*/ - function () { - _createClass(ControlBus, null, [{ + var ControlBus = /*#__PURE__*/function () { + _createClass$1(ControlBus, null, [{ key: "create", value: function create(moduleName, registry) { return new ControlBus(moduleName, registry); @@ -2307,20 +2367,20 @@ var NovationLaunchpad = (function () { }]); function ControlBus(registryName, registry) { - _classCallCheck(this, ControlBus); + _classCallCheck$1(this, ControlBus); - _defineProperty(this, "_registryName", void 0); + _defineProperty$1(this, "_registryName", void 0); - _defineProperty(this, "_registry", void 0); + _defineProperty$1(this, "_registry", void 0); - _defineProperty(this, "_callbackList", void 0); + _defineProperty$1(this, "_callbackList", void 0); this._registryName = registryName; this._registry = registry; this._callbackList = {}; } - _createClass(ControlBus, [{ + _createClass$1(ControlBus, [{ key: "connect", value: function connect(id, control, cb) { var _this = this; @@ -2382,19 +2442,17 @@ var NovationLaunchpad = (function () { }(); var timerPrefix = '__timer'; - var Timer = - /*#__PURE__*/ - function () { + var Timer = /*#__PURE__*/function () { function Timer(registryName, registry, task) { - _classCallCheck(this, Timer); + _classCallCheck$1(this, Timer); - _defineProperty(this, "task", void 0); + _defineProperty$1(this, "task", void 0); - _defineProperty(this, "_state", void 0); + _defineProperty$1(this, "_state", void 0); - _defineProperty(this, "_registryName", void 0); + _defineProperty$1(this, "_registryName", void 0); - _defineProperty(this, "_registry", void 0); + _defineProperty$1(this, "_registry", void 0); this._registryName = registryName; this._registry = registry; @@ -2402,7 +2460,7 @@ var NovationLaunchpad = (function () { this._state = undefined; } - _createClass(Timer, [{ + _createClass$1(Timer, [{ key: "start", value: function start(interval) { if (this._state == null) { @@ -2452,31 +2510,6 @@ var NovationLaunchpad = (function () { }; }; - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - - /** Used to convert symbols to primitives and strings. */ - - var symbolProto = _Symbol ? _Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } @@ -2859,6 +2892,9 @@ var NovationLaunchpad = (function () { } }); + function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var callbackPrefix$1 = '__midi'; var leftPad = function leftPad(str, padString, length) { @@ -2875,12 +2911,12 @@ var NovationLaunchpad = (function () { return '0x' + leftPad(n.toString(16).toUpperCase(), '0', d); }; - var MidiBus = - /*#__PURE__*/ - function (_EventEmitter) { + var MidiBus = /*#__PURE__*/function (_EventEmitter) { _inherits(MidiBus, _EventEmitter); - _createClass(MidiBus, null, [{ + var _super = _createSuper(MidiBus); + + _createClass$1(MidiBus, null, [{ key: "create", value: function create(registry, device) { return new MidiBus(registry, device); @@ -2890,13 +2926,13 @@ var NovationLaunchpad = (function () { function MidiBus(registry, device) { var _this; - _classCallCheck(this, MidiBus); + _classCallCheck$1(this, MidiBus); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiBus).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "registry", void 0); + _defineProperty$1(_assertThisInitialized(_this), "registry", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); _this.registry = registry; _this.device = device; @@ -2949,28 +2985,32 @@ var NovationLaunchpad = (function () { return _get(target, property, receiver || target); } - var Component = - /*#__PURE__*/ - function (_EventEmitter) { + function _createSuper$1(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$1()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Component = /*#__PURE__*/function (_EventEmitter) { _inherits(Component, _EventEmitter); + var _super = _createSuper$1(Component); + function Component() { - _classCallCheck(this, Component); + _classCallCheck$1(this, Component); - return _possibleConstructorReturn(this, _getPrototypeOf(Component).apply(this, arguments)); + return _super.apply(this, arguments); } - _createClass(Component, [{ + _createClass$1(Component, [{ key: "mount", value: function mount() { this.onMount(); - this.emit("mount", this); + this.emit('mount', this); } }, { key: "unmount", value: function unmount() { this.onUnmount(); - this.emit("unmount", this); + this.emit('unmount', this); } }, { key: "onMount", @@ -2983,28 +3023,32 @@ var NovationLaunchpad = (function () { return Component; }(eventemitter3); - var MidiComponent = - /*#__PURE__*/ - function (_Component) { + function _createSuper$2(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$2()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var MidiComponent = /*#__PURE__*/function (_Component) { _inherits(MidiComponent, _Component); + var _super = _createSuper$2(MidiComponent); + function MidiComponent(midibus) { var _this; - _classCallCheck(this, MidiComponent); + _classCallCheck$1(this, MidiComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiComponent).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "midibus", void 0); + _defineProperty$1(_assertThisInitialized(_this), "midibus", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); _this.midibus = midibus; _this.device = midibus.device; return _this; } - _createClass(MidiComponent, [{ + _createClass$1(MidiComponent, [{ key: "onMount", value: function onMount() { _get(_getPrototypeOf(MidiComponent.prototype), "onMount", this).call(this); @@ -3019,21 +3063,25 @@ var NovationLaunchpad = (function () { return MidiComponent; }(Component); - var MidiButtonComponent = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$3(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$3()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var MidiButtonComponent = /*#__PURE__*/function (_MidiComponent) { _inherits(MidiButtonComponent, _MidiComponent); + var _super = _createSuper$3(MidiButtonComponent); + function MidiButtonComponent(midibus, button) { var _this; - _classCallCheck(this, MidiButtonComponent); + _classCallCheck$1(this, MidiButtonComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MidiButtonComponent).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "button", void 0); + _defineProperty$1(_assertThisInitialized(_this), "button", void 0); - _defineProperty(_assertThisInitialized(_this), "_cb", void 0); + _defineProperty$1(_assertThisInitialized(_this), "_cb", void 0); _this.midibus = midibus; _this.button = button; @@ -3052,7 +3100,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(MidiButtonComponent, [{ + _createClass$1(MidiButtonComponent, [{ key: "onMount", value: function onMount() { _get(_getPrototypeOf(MidiButtonComponent.prototype), "onMount", this).call(this); @@ -3071,6 +3119,10 @@ var NovationLaunchpad = (function () { return MidiButtonComponent; }(MidiComponent); + function _createSuper$4(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$4()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$4() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + var autoscrolled = function autoscrolled(binding) { return function (timerBuilder) { var started; @@ -3145,19 +3197,19 @@ var NovationLaunchpad = (function () { button.sendColor(device.colors.black); }; - var PlaylistSidebar = - /*#__PURE__*/ - function (_MidiComponent) { + var PlaylistSidebar = /*#__PURE__*/function (_MidiComponent) { _inherits(PlaylistSidebar, _MidiComponent); + var _super = _createSuper$4(PlaylistSidebar); + function PlaylistSidebar(midibus, timerBuilder) { var _this; - _classCallCheck(this, PlaylistSidebar); + _classCallCheck$1(this, PlaylistSidebar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(PlaylistSidebar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "buttons", void 0); + _defineProperty$1(_assertThisInitialized(_this), "buttons", void 0); var btns = [new MidiButtonComponent(midibus, _this.device.buttons.vol), new MidiButtonComponent(midibus, _this.device.buttons.pan), new MidiButtonComponent(midibus, _this.device.buttons.snda), new MidiButtonComponent(midibus, _this.device.buttons.sndb), new MidiButtonComponent(midibus, _this.device.buttons.stop)]; var prevPlaylist = autoscrolled(btns[0])(timerBuilder); @@ -3188,7 +3240,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(PlaylistSidebar, [{ + _createClass$1(PlaylistSidebar, [{ key: "onMount", value: function onMount() { this.buttons.forEach(function (button) { @@ -3207,25 +3259,29 @@ var NovationLaunchpad = (function () { return PlaylistSidebar; }(MidiComponent); - var ModifierSidebar = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$5(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$5()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var ModifierSidebar = /*#__PURE__*/function (_MidiComponent) { _inherits(ModifierSidebar, _MidiComponent); + var _super = _createSuper$5(ModifierSidebar); + function ModifierSidebar(midibus) { var _this; - _classCallCheck(this, ModifierSidebar); + _classCallCheck$1(this, ModifierSidebar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(ModifierSidebar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "shift", void 0); + _defineProperty$1(_assertThisInitialized(_this), "shift", void 0); - _defineProperty(_assertThisInitialized(_this), "ctrl", void 0); + _defineProperty$1(_assertThisInitialized(_this), "ctrl", void 0); - _defineProperty(_assertThisInitialized(_this), "state", void 0); + _defineProperty$1(_assertThisInitialized(_this), "state", void 0); - _defineProperty(_assertThisInitialized(_this), "listener", void 0); + _defineProperty$1(_assertThisInitialized(_this), "listener", void 0); _this.shift = new MidiButtonComponent(_this.midibus, _this.device.buttons.solo); _this.ctrl = new MidiButtonComponent(_this.midibus, _this.device.buttons.arm); @@ -3259,7 +3315,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(ModifierSidebar, [{ + _createClass$1(ModifierSidebar, [{ key: "onMount", value: function onMount() { this.shift.mount(); @@ -3314,25 +3370,19 @@ var NovationLaunchpad = (function () { }; function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } /** Detect free variable `global` from Node.js. */ @@ -3379,11 +3429,12 @@ var NovationLaunchpad = (function () { try { value[symToStringTag$2] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString$2.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag$2] = tag; } else { @@ -4341,6 +4392,14 @@ var NovationLaunchpad = (function () { var nodeUtil$1 = function () { try { + // Use `util.types` for Node.js 10+. + var types = freeModule$3 && freeModule$3.require && freeModule$3.require('util').types; + + if (types) { + return types; + } // Legacy `process.binding('util')` for Node.js < 10. + + return freeProcess$1 && freeProcess$1.binding && freeProcess$1.binding('util'); } catch (e) {} }(); @@ -5312,8 +5371,8 @@ var NovationLaunchpad = (function () { dataViewTag$2 = '[object DataView]'; /** Used to convert symbols to primitives and strings. */ - var symbolProto$1 = _Symbol$1 ? _Symbol$1.prototype : undefined, - symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + var symbolProto = _Symbol$1 ? _Symbol$1.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. @@ -6108,7 +6167,7 @@ var NovationLaunchpad = (function () { * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ - function arrayMap$1(array, iteratee) { + function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); @@ -6122,11 +6181,11 @@ var NovationLaunchpad = (function () { /** Used as references for various `Number` constants. */ - var INFINITY$2 = 1 / 0; + var INFINITY$1 = 1 / 0; /** Used to convert symbols to primitives and strings. */ - var symbolProto$2 = _Symbol$1 ? _Symbol$1.prototype : undefined, - symbolToString$1 = symbolProto$2 ? symbolProto$2.toString : undefined; + var symbolProto$1 = _Symbol$1 ? _Symbol$1.prototype : undefined, + symbolToString = symbolProto$1 ? symbolProto$1.toString : undefined; /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. @@ -6136,7 +6195,7 @@ var NovationLaunchpad = (function () { * @returns {string} Returns the string. */ - function baseToString$1(value) { + function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; @@ -6144,15 +6203,15 @@ var NovationLaunchpad = (function () { if (isArray$1(value)) { // Recursively convert values (susceptible to call stack limits). - return arrayMap$1(value, baseToString$1) + ''; + return arrayMap(value, baseToString) + ''; } if (isSymbol$1(value)) { - return symbolToString$1 ? symbolToString$1.call(value) : ''; + return symbolToString ? symbolToString.call(value) : ''; } var result = value + ''; - return result == '0' && 1 / value == -INFINITY$2 ? '-0' : result; + return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; } /** @@ -6177,8 +6236,8 @@ var NovationLaunchpad = (function () { * // => '1,2,3' */ - function toString$1(value) { - return value == null ? '' : baseToString$1(value); + function toString(value) { + return value == null ? '' : baseToString(value); } /** @@ -6195,12 +6254,12 @@ var NovationLaunchpad = (function () { return value; } - return isKey(value, object) ? [value] : stringToPath(toString$1(value)); + return isKey(value, object) ? [value] : stringToPath(toString(value)); } /** Used as references for various `Number` constants. */ - var INFINITY$3 = 1 / 0; + var INFINITY$2 = 1 / 0; /** * Converts `value` to a string key if it's not a string or symbol. * @@ -6215,7 +6274,7 @@ var NovationLaunchpad = (function () { } var result = value + ''; - return result == '0' && 1 / value == -INFINITY$3 ? '-0' : result; + return result == '0' && 1 / value == -INFINITY$2 ? '-0' : result; } /** @@ -6518,7 +6577,7 @@ var NovationLaunchpad = (function () { /** Used as references for various `Number` constants. */ - var INFINITY$4 = 1 / 0, + var INFINITY$3 = 1 / 0, MAX_INTEGER$1 = 1.7976931348623157e+308; /** * Converts `value` to a finite number. @@ -6551,7 +6610,7 @@ var NovationLaunchpad = (function () { value = toNumber$1(value); - if (value === INFINITY$4 || value === -INFINITY$4) { + if (value === INFINITY$3 || value === -INFINITY$3) { var sign = value < 0 ? -1 : 1; return sign * MAX_INTEGER$1; } @@ -6586,7 +6645,7 @@ var NovationLaunchpad = (function () { * // => 3 */ - function toInteger$1(value) { + function toInteger(value) { var result = toFinite$1(value), remainder = result % 1; return result === result ? remainder ? result - remainder : result : 0; @@ -6638,13 +6697,13 @@ var NovationLaunchpad = (function () { return -1; } - var index = fromIndex == null ? 0 : toInteger$1(fromIndex); + var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax$3(length + index, 0); } - return baseFindIndex(array, baseIteratee(predicate, 3), index); + return baseFindIndex(array, baseIteratee(predicate), index); } var play = (function (gridPosition) { @@ -6898,23 +6957,27 @@ var NovationLaunchpad = (function () { }; }); - var Bpm = - /*#__PURE__*/ - function (_EventEmitter) { + function _createSuper$6(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$6()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Bpm = /*#__PURE__*/function (_EventEmitter) { _inherits(Bpm, _EventEmitter); + var _super = _createSuper$6(Bpm); + function Bpm(max) { var _this; - _classCallCheck(this, Bpm); + _classCallCheck$1(this, Bpm); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Bpm).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "tapTime", void 0); + _defineProperty$1(_assertThisInitialized(_this), "tapTime", void 0); - _defineProperty(_assertThisInitialized(_this), "taps", void 0); + _defineProperty$1(_assertThisInitialized(_this), "taps", void 0); - _defineProperty(_assertThisInitialized(_this), "max", void 0); + _defineProperty$1(_assertThisInitialized(_this), "max", void 0); if (max == null) { max = 8; @@ -6926,7 +6989,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(Bpm, [{ + _createClass$1(Bpm, [{ key: "reset", value: function reset() { this.taps = []; @@ -6974,7 +7037,9 @@ var NovationLaunchpad = (function () { attack: function attack() { modes(modifier.getState(), function () { tempoBpm.tap(); - }, undefined, function () { + }, function () { + deck.bpm_tap.setValue(1); + }, function () { deck.beats_translate_curpos.setValue(1); }, function () { deck.beats_translate_match_alignment.setValue(1); @@ -7688,8 +7753,8 @@ var NovationLaunchpad = (function () { */ function map(collection, iteratee) { - var func = isArray$1(collection) ? arrayMap$1 : baseMap; - return func(collection, baseIteratee(iteratee, 3)); + var func = isArray$1(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee)); } /** @@ -7804,8 +7869,7 @@ var NovationLaunchpad = (function () { var spec = flatMap(jumps, function (j, i) { return [[j, -1], [j, 1]]; - }); // FIXME: flatMap is incorrectly typed see https://github.com/flow-typed/flow-typed/issues/2463 - + }); spec.forEach(function (_ref4, i) { var _ref5 = _slicedToArray(_ref4, 2), jump = _ref5[0], @@ -8069,7 +8133,7 @@ var NovationLaunchpad = (function () { mount: onMount('halve'), attack: onAttack('halve') }, - double: { + "double": { type: 'button', target: [gridPosition[0] + 1, gridPosition[1]], mount: onMount('double'), @@ -8094,6 +8158,8 @@ var NovationLaunchpad = (function () { attack: function attack() { modes(modifier.getState(), function () { return deck.reloop_exit.setValue(1); + }, function () { + return deck.reloop_andstop.setValue(1); }); } }, @@ -8118,23 +8184,39 @@ var NovationLaunchpad = (function () { }; }); + var SMALL_SAMPLES = 125; var loopIo = (function (gridPosition) { return function (deck) { return function (modifier) { return function (device) { + var loopName = { + "in": 'loop_in', + out: 'loop_out' + }; + var loopPosName = { + "in": 'loop_start_position', + out: 'loop_end_position' + }; + var onMidi = function onMidi(dir) { return function (_ref, _ref2) { var value = _ref.value; var bindings = _ref2.bindings; modes(modifier.getState(), function () { if (value) { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck["loop_".concat(dir)].setValue(1); - bindings[dir].button.sendColor(device.colors.hi_green); - } else { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck["loop_".concat(dir)].setValue(0); - bindings[dir].button.sendColor(device.colors.black); + var ctrl = loopName[dir]; + deck[ctrl].setValue(1); + deck[ctrl].setValue(0); + } + }, function () { + if (value) { + var ctrl = loopPosName[dir]; + deck[ctrl].setValue(deck[ctrl].getValue() - SMALL_SAMPLES); + } + }, function () { + if (value) { + var ctrl = loopPosName[dir]; + deck[ctrl].setValue(deck[ctrl].getValue() + SMALL_SAMPLES); } }); }; @@ -8299,6 +8381,9 @@ var NovationLaunchpad = (function () { beatjump: beatjump([[1, 16], [2, 32]])([0, 6]) }; + function _createSuper$7(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$7()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var makePresetFromPartialTemplate = function makePresetFromPartialTemplate(id, partialTemplate, offset) { return function (deck) { return function (controlComponentBuilder) { @@ -8306,7 +8391,7 @@ var NovationLaunchpad = (function () { return function (modifier) { var template = {}; Object.keys(partialTemplate).forEach(function (k) { - assign$1(template, _defineProperty({}, k, partialTemplate[k](deck)(modifier)(midibus.device))); + assign$1(template, _defineProperty$1({}, k, partialTemplate[k](deck)(modifier)(midibus.device))); }); return new Preset(midibus, controlComponentBuilder, modifier, id, template, offset); }; @@ -8314,19 +8399,19 @@ var NovationLaunchpad = (function () { }; }; }; - var Preset = - /*#__PURE__*/ - function (_MidiComponent) { + var Preset = /*#__PURE__*/function (_MidiComponent) { _inherits(Preset, _MidiComponent); + var _super = _createSuper$7(Preset); + function Preset(midibus, controlComponentBuilder, modifier, id, template, offset) { var _this; - _classCallCheck(this, Preset); + _classCallCheck$1(this, Preset); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Preset).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "preset", void 0); + _defineProperty$1(_assertThisInitialized(_this), "preset", void 0); var controlBindings = {}; var controlListeners = {}; @@ -8378,7 +8463,7 @@ var NovationLaunchpad = (function () { } }); - if (typeof binding['unmount'] !== 'function') { + if (typeof binding.unmount !== 'function') { appendListener('unmount', buttonListeners[_name], function (data) { instance.bindings[bk].button.sendColor(this.device.colors.black); }); @@ -8397,7 +8482,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(Preset, [{ + _createClass$1(Preset, [{ key: "onMount", value: function onMount() { var _this$preset = this.preset, @@ -8487,6 +8572,9 @@ var NovationLaunchpad = (function () { }); }; + function _createSuper$8(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$8()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$8() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var initialChannels = [0, 1]; var onMidi$1 = function onMidi(selectorBar, channel, modifier) { @@ -8517,31 +8605,31 @@ var NovationLaunchpad = (function () { }); }; - var SelectorBar = - /*#__PURE__*/ - function (_MidiComponent) { + var SelectorBar = /*#__PURE__*/function (_MidiComponent) { _inherits(SelectorBar, _MidiComponent); + var _super = _createSuper$8(SelectorBar); + function SelectorBar(midibus, controlComponentBuilder, modifier, id) { var _this; - _classCallCheck(this, SelectorBar); + _classCallCheck$1(this, SelectorBar); - _this = _possibleConstructorReturn(this, _getPrototypeOf(SelectorBar).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "id", void 0); + _defineProperty$1(_assertThisInitialized(_this), "id", void 0); - _defineProperty(_assertThisInitialized(_this), "bindings", void 0); + _defineProperty$1(_assertThisInitialized(_this), "bindings", void 0); - _defineProperty(_assertThisInitialized(_this), "controlComponentBuilder", void 0); + _defineProperty$1(_assertThisInitialized(_this), "controlComponentBuilder", void 0); - _defineProperty(_assertThisInitialized(_this), "modifier", void 0); + _defineProperty$1(_assertThisInitialized(_this), "modifier", void 0); - _defineProperty(_assertThisInitialized(_this), "chord", void 0); + _defineProperty$1(_assertThisInitialized(_this), "chord", void 0); - _defineProperty(_assertThisInitialized(_this), "layout", void 0); + _defineProperty$1(_assertThisInitialized(_this), "layout", void 0); - _defineProperty(_assertThisInitialized(_this), "mountedPresets", void 0); + _defineProperty$1(_assertThisInitialized(_this), "mountedPresets", void 0); _this.id = id; _this.bindings = SelectorBar.buttons.map(function (v, i) { @@ -8556,7 +8644,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(SelectorBar, [{ + _createClass$1(SelectorBar, [{ key: "getLayout", value: function getLayout() { var res = []; @@ -8682,29 +8770,29 @@ var NovationLaunchpad = (function () { return SelectorBar; }(MidiComponent); - _defineProperty(SelectorBar, "buttons", ['up', 'down', 'left', 'right', 'session', 'user1', 'user2', 'mixer']); + _defineProperty$1(SelectorBar, "buttons", ['up', 'down', 'left', 'right', 'session', 'user1', 'user2', 'mixer']); - _defineProperty(SelectorBar, "channels", [0, 1, 2, 3, 4, 5, 6, 7]); + _defineProperty$1(SelectorBar, "channels", [0, 1, 2, 3, 4, 5, 6, 7]); - var Layout = - /*#__PURE__*/ - function (_MidiComponent2) { + var Layout = /*#__PURE__*/function (_MidiComponent2) { _inherits(Layout, _MidiComponent2); + var _super2 = _createSuper$8(Layout); + function Layout(midibus, controlComponentBuilder, modifier, id) { var _this4; - _classCallCheck(this, Layout); + _classCallCheck$1(this, Layout); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(Layout).call(this, midibus)); + _this4 = _super2.call(this, midibus); - _defineProperty(_assertThisInitialized(_this4), "selectorBar", void 0); + _defineProperty$1(_assertThisInitialized(_this4), "selectorBar", void 0); _this4.selectorBar = new SelectorBar(midibus, controlComponentBuilder, modifier, "".concat(id, ".selectorBar")); return _this4; } - _createClass(Layout, [{ + _createClass$1(Layout, [{ key: "onMount", value: function onMount() { this.selectorBar.mount(); @@ -8726,12 +8814,12 @@ var NovationLaunchpad = (function () { var presets = { grande: [Grande], tall: [Tall, Juggler], - short: [Short, Sampler] + "short": [Short, Sampler] }; var cycled = { - 'grande': [].concat(_toConsumableArray(presets.grande), _toConsumableArray(presets.tall), _toConsumableArray(presets.short)), - 'tall': [].concat(_toConsumableArray(presets.tall), _toConsumableArray(presets.short)), - 'short': presets.short + grande: [].concat(_toConsumableArray(presets.grande), _toConsumableArray(presets.tall), _toConsumableArray(presets["short"])), + tall: [].concat(_toConsumableArray(presets.tall), _toConsumableArray(presets["short"])), + "short": presets["short"] }; var blockEquals = function blockEquals(a, b) { @@ -8844,23 +8932,27 @@ var NovationLaunchpad = (function () { })]]; }; - var Screen = - /*#__PURE__*/ - function (_MidiComponent) { + function _createSuper$9(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$9()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$9() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + + var Screen = /*#__PURE__*/function (_MidiComponent) { _inherits(Screen, _MidiComponent); + var _super = _createSuper$9(Screen); + function Screen(midibus, timerBuilder, controlComponentBuilder, id) { var _this; - _classCallCheck(this, Screen); + _classCallCheck$1(this, Screen); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Screen).call(this, midibus)); + _this = _super.call(this, midibus); - _defineProperty(_assertThisInitialized(_this), "modifier", void 0); + _defineProperty$1(_assertThisInitialized(_this), "modifier", void 0); - _defineProperty(_assertThisInitialized(_this), "playListSidebar", void 0); + _defineProperty$1(_assertThisInitialized(_this), "playListSidebar", void 0); - _defineProperty(_assertThisInitialized(_this), "layout", void 0); + _defineProperty$1(_assertThisInitialized(_this), "layout", void 0); _this.modifier = new ModifierSidebar(midibus); _this.playListSidebar = new PlaylistSidebar(midibus, timerBuilder); @@ -8868,7 +8960,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(Screen, [{ + _createClass$1(Screen, [{ key: "onMount", value: function onMount() { this.modifier.mount(); @@ -8887,6 +8979,9 @@ var NovationLaunchpad = (function () { return Screen; }(MidiComponent); + function _createSuper$a(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$a()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } var makeControlComponent = function makeControlComponent(controlBus) { return function (id) { return function (control) { @@ -8895,27 +8990,27 @@ var NovationLaunchpad = (function () { }; }; - var ControlComponent = - /*#__PURE__*/ - function (_Component) { + var ControlComponent = /*#__PURE__*/function (_Component) { _inherits(ControlComponent, _Component); + var _super = _createSuper$a(ControlComponent); + function ControlComponent(controlBus, id, control) { var _this; - _classCallCheck(this, ControlComponent); + _classCallCheck$1(this, ControlComponent); - _this = _possibleConstructorReturn(this, _getPrototypeOf(ControlComponent).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "value", void 0); + _defineProperty$1(_assertThisInitialized(_this), "value", void 0); - _defineProperty(_assertThisInitialized(_this), "id", void 0); + _defineProperty$1(_assertThisInitialized(_this), "id", void 0); - _defineProperty(_assertThisInitialized(_this), "controlBus", void 0); + _defineProperty$1(_assertThisInitialized(_this), "controlBus", void 0); - _defineProperty(_assertThisInitialized(_this), "control", void 0); + _defineProperty$1(_assertThisInitialized(_this), "control", void 0); - _defineProperty(_assertThisInitialized(_this), "_handle", void 0); + _defineProperty$1(_assertThisInitialized(_this), "_handle", void 0); _this.value = null; _this.id = id; @@ -8925,7 +9020,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(ControlComponent, [{ + _createClass$1(ControlComponent, [{ key: "onMount", value: function onMount() { var _this2 = this; @@ -8973,18 +9068,19 @@ var NovationLaunchpad = (function () { return ControlComponent; }(Component); - var LaunchpadMidiButton = - /*#__PURE__*/ - function () { + function _createSuper$b(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$b()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + + function _isNativeReflectConstruct$b() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + var LaunchpadMidiButton = /*#__PURE__*/function () { function LaunchpadMidiButton(def) { - _classCallCheck(this, LaunchpadMidiButton); + _classCallCheck$1(this, LaunchpadMidiButton); - _defineProperty(this, "def", void 0); + _defineProperty$1(this, "def", void 0); this.def = def; } - _createClass(LaunchpadMidiButton, [{ + _createClass$1(LaunchpadMidiButton, [{ key: "sendColor", value: function sendColor(value) { midi_1.sendShortMsg(this.def.status, this.def.midino, value); @@ -8994,27 +9090,27 @@ var NovationLaunchpad = (function () { return LaunchpadMidiButton; }(); - var Global = - /*#__PURE__*/ - function (_Component) { + var Global = /*#__PURE__*/function (_Component) { _inherits(Global, _Component); + var _super = _createSuper$b(Global); + function Global(name, device) { var _this; - _classCallCheck(this, Global); + _classCallCheck$1(this, Global); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Global).call(this)); + _this = _super.call(this); - _defineProperty(_assertThisInitialized(_this), "screen", void 0); + _defineProperty$1(_assertThisInitialized(_this), "screen", void 0); - _defineProperty(_assertThisInitialized(_this), "device", void 0); + _defineProperty$1(_assertThisInitialized(_this), "device", void 0); - _defineProperty(_assertThisInitialized(_this), "name", void 0); + _defineProperty$1(_assertThisInitialized(_this), "name", void 0); - _defineProperty(_assertThisInitialized(_this), "init", void 0); + _defineProperty$1(_assertThisInitialized(_this), "init", void 0); - _defineProperty(_assertThisInitialized(_this), "shutdown", void 0); + _defineProperty$1(_assertThisInitialized(_this), "shutdown", void 0); _this.name = name; _this.device = device; @@ -9034,7 +9130,7 @@ var NovationLaunchpad = (function () { return _this; } - _createClass(Global, [{ + _createClass$1(Global, [{ key: "onMount", value: function onMount() { this.device.init(); @@ -9055,12 +9151,28 @@ var NovationLaunchpad = (function () { return new Global(name, device); } + function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + + function _typeof$1(obj) { + if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + _typeof$1 = function _typeof(obj) { + return _typeof2(obj); + }; + } else { + _typeof$1 = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + } + + return _typeof$1(obj); + } + /** Detect free variable `global` from Node.js. */ - var freeGlobal$2 = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global && global.Object === Object && global; + var freeGlobal$2 = (typeof global === "undefined" ? "undefined" : _typeof$1(global)) == 'object' && global && global.Object === Object && global; /** Detect free variable `self`. */ - var freeSelf$2 = (typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self && self.Object === Object && self; + var freeSelf$2 = (typeof self === "undefined" ? "undefined" : _typeof$1(self)) == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root$2 = freeGlobal$2 || freeSelf$2 || Function('return this')(); @@ -9099,11 +9211,12 @@ var NovationLaunchpad = (function () { try { value[symToStringTag$4] = undefined; + var unmasked = true; } catch (e) {} var result = nativeObjectToString$4.call(value); - { + if (unmasked) { if (isOwn) { value[symToStringTag$4] = tag; } else { @@ -9184,7 +9297,7 @@ var NovationLaunchpad = (function () { * // => false */ function isObject$2(value) { - var type = _typeof(value); + var type = _typeof$1(value); return value != null && (type == 'object' || type == 'function'); } @@ -9733,7 +9846,7 @@ var NovationLaunchpad = (function () { */ function isIndex$2(value, length) { - var type = _typeof(value); + var type = _typeof$1(value); length = length == null ? MAX_SAFE_INTEGER$5 : length; return !!length && (type == 'number' || type != 'symbol' && reIsUint$2.test(value)) && value > -1 && value % 1 == 0 && value < length; @@ -9755,7 +9868,7 @@ var NovationLaunchpad = (function () { return false; } - var type = _typeof(index); + var type = _typeof$1(index); if (type == 'number' ? isArrayLike$2(object) && isIndex$2(index, object.length) : type == 'string' && index in object) { return eq$2(object[index], value); @@ -9860,7 +9973,7 @@ var NovationLaunchpad = (function () { * // => false */ function isObjectLike$2(value) { - return value != null && _typeof(value) == 'object'; + return value != null && _typeof$1(value) == 'object'; } /** `Object#toString` result references. */ @@ -9956,10 +10069,10 @@ var NovationLaunchpad = (function () { /** Detect free variable `exports`. */ - var freeExports$4 = (typeof exports === "undefined" ? "undefined" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports; + var freeExports$4 = (typeof exports === "undefined" ? "undefined" : _typeof$1(exports)) == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule$4 = freeExports$4 && (typeof module === "undefined" ? "undefined" : _typeof(module)) == 'object' && module && !module.nodeType && module; + var freeModule$4 = freeExports$4 && (typeof module === "undefined" ? "undefined" : _typeof$1(module)) == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports$4 = freeModule$4 && freeModule$4.exports === freeExports$4; @@ -10047,10 +10160,10 @@ var NovationLaunchpad = (function () { /** Detect free variable `exports`. */ - var freeExports$5 = (typeof exports === "undefined" ? "undefined" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports; + var freeExports$5 = (typeof exports === "undefined" ? "undefined" : _typeof$1(exports)) == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule$5 = freeExports$5 && (typeof module === "undefined" ? "undefined" : _typeof(module)) == 'object' && module && !module.nodeType && module; + var freeModule$5 = freeExports$5 && (typeof module === "undefined" ? "undefined" : _typeof$1(module)) == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports$5 = freeModule$5 && freeModule$5.exports === freeExports$5; @@ -10273,7 +10386,7 @@ var NovationLaunchpad = (function () { var dependencies = { "@babel/runtime": "^7.3.1", "@mixxx-launchpad/app": "1.0.0", - "lodash-es": "~4.17.4" + "lodash-es": "~4.17.14" }; var controller = { device: "Launchpad", @@ -10307,82 +10420,82 @@ var NovationLaunchpad = (function () { var buttons = { /* eslint-disable key-spacing, no-multi-spaces */ - 'up': { + up: { status: 0xB0, midino: 0x68, name: 'up' }, - 'down': { + down: { status: 0xB0, midino: 0x69, name: 'down' }, - 'left': { + left: { status: 0xB0, midino: 0x6A, name: 'left' }, - 'right': { + right: { status: 0xB0, midino: 0x6B, name: 'right' }, - 'session': { + session: { status: 0xB0, midino: 0x6C, name: 'session' }, - 'user1': { + user1: { status: 0xB0, midino: 0x6D, name: 'user1' }, - 'user2': { + user2: { status: 0xB0, midino: 0x6E, name: 'user2' }, - 'mixer': { + mixer: { status: 0xB0, midino: 0x6F, name: 'mixer' }, - 'vol': { + vol: { status: 0x90, midino: 0x08, name: 'vol' }, - 'pan': { + pan: { status: 0x90, midino: 0x18, name: 'pan' }, - 'snda': { + snda: { status: 0x90, midino: 0x28, name: 'snda' }, - 'sndb': { + sndb: { status: 0x90, midino: 0x38, name: 'sndb' }, - 'stop': { + stop: { status: 0x90, midino: 0x48, name: 'stop' }, - 'trkon': { + trkon: { status: 0x90, midino: 0x58, name: 'trkon' }, - 'solo': { + solo: { status: 0x90, midino: 0x68, name: 'solo' }, - 'arm': { + arm: { status: 0x90, midino: 0x78, name: 'arm' @@ -10706,14 +10819,12 @@ var NovationLaunchpad = (function () { status: 0x90, midino: 0x77, name: '7,7' - /* eslint-enable key-spacing, no-multi-spaces */ - } + /* eslint-enable key-spacing, no-multi-spaces */ + }; - var LaunchpadMK1Device = - /*#__PURE__*/ - function () { + var LaunchpadMK1Device = /*#__PURE__*/function () { function LaunchpadMK1Device() { _classCallCheck(this, LaunchpadMK1Device); @@ -10721,8 +10832,8 @@ var NovationLaunchpad = (function () { _defineProperty(this, "colors", void 0); - this.buttons = Object.keys(buttons).reduce(function (obj, name$$1) { - return assign$2(obj, _defineProperty({}, name$$1, new LaunchpadMidiButton(buttons[name$$1]))); + this.buttons = Object.keys(buttons).reduce(function (obj, name) { + return assign$2(obj, _defineProperty({}, name, new LaunchpadMidiButton(buttons[name]))); }, {}); this.colors = colors; } diff --git a/res/controllers/novation-launchpad/.editorconfig b/res/controllers/novation-launchpad/.editorconfig deleted file mode 100644 index 9e16676a920..00000000000 --- a/res/controllers/novation-launchpad/.editorconfig +++ /dev/null @@ -1,23 +0,0 @@ -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[**] -end_of_line = lf -insert_final_newline = true - -[**/*.{py,sh}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true - -[Makefile] -indent_style = tab -indent_size = 4 -trim_trailing_whitespace = false - -[**/*.{js,json,yaml,yml}] -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = true diff --git a/res/controllers/novation-launchpad/.eslintignore b/res/controllers/novation-launchpad/.eslintignore deleted file mode 100644 index b36960499b6..00000000000 --- a/res/controllers/novation-launchpad/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -dist -node_modules -flow-typed diff --git a/res/controllers/novation-launchpad/.gitignore b/res/controllers/novation-launchpad/.gitignore deleted file mode 100644 index eaae6d8b791..00000000000 --- a/res/controllers/novation-launchpad/.gitignore +++ /dev/null @@ -1,96 +0,0 @@ -dist -tmp - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon -# Thumbnails -._* -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Node ### -# Logs -logs -*.log -npm-debug.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules -jspm_packages - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz -*.zip - -# Yarn Integrity file -.yarn-integrity - -# IDEs -.vscode -*.iml -.idea diff --git a/res/controllers/novation-launchpad/LICENSE b/res/controllers/novation-launchpad/LICENSE deleted file mode 100644 index 96b87aedc33..00000000000 --- a/res/controllers/novation-launchpad/LICENSE +++ /dev/null @@ -1,17 +0,0 @@ -Copyright (c) 2018 Dávid Szakállas -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/res/controllers/novation-launchpad/Makefile b/res/controllers/novation-launchpad/Makefile deleted file mode 100644 index b3c25e08497..00000000000 --- a/res/controllers/novation-launchpad/Makefile +++ /dev/null @@ -1,95 +0,0 @@ -SHELL := $(shell which bash) -O globstar -O extglob -c - -empty := -space := $(empty) $(empty) - -join-with = $(subst $(space),$1,$(strip $2)) - -device = $(call join-with,\ ,$(shell jq -r .controller.device packages/$(1)/package.json)) -manufacturer = $(call join-with,\ ,$(shell jq -r .controller.manufacturer packages/$(1)/package.json)) -path = $(call join-with,\ ,$(shell jq -r .controller.path packages/$(1)/package.json)) -mapping = $(builddir)/$(call manufacturer,$(1))\ $(call device,$(1)).midi.xml -script = $(builddir)/$(call manufacturer,$(1))-$(call device,$(1))-scripts.js - -arch := $(shell uname) - -# List the default Resource directories of Mixxx on different architectures -installDirDarwin := $(HOME)/Library/Application\ Support/Mixxx -installDirLinux := $(HOME)/.mixxx - -installDir ?= $(installDir$(arch)) - -package := ./package.json -builddir ?= ./dist -version := $(shell jq -r .version package.json) - -scriptFiles = $(shell ls packages/*/!(node_modules)/**/*.js) -mappingFiles = $(package) packages/$(1)/$(path)/buttons.js packages/$(1)/$(path)/template.xml.ejs - -targets := $(shell jq -r '.controllers | join (" ")' package.json) - -define targetScriptRules -$(call script,$(1)) : $(scriptFiles) - ./scripts/compile-scripts.js $(1) "$$@" -endef - -define targetMappingRules -$(call mapping,$(1)) : $(mappingFiles) - ./scripts/compile-mapping.js $(1) "$$@" -endef - -define compileRule -compile : $(foreach target,$(1),$(call mapping,$(target)) $(call script,$(target))) -.PHONY : compile -endef - -define installRule -install : $(foreach target,$(1),$(call mapping,$(target)) $(call script,$(target))) - cd $$(installDir) && mkdir -p controllers - cp $(foreach target,$(1),$(call mapping,$(target)) $(call script,$(target))) $$(installDir)/controllers - -.PHONY : install -endef - -define releaseRule -$(builddir)/mixxx-launchpad-$(version).zip : $(foreach target,$(1),$(call mapping,$(target)) $(call script,$(target))) | $(builddir) - zip -j -9 $$@ $(foreach target,$(1),$(call mapping,$(target)) $(call script,$(target))) -endef - -default : compile -.PHONY : default - -$(builddir): - mkdir -p $@ - -$(foreach target,$(targets),$(eval $(call targetScriptRules,$(target)))) -$(foreach target,$(targets),$(eval $(call targetMappingRules,$(target)))) -$(eval $(call compileRule,$(targets))) -$(eval $(call installRule,$(targets))) -$(eval $(call releaseRule,$(targets))) - -release : $(builddir)/mixxx-launchpad-$(version).zip -.PHONY : release - -test : - npm run lint - npm run check -.PHONY : test - -watch_install : - @echo Stop watching with Ctrl-C - @sleep 1 # Wait a bit so users can read - @$(MAKE) install - @trap exit SIGINT; fswatch -o $(scriptFiles) $(mappingFiles) | while read; do $(MAKE) install; done -.PHONY : watch_install - -watch : - @echo Stop watching with Ctrl-C - @sleep 1 # Wait a bit so users can read - @$(MAKE) - @trap exit SIGINT; fswatch -o $(scriptFiles) $(mappingFiles) | while read; do $(MAKE); done -.PHONY : watch - -clean : - rm -rf $(builddir) tmp -.PHONY : clean diff --git a/res/controllers/novation-launchpad/README.MD b/res/controllers/novation-launchpad/README.MD deleted file mode 100644 index 2a5c6820061..00000000000 --- a/res/controllers/novation-launchpad/README.MD +++ /dev/null @@ -1,442 +0,0 @@ -# Mixxx mapping for Novation Launchpad 🦄 - -**Flexible and (soon) customizable controller mapping for Launchpad. Make DJing -with Mixxx fun on Launchpad!** - -[![Build status](https://img.shields.io/circleci/project/github/dszakallas/mixxx-launchpad.svg)](https://circleci.com/gh/dszakallas/mixxx-launchpad) - -There's already a Launchpad mapping shipping with Mixxx however it -has several quirks and limitations: - -- it has a single hardcoded layout, supporting only the first 2 decks. - You can't e.g. change to decks 3 and 4, or sampler decks. This painfully - limits usability especially if you have multiple Launchpads (as I do!) and - want to control more decks. -- It would be better if the deck layout was customizable. This is a problem - that crops up as you add support for sampler decks. E.g. when you play samplers, a small 4x4 interface with only hotcues is ideal. -- Some of the controls are broken on recent Mixxx. -- It has a mixer interface, but why? Launchpad is really not fit for mixing. -- 8 of the buttons have no mapping, what a waste of resources! - -So I decided to make one that is more stable, flexible and customizable! - -## Features ✨ - - - map from 1 up to 4 channels (decks or samplers) on a single Launchpad at the same time ✨ - - utilize presets with multiple sizes and features, change between them with ease 🦄 - - x5 different deck presets in 3 sizes created for you and ready to use ✨, make it easy for the user to create new presets for their own needs (coming soon!) - - rich arsenal of controls 🦄 - - play, cue, hotcues - - loop controls, beatloop, beatjump - - sync/master, tap, pitch shift - - custom controls like bouncy jumps - - and much more... - - trigger-like controls are favored - no clumsy mixers and faders ✨ - - library navigation 🦄 - - LED lights mimic Mixxx UI ✨ - -## Supported controllers - - - Launchpad Pro (Experimental) - - Launchpad Mk2 - - Launchpad Mk1 - -## How to get started - - 💾 Download the [latest release from here](https://github.com/szdavid92/mixxx-launchpad/releases/latest). - - 💾 Follow the [instructions in the Mixxx User Manual](https://www.mixxx.org/manual/latest/chapters/controlling_mixxx.html#installing-a-preset-from-the-forum) to install the preset. - - Alternatively, see [Build](#build) the build it from source - -## User guide - -### Global controls - -Global controls consist of **Deck selectors**, **Library controls** and -**Modifier keys**. - -**Deck selectors** are located on the top bar. They are used to select decks and -samplers to be laid out on the main grid. *D1-D4* are mapped to corresponding -*decks*, *S1-S4* to *samplers*. - -**Library controls** are located on the sidebar to the right. They occupy the -upper 5 buttons. Their functions from top to bottom: - - - up in the library sidebar - - down in the library sidebar - - expand/close selected library sidebar entry - - up a track - - down a track - -> Note: The up/down controls are autoscrolled. If you hold them down for longer, -the scrolling activates. This comes in handy when navigating lengthy playlists. - -![layout](docs/lp-mki-layout.png) - -**Modifier keys** are located on the lower 2 buttons of the sidebar, and used -for the same purpose as you would expect on a computer keyboard. - -The figures show Shift in **bold**, Ctrl in *italic*, Ctrl+Shift -in ***bold italic***. - -> Note: For some controls the modifier keys will act like toggles, but the modifier keys themselves are never toggled globally. - -### Using the deck selectors - -The deck selector is an essential feature of this Launchpad mapping. With it you -can map multiple presets in multiple layouts on the main grid. The main grid is -the inner 8x8 grid on the Launchpad. You have to memorize the layout patterns, -but don't worry, there are only 4 of them. - -To select a single channel, simply press the button corresponding to the -channel. This will remove all existing selections, and find the largest default -preset that can be fit on the main grid. - -Presets come in 3 different sizes: *short* (4x4), *tall* (4x8) and *grande* -(8x8)1. Multiple presets can have the same size, but only one preset -can be default per size. - -To select multiple channels to be laid out, press the corresponding buttons -in a *chord*. This way you can select to 4 channels. - -So what is a chord? In a chord you press buttons so you only release the first -after you pressed the last one. The order of presses matter, however the order -of releases does not. Now, instead of writing down how the exact layout -algorithm works, I just show you the four different layouts that is generated -for 1 (single channel), 2, 3 and 4 note chords. Once more the algorithm will -fill out the spaces with the largest default preset. - -| ![1] | ![2] | -|------|------| -| ![3] | ![4] | - -[1]: docs/lp-1.png -[2]: docs/lp-2.png -[3]: docs/lp-3.png -[4]: docs/lp-4.png - -This means that e.g. if you press down D3-D2-S1 in this chord sequence, -- D3 will be mapped to block 1 with the default tall preset, -- D2 will be mapped to block 2 with the default short preset and -- S1 will be mapped to block 3 with the default short preset. - -Now you might ask: "But what if I don't want to use the largest default preset?" - -After a channel has been laid out you can cycle between all the presets that can -fit into its space. This won't reflow the layout, even if you end up using a -smaller preset. To cycle between presets - - press Ctrl + Channel Selector to cycle forward, - - press Shift + Channel Selector to cycle backward or - - press Ctrl + Shift + Channel Selector to revert to default. - -The cycling order is the following: - - primary: large to small - - secondary: default then all others in fixed but not specified order. - -See, not that complicated after all. Let's see the actual presets that are -featured out of the box: - -| | default | | -|--------|-----------------------------------------------------------|--------------------------------------------------------------------| -| grande | ![grande] **GRANDE** is currently the only grande layout.| | -| tall | ![tall] **TALL** is the default tall layout. |![juggler] **JUGGLER** is a tall layout optimized for beat jumping. | -| short | ![short] **SHORT** is the default short layout. |![sampler] **SAMPLER** is an all-cue short layout for samplers. | - - -[grande]: docs/lp-mki-grande.png -[tall]: docs/lp-mki-tall.png -[juggler]: docs/lp-mki-juggler.png -[short]: docs/lp-mki-short.png -[sampler]: docs/lp-mki-sampler.png - -1 No identification with actual persons (living or deceased), places, buildings, and products is intended or should be inferred. - -### Deck controls - -Now that you are familiar with the presets, let's check the controls the make -up these! - -#### PLAY - -Controls - - - **normal**: toggles playing (if track is playable, starts playing; if track is playing, stops playing) - - **ctrl**: seeks to start of track - - **shift**: seeks to start of track and stops - -Feedback - - - **bright red**: track is playing - - **bright red blinking**: track is stopped, playable - - **blank**: track is stopped, not playable - -#### SYNC / MASTER - -Controls - - - **normal**: toggles sync: - - if deck is synced (follower or master) it becomes not synced - - if track is not synced it becomes a sync follower - - **ctrl**: toggles master sync: - - if track is sync master, it becomes sync follower - - if track is not synced or sync follower, it becomes sync master - -Feedback - - - **bright red**: track is sync master - - **bright orange**: track is sync follower - - **blank**: track is not synced - -#### NUDGE / PITCH - -2 button for down/up. - -Controls - - - **normal**: nudges (temporarily alters pitch) in direction by primary value. See *Preferences > Interface > Temporary Speed Adjustment Buttons > Left click* - - **ctrl**: permanently changes pitch in direction by primary value. See *Preferences > Interface > Permanent Speed Adjustment Buttons > Left click* - - **shift**: nudges (temporarily alters pitch) in direction by secondary value. See *Preferences > Interface > Temporary Speed Adjustment Buttons > Right click* - - **ctrl+shift**: permanently changes pitch in direction by secondary value. See *Preferences > Interface > Permanent Speed Adjustment Buttons > Right click* - - **normal (both buttons simultaneously)**: reset pitch to original value - -Feedback - - - **bright yellow**: while nudging with primary speed - - **dim yellow**: while nudging with secondary speed - - **bright red**: while permanently changing pitch with primary speed - - **dim red**: while permanently changing pitch with secondary speed - - **dim orange**: while not pressing, and pitch has been altered in that direction - -#### CUE - -Controls - -- **normal**: behaves like the default cue method set in *Preferences > Interface > Cue mode* -- **ctrl**: sets cue at cursor - -Feedback - -- **bright red**: display dictated by your Cue mode - -#### TAP - -tap tempo for playback or beatgrid. - -- **normal**: tapping adjusts song playback tempo. You should have correctly detected BPM and beatgrid. - -- **ctrl**: ~~instead of altering the playback tempo, tapping adjusts the beatgrid.~~ Not implemented. *Why?* -- **shift**: sets the gridlines so the nearest beat aligns to current play position -- **ctrl+shift**: second button: sets the gridlines so the nearest beat lines up with the other track's nearest beat - -Feedback - -- **bright red**: flashes up on gridline - -#### GRID MANIPULATORS - -2 controls for - -- **normal**: translating the grid backwards / forwards -- **ctrl**: scaling the grid up (slower) / down (faster). - -#### PFL - -Controls - -- **normal**: toggle pre-fade listening (headphone) - -Feedback - -- **bright green**: PFL on -- **blank**: PFL off - -#### QUANTIZE - -Controls - -- **normal**: toggle quantization (magnet) - -Feedback - -- **bright orange**: quantization on -- **blank**: quantization off - -#### KEY SHIFTS - -Buttons for temporarily chaning pitch, bound left to right, bottom to top. While pressed, they modify the key of -the track. When pressing multiple, the one later pressed *steals* the modification. - -#### LOAD/EJECT - -Controls - -- **normal**: load the selected library track on deck. To prevent accidentally hitting, only works when the deck is empty. -- **ctrl**: load the selected library track on deck. Works when the deck is not playing. -- **shift**: eject deck. Works when the deck is not playing. - -Feedback - -- **dim red**: deck loaded, playing -- **dim amber**: deck loaded, not playing -- **dim green**: deck empty - -#### KEY - -Controls - -- **normal**: toggles keylock -- **ctrl**: lowers key by semitone -- **shift**: raises key by semitone - -Feedback - -- **hi red**: keylock on -- **blank**: keylock off - -#### HOTCUES - -Hotcues are bound from left to right, bottom to top. - -Controls - -- **normal**: activates the hotcue: - - if the hotcue is set, seeks the player to hotcue's position. - - if the hotcue is not set, sets the hotcue to the current play position -- **ctrl**: - - if the hotcue is set, deletes the hotcue - - if the hotcue is not set, sets the hotcue to the current play position - -Feedback - -- **bright yellow**: hotcue enabled -- **blank**: hotcue disabled - -#### BEATJUMPS - -Controls for jumping backward (lower lane) and forward (upper lane). -Supports two modes: - - the **normal mode** is represented with bright color. Jumping works as you would expect. - - the **rebouncing mode** is shown with dim color. It jumps on attack, then jumps back on release. Jumping legato works and uses the same stealing algorithm as key shifting. - Modes are switched with the CH MODE control (pressing `ctrl` and `shift` at the same time) - -You can change modes by pressing **ctrl+shift+[any beatjump key]**. - -There are two sets of jumps, switchable with the `ctrl` and `shift` keys, and shown in their corresponding colors. This means that pressing **ctrl+[any beatjump key]** will switch to the first set, while pressing **shift+[any beatjump key]** will switch to the second set. - -#### BEATLOOPS - -Controls for setting beatloops. - -Controls - -- **normal**: toggles beatloop - -Feedback - -- **bright red**: beatloop enabled -- **dim red**: beatloop disabled - -#### LOOPJUMPS - -Almost the same as beatjumps, only instead of changing the current play position, they translate the position of the loop markers. As beatjumps, they support two modes and two sets. On how to use these, see [Beatjumps](#beatjumps) - -#### HALVE / DOUBLE - -They halve / double the current loop length, modifying the position of the end marker. - -#### LOOPJUMP SMALL - -They translate the loop markers by a small amount backward/forward. - -Controls - -- **normal**: translates loop backward/forward - -#### LOOP - -Works the same way as the LOOP button on the GUI, ie. it toggles the current loop on or off. - -Controls - -- **normal**: toggles loop on/off - -Feedback - -- **bright green**: loop on -- **dim green**: loop off - -## For developers - -### Build - -To build you need to have a make, Node (>=8), bash (>=4.0) and `jq`. Watch tasks require `fswatch`. - -The multi-project build is managed with [lerna.js]. You need to install it -globally to make it available on the command line. First clone the repo and -install the dependencies: - -``` -git clone https://github.com/szdavid92/mixxx-launchpad -cd mixxx-launchpad -npm install -``` -You can also invoke lerna commands through npm like `npm run lerna -- --version`. -To compile the sources run - -``` -make -j 4 -``` - -(`-j 4` will enable 4 jobs to be executed in parallel which makes the build significantly faster) - -Afterward the `dist` folder will contain the files that need to be -copied the Mixxx's controller folder. - -``` -make -j 4 install -``` -does this for you on macOS and Linux. - -These two tasks have watch counterparts making them rerun automatically on file changes. This is handy during development: - -``` -make watch -make watch_install -``` - -### JavaScript - -The code is written according to the [ES2015] specification. This is -incompatible with the runtime running in Mixxx so it has to be transpiled back -to ES5, which is done with [Babel] using the es2015 preset. Sadly due to the interpreter's only partial compatibility with the standard [even some ES3 transforms have to be enabled](bad-interpreter). The transpiled code -is then bundled with [browserify] into a so called [standalone] module with the -name `NovationLaunchpad`. Due to the lack of module loading system in the -environment, the bundled code is placed on the global object with the above -name. This works, because the same name is specified in the MIDI mapping XML file, so Mixxx will look for this name, and will call its `init` method upon loading. - -### MIDI mapping - -The controller mapping is generated from a template like -[this][mapping-template] with [ejs]. The mapping reuses config from the package -description and [buttons.js]. - -### Known Issues - -#### No Windows build recipes -Sorry, but building anything on Windows is pain. - -#### Lingering ES3 future reserved keywords - -Due to parser discrepancies, ES3 keywords and future reserved words that have been removed from ES5 can't be used as *(1) identifiers*, *(2) property literals* and *(3) member expression literals*. In ES5 you can use keywords and future reserved words in the last two cases. -We have [transforms](.babelrc) for these two cases, however you still **can't use ES3 keywords and future reserved words as identifiers**, even if some of the latter was removed from ES5, for example `public`, `private` or `final`. - - -[ES2015]:https://github.com/lukehoban/es6features#readme -[Babel]:https://babeljs.io/ -[browserify]:http://browserify.org/ -[standalone]:https://github.com/substack/node-browserify#usage -[mapping-template]:src/Launchpad/Launchpad.midi.xml.ejs -[ejs]:http://ejs.co/ -[buttons.js]:src/Launchpad/buttons.js -[lerna.js]: https://lernajs.io/ diff --git a/res/controllers/novation-launchpad/babel.config.js b/res/controllers/novation-launchpad/babel.config.js deleted file mode 100644 index 1775b987f14..00000000000 --- a/res/controllers/novation-launchpad/babel.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - presets: [ - ['@babel/preset-env', { 'modules': false }] - ], - plugins: [ - 'transform-es3-member-expression-literals', - 'transform-es3-property-literals', - '@babel/plugin-proposal-class-properties', - '@babel/plugin-transform-flow-strip-types', - ['@babel/plugin-transform-runtime', { useESModules: true }] - ] -} diff --git a/res/controllers/novation-launchpad/docs/lp-1.png b/res/controllers/novation-launchpad/docs/lp-1.png deleted file mode 100644 index fcce339dc48..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-1.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-2.png b/res/controllers/novation-launchpad/docs/lp-2.png deleted file mode 100644 index 90e405fcfad..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-2.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-3.png b/res/controllers/novation-launchpad/docs/lp-3.png deleted file mode 100644 index c68c4e51529..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-3.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-4.png b/res/controllers/novation-launchpad/docs/lp-4.png deleted file mode 100644 index 1c6ed545297..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-4.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-grande.png b/res/controllers/novation-launchpad/docs/lp-mki-grande.png deleted file mode 100644 index 3e00cc8c764..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-grande.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-juggler.png b/res/controllers/novation-launchpad/docs/lp-mki-juggler.png deleted file mode 100644 index 2284b180a56..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-juggler.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-layout.png b/res/controllers/novation-launchpad/docs/lp-mki-layout.png deleted file mode 100644 index 7ee928ae2a0..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-layout.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-sampler.png b/res/controllers/novation-launchpad/docs/lp-mki-sampler.png deleted file mode 100644 index 1fd663490a7..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-sampler.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-short.png b/res/controllers/novation-launchpad/docs/lp-mki-short.png deleted file mode 100644 index 72770906697..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-short.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/docs/lp-mki-tall.png b/res/controllers/novation-launchpad/docs/lp-mki-tall.png deleted file mode 100644 index 67c80bcdb52..00000000000 Binary files a/res/controllers/novation-launchpad/docs/lp-mki-tall.png and /dev/null differ diff --git a/res/controllers/novation-launchpad/lerna.json b/res/controllers/novation-launchpad/lerna.json deleted file mode 100644 index 3ee236008bb..00000000000 --- a/res/controllers/novation-launchpad/lerna.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "lerna": "2.9.1", - "packages": [ - "packages/*" - ], - "version": "0.0.0" -} diff --git a/res/controllers/novation-launchpad/package-lock.json b/res/controllers/novation-launchpad/package-lock.json deleted file mode 100644 index e56d7a38911..00000000000 --- a/res/controllers/novation-launchpad/package-lock.json +++ /dev/null @@ -1,9532 +0,0 @@ -{ - "name": "@mixxx-launchpad/project", - "version": "2.2.6", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/core": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.3.tgz", - "integrity": "sha512-w445QGI2qd0E0GlSnq6huRZWPMmQGCp5gd5ZWS4hagn0EiwzxD5QMFkpchyusAyVC1n27OKXzQ0/88aVU9n4xQ==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.3.3", - "@babel/helpers": "7.3.1", - "@babel/parser": "7.3.3", - "@babel/template": "7.2.2", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3", - "convert-source-map": "1.6.0", - "debug": "4.1.1", - "json5": "2.1.0", - "lodash": "4.17.11", - "resolve": "1.6.0", - "semver": "5.5.0", - "source-map": "0.5.7" - }, - "dependencies": { - "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", - "dev": true - }, - "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" - } - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, - "requires": { - "minimist": "1.2.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.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", - "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", - "dev": true, - "requires": { - "@babel/types": "7.3.3", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "7.1.0", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz", - "integrity": "sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.2.3" - } - }, - "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/types": "7.3.3", - "lodash": "4.17.11" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, - "requires": { - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.2.2", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", - "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/template": "7.2.2", - "@babel/types": "7.3.3", - "lodash": "4.17.11" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-wrap-function": "7.2.0", - "@babel/template": "7.2.2", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-replace-supers": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", - "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, - "requires": { - "@babel/template": "7.2.2", - "@babel/types": "7.3.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "7.3.3" - } - }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/template": "7.2.2", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/helpers": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", - "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", - "dev": true, - "requires": { - "@babel/template": "7.2.2", - "@babel/traverse": "7.2.3", - "@babel/types": "7.3.3" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.3.tgz", - "integrity": "sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0", - "@babel/plugin-syntax-async-generators": "7.2.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.3.tgz", - "integrity": "sha512-XO9eeU1/UwGPM8L+TjnQCykuVcXqaO5J1bkRPIygqZ/A2L1xVMJ9aZXrY31c0U4H2/LHKL4lbFQLsxktSrc/Ng==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "7.3.2", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-json-strings": "7.2.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", - "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.2.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.2.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", - "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.4.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", - "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz", - "integrity": "sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", - "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", - "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "lodash": "4.17.11" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.3.tgz", - "integrity": "sha512-n0CLbsg7KOXsMF4tSTLCApNMoXk0wOPb0DYfsOO1e7SfIb9gOyfbpKI2MZ+AXfqvlfzq2qsflJ1nEns48Caf2w==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-define-map": "7.1.0", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.2.3", - "@babel/helper-split-export-declaration": "7.0.0", - "globals": "11.11.0" - }, - "dependencies": { - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "dev": true - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", - "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", - "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.4.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", - "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz", - "integrity": "sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-flow": "7.2.0" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", - "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", - "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.2.2", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", - "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.2.2", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-simple-access": "7.1.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", - "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.2.2", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz", - "integrity": "sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==", - "dev": true, - "requires": { - "regexp-tree": "0.1.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", - "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.2.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", - "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "7.1.0", - "@babel/helper-get-function-arity": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", - "dev": true, - "requires": { - "regenerator-transform": "0.13.3" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", - "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", - "dev": true, - "requires": { - "private": "0.1.8" - } - } - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", - "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "resolve": "1.10.0", - "semver": "5.6.0" - }, - "dependencies": { - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", - "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", - "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.4.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", - "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/preset-env": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", - "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-proposal-async-generator-functions": "7.2.0", - "@babel/plugin-proposal-json-strings": "7.2.0", - "@babel/plugin-proposal-object-rest-spread": "7.3.2", - "@babel/plugin-proposal-optional-catch-binding": "7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "7.2.0", - "@babel/plugin-syntax-async-generators": "7.2.0", - "@babel/plugin-syntax-json-strings": "7.2.0", - "@babel/plugin-syntax-object-rest-spread": "7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "7.2.0", - "@babel/plugin-transform-arrow-functions": "7.2.0", - "@babel/plugin-transform-async-to-generator": "7.2.0", - "@babel/plugin-transform-block-scoped-functions": "7.2.0", - "@babel/plugin-transform-block-scoping": "7.2.0", - "@babel/plugin-transform-classes": "7.3.3", - "@babel/plugin-transform-computed-properties": "7.2.0", - "@babel/plugin-transform-destructuring": "7.3.2", - "@babel/plugin-transform-dotall-regex": "7.2.0", - "@babel/plugin-transform-duplicate-keys": "7.2.0", - "@babel/plugin-transform-exponentiation-operator": "7.2.0", - "@babel/plugin-transform-for-of": "7.2.0", - "@babel/plugin-transform-function-name": "7.2.0", - "@babel/plugin-transform-literals": "7.2.0", - "@babel/plugin-transform-modules-amd": "7.2.0", - "@babel/plugin-transform-modules-commonjs": "7.2.0", - "@babel/plugin-transform-modules-systemjs": "7.2.0", - "@babel/plugin-transform-modules-umd": "7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "7.3.0", - "@babel/plugin-transform-new-target": "7.0.0", - "@babel/plugin-transform-object-super": "7.2.0", - "@babel/plugin-transform-parameters": "7.3.3", - "@babel/plugin-transform-regenerator": "7.0.0", - "@babel/plugin-transform-shorthand-properties": "7.2.0", - "@babel/plugin-transform-spread": "7.2.2", - "@babel/plugin-transform-sticky-regex": "7.2.0", - "@babel/plugin-transform-template-literals": "7.2.0", - "@babel/plugin-transform-typeof-symbol": "7.2.0", - "@babel/plugin-transform-unicode-regex": "7.2.0", - "browserslist": "4.4.1", - "invariant": "2.2.4", - "js-levenshtein": "1.1.6", - "semver": "5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", - "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000938", - "electron-to-chromium": "1.3.113", - "node-releases": "1.1.7" - } - } - } - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.3.3", - "@babel/types": "7.3.3" - }, - "dependencies": { - "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", - "dev": true - } - } - }, - "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.3.3", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.3.3", - "@babel/types": "7.3.3", - "debug": "4.1.1", - "globals": "11.11.0", - "lodash": "4.17.11" - }, - "dependencies": { - "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", - "dev": true - }, - "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" - } - }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "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==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", - "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@lerna/add": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.13.0.tgz", - "integrity": "sha512-5srUGfZHjqa5BW3JODHpzbH1ayweGqqrxH8qOzf/E/giNfzigdfyCSkbGh/iiLTXGu7BBE+3/OFfycoqYbalgg==", - "dev": true, - "requires": { - "@lerna/bootstrap": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/npm-conf": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "0.7.0", - "npm-package-arg": "6.1.0", - "p-map": "1.2.0", - "pacote": "9.4.1", - "semver": "5.5.0" - } - }, - "@lerna/batch-packages": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.13.0.tgz", - "integrity": "sha512-TgLBTZ7ZlqilGnzJ3xh1KdAHcySfHytgNRTdG9YomfriTU6kVfp1HrXxKJYVGs7ClPUNt2CTFEOkw0tMBronjw==", - "dev": true, - "requires": { - "@lerna/package-graph": "3.13.0", - "@lerna/validation-error": "3.13.0", - "npmlog": "4.1.2" - } - }, - "@lerna/bootstrap": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.13.0.tgz", - "integrity": "sha512-wdwBzvwEdzGERwpiY6Zu/T+tntCfXeXrL9cQIxP+K2M07jL5M00ZRdDoFcP90sGn568AjhvRhD2ExA5wPECSgA==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/has-npm-version": "3.13.0", - "@lerna/npm-install": "3.13.0", - "@lerna/package-graph": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/symlink-binary": "3.13.0", - "@lerna/symlink-dependencies": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "0.7.0", - "get-port": "3.2.0", - "multimatch": "2.1.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "p-finally": "1.0.0", - "p-map": "1.2.0", - "p-map-series": "1.0.0", - "p-waterfall": "1.0.0", - "read-package-tree": "5.2.2", - "semver": "5.5.0" - } - }, - "@lerna/changed": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.13.0.tgz", - "integrity": "sha512-BNUVfEzhrY+XEQJI0fFxEAN7JrguXMGNX5rqQ2KWyGQB4fZ1mv4FStJRjK0K/gcCvdHnuR65uexc/acxBnBi9w==", - "dev": true, - "requires": { - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/listable": "3.13.0", - "@lerna/output": "3.13.0", - "@lerna/version": "3.13.0" - } - }, - "@lerna/check-working-tree": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.13.0.tgz", - "integrity": "sha512-dsdO15NXX5To+Q53SYeCrBEpiqv4m5VkaPZxbGQZNwoRen1MloXuqxSymJANQn+ZLEqarv5V56gydebeROPH5A==", - "dev": true, - "requires": { - "@lerna/describe-ref": "3.13.0", - "@lerna/validation-error": "3.13.0" - } - }, - "@lerna/child-process": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.13.0.tgz", - "integrity": "sha512-0iDS8y2jiEucD4fJHEzKoc8aQJgm7s+hG+0RmDNtfT0MM3n17pZnf5JOMtS1FJp+SEXOjMKQndyyaDIPFsnp6A==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "execa": "1.0.0", - "strong-log-transformer": "2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "@lerna/clean": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.13.0.tgz", - "integrity": "sha512-eFkqVsOmybUIjak2NyGfk78Mo8rNyNiSDFh2+HGpias3PBdEbkGYtFi/JMBi9FvqCsBSiVnHCTUcnZdLzMz69w==", - "dev": true, - "requires": { - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/prompt": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.13.0", - "p-map": "1.2.0", - "p-map-series": "1.0.0", - "p-waterfall": "1.0.0" - } - }, - "@lerna/cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.13.0.tgz", - "integrity": "sha512-HgFGlyCZbYaYrjOr3w/EsY18PdvtsTmDfpUQe8HwDjXlPeCCUgliZjXLOVBxSjiOvPeOSwvopwIHKWQmYbwywg==", - "dev": true, - "requires": { - "@lerna/global-options": "3.13.0", - "dedent": "0.7.0", - "npmlog": "4.1.2", - "yargs": "12.0.5" - } - }, - "@lerna/collect-updates": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.13.0.tgz", - "integrity": "sha512-uR3u6uTzrS1p46tHQ/mlHog/nRJGBqskTHYYJbgirujxm6FqNh7Do+I1Q/7zSee407G4lzsNxZdm8IL927HemQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/describe-ref": "3.13.0", - "minimatch": "3.0.4", - "npmlog": "4.1.2", - "slash": "1.0.0" - } - }, - "@lerna/command": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.13.0.tgz", - "integrity": "sha512-34Igk99KKeDt1ilzHooVUamMegArFz8AH9BuJivIKBps1E2A5xkwRd0mJFdPENzLxOqBJlt+cnL7LyvaIM6tRQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/package-graph": "3.13.0", - "@lerna/project": "3.13.0", - "@lerna/validation-error": "3.13.0", - "@lerna/write-log-file": "3.13.0", - "dedent": "0.7.0", - "execa": "1.0.0", - "is-ci": "1.2.1", - "lodash": "4.17.11", - "npmlog": "4.1.2" - } - }, - "@lerna/conventional-commits": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.13.0.tgz", - "integrity": "sha512-BeAgcNXuocmLhPxnmKU2Vy8YkPd/Uo+vu2i/p3JGsUldzrPC8iF3IDxH7fuXpEFN2Nfogu7KHachd4tchtOppA==", - "dev": true, - "requires": { - "@lerna/validation-error": "3.13.0", - "conventional-changelog-angular": "5.0.3", - "conventional-changelog-core": "3.1.6", - "conventional-recommended-bump": "4.0.4", - "fs-extra": "7.0.1", - "get-stream": "4.1.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "pify": "3.0.0", - "semver": "5.5.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "@lerna/create": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.13.0.tgz", - "integrity": "sha512-0Vrl6Z1NEQFKd1uzWBFWii59OmMNKSNXxgKYoh3Ulu/ekMh90BgnLJ0a8tE34KK4lG5mVTQDlowKFEF+jZfYOA==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/npm-conf": "3.13.0", - "@lerna/validation-error": "3.13.0", - "camelcase": "5.0.0", - "dedent": "0.7.0", - "fs-extra": "7.0.1", - "globby": "8.0.2", - "init-package-json": "1.10.3", - "npm-package-arg": "6.1.0", - "p-reduce": "1.0.0", - "pacote": "9.4.1", - "pify": "3.0.0", - "semver": "5.5.0", - "slash": "1.0.0", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0", - "whatwg-url": "7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.6", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "@lerna/create-symlink": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.13.0.tgz", - "integrity": "sha512-PTvg3jAAJSAtLFoZDsuTMv1wTOC3XYIdtg54k7uxIHsP8Ztpt+vlilY/Cni0THAqEMHvfiToel76Xdta4TU21Q==", - "dev": true, - "requires": { - "cmd-shim": "2.0.2", - "fs-extra": "7.0.1", - "npmlog": "4.1.2" - } - }, - "@lerna/describe-ref": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.13.0.tgz", - "integrity": "sha512-UJefF5mLxLae9I2Sbz5RLYGbqbikRuMqdgTam0MS5OhXnyuuKYBUpwBshCURNb1dPBXTQhSwc7+oUhORx8ojCg==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "npmlog": "4.1.2" - } - }, - "@lerna/diff": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.13.0.tgz", - "integrity": "sha512-fyHRzRBiqXj03YbGY5/ume1N0v0wrWVB7XPHPaQs/e/eCgMpcmoQGQoW5r97R+xaEoy3boByr/ham4XHZv02ZQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/validation-error": "3.13.0", - "npmlog": "4.1.2" - } - }, - "@lerna/exec": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.13.0.tgz", - "integrity": "sha512-Dc8jr1jL6YrfbI1sUZ3+px00HwcZLKykl7AC8A+vvCzYLa4MeK3UJ7CPg4kvBN1mX7yhGrSDSfxG0bJriHU5nA==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/validation-error": "3.13.0" - } - }, - "@lerna/filter-options": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.13.0.tgz", - "integrity": "sha512-SRp7DCo9zrf+7NkQxZMkeyO1GRN6GICoB9UcBAbXhLbWisT37Cx5/6+jh49gYB63d/0/WYHSEPMlheUrpv1Srw==", - "dev": true, - "requires": { - "@lerna/collect-updates": "3.13.0", - "@lerna/filter-packages": "3.13.0", - "dedent": "0.7.0" - } - }, - "@lerna/filter-packages": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.13.0.tgz", - "integrity": "sha512-RWiZWyGy3Mp7GRVBn//CacSnE3Kw82PxE4+H6bQ3pDUw/9atXn7NRX+gkBVQIYeKamh7HyumJtyOKq3Pp9BADQ==", - "dev": true, - "requires": { - "@lerna/validation-error": "3.13.0", - "multimatch": "2.1.0", - "npmlog": "4.1.2" - } - }, - "@lerna/get-npm-exec-opts": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz", - "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==", - "dev": true, - "requires": { - "npmlog": "4.1.2" - } - }, - "@lerna/get-packed": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.13.0.tgz", - "integrity": "sha512-EgSim24sjIjqQDC57bgXD9l22/HCS93uQBbGpkzEOzxAVzEgpZVm7Fm1t8BVlRcT2P2zwGnRadIvxTbpQuDPTg==", - "dev": true, - "requires": { - "fs-extra": "7.0.1", - "ssri": "6.0.1", - "tar": "4.4.8" - }, - "dependencies": { - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - } - } - }, - "@lerna/github-client": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.13.0.tgz", - "integrity": "sha512-4/003z1g7shg21nl06ku5/yqYbQfNsQkeWuWEd+mjiTtGH6OhzJ8XcmBOq6mhZrfDAlA4OLeXypd1QIK1Y7arA==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@octokit/plugin-enterprise-rest": "2.1.1", - "@octokit/rest": "16.15.0", - "git-url-parse": "11.1.2", - "npmlog": "4.1.2" - } - }, - "@lerna/global-options": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz", - "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==", - "dev": true - }, - "@lerna/has-npm-version": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.13.0.tgz", - "integrity": "sha512-Oqu7DGLnrMENPm+bPFGOHnqxK8lCnuYr6bk3g/CoNn8/U0qgFvHcq6Iv8/Z04TsvleX+3/RgauSD2kMfRmbypg==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "semver": "5.5.0" - } - }, - "@lerna/import": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.13.0.tgz", - "integrity": "sha512-uQ+hoYEC6/B8VqQ9tecA1PVCFiqwN+DCrdIBY/KX3Z5vip94Pc8H/u+Q2dfBymkT6iXnvmPR/6hsMkpMOjBQDg==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/prompt": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "0.7.0", - "fs-extra": "7.0.1", - "p-map-series": "1.0.0" - } - }, - "@lerna/init": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.13.0.tgz", - "integrity": "sha512-4MBaNaitr9rfzwHK4d0Y19WIzqL5RTk719tIlVtw+IRE2qF9/ioovNIZuoeISyi84mTKehsFtPsHoxFIulZUhQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/command": "3.13.0", - "fs-extra": "7.0.1", - "p-map": "1.2.0", - "write-json-file": "2.3.0" - } - }, - "@lerna/link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.13.0.tgz", - "integrity": "sha512-0PAZM1kVCmtJfiQUzy6TT1aemIg9pxejGxFBYMB+IAxR5rcgLlZago1R52/8HyNGa07bLv0B6CkRgrdQ/9bzCg==", - "dev": true, - "requires": { - "@lerna/command": "3.13.0", - "@lerna/package-graph": "3.13.0", - "@lerna/symlink-dependencies": "3.13.0", - "p-map": "1.2.0", - "slash": "1.0.0" - } - }, - "@lerna/list": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.13.0.tgz", - "integrity": "sha512-nKSqGs4ZJe7zB6SJmBEb7AfGLzqDOwJwbucC3XVgkjrXlrX4AW4+qnPiGpEdz8OFmzstkghQrWUUJvsEpNVTjw==", - "dev": true, - "requires": { - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/listable": "3.13.0", - "@lerna/output": "3.13.0" - } - }, - "@lerna/listable": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.13.0.tgz", - "integrity": "sha512-liYJ/WBUYP4N4MnSVZuLUgfa/jy3BZ02/1Om7xUY09xGVSuNVNEeB8uZUMSC+nHqFHIsMPZ8QK9HnmZb1E/eTA==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "chalk": "2.4.2", - "columnify": "1.5.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "@lerna/log-packed": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.13.0.tgz", - "integrity": "sha512-Rmjrcz+6aM6AEcEVWmurbo8+AnHOvYtDpoeMMJh9IZ9SmZr2ClXzmD7wSvjTQc8BwOaiWjjC/ukcT0UYA2m7wg==", - "dev": true, - "requires": { - "byte-size": "4.0.4", - "columnify": "1.5.4", - "has-unicode": "2.0.1", - "npmlog": "4.1.2" - } - }, - "@lerna/npm-conf": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.13.0.tgz", - "integrity": "sha512-Jg2kANsGnhg+fbPEzE0X9nX5oviEAvWj0nYyOkcE+cgWuT7W0zpnPXC4hA4C5IPQGhwhhh0IxhWNNHtjTuw53g==", - "dev": true, - "requires": { - "config-chain": "1.1.12", - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "@lerna/npm-dist-tag": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.13.0.tgz", - "integrity": "sha512-mcuhw34JhSRFrbPn0vedbvgBTvveG52bR2lVE3M3tfE8gmR/cKS/EJFO4AUhfRKGCTFn9rjaSEzlFGYV87pemQ==", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1", - "npm-package-arg": "6.1.0", - "npm-registry-fetch": "3.9.0", - "npmlog": "4.1.2" - } - }, - "@lerna/npm-install": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.13.0.tgz", - "integrity": "sha512-qNyfts//isYQxore6fsPorNYJmPVKZ6tOThSH97tP0aV91zGMtrYRqlAoUnDwDdAjHPYEM16hNujg2wRmsqqIw==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/get-npm-exec-opts": "3.13.0", - "fs-extra": "7.0.1", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "signal-exit": "3.0.2", - "write-pkg": "3.2.0" - } - }, - "@lerna/npm-publish": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.13.0.tgz", - "integrity": "sha512-y4WO0XTaf9gNRkI7as6P2ItVDOxmYHwYto357fjybcnfXgMqEA94c3GJ++jU41j0A9vnmYC6/XxpTd9sVmH9tA==", - "dev": true, - "requires": { - "@lerna/run-lifecycle": "3.13.0", - "figgy-pudding": "3.5.1", - "fs-extra": "7.0.1", - "libnpmpublish": "1.1.1", - "npmlog": "4.1.2", - "pify": "3.0.0", - "read-package-json": "2.0.13" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "@lerna/npm-run-script": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.13.0.tgz", - "integrity": "sha512-hiL3/VeVp+NFatBjkGN8mUdX24EfZx9rQlSie0CMgtjc7iZrtd0jCguLomSCRHYjJuvqgbp+LLYo7nHVykfkaQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "@lerna/get-npm-exec-opts": "3.13.0", - "npmlog": "4.1.2" - } - }, - "@lerna/output": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz", - "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==", - "dev": true, - "requires": { - "npmlog": "4.1.2" - } - }, - "@lerna/pack-directory": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.13.0.tgz", - "integrity": "sha512-p5lhLPvpRptms08uSTlDpz8R2/s8Z2Vi0Hc8+yIAP74YD8gh/U9Diku9EGkkgkLfV+P0WhnEO8/Gq/qzNVbntA==", - "dev": true, - "requires": { - "@lerna/get-packed": "3.13.0", - "@lerna/package": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", - "figgy-pudding": "3.5.1", - "npm-packlist": "1.3.0", - "npmlog": "4.1.2", - "tar": "4.4.8", - "temp-write": "3.4.0" - }, - "dependencies": { - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - } - } - }, - "@lerna/package": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.13.0.tgz", - "integrity": "sha512-kSKO0RJQy093BufCQnkhf1jB4kZnBvL7kK5Ewolhk5gwejN+Jofjd8DGRVUDUJfQ0CkW1o6GbUeZvs8w8VIZDg==", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "npm-package-arg": "6.1.0", - "write-pkg": "3.2.0" - }, - "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "@lerna/package-graph": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.13.0.tgz", - "integrity": "sha512-3mRF1zuqFE1HEFmMMAIggXy+f+9cvHhW/jzaPEVyrPNLKsyfJQtpTNzeI04nfRvbAh+Gd2aNksvaW/w3xGJnnw==", - "dev": true, - "requires": { - "@lerna/validation-error": "3.13.0", - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "@lerna/project": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.13.0.tgz", - "integrity": "sha512-hxRvln8Dks3T4PBALC9H3Kw6kTne70XShfqSs4oJkMqFyDj4mb5VCUN6taCDXyF8fu75d02ETdTFZhhBgm1x6w==", - "dev": true, - "requires": { - "@lerna/package": "3.13.0", - "@lerna/validation-error": "3.13.0", - "cosmiconfig": "5.0.7", - "dedent": "0.7.0", - "dot-prop": "4.2.0", - "glob-parent": "3.1.0", - "globby": "8.0.2", - "load-json-file": "4.0.0", - "npmlog": "4.1.2", - "p-map": "1.2.0", - "resolve-from": "4.0.0", - "write-json-file": "2.3.0" - }, - "dependencies": { - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.6", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "@lerna/prompt": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.13.0.tgz", - "integrity": "sha512-P+lWSFokdyvYpkwC3it9cE0IF2U5yy2mOUbGvvE4iDb9K7TyXGE+7lwtx2thtPvBAfIb7O13POMkv7df03HJeA==", - "dev": true, - "requires": { - "inquirer": "6.2.2", - "npmlog": "4.1.2" - } - }, - "@lerna/publish": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.13.0.tgz", - "integrity": "sha512-WuO7LWWQ+8F+ig48RtUxWrVdOfpqDBOv6fXz0/2heQf/rJQoJDTzJZ0rk5ymaGCFz1Av2CbP0zoP7PAQQ2BeKg==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/describe-ref": "3.13.0", - "@lerna/log-packed": "3.13.0", - "@lerna/npm-conf": "3.13.0", - "@lerna/npm-dist-tag": "3.13.0", - "@lerna/npm-publish": "3.13.0", - "@lerna/output": "3.13.0", - "@lerna/pack-directory": "3.13.0", - "@lerna/prompt": "3.13.0", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/validation-error": "3.13.0", - "@lerna/version": "3.13.0", - "figgy-pudding": "3.5.1", - "fs-extra": "7.0.1", - "libnpmaccess": "3.0.1", - "npm-package-arg": "6.1.0", - "npm-registry-fetch": "3.9.0", - "npmlog": "4.1.2", - "p-finally": "1.0.0", - "p-map": "1.2.0", - "p-pipe": "1.2.0", - "p-reduce": "1.0.0", - "pacote": "9.4.1", - "semver": "5.5.0" - } - }, - "@lerna/pulse-till-done": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz", - "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==", - "dev": true, - "requires": { - "npmlog": "4.1.2" - } - }, - "@lerna/resolve-symlink": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.13.0.tgz", - "integrity": "sha512-Lc0USSFxwDxUs5JvIisS8JegjA6SHSAWJCMvi2osZx6wVRkEDlWG2B1JAfXUzCMNfHoZX0/XX9iYZ+4JIpjAtg==", - "dev": true, - "requires": { - "fs-extra": "7.0.1", - "npmlog": "4.1.2", - "read-cmd-shim": "1.0.1" - } - }, - "@lerna/rimraf-dir": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.13.0.tgz", - "integrity": "sha512-kte+pMemulre8cmPqljxIYjCmdLByz8DgHBHXB49kz2EiPf8JJ+hJFt0PzEubEyJZ2YE2EVAx5Tv5+NfGNUQyQ==", - "dev": true, - "requires": { - "@lerna/child-process": "3.13.0", - "npmlog": "4.1.2", - "path-exists": "3.0.0", - "rimraf": "2.6.2" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "@lerna/run": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.13.0.tgz", - "integrity": "sha512-KSpEStp5SVzNB7+3V5WnyY4So8aEyDhBYvhm7cJr5M7xesKf/IE5KFywcI+JPYzyqnIOGXghfzBf9nBZRHlEUQ==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/filter-options": "3.13.0", - "@lerna/npm-run-script": "3.13.0", - "@lerna/output": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/timer": "3.13.0", - "@lerna/validation-error": "3.13.0", - "p-map": "1.2.0" - } - }, - "@lerna/run-lifecycle": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.13.0.tgz", - "integrity": "sha512-oyiaL1biZdjpmjh6X/5C4w07wNFyiwXSSHH5GQB4Ay4BPwgq9oNhCcxRoi0UVZlZ1YwzSW8sTwLgj8emkIo3Yg==", - "dev": true, - "requires": { - "@lerna/npm-conf": "3.13.0", - "figgy-pudding": "3.5.1", - "npm-lifecycle": "2.1.0", - "npmlog": "4.1.2" - } - }, - "@lerna/run-parallel-batches": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.13.0.tgz", - "integrity": "sha512-bICFBR+cYVF1FFW+Tlm0EhWDioTUTM6dOiVziDEGE1UZha1dFkMYqzqdSf4bQzfLS31UW/KBd/2z8jy2OIjEjg==", - "dev": true, - "requires": { - "p-map": "1.2.0", - "p-map-series": "1.0.0" - } - }, - "@lerna/symlink-binary": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.13.0.tgz", - "integrity": "sha512-obc4Y6jxywkdaCe+DB0uTxYqP0IQ8mFWvN+k/YMbwH4G2h7M7lCBWgPy8e7xw/50+1II9tT2sxgx+jMus1sTJg==", - "dev": true, - "requires": { - "@lerna/create-symlink": "3.13.0", - "@lerna/package": "3.13.0", - "fs-extra": "7.0.1", - "p-map": "1.2.0" - } - }, - "@lerna/symlink-dependencies": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.13.0.tgz", - "integrity": "sha512-7CyN5WYEPkbPLbqHBIQg/YiimBzb5cIGQB0E9IkLs3+racq2vmUNQZn38LOaazQacAA83seB+zWSxlI6H+eXSg==", - "dev": true, - "requires": { - "@lerna/create-symlink": "3.13.0", - "@lerna/resolve-symlink": "3.13.0", - "@lerna/symlink-binary": "3.13.0", - "fs-extra": "7.0.1", - "p-finally": "1.0.0", - "p-map": "1.2.0", - "p-map-series": "1.0.0" - } - }, - "@lerna/timer": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz", - "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==", - "dev": true - }, - "@lerna/validation-error": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz", - "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==", - "dev": true, - "requires": { - "npmlog": "4.1.2" - } - }, - "@lerna/version": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.13.0.tgz", - "integrity": "sha512-YdLC208tExVpV77pdXpokGt9MAtTE7Kt93a2jcfjqiMoAI1VmXgGA+7drgBSTVtzfjXExPgi2//hJjI5ObckXA==", - "dev": true, - "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.0", - "@lerna/child-process": "3.13.0", - "@lerna/collect-updates": "3.13.0", - "@lerna/command": "3.13.0", - "@lerna/conventional-commits": "3.13.0", - "@lerna/github-client": "3.13.0", - "@lerna/output": "3.13.0", - "@lerna/prompt": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", - "@lerna/validation-error": "3.13.0", - "chalk": "2.4.2", - "dedent": "0.7.0", - "minimatch": "3.0.4", - "npmlog": "4.1.2", - "p-map": "1.2.0", - "p-pipe": "1.2.0", - "p-reduce": "1.0.0", - "p-waterfall": "1.0.0", - "semver": "5.5.0", - "slash": "1.0.0", - "temp-write": "3.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "@lerna/write-log-file": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz", - "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==", - "dev": true, - "requires": { - "npmlog": "4.1.2", - "write-file-atomic": "2.4.2" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@octokit/endpoint": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.3.tgz", - "integrity": "sha512-vAWzeoj9Lzpl3V3YkWKhGzmDUoMfKpyxJhpq74/ohMvmLXDoEuAGnApy/7TRi3OmnjyX2Lr+e9UGGAD0919ohA==", - "dev": true, - "requires": { - "deepmerge": "3.2.0", - "is-plain-object": "2.0.4", - "universal-user-agent": "2.0.3", - "url-template": "2.0.8" - } - }, - "@octokit/plugin-enterprise-rest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.1.1.tgz", - "integrity": "sha512-DJNXHH0LptKCLpJ8y3vCA/O+s+3/sDU4JNN2V0M04tsMN0hVGLPzoGgejPJgaxGP8Il5aw+jA5Nl5mTfdt9NrQ==", - "dev": true - }, - "@octokit/request": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.3.0.tgz", - "integrity": "sha512-5YRqYNZOAaL7+nt7w3Scp6Sz4P2g7wKFP9npx1xdExMomk8/M/ICXVLYVam2wzxeY0cIc6wcKpjC5KI4jiNbGw==", - "dev": true, - "requires": { - "@octokit/endpoint": "3.1.3", - "is-plain-object": "2.0.4", - "node-fetch": "2.3.0", - "universal-user-agent": "2.0.3" - } - }, - "@octokit/rest": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.15.0.tgz", - "integrity": "sha512-Un+e7rgh38RtPOTe453pT/KPM/p2KZICimBmuZCd2wEo8PacDa4h6RqTPZs+f2DPazTTqdM7QU4LKlUjgiBwWw==", - "dev": true, - "requires": { - "@octokit/request": "2.3.0", - "before-after-hook": "1.3.2", - "btoa-lite": "1.0.0", - "lodash.get": "4.4.2", - "lodash.set": "4.3.2", - "lodash.uniq": "4.5.0", - "octokit-pagination-methods": "1.1.0", - "universal-user-agent": "2.0.3", - "url-template": "2.0.8" - } - }, - "@types/node": { - "version": "10.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz", - "integrity": "sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dev": true, - "requires": { - "humanize-ms": "1.2.1" - } - }, - "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", - "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" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "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=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "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.2" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "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 - }, - "babel-eslint": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz", - "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.1.3", - "@babel/traverse": "7.1.4", - "@babel/types": "7.1.3", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/generator": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.3.tgz", - "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==", - "dev": true, - "requires": { - "@babel/types": "7.1.3", - "jsesc": "2.5.1", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "7.1.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "7.1.3" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - } - }, - "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.1.3", - "@babel/types": "7.1.3" - } - }, - "@babel/traverse": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.4.tgz", - "integrity": "sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.3", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.1.3", - "@babel/types": "7.1.3", - "debug": "3.2.6", - "globals": "11.8.0", - "lodash": "4.17.11" - } - }, - "@babel/types": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz", - "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "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" - } - }, - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "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==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "babel-plugin-transform-es3-member-expression-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz", - "integrity": "sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es3-property-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz", - "integrity": "sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.4", - "regenerator-runtime": "0.11.1" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "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.5" - } - }, - "before-after-hook": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.2.tgz", - "integrity": "sha512-zyPgY5dgbf99c0uGUjhY4w+mxqEGxPKg9RQDl34VvrVh2bM31lFN+mwR1ZHepq/KA3VCPk1gwJZL6IIJqjLy2w==", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "dev": true - }, - "byte-size": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", - "integrity": "sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==", - "dev": true - }, - "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "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 - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" - } - }, - "caniuse-lite": { - "version": "1.0.30000938", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", - "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "cmd-shim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1" - } - }, - "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 - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "dev": true, - "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true, - "optional": true - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "dev": true, - "requires": { - "array-ify": "1.0.0", - "dot-prop": "3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - } - } - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", - "dev": true, - "requires": { - "compare-func": "1.3.2", - "q": "1.5.1" - } - }, - "conventional-changelog-core": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.1.6.tgz", - "integrity": "sha512-5teTAZOtJ4HLR6384h50nPAaKdDr+IaU0rnD2Gg2C3MS7hKsEPH8pZxrDNqam9eOSPQg9tET6uZY79zzgSz+ig==", - "dev": true, - "requires": { - "conventional-changelog-writer": "4.0.3", - "conventional-commits-parser": "3.0.1", - "dateformat": "3.0.3", - "get-pkg-repo": "1.4.0", - "git-raw-commits": "2.0.0", - "git-remote-origin-url": "2.0.0", - "git-semver-tags": "2.0.2", - "lodash": "4.17.11", - "normalize-package-data": "2.4.0", - "q": "1.5.1", - "read-pkg": "3.0.0", - "read-pkg-up": "3.0.0", - "through2": "2.0.5" - }, - "dependencies": { - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - } - } - }, - "conventional-changelog-preset-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz", - "integrity": "sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz", - "integrity": "sha512-bIlpSiQtQZ1+nDVHEEh798Erj2jhN/wEjyw9sfxY9es6h7pREE5BNJjfv0hXGH/FTrAsEpHUq4xzK99eePpwuA==", - "dev": true, - "requires": { - "compare-func": "1.3.2", - "conventional-commits-filter": "2.0.1", - "dateformat": "3.0.3", - "handlebars": "4.1.0", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "semver": "5.5.0", - "split": "1.0.1", - "through2": "2.0.5" - } - }, - "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", - "dev": true, - "requires": { - "is-subset": "0.1.1", - "modify-values": "1.0.1" - } - }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", - "dev": true, - "requires": { - "JSONStream": "1.3.5", - "is-text-path": "1.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.5", - "trim-off-newlines": "1.0.1" - } - }, - "conventional-recommended-bump": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", - "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "conventional-changelog-preset-loader": "2.0.2", - "conventional-commits-filter": "2.0.1", - "conventional-commits-parser": "3.0.1", - "git-raw-commits": "2.0.0", - "git-semver-tags": "2.0.2", - "meow": "4.0.1", - "q": "1.5.1" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz", - "integrity": "sha1-8si/GB8qgLkvNgEhQpzmOi8K6uA=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", - "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", - "dev": true, - "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.12.1", - "parse-json": "4.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "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.2" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, - "requires": { - "number-is-nan": "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" - } - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "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" - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "1.0.4" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - } - }, - "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 - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "requires": { - "asap": "2.0.6", - "wrappy": "1.0.2" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" - } - }, - "ejs": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.8.tgz", - "integrity": "sha512-QIDZL54fyV8MDcAsO91BMH1ft2qGGaHIJsJIA/+t+7uvXol1dm413fPcUgUb4k8F/9457rx4/KFE4XfDifrQxQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", - "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "4.2.5" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.7.0.tgz", - "integrity": "sha512-zYCeFQahsxffGl87U2aJ7DPyH8CbWgxBC213Y8+TCanhUTf2gEvfq3EKpHmEcozTLyPmGe9LZdMAwC/CpJBM5A==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.4", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.8.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "5.1.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-jsx": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", - "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", - "dev": true, - "requires": { - "acorn": "5.7.3" - } - }, - "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", - "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" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "espree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", - "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", - "dev": true, - "requires": { - "acorn": "5.7.3", - "acorn-jsx": "4.1.1" - } - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "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 - }, - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "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 - }, - "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==", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "table": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", - "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", - "dev": true, - "requires": { - "ajv": "6.5.4", - "lodash": "4.17.11", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - } - } - } - } - }, - "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "dev": true, - "requires": { - "debug": "2.6.9", - "resolve": "1.6.0" - } - }, - "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "dev": true, - "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" - } - }, - "eslint-plugin-es": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz", - "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", - "dev": true, - "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" - }, - "dependencies": { - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - } - } - }, - "eslint-plugin-flowtype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.0.0.tgz", - "integrity": "sha512-84utjHfQeykSyNuhO885pp18yGKYuK2S03EFbhl/BpXR9jk0TABnDP/KhUAqDjjkB43mxK2WZjJesrhnncvR9Q==", - "dev": true, - "requires": { - "lodash": "4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", - "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", - "dev": true, - "requires": { - "contains-path": "0.1.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.6.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", - "dev": true, - "requires": { - "eslint-plugin-es": "1.3.1", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - } - } - }, - "eslint-plugin-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz", - "integrity": "sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==", - "dev": true - }, - "eslint-plugin-standard": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", - "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==", - "dev": true - }, - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.4" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - } - } - }, - "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-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.3", - "micromatch": "3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "flow-bin": { - "version": "0.83.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.83.0.tgz", - "integrity": "sha512-1K83EL/U9Gh0BaXPKkZe6TRizSmNSKx9Wuws1c8gh7DJEwiburtCxYT+4o7in1+GnNEm3CZWnbnVV8n9HMpiDA==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "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.7", - "mime-types": "2.1.22" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "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.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "requires": { - "minipass": "2.3.5" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - }, - "dependencies": { - "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.1" - } - }, - "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.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-pkg-repo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "meow": "3.7.0", - "normalize-package-data": "2.4.0", - "parse-github-repo-url": "1.4.1", - "through2": "2.0.5" - }, - "dependencies": { - "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=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "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.1" - } - }, - "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=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "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.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "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=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.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=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "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" - } - }, - "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.1" - } - }, - "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" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } - } - }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", - "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 - }, - "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": { - "pump": "3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "git-raw-commits": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", - "dev": true, - "requires": { - "dargs": "4.1.0", - "lodash.template": "4.4.0", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.5" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "dev": true, - "requires": { - "gitconfiglocal": "1.0.0", - "pify": "2.3.0" - } - }, - "git-semver-tags": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.2.tgz", - "integrity": "sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==", - "dev": true, - "requires": { - "meow": "4.0.1", - "semver": "5.5.0" - } - }, - "git-up": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", - "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==", - "dev": true, - "requires": { - "is-ssh": "1.3.1", - "parse-url": "5.0.1" - } - }, - "git-url-parse": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz", - "integrity": "sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==", - "dev": true, - "requires": { - "git-up": "4.0.1" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", - "dev": true, - "requires": { - "async": "2.6.2", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "ajv": "6.9.1", - "har-schema": "2.0.0" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "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.4.1", - "sshpk": "1.16.1" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" - }, - "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" - } - }, - "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==", - "dev": true - } - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - }, - "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "2.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - }, - "dependencies": { - "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" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "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==", - "dev": true - }, - "init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", - "dev": true, - "requires": { - "glob": "7.1.2", - "npm-package-arg": "6.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0" - } - }, - "inquirer": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", - "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", - "dev": true, - "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.4.0", - "string-width": "2.1.1", - "strip-ansi": "5.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", - "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", - "dev": true, - "requires": { - "ansi-regex": "4.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "1.6.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-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.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-ssh": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", - "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==", - "dev": true, - "requires": { - "protocols": "1.4.7" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "requires": { - "text-extensions": "1.9.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 - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.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 - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "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-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "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=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "2.0.0" - } - }, - "lerna": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.13.0.tgz", - "integrity": "sha512-MHaqqwfAdYIo0rAE0oOZRQ8eKbKyW035akLf0pz3YlWbdXKH91lxXRLj0BpbEytUz7hDbsv0FNNtXz9u5eTNFg==", - "dev": true, - "requires": { - "@lerna/add": "3.13.0", - "@lerna/bootstrap": "3.13.0", - "@lerna/changed": "3.13.0", - "@lerna/clean": "3.13.0", - "@lerna/cli": "3.13.0", - "@lerna/create": "3.13.0", - "@lerna/diff": "3.13.0", - "@lerna/exec": "3.13.0", - "@lerna/import": "3.13.0", - "@lerna/init": "3.13.0", - "@lerna/link": "3.13.0", - "@lerna/list": "3.13.0", - "@lerna/publish": "3.13.0", - "@lerna/run": "3.13.0", - "@lerna/version": "3.13.0", - "import-local": "1.0.0", - "npmlog": "4.1.2" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "libnpmaccess": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", - "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", - "dev": true, - "requires": { - "aproba": "2.0.0", - "get-stream": "4.1.0", - "npm-package-arg": "6.1.0", - "npm-registry-fetch": "3.9.0" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - } - } - }, - "libnpmpublish": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-1.1.1.tgz", - "integrity": "sha512-nefbvJd/wY38zdt+b9SHL6171vqBrMtZ56Gsgfd0duEKb/pB8rDT4/ObUQLrHz1tOfht1flt2zM+UGaemzAG5g==", - "dev": true, - "requires": { - "aproba": "2.0.0", - "figgy-pudding": "3.5.1", - "get-stream": "4.1.0", - "lodash.clonedeep": "4.5.0", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-registry-fetch": "3.9.0", - "semver": "5.6.0", - "ssri": "6.0.1" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - } - } - }, - "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.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "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.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "3.0.3" - } - }, - "macos-release": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz", - "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==", - "dev": true - }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "requires": { - "vlq": "0.2.3" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", - "dev": true, - "requires": { - "agentkeepalive": "3.5.2", - "cacache": "11.3.2", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.5", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "mem": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", - "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "1.2.0", - "p-is-promise": "2.0.0" - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" - }, - "dependencies": { - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - } - } - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, - "requires": { - "mime-db": "1.38.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" - } - }, - "minipass": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "requires": { - "minipass": "2.3.5" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "dev": true, - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - } - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", - "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", - "dev": true, - "requires": { - "semver": "5.5.0" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.1.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "npm-bundled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", - "dev": true - }, - "npm-lifecycle": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz", - "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", - "dev": true, - "requires": { - "byline": "5.0.0", - "graceful-fs": "4.1.11", - "node-gyp": "3.8.0", - "resolve-from": "4.0.0", - "slide": "1.1.6", - "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.1" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" - } - }, - "npm-packlist": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.3.0.tgz", - "integrity": "sha512-qPBc6CnxEzpOcc4bjoIBJbYdy0D/LFFPUdxvfwor4/w3vxeE0h6TiOVurCEPpQ6trjN77u/ShyfeJGsbAfB3dA==", - "dev": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.6" - } - }, - "npm-pick-manifest": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", - "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1", - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "npm-registry-fetch": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", - "integrity": "sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw==", - "dev": true, - "requires": { - "JSONStream": "1.3.5", - "bluebird": "3.5.3", - "figgy-pudding": "3.5.1", - "lru-cache": "4.1.5", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "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-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.1.0" - } - }, - "os-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz", - "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", - "dev": true, - "requires": { - "macos-release": "2.0.0", - "windows-release": "3.1.0" - } - }, - "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 - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-map-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", - "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", - "dev": true, - "requires": { - "p-reduce": "1.0.0" - } - }, - "p-pipe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", - "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", - "dev": true - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "p-waterfall": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz", - "integrity": "sha1-ftlLPOszMngjU69qrhGqn8I1uwA=", - "dev": true, - "requires": { - "p-reduce": "1.0.0" - } - }, - "pacote": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.1.tgz", - "integrity": "sha512-YKSRsQqmeHxgra0KCdWA2FtVxDPUlBiCdmew+mSe44pzlx5t1ViRMWiQg18T+DREA+vSqYfKzynaToFR4hcKHw==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "cacache": "11.3.2", - "figgy-pudding": "3.5.1", - "get-stream": "4.1.0", - "glob": "7.1.3", - "lru-cache": "5.1.1", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.5", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.3.0", - "npm-pick-manifest": "2.2.3", - "npm-registry-fetch": "3.9.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.1", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.6.0", - "ssri": "6.0.1", - "tar": "4.4.8", - "unique-filename": "1.1.1", - "which": "1.3.1" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parse-github-repo-url": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "parse-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", - "integrity": "sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==", - "dev": true, - "requires": { - "is-ssh": "1.3.1", - "protocols": "1.4.7" - } - }, - "parse-url": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz", - "integrity": "sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==", - "dev": true, - "requires": { - "is-ssh": "1.3.1", - "normalize-url": "3.3.0", - "parse-path": "4.0.1", - "protocols": "1.4.7" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "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.3.0" - } - }, - "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.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - } - }, - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", - "dev": true, - "requires": { - "read": "1.0.7" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, - "protocols": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz", - "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==", - "dev": true - }, - "protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "dev": true, - "requires": { - "genfun": "5.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "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 - }, - "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": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "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==", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "0.0.7" - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "read-package-json": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", - "dev": true, - "requires": { - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "json-parse-better-errors": "1.0.2", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" - } - }, - "read-package-tree": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.2.tgz", - "integrity": "sha512-rW3XWUUkhdKmN2JKB4FL563YAgtINifso5KShykufR03nJ5loGFlkUMe1g/yxmqX073SoYYTsgXu7XdDinKZuA==", - "dev": true, - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2" - } - }, - "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.4.0", - "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.1.0", - "read-pkg": "2.0.0" - }, - "dependencies": { - "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" - } - } - } - }, - "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.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", - "dev": true, - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.11", - "once": "1.4.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", - "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", - "dev": true, - "requires": { - "regenerate": "1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexp-tree": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.5.tgz", - "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.22", - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, - "resolve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", - "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "rollup": { - "version": "0.66.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", - "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "10.12.0" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - } - } - }, - "rollup-plugin-babel": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.2.tgz", - "integrity": "sha512-KfnizE258L/4enADKX61ozfwGHoqYauvoofghFJBhFnpH9Sb9dNPpWg8QHOaAfVASUYV8w0mCx430i9z0LJoJg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "rollup-pluginutils": "2.4.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "estree-walker": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.0.tgz", - "integrity": "sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "rollup-pluginutils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz", - "integrity": "sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw==", - "dev": true, - "requires": { - "estree-walker": "0.6.0", - "micromatch": "3.1.10" - } - } - } - }, - "rollup-plugin-commonjs": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.0.tgz", - "integrity": "sha512-NrfE0g30QljNCnlJr7I2Xguz+44mh0dCxvfxwLnCwtaCK2LwFUp1zzAs8MQuOfhH4mRskqsjfOwGUap/L+WtEw==", - "dev": true, - "requires": { - "estree-walker": "0.5.1", - "magic-string": "0.22.5", - "resolve": "1.6.0", - "rollup-pluginutils": "2.0.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz", - "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==", - "dev": true - } - } - }, - "rollup-plugin-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-3.1.0.tgz", - "integrity": "sha512-BlYk5VspvGpjz7lAwArVzBXR60JK+4EKtPkCHouAWg39obk9S61hZYJDBfMK+oitPdoe11i69TlxKlMQNFC/Uw==", - "dev": true, - "requires": { - "rollup-pluginutils": "2.3.3" - }, - "dependencies": { - "estree-walker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", - "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", - "dev": true - }, - "rollup-pluginutils": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", - "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", - "dev": true, - "requires": { - "estree-walker": "0.5.2", - "micromatch": "2.3.11" - } - } - } - }, - "rollup-plugin-node-resolve": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz", - "integrity": "sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA==", - "dev": true, - "requires": { - "builtin-modules": "2.0.0", - "is-module": "1.0.0", - "resolve": "1.6.0" - }, - "dependencies": { - "builtin-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", - "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", - "dev": true - } - } - }, - "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", - "dev": true, - "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "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 - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0" - } - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "smart-buffer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "socks": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.3.tgz", - "integrity": "sha512-+2r83WaRT3PXYoO/1z+RDEBE7Z2f9YcdQnJ0K/ncXXbV5gJ6wYfNAebYFYiiUjM6E4JyXnPY8cimwyvFYHVUUA==", - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.2" - } - }, - "socks-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", - "dev": true, - "requires": { - "agent-base": "4.2.1", - "socks": "2.2.3" - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "2.0.5" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "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.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "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=", - "dev": true - }, - "strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "requires": { - "duplexer": "0.1.1", - "minimist": "1.2.0", - "through": "2.3.8" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", - "dev": true - }, - "temp-write": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz", - "integrity": "sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "is-stream": "1.1.0", - "make-dir": "1.3.0", - "pify": "3.0.0", - "temp-dir": "1.0.0", - "uuid": "3.3.2" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "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.31", - "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 - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "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.1.2" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "dev": true, - "optional": true, - "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true - }, - "umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "2.0.1" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "universal-user-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", - "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", - "dev": true, - "requires": { - "os-name": "3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "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==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "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.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "1.0.3" - } - }, - "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.3.0" - } - }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "1.0.3" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "dev": true, - "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" - } - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, - "windows-release": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", - "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", - "dev": true, - "requires": { - "execa": "0.10.0" - }, - "dependencies": { - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "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.1" - } - }, - "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.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "0.5.1" - } - }, - "write-file-atomic": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", - "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "write-json-file": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", - "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", - "dev": true, - "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.4.2" - }, - "dependencies": { - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "write-pkg": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", - "dev": true, - "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", - "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.1.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "5.0.0", - "decamelize": "1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/package.json b/res/controllers/novation-launchpad/package.json deleted file mode 100644 index 8ce19bf5775..00000000000 --- a/res/controllers/novation-launchpad/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "@mixxx-launchpad/project", - "version": "2.2.6", - "description": "Novation Launchpad mapping for Mixxx", - "homepage": "https://github.com/dszakallas/mixxx-launchpad", - "respository": "https://github.com/dszakallas/mixxx-launchpad.git", - "scripts": { - "postinstall": "lerna bootstrap", - "lint": "eslint .", - "lerna": "lerna", - "check": "cd packages && flow", - "which": "which" - }, - "author": "Midiparse", - "license": "MIT", - "devDependencies": { - "@babel/core": "^7.3.3", - "@babel/plugin-proposal-class-properties": "^7.3.3", - "@babel/plugin-transform-flow-strip-types": "^7.2.3", - "@babel/plugin-transform-runtime": "^7.2.0", - "@babel/preset-env": "^7.3.1", - "babel-eslint": "^10.0.1", - "babel-plugin-transform-es3-member-expression-literals": "^6.8.0", - "babel-plugin-transform-es3-property-literals": "^6.8.0", - "ejs": "^2.5.2", - "eslint": "^5.7.0", - "eslint-config-standard": "^12.0.0", - "eslint-plugin-flowtype": "^3.0.0", - "eslint-plugin-import": "^2.13.0", - "eslint-plugin-node": "^7.0.1", - "eslint-plugin-promise": "^4.0.1", - "eslint-plugin-standard": "^4.0.0", - "flow-bin": "^0.83.0", - "lerna": "^3.13.0", - "mkdirp": "^0.5.1", - "rollup": "^0.66.6", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-commonjs": "^9.1.0", - "rollup-plugin-json": "^3.1.0", - "rollup-plugin-node-resolve": "^3.0.0" - }, - "controllers": [ - "mk1", - "mk2", - "pro" - ] -} diff --git a/res/controllers/novation-launchpad/packages/.flowconfig b/res/controllers/novation-launchpad/packages/.flowconfig deleted file mode 100644 index 9c2a1fcfe19..00000000000 --- a/res/controllers/novation-launchpad/packages/.flowconfig +++ /dev/null @@ -1,11 +0,0 @@ -[ignore] -.*/node_modules/ - -[include] -.*/mk1/ -.*/mk2/ -.*/pro/ -.*/app/ - - -[options] diff --git a/res/controllers/novation-launchpad/packages/app/package-lock.json b/res/controllers/novation-launchpad/packages/app/package-lock.json deleted file mode 100644 index 6c89099df4e..00000000000 --- a/res/controllers/novation-launchpad/packages/app/package-lock.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@mixxx-launchpad/app", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" - }, - "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=" - }, - "lodash-es": { - "version": "4.17.8", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.8.tgz", - "integrity": "sha512-I9mjAxengFAleSThFhhAhvba6fsO0hunb9/0sQ6qQihSZsJRBofv2rYH58WXaOb/O++eUmYpCLywSQ22GfU+sA==" - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/package.json b/res/controllers/novation-launchpad/packages/app/package.json deleted file mode 100644 index caca596a6a2..00000000000 --- a/res/controllers/novation-launchpad/packages/app/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@mixxx-launchpad/app", - "private": true, - "version": "1.0.0", - "main": "src/index.js", - "module": "src/index.js", - "author": "Midiparse", - "license": "MIT", - "dependencies": { - "@mixxx-launchpad/mixxx": "~1.0.0", - "eventemitter3": "~3.1.0", - "json-stringify-safe": "~5.0.1", - "lodash-es": "~4.17.4" - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/Bpm.js b/res/controllers/novation-launchpad/packages/app/src/App/Bpm.js deleted file mode 100644 index da27b34acd7..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/Bpm.js +++ /dev/null @@ -1,36 +0,0 @@ -/* @flow */ -import EventEmitter from 'eventemitter3' - -export default class Bpm extends EventEmitter { - tapTime: number - taps: number[] - max: number - - constructor (max: ?number) { - super() - if (max == null) { - max = 8 - } - this.tapTime = 0 - this.taps = [] - this.max = max - } - reset () { - this.taps = [] - } - tap () { - const now = Date.now() - const tapDelta = now - this.tapTime - this.tapTime = now - if (tapDelta > 2000) { // reset if longer than two seconds between taps - this.taps = [] - } else { - this.taps.push(60000 / tapDelta) - if (this.taps.length > this.max) this.taps.shift() // Keep the last n samples for averaging - let sum = 0 - this.taps.forEach((v) => { sum += v }) - const avg = sum / this.taps.length - this.emit('tap', avg) - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/Layout.js b/res/controllers/novation-launchpad/packages/app/src/App/Layout.js deleted file mode 100644 index da5c38cca35..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/Layout.js +++ /dev/null @@ -1,265 +0,0 @@ -/* @flow */ -import assign from 'lodash-es/assign' -import findIndex from 'lodash-es/findIndex' - -import { channelControls } from '@mixxx-launchpad/mixxx' - -import Grande from './presets/Grande' -import Juggler from './presets/Juggler' -import Sampler from './presets/Sampler' -import Short from './presets/Short' -import Tall from './presets/Tall' -import MidiComponent from '../Controls/MidiComponent' -import { modes, retainAttackMode } from './ModifierSidebar' - -import type { MidiMessage } from '../' -import type { Preset } from './Preset' -import type { Modifier } from './ModifierSidebar' -import type { ControlComponentBuilder } from '../Controls/ControlComponent' -import type { MidiBus } from '../MidiBus' -import MidiButtonComponent from '../Controls/MidiButtonComponent' -import { makePresetFromPartialTemplate } from './Preset' - -type Size = 'short' | 'tall' | 'grande' -type Block = {| - offset: [number, number], - size: Size, - channel: number, - index: number -|} - -type Diff = [Block[], Block[]] - -const initialChannels = [0, 1] - -const onMidi = (selectorBar, channel, modifier: Modifier) => retainAttackMode(modifier, (mode, { value }: MidiMessage) => { - const selected = selectorBar.getChord() - modes(mode, - () => { - if (!value && selected.length) { - const diff = reorganize(selectorBar.getLayout(), selected) - selectorBar.updateLayout(diff) - selectorBar.removeChord() - } else if (value) { - selectorBar.addToChord(channel) - } - }, - () => { - if (value) { - if (selected.length) selectorBar.removeChord() - const diff = cycle(channel, selectorBar.getLayout(), 1) - selectorBar.updateLayout(diff) - } - }, - () => { - if (value) { - if (selected.length) selectorBar.removeChord() - const diff = cycle(channel, selectorBar.getLayout(), -1) - selectorBar.updateLayout(diff) - } - } - ) -}) - -class SelectorBar extends MidiComponent { - id: string - bindings: [MidiButtonComponent, Function][] - controlComponentBuilder: ControlComponentBuilder - modifier: Modifier - chord: number[] - layout: { [key: string]: Block } - mountedPresets: { [key: number]: Preset } - - static buttons = [ 'up', 'down', 'left', 'right', 'session', 'user1', 'user2', 'mixer' ] - - static channels = [0, 1, 2, 3, 4, 5, 6, 7] - - constructor (midibus: MidiBus, controlComponentBuilder: ControlComponentBuilder, modifier: Modifier, id: string) { - super(midibus) - this.id = id - this.bindings = SelectorBar.buttons - .map((v, i) => { - const binding = new MidiButtonComponent(this.midibus, this.device.buttons[v]) - return [binding, onMidi(this, i, modifier)] - }) - this.controlComponentBuilder = controlComponentBuilder - this.modifier = modifier - this.chord = [] - this.layout = { } - this.mountedPresets = { } - } - - getLayout () { - const res = [] - for (const k in this.layout) { - res.push(this.layout[k]) - } - return res - } - - updateLayout (diff: Diff) { - const removedChannels = diff[0].map((block) => block.channel) - removedChannels.forEach((ch) => { - delete this.layout[String(ch)] - this.bindings[ch][0].button.sendColor(this.device.colors.black) - this.mountedPresets[ch].unmount() - }) - const addedBlocks = diff[1] - addedBlocks.forEach((block) => { - this.layout[String(block.channel)] = block - if (block.index) { - this.bindings[block.channel][0].button.sendColor(this.device.colors.hi_orange) - } else { - this.bindings[block.channel][0].button.sendColor(this.device.colors.hi_green) - } - this.mountedPresets[block.channel] = - makePresetFromPartialTemplate(`${this.id}.deck.${block.channel}`, cycled[block.size][block.index], block.offset)(channelControls[block.channel])(this.controlComponentBuilder)(this.midibus)(this.modifier) - this.mountedPresets[block.channel].mount() - }) - } - - removeChord () { - const layout = this.getLayout() - this.chord.forEach((ch) => { - const found = findIndex(layout, (b) => b.channel === ch) - if (found === -1) { - this.bindings[ch][0].button.sendColor(this.device.colors.black) - } else { - const block = layout[found] - if (block.index) { - this.bindings[ch][0].button.sendColor(this.device.colors.hi_orange) - } else { - this.bindings[ch][0].button.sendColor(this.device.colors.hi_green) - } - } - this.chord = [] - }) - } - - addToChord (channel: number) { - if (this.chord.length === 4) { - const rem = this.chord.shift() - const found = findIndex((this.layout: any), (b) => b.channel === rem) // FIXME: badly typed - if (found === -1) { - this.bindings[rem][0].button.sendColor(this.device.colors.black) - } else { - const layout = this.layout[String(found)] - if (layout.index) { - this.bindings[rem][0].button.sendColor(this.device.colors.hi_orange) - } else { - this.bindings[rem][0].button.sendColor(this.device.colors.hi_green) - } - } - } - this.chord.push(channel) - this.bindings[channel][0].button.sendColor(this.device.colors.hi_red) - } - - getChord () { - return this.chord - } - - onMount () { - this.bindings.forEach(([binding, midi]) => { - binding.mount() - binding.on('midi', midi) - }) - } - - onUnmount () { - this.bindings.forEach(([binding, midi]) => { - binding.removeListener('midi', midi) - binding.unmount() - }) - } -} - -export default class Layout extends MidiComponent { - selectorBar: SelectorBar - - constructor (midibus: MidiBus, controlComponentBuilder: ControlComponentBuilder, modifier: Modifier, id: string) { - super(midibus) - this.selectorBar = new SelectorBar(midibus, controlComponentBuilder, modifier, `${id}.selectorBar`) - } - onMount () { - this.selectorBar.mount() - const diff = reorganize([], initialChannels) - this.selectorBar.updateLayout(diff) - } - onUnmount () { - const diff = reorganize(this.selectorBar.getLayout(), []) - this.selectorBar.updateLayout(diff) - this.selectorBar.unmount() - } -} - -const offsets = [ - [0, 0], - [4, 0], - [0, 4], - [4, 4] -] - -const presets = { - grande: [ Grande ], - tall: [ Tall, Juggler ], - short: [ Short, Sampler ] -} - -const cycled = { - 'grande': [...presets.grande, ...presets.tall, ...presets.short], - 'tall': [...presets.tall, ...presets.short], - 'short': presets.short -} - -const blockEquals = (a: Block, b: Block): boolean => { - return a.offset === b.offset && a.size === b.size && - a.channel === b.channel && a.index === b.index -} - -const reorganize = (current: Block[], selectedChannels: number[]): Diff => { - const next = ((chs) => { - switch (chs.length) { - case 0: return [] - case 1: return [ - { offset: offsets[0], size: 'grande', channel: chs[0], index: 0 } - ] - case 2: return [ - { offset: offsets[0], size: 'tall', channel: chs[0], index: 0 }, - { offset: offsets[1], size: 'tall', channel: chs[1], index: 0 } - ] - case 3: return [ - { offset: offsets[0], size: 'tall', channel: chs[0], index: 0 }, - { offset: offsets[1], size: 'short', channel: chs[1], index: 0 }, - { offset: offsets[3], size: 'short', channel: chs[2], index: 0 } - ] - default: return [ - { offset: offsets[2], size: 'short', channel: chs[0], index: 0 }, - { offset: offsets[3], size: 'short', channel: chs[1], index: 0 }, - { offset: offsets[2], size: 'short', channel: chs[2], index: 0 }, - { offset: offsets[3], size: 'short', channel: chs[3], index: 0 } - ] - } - })(selectedChannels) - return current.reduce((diff, block) => { - const [neg, pos] = diff - const matched = findIndex(pos, (b) => blockEquals(block, b)) - return matched === -1 - ? [neg.concat([block]), pos] - : [neg, pos.slice(0, matched).concat(pos.slice(matched + 1, pos.length))] - }, [[], next]) -} - -const posMod = (x, n) => ((x % n) + n) % n - -const cycle = (channel: number, current: Block[], dir: 1 | -1): Diff => { - const matched = findIndex(current, (block) => block.channel === channel) - if (matched === -1) { - return [[], []] - } - const nextIndex = posMod((current[matched].index + dir), cycled[current[matched].size].length) - if (nextIndex === current[matched].index) { - return [[], []] - } - return [[current[matched]], [assign({}, current[matched], { index: nextIndex })]] -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/ModifierSidebar.js b/res/controllers/novation-launchpad/packages/app/src/App/ModifierSidebar.js deleted file mode 100644 index 438236e22ee..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/ModifierSidebar.js +++ /dev/null @@ -1,95 +0,0 @@ -/* @flow */ -import type { MidiMessage } from '../' -import type { MidiBus } from '../MidiBus' - -import MidiComponent from '../Controls/MidiComponent' - -import MidiButtonComponent from '../Controls/MidiButtonComponent' - -export type ModifierState = { - ctrl: boolean, - shift: boolean -} - -export interface Modifier { - getState (): ModifierState -} - -export default class ModifierSidebar extends MidiComponent implements Modifier { - shift: MidiButtonComponent - ctrl: MidiButtonComponent - state: {| shift: boolean, ctrl: boolean |} - listener: (MidiMessage) => void - - constructor (midibus: MidiBus) { - super(midibus) - this.shift = new MidiButtonComponent(this.midibus, this.device.buttons.solo) - this.ctrl = new MidiButtonComponent(this.midibus, this.device.buttons.arm) - - this.state = { - shift: false, - ctrl: false - } - - this.listener = ({ value, button, device }) => { - if (value) { - button.sendColor(device.colors.hi_red) - } else { - button.sendColor(device.colors.black) - } - if (button.def.name === this.device.buttons.solo.def.name) { - this.state.shift = !!value - this.emit('shift', value) - } else { - this.state.ctrl = !!value - this.emit('ctrl', value) - } - } - } - - onMount () { - this.shift.mount() - this.ctrl.mount() - - this.shift.on('midi', this.listener) - this.ctrl.on('midi', this.listener) - } - - onUnmount () { - this.shift.removeListener('midi', this.listener) - this.ctrl.removeListener('midi', this.listener) - - this.shift.unmount() - this.ctrl.unmount() - } - - getState () { - return this.state - } -} - -export const modes = (ctx: ModifierState, n?: () => void, c?: () => void, s?: () => void, cs?: () => void) => { - if (ctx.shift && ctx.ctrl) { - cs && cs() - } else if (ctx.shift) { - s && s() - } else if (ctx.ctrl) { - c && c() - } else { - n && n() - } -} - -export const retainAttackMode = , R>(modifier: Modifier, cb: (ModifierState, MidiMessage, ...Rest) => R) => { - let state = { - shift: false, - ctrl: false - } - - return function (data: MidiMessage, ...rest: Rest) { - if (data.value) { - state = modifier.getState() - } - return cb(state, data, ...rest) - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/PlaylistSidebar.js b/res/controllers/novation-launchpad/packages/app/src/App/PlaylistSidebar.js deleted file mode 100644 index d49547d9024..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/PlaylistSidebar.js +++ /dev/null @@ -1,122 +0,0 @@ -/* @flow */ -import { playListControl } from '@mixxx-launchpad/mixxx' -import MidiComponent from '../Controls/MidiComponent' -import MidiButtonComponent from '../Controls/MidiButtonComponent' - -import type { MidiBus } from '../MidiBus' -import type { TimerBuilder } from '@mixxx-launchpad/mixxx' - -const autoscrolled = (binding) => (timerBuilder: TimerBuilder) => { - let started - let minInterval = 32 - let interval - let timer - - binding.on('midi', (data) => { - if (data.value) { - interval = 250 - started = timer.start(interval) - } else { - timer.end() - } - }) - - binding.on('mount', () => { - timer = timerBuilder(() => { - binding.emit('scroll') - if (interval > minInterval) { - const current = Date.now() - // silence Flow with unsafe casts - if (interval === 250 && current - (started: any) > 1500) { - interval = 125 - timer.restart(interval) - } else if (interval === 125 && current - (started: any) > 3000) { - interval = 63 - timer.restart(interval) - } else if (interval === 63 && current - (started: any) > 6000) { - interval = minInterval - timer.restart(interval) - } - } - }) - }) - - binding.on('unmount', () => { - timer.end() - }) - - return binding -} - -const onScroll = (control) => () => { control.setValue(1) } - -const onMidi = (control) => ({ value, button, device }) => { - if (value) { - control.setValue(1) - button.sendColor(device.colors.hi_red) - } else { - button.sendColor(device.colors.hi_yellow) - } -} - -const onMount = ({ button, device }) => { - button.sendColor(device.colors.hi_yellow) -} - -const onUnmount = ({ button, device }) => { - button.sendColor(device.colors.black) -} - -export default class PlaylistSidebar extends MidiComponent { - buttons: MidiButtonComponent[] - - constructor (midibus: MidiBus, timerBuilder: TimerBuilder) { - super(midibus) - - const btns = [ - new MidiButtonComponent(midibus, this.device.buttons.vol), - new MidiButtonComponent(midibus, this.device.buttons.pan), - new MidiButtonComponent(midibus, this.device.buttons.snda), - new MidiButtonComponent(midibus, this.device.buttons.sndb), - new MidiButtonComponent(midibus, this.device.buttons.stop) - ] - - const prevPlaylist = autoscrolled(btns[0])(timerBuilder) - const nextPlaylist = autoscrolled(btns[1])(timerBuilder) - const toggleItem = btns[2] - const prevTrack = autoscrolled(btns[3])(timerBuilder) - const nextTrack = autoscrolled(btns[4])(timerBuilder) - - prevPlaylist.on('scroll', onScroll(playListControl.SelectPrevPlaylist)) - prevPlaylist.on('midi', onMidi(playListControl.SelectPrevPlaylist)) - prevPlaylist.on('mount', onMount) - prevPlaylist.on('unmount', onUnmount) - - nextPlaylist.on('scroll', onScroll(playListControl.SelectNextPlaylist)) - nextPlaylist.on('midi', onMidi(playListControl.SelectNextPlaylist)) - nextPlaylist.on('mount', onMount) - nextPlaylist.on('unmount', onUnmount) - - prevTrack.on('scroll', onScroll(playListControl.SelectPrevTrack)) - prevTrack.on('midi', onMidi(playListControl.SelectPrevTrack)) - prevTrack.on('mount', onMount) - prevTrack.on('unmount', onUnmount) - - nextTrack.on('scroll', onScroll(playListControl.SelectNextTrack)) - nextTrack.on('midi', onMidi(playListControl.SelectNextTrack)) - nextTrack.on('mount', onMount) - nextTrack.on('unmount', onUnmount) - - toggleItem.on('midi', onMidi(playListControl.ToggleSelectedSidebarItem)) - toggleItem.on('mount', onMount) - toggleItem.on('unmount', onUnmount) - - this.buttons = btns - } - onMount () { - this.buttons.forEach((button) => button.mount()) - } - onUnmount () { - this.buttons.forEach((button) => button.unmount()) - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/Preset.js b/res/controllers/novation-launchpad/packages/app/src/App/Preset.js deleted file mode 100644 index 4391049b25e..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/Preset.js +++ /dev/null @@ -1,164 +0,0 @@ -/* @flow */ - -// This monstrous dynamic giant needs some serious refactor - -import assign from 'lodash-es/assign' - -import MidiComponent from '../Controls/MidiComponent' -import MidiButtonComponent from '../Controls/MidiButtonComponent' - -import type { MidiBus } from '../MidiBus' -import type { Modifier } from './ModifierSidebar' -import type { ControlComponentBuilder } from '../Controls/ControlComponent' -import type { LaunchpadDevice } from '../' - -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export type PresetType = { - controlBindings: Object, - controlListeners: Object, - buttonBindings: Object, - buttonListeners: Object -} - -export type Template = Object - -export type PartialTemplate = { [key: string]: (ChannelControl) => (Modifier) => (LaunchpadDevice) => Template } - -export const makePresetFromPartialTemplate = (id: string, partialTemplate: PartialTemplate, offset: [number, number]) => - (deck: ChannelControl) => (controlComponentBuilder: ControlComponentBuilder) => - (midibus: MidiBus) => - (modifier: Modifier) => { - const template = {} - Object.keys(partialTemplate).forEach((k) => { - assign(template, { [k]: partialTemplate[k](deck)(modifier)(midibus.device) }) - }) - return new Preset(midibus, controlComponentBuilder, modifier, id, template, offset) - } - -export class Preset extends MidiComponent { - preset: PresetType - - constructor (midibus: MidiBus, controlComponentBuilder: ControlComponentBuilder, modifier: Modifier, id: string, template: Template, offset: [number, number]) { - super(midibus) - - const controlBindings = {} - const controlListeners = {} - const buttonBindings = {} - const buttonListeners = {} - - Object.keys(template).forEach((tk) => { - if (template[tk] && template[tk].bindings) { - const bindings = template[tk].bindings - const instance = { - state: template[tk].state, - bindings: {} - } - Object.keys(bindings).forEach((bk) => { - if (bindings[bk]) { - const binding = bindings[bk] - if (binding.type === 'control') { - const name = `${binding.target.def.group}${binding.target.def.name}` - if (!controlBindings[name]) { - controlBindings[name] = controlComponentBuilder(`${id}.${tk}.${bk}`)(binding.target) - } - instance.bindings[bk] = controlBindings[name] - controlListeners[name] = controlListeners[name] || { } - ;['update', 'mount', 'unmount'].forEach((action) => { - if (typeof binding[action] === 'function') { - appendListener(action, controlListeners[name], function (data) { - return binding[action](data, instance, modifier) - }) - } - }) - } else if (binding.type === 'button') { - const position = tr(binding.target, offset) - const name = nameOf(position[0], position[1]) - if (!buttonBindings[name]) { - buttonBindings[name] = new MidiButtonComponent(this.midibus, this.device.buttons[name]) - } - instance.bindings[bk] = buttonBindings[name] - buttonListeners[name] = buttonListeners[name] || { } - ;['attack', 'release', 'midi', 'mount', 'unmount'].forEach((action) => { - if (typeof binding[action] === 'function') { - appendListener(action, buttonListeners[name], function (data) { - return binding[action](data, instance) - }) - } - }) - if (typeof binding['unmount'] !== 'function') { - appendListener('unmount', buttonListeners[name], function (data) { - instance.bindings[bk].button.sendColor(this.device.colors.black) - }) - } - } - } - }) - } - }) - this.preset = { controlBindings, controlListeners, buttonBindings, buttonListeners } - } - - onMount () { - const { controlBindings, buttonBindings, controlListeners, buttonListeners } = this.preset - addListeners(controlBindings, controlListeners) - addListeners(buttonBindings, buttonListeners) - Object.keys(controlBindings).forEach((k) => controlBindings[k].mount()) - Object.keys(buttonBindings).forEach((k) => buttonBindings[k].mount()) - } - - onUnmount () { - const { controlBindings, buttonBindings, controlListeners, buttonListeners } = this.preset - Object.keys(controlBindings).forEach((k) => controlBindings[k].unmount()) - Object.keys(buttonBindings).forEach((k) => buttonBindings[k].unmount()) - removeListeners(controlBindings, controlListeners) - removeListeners(buttonBindings, buttonListeners) - } -} - -const tr = (a, b) => [a[0] + b[0], a[1] + b[1]] - -const nameOf = (x, y) => `${7 - y},${x}` - -const appendListener = (type, bindings, binding) => { - if (bindings[type] && Array.isArray(bindings[type])) { - bindings[type].push(binding) - } else if (bindings[type]) { - const first = bindings[type] - bindings[type] = [first, binding] - } else { - bindings[type] = binding - } -} - -const addListeners = (tgt, bindings) => { - Object.keys(bindings).forEach((binding) => { - if (tgt[binding]) { - Object.keys(bindings[binding]).forEach((k) => { - if (Array.isArray(bindings[binding][k])) { - bindings[binding][k].forEach((f) => { - tgt[binding].on(k, f) - }) - } else { - tgt[binding].on(k, bindings[binding][k]) - } - }) - } - }) -} - -const removeListeners = (tgt, bindings) => { - Object.keys(bindings).forEach((binding) => { - if (tgt[binding]) { - Object.keys(bindings[binding]).forEach((k) => { - if (Array.isArray(bindings[binding][k])) { - bindings[binding][k].forEach((f) => { - tgt[binding].removeListener(k, f) - }) - } else { - tgt[binding].removeListener(k, bindings[binding][k]) - } - }) - } - }) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/Screen.js b/res/controllers/novation-launchpad/packages/app/src/App/Screen.js deleted file mode 100644 index ba439a794ae..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/Screen.js +++ /dev/null @@ -1,32 +0,0 @@ -/* @flow */ -import PlaylistSidebar from './PlaylistSidebar' -import ModifierSidebar from './ModifierSidebar' -import Layout from './Layout' -import MidiComponent from '../Controls/MidiComponent' - -import type { TimerBuilder } from '@mixxx-launchpad/mixxx' -import type { ControlComponentBuilder } from '../Controls/ControlComponent' -import type { MidiBus } from '../MidiBus' - -export default class Screen extends MidiComponent { - modifier: ModifierSidebar - playListSidebar: PlaylistSidebar - layout: Layout - - constructor (midibus: MidiBus, timerBuilder: TimerBuilder, controlComponentBuilder: ControlComponentBuilder, id: string) { - super(midibus) - this.modifier = new ModifierSidebar(midibus) - this.playListSidebar = new PlaylistSidebar(midibus, timerBuilder) - this.layout = new Layout(midibus, controlComponentBuilder, this.modifier, `${id}.layout`) - } - onMount () { - this.modifier.mount() - this.playListSidebar.mount() - this.layout.mount() - } - onUnmount () { - this.layout.unmount() - this.playListSidebar.unmount() - this.modifier.unmount() - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/beatjump.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/beatjump.js deleted file mode 100644 index 7c3f7b57199..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/beatjump.js +++ /dev/null @@ -1,99 +0,0 @@ -/* @flow */ -import flatMap from 'lodash-es/flatMap' - -import type { LaunchpadDevice } from '../../' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export default (jumps: [number, number][], vertical?: boolean) => (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const bindings = { } - const onMidi = (k, j, d) => (modifier) => retainAttackMode(modifier, (mode, { value }, { bindings, state }) => { - modes(mode, - () => { - if (!state.mode) { - if (value) { - deck.beatjump.setValue(j[state.set] * d) - } - } else { - if (value) { - const currentJump = j[state.set] * d - deck.beatjump.setValue(currentJump) - if (state.pressing != null) { - bindings[state.pressing].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - bindings[k].button.sendColor(device.colors[`hi_${state.color[state.set]}`]) - state.pressing = k - state.diff = state.diff + currentJump - } else { - if (state.pressing === k) { - bindings[k].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - state.pressing = null - deck.beatjump.setValue(-state.diff) - state.diff = 0 - } - } - } - }, - () => { - if (value) { - if (state.set === 1) { - state.set = 0 - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - }, - () => { - if (value) { - if (state.set === 0) { - state.set = 1 - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - }, - () => { - if (value) { - state.mode = !state.mode - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - ) - }) - const onMount = (k) => (_, { bindings, state }) => { - const prefix = state.mode ? 'lo' : 'hi' - bindings[k].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - const spec = flatMap((jumps: any), (j, i) => [[j, -1], [j, 1]]) // FIXME: flatMap is incorrectly typed see https://github.com/flow-typed/flow-typed/issues/2463 - - spec.forEach(([jump, dir], i) => { - bindings[i] = { - type: 'button', - target: vertical ? [gridPosition[0] + i % 2, gridPosition[1] + ~~(i / 2)] : [gridPosition[0] + ~~(i / 2), gridPosition[1] + i % 2], - midi: onMidi(i, jump, dir)(modifier), - mount: onMount(i) - } - }) - return { - bindings, - state: { - mode: false, - pressing: 0, - diff: 0, - set: 0, - color: [ - 'green', - 'red' - ] - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/beatloop.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/beatloop.js deleted file mode 100644 index 60b31431d31..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/beatloop.js +++ /dev/null @@ -1,40 +0,0 @@ -/* @flow */ -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' -import type { LaunchpadDevice } from '../../' - -export default (loops: number[], d: number) => (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const bindings = { } - const onAttack = (l) => (modifier) => () => { - modes(modifier.getState(), - () => deck.beatloops[l].toggle.setValue(1) - ) - } - - const onUpdate = (i) => ({ value }, { bindings }) => { - if (value) { - bindings[i].button.sendColor(device.colors.hi_red) - } else { - bindings[i].button.sendColor(device.colors.lo_red) - } - } - - loops.forEach((loop, i) => { - const dx = i % d - const dy = ~~(i / d) - bindings[i] = { - type: 'button', - target: [gridPosition[0] + dx, gridPosition[1] + dy], - attack: onAttack(loop)(modifier) - } - bindings[`${loop}.enabled`] = { - type: 'control', - target: deck.beatloops[loop].enabled, - update: onUpdate(i) - } - }) - return { - bindings - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/cue.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/cue.js deleted file mode 100644 index 6d1befb942e..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/cue.js +++ /dev/null @@ -1,41 +0,0 @@ -/* @flow */ - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { LaunchpadDevice } from '../../' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - cue: { - type: 'button', - target: gridPosition, - midi: retainAttackMode(modifier, (mode, { value }) => { - modes(mode, - () => { - if (value) { - deck.cue_default.setValue(1) - } else { - deck.cue_default.setValue(0) - } - }, - () => value && deck.cue_set.setValue(1) - ) - }) - }, - cueIndicator: { - type: 'control', - target: deck.cue_indicator, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value) { - bindings.cue.button.sendColor(device.colors.hi_red) - } else if (!value) { - bindings.cue.button.sendColor(device.colors.black) - } - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/grid.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/grid.js deleted file mode 100644 index 981e2d0bb1e..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/grid.js +++ /dev/null @@ -1,49 +0,0 @@ -/* @flow */ - -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onGrid = (dir) => ({ value }: MidiMessage, { bindings, state }: Object) => { - if (!value) { - bindings[dir].button.sendColor(device.colors.black) - } else { - modes(modifier.getState(), - () => { - bindings[dir].button.sendColor(device.colors.hi_yellow) - state[dir].normal.setValue(1) - }, - () => { - bindings[dir].button.sendColor(device.colors.hi_amber) - state[dir].ctrl.setValue(1) - }) - } - } - return { - bindings: { - back: { - type: 'button', - target: gridPosition, - midi: onGrid('back') - }, - forth: { - type: 'button', - target: [gridPosition[0] + 1, gridPosition[1]], - midi: onGrid('forth') - } - }, - state: { - back: { - normal: deck.beats_translate_earlier, - ctrl: deck.beats_adjust_slower - }, - forth: { - normal: deck.beats_translate_later, - ctrl: deck.beats_adjust_faster - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/hotcue.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/hotcue.js deleted file mode 100644 index 579d802f748..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/hotcue.js +++ /dev/null @@ -1,54 +0,0 @@ -/* @flow */ -import range from 'lodash-es/range' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' -import type { LaunchpadDevice } from '../../' - -export default (n: number, d: number, s: number = 0) => (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onHotcueMidi = (i) => ({ value }, { bindings }) => { - modes(modifier.getState(), - () => { - if (value) { - deck.hotcues[1 + i + s].activate.setValue(1) - } else { - deck.hotcues[1 + i + s].activate.setValue(0) - } - }, - () => { - if (value) { - if (bindings[`${i}.enabled`].getValue()) { - deck.hotcues[1 + i + s].clear.setValue(1) - } else { - deck.hotcues[1 + i + s].set.setValue(1) - } - } - }) - } - const onHotcueEnabled = (i) => ({ value }, { bindings }) => { - if (value) { - bindings[`${i}.btn`].button.sendColor(device.colors.lo_yellow) - } else { - bindings[`${i}.btn`].button.sendColor(device.colors.black) - } - } - const bindings = { } - range(n).map((i) => { - const dx = i % d - const dy = ~~(i / d) - bindings[`${i}.btn`] = { - type: 'button', - target: [gridPosition[0] + dx, gridPosition[1] + dy], - midi: onHotcueMidi(i) - } - bindings[`${i}.enabled`] = { - type: 'control', - target: deck.hotcues[1 + i + s].enabled, - update: onHotcueEnabled(i) - } - }) - return { - bindings - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/key.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/key.js deleted file mode 100644 index 7d472ac0aea..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/key.js +++ /dev/null @@ -1,45 +0,0 @@ -/* @flow */ - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - button: { - type: 'button', - target: gridPosition, - attack: (message: MidiMessage, { bindings }: Object) => { - modes(modifier.getState(), - () => { - bindings.keylock.setValue(Number(!bindings.keylock.getValue())) - }, - () => { - deck.key.setValue(deck.key.getValue() - 1) - }, - () => { - deck.key.setValue(deck.key.getValue() + 1) - }, - () => { - deck.reset_key.setValue(1) - } - ) - } - }, - keylock: { - type: 'control', - target: deck.keylock, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value) { - bindings.button.button.sendColor(device.colors.hi_red) - } else { - bindings.button.button.sendColor(device.colors.black) - } - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/keyshift.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/keyshift.js deleted file mode 100644 index c8a1bd750c1..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/keyshift.js +++ /dev/null @@ -1,82 +0,0 @@ -/* @flow */ - -import type { LaunchpadDevice } from '../../' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export default (shifts: [number, number][], d: number) => (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const bindings = { } - - const temporaryChange = (i, value, bindings, state) => { - if (value) { - const base = state.on === -1 ? deck.key.getValue() : state.base - if (state.on !== -1) { - bindings[state.on].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - bindings[i].button.sendColor(device.colors[`hi_${state.color[state.set]}`]) - deck.key.setValue(((base + shifts[i][state.set]) % 12) + 12) - state.on = i - state.base = base - } else { - if (state.on === i) { - bindings[i].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - deck.key.setValue(state.base) - state.on = -1 - } - } - } - - const onMidi = (i) => (modifier) => retainAttackMode(modifier, (mode, { value }, { bindings, state }) => { - modes(mode, - () => temporaryChange(i, value, bindings, state), - () => { - if (value) { - if (state.set === 1) { - state.set = 0 - for (let i = 0; i < shifts.length; ++i) { - bindings[i].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - } - } - }, - () => { - if (value) { - if (state.set === 0) { - state.set = 1 - for (let i = 0; i < shifts.length; ++i) { - bindings[i].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - } - } - } - ) - }) - - shifts.forEach((s, i) => { - const dx = i % d - const dy = ~~(i / d) - const position = [gridPosition[0] + dx, gridPosition[1] + dy] - bindings[i] = { - type: 'button', - target: position, - midi: onMidi(i)(modifier), - mount: function (_, { bindings, state }) { - bindings[i].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - } - }) - return { - bindings, - state: { - on: -1, - base: null, - set: 0, - color: [ - 'green', - 'red' - ] - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/load.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/load.js deleted file mode 100644 index b05e3cb7ef8..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/load.js +++ /dev/null @@ -1,50 +0,0 @@ -/* @flow */ - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onStateChanged = (loaded, playing, bindings) => { - if (loaded && playing) { - bindings.button.button.sendColor(device.colors.lo_red) - } else if (loaded) { - bindings.button.button.sendColor(device.colors.lo_yellow) - } else { - bindings.button.button.sendColor(device.colors.lo_green) - } - } - return { - bindings: { - samples: { - type: 'control', - target: deck.track_samples, - update: ({ value }: ControlMessage, { bindings }: Object) => - onStateChanged(value, bindings.play.getValue(), bindings) - }, - play: { - type: 'control', - target: deck.play, - update: ({ value }: ControlMessage, { bindings }: Object) => - onStateChanged(bindings.samples.getValue(), value, bindings) - }, - button: { - type: 'button', - target: gridPosition, - attack: (message: MidiMessage, { bindings }: Object) => { - modes(modifier.getState(), - () => { - if (!bindings.samples.getValue()) { - deck.LoadSelectedTrack.setValue(1) - } - }, - () => deck.LoadSelectedTrack.setValue(1), - () => deck.eject.setValue(1) - ) - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopIo.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/loopIo.js deleted file mode 100644 index d56ca28dfb8..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopIo.js +++ /dev/null @@ -1,36 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onMidi = (dir: 'in' | 'out') => ({ value }: MidiMessage, { bindings }: Object) => { - modes(modifier.getState(), () => { - if (value) { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`loop_${dir}`: any)].setValue(1) - bindings[dir].button.sendColor(device.colors.hi_green) - } else { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`loop_${dir}`: any)].setValue(0) - bindings[dir].button.sendColor(device.colors.black) - } - }) - } - return { - bindings: { - in: { - type: 'button', - target: gridPosition, - midi: onMidi('in') - }, - out: { - type: 'button', - target: [gridPosition[0] + 1, gridPosition[1]], - midi: onMidi('out') - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopMultiply.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/loopMultiply.js deleted file mode 100644 index 8cb7270563b..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopMultiply.js +++ /dev/null @@ -1,30 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (_: Modifier) => (device: LaunchpadDevice) => { - const onMount = (k) => (dk: null, { bindings }: Object) => { - bindings[k].button.sendColor(device.colors.lo_yellow) - } - const onAttack = (k: 'double' | 'halve') => () => { - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`loop_${k}`: any)].setValue(1) - } - return { - bindings: { - halve: { - type: 'button', - target: gridPosition, - mount: onMount('halve'), - attack: onAttack('halve') - }, - double: { - type: 'button', - target: [gridPosition[0] + 1, gridPosition[1]], - mount: onMount('double'), - attack: onAttack('double') - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopjump.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/loopjump.js deleted file mode 100644 index fc273939ad2..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/loopjump.js +++ /dev/null @@ -1,126 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' -import flatMap from 'lodash-es/flatMap' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl } from '@mixxx-launchpad/mixxx' - -export const loopjump = (jumps: [number, number][]) => (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const bindings = { } - const onMidi = (k, j, d) => (modifier) => retainAttackMode(modifier, (mode, { value }, { bindings, state }) => { - modes(mode, - () => { - if (!state.mode) { - if (value) { - deck.loop_move.setValue(j[state.set] * d) - } - } else { - if (value) { - const currentJump = j[state.set] * d - deck.loop_move.setValue(currentJump) - if (state.pressing != null) { - bindings[state.pressing].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - } - bindings[k].button.sendColor(device.colors[`hi_${state.color[state.set]}`]) - state.pressing = k - state.diff = state.diff + currentJump - } else { - if (state.pressing === k) { - bindings[k].button.sendColor(device.colors[`lo_${state.color[state.set]}`]) - state.pressing = null - deck.loop_move.setValue(-state.diff) - state.diff = 0 - } - } - } - }, - () => { - if (value) { - if (state.set === 1) { - state.set = 0 - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - }, - () => { - if (value) { - if (state.set === 0) { - state.set = 1 - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - }, - () => { - if (value) { - state.mode = !state.mode - const prefix = state.mode ? 'lo' : 'hi' - for (let b = 0; b < spec.length; ++b) { - bindings[b].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - } - } - ) - }) - const onMount = (k) => (_, { bindings, state }) => { - const prefix = state.mode ? 'lo' : 'hi' - bindings[k].button.sendColor(device.colors[`${prefix}_${state.color[state.set]}`]) - } - const spec = flatMap((jumps: any), (j, i) => [[j, 1], [j, -1]]) // FIXME: flatMap is incorrectly typed see https://github.com/flow-typed/flow-typed/issues/2463 - - spec.forEach(([jump, dir], i) => { - bindings[i] = { - type: 'button', - target: [gridPosition[0] + i % 2, gridPosition[1] + ~~(i / 2)], - midi: onMidi(i, jump, dir)(modifier), - mount: onMount(i) - } - }) - return { - bindings, - state: { - mode: false, - pressing: 0, - diff: 0, - set: 0, - color: [ - 'green', - 'red' - ] - } - } -} - -export const loopjumpSmall = (amount: number) => (button: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onAttack = (dir) => () => { - modes(modifier.getState(), - () => deck.loop_move.setValue(dir * amount) - ) - } - return { - bindings: { - back: { - type: 'button', - target: button, - attack: onAttack(-1), - mount: (dk: null, { bindings }: Object) => { - bindings.back.button.sendColor(device.colors.hi_yellow) - } - }, - forth: { - type: 'button', - target: [button[0] + 1, button[1]], - attack: onAttack(1), - mount: (dk: null, { bindings }: Object) => { - bindings.forth.button.sendColor(device.colors.hi_yellow) - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/nudge.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/nudge.js deleted file mode 100644 index 2181e72c638..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/nudge.js +++ /dev/null @@ -1,110 +0,0 @@ -/* @flow */ - -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const rateEpsilon = 1e-3 - - const getDirection = (rate) => { - if (rate < -rateEpsilon) { - return 'up' - } else if (rate > rateEpsilon) { - return 'down' - } else { - return '' - } - } - - const onNudgeMidi = (dir: 'up' | 'down') => (modifier) => retainAttackMode(modifier, (mode, { value }: MidiMessage, { bindings, state }: Object) => { - if (value) { - state[dir] = true - if (state.down && state.up) { - deck.rate.setValue(0) - } else { - modes(mode, - () => { - bindings[dir].button.sendColor(device.colors.hi_yellow) - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`rate_temp_${dir}`: any)].setValue(1) - }, - () => { - bindings[dir].button.sendColor(device.colors.hi_red) - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`rate_perm_${dir}`: any)].setValue(1) - }, - () => { - bindings[dir].button.sendColor(device.colors.lo_yellow) - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`rate_temp_${dir}_small`: any)].setValue(1) - }, - () => { - bindings[dir].button.sendColor(device.colors.lo_red) - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - deck[(`rate_perm_${dir}_small`: any)].setValue(1) - } - ) - } - } else { - state[dir] = false - if (getDirection(bindings.rate.getValue()) === dir) { - bindings[dir].button.sendColor(device.colors.lo_orange) - } else { - bindings[dir].button.sendColor(device.colors.black) - } - modes(mode, - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - () => deck[(`rate_temp_${dir}`: any)].setValue(0), - undefined, - // TODO: remove unsafe cast once flow supports https://github.com/facebook/flow/issues/3637 - () => deck[(`rate_temp_${dir}_small`: any)].setValue(0) - ) - } - }) - - const onRate = ({ value }: ControlMessage, { state, bindings }: Object) => { - let up = device.colors.black - let down = device.colors.black - let rate = getDirection(value) - if (rate === 'down') { - down = device.colors.lo_orange - } else if (rate === 'up') { - up = device.colors.lo_orange - } - - if (!state.down) { - bindings.down.button.sendColor(down) - } - - if (!state.up) { - bindings.up.button.sendColor(up) - } - } - - return { - bindings: { - down: { - type: 'button', - target: gridPosition, - midi: onNudgeMidi('down')(modifier) - }, - up: { - type: 'button', - target: [gridPosition[0] + 1, gridPosition[1]], - midi: onNudgeMidi('up')(modifier) - }, - rate: { - type: 'control', - target: deck.rate, - update: onRate - } - }, - state: { - up: false, - down: false - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/pfl.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/pfl.js deleted file mode 100644 index 6abff594dbc..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/pfl.js +++ /dev/null @@ -1,26 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice, MidiMessage } from '../../' -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => (device: LaunchpadDevice) => { - return { - bindings: { - pfl: { - type: 'control', - target: deck.pfl, - update: ({ value }: ControlMessage, { bindings }: Object) => value - ? bindings.button.button.sendColor(device.colors.hi_green) - : bindings.button.button.sendColor(device.colors.black) - }, - button: { - type: 'button', - target: gridPosition, - attack: (message: MidiMessage, { bindings }: Object) => modes(modifier.getState(), - () => bindings.pfl.setValue(Number(!bindings.pfl.getValue()))) - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/play.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/play.js deleted file mode 100644 index 8931617833e..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/play.js +++ /dev/null @@ -1,36 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - playIndicator: { - type: 'control', - target: deck.play_indicator, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value) { - bindings.play.button.sendColor(device.colors.hi_red) - } else if (!value) { - bindings.play.button.sendColor(device.colors.black) - } - } - }, - play: { - type: 'button', - target: gridPosition, - attack: () => { - modes(modifier.getState(), - () => deck.play.setValue(Number(!deck.play.getValue())), - () => deck.start_play.setValue(1), - () => deck.start_stop.setValue(1) - ) - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/quantize.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/quantize.js deleted file mode 100644 index 7810f443e8a..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/quantize.js +++ /dev/null @@ -1,27 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice, MidiMessage } from '../../' - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - quantize: { - type: 'control', - target: deck.quantize, - update: ({ value }: ControlMessage, { bindings }: Object) => value - ? bindings.button.button.sendColor(device.colors.hi_orange) - : bindings.button.button.sendColor(device.colors.black) - }, - button: { - type: 'button', - target: gridPosition, - attack: (message: MidiMessage, { bindings }: Object) => modes(modifier.getState(), - () => bindings.quantize.setValue(Number(!bindings.quantize.getValue()))) - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/reloop.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/reloop.js deleted file mode 100644 index d57b9dd58d4..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/reloop.js +++ /dev/null @@ -1,32 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - button: { - type: 'button', - target: gridPosition, - attack: () => { - modes(modifier.getState(), () => deck.reloop_exit.setValue(1)) - } - }, - control: { - type: 'control', - target: deck.loop_enabled, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value) { - bindings.button.button.sendColor(device.colors.hi_green) - } else { - bindings.button.button.sendColor(device.colors.lo_green) - } - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/slip.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/slip.js deleted file mode 100644 index bfc6212f295..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/slip.js +++ /dev/null @@ -1,58 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' - -import { modes, retainAttackMode } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const onMidi = (modifier) => retainAttackMode(modifier, (mode, { value }, { bindings, state }) => { - modes(mode, - () => { - if (value) { - bindings.control.setValue(Number(!bindings.control.getValue())) - } else { - if (state.mode) { - bindings.control.setValue(Number(!bindings.control.getValue())) - } - } - }, - () => { - if (value) { - state.mode = !state.mode - const color = state.mode ? 'orange' : 'red' - bindings.button.button.sendColor(device.colors[`lo_${color}`]) - } - } - ) - }) - return { - bindings: { - control: { - type: 'control', - target: deck.slip_enabled, - update: ({ value }: ControlMessage, { bindings, state }: Object) => { - const color = state.mode ? 'orange' : 'red' - if (value) { - bindings.button.button.sendColor(device.colors[`hi_${color}`]) - } else { - bindings.button.button.sendColor(device.colors[`lo_${color}`]) - } - } - }, - button: { - type: 'button', - target: gridPosition, - midi: onMidi(modifier), - mount: (dk: null, { bindings, state }: Object) => { - const color = state.mode ? 'orange' : 'red' - bindings.button.button.sendColor(device.colors[`lo_${color}`]) - } - } - }, - state: { - mode: 1 - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/sync.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/sync.js deleted file mode 100644 index 030fa190538..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/sync.js +++ /dev/null @@ -1,49 +0,0 @@ -/* @flow */ - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' -import type { LaunchpadDevice, MidiMessage } from '../../' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - return { - bindings: { - sync: { - type: 'button', - target: gridPosition, - attack: (message: MidiMessage, { bindings }: Object) => { - modes(modifier.getState(), - () => { - if (bindings.syncMode.getValue()) { - deck.sync_enabled.setValue(0) - } else { - deck.sync_enabled.setValue(1) - } - }, - () => { - if (bindings.syncMode.getValue() === 2) { - deck.sync_master.setValue(0) - } else { - deck.sync_master.setValue(1) - } - } - ) - } - }, - syncMode: { - type: 'control', - target: deck.sync_mode, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value === 0) { - bindings.sync.button.sendColor(device.colors.black) - } else if (value === 1) { - bindings.sync.button.sendColor(device.colors.hi_orange) - } else if (value === 2) { - bindings.sync.button.sendColor(device.colors.hi_red) - } - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/controls/tap.js b/res/controllers/novation-launchpad/packages/app/src/App/controls/tap.js deleted file mode 100644 index b9883bf4173..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/controls/tap.js +++ /dev/null @@ -1,48 +0,0 @@ -/* @flow */ -import type { LaunchpadDevice } from '../../' - -import type { ChannelControl, ControlMessage } from '@mixxx-launchpad/mixxx' -import Bpm from '../../App/Bpm' - -import { modes } from '../ModifierSidebar' -import type { Modifier } from '../ModifierSidebar' - -export default (gridPosition: [number, number]) => (deck: ChannelControl) => (modifier: Modifier) => (device: LaunchpadDevice) => { - const tempoBpm = new Bpm() - tempoBpm.on('tap', (avg) => { - deck.bpm.setValue(avg) - }) - return { - bindings: { - tap: { - type: 'button', - target: gridPosition, - attack: () => { - modes(modifier.getState(), - () => { - tempoBpm.tap() - }, - undefined, - () => { - deck.beats_translate_curpos.setValue(1) - }, - () => { - deck.beats_translate_match_alignment.setValue(1) - } - ) - } - }, - beat: { - type: 'control', - target: deck.beat_active, - update: ({ value }: ControlMessage, { bindings }: Object) => { - if (value) { - bindings.tap.button.sendColor(device.colors.hi_red) - } else { - bindings.tap.button.sendColor(device.colors.black) - } - } - } - } - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/presets/Grande.js b/res/controllers/novation-launchpad/packages/app/src/App/presets/Grande.js deleted file mode 100644 index de80ee8ca4a..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/presets/Grande.js +++ /dev/null @@ -1,44 +0,0 @@ -/* @flow */ - -import play from '../controls/play' -import sync from '../controls/sync' -import nudge from '../controls/nudge' -import cue from '../controls/cue' -import tap from '../controls/tap' -import grid from '../controls/grid' -import pfl from '../controls/pfl' -import quantize from '../controls/quantize' -import keyshift from '../controls/keyshift' -import hotcue from '../controls/hotcue' -import load from '../controls/load' -import key from '../controls/key' -import beatjump from '../controls/beatjump' -import beatloop from '../controls/beatloop' -import { loopjump, loopjumpSmall } from '../controls/loopjump' -import loopMultiply from '../controls/loopMultiply' -import reloop from '../controls/reloop' -import loopIo from '../controls/loopIo' -import slip from '../controls/slip' - -export default { - play: play([0, 0]), - sync: sync([1, 0]), - nudge: nudge([2, 0]), - cue: cue([0, 1]), - tap: tap([1, 1]), - grid: grid([2, 1]), - pfl: pfl([0, 2]), - quantize: quantize([1, 2]), - keyshift: keyshift([[1, 1], [2, 2], [3, 3], [5, 4], [7, 5], [8, 6], [10, 7], [12, 8]], 2)([2, 2]), - load: load([0, 3]), - key: key([1, 3]), - hotcue: hotcue(8, 2)([0, 4]), - beatjump: beatjump([[0.25, 1], [0.33, 2], [0.5, 4], [0.75, 8], [1, 16], [2, 32]])([2, 6]), - beatloop: beatloop([0.5, 1, 2, 4, 8, 16, 32, 64], 2)([4, 2]), - loopjump: loopjump([[0.5, 8], [1, 16], [2, 32], [4, 64]])([6, 2]), - loopjumpSmall: loopjumpSmall(0.03125)([6, 1]), - loopMultiply: loopMultiply([4, 1]), - reloop: reloop([4, 0]), - loopIo: loopIo([5, 0]), - slip: slip([7, 0]) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/presets/Juggler.js b/res/controllers/novation-launchpad/packages/app/src/App/presets/Juggler.js deleted file mode 100644 index 25df6956b21..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/presets/Juggler.js +++ /dev/null @@ -1,20 +0,0 @@ -/* @flow */ -import play from '../controls/play' -import hotcue from '../controls/hotcue' -import load from '../controls/load' -import beatjump from '../controls/beatjump' -import beatloop from '../controls/beatloop' -import { loopjump } from '../controls/loopjump' -import loopMultiply from '../controls/loopMultiply' -import reloop from '../controls/reloop' - -export default { - play: play([0, 0]), - load: load([1, 0]), - beatjump: beatjump([[0.5, 4], [1, 16], [2, 32], [4, 64]], true)([2, 0]), - loopjump: loopjump([[1, 16], [4, 64]])([0, 1]), - reloop: reloop([0, 3]), - loopMultiply: loopMultiply([0, 4]), - hotcue: hotcue(8, 2)([2, 4]), - beatloop: beatloop([0.5, 1, 2, 4, 8, 16], 2)([0, 5]) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/presets/Sampler.js b/res/controllers/novation-launchpad/packages/app/src/App/presets/Sampler.js deleted file mode 100644 index fbded52b501..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/presets/Sampler.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @flow */ -import hotcue from '../controls/hotcue' - -export default { - hotcue: hotcue(16, 4)([0, 0]) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/presets/Short.js b/res/controllers/novation-launchpad/packages/app/src/App/presets/Short.js deleted file mode 100644 index cce03f9a88f..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/presets/Short.js +++ /dev/null @@ -1,30 +0,0 @@ -/* @flow */ -import play from '../controls/play' -import sync from '../controls/sync' -import nudge from '../controls/nudge' -import cue from '../controls/cue' -import tap from '../controls/tap' -import grid from '../controls/grid' -import pfl from '../controls/pfl' -import quantize from '../controls/quantize' -import load from '../controls/load' -import key from '../controls/key' -import reloop from '../controls/reloop' -import loopIo from '../controls/loopIo' -import slip from '../controls/slip' - -export default { - play: play([0, 0]), - sync: sync([1, 0]), - nudge: nudge([2, 0]), - cue: cue([0, 1]), - tap: tap([1, 1]), - grid: grid([2, 1]), - pfl: pfl([0, 2]), - quantize: quantize([1, 2]), - loopIo: loopIo([2, 2]), - load: load([0, 3]), - key: key([1, 3]), - reloop: reloop([2, 3]), - slip: slip([3, 3]) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/App/presets/Tall.js b/res/controllers/novation-launchpad/packages/app/src/App/presets/Tall.js deleted file mode 100644 index c4f4824fd1a..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/App/presets/Tall.js +++ /dev/null @@ -1,39 +0,0 @@ -/* @flow */ - -import play from '../controls/play' -import sync from '../controls/sync' -import nudge from '../controls/nudge' -import cue from '../controls/cue' -import tap from '../controls/tap' -import grid from '../controls/grid' -import pfl from '../controls/pfl' -import quantize from '../controls/quantize' -import hotcue from '../controls/hotcue' -import load from '../controls/load' -import key from '../controls/key' -import beatjump from '../controls/beatjump' -import beatloop from '../controls/beatloop' -import loopMultiply from '../controls/loopMultiply' -import reloop from '../controls/reloop' -import loopIo from '../controls/loopIo' -import slip from '../controls/slip' - -export default { - play: play([0, 0]), - sync: sync([1, 0]), - nudge: nudge([2, 0]), - cue: cue([0, 1]), - tap: tap([1, 1]), - grid: grid([2, 1]), - pfl: pfl([0, 2]), - quantize: quantize([1, 2]), - loopIo: loopIo([2, 2]), - load: load([0, 3]), - key: key([1, 3]), - reloop: reloop([2, 3]), - slip: slip([3, 3]), - hotcue: hotcue(4, 2)([0, 4]), - loopMultiply: loopMultiply([2, 4]), - beatloop: beatloop([0.5, 1, 2, 4, 8, 16], 2)([2, 5]), - beatjump: beatjump([[1, 16], [2, 32]])([0, 6]) -} diff --git a/res/controllers/novation-launchpad/packages/app/src/Component.js b/res/controllers/novation-launchpad/packages/app/src/Component.js deleted file mode 100644 index 87fc78eb63c..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/Component.js +++ /dev/null @@ -1,19 +0,0 @@ -/* @flow */ - -import EventEmitter from 'eventemitter3' - -export default class Component extends EventEmitter { - mount () { - this.onMount() - this.emit(`mount`, this) - } - - unmount () { - this.onUnmount() - this.emit(`unmount`, this) - } - - onMount () { } - - onUnmount () { } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/Controls/ControlComponent.js b/res/controllers/novation-launchpad/packages/app/src/Controls/ControlComponent.js deleted file mode 100644 index ce8496e86fe..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/Controls/ControlComponent.js +++ /dev/null @@ -1,64 +0,0 @@ -/* @flow */ - -import Component from '../Component' -import { Control } from '@mixxx-launchpad/mixxx' - -import type { ControlBus } from '@mixxx-launchpad/mixxx' - -export const makeControlComponent = (controlBus: ControlBus) => - (id: string) => - (control: Control) => - new ControlComponent(controlBus, id, control) - -export default class ControlComponent extends Component { - value: ?number - id: string - controlBus: ControlBus - control: Control - _handle: ?any - - constructor (controlBus: ControlBus, id: string, control: Control) { - super() - this.value = null - this.id = id - this.controlBus = controlBus - this.control = control - this._handle = null - } - - onMount () { - if (!this._handle) { - this._handle = this.controlBus.connect(this.id, this.control.def, (data) => { - this.value = data.value - this.emit('update', data) - }) - this.value = this.control.getValue() - this.emit('update', this) - } - } - - onUnmount () { - if (this._handle) { - this.controlBus.disconnect(this._handle) - this._handle = null - } - } - - setValue (value: number) { - this.control.setValue(value) - this.value = this.control.getValue() - } - - toggleValue () { - this.setValue(Number(!this.getValue())) - } - - getValue () { - if (!this._handle) { - this.value = this.control.getValue() - } - return this.value - } -} - -export type ControlComponentBuilder = (string) => (Control) => ControlComponent diff --git a/res/controllers/novation-launchpad/packages/app/src/Controls/MidiButtonComponent.js b/res/controllers/novation-launchpad/packages/app/src/Controls/MidiButtonComponent.js deleted file mode 100644 index 18deec19837..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/Controls/MidiButtonComponent.js +++ /dev/null @@ -1,37 +0,0 @@ -/* @flow */ -import MidiComponent from './MidiComponent' - -import type { LaunchpadMidiButton, MidiMessage } from '../' -import type { MidiBus } from '../MidiBus' - -export default class MidiButtonComponent extends MidiComponent { - button: LaunchpadMidiButton - _cb: (data: MidiMessage) => void - - constructor (midibus: MidiBus, button: LaunchpadMidiButton) { - super(midibus) - this.midibus = midibus - this.button = button - this.device = midibus.device - this._cb = (data) => { - if (data.value) { - this.emit('attack', data) - } else { - this.emit('release', data) - } - this.emit('midi', data) - } - } - - onMount () { - super.onMount() - this.midibus.on(this.button.def.name, this._cb) - } - - onUnmount () { - this.midibus.removeListener(this.button.def.name, this._cb) - super.onUnmount() - } -} - -export const makeMidiButtonComponent = (midibus: MidiBus) => (button: LaunchpadMidiButton) => new MidiButtonComponent(midibus, button) diff --git a/res/controllers/novation-launchpad/packages/app/src/Controls/MidiComponent.js b/res/controllers/novation-launchpad/packages/app/src/Controls/MidiComponent.js deleted file mode 100644 index bc023fcf4f1..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/Controls/MidiComponent.js +++ /dev/null @@ -1,26 +0,0 @@ -/* @flow */ -import Component from '../Component' - -import type { LaunchpadDevice } from '../' -import type { MidiBus } from '../MidiBus' - -export const childOfMidiComponent = (parent: MidiComponent) => new MidiComponent(parent.midibus) - -export default class MidiComponent extends Component { - midibus: MidiBus - device: LaunchpadDevice - - constructor (midibus: MidiBus) { - super() - this.midibus = midibus - this.device = midibus.device - } - - onMount () { - super.onMount() - } - - onUnmount () { - super.onUnmount() - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/MidiBus.js b/res/controllers/novation-launchpad/packages/app/src/MidiBus.js deleted file mode 100644 index 203f822b04a..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/MidiBus.js +++ /dev/null @@ -1,40 +0,0 @@ -/* @flow */ -import EventEmitter from 'eventemitter3' - -import type { LaunchpadDevice, MidiMessage } from './' - -const callbackPrefix = '__midi' - -const leftPad = (str, padString, length) => { - let buf = str - while (buf.length < length) { - buf = padString + buf - } - return buf -} - -const hexFormat = (n, d) => '0x' + leftPad(n.toString(16).toUpperCase(), '0', d) - -export class MidiBus extends EventEmitter { - registry: Object - device: LaunchpadDevice - - static create (registry: Object, device: LaunchpadDevice) { - return new MidiBus(registry, device) - } - - constructor (registry: Object, device: LaunchpadDevice) { - super() - this.registry = registry - this.device = device - - Object.keys(device.buttons).forEach((buttonName) => { - const button = device.buttons[buttonName] - const def = button.def - this.registry[`${callbackPrefix}_${hexFormat(def.status, 2)}_${hexFormat(def.midino, 2)}`] = (channel, control, value, status) => { - const message: MidiMessage = { value, button, device: this.device } - this.emit(def.name, message) - } - }) - } -} diff --git a/res/controllers/novation-launchpad/packages/app/src/index.js b/res/controllers/novation-launchpad/packages/app/src/index.js deleted file mode 100644 index d3daac29fab..00000000000 --- a/res/controllers/novation-launchpad/packages/app/src/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/* @flow */ - -/* eslint-disable-next-line no-unused-vars */ -import { console, ControlBus, makeTimer, midi } from '@mixxx-launchpad/mixxx' - -import { MidiBus } from './MidiBus' -import Screen from './App/Screen' -import Component from './Component' -import { makeControlComponent } from './Controls/ControlComponent' - -export type LaunchpadMidiButtonDef = { - status: number, - midino: number, - name: string -} - -export class LaunchpadMidiButton { - def: LaunchpadMidiButtonDef - - constructor (def: LaunchpadMidiButtonDef) { - this.def = def - } - - sendColor (value: number) { - midi.sendShortMsg(this.def.status, this.def.midino, value) - } -} - -export interface LaunchpadDevice { - init (): void, - shutdown (): void, - buttons: { [key: string]: LaunchpadMidiButton }, - colors: { [key: string]: number } -} - -export type MidiMessage = { - value: number, - button: LaunchpadMidiButton, - device: LaunchpadDevice -} - -export interface Script { - getName (): string -} - -class Global extends Component { - screen: Screen - device: LaunchpadDevice - name: string - - init: void => void - shutdown: void => void - - constructor (name: string, device: LaunchpadDevice) { - super() - this.name = name - this.device = device - const timerBuilder = makeTimer(name, this) - const controlComponentBuilder = makeControlComponent(ControlBus.create(name, this)) - const midibus = MidiBus.create(this, device) - this.screen = new Screen(midibus, timerBuilder, controlComponentBuilder, 'main') - this.init = () => { this.onMount() } - this.shutdown = () => { this.onUnmount() } - } - - onMount () { - this.device.init() - this.screen.mount() - } - - onUnmount () { - this.screen.unmount() - this.device.shutdown() - } -} - -export function create (name: string, device: LaunchpadDevice) { - return new Global(name, device) -} diff --git a/res/controllers/novation-launchpad/packages/flow-typed/npm/eventemitter3_v3.x.x.js b/res/controllers/novation-launchpad/packages/flow-typed/npm/eventemitter3_v3.x.x.js deleted file mode 100644 index b8be149f671..00000000000 --- a/res/controllers/novation-launchpad/packages/flow-typed/npm/eventemitter3_v3.x.x.js +++ /dev/null @@ -1,26 +0,0 @@ -declare module 'eventemitter3' { - declare type ListenerFn = (...args: any[]) => void - declare class EventEmitter { - static constructor(): EventEmitter, - static prefixed: string | boolean, - eventNames(): (string | Symbol)[], - listeners(event: string | Symbol): ListenerFn[], - listenerCount(event: string | Symbol): number, - on(event: string | Symbol, listener: ListenerFn, context?: any): this, - addListener(event: string | Symbol, listener: ListenerFn, context?: any): this, - once(event: string | Symbol, listener: ListenerFn, context?: any): this, - removeAllListeners(event?: string | Symbol): this, - removeListener(event: string | Symbol, listener?: ListenerFn, context?: any, once?: boolean): this, - off(event: string | Symbol, listener?: ListenerFn, context?: any, once?: boolean): this, - emit(event: string, ...params?: any[]): this - } - declare module.exports: Class -} - -// Filename aliases -declare module 'eventemitter3/index' { - declare module.exports: $Exports<'eventemitter3'> -} -declare module 'eventemitter3/index.js' { - declare module.exports: $Exports<'eventemitter3'> -} diff --git a/res/controllers/novation-launchpad/packages/flow-typed/npm/lodash-es_v4.x.x.js b/res/controllers/novation-launchpad/packages/flow-typed/npm/lodash-es_v4.x.x.js deleted file mode 100644 index bae7429a276..00000000000 --- a/res/controllers/novation-launchpad/packages/flow-typed/npm/lodash-es_v4.x.x.js +++ /dev/null @@ -1,2314 +0,0 @@ -// flow-typed signature: 65fe3d22f0866949d449eb0fd198b273 -// flow-typed version: 6f07eebf2a/lodash-es_v4.x.x/flow_>=v0.63.x - -declare module "lodash-es" { - declare type __CurriedFunction1 = (...r: [AA]) => R; - declare type CurriedFunction1 = __CurriedFunction1; - - declare type __CurriedFunction2 = (( - ...r: [AA] - ) => CurriedFunction1) & - ((...r: [AA, BB]) => R); - declare type CurriedFunction2 = __CurriedFunction2; - - declare type __CurriedFunction3 = (( - ...r: [AA] - ) => CurriedFunction2) & - ((...r: [AA, BB]) => CurriedFunction1) & - ((...r: [AA, BB, CC]) => R); - declare type CurriedFunction3 = __CurriedFunction3< - A, - B, - C, - R, - *, - *, - * - >; - - declare type __CurriedFunction4< - A, - B, - C, - D, - R, - AA: A, - BB: B, - CC: C, - DD: D - > = ((...r: [AA]) => CurriedFunction3) & - ((...r: [AA, BB]) => CurriedFunction2) & - ((...r: [AA, BB, CC]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD]) => R); - declare type CurriedFunction4 = __CurriedFunction4< - A, - B, - C, - D, - R, - *, - *, - *, - * - >; - - declare type __CurriedFunction5< - A, - B, - C, - D, - E, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E - > = ((...r: [AA]) => CurriedFunction4) & - ((...r: [AA, BB]) => CurriedFunction3) & - ((...r: [AA, BB, CC]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE]) => R); - declare type CurriedFunction5 = __CurriedFunction5< - A, - B, - C, - D, - E, - R, - *, - *, - *, - *, - * - >; - - declare type __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E, - FF: F - > = ((...r: [AA]) => CurriedFunction5) & - ((...r: [AA, BB]) => CurriedFunction4) & - ((...r: [AA, BB, CC]) => CurriedFunction3) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE, FF]) => R); - declare type CurriedFunction6 = __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - *, - *, - *, - *, - *, - * - >; - - declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & - (((...r: [A, B]) => R) => CurriedFunction2) & - (((...r: [A, B, C]) => R) => CurriedFunction3) & - (( - (...r: [A, B, C, D]) => R - ) => CurriedFunction4) & - (( - (...r: [A, B, C, D, E]) => R - ) => CurriedFunction5) & - (( - (...r: [A, B, C, D, E, F]) => R - ) => CurriedFunction6); - - declare type UnaryFn = (a: A) => R; - - declare type TemplateSettings = { - escape?: RegExp, - evaluate?: RegExp, - imports?: Object, - interpolate?: RegExp, - variable?: string - }; - - declare type TruncateOptions = { - length?: number, - omission?: string, - separator?: RegExp | string - }; - - declare type DebounceOptions = { - leading?: boolean, - maxWait?: number, - trailing?: boolean - }; - - declare type ThrottleOptions = { - leading?: boolean, - trailing?: boolean - }; - - declare type NestedArray = Array>; - - declare type matchesIterateeShorthand = Object; - declare type matchesPropertyIterateeShorthand = [string, any]; - declare type propertyIterateeShorthand = string; - - declare type OPredicate = - | ((value: A, key: string, object: O) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type OIterateeWithResult = - | Object - | string - | ((value: V, key: string, object: O) => R); - declare type OIteratee = OIterateeWithResult; - declare type OFlatMapIteratee = OIterateeWithResult>; - - declare type Predicate = - | ((value: T, index: number, array: Array) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type _ValueOnlyIteratee = (value: T) => mixed; - declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; - declare type _Iteratee = ( - item: T, - index: number, - array: ?Array - ) => mixed; - declare type Iteratee = _Iteratee | Object | string; - declare type FlatMapIteratee = - | ((item: T, index: number, array: ?$ReadOnlyArray) => Array) - | Object - | string; - declare type Comparator = (item: T, item2: T) => boolean; - - declare type MapIterator = - | ((item: T, index: number, array: Array) => U) - | propertyIterateeShorthand; - - declare type ReadOnlyMapIterator = - | ((item: T, index: number, array: $ReadOnlyArray) => U) - | propertyIterateeShorthand; - - declare type OMapIterator = - | ((item: T, key: string, object: O) => U) - | propertyIterateeShorthand; - - // Array - declare export function chunk(array?: ?Array, size?: ?number): Array>; - declare export function compact(array?: ?Array): Array; - declare export function concat(base?: ?$ReadOnlyArray, ...elements: Array): Array; - declare export function difference(array?: ?$ReadOnlyArray, ...values: Array>): Array; - declare export function differenceBy( - array?: ?$ReadOnlyArray, - values?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee - ): T[]; - declare export function differenceWith(array?: ?$ReadOnlyArray, values?: ?$ReadOnlyArray, comparator?: ?Comparator): T[]; - declare export function drop(array?: ?Array, n?: ?number): Array; - declare export function dropRight(array?: ?Array, n?: ?number): Array; - declare export function dropRightWhile(array?: ?Array, predicate?: ?Predicate): Array; - declare export function dropWhile(array?: ?Array, predicate?: ?Predicate): Array; - declare export function fill( - array?: ?Array, - value?: ?U, - start?: ?number, - end?: ?number - ): Array; - declare export function findIndex( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number - ): number; - declare export function findIndex( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number - ): -1; - declare export function findLastIndex( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number - ): number; - declare export function findLastIndex( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number - ): -1; - declare export function first(array: ?$ReadOnlyArray): T; - declare export function flatten(array?: ?Array | X>): Array; - declare export function flattenDeep(array?: ?any[]): Array; - declare export function flattenDepth(array?: ?any[], depth?: ?number): any[]; - declare export function fromPairs(pairs?: ?Array<[A, B]>): { [key: A]: B }; - declare export function head(array: ?$ReadOnlyArray): T; - declare export function indexOf(array: Array, value: T, fromIndex?: number): number; - declare export function indexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; - declare export function initial(array: ?Array): Array; - declare export function intersection(...arrays?: Array>): Array; - declare export function intersectionBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; - declare export function intersectionBy( - a1?: ?Array, - a2?: ?Array, - iteratee?: ?ValueOnlyIteratee - ): Array; - declare export function intersectionBy( - a1?: ?Array, - a2?: ?Array, - a3?: ?Array, - iteratee?: ?ValueOnlyIteratee - ): Array; - declare export function intersectionBy( - a1?: ?Array, - a2?: ?Array, - a3?: ?Array, - a4?: ?Array, - iteratee?: ?ValueOnlyIteratee - ): Array; - declare export function intersectionWith(a1?: ?Array, comparator?: ?Comparator): Array; - declare export function intersectionWith( - a1?: ?Array, - a2?: ?Array, - comparator?: ?Comparator - ): Array; - declare export function intersectionWith( - a1?: ?Array, - a2?: ?Array, - a3?: ?Array, - comparator?: ?Comparator - ): Array; - declare export function intersectionWith( - a1?: ?Array, - a2?: ?Array, - a3?: ?Array, - a4?: ?Array, - comparator?: ?Comparator - ): Array; - declare export function join(array: Array, separator?: ?string): string; - declare export function join(array: void | null, separator?: ?string): ''; - declare export function last(array: ?$ReadOnlyArray): T; - declare export function lastIndexOf(array: Array, value?: ?T, fromIndex?: ?number): number; - declare export function lastIndexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; - declare export function nth(array: T[], n?: ?number): T; - declare export function nth(array: void | null, n?: ?number): void; - declare export function pull(array: Array, ...values?: Array): Array; - declare export function pull(array: T, ...values?: Array): T; - declare export function pullAll(array: Array, values?: ?Array): Array; - declare export function pullAll(array: T, values?: ?Array): T; - declare export function pullAllBy( - array: Array, - values?: ?Array, - iteratee?: ?ValueOnlyIteratee - ): Array; - declare export function pullAllBy( - array: T, - values?: ?Array, - iteratee?: ?ValueOnlyIteratee - ): T; - declare export function pullAllWith(array: T[], values?: ?T[], comparator?: ?Function): T[]; - declare export function pullAllWith(array: T, values?: ?Array, comparator?: ?Function): T; - declare export function pullAt(array?: ?Array, ...indexed?: Array): Array; - declare export function pullAt(array?: ?Array, indexed?: ?Array): Array; - declare export function remove(array?: ?Array, predicate?: ?Predicate): Array; - declare export function reverse(array: Array): Array; - declare export function reverse(array: T): T; - declare export function slice(array?: ?$ReadOnlyArray, start?: ?number, end?: ?number): Array; - declare export function sortedIndex(array: Array, value: T): number; - declare export function sortedIndex(array: void | null, value: ?T): 0; - declare export function sortedIndexBy( - array: Array, - value?: ?T, - iteratee?: ?ValueOnlyIteratee - ): number; - declare export function sortedIndexBy( - array: void | null, - value?: ?T, - iteratee?: ?ValueOnlyIteratee - ): 0; - declare export function sortedIndexOf(array: Array, value: T): number; - declare export function sortedIndexOf(array: void | null, value?: ?T): -1; - declare export function sortedLastIndex(array: Array, value: T): number; - declare export function sortedLastIndex(array: void | null, value?: ?T): 0; - declare export function sortedLastIndexBy( - array: Array, - value: T, - iteratee?: ValueOnlyIteratee - ): number; - declare export function sortedLastIndexBy( - array: void | null, - value?: ?T, - iteratee?: ?ValueOnlyIteratee - ): 0; - declare export function sortedLastIndexOf(array: Array, value: T): number; - declare export function sortedLastIndexOf(array: void | null, value?: ?T): -1; - declare export function sortedUniq(array?: ?Array): Array; - declare export function sortedUniqBy(array?: ?Array, iteratee?: ?(value: T) => mixed): Array; - declare export function tail(array?: ?Array): Array; - declare export function take(array?: ?Array, n?: ?number): Array; - declare export function takeRight(array?: ?Array, n?: ?number): Array; - declare export function takeRightWhile(array?: ?Array, predicate?: ?Predicate): Array; - declare export function takeWhile(array?: ?Array, predicate?: ?Predicate): Array; - declare export function union(...arrays?: Array>): Array; - declare export function unionBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; - declare export function unionBy( - a1?: ?Array, - a2: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function unionBy( - a1: Array, - a2: Array, - a3: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function unionBy( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function unionWith(a1?: ?Array, comparator?: ?Comparator): Array; - declare export function unionWith( - a1: Array, - a2: Array, - comparator?: Comparator - ): Array; - declare export function unionWith( - a1: Array, - a2: Array, - a3: Array, - comparator?: Comparator - ): Array; - declare export function unionWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - comparator?: Comparator - ): Array; - declare export function uniq(array?: ?Array): Array; - declare export function uniqBy(array?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; - declare export function uniqWith(array?: ?Array, comparator?: ?Comparator): Array; - declare export function unzip(array?: ?Array): Array; - declare export function unzipWith(array: ?Array, iteratee?: ?Iteratee): Array; - declare export function without(array?: ?$ReadOnlyArray, ...values?: Array): Array; - declare export function xor(...array: Array>): Array; - declare export function xorBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; - declare export function xorBy( - a1: Array, - a2: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function xorBy( - a1: Array, - a2: Array, - a3: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function xorBy( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - iteratee?: ValueOnlyIteratee - ): Array; - declare export function xorWith(a1?: ?Array, comparator?: ?Comparator): Array; - declare export function xorWith( - a1: Array, - a2: Array, - comparator?: Comparator - ): Array; - declare export function xorWith( - a1: Array, - a2: Array, - a3: Array, - comparator?: Comparator - ): Array; - declare export function xorWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - comparator?: Comparator - ): Array; - declare export function zip(a1?: ?A[], a2?: ?B[]): Array<[A, B]>; - declare export function zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; - declare export function zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; - declare export function zip( - a1: A[], - a2: B[], - a3: C[], - a4: D[], - a5: E[] - ): Array<[A, B, C, D, E]>; - - declare export function zipObject(props: Array, values?: ?Array): { [key: K]: V }; - declare export function zipObject(props: void | null, values?: ?Array): {}; - declare export function zipObjectDeep(props: any[], values?: ?any): Object; - declare export function zipObjectDeep(props: void | null, values?: ?any): {}; - - declare export function zipWith(a1?: ?Array): Array<[A]>; - declare export function zipWith(a1: Array, iteratee: (A) => T): Array; - - declare export function zipWith(a1: Array, a2: Array): Array<[A, B]>; - declare export function zipWith( - a1: Array, - a2: Array, - iteratee: (A, B) => T - ): Array; - - declare export function zipWith( - a1: Array, - a2: Array, - a3: Array - ): Array<[A, B, C]>; - declare export function zipWith( - a1: Array, - a2: Array, - a3: Array, - iteratee: (A, B, C) => T - ): Array; - - declare export function zipWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array - ): Array<[A, B, C, D]>; - declare export function zipWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - iteratee: (A, B, C, D) => T - ): Array; - - // Collection - declare export function countBy(array: Array, iteratee?: ?ValueOnlyIteratee): Object; - declare export function countBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; - declare export function countBy(object: T, iteratee?: ?ValueOnlyIteratee): Object; - declare export function each(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - declare export function each(array: T, iteratee?: ?Iteratee): T; - declare export function each(object: T, iteratee?: ?OIteratee): T; - declare export function eachRight(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - declare export function eachRight(array: T, iteratee?: ?Iteratee): T; - declare export function eachRight(object: T, iteratee?: OIteratee): T; - declare export function every(array?: ?$ReadOnlyArray, iteratee?: ?Iteratee): boolean; - declare export function every(object: T, iteratee?: OIteratee): boolean; - declare export function filter(array?: ?$ReadOnlyArray, predicate?: ?Predicate): Array; - declare export function filter( - object: T, - predicate?: OPredicate - ): Array; - declare export function find( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number - ): T | void; - declare export function find( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number - ): void; - declare export function find( - object: T, - predicate?: OPredicate, - fromIndex?: number - ): V; - declare export function findLast( - array: ?$ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number - ): T | void; - declare export function findLast( - object: T, - predicate?: ?OPredicate - ): V; - declare export function flatMap( - array?: ?$ReadOnlyArray, - iteratee?: ?FlatMapIteratee - ): Array; - declare export function flatMap( - object: T, - iteratee?: OFlatMapIteratee - ): Array; - declare export function flatMapDeep( - array?: ?$ReadOnlyArray, - iteratee?: ?FlatMapIteratee - ): Array; - declare export function flatMapDeep( - object: T, - iteratee?: ?OFlatMapIteratee - ): Array; - declare export function flatMapDepth( - array?: ?Array, - iteratee?: ?FlatMapIteratee, - depth?: ?number - ): Array; - declare export function flatMapDepth( - object: T, - iteratee?: OFlatMapIteratee, - depth?: number - ): Array; - declare export function forEach(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - declare export function forEach(array: T, iteratee?: ?Iteratee): T; - declare export function forEach(object: T, iteratee?: ?OIteratee): T; - declare export function forEachRight(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - declare export function forEachRight(array: T, iteratee?: ?Iteratee): T; - declare export function forEachRight(object: T, iteratee?: ?OIteratee): T; - declare export function groupBy( - array: $ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee - ): { [key: V]: Array }; - declare export function groupBy( - array: void | null, - iteratee?: ?ValueOnlyIteratee - ): {}; - declare export function groupBy( - object: T, - iteratee?: ValueOnlyIteratee - ): { [key: V]: Array }; - declare export function includes(array: $ReadOnlyArray, value: T, fromIndex?: ?number): boolean; - declare export function includes(array: void | null, value?: ?T, fromIndex?: ?number): false; - declare export function includes(object: T, value: any, fromIndex?: number): boolean; - declare export function includes(str: string, value: string, fromIndex?: number): boolean; - declare export function invokeMap( - array?: ?Array, - path?: ?((value: T) => Array | string) | Array | string, - ...args?: Array - ): Array; - declare export function invokeMap( - object: T, - path: ((value: any) => Array | string) | Array | string, - ...args?: Array - ): Array; - declare export function keyBy( - array: $ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee - ): { [key: V]: ?T }; - declare export function keyBy( - array: void | null, - iteratee?: ?ValueOnlyIteratee<*> - ): {}; - declare export function keyBy( - object: T, - iteratee?: ?ValueOnlyIteratee - ): { [key: V]: ?A }; - declare export function map(array?: ?Array, iteratee?: ?MapIterator): Array; - declare export function map( - array: ?$ReadOnlyArray, - iteratee?: ReadOnlyMapIterator - ): Array; - declare export function map( - object: ?T, - iteratee?: OMapIterator - ): Array; - declare export function map( - str: ?string, - iteratee?: (char: string, index: number, str: string) => any - ): string; - declare export function orderBy( - array: $ReadOnlyArray, - iteratees?: ?$ReadOnlyArray> | ?string, - orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string - ): Array; - declare export function orderBy( - array: null | void, - iteratees?: ?$ReadOnlyArray> | ?string, - orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string - ): Array; - declare export function orderBy( - object: T, - iteratees?: $ReadOnlyArray> | string, - orders?: $ReadOnlyArray<"asc" | "desc"> | string - ): Array; - declare export function partition( - array?: ?Array, - predicate?: ?Predicate - ): [Array, Array]; - declare export function partition( - object: T, - predicate?: OPredicate - ): [Array, Array]; - declare export function reduce( - array: Array, - iteratee?: ( - accumulator: U, - value: T, - index: number, - array: ?Array - ) => U, - accumulator?: U - ): U; - declare export function reduce( - array: void | null, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array - ) => U, - accumulator?: ?U - ): void | null; - declare export function reduce( - object: T, - iteratee?: (accumulator: U, value: any, key: string, object: T) => U, - accumulator?: U - ): U; - declare export function reduceRight( - array: void | null, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array - ) => U, - accumulator?: ?U - ): void | null; - declare export function reduceRight( - array: Array, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array - ) => U, - accumulator?: ?U - ): U; - declare export function reduceRight( - object: T, - iteratee?: ?(accumulator: U, value: any, key: string, object: T) => U, - accumulator?: ?U - ): U; - declare export function reject(array: ?$ReadOnlyArray, predicate?: Predicate): Array; - declare export function reject( - object?: ?T, - predicate?: ?OPredicate - ): Array; - declare export function sample(array: ?Array): T; - declare export function sample(object: T): V; - declare export function sampleSize(array?: ?Array, n?: ?number): Array; - declare export function sampleSize(object: T, n?: number): Array; - declare export function shuffle(array: ?Array): Array; - declare export function shuffle(object: T): Array; - declare export function size(collection: $ReadOnlyArray | Object | string): number; - declare export function some(array: ?$ReadOnlyArray, predicate?: Predicate): boolean; - declare export function some(array: void | null, predicate?: ?Predicate): false; - declare export function some( - object?: ?T, - predicate?: OPredicate - ): boolean; - declare export function sortBy( - array: ?$ReadOnlyArray, - ...iteratees?: $ReadOnlyArray> - ): Array; - declare export function sortBy( - array: ?$ReadOnlyArray, - iteratees?: $ReadOnlyArray> - ): Array; - declare export function sortBy( - object: T, - ...iteratees?: Array> - ): Array; - declare export function sortBy( - object: T, - iteratees?: $ReadOnlyArray> - ): Array; - - // Date - declare export function now(): number; - - // Function - declare export function after(n: number, fn: Function): Function; - declare export function ary(func: Function, n?: number): Function; - declare export function before(n: number, fn: Function): Function; - declare export function bind(func: Function, thisArg: any, ...partials: Array): Function; - declare export function bindKey(obj?: ?Object, key?: ?string, ...partials?: Array): Function; - declare export var curry: Curry; - declare export function curry(func: Function, arity?: number): Function; - declare export function curryRight(func: Function, arity?: number): Function; - declare export function debounce(func: F, wait?: number, options?: DebounceOptions): F; - declare export function defer(func: Function, ...args?: Array): TimeoutID; - declare export function delay(func: Function, wait: number, ...args?: Array): TimeoutID; - declare export function flip(func: Function): Function; - declare export function memoize(func: F, resolver?: Function): F; - declare export function negate(predicate: Function): Function; - declare export function once(func: Function): Function; - declare export function overArgs(func?: ?Function, ...transforms?: Array): Function; - declare export function overArgs(func?: ?Function, transforms?: ?Array): Function; - declare export function partial(func: Function, ...partials: any[]): Function; - declare export function partialRight(func: Function, ...partials: Array): Function; - declare export function partialRight(func: Function, partials: Array): Function; - declare export function rearg(func: Function, ...indexes: Array): Function; - declare export function rearg(func: Function, indexes: Array): Function; - declare export function rest(func: Function, start?: number): Function; - declare export function spread(func: Function): Function; - declare export function throttle( - func: Function, - wait?: number, - options?: ThrottleOptions - ): Function; - declare export function unary(func: Function): Function; - declare export function wrap(value?: any, wrapper?: ?Function): Function; - - // Lang - declare export function castArray(value: *): any[]; - declare export function clone(value: T): T; - declare export function cloneDeep(value: T): T; - declare export function cloneDeepWith( - value: T, - customizer?: ?(value: T, key: number | string, object: T, stack: any) => U - ): U; - declare export function cloneWith( - value: T, - customizer?: ?(value: T, key: number | string, object: T, stack: any) => U - ): U; - declare export function conformsTo( - source: T, - predicates: T & { [key: string]: (x: any) => boolean } - ): boolean; - declare export function eq(value: any, other: any): boolean; - declare export function gt(value: any, other: any): boolean; - declare export function gte(value: any, other: any): boolean; - declare export function isArguments(value: void | null): false; - declare export function isArguments(value: any): boolean; - declare export function isArray(value: Array): true; - declare export function isArray(value: any): false; - declare export function isArrayBuffer(value: ArrayBuffer): true; - declare export function isArrayBuffer(value: any): false; - declare export function isArrayLike(value: Array | string | {length: number}): true; - declare export function isArrayLike(value: any): false; - declare export function isArrayLikeObject(value: {length: number} | Array): true; - declare export function isArrayLikeObject(value: any): false; - declare export function isBoolean(value: boolean): true; - declare export function isBoolean(value: any): false; - declare export function isBuffer(value: void | null): false; - declare export function isBuffer(value: any): boolean; - declare export function isDate(value: Date): true; - declare export function isDate(value: any): false; - declare export function isElement(value: Element): true; - declare export function isElement(value: any): false; - declare export function isEmpty(value: void | null | '' | {} | [] | number | boolean): true; - declare export function isEmpty(value: any): boolean; - declare export function isEqual(value: any, other: any): boolean; - declare export function isEqualWith( - value?: ?T, - other?: ?U, - customizer?: ?( - objValue: any, - otherValue: any, - key: number | string, - object: T, - other: U, - stack: any - ) => boolean | void - ): boolean; - declare export function isError(value: Error): true; - declare export function isError(value: any): false; - declare export function isFinite(value: number): boolean; - declare export function isFinite(value: any): false; - declare export function isFunction(value: Function): true; - declare export function isFunction(value: any): false; - declare export function isInteger(value: number): boolean; - declare export function isInteger(value: any): false; - declare export function isLength(value: void | null): false; - declare export function isLength(value: any): boolean; - declare export function isMap(value: Map): true; - declare export function isMap(value: any): false; - declare export function isMatch(object?: ?Object, source?: ?Object): boolean; - declare export function isMatchWith( - object?: ?T, - source?: ?U, - customizer?: ?( - objValue: any, - srcValue: any, - key: number | string, - object: T, - source: U - ) => boolean | void - ): boolean; - declare export function isNaN(value: number): boolean; - declare export function isNaN(value: any): false; - declare export function isNative(value: number | string | void | null | Object): false; - declare export function isNative(value: any): boolean; - declare export function isNil(value: void | null): true; - declare export function isNil(value: any): false; - declare export function isNull(value: null): true; - declare export function isNull(value: any): false; - declare export function isNumber(value: number): true; - declare export function isNumber(value: any): false; - declare export function isObject(value: Object): true; - declare export function isObject(value: any): false; - declare export function isObjectLike(value: void | null): false; - declare export function isObjectLike(value: any): boolean; - declare export function isPlainObject(value: Object): true; - declare export function isPlainObject(value: any): false; - declare export function isRegExp(value: RegExp): true; - declare export function isRegExp(value: any): false; - declare export function isSafeInteger(value: number): boolean; - declare export function isSafeInteger(value: any): false; - declare export function isSet(value: Set): true; - declare export function isSet(value: any): false; - declare export function isString(value: string): true; - declare export function isString(value: any): false; - declare export function isSymbol(value: Symbol): true; - declare export function isSymbol(value: any): false; - declare export function isTypedArray(value: $TypedArray): true; - declare export function isTypedArray(value: any): false; - declare export function isUndefined(value: void): true; - declare export function isUndefined(value: any): false; - declare export function isWeakMap(value: WeakMap): true; - declare export function isWeakMap(value: any): false; - declare export function isWeakSet(value: WeakSet): true; - declare export function isWeakSet(value: any): false; - declare export function lt(value: any, other: any): boolean; - declare export function lte(value: any, other: any): boolean; - declare export function toArray(value: any): Array; - declare export function toFinite(value: void | null): 0; - declare export function toFinite(value: any): number; - declare export function toInteger(value: void | null): 0; - declare export function toInteger(value: any): number; - declare export function toLength(value: void | null): 0; - declare export function toLength(value: any): number; - declare export function toNumber(value: void | null): 0; - declare export function toNumber(value: any): number; - declare export function toPlainObject(value: any): Object; - declare export function toSafeInteger(value: void | null): 0; - declare export function toSafeInteger(value: any): number; - declare export function toString(value: void | null): ''; - declare export function toString(value: any): string; - - // Math - declare export function add(augend: number, addend: number): number; - declare export function ceil(number: number, precision?: number): number; - declare export function divide(dividend: number, divisor: number): number; - declare export function floor(number: number, precision?: number): number; - declare export function max(array: ?Array): T; - declare export function maxBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; - declare export function mean(array: Array<*>): number; - declare export function meanBy(array: Array, iteratee?: Iteratee): number; - declare export function min(array: ?Array): T; - declare export function minBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; - declare export function multiply(multiplier: number, multiplicand: number): number; - declare export function round(number: number, precision?: number): number; - declare export function subtract(minuend: number, subtrahend: number): number; - declare export function sum(array: Array<*>): number; - declare export function sumBy(array: Array, iteratee?: Iteratee): number; - - // number - declare export function clamp(number?: number, lower?: ?number, upper?: ?number): number; - declare export function clamp(number: ?number, lower?: ?number, upper?: ?number): 0; - declare export function inRange(number: number, start?: number, end: number): boolean; - declare export function random(lower?: number, upper?: number, floating?: boolean): number; - - // Object - declare export function assign(object?: ?Object, ...sources?: Array): Object; - declare export function assignIn(): {}; - declare export function assignIn(a: A, b: B): A & B; - declare export function assignIn(a: A, b: B, c: C): A & B & C; - declare export function assignIn(a: A, b: B, c: C, d: D): A & B & C & D; - declare export function assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; - declare export function assignInWith(): {}; - declare export function assignInWith( - object: T, - s1: A, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A - ) => any | void - ): Object; - declare export function assignInWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B - ) => any | void - ): Object; - declare export function assignInWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C - ) => any | void - ): Object; - declare export function assignInWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D - ) => any | void - ): Object; - declare export function assignWith(): {}; - declare export function assignWith( - object: T, - s1: A, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A - ) => any | void - ): Object; - declare export function assignWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B - ) => any | void - ): Object; - declare export function assignWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C - ) => any | void - ): Object; - declare export function assignWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D - ) => any | void - ): Object; - declare export function at(object?: ?Object, ...paths: Array): Array; - declare export function at(object?: ?Object, paths: Array): Array; - declare export function create(prototype: T, properties: Object): $Supertype; - declare export function create(prototype: any, properties: void | null): {}; - declare export function defaults(object?: ?Object, ...sources?: Array): Object; - declare export function defaultsDeep(object?: ?Object, ...sources?: Array): Object; - // alias for _.toPairs - declare export function entries(object?: ?Object): Array<[string, any]>; - // alias for _.toPairsIn - declare export function entriesIn(object?: ?Object): Array<[string, any]>; - // alias for _.assignIn - declare export function extend(a?: ?A, b?: ?B): A & B; - declare export function extend(a: A, b: B, c: C): A & B & C; - declare export function extend(a: A, b: B, c: C, d: D): A & B & C & D; - declare export function extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; - // alias for _.assignInWith - declare export function extendWith( - object?: ?T, - s1?: ?A, - customizer?: ?( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A - ) => any | void - ): Object; - declare export function extendWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B - ) => any | void - ): Object; - declare export function extendWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C - ) => any | void - ): Object; - declare export function extendWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D - ) => any | void - ): Object; - declare export function findKey( - object: T, - predicate?: ?OPredicate - ): string | void; - declare export function findKey( - object: void | null, - predicate?: ?OPredicate - ): void; - declare export function findLastKey( - object: T, - predicate?: ?OPredicate - ): string | void; - declare export function findLastKey( - object: void | null, - predicate?: ?OPredicate - ): void; - declare export function forIn(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function forIn(object: void | null, iteratee?: ?OIteratee<*>): null; - declare export function forInRight(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function forInRight(object: void | null, iteratee?: ?OIteratee<*>): null; - declare export function forOwn(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function forOwn(object: void | null, iteratee?: ?OIteratee<*>): null; - declare export function forOwnRight(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function forOwnRight(object: void | null, iteratee?: ?OIteratee<*>): null; - declare export function functions(object?: ?Object): Array; - declare export function functionsIn(object?: ?Object): Array; - declare export function get( - object?: ?Object | ?$ReadOnlyArray | void | null, - path?: ?$ReadOnlyArray | string | number, - defaultValue?: any - ): any; - declare export function has(object: Object, path: Array | string): boolean; - declare export function has(object: Object, path: void | null): false; - declare export function has(object: void | null, path?: ?Array | ?string): false; - declare export function hasIn(object: Object, path: Array | string): boolean; - declare export function hasIn(object: Object, path: void | null): false; - declare export function hasIn(object: void | null, path?: ?Array | ?string): false; - declare export function invert(object: Object, multiVal?: ?boolean): Object; - declare export function invert(object: void | null, multiVal?: ?boolean): {}; - declare export function invertBy(object: Object, iteratee?: ?Function): Object; - declare export function invertBy(object: void | null, iteratee?: ?Function): {}; - declare export function invoke( - object?: ?Object, - path?: ?Array | string, - ...args?: Array - ): any; - declare export function keys(object?: ?{ [key: K]: any }): Array; - declare export function keys(object?: ?Object): Array; - declare export function keysIn(object?: ?Object): Array; - declare export function mapKeys(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function mapKeys(object: void | null, iteratee?: ?OIteratee<*>): {}; - declare export function mapValues(object: Object, iteratee?: ?OIteratee<*>): Object; - declare export function mapValues(object: void | null, iteratee?: ?OIteratee<*>): {}; - declare export function merge(object?: ?Object, ...sources?: Array): Object; - declare export function mergeWith(): {}; - declare export function mergeWith( - object: T, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A - ) => any | void - ): Object; - declare export function mergeWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B - ) => any | void - ): Object; - declare export function mergeWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C - ) => any | void - ): Object; - declare export function mergeWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D - ) => any | void - ): Object; - declare export function omit(object?: ?Object, ...props: Array): Object; - declare export function omit(object?: ?Object, props: Array): Object; - declare export function omitBy( - object: T, - predicate?: ?OPredicate - ): Object; - declare export function omitBy( - object: void | null, - predicate?: ?OPredicate - ): {}; - declare export function pick(object?: ?Object, ...props: Array): Object; - declare export function pick(object?: ?Object, props: Array): Object; - declare export function pickBy( - object: T, - predicate?: ?OPredicate - ): Object; - declare export function pickBy( - object: void | null, - predicate?: ?OPredicate - ): {}; - declare export function result( - object?: ?Object, - path?: ?Array | string, - defaultValue?: any - ): any; - declare export function set(object: Object, path?: ?Array | string, value: any): Object; - declare export function set( - object: T, - path?: ?Array | string, - value?: ?any): T; - declare export function setWith( - object: T, - path?: ?Array | string, - value: any, - customizer?: (nsValue: any, key: string, nsObject: T) => any - ): Object; - declare export function setWith( - object: T, - path?: ?Array | string, - value?: ?any, - customizer?: ?(nsValue: any, key: string, nsObject: T) => any - ): T; - declare export function toPairs(object?: ?Object | Array<*>): Array<[string, any]>; - declare export function toPairsIn(object?: ?Object): Array<[string, any]>; - declare export function transform( - collection: Object | $ReadOnlyArray, - iteratee?: ?OIteratee<*>, - accumulator?: any - ): any; - declare export function transform( - collection: void | null, - iteratee?: ?OIteratee<*>, - accumulator?: ?any - ): {}; - declare export function unset(object: Object, path?: ?Array | ?string): boolean; - declare export function unset(object: void | null, path?: ?Array | ?string): true; - declare export function update(object: Object, path: string[] | string, updater: Function): Object; - declare export function update( - object: T, - path?: ?string[] | ?string, - updater?: ?Function): T; - declare export function updateWith( - object: Object, - path?: ?string[] | ?string, - updater?: ?Function, - customizer?: ?Function, - ): Object; - declare export function updateWith( - object: T, - path?: ?string[] | ?string, - updater?: ?Function, - customizer?: ?Function, - ): T; - declare export function values(object?: ?Object): Array; - declare export function valuesIn(object?: ?Object): Array; - - // Seq - declare export function chain(value: T): any; - declare export function tap(value: T, interceptor: (value: T) => any): T; - declare export function thru(value: T1, interceptor: (value: T1) => T2): T2; - - // String - declare export function camelCase(string: string): string; - declare export function camelCase(string: void | null): ''; - declare export function capitalize(string: string): string; - declare export function capitalize(string: void | null): ''; - declare export function deburr(string: string): string; - declare export function deburr(string: void | null): ''; - declare export function endsWith(string: string, target?: string, position?: ?number): boolean; - declare export function endsWith(string: void | null, target?: ?string, position?: ?number): false; - declare export function escape(string: string): string; - declare export function escape(string: void | null): ''; - declare export function escapeRegExp(string: string): string; - declare export function escapeRegExp(string: void | null): ''; - declare export function kebabCase(string: string): string; - declare export function kebabCase(string: void | null): ''; - declare export function lowerCase(string: string): string; - declare export function lowerCase(string: void | null): ''; - declare export function lowerFirst(string: string): string; - declare export function lowerFirst(string: void | null): ''; - declare export function pad(string?: ?string, length?: ?number, chars?: ?string): string; - declare export function padEnd(string?: ?string, length?: ?number, chars?: ?string): string; - declare export function padStart(string?: ?string, length?: ?number, chars?: ?string): string; - declare export function parseInt(string: string, radix?: ?number): number; - declare export function repeat(string: string, n?: ?number): string; - declare export function repeat(string: void | null, n?: ?number): ''; - declare export function replace( - string: string, - pattern: RegExp | string, - replacement: ((string: string) => string) | string - ): string; - declare export function replace( - string: void | null, - pattern?: ?RegExp | ?string, - replacement: ?((string: string) => string) | ?string - ): ''; - declare export function snakeCase(string: string): string; - declare export function snakeCase(string: void | null): ''; - declare export function split( - string?: ?string, - separator?: ?RegExp | ?string, - limit?: ?number - ): Array; - declare export function startCase(string: string): string; - declare export function startCase(string: void | null): ''; - declare export function startsWith(string: string, target?: string, position?: number): boolean; - declare export function startsWith(string: void | null, target?: ?string, position?: ?number): false; - declare export function template(string?: ?string, options?: ?TemplateSettings): Function; - declare export function toLower(string: string): string; - declare export function toLower(string: void | null): ''; - declare export function toUpper(string: string): string; - declare export function toUpper(string: void | null): ''; - declare export function trim(string: string, chars?: string): string; - declare export function trim(string: void | null, chars?: ?string): ''; - declare export function trimEnd(string: string, chars?: ?string): string; - declare export function trimEnd(string: void | null, chars?: ?string): ''; - declare export function trimStart(string: string, chars?: ?string): string; - declare export function trimStart(string: void | null, chars?: ?string): ''; - declare export function truncate(string: string, options?: TruncateOptions): string; - declare export function truncate(string: void | null, options?: ?TruncateOptions): ''; - declare export function unescape(string: string): string; - declare export function unescape(string: void | null): ''; - declare export function upperCase(string: string): string; - declare export function upperCase(string: void | null): ''; - declare export function upperFirst(string: string): string; - declare export function upperFirst(string: void | null): ''; - declare export function words(string?: ?string, pattern?: ?RegExp | ?string): Array; - - // Util - declare export function attempt(func: Function, ...args: Array): any; - declare export function bindAll(object: Object, methodNames?: ?Array): Object; - declare export function bindAll(object: T, methodNames?: ?Array): T; - declare export function bindAll(object: Object, ...methodNames: Array): Object; - declare export function cond(pairs?: ?NestedArray): Function; - declare export function conforms(source?: ?Object): Function; - declare export function constant(value: T): () => T; - declare export function defaultTo( - value: T1, - defaultValue: T2, - ): T1; - declare export function defaultTo(value: T1, defaultValue: T2): T1 | T2; - declare export function defaultTo(value: T1, defaultValue: T2): T2; - declare export var flow: ($ComposeReverse & (funcs: Array) => Function); - declare export var flowRight: ($Compose & (funcs: Array) => Function); - declare export function identity(value: T): T; - declare export function iteratee(func?: any): Function; - declare export function matches(source?: ?Object): Function; - declare export function matchesProperty(path?: ?Array | string, srcValue: any): Function; - declare export function method(path?: ?Array | string, ...args?: Array): Function; - declare export function methodOf(object?: ?Object, ...args?: Array): Function; - declare export function mixin( - object?: T, - source: Object, - options?: { chain: boolean } - ): T; - declare export function noop(...args: Array): void; - declare export function nthArg(n?: ?number): Function; - declare export function over(...iteratees: Array): Function; - declare export function over(iteratees: Array): Function; - declare export function overEvery(...predicates: Array): Function; - declare export function overEvery(predicates: Array): Function; - declare export function overSome(...predicates: Array): Function; - declare export function overSome(predicates: Array): Function; - declare export function property(path?: ?Array | string): Function; - declare export function propertyOf(object?: ?Object): Function; - declare export function range(start: number, end: number, step?: number): Array; - declare export function range(end: number, step?: number): Array; - declare export function rangeRight(start?: ?number, end?: ?number, step?: ?number): Array; - declare export function rangeRight(end?: ?number, step?: ?number): Array; - declare export function runInContext(context?: ?Object): Function; - - declare export function stubArray(): Array<*>; - declare export function stubFalse(): false; - declare export function stubObject(): {}; - declare export function stubString(): ""; - declare export function stubTrue(): true; - declare export function times(n?: ?number, ...rest?: Array): Array; - declare export function times(n: number, iteratee: (i: number) => T): Array; - declare export function toPath(value: any): Array; - declare export function uniqueId(prefix?: ?string): string; -} -declare module "lodash-es/chunk" { - declare export default $PropertyType<$Exports<"lodash-es">, "chunk">; -} -declare module "lodash-es/compact" { - declare export default $PropertyType<$Exports<"lodash-es">, "compact">; -} -declare module "lodash-es/concat" { - declare export default $PropertyType<$Exports<"lodash-es">, "concat">; -} -declare module "lodash-es/difference" { - declare export default $PropertyType<$Exports<"lodash-es">, "difference">; -} -declare module "lodash-es/differenceBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "differenceBy">; -} -declare module "lodash-es/differenceWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "differenceWith">; -} -declare module "lodash-es/drop" { - declare export default $PropertyType<$Exports<"lodash-es">, "drop">; -} -declare module "lodash-es/dropRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "dropRight">; -} -declare module "lodash-es/dropRightWhile" { - declare export default $PropertyType<$Exports<"lodash-es">, "dropRightWhile">; -} -declare module "lodash-es/dropWhile" { - declare export default $PropertyType<$Exports<"lodash-es">, "dropWhile">; -} -declare module "lodash-es/fill" { - declare export default $PropertyType<$Exports<"lodash-es">, "fill">; -} -declare module "lodash-es/findIndex" { - declare export default $PropertyType<$Exports<"lodash-es">, "findIndex">; -} -declare module "lodash-es/findLastIndex" { - declare export default $PropertyType<$Exports<"lodash-es">, "findLastIndex">; -} -declare module "lodash-es/first" { - declare export default $PropertyType<$Exports<"lodash-es">, "first">; -} -declare module "lodash-es/flatten" { - declare export default $PropertyType<$Exports<"lodash-es">, "flatten">; -} -declare module "lodash-es/flattenDeep" { - declare export default $PropertyType<$Exports<"lodash-es">, "flattenDeep">; -} -declare module "lodash-es/flattenDepth" { - declare export default $PropertyType<$Exports<"lodash-es">, "flattenDepth">; -} -declare module "lodash-es/fromPairs" { - declare export default $PropertyType<$Exports<"lodash-es">, "fromPairs">; -} -declare module "lodash-es/head" { - declare export default $PropertyType<$Exports<"lodash-es">, "head">; -} -declare module "lodash-es/indexOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "indexOf">; -} -declare module "lodash-es/initial" { - declare export default $PropertyType<$Exports<"lodash-es">, "initial">; -} -declare module "lodash-es/intersection" { - declare export default $PropertyType<$Exports<"lodash-es">, "intersection">; -} -declare module "lodash-es/intersectionBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "intersectionBy">; -} -declare module "lodash-es/intersectionWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "intersectionWith">; -} -declare module "lodash-es/join" { - declare export default $PropertyType<$Exports<"lodash-es">, "join">; -} -declare module "lodash-es/last" { - declare export default $PropertyType<$Exports<"lodash-es">, "last">; -} -declare module "lodash-es/lastIndexOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "lastIndexOf">; -} -declare module "lodash-es/nth" { - declare export default $PropertyType<$Exports<"lodash-es">, "nth">; -} -declare module "lodash-es/pull" { - declare export default $PropertyType<$Exports<"lodash-es">, "pull">; -} -declare module "lodash-es/pullAll" { - declare export default $PropertyType<$Exports<"lodash-es">, "pullAll">; -} -declare module "lodash-es/pullAllBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "pullAllBy">; -} -declare module "lodash-es/pullAllWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "pullAllWith">; -} -declare module "lodash-es/pullAt" { - declare export default $PropertyType<$Exports<"lodash-es">, "pullAt">; -} -declare module "lodash-es/remove" { - declare export default $PropertyType<$Exports<"lodash-es">, "remove">; -} -declare module "lodash-es/reverse" { - declare export default $PropertyType<$Exports<"lodash-es">, "reverse">; -} -declare module "lodash-es/slice" { - declare export default $PropertyType<$Exports<"lodash-es">, "slice">; -} -declare module "lodash-es/sortedIndex" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedIndex">; -} -declare module "lodash-es/sortedIndexBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedIndexBy">; -} -declare module "lodash-es/sortedIndexOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedIndexOf">; -} -declare module "lodash-es/sortedLastIndex" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedLastIndex">; -} -declare module "lodash-es/sortedLastIndexBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedLastIndexBy">; -} -declare module "lodash-es/sortedLastIndexOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedLastIndexOf">; -} -declare module "lodash-es/sortedUniq" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedUniq">; -} -declare module "lodash-es/sortedUniqBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortedUniqBy">; -} -declare module "lodash-es/tail" { - declare export default $PropertyType<$Exports<"lodash-es">, "tail">; -} -declare module "lodash-es/take" { - declare export default $PropertyType<$Exports<"lodash-es">, "take">; -} -declare module "lodash-es/takeRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "takeRight">; -} -declare module "lodash-es/takeRightWhile" { - declare export default $PropertyType<$Exports<"lodash-es">, "takeRightWhile">; -} -declare module "lodash-es/takeWhile" { - declare export default $PropertyType<$Exports<"lodash-es">, "takeWhile">; -} -declare module "lodash-es/union" { - declare export default $PropertyType<$Exports<"lodash-es">, "union">; -} -declare module "lodash-es/unionBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "unionBy">; -} -declare module "lodash-es/unionWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "unionWith">; -} -declare module "lodash-es/uniq" { - declare export default $PropertyType<$Exports<"lodash-es">, "uniq">; -} -declare module "lodash-es/uniqBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "uniqBy">; -} -declare module "lodash-es/uniqWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "uniqWith">; -} -declare module "lodash-es/unzip" { - declare export default $PropertyType<$Exports<"lodash-es">, "unzip">; -} -declare module "lodash-es/unzipWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "unzipWith">; -} -declare module "lodash-es/without" { - declare export default $PropertyType<$Exports<"lodash-es">, "without">; -} -declare module "lodash-es/xor" { - declare export default $PropertyType<$Exports<"lodash-es">, "xor">; -} -declare module "lodash-es/xorBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "xorBy">; -} -declare module "lodash-es/xorWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "xorWith">; -} -declare module "lodash-es/zip" { - declare export default $PropertyType<$Exports<"lodash-es">, "zip">; -} -declare module "lodash-es/zipObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "zipObject">; -} -declare module "lodash-es/zipObjectDeep" { - declare export default $PropertyType<$Exports<"lodash-es">, "zipObjectDeep">; -} -declare module "lodash-es/zipWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "zipWith">; -} -declare module "lodash-es/countBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "countBy">; -} -declare module "lodash-es/each" { - declare export default $PropertyType<$Exports<"lodash-es">, "each">; -} -declare module "lodash-es/eachRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "eachRight">; -} -declare module "lodash-es/every" { - declare export default $PropertyType<$Exports<"lodash-es">, "every">; -} -declare module "lodash-es/filter" { - declare export default $PropertyType<$Exports<"lodash-es">, "filter">; -} -declare module "lodash-es/find" { - declare export default $PropertyType<$Exports<"lodash-es">, "find">; -} -declare module "lodash-es/findLast" { - declare export default $PropertyType<$Exports<"lodash-es">, "findLast">; -} -declare module "lodash-es/flatMap" { - declare export default $PropertyType<$Exports<"lodash-es">, "flatMap">; -} -declare module "lodash-es/flatMapDeep" { - declare export default $PropertyType<$Exports<"lodash-es">, "flatMapDeep">; -} -declare module "lodash-es/flatMapDepth" { - declare export default $PropertyType<$Exports<"lodash-es">, "flatMapDepth">; -} -declare module "lodash-es/forEach" { - declare export default $PropertyType<$Exports<"lodash-es">, "forEach">; -} -declare module "lodash-es/forEachRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "forEachRight">; -} -declare module "lodash-es/groupBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "groupBy">; -} -declare module "lodash-es/includes" { - declare export default $PropertyType<$Exports<"lodash-es">, "includes">; -} -declare module "lodash-es/invokeMap" { - declare export default $PropertyType<$Exports<"lodash-es">, "invokeMap">; -} -declare module "lodash-es/keyBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "keyBy">; -} -declare module "lodash-es/map" { - declare export default $PropertyType<$Exports<"lodash-es">, "map">; -} -declare module "lodash-es/orderBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "orderBy">; -} -declare module "lodash-es/partition" { - declare export default $PropertyType<$Exports<"lodash-es">, "partition">; -} -declare module "lodash-es/reduce" { - declare export default $PropertyType<$Exports<"lodash-es">, "reduce">; -} -declare module "lodash-es/reduceRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "reduceRight">; -} -declare module "lodash-es/reject" { - declare export default $PropertyType<$Exports<"lodash-es">, "reject">; -} -declare module "lodash-es/sample" { - declare export default $PropertyType<$Exports<"lodash-es">, "sample">; -} -declare module "lodash-es/sampleSize" { - declare export default $PropertyType<$Exports<"lodash-es">, "sampleSize">; -} -declare module "lodash-es/shuffle" { - declare export default $PropertyType<$Exports<"lodash-es">, "shuffle">; -} -declare module "lodash-es/size" { - declare export default $PropertyType<$Exports<"lodash-es">, "size">; -} -declare module "lodash-es/some" { - declare export default $PropertyType<$Exports<"lodash-es">, "some">; -} -declare module "lodash-es/sortBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "sortBy">; -} -declare module "lodash-es/now" { - declare export default $PropertyType<$Exports<"lodash-es">, "now">; -} -declare module "lodash-es/after" { - declare export default $PropertyType<$Exports<"lodash-es">, "after">; -} -declare module "lodash-es/ary" { - declare export default $PropertyType<$Exports<"lodash-es">, "ary">; -} -declare module "lodash-es/before" { - declare export default $PropertyType<$Exports<"lodash-es">, "before">; -} -declare module "lodash-es/bind" { - declare export default $PropertyType<$Exports<"lodash-es">, "bind">; -} -declare module "lodash-es/bindKey" { - declare export default $PropertyType<$Exports<"lodash-es">, "bindKey">; -} -declare module "lodash-es/curry" { - declare export default $PropertyType<$Exports<"lodash-es">, "curry">; -} -declare module "lodash-es/curryRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "curryRight">; -} -declare module "lodash-es/debounce" { - declare export default $PropertyType<$Exports<"lodash-es">, "debounce">; -} -declare module "lodash-es/defer" { - declare export default $PropertyType<$Exports<"lodash-es">, "defer">; -} -declare module "lodash-es/delay" { - declare export default $PropertyType<$Exports<"lodash-es">, "delay">; -} -declare module "lodash-es/flip" { - declare export default $PropertyType<$Exports<"lodash-es">, "flip">; -} -declare module "lodash-es/memoize" { - declare export default $PropertyType<$Exports<"lodash-es">, "memoize">; -} -declare module "lodash-es/negate" { - declare export default $PropertyType<$Exports<"lodash-es">, "negate">; -} -declare module "lodash-es/once" { - declare export default $PropertyType<$Exports<"lodash-es">, "once">; -} -declare module "lodash-es/overArgs" { - declare export default $PropertyType<$Exports<"lodash-es">, "overArgs">; -} -declare module "lodash-es/partial" { - declare export default $PropertyType<$Exports<"lodash-es">, "partial">; -} -declare module "lodash-es/partialRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "partialRight">; -} -declare module "lodash-es/rearg" { - declare export default $PropertyType<$Exports<"lodash-es">, "rearg">; -} -declare module "lodash-es/rest" { - declare export default $PropertyType<$Exports<"lodash-es">, "rest">; -} -declare module "lodash-es/spread" { - declare export default $PropertyType<$Exports<"lodash-es">, "spread">; -} -declare module "lodash-es/throttle" { - declare export default $PropertyType<$Exports<"lodash-es">, "throttle">; -} -declare module "lodash-es/unary" { - declare export default $PropertyType<$Exports<"lodash-es">, "unary">; -} -declare module "lodash-es/wrap" { - declare export default $PropertyType<$Exports<"lodash-es">, "wrap">; -} -declare module "lodash-es/castArray" { - declare export default $PropertyType<$Exports<"lodash-es">, "castArray">; -} -declare module "lodash-es/clone" { - declare export default $PropertyType<$Exports<"lodash-es">, "clone">; -} -declare module "lodash-es/cloneDeep" { - declare export default $PropertyType<$Exports<"lodash-es">, "cloneDeep">; -} -declare module "lodash-es/cloneDeepWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "cloneDeepWith">; -} -declare module "lodash-es/cloneWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "cloneWith">; -} -declare module "lodash-es/conformsTo" { - declare export default $PropertyType<$Exports<"lodash-es">, "conformsTo">; -} -declare module "lodash-es/eq" { - declare export default $PropertyType<$Exports<"lodash-es">, "eq">; -} -declare module "lodash-es/gt" { - declare export default $PropertyType<$Exports<"lodash-es">, "gt">; -} -declare module "lodash-es/gte" { - declare export default $PropertyType<$Exports<"lodash-es">, "gte">; -} -declare module "lodash-es/isArguments" { - declare export default $PropertyType<$Exports<"lodash-es">, "isArguments">; -} -declare module "lodash-es/isArray" { - declare export default $PropertyType<$Exports<"lodash-es">, "isArray">; -} -declare module "lodash-es/isArrayBuffer" { - declare export default $PropertyType<$Exports<"lodash-es">, "isArrayBuffer">; -} -declare module "lodash-es/isArrayLike" { - declare export default $PropertyType<$Exports<"lodash-es">, "isArrayLike">; -} -declare module "lodash-es/isArrayLikeObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "isArrayLikeObject">; -} -declare module "lodash-es/isBoolean" { - declare export default $PropertyType<$Exports<"lodash-es">, "isBoolean">; -} -declare module "lodash-es/isBuffer" { - declare export default $PropertyType<$Exports<"lodash-es">, "isBuffer">; -} -declare module "lodash-es/isDate" { - declare export default $PropertyType<$Exports<"lodash-es">, "isDate">; -} -declare module "lodash-es/isElement" { - declare export default $PropertyType<$Exports<"lodash-es">, "isElement">; -} -declare module "lodash-es/isEmpty" { - declare export default $PropertyType<$Exports<"lodash-es">, "isEmpty">; -} -declare module "lodash-es/isEqual" { - declare export default $PropertyType<$Exports<"lodash-es">, "isEqual">; -} -declare module "lodash-es/isEqualWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "isEqualWith">; -} -declare module "lodash-es/isError" { - declare export default $PropertyType<$Exports<"lodash-es">, "isError">; -} -declare module "lodash-es/isFinite" { - declare export default $PropertyType<$Exports<"lodash-es">, "isFinite">; -} -declare module "lodash-es/isFunction" { - declare export default $PropertyType<$Exports<"lodash-es">, "isFunction">; -} -declare module "lodash-es/isInteger" { - declare export default $PropertyType<$Exports<"lodash-es">, "isInteger">; -} -declare module "lodash-es/isLength" { - declare export default $PropertyType<$Exports<"lodash-es">, "isLength">; -} -declare module "lodash-es/isMap" { - declare export default $PropertyType<$Exports<"lodash-es">, "isMap">; -} -declare module "lodash-es/isMatch" { - declare export default $PropertyType<$Exports<"lodash-es">, "isMatch">; -} -declare module "lodash-es/isMatchWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "isMatchWith">; -} -declare module "lodash-es/isNaN" { - declare export default $PropertyType<$Exports<"lodash-es">, "isNaN">; -} -declare module "lodash-es/isNative" { - declare export default $PropertyType<$Exports<"lodash-es">, "isNative">; -} -declare module "lodash-es/isNil" { - declare export default $PropertyType<$Exports<"lodash-es">, "isNil">; -} -declare module "lodash-es/isNull" { - declare export default $PropertyType<$Exports<"lodash-es">, "isNull">; -} -declare module "lodash-es/isNumber" { - declare export default $PropertyType<$Exports<"lodash-es">, "isNumber">; -} -declare module "lodash-es/isObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "isObject">; -} -declare module "lodash-es/isObjectLike" { - declare export default $PropertyType<$Exports<"lodash-es">, "isObjectLike">; -} -declare module "lodash-es/isPlainObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "isPlainObject">; -} -declare module "lodash-es/isRegExp" { - declare export default $PropertyType<$Exports<"lodash-es">, "isRegExp">; -} -declare module "lodash-es/isSafeInteger" { - declare export default $PropertyType<$Exports<"lodash-es">, "isSafeInteger">; -} -declare module "lodash-es/isSet" { - declare export default $PropertyType<$Exports<"lodash-es">, "isSet">; -} -declare module "lodash-es/isString" { - declare export default $PropertyType<$Exports<"lodash-es">, "isString">; -} -declare module "lodash-es/isSymbol" { - declare export default $PropertyType<$Exports<"lodash-es">, "isSymbol">; -} -declare module "lodash-es/isTypedArray" { - declare export default $PropertyType<$Exports<"lodash-es">, "isTypedArray">; -} -declare module "lodash-es/isUndefined" { - declare export default $PropertyType<$Exports<"lodash-es">, "isUndefined">; -} -declare module "lodash-es/isWeakMap" { - declare export default $PropertyType<$Exports<"lodash-es">, "isWeakMap">; -} -declare module "lodash-es/isWeakSet" { - declare export default $PropertyType<$Exports<"lodash-es">, "isWeakSet">; -} -declare module "lodash-es/lt" { - declare export default $PropertyType<$Exports<"lodash-es">, "lt">; -} -declare module "lodash-es/lte" { - declare export default $PropertyType<$Exports<"lodash-es">, "lte">; -} -declare module "lodash-es/toArray" { - declare export default $PropertyType<$Exports<"lodash-es">, "toArray">; -} -declare module "lodash-es/toFinite" { - declare export default $PropertyType<$Exports<"lodash-es">, "toFinite">; -} -declare module "lodash-es/toInteger" { - declare export default $PropertyType<$Exports<"lodash-es">, "toInteger">; -} -declare module "lodash-es/toLength" { - declare export default $PropertyType<$Exports<"lodash-es">, "toLength">; -} -declare module "lodash-es/toNumber" { - declare export default $PropertyType<$Exports<"lodash-es">, "toNumber">; -} -declare module "lodash-es/toPlainObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "toPlainObject">; -} -declare module "lodash-es/toSafeInteger" { - declare export default $PropertyType<$Exports<"lodash-es">, "toSafeInteger">; -} -declare module "lodash-es/toString" { - declare export default $PropertyType<$Exports<"lodash-es">, "toString">; -} -declare module "lodash-es/add" { - declare export default $PropertyType<$Exports<"lodash-es">, "add">; -} -declare module "lodash-es/ceil" { - declare export default $PropertyType<$Exports<"lodash-es">, "ceil">; -} -declare module "lodash-es/divide" { - declare export default $PropertyType<$Exports<"lodash-es">, "divide">; -} -declare module "lodash-es/floor" { - declare export default $PropertyType<$Exports<"lodash-es">, "floor">; -} -declare module "lodash-es/max" { - declare export default $PropertyType<$Exports<"lodash-es">, "max">; -} -declare module "lodash-es/maxBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "maxBy">; -} -declare module "lodash-es/mean" { - declare export default $PropertyType<$Exports<"lodash-es">, "mean">; -} -declare module "lodash-es/meanBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "meanBy">; -} -declare module "lodash-es/min" { - declare export default $PropertyType<$Exports<"lodash-es">, "min">; -} -declare module "lodash-es/minBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "minBy">; -} -declare module "lodash-es/multiply" { - declare export default $PropertyType<$Exports<"lodash-es">, "multiply">; -} -declare module "lodash-es/round" { - declare export default $PropertyType<$Exports<"lodash-es">, "round">; -} -declare module "lodash-es/subtract" { - declare export default $PropertyType<$Exports<"lodash-es">, "subtract">; -} -declare module "lodash-es/sum" { - declare export default $PropertyType<$Exports<"lodash-es">, "sum">; -} -declare module "lodash-es/sumBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "sumBy">; -} -declare module "lodash-es/clamp" { - declare export default $PropertyType<$Exports<"lodash-es">, "clamp">; -} -declare module "lodash-es/inRange" { - declare export default $PropertyType<$Exports<"lodash-es">, "inRange">; -} -declare module "lodash-es/random" { - declare export default $PropertyType<$Exports<"lodash-es">, "random">; -} -declare module "lodash-es/assign" { - declare export default $PropertyType<$Exports<"lodash-es">, "assign">; -} -declare module "lodash-es/assignIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "assignIn">; -} -declare module "lodash-es/assignInWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "assignInWith">; -} -declare module "lodash-es/assignWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "assignWith">; -} -declare module "lodash-es/at" { - declare export default $PropertyType<$Exports<"lodash-es">, "at">; -} -declare module "lodash-es/create" { - declare export default $PropertyType<$Exports<"lodash-es">, "create">; -} -declare module "lodash-es/create" { - declare export default $PropertyType<$Exports<"lodash-es">, "create">; -} -declare module "lodash-es/defaults" { - declare export default $PropertyType<$Exports<"lodash-es">, "defaults">; -} -declare module "lodash-es/defaultsDeep" { - declare export default $PropertyType<$Exports<"lodash-es">, "defaultsDeep">; -} -declare module "lodash-es/entries" { - declare export default $PropertyType<$Exports<"lodash-es">, "entries">; -} -declare module "lodash-es/entriesIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "entriesIn">; -} -declare module "lodash-es/extend" { - declare export default $PropertyType<$Exports<"lodash-es">, "extend">; -} -declare module "lodash-es/extendWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "extendWith">; -} -declare module "lodash-es/findKey" { - declare export default $PropertyType<$Exports<"lodash-es">, "findKey">; -} -declare module "lodash-es/findLastKey" { - declare export default $PropertyType<$Exports<"lodash-es">, "findLastKey">; -} -declare module "lodash-es/forIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "forIn">; -} -declare module "lodash-es/forInRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "forInRight">; -} -declare module "lodash-es/forOwn" { - declare export default $PropertyType<$Exports<"lodash-es">, "forOwn">; -} -declare module "lodash-es/forOwnRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "forOwnRight">; -} -declare module "lodash-es/functions" { - declare export default $PropertyType<$Exports<"lodash-es">, "functions">; -} -declare module "lodash-es/functionsIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "functionsIn">; -} -declare module "lodash-es/get" { - declare export default $PropertyType<$Exports<"lodash-es">, "get">; -} -declare module "lodash-es/has" { - declare export default $PropertyType<$Exports<"lodash-es">, "has">; -} -declare module "lodash-es/hasIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "hasIn">; -} -declare module "lodash-es/invert" { - declare export default $PropertyType<$Exports<"lodash-es">, "invert">; -} -declare module "lodash-es/invertBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "invertBy">; -} -declare module "lodash-es/invoke" { - declare export default $PropertyType<$Exports<"lodash-es">, "invoke">; -} -declare module "lodash-es/keys" { - declare export default $PropertyType<$Exports<"lodash-es">, "keys">; -} -declare module "lodash-es/keysIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "keysIn">; -} -declare module "lodash-es/mapKeys" { - declare export default $PropertyType<$Exports<"lodash-es">, "mapKeys">; -} -declare module "lodash-es/mapValues" { - declare export default $PropertyType<$Exports<"lodash-es">, "mapValues">; -} -declare module "lodash-es/merge" { - declare export default $PropertyType<$Exports<"lodash-es">, "merge">; -} -declare module "lodash-es/mergeWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "mergeWith">; -} -declare module "lodash-es/omit" { - declare export default $PropertyType<$Exports<"lodash-es">, "omit">; -} -declare module "lodash-es/omitBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "omitBy">; -} -declare module "lodash-es/pick" { - declare export default $PropertyType<$Exports<"lodash-es">, "pick">; -} -declare module "lodash-es/pickBy" { - declare export default $PropertyType<$Exports<"lodash-es">, "pickBy">; -} -declare module "lodash-es/result" { - declare export default $PropertyType<$Exports<"lodash-es">, "result">; -} -declare module "lodash-es/set" { - declare export default $PropertyType<$Exports<"lodash-es">, "set">; -} -declare module "lodash-es/setWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "setWith">; -} -declare module "lodash-es/toPairs" { - declare export default $PropertyType<$Exports<"lodash-es">, "toPairs">; -} -declare module "lodash-es/toPairsIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "toPairsIn">; -} -declare module "lodash-es/transform" { - declare export default $PropertyType<$Exports<"lodash-es">, "transform">; -} -declare module "lodash-es/unset" { - declare export default $PropertyType<$Exports<"lodash-es">, "unset">; -} -declare module "lodash-es/update" { - declare export default $PropertyType<$Exports<"lodash-es">, "update">; -} -declare module "lodash-es/updateWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "updateWith">; -} -declare module "lodash-es/values" { - declare export default $PropertyType<$Exports<"lodash-es">, "values">; -} -declare module "lodash-es/valuesIn" { - declare export default $PropertyType<$Exports<"lodash-es">, "valuesIn">; -} -declare module "lodash-es/chain" { - declare export default $PropertyType<$Exports<"lodash-es">, "chain">; -} -declare module "lodash-es/tap" { - declare export default $PropertyType<$Exports<"lodash-es">, "tap">; -} -declare module "lodash-es/thru" { - declare export default $PropertyType<$Exports<"lodash-es">, "thru">; -} -declare module "lodash-es/camelCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "camelCase">; -} -declare module "lodash-es/capitalize" { - declare export default $PropertyType<$Exports<"lodash-es">, "capitalize">; -} -declare module "lodash-es/deburr" { - declare export default $PropertyType<$Exports<"lodash-es">, "deburr">; -} -declare module "lodash-es/endsWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "endsWith">; -} -declare module "lodash-es/escape" { - declare export default $PropertyType<$Exports<"lodash-es">, "escape">; -} -declare module "lodash-es/escapeRegExp" { - declare export default $PropertyType<$Exports<"lodash-es">, "escapeRegExp">; -} -declare module "lodash-es/kebabCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "kebabCase">; -} -declare module "lodash-es/lowerCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "lowerCase">; -} -declare module "lodash-es/lowerFirst" { - declare export default $PropertyType<$Exports<"lodash-es">, "lowerFirst">; -} -declare module "lodash-es/pad" { - declare export default $PropertyType<$Exports<"lodash-es">, "pad">; -} -declare module "lodash-es/padEnd" { - declare export default $PropertyType<$Exports<"lodash-es">, "padEnd">; -} -declare module "lodash-es/padStart" { - declare export default $PropertyType<$Exports<"lodash-es">, "padStart">; -} -declare module "lodash-es/parseInt" { - declare export default $PropertyType<$Exports<"lodash-es">, "parseInt">; -} -declare module "lodash-es/repeat" { - declare export default $PropertyType<$Exports<"lodash-es">, "repeat">; -} -declare module "lodash-es/replace" { - declare export default $PropertyType<$Exports<"lodash-es">, "replace">; -} -declare module "lodash-es/snakeCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "snakeCase">; -} -declare module "lodash-es/split" { - declare export default $PropertyType<$Exports<"lodash-es">, "split">; -} -declare module "lodash-es/startCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "startCase">; -} -declare module "lodash-es/startsWith" { - declare export default $PropertyType<$Exports<"lodash-es">, "startsWith">; -} -declare module "lodash-es/template" { - declare export default $PropertyType<$Exports<"lodash-es">, "template">; -} -declare module "lodash-es/toLower" { - declare export default $PropertyType<$Exports<"lodash-es">, "toLower">; -} -declare module "lodash-es/toUpper" { - declare export default $PropertyType<$Exports<"lodash-es">, "toUpper">; -} -declare module "lodash-es/trim" { - declare export default $PropertyType<$Exports<"lodash-es">, "trim">; -} -declare module "lodash-es/trimEnd" { - declare export default $PropertyType<$Exports<"lodash-es">, "trimEnd">; -} -declare module "lodash-es/trimStart" { - declare export default $PropertyType<$Exports<"lodash-es">, "trimStart">; -} -declare module "lodash-es/truncate" { - declare export default $PropertyType<$Exports<"lodash-es">, "truncate">; -} -declare module "lodash-es/unescape" { - declare export default $PropertyType<$Exports<"lodash-es">, "unescape">; -} -declare module "lodash-es/upperCase" { - declare export default $PropertyType<$Exports<"lodash-es">, "upperCase">; -} -declare module "lodash-es/upperFirst" { - declare export default $PropertyType<$Exports<"lodash-es">, "upperFirst">; -} -declare module "lodash-es/words" { - declare export default $PropertyType<$Exports<"lodash-es">, "words">; -} -declare module "lodash-es/attempt" { - declare export default $PropertyType<$Exports<"lodash-es">, "attempt">; -} -declare module "lodash-es/bindAll" { - declare export default $PropertyType<$Exports<"lodash-es">, "bindAll">; -} -declare module "lodash-es/cond" { - declare export default $PropertyType<$Exports<"lodash-es">, "cond">; -} -declare module "lodash-es/conforms" { - declare export default $PropertyType<$Exports<"lodash-es">, "conforms">; -} -declare module "lodash-es/constant" { - declare export default $PropertyType<$Exports<"lodash-es">, "constant">; -} -declare module "lodash-es/defaultTo" { - declare export default $PropertyType<$Exports<"lodash-es">, "defaultTo">; -} -declare module "lodash-es/flow" { - declare export default $PropertyType<$Exports<"lodash-es">, "flow">; -} -declare module "lodash-es/flowRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "flowRight">; -} -declare module "lodash-es/identity" { - declare export default $PropertyType<$Exports<"lodash-es">, "identity">; -} -declare module "lodash-es/iteratee" { - declare export default $PropertyType<$Exports<"lodash-es">, "iteratee">; -} -declare module "lodash-es/matches" { - declare export default $PropertyType<$Exports<"lodash-es">, "matches">; -} -declare module "lodash-es/matchesProperty" { - declare export default $PropertyType<$Exports<"lodash-es">, "matchesProperty">; -} -declare module "lodash-es/method" { - declare export default $PropertyType<$Exports<"lodash-es">, "method">; -} -declare module "lodash-es/methodOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "methodOf">; -} -declare module "lodash-es/mixin" { - declare export default $PropertyType<$Exports<"lodash-es">, "mixin">; -} -declare module "lodash-es/noop" { - declare export default $PropertyType<$Exports<"lodash-es">, "noop">; -} -declare module "lodash-es/nthArg" { - declare export default $PropertyType<$Exports<"lodash-es">, "nthArg">; -} -declare module "lodash-es/over" { - declare export default $PropertyType<$Exports<"lodash-es">, "over">; -} -declare module "lodash-es/overEvery" { - declare export default $PropertyType<$Exports<"lodash-es">, "overEvery">; -} -declare module "lodash-es/overSome" { - declare export default $PropertyType<$Exports<"lodash-es">, "overSome">; -} -declare module "lodash-es/property" { - declare export default $PropertyType<$Exports<"lodash-es">, "property">; -} -declare module "lodash-es/propertyOf" { - declare export default $PropertyType<$Exports<"lodash-es">, "propertyOf">; -} -declare module "lodash-es/range" { - declare export default $PropertyType<$Exports<"lodash-es">, "range">; -} -declare module "lodash-es/rangeRight" { - declare export default $PropertyType<$Exports<"lodash-es">, "rangeRight">; -} -declare module "lodash-es/runInContext" { - declare export default $PropertyType<$Exports<"lodash-es">, "runInContext">; -} -declare module "lodash-es/stubArray" { - declare export default $PropertyType<$Exports<"lodash-es">, "stubArray">; -} -declare module "lodash-es/stubFalse" { - declare export default $PropertyType<$Exports<"lodash-es">, "stubFalse">; -} -declare module "lodash-es/stubObject" { - declare export default $PropertyType<$Exports<"lodash-es">, "stubObject">; -} -declare module "lodash-es/stubString" { - declare export default $PropertyType<$Exports<"lodash-es">, "stubString">; -} -declare module "lodash-es/stubTrue" { - declare export default $PropertyType<$Exports<"lodash-es">, "stubTrue">; -} -declare module "lodash-es/times" { - declare export default $PropertyType<$Exports<"lodash-es">, "times">; -} -declare module "lodash-es/toPath" { - declare export default $PropertyType<$Exports<"lodash-es">, "toPath">; -} -declare module "lodash-es/uniqueId" { - declare export default $PropertyType<$Exports<"lodash-es">, "uniqueId">; -} diff --git a/res/controllers/novation-launchpad/packages/mk1/package-lock.json b/res/controllers/novation-launchpad/packages/mk1/package-lock.json deleted file mode 100644 index b6ec2423417..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/package-lock.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@mixxx-launchpad/mk1", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "requires": { - "regenerator-runtime": "0.12.1" - } - }, - "lodash-es": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", - "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - } - } -} diff --git a/res/controllers/novation-launchpad/packages/mk1/package.json b/res/controllers/novation-launchpad/packages/mk1/package.json deleted file mode 100644 index 92e1ffaa9ad..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@mixxx-launchpad/mk1", - "private": true, - "version": "1.0.0", - "main": "src/index.js", - "module": "src/index.js", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@mixxx-launchpad/app": "1.0.0", - "lodash-es": "~4.17.4" - }, - "controller": { - "device": "Launchpad", - "manufacturer": "Novation", - "global": "NovationLaunchpad", - "path": "src" - } -} diff --git a/res/controllers/novation-launchpad/packages/mk1/src/buttons.js b/res/controllers/novation-launchpad/packages/mk1/src/buttons.js deleted file mode 100644 index 1d29c7ac6c4..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/src/buttons.js +++ /dev/null @@ -1,86 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - /* eslint-disable key-spacing, no-multi-spaces */ - 'up': { status: 0xB0, midino: 0x68, name: 'up' }, - 'down': { status: 0xB0, midino: 0x69, name: 'down' }, - 'left': { status: 0xB0, midino: 0x6A, name: 'left' }, - 'right': { status: 0xB0, midino: 0x6B, name: 'right' }, - 'session': { status: 0xB0, midino: 0x6C, name: 'session' }, - 'user1': { status: 0xB0, midino: 0x6D, name: 'user1' }, - 'user2': { status: 0xB0, midino: 0x6E, name: 'user2' }, - 'mixer': { status: 0xB0, midino: 0x6F, name: 'mixer' }, - 'vol': { status: 0x90, midino: 0x08, name: 'vol' }, - 'pan': { status: 0x90, midino: 0x18, name: 'pan' }, - 'snda': { status: 0x90, midino: 0x28, name: 'snda' }, - 'sndb': { status: 0x90, midino: 0x38, name: 'sndb' }, - 'stop': { status: 0x90, midino: 0x48, name: 'stop' }, - 'trkon': { status: 0x90, midino: 0x58, name: 'trkon' }, - 'solo': { status: 0x90, midino: 0x68, name: 'solo' }, - 'arm': { status: 0x90, midino: 0x78, name: 'arm' }, - '0,0': { status: 0x90, midino: 0x00, name: '0,0' }, - '0,1': { status: 0x90, midino: 0x01, name: '0,1' }, - '0,2': { status: 0x90, midino: 0x02, name: '0,2' }, - '0,3': { status: 0x90, midino: 0x03, name: '0,3' }, - '0,4': { status: 0x90, midino: 0x04, name: '0,4' }, - '0,5': { status: 0x90, midino: 0x05, name: '0,5' }, - '0,6': { status: 0x90, midino: 0x06, name: '0,6' }, - '0,7': { status: 0x90, midino: 0x07, name: '0,7' }, - '1,0': { status: 0x90, midino: 0x10, name: '1,0' }, - '1,1': { status: 0x90, midino: 0x11, name: '1,1' }, - '1,2': { status: 0x90, midino: 0x12, name: '1,2' }, - '1,3': { status: 0x90, midino: 0x13, name: '1,3' }, - '1,4': { status: 0x90, midino: 0x14, name: '1,4' }, - '1,5': { status: 0x90, midino: 0x15, name: '1,5' }, - '1,6': { status: 0x90, midino: 0x16, name: '1,6' }, - '1,7': { status: 0x90, midino: 0x17, name: '1,7' }, - '2,0': { status: 0x90, midino: 0x20, name: '2,0' }, - '2,1': { status: 0x90, midino: 0x21, name: '2,1' }, - '2,2': { status: 0x90, midino: 0x22, name: '2,2' }, - '2,3': { status: 0x90, midino: 0x23, name: '2,3' }, - '2,4': { status: 0x90, midino: 0x24, name: '2,4' }, - '2,5': { status: 0x90, midino: 0x25, name: '2,5' }, - '2,6': { status: 0x90, midino: 0x26, name: '2,6' }, - '2,7': { status: 0x90, midino: 0x27, name: '2,7' }, - '3,0': { status: 0x90, midino: 0x30, name: '3,0' }, - '3,1': { status: 0x90, midino: 0x31, name: '3,1' }, - '3,2': { status: 0x90, midino: 0x32, name: '3,2' }, - '3,3': { status: 0x90, midino: 0x33, name: '3,3' }, - '3,4': { status: 0x90, midino: 0x34, name: '3,4' }, - '3,5': { status: 0x90, midino: 0x35, name: '3,5' }, - '3,6': { status: 0x90, midino: 0x36, name: '3,6' }, - '3,7': { status: 0x90, midino: 0x37, name: '3,7' }, - '4,0': { status: 0x90, midino: 0x40, name: '4,0' }, - '4,1': { status: 0x90, midino: 0x41, name: '4,1' }, - '4,2': { status: 0x90, midino: 0x42, name: '4,2' }, - '4,3': { status: 0x90, midino: 0x43, name: '4,3' }, - '4,4': { status: 0x90, midino: 0x44, name: '4,4' }, - '4,5': { status: 0x90, midino: 0x45, name: '4,5' }, - '4,6': { status: 0x90, midino: 0x46, name: '4,6' }, - '4,7': { status: 0x90, midino: 0x47, name: '4,7' }, - '5,0': { status: 0x90, midino: 0x50, name: '5,0' }, - '5,1': { status: 0x90, midino: 0x51, name: '5,1' }, - '5,2': { status: 0x90, midino: 0x52, name: '5,2' }, - '5,3': { status: 0x90, midino: 0x53, name: '5,3' }, - '5,4': { status: 0x90, midino: 0x54, name: '5,4' }, - '5,5': { status: 0x90, midino: 0x55, name: '5,5' }, - '5,6': { status: 0x90, midino: 0x56, name: '5,6' }, - '5,7': { status: 0x90, midino: 0x57, name: '5,7' }, - '6,0': { status: 0x90, midino: 0x60, name: '6,0' }, - '6,1': { status: 0x90, midino: 0x61, name: '6,1' }, - '6,2': { status: 0x90, midino: 0x62, name: '6,2' }, - '6,3': { status: 0x90, midino: 0x63, name: '6,3' }, - '6,4': { status: 0x90, midino: 0x64, name: '6,4' }, - '6,5': { status: 0x90, midino: 0x65, name: '6,5' }, - '6,6': { status: 0x90, midino: 0x66, name: '6,6' }, - '6,7': { status: 0x90, midino: 0x67, name: '6,7' }, - '7,0': { status: 0x90, midino: 0x70, name: '7,0' }, - '7,1': { status: 0x90, midino: 0x71, name: '7,1' }, - '7,2': { status: 0x90, midino: 0x72, name: '7,2' }, - '7,3': { status: 0x90, midino: 0x73, name: '7,3' }, - '7,4': { status: 0x90, midino: 0x74, name: '7,4' }, - '7,5': { status: 0x90, midino: 0x75, name: '7,5' }, - '7,6': { status: 0x90, midino: 0x76, name: '7,6' }, - '7,7': { status: 0x90, midino: 0x77, name: '7,7' } - /* eslint-enable key-spacing, no-multi-spaces */ -} diff --git a/res/controllers/novation-launchpad/packages/mk1/src/colors.js b/res/controllers/novation-launchpad/packages/mk1/src/colors.js deleted file mode 100644 index 052f9ec8e6a..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/src/colors.js +++ /dev/null @@ -1,15 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - black: 4, - lo_red: 1 + 4, - hi_red: 3 + 4, - lo_green: 16 + 4, - hi_green: 48 + 4, - lo_amber: 17 + 4, - hi_amber: 51 + 4, - hi_orange: 35 + 4, - lo_orange: 18 + 4, - hi_yellow: 50 + 4, - lo_yellow: 33 + 4 -} diff --git a/res/controllers/novation-launchpad/packages/mk1/src/index.js b/res/controllers/novation-launchpad/packages/mk1/src/index.js deleted file mode 100644 index 638fdc96e80..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/src/index.js +++ /dev/null @@ -1,25 +0,0 @@ -/* @flow */ -import { create, LaunchpadMidiButton } from '@mixxx-launchpad/app' -import assign from 'lodash-es/assign' -import pkg from '../package.json' -import colors from './colors' -import buttons from './buttons' - -import type { LaunchpadDevice } from '@mixxx-launchpad/app' - -class LaunchpadMK1Device implements LaunchpadDevice { - buttons: { [key: string]: LaunchpadMidiButton } - colors: { [key: string]: number } - - constructor () { - this.buttons = Object.keys(buttons).reduce( - (obj, name) => assign(obj, { [name]: new LaunchpadMidiButton(buttons[name]) }), {}) - this.colors = colors - } - - init () { } - - shutdown () { } -} - -export default create(pkg.controller.global, new LaunchpadMK1Device()) diff --git a/res/controllers/novation-launchpad/packages/mk1/src/template.xml.ejs b/res/controllers/novation-launchpad/packages/mk1/src/template.xml.ejs deleted file mode 100644 index fe0460bb542..00000000000 --- a/res/controllers/novation-launchpad/packages/mk1/src/template.xml.ejs +++ /dev/null @@ -1,26 +0,0 @@ - - - - <%= manufacturer %> <%= device %> - <%= author %> - <%= description %> - <%= homepage %> - - - - - - - <% buttons.forEach(function (button) { %> - [Master] - <%= global %>.__midi_<%= hexFormat(button.status, 2) %>_<%= hexFormat(button.midino, 2) %> - <%= hexFormat(button.status, 2) %> - <%= hexFormat(button.midino, 2) %> - - - - <% }) %> - - - - diff --git a/res/controllers/novation-launchpad/packages/mk2/package-lock.json b/res/controllers/novation-launchpad/packages/mk2/package-lock.json deleted file mode 100644 index 1d02727c8b2..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/package-lock.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@mixxx-launchpad/mk2", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "requires": { - "regenerator-runtime": "0.12.1" - } - }, - "lodash-es": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", - "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - } - } -} diff --git a/res/controllers/novation-launchpad/packages/mk2/package.json b/res/controllers/novation-launchpad/packages/mk2/package.json deleted file mode 100644 index 87bab3db5e4..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@mixxx-launchpad/mk2", - "private": true, - "version": "1.0.0", - "main": "src/index.js", - "module": "src/index.js", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@mixxx-launchpad/app": "1.0.0", - "lodash-es": "~4.17.4" - }, - "controller": { - "device": "Launchpad MK2", - "manufacturer": "Novation", - "global": "NovationLaunchpadMK2", - "path": "src" - } -} diff --git a/res/controllers/novation-launchpad/packages/mk2/src/buttons.js b/res/controllers/novation-launchpad/packages/mk2/src/buttons.js deleted file mode 100644 index 9c7523ac7b4..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/src/buttons.js +++ /dev/null @@ -1,86 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - /* eslint-disable key-spacing, no-multi-spaces */ - 'up': { status: 0xB0, midino: 0x68, name: 'up' }, - 'down': { status: 0xB0, midino: 0x69, name: 'down' }, - 'left': { status: 0xB0, midino: 0x6A, name: 'left' }, - 'right': { status: 0xB0, midino: 0x6B, name: 'right' }, - 'session': { status: 0xB0, midino: 0x6C, name: 'session' }, - 'user1': { status: 0xB0, midino: 0x6D, name: 'user1' }, - 'user2': { status: 0xB0, midino: 0x6E, name: 'user2' }, - 'mixer': { status: 0xB0, midino: 0x6F, name: 'mixer' }, - 'vol': { status: 0x90, midino: 0x59, name: 'vol' }, - 'pan': { status: 0x90, midino: 0x4F, name: 'pan' }, - 'snda': { status: 0x90, midino: 0x45, name: 'snda' }, - 'sndb': { status: 0x90, midino: 0x3B, name: 'sndb' }, - 'stop': { status: 0x90, midino: 0x31, name: 'stop' }, - 'trkon': { status: 0x90, midino: 0x27, name: 'trkon' }, - 'solo': { status: 0x90, midino: 0x1D, name: 'solo' }, - 'arm': { status: 0x90, midino: 0x13, name: 'arm' }, - '0,0': { status: 0x90, midino: 0x51, name: '0,0' }, - '0,1': { status: 0x90, midino: 0x52, name: '0,1' }, - '0,2': { status: 0x90, midino: 0x53, name: '0,2' }, - '0,3': { status: 0x90, midino: 0x54, name: '0,3' }, - '0,4': { status: 0x90, midino: 0x55, name: '0,4' }, - '0,5': { status: 0x90, midino: 0x56, name: '0,5' }, - '0,6': { status: 0x90, midino: 0x57, name: '0,6' }, - '0,7': { status: 0x90, midino: 0x58, name: '0,7' }, - '1,0': { status: 0x90, midino: 0x47, name: '1,0' }, - '1,1': { status: 0x90, midino: 0x48, name: '1,1' }, - '1,2': { status: 0x90, midino: 0x49, name: '1,2' }, - '1,3': { status: 0x90, midino: 0x4A, name: '1,3' }, - '1,4': { status: 0x90, midino: 0x4B, name: '1,4' }, - '1,5': { status: 0x90, midino: 0x4C, name: '1,5' }, - '1,6': { status: 0x90, midino: 0x4D, name: '1,6' }, - '1,7': { status: 0x90, midino: 0x4E, name: '1,7' }, - '2,0': { status: 0x90, midino: 0x3D, name: '2,0' }, - '2,1': { status: 0x90, midino: 0x3E, name: '2,1' }, - '2,2': { status: 0x90, midino: 0x3F, name: '2,2' }, - '2,3': { status: 0x90, midino: 0x40, name: '2,3' }, - '2,4': { status: 0x90, midino: 0x41, name: '2,4' }, - '2,5': { status: 0x90, midino: 0x42, name: '2,5' }, - '2,6': { status: 0x90, midino: 0x43, name: '2,6' }, - '2,7': { status: 0x90, midino: 0x44, name: '2,7' }, - '3,0': { status: 0x90, midino: 0x33, name: '3,0' }, - '3,1': { status: 0x90, midino: 0x34, name: '3,1' }, - '3,2': { status: 0x90, midino: 0x35, name: '3,2' }, - '3,3': { status: 0x90, midino: 0x36, name: '3,3' }, - '3,4': { status: 0x90, midino: 0x37, name: '3,4' }, - '3,5': { status: 0x90, midino: 0x38, name: '3,5' }, - '3,6': { status: 0x90, midino: 0x39, name: '3,6' }, - '3,7': { status: 0x90, midino: 0x3A, name: '3,7' }, - '4,0': { status: 0x90, midino: 0x29, name: '4,0' }, - '4,1': { status: 0x90, midino: 0x2A, name: '4,1' }, - '4,2': { status: 0x90, midino: 0x2B, name: '4,2' }, - '4,3': { status: 0x90, midino: 0x2C, name: '4,3' }, - '4,4': { status: 0x90, midino: 0x2D, name: '4,4' }, - '4,5': { status: 0x90, midino: 0x2E, name: '4,5' }, - '4,6': { status: 0x90, midino: 0x2F, name: '4,6' }, - '4,7': { status: 0x90, midino: 0x30, name: '4,7' }, - '5,0': { status: 0x90, midino: 0x1F, name: '5,0' }, - '5,1': { status: 0x90, midino: 0x20, name: '5,1' }, - '5,2': { status: 0x90, midino: 0x21, name: '5,2' }, - '5,3': { status: 0x90, midino: 0x22, name: '5,3' }, - '5,4': { status: 0x90, midino: 0x23, name: '5,4' }, - '5,5': { status: 0x90, midino: 0x24, name: '5,5' }, - '5,6': { status: 0x90, midino: 0x25, name: '5,6' }, - '5,7': { status: 0x90, midino: 0x26, name: '5,7' }, - '6,0': { status: 0x90, midino: 0x15, name: '6,0' }, - '6,1': { status: 0x90, midino: 0x16, name: '6,1' }, - '6,2': { status: 0x90, midino: 0x17, name: '6,2' }, - '6,3': { status: 0x90, midino: 0x18, name: '6,3' }, - '6,4': { status: 0x90, midino: 0x19, name: '6,4' }, - '6,5': { status: 0x90, midino: 0x1A, name: '6,5' }, - '6,6': { status: 0x90, midino: 0x1B, name: '6,6' }, - '6,7': { status: 0x90, midino: 0x1C, name: '6,7' }, - '7,0': { status: 0x90, midino: 0x0B, name: '7,0' }, - '7,1': { status: 0x90, midino: 0x0C, name: '7,1' }, - '7,2': { status: 0x90, midino: 0x0D, name: '7,2' }, - '7,3': { status: 0x90, midino: 0x0E, name: '7,3' }, - '7,4': { status: 0x90, midino: 0x0F, name: '7,4' }, - '7,5': { status: 0x90, midino: 0x10, name: '7,5' }, - '7,6': { status: 0x90, midino: 0x11, name: '7,6' }, - '7,7': { status: 0x90, midino: 0x12, name: '7,7' } - /* eslint-enable key-spacing, no-multi-spaces */ -} diff --git a/res/controllers/novation-launchpad/packages/mk2/src/colors.js b/res/controllers/novation-launchpad/packages/mk2/src/colors.js deleted file mode 100644 index 6a1b3a0f0b5..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/src/colors.js +++ /dev/null @@ -1,16 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - black: 0, - - lo_red: 7, - hi_red: 5, - lo_green: 19, - hi_green: 17, - lo_amber: 43, - hi_amber: 41, - hi_orange: 84, - lo_orange: 61, - hi_yellow: 13, - lo_yellow: 15 -} diff --git a/res/controllers/novation-launchpad/packages/mk2/src/index.js b/res/controllers/novation-launchpad/packages/mk2/src/index.js deleted file mode 100644 index eedd4aa93c2..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/src/index.js +++ /dev/null @@ -1,25 +0,0 @@ -/* @flow */ -import { create, LaunchpadMidiButton } from '@mixxx-launchpad/app' -import assign from 'lodash-es/assign' -import pkg from '../package.json' -import colors from './colors' -import buttons from './buttons' - -import type { LaunchpadDevice } from '@mixxx-launchpad/app' - -class LaunchpadMK2Device implements LaunchpadDevice { - buttons: { [key: string]: LaunchpadMidiButton } - colors: { [key: string]: number } - - constructor () { - this.buttons = Object.keys(buttons).reduce( - (obj, name) => assign(obj, { [name]: new LaunchpadMidiButton(buttons[name]) }), {}) - this.colors = colors - } - - init () { } - - shutdown () { } -} - -export default create(pkg.controller.global, new LaunchpadMK2Device()) diff --git a/res/controllers/novation-launchpad/packages/mk2/src/template.xml.ejs b/res/controllers/novation-launchpad/packages/mk2/src/template.xml.ejs deleted file mode 100644 index fe0460bb542..00000000000 --- a/res/controllers/novation-launchpad/packages/mk2/src/template.xml.ejs +++ /dev/null @@ -1,26 +0,0 @@ - - - - <%= manufacturer %> <%= device %> - <%= author %> - <%= description %> - <%= homepage %> - - - - - - - <% buttons.forEach(function (button) { %> - [Master] - <%= global %>.__midi_<%= hexFormat(button.status, 2) %>_<%= hexFormat(button.midino, 2) %> - <%= hexFormat(button.status, 2) %> - <%= hexFormat(button.midino, 2) %> - - - - <% }) %> - - - - diff --git a/res/controllers/novation-launchpad/packages/pro/package-lock.json b/res/controllers/novation-launchpad/packages/pro/package-lock.json deleted file mode 100644 index e37d86f1a0b..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/package-lock.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@mixxx-launchpad/pro", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "requires": { - "regenerator-runtime": "0.12.1" - } - }, - "lodash-es": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", - "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - } - } -} diff --git a/res/controllers/novation-launchpad/packages/pro/package.json b/res/controllers/novation-launchpad/packages/pro/package.json deleted file mode 100644 index 0848fa5ed61..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@mixxx-launchpad/pro", - "private": true, - "version": "1.0.0", - "main": "src/index.js", - "module": "src/index.js", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@mixxx-launchpad/app": "1.0.0", - "lodash-es": "~4.17.4" - }, - "controller": { - "device": "Launchpad Pro", - "manufacturer": "Novation", - "global": "NovationLaunchpadPro", - "path": "src" - } -} diff --git a/res/controllers/novation-launchpad/packages/pro/src/buttons.js b/res/controllers/novation-launchpad/packages/pro/src/buttons.js deleted file mode 100644 index b28d4c54e75..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/src/buttons.js +++ /dev/null @@ -1,86 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - /* eslint-disable key-spacing, no-multi-spaces */ - 'up': { status: 0xB0, midino: 0x01, name: 'up' }, - 'down': { status: 0xB0, midino: 0x02, name: 'down' }, - 'left': { status: 0xB0, midino: 0x03, name: 'left' }, - 'right': { status: 0xB0, midino: 0x04, name: 'right' }, - 'session': { status: 0xB0, midino: 0x05, name: 'session' }, - 'user1': { status: 0xB0, midino: 0x06, name: 'user1' }, - 'user2': { status: 0xB0, midino: 0x07, name: 'user2' }, - 'mixer': { status: 0xB0, midino: 0x08, name: 'mixer' }, - 'vol': { status: 0x90, midino: 0x59, name: 'vol' }, - 'pan': { status: 0x90, midino: 0x4f, name: 'pan' }, - 'snda': { status: 0x90, midino: 0x45, name: 'snda' }, - 'sndb': { status: 0x90, midino: 0x3B, name: 'sndb' }, - 'stop': { status: 0x90, midino: 0x31, name: 'stop' }, - 'trkon': { status: 0x90, midino: 0x27, name: 'trkon' }, - 'solo': { status: 0x90, midino: 0x1D, name: 'solo' }, - 'arm': { status: 0x90, midino: 0x13, name: 'arm' }, - '0,0': { status: 0x90, midino: 0x47, name: '0,0' }, - '0,1': { status: 0x90, midino: 0x48, name: '0,1' }, - '0,2': { status: 0x90, midino: 0x49, name: '0,2' }, - '0,3': { status: 0x90, midino: 0x4A, name: '0,3' }, - '0,4': { status: 0x90, midino: 0x4B, name: '0,4' }, - '0,5': { status: 0x90, midino: 0x4C, name: '0,5' }, - '0,6': { status: 0x90, midino: 0x4D, name: '0,6' }, - '0,7': { status: 0x90, midino: 0x4E, name: '0,7' }, - '1,0': { status: 0x90, midino: 0x42, name: '1,0' }, - '1,1': { status: 0x90, midino: 0x43, name: '1,1' }, - '1,2': { status: 0x90, midino: 0x44, name: '1,2' }, - '1,3': { status: 0x90, midino: 0x45, name: '1,3' }, - '1,4': { status: 0x90, midino: 0x46, name: '1,4' }, - '1,5': { status: 0x90, midino: 0x47, name: '1,5' }, - '1,6': { status: 0x90, midino: 0x48, name: '1,6' }, - '1,7': { status: 0x90, midino: 0x49, name: '1,7' }, - '2,0': { status: 0x90, midino: 0x3D, name: '2,0' }, - '2,1': { status: 0x90, midino: 0x3E, name: '2,1' }, - '2,2': { status: 0x90, midino: 0x3F, name: '2,2' }, - '2,3': { status: 0x90, midino: 0x40, name: '2,3' }, - '2,4': { status: 0x90, midino: 0x41, name: '2,4' }, - '2,5': { status: 0x90, midino: 0x42, name: '2,5' }, - '2,6': { status: 0x90, midino: 0x43, name: '2,6' }, - '2,7': { status: 0x90, midino: 0x44, name: '2,7' }, - '3,0': { status: 0x90, midino: 0x38, name: '3,0' }, - '3,1': { status: 0x90, midino: 0x39, name: '3,1' }, - '3,2': { status: 0x90, midino: 0x3A, name: '3,2' }, - '3,3': { status: 0x90, midino: 0x3B, name: '3,3' }, - '3,4': { status: 0x90, midino: 0x3C, name: '3,4' }, - '3,5': { status: 0x90, midino: 0x3D, name: '3,5' }, - '3,6': { status: 0x90, midino: 0x3E, name: '3,6' }, - '3,7': { status: 0x90, midino: 0x3F, name: '3,7' }, - '4,0': { status: 0x90, midino: 0x33, name: '3,0' }, - '4,1': { status: 0x90, midino: 0x34, name: '3,1' }, - '4,2': { status: 0x90, midino: 0x35, name: '3,2' }, - '4,3': { status: 0x90, midino: 0x36, name: '3,3' }, - '4,4': { status: 0x90, midino: 0x37, name: '3,4' }, - '4,5': { status: 0x90, midino: 0x38, name: '3,5' }, - '4,6': { status: 0x90, midino: 0x39, name: '3,6' }, - '4,7': { status: 0x90, midino: 0x3A, name: '3,7' }, - '5,0': { status: 0x90, midino: 0x2E, name: '5,0' }, - '5,1': { status: 0x90, midino: 0x2F, name: '5,1' }, - '5,2': { status: 0x90, midino: 0x30, name: '5,2' }, - '5,3': { status: 0x90, midino: 0x31, name: '5,3' }, - '5,4': { status: 0x90, midino: 0x32, name: '5,4' }, - '5,5': { status: 0x90, midino: 0x33, name: '5,5' }, - '5,6': { status: 0x90, midino: 0x34, name: '5,6' }, - '5,7': { status: 0x90, midino: 0x35, name: '5,7' }, - '6,0': { status: 0x90, midino: 0x29, name: '4,0' }, - '6,1': { status: 0x90, midino: 0x2A, name: '4,1' }, - '6,2': { status: 0x90, midino: 0x2B, name: '4,2' }, - '6,3': { status: 0x90, midino: 0x2C, name: '4,3' }, - '6,4': { status: 0x90, midino: 0x2D, name: '4,4' }, - '6,5': { status: 0x90, midino: 0x2E, name: '4,5' }, - '6,6': { status: 0x90, midino: 0x2F, name: '4,6' }, - '6,7': { status: 0x90, midino: 0x30, name: '4,7' }, - '7,0': { status: 0x90, midino: 0x24, name: '7,0' }, - '7,1': { status: 0x90, midino: 0x25, name: '7,1' }, - '7,2': { status: 0x90, midino: 0x26, name: '7,2' }, - '7,3': { status: 0x90, midino: 0x27, name: '7,3' }, - '7,4': { status: 0x90, midino: 0x28, name: '7,4' }, - '7,5': { status: 0x90, midino: 0x29, name: '7,5' }, - '7,6': { status: 0x90, midino: 0x2A, name: '7,6' }, - '7,7': { status: 0x90, midino: 0x2B, name: '7,7' } - /* eslint-enable key-spacing, no-multi-spaces */ -} diff --git a/res/controllers/novation-launchpad/packages/pro/src/colors.js b/res/controllers/novation-launchpad/packages/pro/src/colors.js deleted file mode 100644 index 6a1b3a0f0b5..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/src/colors.js +++ /dev/null @@ -1,16 +0,0 @@ -/* @flow */ -'use strict' -module.exports = { - black: 0, - - lo_red: 7, - hi_red: 5, - lo_green: 19, - hi_green: 17, - lo_amber: 43, - hi_amber: 41, - hi_orange: 84, - lo_orange: 61, - hi_yellow: 13, - lo_yellow: 15 -} diff --git a/res/controllers/novation-launchpad/packages/pro/src/index.js b/res/controllers/novation-launchpad/packages/pro/src/index.js deleted file mode 100644 index 6d00edafe2b..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/src/index.js +++ /dev/null @@ -1,25 +0,0 @@ -/* @flow */ -import { create, LaunchpadMidiButton } from '@mixxx-launchpad/app' -import assign from 'lodash-es/assign' -import pkg from '../package.json' -import colors from './colors' -import buttons from './buttons' - -import type { LaunchpadDevice } from '@mixxx-launchpad/app' - -class LaunchpadProDevice implements LaunchpadDevice { - buttons: { [key: string]: LaunchpadMidiButton } - colors: { [key: string]: number } - - constructor () { - this.buttons = Object.keys(buttons).reduce( - (obj, name) => assign(obj, { [name]: new LaunchpadMidiButton(buttons[name]) }), {}) - this.colors = colors - } - - init () { } - - shutdown () { } -} - -export default create(pkg.controller.global, new LaunchpadProDevice()) diff --git a/res/controllers/novation-launchpad/packages/pro/src/template.xml.ejs b/res/controllers/novation-launchpad/packages/pro/src/template.xml.ejs deleted file mode 100644 index fe0460bb542..00000000000 --- a/res/controllers/novation-launchpad/packages/pro/src/template.xml.ejs +++ /dev/null @@ -1,26 +0,0 @@ - - - - <%= manufacturer %> <%= device %> - <%= author %> - <%= description %> - <%= homepage %> - - - - - - - <% buttons.forEach(function (button) { %> - [Master] - <%= global %>.__midi_<%= hexFormat(button.status, 2) %>_<%= hexFormat(button.midino, 2) %> - <%= hexFormat(button.status, 2) %> - <%= hexFormat(button.midino, 2) %> - - - - <% }) %> - - - - diff --git a/res/controllers/novation-launchpad/scripts/compile-mapping.js b/res/controllers/novation-launchpad/scripts/compile-mapping.js deleted file mode 100755 index a8399880f44..00000000000 --- a/res/controllers/novation-launchpad/scripts/compile-mapping.js +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env node - -const { promisify } = require('util') -const ejs = require('ejs') -const path = require('path') -const readFile = promisify(require('fs').readFile) -const writeFile = promisify(require('fs').writeFile) -const mkdirp = promisify(require('mkdirp')) - -if (process.argv.length !== 4) { - throw Error('Usage: target outFile') -} - -const tgt = process.argv[2] -const pkg = require(path.resolve('package.json')) -const tgtPkg = require(path.resolve('packages', tgt, 'package.json')) -const buttons = require(path.resolve('packages', tgt, tgtPkg.controller.path, 'buttons')) -const templateFile = path.join('packages', tgt, tgtPkg.controller.path, 'template.xml.ejs') - -const leftPad = (str, padString, length) => { - let buf = str - while (buf.length < length) { - buf = padString + buf - } - return buf -} - -const hexFormat = (n, d) => '0x' + leftPad(n.toString(16).toUpperCase(), '0', d) - -Promise.resolve().then(async () => { - const template = await readFile(templateFile) - const rendered = ejs.render(template.toString(), { - author: pkg.author, - description: pkg.description, - homepage: pkg.homepage, - device: tgtPkg.controller.device, - manufacturer: tgtPkg.controller.manufacturer, - global: tgtPkg.controller.global, - buttons: Object.keys(buttons).map((key) => buttons[key]), - hexFormat: hexFormat - }) - await mkdirp(path.dirname(path.resolve(process.argv[3]))) - await writeFile(path.resolve(process.argv[3]), rendered) -}).catch((err) => { throw err }) diff --git a/res/controllers/novation-launchpad/scripts/compile-scripts.js b/res/controllers/novation-launchpad/scripts/compile-scripts.js deleted file mode 100755 index 55cdde9df28..00000000000 --- a/res/controllers/novation-launchpad/scripts/compile-scripts.js +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env node - -const { promisify } = require('util') -const path = require('path') -const mkdirp = promisify(require('mkdirp')) -const fs = require('fs') - -const rollup = require('rollup') -const nodeResolve = require('rollup-plugin-node-resolve') -const babel = require('rollup-plugin-babel') -const commonjs = require('rollup-plugin-commonjs') -const json = require('rollup-plugin-json') -const writeFile = promisify(fs.writeFile) -const readFile = promisify(fs.readFile) - -if (process.argv.length !== 4) { - throw Error('Usage: target outFile') -} - -const tgt = process.argv[2] -const tgtPkg = require(path.resolve('packages', tgt, 'package.json')) -const input = path.resolve('packages', tgt, tgtPkg.main) - -const global = tgtPkg.controller.global - -Promise.resolve().then(async () => { - await mkdirp(path.dirname(path.resolve(process.argv[3]))) - // eslint-disable-next-line handle-callback-err - const cache = await readFile(`tmp/${tgt}.cache.json`).then((cache) => JSON.parse(cache), (err) => null) - const bundle = await rollup.rollup({ - cache, - input, - plugins: [ - nodeResolve({ - extensions: ['.js', '.json'], - main: true, - customResolveOptions: { - paths: [ path.resolve('packages', tgt, 'node_modules') ] - } - }), - json(), - babel({ - exclude: [ - 'packages/*/node_modules/@babel/runtime/**' - ], - configFile: path.resolve('babel.config.js'), - runtimeHelpers: true - }), - commonjs() - ] - }) - await mkdirp('tmp') - await Promise.all([ - writeFile(`tmp/${tgt}.cache.json`, JSON.stringify(bundle.cache)), - bundle.write({ - strict: false, // FIXME: see https://github.com/mixxxdj/mixxx/pull/1795#discussion_r251744258 - format: 'iife', - name: global, - file: path.resolve(process.argv[3]) - })]) -}).catch((err) => { console.error(err.stack); process.exit(1) })