diff --git a/README.md b/README.md index 1b2bf50d..e99d67d0 100644 --- a/README.md +++ b/README.md @@ -150,8 +150,8 @@ npm run localsetup Parameters: - `--build` Rebuilds app before installation + - `--preview` Build "Preview" app - `--debug` Start with enabled development tools - - `--beta` Build Beta application version #### *build* @@ -168,7 +168,7 @@ Parameters: - `--macos` Build & Package for macOS - `--windows` Build & Package for Windows - `--linux` Build & Package for Linux - - `--beta` Build Beta application version + - `--preview` Build "Preview" app @@ -228,5 +228,5 @@ MIT ## Author -[sidneys](http://sidneys.github.io) 2018 +[sidneys](http://sidneys.github.io) 2019 diff --git a/RELEASENOTES.json b/RELEASENOTES.json index 43c9566d..3924e158 100644 --- a/RELEASENOTES.json +++ b/RELEASENOTES.json @@ -1,4 +1,28 @@ { + "8.9.5": { + "🍾 features": [ + "implements `Web Audio`-based audio pipeline, superseding usages of `AudioElement`, fixing delayed/skipped notification sounds when running in the background", + "adds `PB for Desktop Preview` app build, allowing for installation of prerelease builds side-by-side with the regular app", + "optimizes rendering / backgrounding strategy for continuous background usage" + ], + "🚨 fixes": [ + "adds fix for `electron/electron` upstream issue: [BrowserWindow.getAllWindows doesn't return windows that inherit BrowserWindow](https://github.com/electron/electron/issues/15456)", + "adds fix for `goldfire/howler.js` upstream issue: [Chrome 52 audio can't be heard after _autoResume](https://github.com/goldfire/howler.js/issues/593)" + ], + "💎 improvements": [ + "upgrades `Favicon Finder` backend to latest upstream revision: https://pb-for-desktop-besticon.herokuapp.com", + "consolidated format of all enclosed audio assets (44.1 kHz, Wave/PCM, 16 bit, 2 channels)" + ], + "📒 documentation": [ + "updates README", + "extends Pushbullet TypeScript declaration file" + ], + "👷 internals": [ + "extends development & deployment toolchain", + "upgrades internal modules", + "upgrades external `node_modules`" + ] + }, "8.8.8": { "🚨 fixes": [ "fixes intermittent rendering of Dock Icon Count badge when disabled ", diff --git a/app/scripts/main/components/application.js b/app/scripts/main/components/application.js index 76c47987..ffc0d47a 100755 --- a/app/scripts/main/components/application.js +++ b/app/scripts/main/components/application.js @@ -17,35 +17,6 @@ const path = require('path') const electron = require('electron') const { app, BrowserWindow, systemPreferences } = electron -/** - * Modules - * External - * @constant - */ -const appRootPath = require('app-root-path') -const logger = require('@sidneys/logger')({ write: true }) -const platformTools = require('@sidneys/platform-tools') -/* eslint-disable no-unused-vars */ -const debugService = require('@sidneys/electron-debug-service') -const updaterService = require('@sidneys/electron-updater-service') -const powerService = require('@sidneys/electron-power-service') -/* eslint-enable */ - -/** - * Modules - * Configuration - */ -appRootPath.setPath(path.join(__dirname, '..', '..', '..', '..')) - -/** - * Modules - * Internal - * @constant - */ -/* eslint-disable no-unused-vars */ -const globals = require(path.join(appRootPath['path'], 'app', 'scripts', 'main', 'components', 'globals')) -/* eslint-enable */ - /** * HOTFIX @@ -56,46 +27,79 @@ app.disableHardwareAcceleration() /** * HOTFIX - * EventEmitter Memory Leak - * @see {@link https://stackoverflow.com/questions/9768444/possible-eventemitter-memory-leak-detected} + * Chrome 66 Autoplay Policy + * @see {@link https://github.com/electron/electron/issues/13525} */ -events.EventEmitter.defaultMaxListeners = Infinity +app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required') /** * HOTFIX - * Chrome 66 Autoplay Policy - * @see {@link https://github.com/electron/electron/issues/13525} + * Audio Playback + * @see {@link https://github.com/electron/electron/issues/12048} */ -app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required') +// app.commandLine.appendSwitch('disable-renderer-backgrounding') /** * HOTFIX * Electron Security Warning - * @see {@link https://stackoverflow.com/questions/48854265/why-do-i-see-an-electron-security-warning-after-updating-my-electron-project-t} + * @see {@link https://stackoverflow.com/questions/48854265} */ process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true' /** * HOTFIX - * Notification API not working (Windows) + * EventEmitter Memory Leak + * @see {@link https://stackoverflow.com/questions/9768444} + */ +events.EventEmitter.defaultMaxListeners = Infinity + +/** + * HOTFIX (Windows) + * Notification API not working * @see {@link https://github.com/electron/electron/issues/10864} */ -if (platformTools.isWindows) { - app.setAppUserModelId(global.manifest.appId) -} +process.platform === 'win32' ? app.setAppUserModelId(global.manifest.appId) : void 0 /** - * HOTFIX - * Missing App Indicator (Linux) + * HOTFIX (Linux) + * Missing App Indicator * @see {@link https://github.com/electron/electron/issues/10427} */ -if (platformTools.isLinux) { +if (process.platform === 'linux') { if (process.env.XDG_DATA_DIRS.includes('plasma')) { process.env.XDG_CURRENT_DESKTOP = 'Unity' } } +/** + * Modules + * External + * @constant + */ +const appRootPath = require('app-root-path') +const logger = require('@sidneys/logger')({ write: true }) +/* eslint-disable no-unused-vars */ +const debugService = require('@sidneys/electron-debug-service') +const updaterService = require('@sidneys/electron-updater-service') +const powerService = require('@sidneys/electron-power-service') +/* eslint-enable */ + +/** + * Modules + * Configuration + */ +appRootPath.setPath(path.join(__dirname, '..', '..', '..', '..')) + +/** + * Modules + * Internal + * @constant + */ +/* eslint-disable no-unused-vars */ +const globals = require(path.join(appRootPath['path'], 'app', 'scripts', 'main', 'components', 'globals')) +/* eslint-enable */ + /** * Modules * Internal diff --git a/app/scripts/main/components/globals.js b/app/scripts/main/components/globals.js index ff06f6ce..5c75abf8 100755 --- a/app/scripts/main/components/globals.js +++ b/app/scripts/main/components/globals.js @@ -23,9 +23,6 @@ const appRootPath = require('app-root-path') const packageJson = require(path.join(appRootPath['path'], 'package.json')) -/** @namespace global */ - - /** * Manifest * @global diff --git a/app/scripts/main/services/snoozer-service.js b/app/scripts/main/services/snoozer-service.js index 59b12e1c..116d2396 100644 --- a/app/scripts/main/services/snoozer-service.js +++ b/app/scripts/main/services/snoozer-service.js @@ -29,6 +29,9 @@ const notificationProvider = require('@sidneys/electron-notification-provider') * @namespace Electron */ class SnoozerService { + /** + * @constructor + */ constructor() { this.snoozeUntil = 0 } diff --git a/app/scripts/main/windows/main-window.js b/app/scripts/main/windows/main-window.js index 7afdf9ee..64044f81 100644 --- a/app/scripts/main/windows/main-window.js +++ b/app/scripts/main/windows/main-window.js @@ -45,18 +45,21 @@ const windowUrl = url.format({ protocol: 'file:', pathname: windowHtml }) /** * @class MainWindow - * @extends Electron.BrowserWindow + * @property {Electron.BrowserWindow} browserWindow * @namespace Electron */ -class MainWindow extends BrowserWindow { +class MainWindow { + /** + * @constructor + */ constructor() { - super({ + // Create BrowserWindow + this.browserWindow = new BrowserWindow({ acceptFirstMouse: true, autoHideMenuBar: true, // Hotfix: Window Translucency, https://github.com//electron/electron/issues/2170 // backgroundColor: platformTools.isMacOS ? void 0 : '#95A5A6', backgroundColor: '#303030', - backgroundThrottling: false, frame: true, hasShadow: platformTools.isMacOS ? true : void 0, height: void 0, @@ -78,10 +81,11 @@ class MainWindow extends BrowserWindow { experimentalCanvasFeatures: true, experimentalFeatures: true, nodeIntegration: true, + nodeIntegrationInWorker: true, partition: 'persist:app', scrollBounce: platformTools.isMacOS ? true : void 0, webaudio: true, - webgl: false, + webgl: true, webSecurity: false }, width: void 0, @@ -89,6 +93,7 @@ class MainWindow extends BrowserWindow { y: void 0 }) + // Init this.init() } @@ -99,21 +104,21 @@ class MainWindow extends BrowserWindow { logger.debug('init') /** - * @listens MainWindow#close + * @listens Electron.BrowserWindow#close */ - this.on('close', (event) => { + this.browserWindow.on('close', (event) => { logger.debug('AppWindow#close') if (global.state.isQuitting === false) { event.preventDefault() - this.hide() + this.browserWindow.hide() } }) /** - * @listens MainWindow:will-navigate + * @listens Electron.webContents:will-navigate */ - this.webContents.on('will-navigate', (event, url) => { + this.browserWindow.webContents.on('will-navigate', (event, url) => { logger.debug('AppWindow.webContents#will-navigate') if (url) { @@ -123,7 +128,7 @@ class MainWindow extends BrowserWindow { }) - this.loadURL(windowUrl) + this.browserWindow.loadURL(windowUrl) } } @@ -136,7 +141,8 @@ let init = () => { // Ensure single instance if (!global.mainWindow) { - global.mainWindow = new MainWindow() + const mainWindow = new MainWindow() + global.mainWindow = mainWindow.browserWindow } } diff --git a/app/scripts/renderer/pushbullet/clipboard.js b/app/scripts/renderer/pushbullet/clipboard.js index 2aa41b27..c0565f35 100644 --- a/app/scripts/renderer/pushbullet/clipboard.js +++ b/app/scripts/renderer/pushbullet/clipboard.js @@ -38,11 +38,6 @@ const configurationManager = remote.require(path.join(appRootPath, 'app', 'scrip */ const defaultInterval = 2000 - -/** @namespace pb.account.pro */ -/** @namespace pb.e2e.encrypt */ - - /** * Retrieve PushbulletClipboardEnabled * @return {Boolean} - Enabled diff --git a/app/scripts/renderer/pushbullet/push.js b/app/scripts/renderer/pushbullet/push.js index 7b9dba51..f779b385 100644 --- a/app/scripts/renderer/pushbullet/push.js +++ b/app/scripts/renderer/pushbullet/push.js @@ -27,7 +27,8 @@ const appRootPath = require('app-root-path')['path'] const dataUriToBuffer = require('data-uri-to-buffer') const fileType = require('file-type') const fileUrl = require('file-url') -const getYouTubeID = require('get-youtube-id') +const getYoutubeId = require('get-youtube-id') +const { Howl, Howler } = require('howler') const icojs = require('icojs') const imageDownloader = require('image-downloader') const isDebug = require('@sidneys/is-env')('debug') @@ -40,6 +41,7 @@ const shortid = require('shortid') const throttledQueue = require('throttled-queue') const _ = require('lodash') + /** * Modules * Internal @@ -59,36 +61,37 @@ const appTemporaryDirectory = (isDebug && process.defaultApp) ? appRootPath : os /** - * Urls + * General Defaults * @constant + * @default */ -const besticonUrl = 'https://pb-for-desktop-besticon.herokuapp.com' -const pushbulletUrl = 'https://www.pushbullet.com' -const youtubeUrl = 'https://img.youtube.com' +const recentPushesAmount = 5 /** - * Defaults + * URL Defaults * @constant * @default */ -const recentPushesAmount = 5 -const besticonIconSize = 120 -const notificationInterval = 1000 -const notificationImageSize = 88 +const faviconEndpoint = 'https://pb-for-desktop-besticon.herokuapp.com/icon?fallback_icon_color=4AB367&formats=ico,png&size=1..120..200&url=' +const pushbulletIconEndpoint = 'https://www.pushbullet.com/img/deviceicons/' +const youtubeThumbnailEndpoint = 'https://img.youtube.com/vi/' + /** - * Notifications Queue + * Notifications Defaults + * @constant + * @default * @global */ -let queueNotification = throttledQueue(1, notificationInterval, true) - +const notificationsInterval = 2000 +const notificationsIconWidth = 88 /** - * Global Settings + * Notifications Globals + * @constant * @global */ -let lastNotificationTimestamp -let audioElement +const notificationQueue = throttledQueue(1, notificationsInterval, true) /** @@ -154,36 +157,56 @@ let updateBadge = (total) => { } /** - * Play Sound + * Play Sound File + * @param {Function=} callback - Callback */ -let playSound = () => { - logger.debug('playSound') +let playSoundFile = (callback = () => {}) => { + logger.debug('playSoundFile') - // Retrieve State + // Retrieve pushbulletSoundEnabled const pushbulletSoundEnabled = retrievePushbulletSoundEnabled() // Skip if not enabled if (!pushbulletSoundEnabled) { return } - // Retrieve File, Volume + // Retrieve pushbulletSoundFile, pushbulletSoundVolume const pushbulletSoundFile = retrievePushbulletSoundFile() const pushbulletSoundVolume = retrievePushbulletSoundVolume() - // Create File URL + // Create file:// URL const url = fileUrl(pushbulletSoundFile) - // Setup Audio Element - audioElement = new Audio(url) - audioElement.volume = pushbulletSoundVolume + // Create Sound + const sound = new Howl({ + volume: pushbulletSoundVolume, + src: [ url ], + autoplay: true, + preload: true, + loop: false + }) - // Errorhandling - audioElement.onerror = () => { - logger.error('playSound', url, audioElement.error.message, audioElement.error.code) - } + /** @listens sound:Event#loaderror */ + sound.on('loaderror', (id, error) => { + logger.error('playSoundFile', 'sound#loaderror', id, error) - // Play - audioElement.play().then(() => { - logger.debug('playSound', url) + // Callback + callback(error) + }) + + /** @listens sound:Event#playerror */ + sound.on('playerror', (id, error) => { + logger.error('playSoundFile', 'sound#playerror', id, error) + + // Callback + callback(error) + }) + + /** @listens sound:Event#end */ + sound.on('end', (id) => { + logger.debug('playSoundFile', 'sound#end', id) + + // Callback + callback() }) } @@ -232,7 +255,7 @@ let generateNotificationImage = (push) => { for (let device of window.pb.api.devices.all) { if (device.iden === deviceId) { - iconDevice = `${pushbulletUrl}/img/deviceicons/${device.icon}.png` + iconDevice = `${pushbulletIconEndpoint}${device.icon}.png` } } @@ -240,7 +263,7 @@ let generateNotificationImage = (push) => { let iconSms if (push.type === 'sms_changed') { - iconSms = `${pushbulletUrl}/img/deviceicons/phone.png` + iconSms = `${pushbulletIconEndpoint}phone.png` } // Chat Image @@ -262,12 +285,14 @@ let generateNotificationImage = (push) => { let iconLink if (push.type === 'link') { - // Handle YouTube URLs (Thumbnail) - if (getYouTubeID(push.url)) { - iconLink = `${youtubeUrl}/vi/${getYouTubeID(push['url'])}/hqdefault.jpg` + // Is YouTube URL? + const youtubeId = getYoutubeId(push.url) + if (youtubeId) { + // Fetch YouTube Thumbnail + iconLink = `${youtubeThumbnailEndpoint}${youtubeId}/hqdefault.jpg` } else { - // Handle other URLS (Favicon) - iconLink = `${besticonUrl}/icon?fallback_icon_color=4AB367&formats=ico,png&size=1..${besticonIconSize}..200&url=${push.url}` + // Fetch Favicon + iconLink = `${faviconEndpoint}${push.url}` } } @@ -380,7 +405,7 @@ let decoratePush = (push) => { // Copy Push Object const decoratedPush = Object.assign({}, push) - switch (decoratedPush.type) { + switch (String(decoratedPush.type)) { // Link case 'link': decoratedPush.icon = generateNotificationImage(decoratedPush) @@ -464,14 +489,14 @@ let decoratePush = (push) => { * @param {Pushbullet.Push|Object=} push - Pushbullet Push */ let showNotification = (notificationOptions, push) => { - logger.info('showNotification') + logger.debug('showNotification') // Create Notification const notification = notificationProvider.create(notificationOptions) /** @listens notification#click */ notification.on('click', () => { - logger.info('notification#click') + logger.debug('notification#click') // Open url if (notificationOptions.url) { @@ -486,7 +511,7 @@ let showNotification = (notificationOptions, push) => { /** @listens notification#close */ notification.on('close', () => { - logger.info('notification#close') + logger.debug('notification#close') // Dismiss within Pushbullet if (push) { @@ -496,7 +521,7 @@ let showNotification = (notificationOptions, push) => { /** @listens notification#reply */ notification.on('reply', (event, message) => { - logger.info('notification#reply') + logger.debug('notification#reply') if (!!!message) { logger.warn('reply message was empty') @@ -507,14 +532,14 @@ let showNotification = (notificationOptions, push) => { // SMS Reply if (push.type === 'sms_changed') { pbSms.reply(message, push.source_device_iden, pbSms.getMessageThreadId(push), (target) => { - logger.info('reply message sent', 'to:', target) + logger.debug('reply message sent', 'to:', target) }) } // Chat Reply if (push.type === 'note' || push.type === 'link' || push.type === 'file') { createNotePush(message, push.sender_email, null, (target) => { - logger.info('reply message sent', 'to:', target) + logger.debug('reply message sent', 'to:', target) }) } @@ -527,42 +552,43 @@ let showNotification = (notificationOptions, push) => { /** @listens notification#show */ notification.on('show', (event) => { - logger.info('notification#show') + logger.debug('notification#show') + + logger.info('Notification', 'created:', notificationOptions.title, getTimestamp()) }) - // Queue Throttled Notification - queueNotification(() => { - logger.info('Triggering Notification at:', getTimestamp()) + // Enqueue Notification + notificationQueue(() => { + // Play Sound + playSoundFile() // Show Notification notification.show() - - // Play Sound - playSound() }) } /** - * Write & resize image - * @param {ArrayBuffer|Array|*} source - Source image - * @param {String} target - Target file + * Asprect-Resize image and write it to disk + * @param {ArrayBuffer|Array|*} source - Source image path + * @param {String} target - Target image path + * @param {Number} width - Image width * @param {Function=} callback - Callback */ -let writeResizeImage = (source, target, callback = () => {}) => { - logger.debug('writeResizeImage') +let resizeWriteImage = (source, target, width, callback = () => {}) => { + logger.debug('resizeWriteImage') jimp.read(source, (error, result) => { if (error) { - logger.error('writeResizeImage', 'jimp.read', error) + logger.error('resizeWriteImage', 'jimp.read', error) callback(error) return } - result.resize(notificationImageSize, jimp.AUTO).write(target, (error) => { + result.resize(width, jimp.AUTO).write(target, (error) => { if (error) { - logger.error('writeResizeImage', 'result.resize', error) + logger.error('resizeWriteImage', 'result.resize', error) callback(error) return @@ -571,7 +597,7 @@ let writeResizeImage = (source, target, callback = () => {}) => { callback(null, target) }) }).then((result) => { - logger.debug('writeResizeImage', 'result', result) + logger.debug('resizeWriteImage', 'result', result) }) } @@ -633,7 +659,7 @@ let convertPushToNotification = (push) => { // Image: Generate from Data URL if (imageProtocol === 'data:') { - writeResizeImage(dataUriToBuffer(imageUrl), imageFilepathTemporary, (error, imageFilepathConverted) => { + resizeWriteImage(dataUriToBuffer(imageUrl), imageFilepathTemporary, notificationsIconWidth, (error, imageFilepathConverted) => { if (error) { return } notificationOptions.icon = imageFilepathConverted @@ -655,7 +681,7 @@ let convertPushToNotification = (push) => { // From .PNG if (isPng || isJpeg) { - writeResizeImage(imageBuffer, imageFilepathDownloaded, (error, imageFilepathConverted) => { + resizeWriteImage(imageBuffer, imageFilepathDownloaded, notificationsIconWidth, (error, imageFilepathConverted) => { if (error) { return } notificationOptions.icon = imageFilepathConverted @@ -669,7 +695,7 @@ let convertPushToNotification = (push) => { if (isIco) { icojs.parse(imageBuffer, 'image/png').then(imageList => { const imageMaximum = imageList[imageList.length - 1] - writeResizeImage(Buffer.from(imageMaximum.buffer), imageFilepathDownloaded, (error, imageFilepathConverted) => { + resizeWriteImage(Buffer.from(imageMaximum.buffer), imageFilepathDownloaded, notificationsIconWidth, (error, imageFilepathConverted) => { if (error) { return } notificationOptions.icon = imageFilepathConverted @@ -746,24 +772,28 @@ let getRecentPushes = (queueLimit = 0) => { * @param {Boolean} updateBadgeCount - Update badge counter * @param {Function=} callback - Callback */ -let enqueuePush = (pushes, ignoreDate = false, updateBadgeCount = true, callback = () => {}) => { - logger.debug('enqueuePush') +let enqueuePushes = (pushes, ignoreDate = false, updateBadgeCount = true, callback = () => {}) => { + logger.debug('enqueuePushes') pushes = _.isArray(pushes) ? pushes : [ pushes ] if (pushes.length === 0) { - logger.warn('enqueuePush', 'pushes list was empty') + logger.warn('enqueuePushes', 'pushes list was empty') callback(null, 0) return } + // Retrieve pushbulletLastNotificationTimestamp + const pushbulletLastNotificationTimestamp = retrievePushbulletLastNotificationTimestamp() + + // Init pushes variables let nextPushesList = pushes - let notifyAfter = lastNotificationTimestamp || 0 + let notifyAfterTimestamp = pushbulletLastNotificationTimestamp || 0 - // Filter Pushes before lastNotificationTimestamp + // Filter Pushes before notifyAfterTimestamp if (!!!ignoreDate) { - nextPushesList = pushes.filter(push => push.created > notifyAfter) + nextPushesList = pushes.filter(push => push.created > notifyAfterTimestamp) } nextPushesList.forEach((push, pushIndex, pushList) => { @@ -780,9 +810,8 @@ let enqueuePush = (pushes, ignoreDate = false, updateBadgeCount = true, callback // Last Iteration? if (pushIndex !== pushList.length - 1) { return } - // Store lastNotificationTimestamp - if (push.created > notifyAfter) { - lastNotificationTimestamp = push.created + // Store pushbulletLastNotificationTimestamp + if (push.created > notifyAfterTimestamp) { storePushbulletLastNotificationTimestamp(push.created) } @@ -805,7 +834,7 @@ let enqueueRecentPushes = (callback = () => {}) => { const pushesList = getRecentPushes(recentPushesAmount) - enqueuePush(pushesList, true, false, (error, count) => { + enqueuePushes(pushesList, true, false, (error, count) => { if (error) { logger.error('enqueueRecentPushes', error) callback(error) @@ -823,7 +852,9 @@ let enqueueRecentPushes = (callback = () => {}) => { let init = () => { logger.debug('init') - lastNotificationTimestamp = retrievePushbulletLastNotificationTimestamp() + // Configure Web Audio + // https://github.com/goldfire/howler.js/issues/593 + Howler.autoSuspend = false } @@ -848,7 +879,7 @@ window.addEventListener('load', () => { * @exports */ module.exports = { - enqueuePush: enqueuePush, + enqueuePushes: enqueuePushes, enqueueRecentPushes: enqueueRecentPushes, updateBadge: updateBadge } diff --git a/app/scripts/renderer/webviews/pushbullet-webview.js b/app/scripts/renderer/webviews/pushbullet-webview.js index b49be6da..2bfb5452 100644 --- a/app/scripts/renderer/webviews/pushbullet-webview.js +++ b/app/scripts/renderer/webviews/pushbullet-webview.js @@ -217,7 +217,7 @@ let registerTextsProxy = () => { const isTarget = value.data && value.data.hasOwnProperty('target_device_iden') ? appIsTargeted(value.data.target_device_iden) : true if (isTarget) { - pbPush.enqueuePush(value) + pbPush.enqueuePushes(value) } } @@ -253,7 +253,7 @@ let registerPushProxy = () => { const isIncoming = value.hasOwnProperty('direction') ? value.direction !== 'outgoing' : true if (isTarget && isIncoming) { - pbPush.enqueuePush(value) + pbPush.enqueuePushes(value) } } @@ -339,7 +339,7 @@ let addWebsocketEventHandlers = () => { case 'mirror': /** SMS */ case 'sms_changed': - pbPush.enqueuePush(message.push, true) + pbPush.enqueuePushes(message.push, true) break /** Clipboard */ case 'clip': @@ -362,7 +362,7 @@ let loginPushbulletUser = () => { let interval = setInterval(() => { if (!(pb && pb.account && pb.account.active)) { return } - logger.info('pushbullet', 'logged in') + logger.info('Pushbullet.com', 'login:', pb.account.email) pb.DEBUG = isDebug @@ -377,14 +377,14 @@ let loginPushbulletUser = () => { return (item.created) > lastNotificationTimestamp }).length - logger.debug('loginPushbulletUser', 'unreadCount:', unreadCount) + logger.debug('Pushbullet.com', 'unread notifications:', unreadCount) pbPush.updateBadge(unreadCount) } if (retrievePushbulletRepeatRecentNotifications()) { pbPush.enqueueRecentPushes((err, count) => { - logger.info('replayed pushes on after launch:', count) + logger.info('Pushbullet.com', 'replaying recent pushes') }) } @@ -410,7 +410,7 @@ let init = () => { let interval = setInterval(() => { if (!pb || !navigator.onLine) { return } - logger.info('pushbullet', 'online') + logger.info('Pushbullet.com', 'connection established') ipcRenderer.send('online', true) ipcRenderer.sendToHost('online', true) diff --git a/package-lock.json b/package-lock.json index 166ee108..cae15a85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pb-for-desktop", - "version": "8.8.8", + "version": "8.9.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -353,11 +353,11 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, "@sidneys/dom-tools": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/@sidneys/dom-tools/-/dom-tools-1.36.0.tgz", - "integrity": "sha512-SAN6m1PTWuh471TIi1PgUFJWme8Oj9xpAiyuTW6e6+sDz9/W6erBzQfNDnO3/clzTnPHWvd5CXTR6lvlTJmJSA==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@sidneys/dom-tools/-/dom-tools-1.39.0.tgz", + "integrity": "sha512-IZVRnz/MHX+s19TGPK7QLudf8Urzv3cyBQvw9bbPFJYy4s5DpY34tcY190F/FMYNin2KLp2DhoMYA0DqgeIIBA==", "requires": { - "@sidneys/logger": "^1.47.0", + "@sidneys/logger": "^1.50.0", "clean-css": "^4.2.1", "file-url": "^2.0.2", "lodash": "^4.17.11", @@ -366,14 +366,14 @@ } }, "@sidneys/electron-build": { - "version": "1.59.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-build/-/electron-build-1.59.0.tgz", - "integrity": "sha512-fOYo0XveBLwehqd4ypZFdUWOxQcV+W7LzUmJgB77/mDMmtkhlYGD9T7LqNTG7npkxEoaH8UWk9tugsCeoOX1Zw==", - "requires": { - "@sidneys/electron-deploy-github": "^1.45.0", - "@sidneys/is-env": "^1.42.0", - "@sidneys/logger": "^1.47.0", - "@sidneys/releasenotes": "^1.39.0", + "version": "1.63.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-build/-/electron-build-1.63.0.tgz", + "integrity": "sha512-UvWJyWq0FriDVcE8oo8NN+8EikaV4G477IxhmueI+gnfieBojzVZYWkb/cgX1wcnNwJmrvWVT++/5NimXevbGA==", + "requires": { + "@sidneys/electron-deploy-github": "^1.48.0", + "@sidneys/is-env": "^1.45.0", + "@sidneys/logger": "^1.50.0", + "@sidneys/releasenotes": "^1.42.0", "app-root-path": "^2.1.0", "electron-builder": "^20.38.5", "electron-icon-maker": "0.0.4", @@ -395,23 +395,23 @@ } }, "@sidneys/electron-debug-service": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-debug-service/-/electron-debug-service-0.39.0.tgz", - "integrity": "sha512-zEH0x9D6zhLZe7T8tm1jsazkGBSlhQEMcpU/9Ut4jgr4ZoEZaZIEjLYLyRDK2I3ejK45otMBAlpsSADw5q5oJg==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-debug-service/-/electron-debug-service-0.42.0.tgz", + "integrity": "sha512-rymXgCeypIKdGx7Nzx/RBqoIpKe/8bj1lCGT3B5Li07Pkh7hfNuotB1le+prBp598NmS+uO3nuuLYUCnRBit6g==", "requires": { - "@sidneys/is-env": "^1.42.0", - "@sidneys/logger": "^1.47.0", + "@sidneys/is-env": "^1.45.0", + "@sidneys/logger": "^1.50.0", "filesize": "^4.1.2", "try-require": "^1.2.1" } }, "@sidneys/electron-deploy-github": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-deploy-github/-/electron-deploy-github-1.45.0.tgz", - "integrity": "sha512-tt7+jQRut10A38SRt039EMMPzuz4tyEajr4LAjzJiqXkeqz1S4DDNWN1rfavKQqWGHhdOpvpvXCQcGNQ8zufvw==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-deploy-github/-/electron-deploy-github-1.48.0.tgz", + "integrity": "sha512-G1UktEGbI6+mheO/MNzX2R6GiCcqhlUegVa8gxXB937MgxnWyU49DkZD3UjmCpsIgW5/2nPhbgxUXN1+BTivGA==", "requires": { - "@sidneys/logger": "^1.47.0", - "@sidneys/releasenotes": "^1.39.0", + "@sidneys/logger": "^1.50.0", + "@sidneys/releasenotes": "^1.42.0", "app-root-path": "^2.1.0", "git-branch": "^2.0.1", "globby": "^9.0.0", @@ -422,56 +422,75 @@ } }, "@sidneys/electron-dialog-provider": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-dialog-provider/-/electron-dialog-provider-1.40.0.tgz", - "integrity": "sha512-fYSC4q/NWOIjuEzPKogpVykDg+cjEdsmFKu8FFFvFQTvXv3v1ay636BOxvxlS+ysDwXO4ACIq03uvgCJvtQx4A==", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-dialog-provider/-/electron-dialog-provider-1.43.0.tgz", + "integrity": "sha512-UGxGqtjblt6ma8vSBUwYPDznG3sAQAEcrjNADEp/g1cfSKSB/4/pfmJk4gQoMj+KsOj/FCpMeUY8WehQ4QS4oA==", "requires": { - "@sidneys/logger": "^1.47.0", - "@sidneys/platform-tools": "^1.47.0" + "@sidneys/logger": "^1.50.0", + "@sidneys/platform-tools": "^1.51.0" } }, "@sidneys/electron-localsetup": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-localsetup/-/electron-localsetup-1.40.0.tgz", - "integrity": "sha512-1XB5wPGQS4K1HDB9sfhnSigXn8c7kU9t+YTEQm2Ld6fgROpa17Iwj+Na7cpc8nOa8xqmhDWMZmMUO0LhUia62w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-localsetup/-/electron-localsetup-1.44.0.tgz", + "integrity": "sha512-WG1uVsoFXP4m5UX6d8gB/rySTYrNsz9sKCCj1Pipmp++t4pYOpokbWlLzihsP6GlDj9w9Lu/S9htfQTplEUSyg==", "requires": { - "@sidneys/is-env": "^1.42.0", - "@sidneys/logger": "^1.47.0", - "@sidneys/platform-tools": "^1.47.0", + "@sidneys/is-env": "^1.45.0", + "@sidneys/logger": "^1.50.0", + "@sidneys/platform-tools": "^1.51.0", "app-root-path": "^2.1.0", "fkill": "^5.3.0", "fs-extra": "^7.0.1", "globby": "^9.0.0", - "minimist": "^1.2.0" + "jsonfile": "^5.0.0", + "lodash": "^4.17.11", + "minimist": "^1.2.0", + "try-require": "^1.2.1" + }, + "dependencies": { + "jsonfile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-5.0.0.tgz", + "integrity": "sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^0.1.2" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + } } }, "@sidneys/electron-notification-provider": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-notification-provider/-/electron-notification-provider-0.40.0.tgz", - "integrity": "sha512-4f2rv1+we+rC1y/0ZcIy18TFueYBSNPs1Om5IfOQkdhY90yNZVu5pM29n4rZedTPA7UDwznt8Xqm9F7UyfQ4qw==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-notification-provider/-/electron-notification-provider-0.43.0.tgz", + "integrity": "sha512-XWP1Ndi7I3Agwm9jjzSH9ePN956QRc3zr41+gj2C4na8zdaovqCSsKYqvGt8iOZKnF/0zXzT3TR9JHnXUAVeqA==", "requires": { - "@sidneys/logger": "^1.47.0", + "@sidneys/logger": "^1.50.0", "lodash": "^4.17.11" } }, "@sidneys/electron-power-service": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-power-service/-/electron-power-service-0.39.0.tgz", - "integrity": "sha512-hosp3ckP7BGOpwf/YHYfl+gFs4iGwPQbsVfgocDe1uyhG1+YkQFgGipazRV2giUBJ5kOhSgMoQVEKA0yULGYOg==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-power-service/-/electron-power-service-0.42.0.tgz", + "integrity": "sha512-S9gj/crBoyHwivnfKJS9t3lRpSKngru9xqHgV7NlF4rAfw+72wWd7G+Wg+QTZjnPfBoT4/mAo1PyOlo9xMyHQQ==", "requires": { - "@sidneys/logger": "^1.47.0", - "@sidneys/platform-tools": "^1.47.0" + "@sidneys/logger": "^1.50.0", + "@sidneys/platform-tools": "^1.51.0" } }, "@sidneys/electron-updater-service": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@sidneys/electron-updater-service/-/electron-updater-service-0.54.0.tgz", - "integrity": "sha512-RHHNpbF/zleICjCEIpmyVDnPttIfdve0DyUCVhJ1elGA/WiVIXdYXBI+2G4eps06F5t26tHt1K4UbIkF5Qn+OQ==", - "requires": { - "@sidneys/electron-dialog-provider": "^1.40.0", - "@sidneys/electron-notification-provider": "0.40.0", - "@sidneys/logger": "^1.47.0", - "@sidneys/platform-tools": "^1.47.0", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@sidneys/electron-updater-service/-/electron-updater-service-0.57.0.tgz", + "integrity": "sha512-0T2G7BBupC46YfLiuEtydRbdQXQP4LkxZYPY04wseLn+7EPtspgzumHMfZMf2n+90HW/8b0KNTpj8gOc2LaEig==", + "requires": { + "@sidneys/electron-dialog-provider": "^1.43.0", + "@sidneys/electron-notification-provider": "0.43.0", + "@sidneys/logger": "^1.50.0", + "@sidneys/platform-tools": "^1.51.0", "app-root-path": "^2.1.0", "electron-store": "^2.0.0", "electron-updater": "^4.0.6", @@ -480,11 +499,11 @@ } }, "@sidneys/is-env": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@sidneys/is-env/-/is-env-1.42.0.tgz", - "integrity": "sha512-OV/P/fNr9abofnHKGZsXtEdsWhWgzcbI9aSI7G7z/lbYHbUIA4ZN9chHBYAEVJq3Z9Vl0Y7hdFsRc0eg1ju+Fg==", + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/@sidneys/is-env/-/is-env-1.45.0.tgz", + "integrity": "sha512-CjxexuwrQ7YO27O0LQTUrPjsvExl95tu8HuAZkDTqRSpwaS+t2bsoIUhWdcnPPDBcLndkstxHADOvbDV6RhZ7w==", "requires": { - "@sidneys/required-count": "^1.50.0", + "@sidneys/required-count": "^1.54.0", "chalk": "^2.4.2", "chalkline": "^0.0.5", "lodash": "^4.17.11", @@ -493,11 +512,11 @@ } }, "@sidneys/logger": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@sidneys/logger/-/logger-1.47.0.tgz", - "integrity": "sha512-vzrV8dIG2zV7LlubB4EQ6VW4VEoNmwr7J/jBz4LXL3MCYDHhmmus9hEpehjYL0ANMv5T/4/wlU4J1teC6rURxA==", + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/@sidneys/logger/-/logger-1.50.0.tgz", + "integrity": "sha512-vKUkPQ1CO/m/ie95hRazNxyUu3IbpBGO4ES3keEXm5iXeMpbA1MYkTSTTu/xen99iydkn/lFnvs0F1JuTNXY+w==", "requires": { - "@sidneys/is-env": "^1.42.0", + "@sidneys/is-env": "^1.45.0", "appdirectory": "^0.1.0", "chalk": "^2.4.2", "fs-extra": "^7.0.1", @@ -508,19 +527,19 @@ } }, "@sidneys/platform-tools": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@sidneys/platform-tools/-/platform-tools-1.47.0.tgz", - "integrity": "sha512-AOG0LQqyEwwReUMWYv3eH3MY5gaHhUfwtDGvdOx4fQUjBg52hA3UPbhR4CTUqCuTV7SxRfRQ5LeSLgeHX0qU3A==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/@sidneys/platform-tools/-/platform-tools-1.51.0.tgz", + "integrity": "sha512-G3UvzcNvGn5i2e4ntK+Hc0zh1EO5+2bcNXQDB4bM5PCvr5je0ds4Yd79DsubYj7sSydUBdbz2rA5KuZncWQOCA==", "requires": { "lodash": "^4.17.11" } }, "@sidneys/releasenotes": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@sidneys/releasenotes/-/releasenotes-1.39.0.tgz", - "integrity": "sha512-NJuFa3uvJZvuZxV3uo/9qwoWqlPJESUsXgeKpBcvf0x6+x4GQruCa32QBQ5db4ne25U4n2YSmGQTqdhjFBImHw==", + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/@sidneys/releasenotes/-/releasenotes-1.42.0.tgz", + "integrity": "sha512-a33DmZoBOYBQ0+iIEdnGBhG3U/CCELzpMpguOIPWcfPIsgNg9U/tk+AvuvI5fX6GF+UGnnMCwQBW5f5kmlqMvQ==", "requires": { - "@sidneys/logger": "^1.47.0", + "@sidneys/logger": "^1.50.0", "app-root-path": "^2.1.0", "fs-extra": "^7.0.1", "json2md": "^1.6.3", @@ -529,9 +548,9 @@ } }, "@sidneys/required-count": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/@sidneys/required-count/-/required-count-1.50.0.tgz", - "integrity": "sha512-voYT75xIAYlYdJitWfN1krodO0MYfR4YxFQf1b6bwlOAew+OvriUaKuuNs5IvHCUwZSf1zTp2ia3KAB1O6Fr6Q==" + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/@sidneys/required-count/-/required-count-1.54.0.tgz", + "integrity": "sha512-Q+4gb3bCv6Qg6/MNyLY5/lH4TS8XTblclIxoFECM4q+34tkUMZd1TExUMXYKHd5RfdsA8KsCbEQH9XWASP809Q==" }, "@sindresorhus/is": { "version": "0.7.0", @@ -605,6 +624,11 @@ "string-width": "^2.0.0" } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -1676,6 +1700,21 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" + } + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1794,9 +1833,9 @@ } }, "docdash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/docdash/-/docdash-1.0.2.tgz", - "integrity": "sha512-IEM57bWPLtVXpUeCKbiGvHsHtW9O9ZiiBPfeQDAZ7JdQiAF3aNWQoJ3e/+uJ63lHO009yn0tbJjtKpXJ2AURCQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/docdash/-/docdash-1.0.3.tgz", + "integrity": "sha512-gPepWBPJSWK70PRqOtxLvZ2FLJlw49DZASs73yqmM7uM45WEygQJmHPBrrQ9eLeEkgPKUzDv+sr2SHgQS1OQ0g==", "dev": true }, "doctrine": { @@ -2225,6 +2264,36 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" + } + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-promise": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", @@ -2236,9 +2305,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.14.0.tgz", - "integrity": "sha512-jrOhiYyENRrRnWlMYANlGZTqb89r2FuRT+615AabBoajhNjeh9ywDNlh2LU9vTqf0WYN+L3xdXuIi7xuj/tK9w==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.14.1.tgz", + "integrity": "sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -2633,9 +2702,9 @@ } }, "file-type": { - "version": "10.7.1", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.7.1.tgz", - "integrity": "sha512-kUc4EE9q3MH6kx70KumPOvXLZLEJZzY9phEVg/bKWyGZ+OA9KoKZzFR4HS0yDmNv31sJkdf4hbTERIfplF9OxQ==" + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.8.0.tgz", + "integrity": "sha512-287YScp3cpRWzhM+/E+A85O4FJi4dHus0eA6eBUzkRc08d/JAwqeczU/nwLstRuzzq/S7TqvQg9mhv7xVsdINQ==" }, "file-url": { "version": "2.0.2", @@ -2728,6 +2797,21 @@ } } }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -2843,6 +2927,11 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -3120,6 +3209,14 @@ } } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -3138,6 +3235,11 @@ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", @@ -3196,9 +3298,9 @@ } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, "hoek": { "version": "2.16.3", @@ -3218,6 +3320,11 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "howler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/howler/-/howler-2.1.1.tgz", + "integrity": "sha512-9nwyDCGxhAGMmNXDfMLv0M/uS/WUg2//jG6t96D8DqbbsVZgXQzsP/ZMItbWO/Fqg7Gg69kOv3xVSDzJdd7aqA==" + }, "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", @@ -3635,6 +3742,11 @@ } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -3804,6 +3916,14 @@ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^1.0.1" + } + }, "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", @@ -3814,6 +3934,14 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -4157,6 +4285,14 @@ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -4444,58 +4580,56 @@ } }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.0.1.tgz", + "integrity": "sha512-tQzCxWqxSD6Oyg5r7Ptbev0yAMD8p+Vfh4snPFuiUsWqYj0eVYTDT2DkEY307FTj0WRlIWN9rWMMAUzRmijgVQ==", "requires": { + "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", + "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "findup-sync": "2.0.0", + "glob": "7.1.3", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "3.12.0", + "log-symbols": "2.2.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "ms": "2.1.1", + "node-environment-flags": "1.0.4", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "12.0.5", + "yargs-parser": "11.1.1", + "yargs-unparser": "1.5.0" }, "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "requires": { "has-flag": "^3.0.0" } @@ -4626,6 +4760,14 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node-environment-flags": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.4.tgz", + "integrity": "sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q==", + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, "node-uuid": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", @@ -4779,6 +4921,33 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "dependencies": { + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" + } + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -5002,6 +5171,32 @@ "mocha": "^5.2.0" }, "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "got": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", @@ -5026,6 +5221,11 @@ "url-to-options": "^1.0.1" } }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, "into-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", @@ -5035,11 +5235,42 @@ "p-is-promise": "^1.1.0" } }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "requires": { + "has-flag": "^3.0.0" + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -5688,9 +5919,9 @@ }, "dependencies": { "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz", + "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==", "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -7323,6 +7554,14 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", @@ -7506,6 +7745,16 @@ } } }, + "yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + } + }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/package.json b/package.json index 7004a18b..f4addb8f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "pb-for-desktop", "appId": "de.sidneys.pb-for-desktop", "productName": "PB for Desktop", - "version": "8.8.8", + "version": "8.9.5", "description": "PB for Desktop is a Pushbullet desktop application for macOS, Windows and Linux", "license": "MIT", "homepage": "https://sidneys.github.io/pb-for-desktop", @@ -46,19 +46,19 @@ ], "preferGlobal": true, "dependencies": { - "@sidneys/dom-tools": "^1.36.0", - "@sidneys/electron-build": "^1.59.0", - "@sidneys/electron-debug-service": "^0.39.0", - "@sidneys/electron-deploy-github": "^1.45.0", - "@sidneys/electron-dialog-provider": "^1.40.0", - "@sidneys/electron-localsetup": "^1.40.0", - "@sidneys/electron-notification-provider": "^0.40.0", - "@sidneys/electron-power-service": "^0.39.0", - "@sidneys/electron-updater-service": "^0.54.0", - "@sidneys/is-env": "^1.42.0", - "@sidneys/logger": "^1.47.0", - "@sidneys/platform-tools": "^1.47.0", - "@sidneys/releasenotes": "^1.39.0", + "@sidneys/dom-tools": "^1.39.0", + "@sidneys/electron-build": "^1.63.0", + "@sidneys/electron-debug-service": "^0.42.0", + "@sidneys/electron-deploy-github": "^1.48.0", + "@sidneys/electron-dialog-provider": "^1.43.0", + "@sidneys/electron-localsetup": "^1.44.0", + "@sidneys/electron-notification-provider": "^0.43.0", + "@sidneys/electron-power-service": "^0.42.0", + "@sidneys/electron-updater-service": "^0.57.0", + "@sidneys/is-env": "^1.45.0", + "@sidneys/logger": "^1.50.0", + "@sidneys/platform-tools": "^1.51.0", + "@sidneys/releasenotes": "^1.42.0", "app-root-path": "^2.1.0", "appdirectory": "^0.1.0", "auto-launch": "git+https://sidneys@github.com/sidneys/node-auto-launch.git#bugfixes-maintainance", @@ -67,16 +67,17 @@ "electron-editor-context-menu": "^1.1.1", "electron-settings": "^3.2.0", "electron-updater": "^4.0.6", - "file-type": "^10.7.1", + "file-type": "^10.8.0", "file-url": "^2.0.2", "filesize": "^4.1.2", "fs-extra": "^7.0.1", "get-youtube-id": "^1.0.1", + "howler": "^2.1.1", "icojs": "^0.12.3", "image-downloader": "^3.4.2", "jimp": "^0.6.0", "lodash": "^4.17.11", - "mocha": "^5.2.0", + "mocha": "^6.0.1", "moment": "^2.24.0", "opn": "^5.4.0", "parse-domain": "^2.1.7", @@ -89,9 +90,9 @@ }, "devDependencies": { "@wabson/list-dependencies": "^0.1.0", - "docdash": "^1.0.2", + "docdash": "^1.0.3", "electron": "^4.0.5", - "eslint": "^5.14.0", + "eslint": "^5.14.1", "jsdoc": "^3.5.5" }, "main": "./app/scripts/main/components/application.js", diff --git a/pushbullet.d.ts b/pushbullet.d.ts index 1fe92178..0b90f824 100644 --- a/pushbullet.d.ts +++ b/pushbullet.d.ts @@ -412,6 +412,47 @@ declare namespace Pushbullet { } } + /** + * User + */ + interface User extends Item { + /** + * Email address + * Example: "elon@teslamotors.com" + */ + email: string + /** + * Canonical email address + * Example: "elon@teslamotors.com" + */ + email_normalized: string + /** + * Full name if available + * Example: "Elon Musk" + */ + name: string + /** + * URL for image of user or placeholder image + * Example: "https://static.pushbullet.com/missing-image/55a7dc-45" + */ + image_url: string + /** + * Maximum upload size in bytes + * Example: 26214400 + */ + max_upload_size: number + /** + * Number of users referred by this user + * Example: 2 + */ + referred_count: number + /** + * User iden for the user that referred the current user, if set + * Example: "ujlxm0aiz2" + */ + referrer_iden: string + } + /** * OAuth Grants (Connected Apps) */ @@ -782,7 +823,7 @@ declare namespace PushbulletBrowserClient { invite_picker: Picker invite_emails: {} } - account: PushbulletApiSuite.Account + account: Pushbullet.User pushbox: { target: object scroll_lock: boolean diff --git a/resources/graphics/icon-preview.png b/resources/graphics/icon-preview.png new file mode 100644 index 00000000..1d2cf55d Binary files /dev/null and b/resources/graphics/icon-preview.png differ diff --git a/resources/graphics/icon.psd b/resources/graphics/icon.psd index f22c2203..4440584d 100644 Binary files a/resources/graphics/icon.psd and b/resources/graphics/icon.psd differ diff --git a/sounds/android-1.wav b/sounds/android-1.wav index 952f7d3c..71462d86 100644 Binary files a/sounds/android-1.wav and b/sounds/android-1.wav differ diff --git a/sounds/android-10.wav b/sounds/android-10.wav index d805ad66..5b97b9ad 100644 Binary files a/sounds/android-10.wav and b/sounds/android-10.wav differ diff --git a/sounds/android-11.wav b/sounds/android-11.wav index 12982832..0bf8ab0f 100644 Binary files a/sounds/android-11.wav and b/sounds/android-11.wav differ diff --git a/sounds/android-12.wav b/sounds/android-12.wav index 3f00faa1..d08e9bb9 100644 Binary files a/sounds/android-12.wav and b/sounds/android-12.wav differ diff --git a/sounds/android-14.wav b/sounds/android-14.wav index 6fed63bb..e1c5a1f2 100644 Binary files a/sounds/android-14.wav and b/sounds/android-14.wav differ diff --git a/sounds/android-15.wav b/sounds/android-15.wav index 56dcb79f..ad4aaebf 100644 Binary files a/sounds/android-15.wav and b/sounds/android-15.wav differ diff --git a/sounds/android-16.wav b/sounds/android-16.wav index 7a68bd28..16518ef1 100644 Binary files a/sounds/android-16.wav and b/sounds/android-16.wav differ diff --git a/sounds/android-17.wav b/sounds/android-17.wav index c1f53b89..a8a62d14 100644 Binary files a/sounds/android-17.wav and b/sounds/android-17.wav differ diff --git a/sounds/android-18.wav b/sounds/android-18.wav index a6d4d3a9..cb1d4625 100644 Binary files a/sounds/android-18.wav and b/sounds/android-18.wav differ diff --git a/sounds/android-19.wav b/sounds/android-19.wav index 79c62314..e4539ff2 100644 Binary files a/sounds/android-19.wav and b/sounds/android-19.wav differ diff --git a/sounds/android-2.wav b/sounds/android-2.wav index 96ed839f..cafdb9aa 100644 Binary files a/sounds/android-2.wav and b/sounds/android-2.wav differ diff --git a/sounds/android-3.wav b/sounds/android-3.wav index 7e5041aa..8217acf4 100644 Binary files a/sounds/android-3.wav and b/sounds/android-3.wav differ diff --git a/sounds/android-4.wav b/sounds/android-4.wav index 91e2967a..409d9288 100644 Binary files a/sounds/android-4.wav and b/sounds/android-4.wav differ diff --git a/sounds/android-5.wav b/sounds/android-5.wav index a77a99fc..5818270f 100644 Binary files a/sounds/android-5.wav and b/sounds/android-5.wav differ diff --git a/sounds/android-6.wav b/sounds/android-6.wav index 1f9cf2c4..1ddc6a61 100644 Binary files a/sounds/android-6.wav and b/sounds/android-6.wav differ diff --git a/sounds/android-7.wav b/sounds/android-7.wav index 43510a1f..4ac3e281 100644 Binary files a/sounds/android-7.wav and b/sounds/android-7.wav differ diff --git a/sounds/android-8.wav b/sounds/android-8.wav index 52eb328a..e39cad86 100644 Binary files a/sounds/android-8.wav and b/sounds/android-8.wav differ diff --git a/sounds/android-9.wav b/sounds/android-9.wav index 80a992d0..71879e4f 100644 Binary files a/sounds/android-9.wav and b/sounds/android-9.wav differ diff --git a/sounds/default.wav b/sounds/default.wav index 1a88d7bc..74a6b34c 100644 Binary files a/sounds/default.wav and b/sounds/default.wav differ diff --git a/sounds/generic-1.wav b/sounds/generic-1.wav index aaa94dab..815a1e13 100644 Binary files a/sounds/generic-1.wav and b/sounds/generic-1.wav differ diff --git a/sounds/generic-2.wav b/sounds/generic-2.wav index 5e9b65f5..10b3206f 100644 Binary files a/sounds/generic-2.wav and b/sounds/generic-2.wav differ diff --git a/sounds/generic-3.wav b/sounds/generic-3.wav index 935b0d96..e48d3a22 100644 Binary files a/sounds/generic-3.wav and b/sounds/generic-3.wav differ diff --git a/sounds/generic-4.wav b/sounds/generic-4.wav index af9d3fcf..e87e7470 100644 Binary files a/sounds/generic-4.wav and b/sounds/generic-4.wav differ diff --git a/sounds/ios-1.wav b/sounds/ios-1.wav index d0800b2c..8e3e960b 100644 Binary files a/sounds/ios-1.wav and b/sounds/ios-1.wav differ diff --git a/sounds/ios-10.wav b/sounds/ios-10.wav index 6550e1e0..2bb316a5 100644 Binary files a/sounds/ios-10.wav and b/sounds/ios-10.wav differ diff --git a/sounds/ios-2.wav b/sounds/ios-2.wav index fcb7a870..6f990f0d 100644 Binary files a/sounds/ios-2.wav and b/sounds/ios-2.wav differ diff --git a/sounds/ios-3.wav b/sounds/ios-3.wav index 92579d65..502d0fcc 100644 Binary files a/sounds/ios-3.wav and b/sounds/ios-3.wav differ diff --git a/sounds/ios-4.wav b/sounds/ios-4.wav index 562ca736..c0f2205c 100644 Binary files a/sounds/ios-4.wav and b/sounds/ios-4.wav differ diff --git a/sounds/ios-5.wav b/sounds/ios-5.wav index 3f94b8d4..68ad64db 100644 Binary files a/sounds/ios-5.wav and b/sounds/ios-5.wav differ diff --git a/sounds/ios-6.wav b/sounds/ios-6.wav index 32acea41..46d7bf8c 100644 Binary files a/sounds/ios-6.wav and b/sounds/ios-6.wav differ diff --git a/sounds/ios-7.wav b/sounds/ios-7.wav index 7ad23633..8eb91f5e 100644 Binary files a/sounds/ios-7.wav and b/sounds/ios-7.wav differ diff --git a/sounds/ios-8.wav b/sounds/ios-8.wav index f300befe..056d9c7f 100644 Binary files a/sounds/ios-8.wav and b/sounds/ios-8.wav differ diff --git a/sounds/ios-9.wav b/sounds/ios-9.wav index 342379dd..6c98aa1a 100644 Binary files a/sounds/ios-9.wav and b/sounds/ios-9.wav differ diff --git a/sounds/macos-1.wav b/sounds/macos-1.wav index cdfa1d37..9bfee719 100644 Binary files a/sounds/macos-1.wav and b/sounds/macos-1.wav differ diff --git a/sounds/macos-2.wav b/sounds/macos-2.wav index 0a384843..d4205292 100644 Binary files a/sounds/macos-2.wav and b/sounds/macos-2.wav differ diff --git a/sounds/macos-3.wav b/sounds/macos-3.wav index 5ed13e52..f776ea97 100644 Binary files a/sounds/macos-3.wav and b/sounds/macos-3.wav differ diff --git a/sounds/macos-4.wav b/sounds/macos-4.wav index fd3e8dbe..580a9470 100644 Binary files a/sounds/macos-4.wav and b/sounds/macos-4.wav differ diff --git a/sounds/nintendo-1.wav b/sounds/nintendo-1.wav index b4e507f3..d1885039 100644 Binary files a/sounds/nintendo-1.wav and b/sounds/nintendo-1.wav differ diff --git a/sounds/nintendo-2.wav b/sounds/nintendo-2.wav index ddfc0cf2..0ba051df 100644 Binary files a/sounds/nintendo-2.wav and b/sounds/nintendo-2.wav differ diff --git a/sounds/nintendo-3.wav b/sounds/nintendo-3.wav index b6ebaa66..dc6a494d 100644 Binary files a/sounds/nintendo-3.wav and b/sounds/nintendo-3.wav differ diff --git a/sounds/nintendo-4.wav b/sounds/nintendo-4.wav index 3c135382..fa6a5e85 100644 Binary files a/sounds/nintendo-4.wav and b/sounds/nintendo-4.wav differ diff --git a/sounds/nintendo-5.wav b/sounds/nintendo-5.wav index 508b5d36..e6f6db8f 100644 Binary files a/sounds/nintendo-5.wav and b/sounds/nintendo-5.wav differ diff --git a/sounds/slack-1.wav b/sounds/slack-1.wav index a1cf33bf..1096e17e 100644 Binary files a/sounds/slack-1.wav and b/sounds/slack-1.wav differ diff --git a/sounds/slack-2.wav b/sounds/slack-2.wav index 109e85f8..0ff1596a 100644 Binary files a/sounds/slack-2.wav and b/sounds/slack-2.wav differ diff --git a/sounds/slack-3.wav b/sounds/slack-3.wav index b555116f..90869b2d 100644 Binary files a/sounds/slack-3.wav and b/sounds/slack-3.wav differ diff --git a/sounds/slack-4.wav b/sounds/slack-4.wav index caaa9bb8..761f2d76 100644 Binary files a/sounds/slack-4.wav and b/sounds/slack-4.wav differ diff --git a/sounds/slack-5.wav b/sounds/slack-5.wav index 43297233..4e7b24fe 100644 Binary files a/sounds/slack-5.wav and b/sounds/slack-5.wav differ diff --git a/sounds/slack-6.wav b/sounds/slack-6.wav index bad07cc1..0e070210 100644 Binary files a/sounds/slack-6.wav and b/sounds/slack-6.wav differ diff --git a/sounds/slack-7.wav b/sounds/slack-7.wav index 8dd89e21..4e9e51b2 100644 Binary files a/sounds/slack-7.wav and b/sounds/slack-7.wav differ diff --git a/sounds/slack-8.wav b/sounds/slack-8.wav index e7c7b2bc..b80eb1ed 100644 Binary files a/sounds/slack-8.wav and b/sounds/slack-8.wav differ diff --git a/sounds/tesla-1.wav b/sounds/tesla-1.wav index 9960f4f5..3a60825f 100644 Binary files a/sounds/tesla-1.wav and b/sounds/tesla-1.wav differ diff --git a/sounds/tesla-2.wav b/sounds/tesla-2.wav index 65f4dfa1..75b2a0dd 100644 Binary files a/sounds/tesla-2.wav and b/sounds/tesla-2.wav differ diff --git a/sounds/tesla-3.wav b/sounds/tesla-3.wav index 181cb2d7..f0dfc139 100644 Binary files a/sounds/tesla-3.wav and b/sounds/tesla-3.wav differ diff --git a/sounds/voiceover-1.wav b/sounds/voiceover-1.wav index 674c838a..819d1477 100644 Binary files a/sounds/voiceover-1.wav and b/sounds/voiceover-1.wav differ diff --git a/sounds/voiceover-10.wav b/sounds/voiceover-10.wav index 43334a52..b93db4fb 100644 Binary files a/sounds/voiceover-10.wav and b/sounds/voiceover-10.wav differ diff --git a/sounds/voiceover-11.wav b/sounds/voiceover-11.wav index 690edc74..f14950a4 100644 Binary files a/sounds/voiceover-11.wav and b/sounds/voiceover-11.wav differ diff --git a/sounds/voiceover-12.wav b/sounds/voiceover-12.wav index 69dccd51..900f7570 100644 Binary files a/sounds/voiceover-12.wav and b/sounds/voiceover-12.wav differ diff --git a/sounds/voiceover-13.wav b/sounds/voiceover-13.wav index 6ac7f1be..c61be6b7 100644 Binary files a/sounds/voiceover-13.wav and b/sounds/voiceover-13.wav differ diff --git a/sounds/voiceover-14.wav b/sounds/voiceover-14.wav index f973d8b6..71839431 100644 Binary files a/sounds/voiceover-14.wav and b/sounds/voiceover-14.wav differ diff --git a/sounds/voiceover-15.wav b/sounds/voiceover-15.wav index 29a388e4..132ee8cf 100644 Binary files a/sounds/voiceover-15.wav and b/sounds/voiceover-15.wav differ diff --git a/sounds/voiceover-16.wav b/sounds/voiceover-16.wav index abd4f339..ef9cdd18 100644 Binary files a/sounds/voiceover-16.wav and b/sounds/voiceover-16.wav differ diff --git a/sounds/voiceover-17.wav b/sounds/voiceover-17.wav index 56156378..39156195 100644 Binary files a/sounds/voiceover-17.wav and b/sounds/voiceover-17.wav differ diff --git a/sounds/voiceover-18.wav b/sounds/voiceover-18.wav index e8d8ec28..1afc7e30 100644 Binary files a/sounds/voiceover-18.wav and b/sounds/voiceover-18.wav differ diff --git a/sounds/voiceover-19.wav b/sounds/voiceover-19.wav index 353ed63f..ff558e93 100644 Binary files a/sounds/voiceover-19.wav and b/sounds/voiceover-19.wav differ diff --git a/sounds/voiceover-2.wav b/sounds/voiceover-2.wav index 5b2fc744..d9a65b33 100644 Binary files a/sounds/voiceover-2.wav and b/sounds/voiceover-2.wav differ diff --git a/sounds/voiceover-3.wav b/sounds/voiceover-3.wav index 50386ea9..41ee628d 100644 Binary files a/sounds/voiceover-3.wav and b/sounds/voiceover-3.wav differ diff --git a/sounds/voiceover-4.wav b/sounds/voiceover-4.wav index 9e273665..73564070 100644 Binary files a/sounds/voiceover-4.wav and b/sounds/voiceover-4.wav differ diff --git a/sounds/voiceover-5.wav b/sounds/voiceover-5.wav index e4e3fbf8..a7840329 100644 Binary files a/sounds/voiceover-5.wav and b/sounds/voiceover-5.wav differ diff --git a/sounds/voiceover-6.wav b/sounds/voiceover-6.wav index b56fb57e..078ef922 100644 Binary files a/sounds/voiceover-6.wav and b/sounds/voiceover-6.wav differ diff --git a/sounds/voiceover-7.wav b/sounds/voiceover-7.wav index 6881f2c6..6ca3cc02 100644 Binary files a/sounds/voiceover-7.wav and b/sounds/voiceover-7.wav differ diff --git a/sounds/voiceover-8.wav b/sounds/voiceover-8.wav index 5adb1d28..e3df7834 100644 Binary files a/sounds/voiceover-8.wav and b/sounds/voiceover-8.wav differ diff --git a/sounds/voiceover-9.wav b/sounds/voiceover-9.wav index ebeb7d83..8f843066 100644 Binary files a/sounds/voiceover-9.wav and b/sounds/voiceover-9.wav differ diff --git a/sounds/windows-1.wav b/sounds/windows-1.wav index d070d582..2f7c26f9 100644 Binary files a/sounds/windows-1.wav and b/sounds/windows-1.wav differ diff --git a/sounds/windows-10.wav b/sounds/windows-10.wav index 693bf817..fd0e464d 100644 Binary files a/sounds/windows-10.wav and b/sounds/windows-10.wav differ diff --git a/sounds/windows-11.wav b/sounds/windows-11.wav index 7afea9ca..887b0219 100644 Binary files a/sounds/windows-11.wav and b/sounds/windows-11.wav differ diff --git a/sounds/windows-12.wav b/sounds/windows-12.wav index fb32fdc1..732c8fc9 100644 Binary files a/sounds/windows-12.wav and b/sounds/windows-12.wav differ diff --git a/sounds/windows-14.wav b/sounds/windows-14.wav index dd597f18..8329fcc1 100644 Binary files a/sounds/windows-14.wav and b/sounds/windows-14.wav differ diff --git a/sounds/windows-15.wav b/sounds/windows-15.wav index 91e59007..a3947f03 100644 Binary files a/sounds/windows-15.wav and b/sounds/windows-15.wav differ diff --git a/sounds/windows-16.wav b/sounds/windows-16.wav index 6869c280..cf6b3606 100644 Binary files a/sounds/windows-16.wav and b/sounds/windows-16.wav differ diff --git a/sounds/windows-17.wav b/sounds/windows-17.wav index 2665671b..87f6d45c 100644 Binary files a/sounds/windows-17.wav and b/sounds/windows-17.wav differ diff --git a/sounds/windows-18.wav b/sounds/windows-18.wav index dc0b8e7e..be2279dd 100644 Binary files a/sounds/windows-18.wav and b/sounds/windows-18.wav differ diff --git a/sounds/windows-19.wav b/sounds/windows-19.wav index 9aedf564..48cfb47b 100644 Binary files a/sounds/windows-19.wav and b/sounds/windows-19.wav differ diff --git a/sounds/windows-2.wav b/sounds/windows-2.wav index c5a704b7..2ef65f14 100644 Binary files a/sounds/windows-2.wav and b/sounds/windows-2.wav differ diff --git a/sounds/windows-20.wav b/sounds/windows-20.wav index da81d68a..4ac73955 100644 Binary files a/sounds/windows-20.wav and b/sounds/windows-20.wav differ diff --git a/sounds/windows-21.wav b/sounds/windows-21.wav index 7ef2c1e7..5c819900 100644 Binary files a/sounds/windows-21.wav and b/sounds/windows-21.wav differ diff --git a/sounds/windows-3.wav b/sounds/windows-3.wav index f29bb6c4..9eeba620 100644 Binary files a/sounds/windows-3.wav and b/sounds/windows-3.wav differ diff --git a/sounds/windows-4.wav b/sounds/windows-4.wav index b2e2f2d9..fc903c96 100644 Binary files a/sounds/windows-4.wav and b/sounds/windows-4.wav differ diff --git a/sounds/windows-5.wav b/sounds/windows-5.wav index ef33b032..935c269d 100644 Binary files a/sounds/windows-5.wav and b/sounds/windows-5.wav differ diff --git a/sounds/windows-6.wav b/sounds/windows-6.wav index 4c152a71..f403a2ea 100644 Binary files a/sounds/windows-6.wav and b/sounds/windows-6.wav differ diff --git a/sounds/windows-7.wav b/sounds/windows-7.wav index 5fa01563..fa99cdaa 100644 Binary files a/sounds/windows-7.wav and b/sounds/windows-7.wav differ diff --git a/sounds/windows-8.wav b/sounds/windows-8.wav index 5975baf3..f333f7ab 100644 Binary files a/sounds/windows-8.wav and b/sounds/windows-8.wav differ diff --git a/sounds/windows-9.wav b/sounds/windows-9.wav index 3734be3b..4b93342f 100644 Binary files a/sounds/windows-9.wav and b/sounds/windows-9.wav differ diff --git a/yarn.lock b/yarn.lock index 45619bcd..65a500de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -296,27 +296,27 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@sidneys/dom-tools@^1.36.0": - version "1.36.0" - resolved "https://registry.yarnpkg.com/@sidneys/dom-tools/-/dom-tools-1.36.0.tgz#f78ed27a5c91055d27bc3ec287561c1255a5f10e" - integrity sha512-SAN6m1PTWuh471TIi1PgUFJWme8Oj9xpAiyuTW6e6+sDz9/W6erBzQfNDnO3/clzTnPHWvd5CXTR6lvlTJmJSA== +"@sidneys/dom-tools@^1.39.0": + version "1.39.0" + resolved "https://registry.yarnpkg.com/@sidneys/dom-tools/-/dom-tools-1.39.0.tgz#53a6db406245a11a775a5b239a238d13a6dc3c60" + integrity sha512-IZVRnz/MHX+s19TGPK7QLudf8Urzv3cyBQvw9bbPFJYy4s5DpY34tcY190F/FMYNin2KLp2DhoMYA0DqgeIIBA== dependencies: - "@sidneys/logger" "^1.47.0" + "@sidneys/logger" "^1.50.0" clean-css "^4.2.1" file-url "^2.0.2" lodash "^4.17.11" moment "^2.24.0" moment-duration-format "^2.2.2" -"@sidneys/electron-build@^1.59.0": - version "1.59.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-build/-/electron-build-1.59.0.tgz#ac576c150e7cbcaa29e18a5480b0f7bb22755a01" - integrity sha512-fOYo0XveBLwehqd4ypZFdUWOxQcV+W7LzUmJgB77/mDMmtkhlYGD9T7LqNTG7npkxEoaH8UWk9tugsCeoOX1Zw== +"@sidneys/electron-build@^1.63.0": + version "1.63.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-build/-/electron-build-1.63.0.tgz#9edd66f4c73e45313702fadc48fd553023960119" + integrity sha512-UvWJyWq0FriDVcE8oo8NN+8EikaV4G477IxhmueI+gnfieBojzVZYWkb/cgX1wcnNwJmrvWVT++/5NimXevbGA== dependencies: - "@sidneys/electron-deploy-github" "^1.45.0" - "@sidneys/is-env" "^1.42.0" - "@sidneys/logger" "^1.47.0" - "@sidneys/releasenotes" "^1.39.0" + "@sidneys/electron-deploy-github" "^1.48.0" + "@sidneys/is-env" "^1.45.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/releasenotes" "^1.42.0" app-root-path "^2.1.0" electron-builder "^20.38.5" electron-icon-maker "0.0.4" @@ -325,23 +325,23 @@ lodash "^4.17.11" minimist "^1.2.0" -"@sidneys/electron-debug-service@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-debug-service/-/electron-debug-service-0.39.0.tgz#f5e711080054613a0d161f1d4d87144240688319" - integrity sha512-zEH0x9D6zhLZe7T8tm1jsazkGBSlhQEMcpU/9Ut4jgr4ZoEZaZIEjLYLyRDK2I3ejK45otMBAlpsSADw5q5oJg== +"@sidneys/electron-debug-service@^0.42.0": + version "0.42.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-debug-service/-/electron-debug-service-0.42.0.tgz#3f59c70bf1d574e65f4216754b7394f5f133731e" + integrity sha512-rymXgCeypIKdGx7Nzx/RBqoIpKe/8bj1lCGT3B5Li07Pkh7hfNuotB1le+prBp598NmS+uO3nuuLYUCnRBit6g== dependencies: - "@sidneys/is-env" "^1.42.0" - "@sidneys/logger" "^1.47.0" + "@sidneys/is-env" "^1.45.0" + "@sidneys/logger" "^1.50.0" filesize "^4.1.2" try-require "^1.2.1" -"@sidneys/electron-deploy-github@^1.45.0": - version "1.45.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-deploy-github/-/electron-deploy-github-1.45.0.tgz#d0ec6336ce159b66c1ca9de9a25d213422eed2bf" - integrity sha512-tt7+jQRut10A38SRt039EMMPzuz4tyEajr4LAjzJiqXkeqz1S4DDNWN1rfavKQqWGHhdOpvpvXCQcGNQ8zufvw== +"@sidneys/electron-deploy-github@^1.48.0": + version "1.48.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-deploy-github/-/electron-deploy-github-1.48.0.tgz#562653fe1aebaef7096729dfd8a3ba3bd72788f3" + integrity sha512-G1UktEGbI6+mheO/MNzX2R6GiCcqhlUegVa8gxXB937MgxnWyU49DkZD3UjmCpsIgW5/2nPhbgxUXN1+BTivGA== dependencies: - "@sidneys/logger" "^1.47.0" - "@sidneys/releasenotes" "^1.39.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/releasenotes" "^1.42.0" app-root-path "^2.1.0" git-branch "^2.0.1" globby "^9.0.0" @@ -350,77 +350,80 @@ progress "^2.0.3" publish-release sidneys/publish-release.git#pin-dependencies -"@sidneys/electron-dialog-provider@^1.40.0": - version "1.40.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-dialog-provider/-/electron-dialog-provider-1.40.0.tgz#beda4e764055b75740bfb2d51cf8ade27f293e9e" - integrity sha512-fYSC4q/NWOIjuEzPKogpVykDg+cjEdsmFKu8FFFvFQTvXv3v1ay636BOxvxlS+ysDwXO4ACIq03uvgCJvtQx4A== +"@sidneys/electron-dialog-provider@^1.43.0": + version "1.43.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-dialog-provider/-/electron-dialog-provider-1.43.0.tgz#dfca9b3f7cdf96f869ae6c5636a731522b1ba7d1" + integrity sha512-UGxGqtjblt6ma8vSBUwYPDznG3sAQAEcrjNADEp/g1cfSKSB/4/pfmJk4gQoMj+KsOj/FCpMeUY8WehQ4QS4oA== dependencies: - "@sidneys/logger" "^1.47.0" - "@sidneys/platform-tools" "^1.47.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/platform-tools" "^1.51.0" -"@sidneys/electron-localsetup@^1.40.0": - version "1.40.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-localsetup/-/electron-localsetup-1.40.0.tgz#fa6fb4a8ad059ed344250b7eb931849bdc9a83a3" - integrity sha512-1XB5wPGQS4K1HDB9sfhnSigXn8c7kU9t+YTEQm2Ld6fgROpa17Iwj+Na7cpc8nOa8xqmhDWMZmMUO0LhUia62w== +"@sidneys/electron-localsetup@^1.44.0": + version "1.44.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-localsetup/-/electron-localsetup-1.44.0.tgz#13270f7c9b3b947c94fb339995197e8552fdb392" + integrity sha512-WG1uVsoFXP4m5UX6d8gB/rySTYrNsz9sKCCj1Pipmp++t4pYOpokbWlLzihsP6GlDj9w9Lu/S9htfQTplEUSyg== dependencies: - "@sidneys/is-env" "^1.42.0" - "@sidneys/logger" "^1.47.0" - "@sidneys/platform-tools" "^1.47.0" + "@sidneys/is-env" "^1.45.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/platform-tools" "^1.51.0" app-root-path "^2.1.0" fkill "^5.3.0" fs-extra "^7.0.1" globby "^9.0.0" + jsonfile latest + lodash latest minimist "^1.2.0" + try-require "^1.2.1" -"@sidneys/electron-notification-provider@0.40.0", "@sidneys/electron-notification-provider@^0.40.0": - version "0.40.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-notification-provider/-/electron-notification-provider-0.40.0.tgz#1429e070554a7a1472e35db861e62a613eb6b20b" - integrity sha512-4f2rv1+we+rC1y/0ZcIy18TFueYBSNPs1Om5IfOQkdhY90yNZVu5pM29n4rZedTPA7UDwznt8Xqm9F7UyfQ4qw== +"@sidneys/electron-notification-provider@0.43.0", "@sidneys/electron-notification-provider@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-notification-provider/-/electron-notification-provider-0.43.0.tgz#82fa9aa9bf9eb4eaa30cc87413dc86610b3fc03d" + integrity sha512-XWP1Ndi7I3Agwm9jjzSH9ePN956QRc3zr41+gj2C4na8zdaovqCSsKYqvGt8iOZKnF/0zXzT3TR9JHnXUAVeqA== dependencies: - "@sidneys/logger" "^1.47.0" + "@sidneys/logger" "^1.50.0" lodash "^4.17.11" -"@sidneys/electron-power-service@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-power-service/-/electron-power-service-0.39.0.tgz#c92b800efd6d68924d26f83c1ccbdeb0f79d1698" - integrity sha512-hosp3ckP7BGOpwf/YHYfl+gFs4iGwPQbsVfgocDe1uyhG1+YkQFgGipazRV2giUBJ5kOhSgMoQVEKA0yULGYOg== +"@sidneys/electron-power-service@^0.42.0": + version "0.42.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-power-service/-/electron-power-service-0.42.0.tgz#bb20f36c9d34b8d5e17d331bad03fcb999edd16f" + integrity sha512-S9gj/crBoyHwivnfKJS9t3lRpSKngru9xqHgV7NlF4rAfw+72wWd7G+Wg+QTZjnPfBoT4/mAo1PyOlo9xMyHQQ== dependencies: - "@sidneys/logger" "^1.47.0" - "@sidneys/platform-tools" "^1.47.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/platform-tools" "^1.51.0" -"@sidneys/electron-updater-service@^0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@sidneys/electron-updater-service/-/electron-updater-service-0.54.0.tgz#e02ccbdfec753fef5ab23916f7c032b71002c929" - integrity sha512-RHHNpbF/zleICjCEIpmyVDnPttIfdve0DyUCVhJ1elGA/WiVIXdYXBI+2G4eps06F5t26tHt1K4UbIkF5Qn+OQ== +"@sidneys/electron-updater-service@^0.57.0": + version "0.57.0" + resolved "https://registry.yarnpkg.com/@sidneys/electron-updater-service/-/electron-updater-service-0.57.0.tgz#ee5b95220991b19f34a8622a6581d50366db1d05" + integrity sha512-0T2G7BBupC46YfLiuEtydRbdQXQP4LkxZYPY04wseLn+7EPtspgzumHMfZMf2n+90HW/8b0KNTpj8gOc2LaEig== dependencies: - "@sidneys/electron-dialog-provider" "^1.40.0" - "@sidneys/electron-notification-provider" "0.40.0" - "@sidneys/logger" "^1.47.0" - "@sidneys/platform-tools" "^1.47.0" + "@sidneys/electron-dialog-provider" "^1.43.0" + "@sidneys/electron-notification-provider" "0.43.0" + "@sidneys/logger" "^1.50.0" + "@sidneys/platform-tools" "^1.51.0" app-root-path "^2.1.0" electron-store "^2.0.0" electron-updater "^4.0.6" remove-markdown "^0.3.0" semver-compare "^1.0.0" -"@sidneys/is-env@^1.42.0": - version "1.42.0" - resolved "https://registry.yarnpkg.com/@sidneys/is-env/-/is-env-1.42.0.tgz#793419adf1e55ddb1a5ed1d396f7c5d7a463f6a6" - integrity sha512-OV/P/fNr9abofnHKGZsXtEdsWhWgzcbI9aSI7G7z/lbYHbUIA4ZN9chHBYAEVJq3Z9Vl0Y7hdFsRc0eg1ju+Fg== +"@sidneys/is-env@^1.45.0": + version "1.45.0" + resolved "https://registry.yarnpkg.com/@sidneys/is-env/-/is-env-1.45.0.tgz#61aa03a8f59b43a5c31523b655bdcff97530b151" + integrity sha512-CjxexuwrQ7YO27O0LQTUrPjsvExl95tu8HuAZkDTqRSpwaS+t2bsoIUhWdcnPPDBcLndkstxHADOvbDV6RhZ7w== dependencies: - "@sidneys/required-count" "^1.50.0" + "@sidneys/required-count" "^1.54.0" chalk "^2.4.2" chalkline "^0.0.5" lodash "^4.17.11" minimist "^1.2.0" try-require "^1.2.1" -"@sidneys/logger@^1.47.0": - version "1.47.0" - resolved "https://registry.yarnpkg.com/@sidneys/logger/-/logger-1.47.0.tgz#b5a89961d8d550b14576b2b33f1ba025b8066f42" - integrity sha512-vzrV8dIG2zV7LlubB4EQ6VW4VEoNmwr7J/jBz4LXL3MCYDHhmmus9hEpehjYL0ANMv5T/4/wlU4J1teC6rURxA== +"@sidneys/logger@^1.50.0": + version "1.50.0" + resolved "https://registry.yarnpkg.com/@sidneys/logger/-/logger-1.50.0.tgz#d95728bed41bbb278e635ed91b6b1b67c076c714" + integrity sha512-vKUkPQ1CO/m/ie95hRazNxyUu3IbpBGO4ES3keEXm5iXeMpbA1MYkTSTTu/xen99iydkn/lFnvs0F1JuTNXY+w== dependencies: - "@sidneys/is-env" "^1.42.0" + "@sidneys/is-env" "^1.45.0" appdirectory "^0.1.0" chalk "^2.4.2" fs-extra "^7.0.1" @@ -429,29 +432,29 @@ read-pkg-up "^4.0.0" root-path "^0.2.1" -"@sidneys/platform-tools@^1.47.0": - version "1.47.0" - resolved "https://registry.yarnpkg.com/@sidneys/platform-tools/-/platform-tools-1.47.0.tgz#9da8d4dd1822a3023f91796343e50ccbca1c6ecb" - integrity sha512-AOG0LQqyEwwReUMWYv3eH3MY5gaHhUfwtDGvdOx4fQUjBg52hA3UPbhR4CTUqCuTV7SxRfRQ5LeSLgeHX0qU3A== +"@sidneys/platform-tools@^1.51.0": + version "1.51.0" + resolved "https://registry.yarnpkg.com/@sidneys/platform-tools/-/platform-tools-1.51.0.tgz#7d892f3a078b1bc2123f785af3e4ea14434a3bbb" + integrity sha512-G3UvzcNvGn5i2e4ntK+Hc0zh1EO5+2bcNXQDB4bM5PCvr5je0ds4Yd79DsubYj7sSydUBdbz2rA5KuZncWQOCA== dependencies: lodash "^4.17.11" -"@sidneys/releasenotes@^1.39.0": - version "1.39.0" - resolved "https://registry.yarnpkg.com/@sidneys/releasenotes/-/releasenotes-1.39.0.tgz#8e182321e6e8cb99fdc3d1b4c4f7622d6fa3b4b6" - integrity sha512-NJuFa3uvJZvuZxV3uo/9qwoWqlPJESUsXgeKpBcvf0x6+x4GQruCa32QBQ5db4ne25U4n2YSmGQTqdhjFBImHw== +"@sidneys/releasenotes@^1.42.0": + version "1.42.0" + resolved "https://registry.yarnpkg.com/@sidneys/releasenotes/-/releasenotes-1.42.0.tgz#0e73ff24d6251362401d988fb5e837505a2c62e2" + integrity sha512-a33DmZoBOYBQ0+iIEdnGBhG3U/CCELzpMpguOIPWcfPIsgNg9U/tk+AvuvI5fX6GF+UGnnMCwQBW5f5kmlqMvQ== dependencies: - "@sidneys/logger" "^1.47.0" + "@sidneys/logger" "^1.50.0" app-root-path "^2.1.0" fs-extra "^7.0.1" json2md "^1.6.3" lodash "^4.17.11" remove-markdown "^0.3.0" -"@sidneys/required-count@^1.50.0": - version "1.50.0" - resolved "https://registry.yarnpkg.com/@sidneys/required-count/-/required-count-1.50.0.tgz#4e13716181be0cf58e799d54286262e54089de20" - integrity sha512-voYT75xIAYlYdJitWfN1krodO0MYfR4YxFQf1b6bwlOAew+OvriUaKuuNs5IvHCUwZSf1zTp2ia3KAB1O6Fr6Q== +"@sidneys/required-count@^1.54.0": + version "1.54.0" + resolved "https://registry.yarnpkg.com/@sidneys/required-count/-/required-count-1.54.0.tgz#d1371ebf12a8631f0ea231fc51c7412c0a56a566" + integrity sha512-Q+4gb3bCv6Qg6/MNyLY5/lH4TS8XTblclIxoFECM4q+34tkUMZd1TExUMXYKHd5RfdsA8KsCbEQH9XWASP809Q== "@sindresorhus/is@^0.7.0": version "0.7.0" @@ -535,6 +538,11 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -1437,7 +1445,7 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0: +debug@3.2.6, debug@^3.0.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -1507,6 +1515,13 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1590,10 +1605,10 @@ dmg-builder@6.5.4: parse-color "^1.0.0" sanitize-filename "^1.6.1" -docdash@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/docdash/-/docdash-1.0.2.tgz#0449a8f6bb247f563020b78a5485dea95ae2e094" - integrity sha512-IEM57bWPLtVXpUeCKbiGvHsHtW9O9ZiiBPfeQDAZ7JdQiAF3aNWQoJ3e/+uJ63lHO009yn0tbJjtKpXJ2AURCQ== +docdash@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/docdash/-/docdash-1.0.3.tgz#1ca4d37940275f05f926c1326cde36d88b9f3fbc" + integrity sha512-gPepWBPJSWK70PRqOtxLvZ2FLJlw49DZASs73yqmM7uM45WEygQJmHPBrrQ9eLeEkgPKUzDv+sr2SHgQS1OQ0g== doctrine@^3.0.0: version "3.0.0" @@ -1787,6 +1802,27 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.5.1: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-promise@^3.0.2: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -1820,10 +1856,10 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.14.0.tgz#380739df2489dd846baea008638b036c1e987974" - integrity sha512-jrOhiYyENRrRnWlMYANlGZTqb89r2FuRT+615AabBoajhNjeh9ywDNlh2LU9vTqf0WYN+L3xdXuIi7xuj/tK9w== +eslint@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.14.1.tgz#490a28906be313685c55ccd43a39e8d22efc04ba" + integrity sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.9.1" @@ -2097,10 +2133,10 @@ file-type@^10.7.0: resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.7.0.tgz#b6a9bf24f1d14ba514ab9087c7864d4da4a7ce76" integrity sha512-AbaGtdWYYRaVrv2MwL/65myuRJ9j3e79e7etJ79US18QHuVlzJBcQHUH+HxDUoLtbyWRTUfLzLkGXX3pP9kfZg== -file-type@^10.7.1: - version "10.7.1" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.7.1.tgz#bcfdd618fddfa7f7e5fc504e08b62cfec7bda8f2" - integrity sha512-kUc4EE9q3MH6kx70KumPOvXLZLEJZzY9phEVg/bKWyGZ+OA9KoKZzFR4HS0yDmNv31sJkdf4hbTERIfplF9OxQ== +file-type@^10.8.0: + version "10.8.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.8.0.tgz#676dfd43fdb75d8ccdba1cff53351b71190c25ff" + integrity sha512-287YScp3cpRWzhM+/E+A85O4FJi4dHus0eA6eBUzkRc08d/JAwqeczU/nwLstRuzzq/S7TqvQg9mhv7xVsdINQ== file-type@^3.1.0: version "3.9.0" @@ -2161,7 +2197,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -findup-sync@^2.0.0: +findup-sync@2.0.0, findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= @@ -2192,6 +2228,13 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + dependencies: + is-buffer "~2.0.3" + flatted@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" @@ -2287,6 +2330,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -2414,7 +2462,7 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: +glob@7.1.3, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== @@ -2581,6 +2629,11 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -2619,6 +2672,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" @@ -2642,6 +2702,11 @@ he@1.1.1: resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -2659,6 +2724,11 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== +howler@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.1.tgz#b8ae44b83f4b8a5b5ef354030ed0927314d8a996" + integrity sha512-9nwyDCGxhAGMmNXDfMLv0M/uS/WUg2//jG6t96D8DqbbsVZgXQzsP/ZMItbWO/Fqg7Gg69kOv3xVSDzJdd7aqA== + http-cache-semantics@3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -2877,6 +2947,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" @@ -2884,7 +2959,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -2917,6 +2992,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3082,6 +3162,13 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -3092,6 +3179,13 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3217,7 +3311,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0: +js-yaml@3.12.0, js-yaml@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== @@ -3321,7 +3415,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^5.0.0: +jsonfile@^5.0.0, jsonfile@latest: version "5.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== @@ -3525,11 +3619,18 @@ lodash@^3.3.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.13.1, lodash@^4.17.11: +lodash@^4.13.1, lodash@^4.17.11, lodash@latest: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +log-symbols@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -3756,6 +3857,35 @@ mocha@^5.2.0: mkdirp "0.5.1" supports-color "5.4.0" +mocha@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.0.1.tgz#c287da87913fa0edc4c44850ba8bc4fdbf20d3ea" + integrity sha512-tQzCxWqxSD6Oyg5r7Ptbev0yAMD8p+Vfh4snPFuiUsWqYj0eVYTDT2DkEY307FTj0WRlIWN9rWMMAUzRmijgVQ== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + findup-sync "2.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.12.0" + log-symbols "2.2.0" + minimatch "3.0.4" + mkdirp "0.5.1" + ms "2.1.1" + node-environment-flags "1.0.4" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "12.0.5" + yargs-parser "11.1.1" + yargs-unparser "1.5.0" + moment-duration-format@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/moment-duration-format/-/moment-duration-format-2.2.2.tgz#b957612de26016c9ad9eb6087c054573e5127779" @@ -3771,7 +3901,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: +ms@2.1.1, ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== @@ -3837,6 +3967,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-environment-flags@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.4.tgz#0b784a6551426bfc16d3b2208424dcbc2b2ff038" + integrity sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q== + dependencies: + object.getownpropertydescriptors "^2.0.3" + node-uuid@~1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" @@ -3910,6 +4047,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" + integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== + object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" @@ -3922,6 +4064,24 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -5149,7 +5309,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -5235,7 +5395,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -5254,6 +5414,13 @@ supports-color@5.4.0: dependencies: has-flag "^3.0.0" +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -5664,13 +5831,20 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.10, which@^1.2.14, which@^1.2.8, which@^1.2.9: +which@1.3.1, which@^1.2.10, which@^1.2.14, which@^1.2.8, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" @@ -5792,7 +5966,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yargs-parser@^11.1.1: +yargs-parser@11.1.1, yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== @@ -5808,7 +5982,16 @@ yargs-parser@^3.2.0: camelcase "^3.0.0" lodash.assign "^4.1.0" -yargs@^12.0.5: +yargs-unparser@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d" + integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw== + dependencies: + flat "^4.1.0" + lodash "^4.17.11" + yargs "^12.0.5" + +yargs@12.0.5, yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==