├── .editorconfig ├── .gitignore ├── .travis.yml ├── app ├── Icon-Template.png ├── Icon-Template@2x.png ├── index.html ├── search.js ├── settings.js └── style.css ├── index.js ├── license.md ├── mojibar.icns ├── mojibar.png ├── package-lock.json ├── package.json └── readme.md /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | indent_style = space 9 | indent_size = 2 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | Mojibar-darwin-x64 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | notifications: 4 | email: false 5 | -------------------------------------------------------------------------------- /app/Icon-Template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muan/mojibar/3a1dac0998202e8425a63acb37da82aa7d6385f9/app/Icon-Template.png -------------------------------------------------------------------------------- /app/Icon-Template@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muan/mojibar/3a1dac0998202e8425a63acb37da82aa7d6385f9/app/Icon-Template@2x.png -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/search.js: -------------------------------------------------------------------------------- 1 | /* global localStorage, fetch */ 2 | var emojilib = JSON.parse(localStorage.getItem('emojilib')) || require('emojilib').lib 3 | var emojikeys = JSON.parse(localStorage.getItem('emojikeys')) || require('emojilib').ordered 4 | var modifiers = require('emojilib').fitzpatrick_scale_modifiers 5 | var clipboard = require('electron').clipboard 6 | var ipc = require('electron').ipcRenderer 7 | var index = buildIndex() 8 | var indexKeys = Object.keys(index) 9 | var emojikeyIndexTable = buildEmojikeyIndexTable() 10 | var searching = false 11 | var searchInput = document.querySelector('.js-search') 12 | var preference = JSON.parse(localStorage.getItem('preference')) 13 | var directions = { 14 | 37: 'left', 15 | 38: 'up', 16 | 39: 'right', 17 | 40: 'down' 18 | } 19 | 20 | function fetchAndUpdateLocalCache () { 21 | if (!navigator.onLine) return 22 | var expireTime = localStorage.getItem('emojilibExpireTime') 23 | if (expireTime && Number(expireTime) > new Date().getTime()) return 24 | var version = '^2.0.0' 25 | var emojilibLib = `https://unpkg.com/emojilib@${version}/emojis.json` 26 | var emojilibOrdered = `https://unpkg.com/emojilib@${version}/ordered.json` 27 | 28 | fetch(emojilibLib).then(function (res) { return checkIfNewVersion(res) }).then(function (newData) { 29 | // Fetch only once per day 30 | localStorage.setItem('emojilibExpireTime', new Date().getTime() + 1000 * 60 * 60 * 24) 31 | if (!newData) return 32 | localStorage.setItem('emojilib', JSON.stringify(newData)) 33 | 34 | fetch(emojilibOrdered).then(function (res) { return res.json() }).then(function (newData) { 35 | localStorage.setItem('emojikeys', JSON.stringify(newData)) 36 | window.location.reload() 37 | }) 38 | }) 39 | 40 | function checkIfNewVersion (res) { 41 | var fetchedVersion = res.url.match(/@([\d.]+)/)[1] 42 | if (fetchedVersion !== localStorage.getItem('emojilibVersion')) { 43 | localStorage.setItem('emojilibVersion', fetchedVersion) 44 | return res.json() 45 | } 46 | } 47 | } 48 | 49 | searchInput.dataset.isSearchInput = true 50 | searchInput.focus() 51 | search('') 52 | searchInput.addEventListener('input', function () { 53 | search(this.value.toLowerCase()) 54 | }) 55 | 56 | ipc.on('show', function (event, message) { 57 | searchInput.focus() 58 | }) 59 | 60 | ipc.on('fetch', function (event, message) { 61 | fetchAndUpdateLocalCache() 62 | }) 63 | 64 | document.addEventListener('mousewheel', function (e) { 65 | if (e.deltaY % 1 !== 0) { 66 | e.preventDefault() 67 | } 68 | }) 69 | document.addEventListener('keydown', function (evt) { 70 | var onSearchField = !!evt.target.dataset.isSearchInput 71 | if (onSearchField) { 72 | if (evt.keyCode === 40) { 73 | // on down: focus on the first thing! 74 | jumpto('up') 75 | evt.preventDefault() 76 | } else if (evt.keyCode === 13) { 77 | copyFocusedEmoji(document.querySelector('.emoji:first-child'), evt.shiftKey) 78 | } 79 | } else if (evt.target.classList.contains('emoji')) { 80 | if (evt.keyCode === 32) { 81 | if (evt.shiftKey) { 82 | jumpto('prev') 83 | } else { 84 | jumpto('next') 85 | } 86 | } else if (evt.keyCode === 13) { 87 | copyFocusedEmoji(evt.target, evt.shiftKey) 88 | } else if (Object.keys(directions).indexOf(evt.keyCode.toString()) >= 0) { 89 | // on navigation, navigate 90 | jumpto(directions[evt.keyCode]) 91 | } 92 | } 93 | 94 | if (!onSearchField && evt.keyCode === 191 && !evt.shiftKey && !evt.metaKey && !evt.ctrlKey) { 95 | // on `/`: focus on the search field 96 | searchInput.select() 97 | evt.preventDefault() 98 | } else if (evt.keyCode === 27) { 99 | // on escape: exit 100 | ipc.send('abort') 101 | } 102 | }) 103 | 104 | function copyFocusedEmoji (emoji, copyText) { 105 | var data 106 | // on enter: copy data and exit 107 | if (copyText) { 108 | data = ':' + emoji.getAttribute('aria-label') + ':' 109 | } else { 110 | data = emoji.innerText 111 | } 112 | clipboard.writeText(data) 113 | searchInput.value = '' 114 | search('') 115 | ipc.send('abort') 116 | } 117 | 118 | document.addEventListener('keypress', function (evt) { 119 | // if typing while navigatin, just type into the search box! 120 | var word = isWord(evt.charCode) 121 | if (word && evt.target.classList.contains('emoji')) { 122 | searchInput.focus() 123 | } 124 | }) 125 | 126 | // if click on and emoji item, copy emoji unicode char to clipboard on click or 127 | // copy emoji code if `shiftKey` is pressed 128 | document.addEventListener('click', function (evt) { 129 | if (evt.target.classList.contains('emoji')) { 130 | copyFocusedEmoji(evt.target, evt.shiftKey) 131 | } 132 | }) 133 | 134 | function stringIncludes (string, search) { 135 | if (search.length > string.length) { 136 | return false 137 | } else { 138 | return string.indexOf(search) !== -1 139 | } 140 | } 141 | 142 | function search (query) { 143 | if (searching) { 144 | clearTimeout(searching) 145 | } 146 | searching = setTimeout(function () { 147 | var results 148 | if (query.length === 0 || (query.length === 1 && query.charCodeAt() <= 255)) { 149 | results = emojikeys.slice(0) 150 | } else { 151 | var resultsDict = {} 152 | indexKeys.forEach(function matchQuery (keyword) { 153 | if (stringIncludes(keyword, query)) { 154 | index[keyword].forEach(function addMatchingEmoji (emoji) { 155 | resultsDict[emoji] = true 156 | }) 157 | } 158 | }) 159 | results = Object.keys(resultsDict).sort(function sortResults (a, b) { 160 | return emojikeyIndexTable[a] - emojikeyIndexTable[b] 161 | }) 162 | } 163 | 164 | // Put exact match first 165 | if (results.indexOf(query) >= 0) { 166 | results.splice(results.indexOf(query), 1) 167 | results.unshift(query) 168 | } 169 | 170 | renderResults(results, document.querySelector('.js-results')) 171 | if (document.querySelector('.emoji')) document.querySelector('.emoji').scrollIntoViewIfNeeded() 172 | }, 80) 173 | } 174 | 175 | function renderResults (emojiNameArray, containerElement) { 176 | containerElement.innerHTML = '' 177 | var fragment = document.createDocumentFragment() 178 | var modifierValue = preference['skin-tone-modifier'] 179 | var modifier = modifiers.indexOf(modifierValue) >= 0 ? modifierValue : null 180 | emojiNameArray.forEach(function (name) { 181 | var unicode = addModifier(emojilib[name], modifier) || '--' 182 | var resultElement = document.createElement('button') 183 | resultElement.type = 'button' 184 | resultElement.className = 'emoji' 185 | resultElement.setAttribute('aria-label', name) 186 | resultElement.textContent = unicode 187 | fragment.appendChild(resultElement) 188 | }) 189 | containerElement.appendChild(fragment) 190 | } 191 | 192 | function buildEmojikeyIndexTable () { 193 | var indexTable = {} 194 | emojikeys.forEach(function (name, index) { 195 | indexTable[name] = index 196 | }) 197 | return indexTable 198 | } 199 | 200 | function buildIndex () { 201 | var keywords = {} 202 | emojikeys.forEach(function (name) { 203 | var words = emojilib[name]['keywords'] 204 | words.push(name) 205 | words.push(emojilib[name]['char']) 206 | words.push(emojilib[name]['category']) 207 | 208 | words.forEach(function (word) { 209 | if (keywords[word] && keywords[word].indexOf(name) < 0) { 210 | keywords[word].push(name) 211 | } else if (!keywords[word]) { 212 | keywords[word] = [name] 213 | } 214 | }) 215 | }) 216 | 217 | return keywords 218 | } 219 | 220 | function isWord (charCode) { 221 | return String.fromCharCode(charCode).match(/\w/) 222 | } 223 | 224 | // Insert modifier in front of zwj 225 | function addModifier (emoji, modifier) { 226 | if (!modifier || !emoji['fitzpatrick_scale']) return emoji['char'] 227 | var zwj = new RegExp('‍', 'g') 228 | return emoji['char'].match(zwj) ? emoji['char'].replace(zwj, modifier + '‍') : emoji['char'] + modifier 229 | } 230 | 231 | function jumpto (destination) { 232 | var container = document.getElementsByClassName('js-results')[0] 233 | var all = document.getElementsByClassName('emoji') 234 | var focusedElement = document.querySelector('.emoji:focus') 235 | var nodeIndex = Array.prototype.indexOf.call(all, focusedElement) 236 | var resultPerRow = Math.floor(container.clientWidth / all[0].clientWidth) 237 | var resultPerCol = Math.floor(container.clientHeight / all[0].clientHeight) 238 | var newTarget 239 | 240 | if (destination === 'up') { 241 | newTarget = nodeIndex - resultPerRow 242 | } else if (destination === 'down') { 243 | newTarget = nodeIndex + resultPerRow 244 | } else if (destination === 'left') { 245 | if ((nodeIndex + 1) % resultPerRow === 1) { 246 | // Wrap to previous row. 247 | newTarget = nodeIndex + (resultPerRow - 1) // Adjust to last column. 248 | newTarget -= resultPerRow // Up one row. 249 | } else { 250 | newTarget = nodeIndex - 1 251 | } 252 | } else if (destination === 'right') { 253 | if ((nodeIndex + 1) % resultPerRow === 0) { 254 | // Wrap to next row. 255 | newTarget = nodeIndex - (resultPerRow - 1) // Adjust to first column. 256 | newTarget += resultPerRow // Down one row. 257 | } else { 258 | newTarget = nodeIndex + 1 259 | } 260 | } else if (destination === 'next') { 261 | newTarget = nodeIndex + resultPerRow * (resultPerCol - 1 || 1) 262 | } else if (destination === 'prev') { 263 | newTarget = nodeIndex - resultPerRow * (resultPerCol - 1 || 1) 264 | } 265 | 266 | if (newTarget < 0) { 267 | // Allow jump back up to search field IF already at first item. 268 | if (nodeIndex === 0) { 269 | // Purposefully mismatch so we focus on input instead. 270 | newTarget = -1 271 | } else { 272 | newTarget = 0 273 | } 274 | } 275 | if (newTarget >= all.length - 1) newTarget = all.length - 1 276 | if (all[newTarget]) { 277 | all[newTarget].focus() 278 | all[newTarget].scrollIntoViewIfNeeded() 279 | } else { 280 | searchInput.focus() 281 | } 282 | } 283 | -------------------------------------------------------------------------------- /app/settings.js: -------------------------------------------------------------------------------- 1 | /* global localStorage, alert */ 2 | var preference 3 | var ipc = require('electron').ipcRenderer 4 | var modifiers = require('emojilib').fitzpatrick_scale_modifiers 5 | 6 | var defaultPreference = { 7 | 'open-window-shortcut': 'ctrl+shift+space', 8 | 'emoji-size': '20', 9 | 'open-at-login': false, 10 | 'skin-tone-modifier': '' 11 | } 12 | 13 | var preferenceNames = { 14 | 'open-window-shortcut': 'Mojibar shortcut', 15 | 'emoji-size': 'Emoji font size', 16 | 'open-at-login': 'Start Mojibar at login', 17 | 'skin-tone-modifier': 'Skin tone modifier' 18 | } 19 | 20 | var applyPreferences = function (preference, initialization) { 21 | localStorage.setItem('preference', JSON.stringify(preference)) 22 | 23 | ipc.send('update-preference', preference, initialization) 24 | var style = document.createElement('style') 25 | style.innerText = '.emoji { font-size: ' + preference['emoji-size'] + 'px; width: ' + (Number(preference['emoji-size']) + 20) + 'px; height: ' + (Number(preference['emoji-size']) + 20) + 'px; }' 26 | document.body.appendChild(style) 27 | // Update skin tone setting 28 | window.search(window.searchInput.value) 29 | window.searchInput.focus() 30 | } 31 | 32 | var savePreference = function (event) { 33 | event.preventDefault() 34 | 35 | Object.keys(preference).forEach(function (key) { 36 | var el = document.getElementById(key) 37 | preference[key] = el.nodeName === 'INPUT' && el.type === 'checkbox' ? el.checked : el.value 38 | }) 39 | 40 | applyPreferences(preference) 41 | } 42 | 43 | if (localStorage.getItem('preference')) { 44 | preference = JSON.parse(localStorage.getItem('preference')) 45 | Object.keys(defaultPreference).forEach(function (key) { 46 | if (!preference[key]) preference[key] = defaultPreference[key] 47 | }) 48 | } else { 49 | preference = defaultPreference 50 | } 51 | 52 | applyPreferences(preference, true) 53 | 54 | ipc.on('open-preference', function (event, message) { 55 | togglePreferencePanel() 56 | }) 57 | 58 | ipc.on('preference-updated', function (event, result, initialization) { 59 | if (result) { 60 | if (!initialization) { 61 | alert('Saved!') 62 | togglePreferencePanel() 63 | } 64 | } else { 65 | alert('Something went wrong, likely related to keybindings. See http://electron.atom.io/docs/v0.36.5/api/accelerator/ for more.') 66 | } 67 | }) 68 | 69 | var togglePreferencePanel = function () { 70 | if (document.body.classList.contains('on-preference')) { 71 | document.body.classList.remove('on-preference') 72 | document.getElementById('js-preference-panel').remove() 73 | } else { 74 | var preference = JSON.parse(localStorage.getItem('preference')) 75 | var panel = document.createElement('div') 76 | 77 | panel.classList.add('preference-panel') 78 | panel.id = 'js-preference-panel' 79 | var html = '
' 80 | Object.keys(preferenceNames).forEach(function (key) { 81 | html += '
' 82 | if (typeof preference[key] === 'boolean') { 83 | html += '' 87 | } else if (key === 'skin-tone-modifier') { 88 | html += '' 91 | html += '' 97 | html += '' 98 | } else { 99 | html += '' 102 | html += '' 103 | } 104 | html += '
' 105 | }) 106 | html += '' 107 | html += `mojibar@${require('../package.json').version}` 108 | if (localStorage.getItem('emojilibVersion')) html += `emojilib@${localStorage.getItem('emojilibVersion')}` 109 | html += '
' 110 | panel.innerHTML += html 111 | 112 | panel.getElementsByTagName('form')[0].onsubmit = savePreference 113 | 114 | document.body.classList.add('on-preference') 115 | document.body.appendChild(panel) 116 | panel.getElementsByTagName('input')[0].focus() 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /app/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | padding-top: 60px; 5 | } 6 | 7 | body, input { 8 | font-family: "Source Sans Pro", sans-serif; 9 | } 10 | 11 | div, 12 | button { 13 | box-sizing: border-box; 14 | } 15 | 16 | .prepend-mag { 17 | position: fixed; 18 | z-index: 2; 19 | top: 15px; 20 | left: 15px; 21 | font-family: AppleColorEmoji; 22 | } 23 | 24 | .search { 25 | padding: 20px 10px 20px 35px; 26 | font-size: 14px; 27 | width: 100%; 28 | border: 0; 29 | background: #f7f7f7; 30 | border-bottom: 1px solid #f0f0f0; 31 | position: fixed; 32 | z-index: 1; 33 | top: 0; 34 | -webkit-appearance: textfield; 35 | } 36 | 37 | .search:focus { 38 | background: #fff; 39 | outline: none; 40 | } 41 | 42 | .results { 43 | height: 100%; 44 | position: relative; 45 | } 46 | 47 | .code { 48 | width: 100%; 49 | display: inline-block; 50 | border: 1px solid transparent; 51 | padding: 5px 15px; 52 | padding-left: 35px; 53 | font-size: 13px; 54 | border-radius: 30px; 55 | } 56 | 57 | .code:focus { 58 | outline: none; 59 | border-color: #08c; 60 | } 61 | 62 | .emoji { 63 | overflow: hidden; 64 | float: left; 65 | padding: 10px; 66 | width: 40px; 67 | height: 40px; 68 | font-size: 20px; 69 | font-family: "AppleColorEmoji", "Noto Color Emoji", "EmojiOne Color", sans-serif; 70 | -webkit-appearance: none; 71 | background: transparent; 72 | border: 0; 73 | } 74 | 75 | .on-preference { 76 | overflow: hidden; 77 | } 78 | 79 | .preference-panel { 80 | width: 100%; 81 | position: fixed; 82 | top: 0; 83 | left: 0; 84 | width: 100%; 85 | height: 100%; 86 | background: #f5f5f5; 87 | z-index: 3; 88 | padding: 20px; 89 | overflow: auto; 90 | border-left: 100px solid #f0f0f0; 91 | box-shadow: inset 1px 0 0 0 #ddd; 92 | } 93 | 94 | .pref-item { 95 | display: block; 96 | margin-bottom: 20px; 97 | } 98 | 99 | .preference-panel label { 100 | display: block; 101 | font-size: 12px; 102 | font-weight: bold; 103 | margin-bottom: 8px; 104 | } 105 | 106 | .preference-panel input { 107 | padding: 10px 13px; 108 | font-size: 13px; 109 | border-radius: 3px; 110 | border: 1px solid #ddd; 111 | font-family: menlo, monospace; 112 | } 113 | 114 | .preference-panel input[type="text"] { 115 | width: 70%; 116 | } 117 | 118 | .preference-panel button { 119 | border: 0; 120 | background: #08c; 121 | color: #fff; 122 | font-weight: bold; 123 | padding: 8px 13px; 124 | border-radius: 3px; 125 | } 126 | 127 | .pref-sidebar { 128 | position: absolute; 129 | width: 20%; 130 | top: 0; 131 | left: 0; 132 | height: 100%; 133 | background: #efefef; 134 | border-right: 1px solid #cfcfcf; 135 | } 136 | 137 | .version { 138 | font-family: menlo, monospace; 139 | margin-left: 15px; 140 | font-size: 10px; 141 | } 142 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var { app, ipcMain, globalShortcut, Menu } = require('electron') 2 | var isMac = /darwin/.test(process.platform) 3 | var menubar = require('menubar') 4 | var isDev = require('electron-is-dev') 5 | var path = require('path') 6 | var mb = menubar({ 7 | dir: path.join(__dirname, '/app'), 8 | width: 440, 9 | height: 330, 10 | icon: path.join(__dirname, '/app/Icon-Template.png'), 11 | preloadWindow: true, 12 | windowPosition: 'topRight', 13 | alwaysOnTop: true 14 | }) 15 | 16 | mb.on('show', function () { 17 | mb.window.webContents.send('show') 18 | }) 19 | 20 | mb.app.on('will-quit', function () { 21 | globalShortcut.unregisterAll() 22 | }) 23 | 24 | mb.app.on('activate', function () { 25 | mb.showWindow() 26 | }) 27 | 28 | // when receive the abort message, close the app 29 | ipcMain.on('abort', function () { 30 | if (isMac) { 31 | mb.app.hide() 32 | } else { 33 | // Windows and Linux 34 | mb.window.blur() 35 | mb.hideWindow() 36 | } 37 | }) 38 | 39 | // update shortcuts when preferences change 40 | ipcMain.on('update-preference', function (evt, pref, initialization) { 41 | registerShortcut(pref['open-window-shortcut'], initialization) 42 | 43 | // Make packaged app (not dev app) start at login 44 | if (!isDev) { 45 | app.setLoginItemSettings({ 46 | openAtLogin: pref['open-at-login'], 47 | openAsHidden: true 48 | }) 49 | } 50 | }) 51 | 52 | var template = [ 53 | { 54 | label: 'Mojibar', 55 | submenu: [ 56 | { 57 | label: 'Undo', 58 | accelerator: 'CommandOrControl+Z', 59 | selector: 'undo:' 60 | }, 61 | { 62 | label: 'Redo', 63 | accelerator: 'Shift+CommandOrControl+Z', 64 | selector: 'redo:' 65 | }, 66 | { 67 | label: 'Cut', 68 | accelerator: 'CommandOrControl+X', 69 | selector: 'cut:' 70 | }, 71 | { 72 | label: 'Copy', 73 | accelerator: 'CommandOrControl+C', 74 | selector: 'copy:' 75 | }, 76 | { 77 | label: 'Paste', 78 | accelerator: 'CommandOrControl+V', 79 | selector: 'paste:' 80 | }, 81 | { 82 | label: 'Select All', 83 | accelerator: 'CommandOrControl+A', 84 | selector: 'selectAll:' 85 | }, 86 | { 87 | label: 'Reload', 88 | accelerator: 'CmdOrCtrl+R', 89 | click: function (item, focusedWindow) { if (focusedWindow) focusedWindow.reload() } 90 | }, 91 | { 92 | label: 'Preference', 93 | accelerator: 'CommandOrControl+,', 94 | click: function () { mb.window.webContents.send('open-preference') } 95 | }, 96 | { 97 | label: 'Quit App', 98 | accelerator: 'CommandOrControl+Q', 99 | selector: 'terminate:' 100 | }, 101 | { 102 | label: 'Toggle DevTools', 103 | accelerator: 'Alt+CommandOrControl+I', 104 | click: function () { mb.window.toggleDevTools() } 105 | } 106 | ] 107 | } 108 | ] 109 | 110 | mb.on('ready', function ready () { 111 | // Build default menu for text editing and devtools. (gone since electron 0.25.2) 112 | var menu = Menu.buildFromTemplate(template) 113 | Menu.setApplicationMenu(menu) 114 | 115 | mb.window.on('hide', function () { 116 | mb.window.webContents.send('fetch') 117 | }) 118 | }) 119 | 120 | // Register a shortcut listener. 121 | var registerShortcut = function (keybinding, initialization) { 122 | globalShortcut.unregisterAll() 123 | 124 | try { 125 | var ret = globalShortcut.register(keybinding, function () { 126 | if (mb.window.isVisible()) { 127 | return mb.hideWindow() 128 | } 129 | 130 | mb.showWindow() 131 | mb.window.focus() 132 | }) 133 | } catch (err) { 134 | mb.window.webContents.send('preference-updated', false, initialization) 135 | } 136 | 137 | if (ret) { 138 | mb.window.webContents.send('preference-updated', true, initialization) 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Mu-An Chiou 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /mojibar.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muan/mojibar/3a1dac0998202e8425a63acb37da82aa7d6385f9/mojibar.icns -------------------------------------------------------------------------------- /mojibar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muan/mojibar/3a1dac0998202e8425a63acb37da82aa7d6385f9/mojibar.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mojibar", 3 | "version": "2.6.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/node": { 8 | "version": "7.0.42", 9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.42.tgz", 10 | "integrity": "sha512-cF/2SHIITu6Xen1DqBobqsx63Bdui37ZnID90G/vkuF1T7orBijcgyYcgkRpChCRwoRaf4LV/jXjrfVtFL/Y8Q==", 11 | "dev": true 12 | }, 13 | "abbrev": { 14 | "version": "1.1.0", 15 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", 16 | "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", 17 | "dev": true 18 | }, 19 | "acorn": { 20 | "version": "5.1.1", 21 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", 22 | "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", 23 | "dev": true 24 | }, 25 | "acorn-jsx": { 26 | "version": "3.0.1", 27 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 28 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 29 | "dev": true, 30 | "requires": { 31 | "acorn": "3.3.0" 32 | }, 33 | "dependencies": { 34 | "acorn": { 35 | "version": "3.3.0", 36 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 37 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 38 | "dev": true 39 | } 40 | } 41 | }, 42 | "ajv": { 43 | "version": "4.11.8", 44 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 45 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 46 | "dev": true, 47 | "requires": { 48 | "co": "4.6.0", 49 | "json-stable-stringify": "1.0.1" 50 | } 51 | }, 52 | "ajv-keywords": { 53 | "version": "1.5.1", 54 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 55 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 56 | "dev": true 57 | }, 58 | "ansi-escapes": { 59 | "version": "1.4.0", 60 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 61 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 62 | "dev": true 63 | }, 64 | "ansi-regex": { 65 | "version": "2.1.1", 66 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 67 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 68 | "dev": true 69 | }, 70 | "ansi-styles": { 71 | "version": "2.2.1", 72 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 73 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 74 | "dev": true 75 | }, 76 | "argparse": { 77 | "version": "1.0.9", 78 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 79 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 80 | "dev": true, 81 | "requires": { 82 | "sprintf-js": "1.0.3" 83 | } 84 | }, 85 | "array-find-index": { 86 | "version": "1.0.2", 87 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 88 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 89 | "dev": true 90 | }, 91 | "array-union": { 92 | "version": "1.0.2", 93 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 94 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 95 | "dev": true, 96 | "requires": { 97 | "array-uniq": "1.0.3" 98 | } 99 | }, 100 | "array-uniq": { 101 | "version": "1.0.3", 102 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 103 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 104 | "dev": true 105 | }, 106 | "array.prototype.find": { 107 | "version": "2.0.4", 108 | "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", 109 | "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", 110 | "dev": true, 111 | "requires": { 112 | "define-properties": "1.1.2", 113 | "es-abstract": "1.8.0" 114 | } 115 | }, 116 | "arrify": { 117 | "version": "1.0.1", 118 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 119 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 120 | "dev": true 121 | }, 122 | "asar": { 123 | "version": "0.13.0", 124 | "resolved": "https://registry.npmjs.org/asar/-/asar-0.13.0.tgz", 125 | "integrity": "sha1-3zPdnQG/+EJGTQ2fCVdA1KYq+xQ=", 126 | "dev": true, 127 | "requires": { 128 | "chromium-pickle-js": "0.2.0", 129 | "commander": "2.11.0", 130 | "cuint": "0.2.2", 131 | "glob": "6.0.4", 132 | "minimatch": "3.0.4", 133 | "mkdirp": "0.5.0", 134 | "mksnapshot": "0.3.1", 135 | "tmp": "0.0.28" 136 | }, 137 | "dependencies": { 138 | "glob": { 139 | "version": "6.0.4", 140 | "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", 141 | "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", 142 | "dev": true, 143 | "requires": { 144 | "inflight": "1.0.6", 145 | "inherits": "2.0.3", 146 | "minimatch": "3.0.4", 147 | "once": "1.4.0", 148 | "path-is-absolute": "1.0.1" 149 | } 150 | } 151 | } 152 | }, 153 | "asn1": { 154 | "version": "0.2.3", 155 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 156 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 157 | "dev": true 158 | }, 159 | "assert-plus": { 160 | "version": "0.2.0", 161 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 162 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 163 | "dev": true 164 | }, 165 | "asynckit": { 166 | "version": "0.4.0", 167 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 168 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 169 | "dev": true 170 | }, 171 | "aws-sign2": { 172 | "version": "0.6.0", 173 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", 174 | "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", 175 | "dev": true 176 | }, 177 | "aws4": { 178 | "version": "1.6.0", 179 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 180 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 181 | "dev": true 182 | }, 183 | "babel-code-frame": { 184 | "version": "6.26.0", 185 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 186 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 187 | "dev": true, 188 | "requires": { 189 | "chalk": "1.1.3", 190 | "esutils": "2.0.2", 191 | "js-tokens": "3.0.2" 192 | } 193 | }, 194 | "balanced-match": { 195 | "version": "1.0.0", 196 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 197 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 198 | "dev": true 199 | }, 200 | "base64-js": { 201 | "version": "1.2.0", 202 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", 203 | "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", 204 | "dev": true 205 | }, 206 | "bcrypt-pbkdf": { 207 | "version": "1.0.1", 208 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 209 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 210 | "dev": true, 211 | "optional": true, 212 | "requires": { 213 | "tweetnacl": "0.14.5" 214 | } 215 | }, 216 | "binary": { 217 | "version": "0.3.0", 218 | "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", 219 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", 220 | "dev": true, 221 | "requires": { 222 | "buffers": "0.1.1", 223 | "chainsaw": "0.1.0" 224 | } 225 | }, 226 | "bluebird": { 227 | "version": "3.5.0", 228 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", 229 | "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", 230 | "dev": true 231 | }, 232 | "boom": { 233 | "version": "2.10.1", 234 | "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", 235 | "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", 236 | "dev": true, 237 | "requires": { 238 | "hoek": "2.16.3" 239 | } 240 | }, 241 | "brace-expansion": { 242 | "version": "1.1.8", 243 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 244 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 245 | "dev": true, 246 | "requires": { 247 | "balanced-match": "1.0.0", 248 | "concat-map": "0.0.1" 249 | } 250 | }, 251 | "buffers": { 252 | "version": "0.1.1", 253 | "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", 254 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", 255 | "dev": true 256 | }, 257 | "builtin-modules": { 258 | "version": "1.1.1", 259 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 260 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 261 | "dev": true 262 | }, 263 | "caller-path": { 264 | "version": "0.1.0", 265 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 266 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 267 | "dev": true, 268 | "requires": { 269 | "callsites": "0.2.0" 270 | } 271 | }, 272 | "callsites": { 273 | "version": "0.2.0", 274 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 275 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 276 | "dev": true 277 | }, 278 | "camelcase": { 279 | "version": "2.1.1", 280 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 281 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 282 | "dev": true 283 | }, 284 | "camelcase-keys": { 285 | "version": "2.1.0", 286 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 287 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 288 | "dev": true, 289 | "requires": { 290 | "camelcase": "2.1.1", 291 | "map-obj": "1.0.1" 292 | } 293 | }, 294 | "caseless": { 295 | "version": "0.12.0", 296 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 297 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 298 | "dev": true 299 | }, 300 | "chainsaw": { 301 | "version": "0.1.0", 302 | "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", 303 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", 304 | "dev": true, 305 | "requires": { 306 | "traverse": "0.3.9" 307 | } 308 | }, 309 | "chalk": { 310 | "version": "1.1.3", 311 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 312 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 313 | "dev": true, 314 | "requires": { 315 | "ansi-styles": "2.2.1", 316 | "escape-string-regexp": "1.0.5", 317 | "has-ansi": "2.0.0", 318 | "strip-ansi": "3.0.1", 319 | "supports-color": "2.0.0" 320 | } 321 | }, 322 | "chromium-pickle-js": { 323 | "version": "0.2.0", 324 | "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", 325 | "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", 326 | "dev": true 327 | }, 328 | "circular-json": { 329 | "version": "0.3.3", 330 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 331 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 332 | "dev": true 333 | }, 334 | "cli-cursor": { 335 | "version": "1.0.2", 336 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 337 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 338 | "dev": true, 339 | "requires": { 340 | "restore-cursor": "1.0.1" 341 | } 342 | }, 343 | "cli-width": { 344 | "version": "2.1.0", 345 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 346 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 347 | "dev": true 348 | }, 349 | "co": { 350 | "version": "4.6.0", 351 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 352 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 353 | "dev": true 354 | }, 355 | "code-point-at": { 356 | "version": "1.1.0", 357 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 358 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 359 | "dev": true 360 | }, 361 | "combined-stream": { 362 | "version": "1.0.5", 363 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 364 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 365 | "dev": true, 366 | "requires": { 367 | "delayed-stream": "1.0.0" 368 | } 369 | }, 370 | "commander": { 371 | "version": "2.11.0", 372 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 373 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 374 | "dev": true 375 | }, 376 | "compare-version": { 377 | "version": "0.1.2", 378 | "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", 379 | "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", 380 | "dev": true 381 | }, 382 | "concat-map": { 383 | "version": "0.0.1", 384 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 385 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 386 | "dev": true 387 | }, 388 | "concat-stream": { 389 | "version": "1.6.0", 390 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 391 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 392 | "dev": true, 393 | "requires": { 394 | "inherits": "2.0.3", 395 | "readable-stream": "2.3.3", 396 | "typedarray": "0.0.6" 397 | }, 398 | "dependencies": { 399 | "isarray": { 400 | "version": "1.0.0", 401 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 402 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 403 | "dev": true 404 | }, 405 | "readable-stream": { 406 | "version": "2.3.3", 407 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 408 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 409 | "dev": true, 410 | "requires": { 411 | "core-util-is": "1.0.2", 412 | "inherits": "2.0.3", 413 | "isarray": "1.0.0", 414 | "process-nextick-args": "1.0.7", 415 | "safe-buffer": "5.1.1", 416 | "string_decoder": "1.0.3", 417 | "util-deprecate": "1.0.2" 418 | } 419 | }, 420 | "string_decoder": { 421 | "version": "1.0.3", 422 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 423 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 424 | "dev": true, 425 | "requires": { 426 | "safe-buffer": "5.1.1" 427 | } 428 | } 429 | } 430 | }, 431 | "contains-path": { 432 | "version": "0.1.0", 433 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 434 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 435 | "dev": true 436 | }, 437 | "core-util-is": { 438 | "version": "1.0.2", 439 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 440 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 441 | "dev": true 442 | }, 443 | "cryptiles": { 444 | "version": "2.0.5", 445 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", 446 | "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", 447 | "dev": true, 448 | "requires": { 449 | "boom": "2.10.1" 450 | } 451 | }, 452 | "cuint": { 453 | "version": "0.2.2", 454 | "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 455 | "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", 456 | "dev": true 457 | }, 458 | "currently-unhandled": { 459 | "version": "0.4.1", 460 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 461 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 462 | "dev": true, 463 | "requires": { 464 | "array-find-index": "1.0.2" 465 | } 466 | }, 467 | "d": { 468 | "version": "1.0.0", 469 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 470 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 471 | "dev": true, 472 | "requires": { 473 | "es5-ext": "0.10.29" 474 | } 475 | }, 476 | "dashdash": { 477 | "version": "1.14.1", 478 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 479 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 480 | "dev": true, 481 | "requires": { 482 | "assert-plus": "1.0.0" 483 | }, 484 | "dependencies": { 485 | "assert-plus": { 486 | "version": "1.0.0", 487 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 488 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 489 | "dev": true 490 | } 491 | } 492 | }, 493 | "debug": { 494 | "version": "2.6.8", 495 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 496 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 497 | "dev": true, 498 | "requires": { 499 | "ms": "2.0.0" 500 | } 501 | }, 502 | "debug-log": { 503 | "version": "1.0.1", 504 | "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", 505 | "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", 506 | "dev": true 507 | }, 508 | "decamelize": { 509 | "version": "1.2.0", 510 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 511 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 512 | "dev": true 513 | }, 514 | "decompress-zip": { 515 | "version": "0.3.0", 516 | "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz", 517 | "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", 518 | "dev": true, 519 | "requires": { 520 | "binary": "0.3.0", 521 | "graceful-fs": "4.1.11", 522 | "mkpath": "0.1.0", 523 | "nopt": "3.0.6", 524 | "q": "1.5.0", 525 | "readable-stream": "1.1.14", 526 | "touch": "0.0.3" 527 | } 528 | }, 529 | "deep-extend": { 530 | "version": "0.4.2", 531 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 532 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 533 | "dev": true 534 | }, 535 | "deep-is": { 536 | "version": "0.1.3", 537 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 538 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 539 | "dev": true 540 | }, 541 | "define-properties": { 542 | "version": "1.1.2", 543 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 544 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 545 | "dev": true, 546 | "requires": { 547 | "foreach": "2.0.5", 548 | "object-keys": "1.0.11" 549 | }, 550 | "dependencies": { 551 | "object-keys": { 552 | "version": "1.0.11", 553 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 554 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 555 | "dev": true 556 | } 557 | } 558 | }, 559 | "deglob": { 560 | "version": "2.1.0", 561 | "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz", 562 | "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=", 563 | "dev": true, 564 | "requires": { 565 | "find-root": "1.1.0", 566 | "glob": "7.1.2", 567 | "ignore": "3.3.3", 568 | "pkg-config": "1.1.1", 569 | "run-parallel": "1.1.6", 570 | "uniq": "1.0.1" 571 | } 572 | }, 573 | "del": { 574 | "version": "2.2.2", 575 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 576 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 577 | "dev": true, 578 | "requires": { 579 | "globby": "5.0.0", 580 | "is-path-cwd": "1.0.0", 581 | "is-path-in-cwd": "1.0.0", 582 | "object-assign": "4.1.1", 583 | "pify": "2.3.0", 584 | "pinkie-promise": "2.0.1", 585 | "rimraf": "2.6.1" 586 | } 587 | }, 588 | "delayed-stream": { 589 | "version": "1.0.0", 590 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 591 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 592 | "dev": true 593 | }, 594 | "doctrine": { 595 | "version": "2.0.0", 596 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", 597 | "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", 598 | "dev": true, 599 | "requires": { 600 | "esutils": "2.0.2", 601 | "isarray": "1.0.0" 602 | }, 603 | "dependencies": { 604 | "isarray": { 605 | "version": "1.0.0", 606 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 607 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 608 | "dev": true 609 | } 610 | } 611 | }, 612 | "ecc-jsbn": { 613 | "version": "0.1.1", 614 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 615 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 616 | "dev": true, 617 | "optional": true, 618 | "requires": { 619 | "jsbn": "0.1.1" 620 | } 621 | }, 622 | "electron": { 623 | "version": "1.7.5", 624 | "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.5.tgz", 625 | "integrity": "sha1-BloxAr+LhxAt9QxQmF/v5sVpBFs=", 626 | "dev": true, 627 | "requires": { 628 | "@types/node": "7.0.42", 629 | "electron-download": "3.3.0", 630 | "extract-zip": "1.6.5" 631 | } 632 | }, 633 | "electron-download": { 634 | "version": "3.3.0", 635 | "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", 636 | "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", 637 | "dev": true, 638 | "requires": { 639 | "debug": "2.6.8", 640 | "fs-extra": "0.30.0", 641 | "home-path": "1.0.5", 642 | "minimist": "1.2.0", 643 | "nugget": "2.0.1", 644 | "path-exists": "2.1.0", 645 | "rc": "1.2.1", 646 | "semver": "5.4.1", 647 | "sumchecker": "1.3.1" 648 | } 649 | }, 650 | "electron-is-dev": { 651 | "version": "0.1.2", 652 | "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.1.2.tgz", 653 | "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" 654 | }, 655 | "electron-osx-sign": { 656 | "version": "0.4.7", 657 | "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.7.tgz", 658 | "integrity": "sha1-HXVkeoJ0jqzUi+pwYW7IP/rePuU=", 659 | "dev": true, 660 | "requires": { 661 | "bluebird": "3.5.0", 662 | "compare-version": "0.1.2", 663 | "debug": "2.6.8", 664 | "isbinaryfile": "3.0.2", 665 | "minimist": "1.2.0", 666 | "plist": "2.1.0" 667 | } 668 | }, 669 | "electron-packager": { 670 | "version": "8.7.2", 671 | "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-8.7.2.tgz", 672 | "integrity": "sha1-RX078kvJYHwGrUsettqkrMrcIQg=", 673 | "dev": true, 674 | "requires": { 675 | "asar": "0.13.0", 676 | "debug": "2.6.8", 677 | "electron-download": "4.1.0", 678 | "electron-osx-sign": "0.4.7", 679 | "extract-zip": "1.6.5", 680 | "fs-extra": "3.0.1", 681 | "get-package-info": "1.0.0", 682 | "minimist": "1.2.0", 683 | "plist": "2.1.0", 684 | "rcedit": "0.9.0", 685 | "resolve": "1.4.0", 686 | "run-series": "1.1.4", 687 | "sanitize-filename": "1.6.1", 688 | "semver": "5.4.1" 689 | }, 690 | "dependencies": { 691 | "electron-download": { 692 | "version": "4.1.0", 693 | "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz", 694 | "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=", 695 | "dev": true, 696 | "requires": { 697 | "debug": "2.6.8", 698 | "env-paths": "1.0.0", 699 | "fs-extra": "2.1.2", 700 | "minimist": "1.2.0", 701 | "nugget": "2.0.1", 702 | "path-exists": "3.0.0", 703 | "rc": "1.2.1", 704 | "semver": "5.4.1", 705 | "sumchecker": "2.0.2" 706 | }, 707 | "dependencies": { 708 | "fs-extra": { 709 | "version": "2.1.2", 710 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", 711 | "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", 712 | "dev": true, 713 | "requires": { 714 | "graceful-fs": "4.1.11", 715 | "jsonfile": "2.4.0" 716 | } 717 | } 718 | } 719 | }, 720 | "fs-extra": { 721 | "version": "3.0.1", 722 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", 723 | "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", 724 | "dev": true, 725 | "requires": { 726 | "graceful-fs": "4.1.11", 727 | "jsonfile": "3.0.1", 728 | "universalify": "0.1.1" 729 | }, 730 | "dependencies": { 731 | "jsonfile": { 732 | "version": "3.0.1", 733 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", 734 | "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", 735 | "dev": true, 736 | "requires": { 737 | "graceful-fs": "4.1.11" 738 | } 739 | } 740 | } 741 | }, 742 | "path-exists": { 743 | "version": "3.0.0", 744 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 745 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 746 | "dev": true 747 | }, 748 | "sumchecker": { 749 | "version": "2.0.2", 750 | "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", 751 | "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", 752 | "dev": true, 753 | "requires": { 754 | "debug": "2.6.8" 755 | } 756 | } 757 | } 758 | }, 759 | "electron-positioner": { 760 | "version": "3.0.0", 761 | "resolved": "https://registry.npmjs.org/electron-positioner/-/electron-positioner-3.0.0.tgz", 762 | "integrity": "sha1-Gjt1ycweKd03xmOyP9h21P+rmZY=" 763 | }, 764 | "emojilib": { 765 | "version": "2.2.3", 766 | "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.2.3.tgz", 767 | "integrity": "sha1-8je36+v+8XZoQLGERkEkOAsqEpA=" 768 | }, 769 | "env-paths": { 770 | "version": "1.0.0", 771 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", 772 | "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", 773 | "dev": true 774 | }, 775 | "error-ex": { 776 | "version": "1.3.1", 777 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 778 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 779 | "dev": true, 780 | "requires": { 781 | "is-arrayish": "0.2.1" 782 | } 783 | }, 784 | "es-abstract": { 785 | "version": "1.8.0", 786 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.0.tgz", 787 | "integrity": "sha512-Cf9/h5MrXtExM20gSS55YFrGKCyPrRBjIVBtVyy8vmlsDfe0NPKMWj65tPLgzyfPuapWxh5whpXCtW4+AW5mRg==", 788 | "dev": true, 789 | "requires": { 790 | "es-to-primitive": "1.1.1", 791 | "function-bind": "1.1.0", 792 | "has": "1.0.1", 793 | "is-callable": "1.1.3", 794 | "is-regex": "1.0.4" 795 | } 796 | }, 797 | "es-to-primitive": { 798 | "version": "1.1.1", 799 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 800 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 801 | "dev": true, 802 | "requires": { 803 | "is-callable": "1.1.3", 804 | "is-date-object": "1.0.1", 805 | "is-symbol": "1.0.1" 806 | } 807 | }, 808 | "es5-ext": { 809 | "version": "0.10.29", 810 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz", 811 | "integrity": "sha512-KXla9NXo5sdaEkGSmbFPYgjH6m75kxsthL6GDRSug/Y2OiMoYm0I9giL39j4cgmaFmAbkIFJ6gG+SGKnLSmOvA==", 812 | "dev": true, 813 | "requires": { 814 | "es6-iterator": "2.0.1", 815 | "es6-symbol": "3.1.1" 816 | } 817 | }, 818 | "es6-iterator": { 819 | "version": "2.0.1", 820 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", 821 | "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", 822 | "dev": true, 823 | "requires": { 824 | "d": "1.0.0", 825 | "es5-ext": "0.10.29", 826 | "es6-symbol": "3.1.1" 827 | } 828 | }, 829 | "es6-map": { 830 | "version": "0.1.5", 831 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 832 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 833 | "dev": true, 834 | "requires": { 835 | "d": "1.0.0", 836 | "es5-ext": "0.10.29", 837 | "es6-iterator": "2.0.1", 838 | "es6-set": "0.1.5", 839 | "es6-symbol": "3.1.1", 840 | "event-emitter": "0.3.5" 841 | } 842 | }, 843 | "es6-promise": { 844 | "version": "4.1.1", 845 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", 846 | "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", 847 | "dev": true 848 | }, 849 | "es6-set": { 850 | "version": "0.1.5", 851 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 852 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 853 | "dev": true, 854 | "requires": { 855 | "d": "1.0.0", 856 | "es5-ext": "0.10.29", 857 | "es6-iterator": "2.0.1", 858 | "es6-symbol": "3.1.1", 859 | "event-emitter": "0.3.5" 860 | } 861 | }, 862 | "es6-symbol": { 863 | "version": "3.1.1", 864 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 865 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 866 | "dev": true, 867 | "requires": { 868 | "d": "1.0.0", 869 | "es5-ext": "0.10.29" 870 | } 871 | }, 872 | "es6-weak-map": { 873 | "version": "2.0.2", 874 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 875 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 876 | "dev": true, 877 | "requires": { 878 | "d": "1.0.0", 879 | "es5-ext": "0.10.29", 880 | "es6-iterator": "2.0.1", 881 | "es6-symbol": "3.1.1" 882 | } 883 | }, 884 | "escape-string-regexp": { 885 | "version": "1.0.5", 886 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 887 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 888 | "dev": true 889 | }, 890 | "escope": { 891 | "version": "3.6.0", 892 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 893 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 894 | "dev": true, 895 | "requires": { 896 | "es6-map": "0.1.5", 897 | "es6-weak-map": "2.0.2", 898 | "esrecurse": "4.2.0", 899 | "estraverse": "4.2.0" 900 | } 901 | }, 902 | "eslint": { 903 | "version": "3.19.0", 904 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", 905 | "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", 906 | "dev": true, 907 | "requires": { 908 | "babel-code-frame": "6.26.0", 909 | "chalk": "1.1.3", 910 | "concat-stream": "1.6.0", 911 | "debug": "2.6.8", 912 | "doctrine": "2.0.0", 913 | "escope": "3.6.0", 914 | "espree": "3.5.0", 915 | "esquery": "1.0.0", 916 | "estraverse": "4.2.0", 917 | "esutils": "2.0.2", 918 | "file-entry-cache": "2.0.0", 919 | "glob": "7.1.2", 920 | "globals": "9.18.0", 921 | "ignore": "3.3.3", 922 | "imurmurhash": "0.1.4", 923 | "inquirer": "0.12.0", 924 | "is-my-json-valid": "2.16.0", 925 | "is-resolvable": "1.0.0", 926 | "js-yaml": "3.9.1", 927 | "json-stable-stringify": "1.0.1", 928 | "levn": "0.3.0", 929 | "lodash": "4.17.4", 930 | "mkdirp": "0.5.0", 931 | "natural-compare": "1.4.0", 932 | "optionator": "0.8.2", 933 | "path-is-inside": "1.0.2", 934 | "pluralize": "1.2.1", 935 | "progress": "1.1.8", 936 | "require-uncached": "1.0.3", 937 | "shelljs": "0.7.8", 938 | "strip-bom": "3.0.0", 939 | "strip-json-comments": "2.0.1", 940 | "table": "3.8.3", 941 | "text-table": "0.2.0", 942 | "user-home": "2.0.0" 943 | }, 944 | "dependencies": { 945 | "strip-bom": { 946 | "version": "3.0.0", 947 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 948 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 949 | "dev": true 950 | } 951 | } 952 | }, 953 | "eslint-config-standard": { 954 | "version": "10.2.1", 955 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", 956 | "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", 957 | "dev": true 958 | }, 959 | "eslint-config-standard-jsx": { 960 | "version": "4.0.2", 961 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.2.tgz", 962 | "integrity": "sha512-F8fRh2WFnTek7dZH9ZaE0PCBwdVGkwVWZmizla/DDNOmg7Tx6B/IlK5+oYpiX29jpu73LszeJj5i1axEZv6VMw==", 963 | "dev": true 964 | }, 965 | "eslint-import-resolver-node": { 966 | "version": "0.2.3", 967 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", 968 | "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", 969 | "dev": true, 970 | "requires": { 971 | "debug": "2.6.8", 972 | "object-assign": "4.1.1", 973 | "resolve": "1.4.0" 974 | } 975 | }, 976 | "eslint-module-utils": { 977 | "version": "2.1.1", 978 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", 979 | "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", 980 | "dev": true, 981 | "requires": { 982 | "debug": "2.6.8", 983 | "pkg-dir": "1.0.0" 984 | } 985 | }, 986 | "eslint-plugin-import": { 987 | "version": "2.2.0", 988 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", 989 | "integrity": "sha1-crowb60wXWfEgWNIpGmaQimsi04=", 990 | "dev": true, 991 | "requires": { 992 | "builtin-modules": "1.1.1", 993 | "contains-path": "0.1.0", 994 | "debug": "2.6.8", 995 | "doctrine": "1.5.0", 996 | "eslint-import-resolver-node": "0.2.3", 997 | "eslint-module-utils": "2.1.1", 998 | "has": "1.0.1", 999 | "lodash.cond": "4.5.2", 1000 | "minimatch": "3.0.4", 1001 | "pkg-up": "1.0.0" 1002 | }, 1003 | "dependencies": { 1004 | "doctrine": { 1005 | "version": "1.5.0", 1006 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 1007 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 1008 | "dev": true, 1009 | "requires": { 1010 | "esutils": "2.0.2", 1011 | "isarray": "1.0.0" 1012 | } 1013 | }, 1014 | "isarray": { 1015 | "version": "1.0.0", 1016 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1017 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1018 | "dev": true 1019 | } 1020 | } 1021 | }, 1022 | "eslint-plugin-node": { 1023 | "version": "4.2.3", 1024 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-4.2.3.tgz", 1025 | "integrity": "sha512-vIUQPuwbVYdz/CYnlTLsJrRy7iXHQjdEe5wz0XhhdTym3IInM/zZLlPf9nZ2mThsH0QcsieCOWs2vOeCy/22LQ==", 1026 | "dev": true, 1027 | "requires": { 1028 | "ignore": "3.3.3", 1029 | "minimatch": "3.0.4", 1030 | "object-assign": "4.1.1", 1031 | "resolve": "1.4.0", 1032 | "semver": "5.3.0" 1033 | }, 1034 | "dependencies": { 1035 | "semver": { 1036 | "version": "5.3.0", 1037 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1038 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1039 | "dev": true 1040 | } 1041 | } 1042 | }, 1043 | "eslint-plugin-promise": { 1044 | "version": "3.5.0", 1045 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", 1046 | "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=", 1047 | "dev": true 1048 | }, 1049 | "eslint-plugin-react": { 1050 | "version": "6.10.3", 1051 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", 1052 | "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=", 1053 | "dev": true, 1054 | "requires": { 1055 | "array.prototype.find": "2.0.4", 1056 | "doctrine": "1.5.0", 1057 | "has": "1.0.1", 1058 | "jsx-ast-utils": "1.4.1", 1059 | "object.assign": "4.0.4" 1060 | }, 1061 | "dependencies": { 1062 | "doctrine": { 1063 | "version": "1.5.0", 1064 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 1065 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 1066 | "dev": true, 1067 | "requires": { 1068 | "esutils": "2.0.2", 1069 | "isarray": "1.0.0" 1070 | } 1071 | }, 1072 | "isarray": { 1073 | "version": "1.0.0", 1074 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1075 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1076 | "dev": true 1077 | } 1078 | } 1079 | }, 1080 | "eslint-plugin-standard": { 1081 | "version": "3.0.1", 1082 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", 1083 | "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", 1084 | "dev": true 1085 | }, 1086 | "espree": { 1087 | "version": "3.5.0", 1088 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz", 1089 | "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=", 1090 | "dev": true, 1091 | "requires": { 1092 | "acorn": "5.1.1", 1093 | "acorn-jsx": "3.0.1" 1094 | } 1095 | }, 1096 | "esprima": { 1097 | "version": "4.0.0", 1098 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1099 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1100 | "dev": true 1101 | }, 1102 | "esquery": { 1103 | "version": "1.0.0", 1104 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 1105 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 1106 | "dev": true, 1107 | "requires": { 1108 | "estraverse": "4.2.0" 1109 | } 1110 | }, 1111 | "esrecurse": { 1112 | "version": "4.2.0", 1113 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1114 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1115 | "dev": true, 1116 | "requires": { 1117 | "estraverse": "4.2.0", 1118 | "object-assign": "4.1.1" 1119 | } 1120 | }, 1121 | "estraverse": { 1122 | "version": "4.2.0", 1123 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1124 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1125 | "dev": true 1126 | }, 1127 | "esutils": { 1128 | "version": "2.0.2", 1129 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1130 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1131 | "dev": true 1132 | }, 1133 | "event-emitter": { 1134 | "version": "0.3.5", 1135 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 1136 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 1137 | "dev": true, 1138 | "requires": { 1139 | "d": "1.0.0", 1140 | "es5-ext": "0.10.29" 1141 | } 1142 | }, 1143 | "exit-hook": { 1144 | "version": "1.1.1", 1145 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 1146 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 1147 | "dev": true 1148 | }, 1149 | "extend": { 1150 | "version": "2.0.1", 1151 | "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", 1152 | "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" 1153 | }, 1154 | "extract-zip": { 1155 | "version": "1.6.5", 1156 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz", 1157 | "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=", 1158 | "dev": true, 1159 | "requires": { 1160 | "concat-stream": "1.6.0", 1161 | "debug": "2.2.0", 1162 | "mkdirp": "0.5.0", 1163 | "yauzl": "2.4.1" 1164 | }, 1165 | "dependencies": { 1166 | "debug": { 1167 | "version": "2.2.0", 1168 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", 1169 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", 1170 | "dev": true, 1171 | "requires": { 1172 | "ms": "0.7.1" 1173 | } 1174 | }, 1175 | "ms": { 1176 | "version": "0.7.1", 1177 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", 1178 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", 1179 | "dev": true 1180 | } 1181 | } 1182 | }, 1183 | "extsprintf": { 1184 | "version": "1.3.0", 1185 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1186 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1187 | "dev": true 1188 | }, 1189 | "fast-levenshtein": { 1190 | "version": "2.0.6", 1191 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1192 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1193 | "dev": true 1194 | }, 1195 | "fd-slicer": { 1196 | "version": "1.0.1", 1197 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", 1198 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", 1199 | "dev": true, 1200 | "requires": { 1201 | "pend": "1.2.0" 1202 | } 1203 | }, 1204 | "figures": { 1205 | "version": "1.7.0", 1206 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1207 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1208 | "dev": true, 1209 | "requires": { 1210 | "escape-string-regexp": "1.0.5", 1211 | "object-assign": "4.1.1" 1212 | } 1213 | }, 1214 | "file-entry-cache": { 1215 | "version": "2.0.0", 1216 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1217 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1218 | "dev": true, 1219 | "requires": { 1220 | "flat-cache": "1.2.2", 1221 | "object-assign": "4.1.1" 1222 | } 1223 | }, 1224 | "find-root": { 1225 | "version": "1.1.0", 1226 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 1227 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 1228 | "dev": true 1229 | }, 1230 | "find-up": { 1231 | "version": "1.1.2", 1232 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1233 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1234 | "dev": true, 1235 | "requires": { 1236 | "path-exists": "2.1.0", 1237 | "pinkie-promise": "2.0.1" 1238 | } 1239 | }, 1240 | "flat-cache": { 1241 | "version": "1.2.2", 1242 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 1243 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 1244 | "dev": true, 1245 | "requires": { 1246 | "circular-json": "0.3.3", 1247 | "del": "2.2.2", 1248 | "graceful-fs": "4.1.11", 1249 | "write": "0.2.1" 1250 | } 1251 | }, 1252 | "foreach": { 1253 | "version": "2.0.5", 1254 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 1255 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 1256 | "dev": true 1257 | }, 1258 | "forever-agent": { 1259 | "version": "0.6.1", 1260 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1261 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1262 | "dev": true 1263 | }, 1264 | "form-data": { 1265 | "version": "2.1.4", 1266 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", 1267 | "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", 1268 | "dev": true, 1269 | "requires": { 1270 | "asynckit": "0.4.0", 1271 | "combined-stream": "1.0.5", 1272 | "mime-types": "2.1.16" 1273 | } 1274 | }, 1275 | "fs-extra": { 1276 | "version": "0.30.0", 1277 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", 1278 | "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", 1279 | "dev": true, 1280 | "requires": { 1281 | "graceful-fs": "4.1.11", 1282 | "jsonfile": "2.4.0", 1283 | "klaw": "1.3.1", 1284 | "path-is-absolute": "1.0.1", 1285 | "rimraf": "2.6.1" 1286 | } 1287 | }, 1288 | "fs.realpath": { 1289 | "version": "1.0.0", 1290 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1291 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1292 | "dev": true 1293 | }, 1294 | "function-bind": { 1295 | "version": "1.1.0", 1296 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", 1297 | "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", 1298 | "dev": true 1299 | }, 1300 | "generate-function": { 1301 | "version": "2.0.0", 1302 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 1303 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", 1304 | "dev": true 1305 | }, 1306 | "generate-object-property": { 1307 | "version": "1.2.0", 1308 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 1309 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 1310 | "dev": true, 1311 | "requires": { 1312 | "is-property": "1.0.2" 1313 | } 1314 | }, 1315 | "get-package-info": { 1316 | "version": "1.0.0", 1317 | "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", 1318 | "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=", 1319 | "dev": true, 1320 | "requires": { 1321 | "bluebird": "3.5.0", 1322 | "debug": "2.6.8", 1323 | "lodash.get": "4.4.2", 1324 | "read-pkg-up": "2.0.0" 1325 | }, 1326 | "dependencies": { 1327 | "find-up": { 1328 | "version": "2.1.0", 1329 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1330 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1331 | "dev": true, 1332 | "requires": { 1333 | "locate-path": "2.0.0" 1334 | } 1335 | }, 1336 | "load-json-file": { 1337 | "version": "2.0.0", 1338 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1339 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1340 | "dev": true, 1341 | "requires": { 1342 | "graceful-fs": "4.1.11", 1343 | "parse-json": "2.2.0", 1344 | "pify": "2.3.0", 1345 | "strip-bom": "3.0.0" 1346 | } 1347 | }, 1348 | "path-type": { 1349 | "version": "2.0.0", 1350 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 1351 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 1352 | "dev": true, 1353 | "requires": { 1354 | "pify": "2.3.0" 1355 | } 1356 | }, 1357 | "read-pkg": { 1358 | "version": "2.0.0", 1359 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 1360 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 1361 | "dev": true, 1362 | "requires": { 1363 | "load-json-file": "2.0.0", 1364 | "normalize-package-data": "2.4.0", 1365 | "path-type": "2.0.0" 1366 | } 1367 | }, 1368 | "read-pkg-up": { 1369 | "version": "2.0.0", 1370 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 1371 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 1372 | "dev": true, 1373 | "requires": { 1374 | "find-up": "2.1.0", 1375 | "read-pkg": "2.0.0" 1376 | } 1377 | }, 1378 | "strip-bom": { 1379 | "version": "3.0.0", 1380 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1381 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 1382 | "dev": true 1383 | } 1384 | } 1385 | }, 1386 | "get-stdin": { 1387 | "version": "4.0.1", 1388 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 1389 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 1390 | "dev": true 1391 | }, 1392 | "getpass": { 1393 | "version": "0.1.7", 1394 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1395 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1396 | "dev": true, 1397 | "requires": { 1398 | "assert-plus": "1.0.0" 1399 | }, 1400 | "dependencies": { 1401 | "assert-plus": { 1402 | "version": "1.0.0", 1403 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1404 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1405 | "dev": true 1406 | } 1407 | } 1408 | }, 1409 | "glob": { 1410 | "version": "7.1.2", 1411 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1412 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1413 | "dev": true, 1414 | "requires": { 1415 | "fs.realpath": "1.0.0", 1416 | "inflight": "1.0.6", 1417 | "inherits": "2.0.3", 1418 | "minimatch": "3.0.4", 1419 | "once": "1.4.0", 1420 | "path-is-absolute": "1.0.1" 1421 | } 1422 | }, 1423 | "globals": { 1424 | "version": "9.18.0", 1425 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1426 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1427 | "dev": true 1428 | }, 1429 | "globby": { 1430 | "version": "5.0.0", 1431 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 1432 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 1433 | "dev": true, 1434 | "requires": { 1435 | "array-union": "1.0.2", 1436 | "arrify": "1.0.1", 1437 | "glob": "7.1.2", 1438 | "object-assign": "4.1.1", 1439 | "pify": "2.3.0", 1440 | "pinkie-promise": "2.0.1" 1441 | } 1442 | }, 1443 | "graceful-fs": { 1444 | "version": "4.1.11", 1445 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1446 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1447 | "dev": true 1448 | }, 1449 | "har-schema": { 1450 | "version": "1.0.5", 1451 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", 1452 | "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", 1453 | "dev": true 1454 | }, 1455 | "har-validator": { 1456 | "version": "4.2.1", 1457 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", 1458 | "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", 1459 | "dev": true, 1460 | "requires": { 1461 | "ajv": "4.11.8", 1462 | "har-schema": "1.0.5" 1463 | } 1464 | }, 1465 | "has": { 1466 | "version": "1.0.1", 1467 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 1468 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 1469 | "dev": true, 1470 | "requires": { 1471 | "function-bind": "1.1.0" 1472 | } 1473 | }, 1474 | "has-ansi": { 1475 | "version": "2.0.0", 1476 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1477 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1478 | "dev": true, 1479 | "requires": { 1480 | "ansi-regex": "2.1.1" 1481 | } 1482 | }, 1483 | "hawk": { 1484 | "version": "3.1.3", 1485 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", 1486 | "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", 1487 | "dev": true, 1488 | "requires": { 1489 | "boom": "2.10.1", 1490 | "cryptiles": "2.0.5", 1491 | "hoek": "2.16.3", 1492 | "sntp": "1.0.9" 1493 | } 1494 | }, 1495 | "hoek": { 1496 | "version": "2.16.3", 1497 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", 1498 | "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", 1499 | "dev": true 1500 | }, 1501 | "home-path": { 1502 | "version": "1.0.5", 1503 | "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", 1504 | "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", 1505 | "dev": true 1506 | }, 1507 | "hosted-git-info": { 1508 | "version": "2.5.0", 1509 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 1510 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 1511 | "dev": true 1512 | }, 1513 | "http-signature": { 1514 | "version": "1.1.1", 1515 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 1516 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 1517 | "dev": true, 1518 | "requires": { 1519 | "assert-plus": "0.2.0", 1520 | "jsprim": "1.4.1", 1521 | "sshpk": "1.13.1" 1522 | } 1523 | }, 1524 | "ignore": { 1525 | "version": "3.3.3", 1526 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", 1527 | "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", 1528 | "dev": true 1529 | }, 1530 | "imurmurhash": { 1531 | "version": "0.1.4", 1532 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1533 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1534 | "dev": true 1535 | }, 1536 | "indent-string": { 1537 | "version": "2.1.0", 1538 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 1539 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 1540 | "dev": true, 1541 | "requires": { 1542 | "repeating": "2.0.1" 1543 | } 1544 | }, 1545 | "inflight": { 1546 | "version": "1.0.6", 1547 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1548 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1549 | "dev": true, 1550 | "requires": { 1551 | "once": "1.4.0", 1552 | "wrappy": "1.0.2" 1553 | } 1554 | }, 1555 | "inherits": { 1556 | "version": "2.0.3", 1557 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1558 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1559 | "dev": true 1560 | }, 1561 | "ini": { 1562 | "version": "1.3.4", 1563 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 1564 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 1565 | "dev": true 1566 | }, 1567 | "inquirer": { 1568 | "version": "0.12.0", 1569 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", 1570 | "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", 1571 | "dev": true, 1572 | "requires": { 1573 | "ansi-escapes": "1.4.0", 1574 | "ansi-regex": "2.1.1", 1575 | "chalk": "1.1.3", 1576 | "cli-cursor": "1.0.2", 1577 | "cli-width": "2.1.0", 1578 | "figures": "1.7.0", 1579 | "lodash": "4.17.4", 1580 | "readline2": "1.0.1", 1581 | "run-async": "0.1.0", 1582 | "rx-lite": "3.1.2", 1583 | "string-width": "1.0.2", 1584 | "strip-ansi": "3.0.1", 1585 | "through": "2.3.8" 1586 | } 1587 | }, 1588 | "interpret": { 1589 | "version": "1.0.3", 1590 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", 1591 | "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", 1592 | "dev": true 1593 | }, 1594 | "is-arrayish": { 1595 | "version": "0.2.1", 1596 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1597 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1598 | "dev": true 1599 | }, 1600 | "is-builtin-module": { 1601 | "version": "1.0.0", 1602 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1603 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1604 | "dev": true, 1605 | "requires": { 1606 | "builtin-modules": "1.1.1" 1607 | } 1608 | }, 1609 | "is-callable": { 1610 | "version": "1.1.3", 1611 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 1612 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", 1613 | "dev": true 1614 | }, 1615 | "is-date-object": { 1616 | "version": "1.0.1", 1617 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 1618 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 1619 | "dev": true 1620 | }, 1621 | "is-finite": { 1622 | "version": "1.0.2", 1623 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1624 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1625 | "dev": true, 1626 | "requires": { 1627 | "number-is-nan": "1.0.1" 1628 | } 1629 | }, 1630 | "is-fullwidth-code-point": { 1631 | "version": "1.0.0", 1632 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1633 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1634 | "dev": true, 1635 | "requires": { 1636 | "number-is-nan": "1.0.1" 1637 | } 1638 | }, 1639 | "is-my-json-valid": { 1640 | "version": "2.16.0", 1641 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", 1642 | "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", 1643 | "dev": true, 1644 | "requires": { 1645 | "generate-function": "2.0.0", 1646 | "generate-object-property": "1.2.0", 1647 | "jsonpointer": "4.0.1", 1648 | "xtend": "4.0.1" 1649 | }, 1650 | "dependencies": { 1651 | "xtend": { 1652 | "version": "4.0.1", 1653 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 1654 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 1655 | "dev": true 1656 | } 1657 | } 1658 | }, 1659 | "is-path-cwd": { 1660 | "version": "1.0.0", 1661 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 1662 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 1663 | "dev": true 1664 | }, 1665 | "is-path-in-cwd": { 1666 | "version": "1.0.0", 1667 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 1668 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 1669 | "dev": true, 1670 | "requires": { 1671 | "is-path-inside": "1.0.0" 1672 | } 1673 | }, 1674 | "is-path-inside": { 1675 | "version": "1.0.0", 1676 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 1677 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 1678 | "dev": true, 1679 | "requires": { 1680 | "path-is-inside": "1.0.2" 1681 | } 1682 | }, 1683 | "is-property": { 1684 | "version": "1.0.2", 1685 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 1686 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", 1687 | "dev": true 1688 | }, 1689 | "is-regex": { 1690 | "version": "1.0.4", 1691 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 1692 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 1693 | "dev": true, 1694 | "requires": { 1695 | "has": "1.0.1" 1696 | } 1697 | }, 1698 | "is-resolvable": { 1699 | "version": "1.0.0", 1700 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 1701 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 1702 | "dev": true, 1703 | "requires": { 1704 | "tryit": "1.0.3" 1705 | } 1706 | }, 1707 | "is-symbol": { 1708 | "version": "1.0.1", 1709 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 1710 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", 1711 | "dev": true 1712 | }, 1713 | "is-typedarray": { 1714 | "version": "1.0.0", 1715 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1716 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1717 | "dev": true 1718 | }, 1719 | "is-utf8": { 1720 | "version": "0.2.1", 1721 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 1722 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 1723 | "dev": true 1724 | }, 1725 | "isarray": { 1726 | "version": "0.0.1", 1727 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1728 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 1729 | "dev": true 1730 | }, 1731 | "isbinaryfile": { 1732 | "version": "3.0.2", 1733 | "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", 1734 | "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", 1735 | "dev": true 1736 | }, 1737 | "isstream": { 1738 | "version": "0.1.2", 1739 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1740 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1741 | "dev": true 1742 | }, 1743 | "js-tokens": { 1744 | "version": "3.0.2", 1745 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1746 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1747 | "dev": true 1748 | }, 1749 | "js-yaml": { 1750 | "version": "3.9.1", 1751 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz", 1752 | "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==", 1753 | "dev": true, 1754 | "requires": { 1755 | "argparse": "1.0.9", 1756 | "esprima": "4.0.0" 1757 | } 1758 | }, 1759 | "jsbn": { 1760 | "version": "0.1.1", 1761 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1762 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1763 | "dev": true, 1764 | "optional": true 1765 | }, 1766 | "json-schema": { 1767 | "version": "0.2.3", 1768 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1769 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 1770 | "dev": true 1771 | }, 1772 | "json-stable-stringify": { 1773 | "version": "1.0.1", 1774 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 1775 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1776 | "dev": true, 1777 | "requires": { 1778 | "jsonify": "0.0.0" 1779 | } 1780 | }, 1781 | "json-stringify-safe": { 1782 | "version": "5.0.1", 1783 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1784 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1785 | "dev": true 1786 | }, 1787 | "jsonfile": { 1788 | "version": "2.4.0", 1789 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 1790 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 1791 | "dev": true, 1792 | "requires": { 1793 | "graceful-fs": "4.1.11" 1794 | } 1795 | }, 1796 | "jsonify": { 1797 | "version": "0.0.0", 1798 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 1799 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 1800 | "dev": true 1801 | }, 1802 | "jsonpointer": { 1803 | "version": "4.0.1", 1804 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 1805 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 1806 | "dev": true 1807 | }, 1808 | "jsprim": { 1809 | "version": "1.4.1", 1810 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1811 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1812 | "dev": true, 1813 | "requires": { 1814 | "assert-plus": "1.0.0", 1815 | "extsprintf": "1.3.0", 1816 | "json-schema": "0.2.3", 1817 | "verror": "1.10.0" 1818 | }, 1819 | "dependencies": { 1820 | "assert-plus": { 1821 | "version": "1.0.0", 1822 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1823 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1824 | "dev": true 1825 | } 1826 | } 1827 | }, 1828 | "jsx-ast-utils": { 1829 | "version": "1.4.1", 1830 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", 1831 | "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", 1832 | "dev": true 1833 | }, 1834 | "klaw": { 1835 | "version": "1.3.1", 1836 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", 1837 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", 1838 | "dev": true, 1839 | "requires": { 1840 | "graceful-fs": "4.1.11" 1841 | } 1842 | }, 1843 | "levn": { 1844 | "version": "0.3.0", 1845 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1846 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1847 | "dev": true, 1848 | "requires": { 1849 | "prelude-ls": "1.1.2", 1850 | "type-check": "0.3.2" 1851 | } 1852 | }, 1853 | "load-json-file": { 1854 | "version": "1.1.0", 1855 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1856 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1857 | "dev": true, 1858 | "requires": { 1859 | "graceful-fs": "4.1.11", 1860 | "parse-json": "2.2.0", 1861 | "pify": "2.3.0", 1862 | "pinkie-promise": "2.0.1", 1863 | "strip-bom": "2.0.0" 1864 | } 1865 | }, 1866 | "locate-path": { 1867 | "version": "2.0.0", 1868 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1869 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1870 | "dev": true, 1871 | "requires": { 1872 | "p-locate": "2.0.0", 1873 | "path-exists": "3.0.0" 1874 | }, 1875 | "dependencies": { 1876 | "path-exists": { 1877 | "version": "3.0.0", 1878 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1879 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1880 | "dev": true 1881 | } 1882 | } 1883 | }, 1884 | "lodash": { 1885 | "version": "4.17.4", 1886 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1887 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1888 | "dev": true 1889 | }, 1890 | "lodash.cond": { 1891 | "version": "4.5.2", 1892 | "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", 1893 | "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", 1894 | "dev": true 1895 | }, 1896 | "lodash.get": { 1897 | "version": "4.4.2", 1898 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 1899 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", 1900 | "dev": true 1901 | }, 1902 | "loud-rejection": { 1903 | "version": "1.6.0", 1904 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 1905 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 1906 | "dev": true, 1907 | "requires": { 1908 | "currently-unhandled": "0.4.1", 1909 | "signal-exit": "3.0.2" 1910 | } 1911 | }, 1912 | "map-obj": { 1913 | "version": "1.0.1", 1914 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1915 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1916 | "dev": true 1917 | }, 1918 | "menubar": { 1919 | "version": "5.2.3", 1920 | "resolved": "https://registry.npmjs.org/menubar/-/menubar-5.2.3.tgz", 1921 | "integrity": "sha1-jydhWXtKDuh+3wSofYqrGqwsROk=", 1922 | "requires": { 1923 | "electron-positioner": "3.0.0", 1924 | "extend": "2.0.1" 1925 | } 1926 | }, 1927 | "meow": { 1928 | "version": "3.7.0", 1929 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1930 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1931 | "dev": true, 1932 | "requires": { 1933 | "camelcase-keys": "2.1.0", 1934 | "decamelize": "1.2.0", 1935 | "loud-rejection": "1.6.0", 1936 | "map-obj": "1.0.1", 1937 | "minimist": "1.2.0", 1938 | "normalize-package-data": "2.4.0", 1939 | "object-assign": "4.1.1", 1940 | "read-pkg-up": "1.0.1", 1941 | "redent": "1.0.0", 1942 | "trim-newlines": "1.0.0" 1943 | } 1944 | }, 1945 | "mime-db": { 1946 | "version": "1.29.0", 1947 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", 1948 | "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", 1949 | "dev": true 1950 | }, 1951 | "mime-types": { 1952 | "version": "2.1.16", 1953 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", 1954 | "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", 1955 | "dev": true, 1956 | "requires": { 1957 | "mime-db": "1.29.0" 1958 | } 1959 | }, 1960 | "minimatch": { 1961 | "version": "3.0.4", 1962 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1963 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1964 | "dev": true, 1965 | "requires": { 1966 | "brace-expansion": "1.1.8" 1967 | } 1968 | }, 1969 | "minimist": { 1970 | "version": "1.2.0", 1971 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1972 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 1973 | "dev": true 1974 | }, 1975 | "mkdirp": { 1976 | "version": "0.5.0", 1977 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", 1978 | "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", 1979 | "dev": true, 1980 | "requires": { 1981 | "minimist": "0.0.8" 1982 | }, 1983 | "dependencies": { 1984 | "minimist": { 1985 | "version": "0.0.8", 1986 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1987 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1988 | "dev": true 1989 | } 1990 | } 1991 | }, 1992 | "mkpath": { 1993 | "version": "0.1.0", 1994 | "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", 1995 | "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=", 1996 | "dev": true 1997 | }, 1998 | "mksnapshot": { 1999 | "version": "0.3.1", 2000 | "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz", 2001 | "integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=", 2002 | "dev": true, 2003 | "requires": { 2004 | "decompress-zip": "0.3.0", 2005 | "fs-extra": "0.26.7", 2006 | "request": "2.81.0" 2007 | }, 2008 | "dependencies": { 2009 | "fs-extra": { 2010 | "version": "0.26.7", 2011 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", 2012 | "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", 2013 | "dev": true, 2014 | "requires": { 2015 | "graceful-fs": "4.1.11", 2016 | "jsonfile": "2.4.0", 2017 | "klaw": "1.3.1", 2018 | "path-is-absolute": "1.0.1", 2019 | "rimraf": "2.6.1" 2020 | } 2021 | } 2022 | } 2023 | }, 2024 | "ms": { 2025 | "version": "2.0.0", 2026 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2027 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2028 | "dev": true 2029 | }, 2030 | "mute-stream": { 2031 | "version": "0.0.5", 2032 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", 2033 | "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", 2034 | "dev": true 2035 | }, 2036 | "natural-compare": { 2037 | "version": "1.4.0", 2038 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2039 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2040 | "dev": true 2041 | }, 2042 | "nopt": { 2043 | "version": "3.0.6", 2044 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 2045 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 2046 | "dev": true, 2047 | "requires": { 2048 | "abbrev": "1.1.0" 2049 | } 2050 | }, 2051 | "normalize-package-data": { 2052 | "version": "2.4.0", 2053 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2054 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2055 | "dev": true, 2056 | "requires": { 2057 | "hosted-git-info": "2.5.0", 2058 | "is-builtin-module": "1.0.0", 2059 | "semver": "5.4.1", 2060 | "validate-npm-package-license": "3.0.1" 2061 | } 2062 | }, 2063 | "nugget": { 2064 | "version": "2.0.1", 2065 | "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", 2066 | "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", 2067 | "dev": true, 2068 | "requires": { 2069 | "debug": "2.6.8", 2070 | "minimist": "1.2.0", 2071 | "pretty-bytes": "1.0.4", 2072 | "progress-stream": "1.2.0", 2073 | "request": "2.81.0", 2074 | "single-line-log": "1.1.2", 2075 | "throttleit": "0.0.2" 2076 | } 2077 | }, 2078 | "number-is-nan": { 2079 | "version": "1.0.1", 2080 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2081 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2082 | "dev": true 2083 | }, 2084 | "oauth-sign": { 2085 | "version": "0.8.2", 2086 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 2087 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 2088 | "dev": true 2089 | }, 2090 | "object-assign": { 2091 | "version": "4.1.1", 2092 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2093 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2094 | "dev": true 2095 | }, 2096 | "object-keys": { 2097 | "version": "0.4.0", 2098 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 2099 | "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", 2100 | "dev": true 2101 | }, 2102 | "object.assign": { 2103 | "version": "4.0.4", 2104 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", 2105 | "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", 2106 | "dev": true, 2107 | "requires": { 2108 | "define-properties": "1.1.2", 2109 | "function-bind": "1.1.0", 2110 | "object-keys": "1.0.11" 2111 | }, 2112 | "dependencies": { 2113 | "object-keys": { 2114 | "version": "1.0.11", 2115 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 2116 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 2117 | "dev": true 2118 | } 2119 | } 2120 | }, 2121 | "once": { 2122 | "version": "1.4.0", 2123 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2124 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2125 | "dev": true, 2126 | "requires": { 2127 | "wrappy": "1.0.2" 2128 | } 2129 | }, 2130 | "onetime": { 2131 | "version": "1.1.0", 2132 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 2133 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 2134 | "dev": true 2135 | }, 2136 | "optionator": { 2137 | "version": "0.8.2", 2138 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 2139 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 2140 | "dev": true, 2141 | "requires": { 2142 | "deep-is": "0.1.3", 2143 | "fast-levenshtein": "2.0.6", 2144 | "levn": "0.3.0", 2145 | "prelude-ls": "1.1.2", 2146 | "type-check": "0.3.2", 2147 | "wordwrap": "1.0.0" 2148 | } 2149 | }, 2150 | "os-homedir": { 2151 | "version": "1.0.2", 2152 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2153 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2154 | "dev": true 2155 | }, 2156 | "os-tmpdir": { 2157 | "version": "1.0.2", 2158 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2159 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2160 | "dev": true 2161 | }, 2162 | "p-limit": { 2163 | "version": "1.1.0", 2164 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 2165 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 2166 | "dev": true 2167 | }, 2168 | "p-locate": { 2169 | "version": "2.0.0", 2170 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 2171 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 2172 | "dev": true, 2173 | "requires": { 2174 | "p-limit": "1.1.0" 2175 | } 2176 | }, 2177 | "parse-json": { 2178 | "version": "2.2.0", 2179 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 2180 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 2181 | "dev": true, 2182 | "requires": { 2183 | "error-ex": "1.3.1" 2184 | } 2185 | }, 2186 | "path-exists": { 2187 | "version": "2.1.0", 2188 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2189 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2190 | "dev": true, 2191 | "requires": { 2192 | "pinkie-promise": "2.0.1" 2193 | } 2194 | }, 2195 | "path-is-absolute": { 2196 | "version": "1.0.1", 2197 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2198 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2199 | "dev": true 2200 | }, 2201 | "path-is-inside": { 2202 | "version": "1.0.2", 2203 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 2204 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 2205 | "dev": true 2206 | }, 2207 | "path-parse": { 2208 | "version": "1.0.5", 2209 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 2210 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 2211 | "dev": true 2212 | }, 2213 | "path-type": { 2214 | "version": "1.1.0", 2215 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 2216 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 2217 | "dev": true, 2218 | "requires": { 2219 | "graceful-fs": "4.1.11", 2220 | "pify": "2.3.0", 2221 | "pinkie-promise": "2.0.1" 2222 | } 2223 | }, 2224 | "pend": { 2225 | "version": "1.2.0", 2226 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 2227 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 2228 | "dev": true 2229 | }, 2230 | "performance-now": { 2231 | "version": "0.2.0", 2232 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", 2233 | "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", 2234 | "dev": true 2235 | }, 2236 | "pify": { 2237 | "version": "2.3.0", 2238 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2239 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2240 | "dev": true 2241 | }, 2242 | "pinkie": { 2243 | "version": "2.0.4", 2244 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2245 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 2246 | "dev": true 2247 | }, 2248 | "pinkie-promise": { 2249 | "version": "2.0.1", 2250 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2251 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2252 | "dev": true, 2253 | "requires": { 2254 | "pinkie": "2.0.4" 2255 | } 2256 | }, 2257 | "pkg-conf": { 2258 | "version": "2.0.0", 2259 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.0.0.tgz", 2260 | "integrity": "sha1-BxyHZQQDvM+5xif1h1G/5HwGcnk=", 2261 | "dev": true, 2262 | "requires": { 2263 | "find-up": "2.1.0", 2264 | "load-json-file": "2.0.0" 2265 | }, 2266 | "dependencies": { 2267 | "find-up": { 2268 | "version": "2.1.0", 2269 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 2270 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 2271 | "dev": true, 2272 | "requires": { 2273 | "locate-path": "2.0.0" 2274 | } 2275 | }, 2276 | "load-json-file": { 2277 | "version": "2.0.0", 2278 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 2279 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 2280 | "dev": true, 2281 | "requires": { 2282 | "graceful-fs": "4.1.11", 2283 | "parse-json": "2.2.0", 2284 | "pify": "2.3.0", 2285 | "strip-bom": "3.0.0" 2286 | } 2287 | }, 2288 | "strip-bom": { 2289 | "version": "3.0.0", 2290 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2291 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2292 | "dev": true 2293 | } 2294 | } 2295 | }, 2296 | "pkg-config": { 2297 | "version": "1.1.1", 2298 | "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", 2299 | "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", 2300 | "dev": true, 2301 | "requires": { 2302 | "debug-log": "1.0.1", 2303 | "find-root": "1.1.0", 2304 | "xtend": "4.0.1" 2305 | }, 2306 | "dependencies": { 2307 | "xtend": { 2308 | "version": "4.0.1", 2309 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2310 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 2311 | "dev": true 2312 | } 2313 | } 2314 | }, 2315 | "pkg-dir": { 2316 | "version": "1.0.0", 2317 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 2318 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 2319 | "dev": true, 2320 | "requires": { 2321 | "find-up": "1.1.2" 2322 | } 2323 | }, 2324 | "pkg-up": { 2325 | "version": "1.0.0", 2326 | "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", 2327 | "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", 2328 | "dev": true, 2329 | "requires": { 2330 | "find-up": "1.1.2" 2331 | } 2332 | }, 2333 | "plist": { 2334 | "version": "2.1.0", 2335 | "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz", 2336 | "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=", 2337 | "dev": true, 2338 | "requires": { 2339 | "base64-js": "1.2.0", 2340 | "xmlbuilder": "8.2.2", 2341 | "xmldom": "0.1.27" 2342 | } 2343 | }, 2344 | "pluralize": { 2345 | "version": "1.2.1", 2346 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", 2347 | "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", 2348 | "dev": true 2349 | }, 2350 | "prelude-ls": { 2351 | "version": "1.1.2", 2352 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 2353 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 2354 | "dev": true 2355 | }, 2356 | "pretty-bytes": { 2357 | "version": "1.0.4", 2358 | "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", 2359 | "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", 2360 | "dev": true, 2361 | "requires": { 2362 | "get-stdin": "4.0.1", 2363 | "meow": "3.7.0" 2364 | } 2365 | }, 2366 | "process-nextick-args": { 2367 | "version": "1.0.7", 2368 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 2369 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 2370 | "dev": true 2371 | }, 2372 | "progress": { 2373 | "version": "1.1.8", 2374 | "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", 2375 | "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", 2376 | "dev": true 2377 | }, 2378 | "progress-stream": { 2379 | "version": "1.2.0", 2380 | "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", 2381 | "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", 2382 | "dev": true, 2383 | "requires": { 2384 | "speedometer": "0.1.4", 2385 | "through2": "0.2.3" 2386 | } 2387 | }, 2388 | "punycode": { 2389 | "version": "1.4.1", 2390 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2391 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2392 | "dev": true 2393 | }, 2394 | "q": { 2395 | "version": "1.5.0", 2396 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", 2397 | "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", 2398 | "dev": true 2399 | }, 2400 | "qs": { 2401 | "version": "6.4.0", 2402 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 2403 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", 2404 | "dev": true 2405 | }, 2406 | "rc": { 2407 | "version": "1.2.1", 2408 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", 2409 | "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", 2410 | "dev": true, 2411 | "requires": { 2412 | "deep-extend": "0.4.2", 2413 | "ini": "1.3.4", 2414 | "minimist": "1.2.0", 2415 | "strip-json-comments": "2.0.1" 2416 | } 2417 | }, 2418 | "rcedit": { 2419 | "version": "0.9.0", 2420 | "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-0.9.0.tgz", 2421 | "integrity": "sha1-ORDfVzRTmeKwMl9KUZAH+J5V7xw=", 2422 | "dev": true 2423 | }, 2424 | "read-pkg": { 2425 | "version": "1.1.0", 2426 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 2427 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 2428 | "dev": true, 2429 | "requires": { 2430 | "load-json-file": "1.1.0", 2431 | "normalize-package-data": "2.4.0", 2432 | "path-type": "1.1.0" 2433 | } 2434 | }, 2435 | "read-pkg-up": { 2436 | "version": "1.0.1", 2437 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 2438 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 2439 | "dev": true, 2440 | "requires": { 2441 | "find-up": "1.1.2", 2442 | "read-pkg": "1.1.0" 2443 | } 2444 | }, 2445 | "readable-stream": { 2446 | "version": "1.1.14", 2447 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 2448 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 2449 | "dev": true, 2450 | "requires": { 2451 | "core-util-is": "1.0.2", 2452 | "inherits": "2.0.3", 2453 | "isarray": "0.0.1", 2454 | "string_decoder": "0.10.31" 2455 | } 2456 | }, 2457 | "readline2": { 2458 | "version": "1.0.1", 2459 | "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", 2460 | "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", 2461 | "dev": true, 2462 | "requires": { 2463 | "code-point-at": "1.1.0", 2464 | "is-fullwidth-code-point": "1.0.0", 2465 | "mute-stream": "0.0.5" 2466 | } 2467 | }, 2468 | "rechoir": { 2469 | "version": "0.6.2", 2470 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 2471 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 2472 | "dev": true, 2473 | "requires": { 2474 | "resolve": "1.4.0" 2475 | } 2476 | }, 2477 | "redent": { 2478 | "version": "1.0.0", 2479 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 2480 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 2481 | "dev": true, 2482 | "requires": { 2483 | "indent-string": "2.1.0", 2484 | "strip-indent": "1.0.1" 2485 | } 2486 | }, 2487 | "repeating": { 2488 | "version": "2.0.1", 2489 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2490 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2491 | "dev": true, 2492 | "requires": { 2493 | "is-finite": "1.0.2" 2494 | } 2495 | }, 2496 | "request": { 2497 | "version": "2.81.0", 2498 | "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", 2499 | "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", 2500 | "dev": true, 2501 | "requires": { 2502 | "aws-sign2": "0.6.0", 2503 | "aws4": "1.6.0", 2504 | "caseless": "0.12.0", 2505 | "combined-stream": "1.0.5", 2506 | "extend": "3.0.1", 2507 | "forever-agent": "0.6.1", 2508 | "form-data": "2.1.4", 2509 | "har-validator": "4.2.1", 2510 | "hawk": "3.1.3", 2511 | "http-signature": "1.1.1", 2512 | "is-typedarray": "1.0.0", 2513 | "isstream": "0.1.2", 2514 | "json-stringify-safe": "5.0.1", 2515 | "mime-types": "2.1.16", 2516 | "oauth-sign": "0.8.2", 2517 | "performance-now": "0.2.0", 2518 | "qs": "6.4.0", 2519 | "safe-buffer": "5.1.1", 2520 | "stringstream": "0.0.5", 2521 | "tough-cookie": "2.3.2", 2522 | "tunnel-agent": "0.6.0", 2523 | "uuid": "3.1.0" 2524 | }, 2525 | "dependencies": { 2526 | "extend": { 2527 | "version": "3.0.1", 2528 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 2529 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 2530 | "dev": true 2531 | } 2532 | } 2533 | }, 2534 | "require-uncached": { 2535 | "version": "1.0.3", 2536 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 2537 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 2538 | "dev": true, 2539 | "requires": { 2540 | "caller-path": "0.1.0", 2541 | "resolve-from": "1.0.1" 2542 | } 2543 | }, 2544 | "resolve": { 2545 | "version": "1.4.0", 2546 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", 2547 | "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", 2548 | "dev": true, 2549 | "requires": { 2550 | "path-parse": "1.0.5" 2551 | } 2552 | }, 2553 | "resolve-from": { 2554 | "version": "1.0.1", 2555 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 2556 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 2557 | "dev": true 2558 | }, 2559 | "restore-cursor": { 2560 | "version": "1.0.1", 2561 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 2562 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 2563 | "dev": true, 2564 | "requires": { 2565 | "exit-hook": "1.1.1", 2566 | "onetime": "1.1.0" 2567 | } 2568 | }, 2569 | "rimraf": { 2570 | "version": "2.6.1", 2571 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 2572 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 2573 | "dev": true, 2574 | "requires": { 2575 | "glob": "7.1.2" 2576 | } 2577 | }, 2578 | "run-async": { 2579 | "version": "0.1.0", 2580 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", 2581 | "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", 2582 | "dev": true, 2583 | "requires": { 2584 | "once": "1.4.0" 2585 | } 2586 | }, 2587 | "run-parallel": { 2588 | "version": "1.1.6", 2589 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz", 2590 | "integrity": "sha1-KQA8miFj4B4tLfyQV18sbB1hoDk=", 2591 | "dev": true 2592 | }, 2593 | "run-series": { 2594 | "version": "1.1.4", 2595 | "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz", 2596 | "integrity": "sha1-iac93F51ye+KtjIMChYA1qQRebk=", 2597 | "dev": true 2598 | }, 2599 | "rx-lite": { 2600 | "version": "3.1.2", 2601 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", 2602 | "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", 2603 | "dev": true 2604 | }, 2605 | "safe-buffer": { 2606 | "version": "5.1.1", 2607 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2608 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 2609 | "dev": true 2610 | }, 2611 | "sanitize-filename": { 2612 | "version": "1.6.1", 2613 | "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", 2614 | "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", 2615 | "dev": true, 2616 | "requires": { 2617 | "truncate-utf8-bytes": "1.0.2" 2618 | } 2619 | }, 2620 | "semver": { 2621 | "version": "5.4.1", 2622 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 2623 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", 2624 | "dev": true 2625 | }, 2626 | "shelljs": { 2627 | "version": "0.7.8", 2628 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", 2629 | "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", 2630 | "dev": true, 2631 | "requires": { 2632 | "glob": "7.1.2", 2633 | "interpret": "1.0.3", 2634 | "rechoir": "0.6.2" 2635 | } 2636 | }, 2637 | "signal-exit": { 2638 | "version": "3.0.2", 2639 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2640 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2641 | "dev": true 2642 | }, 2643 | "single-line-log": { 2644 | "version": "1.1.2", 2645 | "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", 2646 | "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", 2647 | "dev": true, 2648 | "requires": { 2649 | "string-width": "1.0.2" 2650 | } 2651 | }, 2652 | "slice-ansi": { 2653 | "version": "0.0.4", 2654 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 2655 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 2656 | "dev": true 2657 | }, 2658 | "sntp": { 2659 | "version": "1.0.9", 2660 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", 2661 | "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", 2662 | "dev": true, 2663 | "requires": { 2664 | "hoek": "2.16.3" 2665 | } 2666 | }, 2667 | "spdx-correct": { 2668 | "version": "1.0.2", 2669 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 2670 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 2671 | "dev": true, 2672 | "requires": { 2673 | "spdx-license-ids": "1.2.2" 2674 | } 2675 | }, 2676 | "spdx-expression-parse": { 2677 | "version": "1.0.4", 2678 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 2679 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 2680 | "dev": true 2681 | }, 2682 | "spdx-license-ids": { 2683 | "version": "1.2.2", 2684 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 2685 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 2686 | "dev": true 2687 | }, 2688 | "speedometer": { 2689 | "version": "0.1.4", 2690 | "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", 2691 | "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", 2692 | "dev": true 2693 | }, 2694 | "sprintf-js": { 2695 | "version": "1.0.3", 2696 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2697 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2698 | "dev": true 2699 | }, 2700 | "sshpk": { 2701 | "version": "1.13.1", 2702 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 2703 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 2704 | "dev": true, 2705 | "requires": { 2706 | "asn1": "0.2.3", 2707 | "assert-plus": "1.0.0", 2708 | "bcrypt-pbkdf": "1.0.1", 2709 | "dashdash": "1.14.1", 2710 | "ecc-jsbn": "0.1.1", 2711 | "getpass": "0.1.7", 2712 | "jsbn": "0.1.1", 2713 | "tweetnacl": "0.14.5" 2714 | }, 2715 | "dependencies": { 2716 | "assert-plus": { 2717 | "version": "1.0.0", 2718 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2719 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2720 | "dev": true 2721 | } 2722 | } 2723 | }, 2724 | "standard": { 2725 | "version": "10.0.3", 2726 | "resolved": "https://registry.npmjs.org/standard/-/standard-10.0.3.tgz", 2727 | "integrity": "sha512-JURZ+85ExKLQULckDFijdX5WHzN6RC7fgiZNSV4jFQVo+3tPoQGHyBrGekye/yf0aOfb4210EM5qPNlc2cRh4w==", 2728 | "dev": true, 2729 | "requires": { 2730 | "eslint": "3.19.0", 2731 | "eslint-config-standard": "10.2.1", 2732 | "eslint-config-standard-jsx": "4.0.2", 2733 | "eslint-plugin-import": "2.2.0", 2734 | "eslint-plugin-node": "4.2.3", 2735 | "eslint-plugin-promise": "3.5.0", 2736 | "eslint-plugin-react": "6.10.3", 2737 | "eslint-plugin-standard": "3.0.1", 2738 | "standard-engine": "7.0.0" 2739 | } 2740 | }, 2741 | "standard-engine": { 2742 | "version": "7.0.0", 2743 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-7.0.0.tgz", 2744 | "integrity": "sha1-67d7nI/CyBZf+jU72Rug3/Qa9pA=", 2745 | "dev": true, 2746 | "requires": { 2747 | "deglob": "2.1.0", 2748 | "get-stdin": "5.0.1", 2749 | "minimist": "1.2.0", 2750 | "pkg-conf": "2.0.0" 2751 | }, 2752 | "dependencies": { 2753 | "get-stdin": { 2754 | "version": "5.0.1", 2755 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", 2756 | "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", 2757 | "dev": true 2758 | } 2759 | } 2760 | }, 2761 | "string-width": { 2762 | "version": "1.0.2", 2763 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2764 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2765 | "dev": true, 2766 | "requires": { 2767 | "code-point-at": "1.1.0", 2768 | "is-fullwidth-code-point": "1.0.0", 2769 | "strip-ansi": "3.0.1" 2770 | } 2771 | }, 2772 | "string_decoder": { 2773 | "version": "0.10.31", 2774 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2775 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 2776 | "dev": true 2777 | }, 2778 | "stringstream": { 2779 | "version": "0.0.5", 2780 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2781 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 2782 | "dev": true 2783 | }, 2784 | "strip-ansi": { 2785 | "version": "3.0.1", 2786 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2787 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2788 | "dev": true, 2789 | "requires": { 2790 | "ansi-regex": "2.1.1" 2791 | } 2792 | }, 2793 | "strip-bom": { 2794 | "version": "2.0.0", 2795 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 2796 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2797 | "dev": true, 2798 | "requires": { 2799 | "is-utf8": "0.2.1" 2800 | } 2801 | }, 2802 | "strip-indent": { 2803 | "version": "1.0.1", 2804 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 2805 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 2806 | "dev": true, 2807 | "requires": { 2808 | "get-stdin": "4.0.1" 2809 | } 2810 | }, 2811 | "strip-json-comments": { 2812 | "version": "2.0.1", 2813 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2814 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2815 | "dev": true 2816 | }, 2817 | "sumchecker": { 2818 | "version": "1.3.1", 2819 | "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", 2820 | "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", 2821 | "dev": true, 2822 | "requires": { 2823 | "debug": "2.6.8", 2824 | "es6-promise": "4.1.1" 2825 | } 2826 | }, 2827 | "supports-color": { 2828 | "version": "2.0.0", 2829 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2830 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2831 | "dev": true 2832 | }, 2833 | "table": { 2834 | "version": "3.8.3", 2835 | "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", 2836 | "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", 2837 | "dev": true, 2838 | "requires": { 2839 | "ajv": "4.11.8", 2840 | "ajv-keywords": "1.5.1", 2841 | "chalk": "1.1.3", 2842 | "lodash": "4.17.4", 2843 | "slice-ansi": "0.0.4", 2844 | "string-width": "2.1.1" 2845 | }, 2846 | "dependencies": { 2847 | "ansi-regex": { 2848 | "version": "3.0.0", 2849 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2850 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2851 | "dev": true 2852 | }, 2853 | "is-fullwidth-code-point": { 2854 | "version": "2.0.0", 2855 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2856 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2857 | "dev": true 2858 | }, 2859 | "string-width": { 2860 | "version": "2.1.1", 2861 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2862 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2863 | "dev": true, 2864 | "requires": { 2865 | "is-fullwidth-code-point": "2.0.0", 2866 | "strip-ansi": "4.0.0" 2867 | } 2868 | }, 2869 | "strip-ansi": { 2870 | "version": "4.0.0", 2871 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2872 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2873 | "dev": true, 2874 | "requires": { 2875 | "ansi-regex": "3.0.0" 2876 | } 2877 | } 2878 | } 2879 | }, 2880 | "text-table": { 2881 | "version": "0.2.0", 2882 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2883 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2884 | "dev": true 2885 | }, 2886 | "throttleit": { 2887 | "version": "0.0.2", 2888 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", 2889 | "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", 2890 | "dev": true 2891 | }, 2892 | "through": { 2893 | "version": "2.3.8", 2894 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2895 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2896 | "dev": true 2897 | }, 2898 | "through2": { 2899 | "version": "0.2.3", 2900 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", 2901 | "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", 2902 | "dev": true, 2903 | "requires": { 2904 | "readable-stream": "1.1.14", 2905 | "xtend": "2.1.2" 2906 | } 2907 | }, 2908 | "tmp": { 2909 | "version": "0.0.28", 2910 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", 2911 | "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=", 2912 | "dev": true, 2913 | "requires": { 2914 | "os-tmpdir": "1.0.2" 2915 | } 2916 | }, 2917 | "touch": { 2918 | "version": "0.0.3", 2919 | "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", 2920 | "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", 2921 | "dev": true, 2922 | "requires": { 2923 | "nopt": "1.0.10" 2924 | }, 2925 | "dependencies": { 2926 | "nopt": { 2927 | "version": "1.0.10", 2928 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 2929 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 2930 | "dev": true, 2931 | "requires": { 2932 | "abbrev": "1.1.0" 2933 | } 2934 | } 2935 | } 2936 | }, 2937 | "tough-cookie": { 2938 | "version": "2.3.2", 2939 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", 2940 | "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", 2941 | "dev": true, 2942 | "requires": { 2943 | "punycode": "1.4.1" 2944 | } 2945 | }, 2946 | "traverse": { 2947 | "version": "0.3.9", 2948 | "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", 2949 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", 2950 | "dev": true 2951 | }, 2952 | "trim-newlines": { 2953 | "version": "1.0.0", 2954 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 2955 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 2956 | "dev": true 2957 | }, 2958 | "truncate-utf8-bytes": { 2959 | "version": "1.0.2", 2960 | "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", 2961 | "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", 2962 | "dev": true, 2963 | "requires": { 2964 | "utf8-byte-length": "1.0.4" 2965 | } 2966 | }, 2967 | "tryit": { 2968 | "version": "1.0.3", 2969 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 2970 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 2971 | "dev": true 2972 | }, 2973 | "tunnel-agent": { 2974 | "version": "0.6.0", 2975 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2976 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2977 | "dev": true, 2978 | "requires": { 2979 | "safe-buffer": "5.1.1" 2980 | } 2981 | }, 2982 | "tweetnacl": { 2983 | "version": "0.14.5", 2984 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2985 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2986 | "dev": true, 2987 | "optional": true 2988 | }, 2989 | "type-check": { 2990 | "version": "0.3.2", 2991 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2992 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2993 | "dev": true, 2994 | "requires": { 2995 | "prelude-ls": "1.1.2" 2996 | } 2997 | }, 2998 | "typedarray": { 2999 | "version": "0.0.6", 3000 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3001 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3002 | "dev": true 3003 | }, 3004 | "uniq": { 3005 | "version": "1.0.1", 3006 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", 3007 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", 3008 | "dev": true 3009 | }, 3010 | "universalify": { 3011 | "version": "0.1.1", 3012 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", 3013 | "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", 3014 | "dev": true 3015 | }, 3016 | "user-home": { 3017 | "version": "2.0.0", 3018 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", 3019 | "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", 3020 | "dev": true, 3021 | "requires": { 3022 | "os-homedir": "1.0.2" 3023 | } 3024 | }, 3025 | "utf8-byte-length": { 3026 | "version": "1.0.4", 3027 | "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", 3028 | "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", 3029 | "dev": true 3030 | }, 3031 | "util-deprecate": { 3032 | "version": "1.0.2", 3033 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3034 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3035 | "dev": true 3036 | }, 3037 | "uuid": { 3038 | "version": "3.1.0", 3039 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 3040 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 3041 | "dev": true 3042 | }, 3043 | "validate-npm-package-license": { 3044 | "version": "3.0.1", 3045 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 3046 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 3047 | "dev": true, 3048 | "requires": { 3049 | "spdx-correct": "1.0.2", 3050 | "spdx-expression-parse": "1.0.4" 3051 | } 3052 | }, 3053 | "verror": { 3054 | "version": "1.10.0", 3055 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 3056 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 3057 | "dev": true, 3058 | "requires": { 3059 | "assert-plus": "1.0.0", 3060 | "core-util-is": "1.0.2", 3061 | "extsprintf": "1.3.0" 3062 | }, 3063 | "dependencies": { 3064 | "assert-plus": { 3065 | "version": "1.0.0", 3066 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 3067 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 3068 | "dev": true 3069 | } 3070 | } 3071 | }, 3072 | "wordwrap": { 3073 | "version": "1.0.0", 3074 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 3075 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 3076 | "dev": true 3077 | }, 3078 | "wrappy": { 3079 | "version": "1.0.2", 3080 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3081 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 3082 | "dev": true 3083 | }, 3084 | "write": { 3085 | "version": "0.2.1", 3086 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 3087 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 3088 | "dev": true, 3089 | "requires": { 3090 | "mkdirp": "0.5.1" 3091 | }, 3092 | "dependencies": { 3093 | "minimist": { 3094 | "version": "0.0.8", 3095 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 3096 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 3097 | "dev": true 3098 | }, 3099 | "mkdirp": { 3100 | "version": "0.5.1", 3101 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 3102 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 3103 | "dev": true, 3104 | "requires": { 3105 | "minimist": "0.0.8" 3106 | } 3107 | } 3108 | } 3109 | }, 3110 | "xmlbuilder": { 3111 | "version": "8.2.2", 3112 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", 3113 | "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", 3114 | "dev": true 3115 | }, 3116 | "xmldom": { 3117 | "version": "0.1.27", 3118 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", 3119 | "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", 3120 | "dev": true 3121 | }, 3122 | "xtend": { 3123 | "version": "2.1.2", 3124 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 3125 | "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", 3126 | "dev": true, 3127 | "requires": { 3128 | "object-keys": "0.4.0" 3129 | } 3130 | }, 3131 | "yauzl": { 3132 | "version": "2.4.1", 3133 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", 3134 | "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", 3135 | "dev": true, 3136 | "requires": { 3137 | "fd-slicer": "1.0.1" 3138 | } 3139 | } 3140 | } 3141 | } 3142 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mojibar", 3 | "version": "2.6.2", 4 | "description": "A menubar app adaptation of Emoji searcher.", 5 | "main": "index.js", 6 | "dependencies": { 7 | "electron-is-dev": "^0.1.2", 8 | "emojilib": "2.2.3", 9 | "menubar": "^5.1.0" 10 | }, 11 | "devDependencies": { 12 | "electron": "^1.6.0", 13 | "electron-packager": "^8.0.0", 14 | "standard": "^10.0.2" 15 | }, 16 | "scripts": { 17 | "start": "electron .", 18 | "build": "electron-packager . Mojibar --platform=darwin --arch=x64 --overwrite --icon=mojibar", 19 | "build:linux": "electron-packager . Mojibar --platform=linux --arch=x64 --overwrite --icon=mojibar", 20 | "test": "standard index.js app/search.js app/settings.js" 21 | }, 22 | "repository": { 23 | "type": "git", 24 | "url": "git+https://github.com/muan/mojibar.git" 25 | }, 26 | "author": "Mu-An Chiou ", 27 | "license": "MIT", 28 | "bugs": { 29 | "url": "https://github.com/muan/mojibar/issues" 30 | }, 31 | "homepage": "https://github.com/muan/mojibar#readme" 32 | } 33 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Mojibar [![Travis CI build status](https://img.shields.io/travis/muan/mojibar.svg)](https://travis-ci.org/muan/mojibar) [![JS Standard Style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard) [![Greenkeeper badge](https://badges.greenkeeper.io/muan/mojibar.svg)](https://greenkeeper.io/) 2 | 3 | A menubar app adaptation of [Emoji searcher](http://emoji.muan.co). 4 | 5 | ![screenshot](https://cloud.githubusercontent.com/assets/1153134/12583324/7756a38a-c485-11e5-9388-3b5c61743905.gif) 6 | 7 | ## Install 8 | 9 | ### OSX 10 | 11 | #### :triangular_flag_on_post: Download and drag 12 | 13 | [Download the latest version for Mac on the releases page](https://github.com/muan/mojibar/releases) (and drag into your apps folder.) 14 | 15 | #### :triangular_flag_on_post: Install using [Homebrew Cask](https://caskroom.github.io/) 16 | 17 | ```bash 18 | # Make sure homebrew knows about the latest mojibar 19 | $ brew update && brew upgrade brew-cask 20 | # Install mojibar 21 | $ brew cask install mojibar 22 | ``` 23 | 24 | After installation, find Mojibar in your apps folder or search Mojibar in spotlight. Mojibar will appear in your tray at the top right corner of your screen. 25 | 26 | To upgrade mojibar installed from brew-cask to a newer version: 27 | 28 | ``` 29 | $ brew cask reinstall mojibar 30 | ``` 31 | 32 | ### Linux 33 | 34 | #### :triangular_flag_on_post: Download and drag 35 | 36 | [Download the latest version for Linux on the releases page](https://github.com/muan/mojibar/releases) (and drag into your apps folder.) 37 | 38 | You can use it without install any font, but the not all emoji will work, to get all emoji list you can try these approach: 39 | 40 | 1. **Color** – Follow [these instructions](http://stdio.tumblr.com/post/114082931782) 41 | 1. **Black and White** – Download this [emoji font](https://github.com/eosrei/emojione-color-font) 42 | 43 | ## Usage 44 | 45 | control + shift + space
46 | Open app. 47 | 48 | command/control + ,
49 | Open preference (while window is open). 50 | 51 | 👆/👇/👈/👉
52 | Navigate between emojis. 53 | 54 | enter
55 | Copy emoji unicode char and exit. For example: `💩`. 56 | 57 | shift + enter
58 | Copy emoji code and exit. For example: `:poop:`. 59 | 60 | space
61 | Next page. 62 | 63 | shift + space
64 | Previous page. 65 | 66 | /
67 | Jump to the search field. 68 | 69 | esc
70 | Exit. 71 | 72 | command/control + q
73 | Quit Mojibar (while window is open). 74 | 75 | ## Build 76 | 77 | :construction: 78 | 79 | ``` 80 | $ git clone https://github.com/muan/mojibar.git 81 | $ cd mojibar 82 | $ npm install 83 | $ npm start 84 | ``` 85 | 86 | ## Built with 87 | 88 | - [maxogden/menubar](https://github.com/maxogden/menubar) 89 | - [muan/emojilib](https://github.com/muan/emojilib) 90 | 91 | ## :heart: 92 | --------------------------------------------------------------------------------