diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..0fbf021 --- /dev/null +++ b/.npmrc @@ -0,0 +1,4 @@ +runtime = electron +target = 1.6.11 +target_arch = x64 +disturl = https://atom.io/download/atom-shell \ No newline at end of file diff --git a/README.md b/README.md index 9577e0b..62d983d 100644 --- a/README.md +++ b/README.md @@ -127,3 +127,38 @@ List of contributors that have helped shaped this version of autoEdit by contrib + + diff --git a/docs/index.html b/docs/index.html index 5990116..33b48ec 100644 --- a/docs/index.html +++ b/docs/index.html @@ -200,7 +200,7 @@

Open source

pietro@autoEdit.io | -Twitter | +Twitter | Facebook | Mailing list diff --git a/electron/app.js b/electron/app.js index 94decb0..d1c8f10 100644 --- a/electron/app.js +++ b/electron/app.js @@ -26,7 +26,6 @@ module.exports = { }; },{"ffmpeg-static":39,"ffprobe-static":40,"path":50}],2:[function(require,module,exports){ -(function (process){ 'use strict'; var $ = require('jquery'); @@ -74,10 +73,10 @@ $(document).ready(function () { */ if (window.process !== undefined) { - console.info("In Electron v ", process.versions.electron); - console.info("Using chrome v ", process.versions.chrome); - console.info("Using v8 engine v ", process.versions.v8); - console.info("Using node v ", process.versions.node); + console.info("In Electron v ", window.process.versions.electron); + console.info("Using chrome v ", window.process.versions.chrome); + console.info("Using v8 engine v ", window.process.versions.v8); + console.info("Using node v ", window.process.versions.node); //TODO: update this part with Electron compatible code @@ -145,8 +144,7 @@ $(document).ready(function () { } }); -}).call(this,require('_process')) -},{"./demo_db":5,"./router":9,"./router_paperedit":10,"_process":51,"backbone":37,"backbone.mousetrap":125,"bootstrap":38,"jquery":42}],3:[function(require,module,exports){ +},{"./demo_db":5,"./router":9,"./router_paperedit":10,"backbone":37,"backbone.mousetrap":125,"bootstrap":38,"jquery":42}],3:[function(require,module,exports){ 'use strict'; var Backbone = require('backbone'); @@ -729,7 +727,11 @@ module.exports = Backbone.Router.extend({ settingsPanel: function () { console.debug('Router: settings panel: '); - var tmpSettings = { credentials: { ibm: window.IBMWatsonKeys() } }; + var tmpSettings = { credentials: { + ibm: window.IBMWatsonKeys(), + microsoft: { key: "TBC" }, + google: window.GoogleKeys() + } }; var settingsView = new SettingsView({ settings: tmpSettings }); displayMain(settingsView); }, @@ -1199,11 +1201,27 @@ __p+='
\n\n\t\n\t'; if(!window.frontEndEnviromentNWJS ){ __p+='\n\t \n\t'; } -__p+='\n\t\n\n\t\n\t\n\t\n\n\t\t
\n\t\t ×\n\t\t IBM Watson Speech To Text Service Credentials \n\t\t

Here you can check or edit your credentials for the IBM Speech To Text service.

\n\t\t\t

Note that these are different from your IBM bluemix credentials.

\n\t\t\t

You need to activate a Watson Speech To Text Service on Bluemix to get these.

\n\t\t\t

Checkout the user manual for more info.

\n\t\t
\n\t\n\n\t
\n\t\t\n\t\t
\n\t\t\t
\n\t\t\t\t

IBM Watson Speech to text Service credentials

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t
  • Settings
  • \n\t\n\t\n\n
    \n\n \n \n\n \n
    \n
    \n \t
    \n\t
    \n\t ×\n\t IBM Watson Speech To Text Service Credentials \n\t

    Here you can check or edit your credentials for the IBM Speech To Text service.

    \n\t\t

    Note that these are different from your IBM bluemix credentials.

    \n\t\t

    You need to activate a Watson Speech To Text Service on Bluemix to get these.

    \n\t\t

    Checkout the user manual for more info.

    \n\t
    \n\t\n\n\t\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    IBM Watson Speech to text Service credentials

    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tSave Credentials\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\n
    '; +'" class="form-control" id="password" placeholder="e.g. 2QKJ79uRsD2a">\n\t\t\t\t
    \n\t\t\t\tSave Credentials\n\t\t\t
    \n\t\t
    \n\t\n
    \n\n\n
    \n\t\t
    \n\t
    \n\t ×\n\t Google Speech To Text Service Credentials \n\t

    Here you can check or edit your credentials for the Google Speech To Text service.

    \n\t
    \n\n \n\t\n\t
    \n\t\t
    \n\t\t\t
    \n\t\t
    \n \n '; + if(window.process !== undefined ){ +__p+='\n \n \n\n \n\n

    \n\n '; + }else{ +__p+='\n \n '; + } +__p+='\n
    \n
    \n
    \n\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Google Speech to text Service credentials

    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t\t\tSave Credentials\n\t\t\t
    \n\t\t
    \n\t
    \n
    \n
    \n \t\t
    \n\t
    \n\t ×\n\t Microsoft Speech To Text Service \n\t

    Microsoft Bing STT service coming soon.

    \n\t
    \n\n\t
    \n\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Microsoft bing Speech to text Service credentials

    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\n\t\t\t\tSave Credentials\n\t\t\t
    \n\t\t
    \n\t
    \n\n\n\n\n
    \n \n
    \n\n
    \n\n\n'; } return __p; }; @@ -1263,17 +1281,17 @@ __p+='
    \n\n \n '; if(!window.frontEndEnviromentNWJS ){ __p+='\n \n '; } -__p+='\n \n\n \n \n \n
    \n \n
    \n
    \n
    \n \n '; +__p+='\n \n\n \n \n \n\n\n\n\n\n \n \n
    \n
    \n
    \n \n '; if(window.process !== undefined ){ -__p+='\n \n \n\n \n\n

    \n\n '; +__p+='\n \n \n\n \n\n

    \n\n '; }else{ __p+='\n\n \n '; } -__p+='\n
    \n \n
    \n
    \n
    \n
    \n
    \n

    IBM is fast and more accurate while Gentle is free of charge, works offline, and is only in English. Use Gentle if you are working with sensitve informations. Integration with Gentle is a bit more experimental at this stage. Follow the link for more info on setting it up\n .\n

    \n

    With IBM chose narrowband for telephone recordings, everything else is broadband.\n

    \n

    The IBM option always takes 5 minutes to generate a transcription regardless of the length of the media(audio or video file). In the current version Pocketsphinx and Gentle take slightly more then the duration of the media(audio or video) to do a full transcription (eg 27min will take 30min to transcribe).

    \n
    \n \n
    \n
    \n \n \n

    Chose the language of your media file. The default is English US.

    \n

    IBM® recommends that you use narrowband model for decoding of telephone speech.

    \n
    \n
    \n

    \n

    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n
    \n\n \n \n\n \n
    \n
    \n\n

    IBM is fast and more accurate while Gentle is free of charge, works offline, and is only in English. Use Gentle if you are working with sensitve informations. Integration with Gentle is a bit more experimental at this stage. Follow the link for more info on setting it up\n .\n

    \n

    With IBM choose narrowband for telephone recordings, everything else is broadband.\n

    \n

    The IBM option always takes 5 minutes to generate a transcription regardless of the length of the media(audio or video file). In the current version Pocketsphinx and Gentle take slightly more then the duration of the media(audio or video) to do a full transcription (eg 27min will take 30min to transcribe).

    \n\n
    \n\n
    \n
    \n \n
    \n
    \n \n \n

    choose the language of your media file. The default is English US.

    \n

    IBM® recommends that you use narrowband model for decoding of telephone speech.

    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n

    choose the language of your media file. The default is English US.

    \n
    \n
    \n \n\n
    \n
    \n
    \n \n Coming soon\n \n
    \n
    \n \n \n

    choose the language of your media file. The default is English US.

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n See User manual for extra setup needed, Only support US English For now
    \n \n\n\n
    \n
    \n
    \n Does not require extra setup, only supports US English for now
    \n\n
    \n
    \n
    \n coming soon\n
    \n
    \n\n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n
    \n \n
    \n \n
    \n\n'; +'\n
    \n
    \n \n
    \n\n
    \n\n \n
    \n \n \n \n\n'; } return __p; }; @@ -2201,6 +2219,7 @@ var render = require('./utils').render; if (typeof window.nw !== 'undefined') { var watsonKeysPath = window.nw.App.dataPath + '/wttskeys.json'; + var googleKeysPath = window.nw.App.dataPath + '/gskeys.json'; } else { //not in nwjs var watsonKeysPath = "/"; @@ -2223,7 +2242,10 @@ module.exports = Backbone.View.extend({ }, events: { - 'click #submitBtn': 'save', + 'click #submitBtnIbmCredentials': 'saveIBM', + 'click #submitBtnGoogleCredentials': 'saveGoogle', + 'click #submitBtnIbmMicrosoftCredentisl': 'saveMicrosoft', + "click #btnElectronInputMediaFileGoogleCredentials": "electronGetFilePathGoogleCredentials", "keypress .form-control": "onEnterListener" }, @@ -2236,8 +2258,43 @@ module.exports = Backbone.View.extend({ } }, - save: function (e) { + electronGetFilePathGoogleCredentials: function (e) { + e.preventDefault(); + var self = this; + window.openFileDiaglogueJSON(function (fileName) { + console.log(fileName); + self.newFilePath = fileName[0]; + console.log(self.newFilePath); + document.getElementById("inputFilePreviewGoogleCredentials").innerHTML = self.newFilePath; + // console.log(document.getElementById("title").value); + if (window.process !== undefined) { + //TODO: maybe use fs instead. + // const fs = require('fs'); + // var obj = JSON.parse(fs.readFileSync('file', 'utf8')); + // const googleCrdentials = require(self.newFilePath); + // console.log(googleCrdentials); + window.setGoogleAPIkeys(self.newFilePath); + window.alert("Thank you! Saved the Google API keys so you don't have to enter them again."); + //update elements in form form + var googleKeys = window.GoogleKeys(); + + document.getElementById("apiKey").value = googleKeys.apiKey; + // document.getElementById("project_id").value = googleKeys.project_id; + // document.getElementById("private_key_id").value = googleKeys.private_key_id; + // document.getElementById("private_key").value = googleKeys.private_key; + // document.getElementById("client_email").value = googleKeys.client_email; + // document.getElementById("client_id").value = googleKeys.client_id; + // document.getElementById("auth_uri").value = googleKeys.auth_uri; + // document.getElementById("token_uri").value = googleKeys.token_uri; + // document.getElementById("auth_provider_x509_cert_url").value = googleKeys.auth_provider_x509_cert_url; + // document.getElementById("client_x509_cert_url").value = googleKeys.client_x509_cert_url; + } + }); + }, + + saveIBM: function (e) { e.preventDefault(); + //SAVE IBM credentialls var ibmCredentials = {}; ibmCredentials.username = this.$('input[name=username]').val().trim(); ibmCredentials.password = this.$('input[name=password]').val().trim(); @@ -2245,10 +2302,41 @@ module.exports = Backbone.View.extend({ if (ibmCredentials.username != "" && ibmCredentials.password != "") { //save window.setWatsonAPIkeys(ibmCredentials); - window.alert("Thank you! Saved the keys so you don't have to enter them again."); + window.alert("Thank you! Saved the IBM keys so you don't have to enter them again."); } else { alert("Please add valid credentials to save"); } + // End Save IBM crdentials + + // + }, + saveGoogle: function (e) { + e.preventDefault(); + console.log(document.getElementById("apiKey").value); + + var apiKeyToSave = { apiKey: document.getElementById("apiKey").value }; + window.setGoogleAPIkeys(apiKeyToSave); + //SAVE Google credentialls + alert("Thank you! Saved the Google keys so you don't have to enter them again."); + + // + }, + + saveMicrosoft: function (e) { + e.preventDefault(); + // var ibmCredentials = {}; + // ibmCredentials.username = this.$('input[name=username]').val().trim(); + // ibmCredentials.password = this.$('input[name=password]').val().trim(); + // //TODO: double check this + // if((ibmCredentials.username != "") && (ibmCredentials.password != "")){ + // //save + // window.setWatsonAPIkeys(ibmCredentials) + // window.alert("Thank you! Saved the keys so you don't have to enter them again."); + // }else{ + // alert("Please add valid credentials to save"); + // } + + // }, render: function () { @@ -2284,10 +2372,15 @@ module.exports = Backbone.View.extend({ this.newFilePath = ""; }, events: { - "click #btnElectronInputMediaFile": "electronGetFilePath", + 'click #btnElectronInputMediaFile': 'electronGetFilePath', 'click #submitBtn': 'save', - "keypress .form-control": "onEnterListener" + 'keypress .form-control': 'onEnterListener', + 'change input[type=radio]': 'changedRadio' + }, + //change view of language tab preferences when making a choice in radio button language options. + changedRadio: function (e) { + $('#languageTabs a[href="#' + e.currentTarget.value + '"]').tab('show'); }, onEnterListener: function (e) { @@ -2302,10 +2395,6 @@ module.exports = Backbone.View.extend({ electronGetFilePath: function (e) { e.preventDefault(); - // if (window.process !== undefined) { - // document.getElementById("open-file").click(); - // } - // var self = this; window.openFileDiaglogue(function (fileName) { console.log(fileName); @@ -2320,29 +2409,6 @@ module.exports = Backbone.View.extend({ }); }, - // console.log(fileName); - // //TODO: here do some file type checks and alert if not compatible file type with ffmpeg. - // //eg add in config.js array off ffmpeg `ffmpeg -formats` in termanl for list. - // //use path library to get extension, if extension not in array then give error. - - // //return an array of files, since we only accepting one, then it's always first elemet - // //TODO: here if modify that can accept multiple, then here could deal with that logic, eg generate a panel/card with title and description for each. - // //here could also default transcript name to name of file. - // self.newFilePath = fileName[0]; - // console.log(self.newFilePath ); - - // document.getElementById("inputFilePreview").innerHTML = self.newFilePath; - - // // console.log(document.getElementById("title").value); - // if(document.getElementById("title").value ===""){ - - // // self.newFilePath.split("/") - // document.getElementById("title").value = path.basename(self.newFilePath); - // } - - - // }, - save: function (e) { console.log(e.target); //TODO: there might be a better way to get values from a form in backbone? @@ -2354,40 +2420,50 @@ module.exports = Backbone.View.extend({ //If using "multiple" in unput will return all selected files's paths separated with `;`. split(";") to make an array. // loop through that array to create a list of title, description etc.. - // //before trying this, test how many clips at same time. // https://trello.com/c/oDr7bSy7/173-raised-by-ben-need-to-be-able-to-add-a-batch-of-clips-into-new-transcription-not-one-by-one - - var newDescription = this.$('textarea[name=description]').val(); //removing # carachter coz it breaks file path as it gets converted to %23 //TODO: there might be other symbols that have effect. figure proper way to sanitise input // var newFilePath = this.$('input[name=file]').val(); - var newLanguage = $('#languageModel').find(":selected")[0].value; + var newLanguage = ''; var newFilePath = this.newFilePath; + var radios = document.querySelectorAll('.languageRadio'); + var sttEngine; + //see which one has been selected by the user. + for (var i = 0; i < radios.length; i++) { + if (radios[i].type === 'radio' && radios[i].checked) { + // get value, set checked flag or do whatever you need to + sttEngine = radios[i].value; + } + } + //Listener on checkbox, that adds and removes IBM options if IBM is unclicked. //Need to have IBM Options as element here in form view that can be appended or removed //TODO: There has to be a better way to get the value of radio buttons check boxes eg document.querySelector(".options"); - if ($('#IBMoption')[0].checked) { - //check if inside electron - // if(window.process!== undefined){ - // //check if the app is connnected to the internet - // if(navigator.onLine){ - // sttEngine = "ibm"; - // //if not connected to the internet, alert that ibm stt won't work - // }else{ - // alert("You seem to be offline, check your internet connection and try again if you want to use IBM as a speech to text option."); - // } - // //if not in electron then just assign sttEngine to ibm - // }else{ - sttEngine = "ibm"; - // } - } else if ($('#genelteOption')[0].checked) { - sttEngine = "gentle"; - } else if ($('#pocketSphinxOption')[0].checked) { - sttEngine = "pocketsphinx"; + // if($('#IBMoption')[0].checked){ + // sttEngine = "ibm"; + // $('#languageModelIBM').find(":selected")[0].value; + // }else if(){ + // sttEngine = "google"; + // $('#languageModelIBM').find(":selected")[0].value; + + // }else if($('#genelteOption')[0].checked){ + // sttEngine = "gentle"; + // }else if($('#pocketSphinxOption')[0].checked){ + // sttEngine = "pocketsphinx"; + // } + + //TODO: there might be a better way to do this? + //set the language + if (sttEngine == 'ibm') { + newLanguage = $('#languageModelIBM').find(":selected")[0].value; + } else if (sttEngine == 'google') { + newLanguage = $('#languageModelGoogle').find(":selected")[0].value; + } else if (sttEngine == 'microsoft') { + newLanguage = $('#languageModelMicrosoft').find(":selected")[0].value; } if (newFilePath == "") { @@ -2397,8 +2473,7 @@ module.exports = Backbone.View.extend({ alert("please give this transcriptiona title"); //TODO: Set description in focus } else { - - if (sttEngine === "ibm") { + if (sttEngine === "ibm" || sttEngine === "google" || sttEngine === "microsoft") { if (navigator.onLine) { this.model.save({ title: newTitle, description: newDescription, @@ -2416,6 +2491,26 @@ module.exports = Backbone.View.extend({ } else { alert("You seem to be offline, check your internet connection and try again if you'd like to use IBM"); } + // }else if(sttEngine === "google"){ + // if(navigator.onLine){ + + + // }else{ + // alert("You seem to be offline, check your internet connection and try again if you'd like to use Google"); + // } + // }else if(sttEngine === "microsoft"){ + // if(navigator.onLine){ + + + // }else{ + // alert("You seem to be offline, check your internet connection and try again if you'd like to use Microsoft"); + // } + //captions can be used offline + } else if (sttEngine === "captions") { + + //pocketsphinx and Gentle handled as fallback cases. + // in the "backend" the `sttEngine` will determine which one is uded. + // these can be used offline } else { //TODO: sort out this repetition this.model.save({ title: newTitle, @@ -7912,9 +8007,9 @@ var path = require('path') var platform = os.platform() //patch for compatibilit with electron-builder, for smart built process. if(platform == "darwin"){ - platform = "mac"; + platform = "mac"; }else if(platform == "win32"){ - platform = "win"; + platform = "win"; } //adding browser, for use case when module is bundled using browserify. and added to html using src. if (platform !== 'linux' && platform !== 'mac' && platform !== 'win' && platform !=="browser") { @@ -25253,9 +25348,9 @@ process.chdir = function (dir) { process.umask = function() { return 0; }; },{}],52:[function(require,module,exports){ -/* globals window, exports, define */ +/* global window, exports, define */ -(function(window) { +!function() { 'use strict' var re = { @@ -25276,22 +25371,22 @@ process.umask = function() { return 0; }; sign: /^[\+\-]/ } - function sprintf() { - var key = arguments[0], cache = sprintf.cache - if (!(cache[key])) { - cache[key] = sprintf.parse(key) - } - return sprintf.format.call(null, cache[key], arguments) + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) } - sprintf.format = function(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length, is_positive = true, sign = '' + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign for (i = 0; i < tree_length; i++) { - node_type = get_type(parse_tree[i]) - if (node_type === 'string') { - output[output.length] = parse_tree[i] + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] } - else if (node_type === 'array') { + else if (Array.isArray(parse_tree[i])) { match = parse_tree[i] // convenience purposes only if (match[2]) { // keyword argument arg = argv[cursor] @@ -25309,12 +25404,12 @@ process.umask = function() { return 0; }; arg = argv[cursor++] } - if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && get_type(arg) == 'function') { + if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { arg = arg() } - if (re.numeric_arg.test(match[8]) && (get_type(arg) != 'number' && isNaN(arg))) { - throw new TypeError(sprintf("[sprintf] expecting number but found %s", get_type(arg))) + if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) } if (re.number.test(match[8])) { @@ -25324,57 +25419,57 @@ process.umask = function() { return 0; }; switch (match[8]) { case 'b': arg = parseInt(arg, 10).toString(2) - break + break case 'c': arg = String.fromCharCode(parseInt(arg, 10)) - break + break case 'd': case 'i': arg = parseInt(arg, 10) - break + break case 'j': arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) - break + break case 'e': arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() - break + break case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) - break + break case 'g': - arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg) - break + arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) + break case 'o': - arg = arg.toString(8) - break + arg = (parseInt(arg, 10) >>> 0).toString(8) + break case 's': arg = String(arg) arg = (match[7] ? arg.substring(0, match[7]) : arg) - break + break case 't': arg = String(!!arg) arg = (match[7] ? arg.substring(0, match[7]) : arg) - break + break case 'T': - arg = get_type(arg) + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() arg = (match[7] ? arg.substring(0, match[7]) : arg) - break + break case 'u': arg = parseInt(arg, 10) >>> 0 - break + break case 'v': arg = arg.valueOf() arg = (match[7] ? arg.substring(0, match[7]) : arg) - break + break case 'x': - arg = parseInt(arg, 10).toString(16) - break + arg = (parseInt(arg, 10) >>> 0).toString(16) + break case 'X': - arg = parseInt(arg, 10).toString(16).toUpperCase() - break + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break } if (re.json.test(match[8])) { - output[output.length] = arg + output += arg } else { if (re.number.test(match[8]) && (!is_positive || match[3])) { @@ -25386,45 +25481,49 @@ process.umask = function() { return 0; }; } pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' pad_length = match[6] - (sign + arg).length - pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : '') : '' - output[output.length] = match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) } } } - return output.join('') + return output } - sprintf.cache = Object.create(null) + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } - sprintf.parse = function(fmt) { - var _fmt = fmt, match = [], parse_tree = [], arg_names = 0 + var _fmt = fmt, match, parse_tree = [], arg_names = 0 while (_fmt) { if ((match = re.text.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = match[0] + parse_tree.push(match[0]) } else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = '%' + parse_tree.push('%') } else if ((match = re.placeholder.exec(_fmt)) !== null) { if (match[2]) { arg_names |= 1 var field_list = [], replacement_field = match[2], field_match = [] if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] + field_list.push(field_match[1]) while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] + field_list.push(field_match[1]) } else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] + field_list.push(field_match[1]) } else { - throw new SyntaxError("[sprintf] failed to parse named argument key") + throw new SyntaxError('[sprintf] failed to parse named argument key') } } } else { - throw new SyntaxError("[sprintf] failed to parse named argument key") + throw new SyntaxError('[sprintf] failed to parse named argument key') } match[2] = field_list } @@ -25432,72 +25531,41 @@ process.umask = function() { return 0; }; arg_names |= 2 } if (arg_names === 3) { - throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported") + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') } - parse_tree[parse_tree.length] = match + parse_tree.push(match) } else { - throw new SyntaxError("[sprintf] unexpected placeholder") + throw new SyntaxError('[sprintf] unexpected placeholder') } _fmt = _fmt.substring(match[0].length) } - return parse_tree - } - - var vsprintf = function(fmt, argv, _argv) { - _argv = (argv || []).slice(0) - _argv.splice(0, 0, fmt) - return sprintf.apply(null, _argv) - } - - /** - * helpers - */ - function get_type(variable) { - if (typeof variable === 'number') { - return 'number' - } - else if (typeof variable === 'string') { - return 'string' - } - else { - return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase() - } - } - - var preformattedPadding = { - '0': ['', '0', '00', '000', '0000', '00000', '000000', '0000000'], - ' ': ['', ' ', ' ', ' ', ' ', ' ', ' ', ' '], - '_': ['', '_', '__', '___', '____', '_____', '______', '_______'], - } - function str_repeat(input, multiplier) { - if (multiplier >= 0 && multiplier <= 7 && preformattedPadding[input]) { - return preformattedPadding[input][multiplier] - } - return Array(multiplier + 1).join(input) + return sprintf_cache[fmt] = parse_tree } /** * export to either browser or node.js */ + /* eslint-disable quote-props */ if (typeof exports !== 'undefined') { - exports.sprintf = sprintf - exports.vsprintf = vsprintf + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf } if (typeof window !== 'undefined') { - window.sprintf = sprintf - window.vsprintf = vsprintf + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf - if (typeof define === 'function' && define.amd) { + if (typeof define === 'function' && define['amd']) { define(function() { return { - sprintf: sprintf, - vsprintf: vsprintf + 'sprintf': sprintf, + 'vsprintf': vsprintf } }) } } -})(typeof window === 'undefined' ? this : window); + /* eslint-enable quote-props */ +}() },{}],53:[function(require,module,exports){ var trim = require('./trim'); diff --git a/electron/db.js b/electron/db.js index 3c84227..9e01cc8 100644 --- a/electron/db.js +++ b/electron/db.js @@ -1,4 +1,4 @@ -'use strict'; +// 'use strict'; /** * @module db * @description Manages the backend of the app by overwrighting backbone.sync function @@ -99,6 +99,12 @@ function makeLinvoCallback(success, error) { * @returns {object} sucess callback with backbone model containing db id */ DB.create = function(model, success, error){ + + + + + + console.debug('DB.create', model.constructor.modelType); if (model.constructor.modelType == 'transcription') { var newElement = model.toJSON(); @@ -121,6 +127,21 @@ DB.create = function(model, success, error){ // returning saved transcription callback success(model); + //TODO: there might be a way to make this more seamless. need to decide where this logic would go. + //setting STT API Keys for appropriate service, if needed. (eg Offline Open source STT Gentle and Pocketsphinx don't need it) + var sttServiceKeys = ""; + if(newElement.sttEngine =="ibm"){ + sttServiceKeys = window.IBMWatsonKeys(); + }else if(newElement.sttEngine =="google"){ + sttServiceKeys = window.GoogleKeys(); + sttServiceKeys.path = window.getGoogleAPIKeysPath(); + }else if(newElement.sttEngine =="microsoft"){ + console.error("microsoft not yet implemented in backend"); + } + // else{ + // console.error("ERROR: no STT API credentials provided") + // } + // using interactive_transcription_generator to generate metadata, // transcription json // webm video preview @@ -134,7 +155,7 @@ DB.create = function(model, success, error){ // destFolder:"/media", tmpWorkFolder: tmpMediaFolder, destFolder: mediaFolder, - keys: window.IBMWatsonKeys(), + keys: sttServiceKeys, languageModel: newElement.languageModel, sttEngine: newElement.sttEngine, cbMetadata: function(respM) { diff --git a/electron/google_keys.js b/electron/google_keys.js new file mode 100644 index 0000000..571f076 --- /dev/null +++ b/electron/google_keys.js @@ -0,0 +1,89 @@ +var fs = require('fs'); +var electron = require('electron'); +var currentWindow = electron.remote.getCurrentWindow(); + +var googleKeysPath; + +if (window.process !== 'undefined') { + googleKeysPath = currentWindow.dataPath + '/gckeys.json'; +}else{ + //not in nwjs + googleKeysPath = "/"; +} + +var googleKeys = { + "apiKey": "" +} + +var googleKeysSet = false; + +// load keys on startup +window.document.addEventListener('DOMContentLoaded', function() { + if (areGoogleAPIkeysSet()) { + googleKeys = getGoogleAPIkeys(); + } +}); + +//helper funciton to check/validate the keys +function keysAreValid(tempKeys){ + console.log('tempKeys',tempKeys); + //if hte object has the required attributes + // if (tempKeys.username.length > 0 && tempKeys.password.length > 0) { + return true; + // }else{ + // return false; + // } +} + +// get +function getGoogleAPIkeys(){ + if (fs.existsSync(googleKeysPath)) { + googleKeys = JSON.parse(fs.readFileSync(googleKeysPath).toString()); + return googleKeys; + }else{ + return googleKeys; + } +} + +function getGoogleAPIKeysPath(){ + return googleKeysPath; +} + +//set +function setGoogleAPIkeys(keys){ + // then assuming is a file path + // if(typeof keys == 'string'){ + // //TODO change to read. + // const fs = require('fs'); + // keys = JSON.parse(fs.readFileSync(keys, 'utf8')); + // // keys = require('keys'); + // } + // if(keysAreValid(keys)){ + fs.writeFileSync(googleKeysPath, JSON.stringify(keys)); + // }else{ + // not setting keys. should add some error handling it, but + // at the moment validation check is handled in view + // } +} + +//check if they are set +function areGoogleAPIkeysSet(){ + // fs.writeFileSync(googleKeysPath, JSON.stringify(tempKeys)); + if (fs.existsSync(googleKeysPath)) { + // TODO: add some more validation that values actually make sense + googleKeys = JSON.parse(fs.readFileSync(googleKeysPath).toString()); + var result = keysAreValid(googleKeys); + // googleKeysSet = true; + return result; + } else { + // googleKeysSet = false2; + return false; + } +} + +module.exports = { + areGoogleAPIkeysSet: areGoogleAPIkeysSet, + setGoogleAPIkeys: setGoogleAPIkeys, + getGoogleAPIkeys: getGoogleAPIkeys, + getGoogleAPIKeysPath: getGoogleAPIKeysPath +}; diff --git a/electron/index.html b/electron/index.html index 942810f..be24303 100644 --- a/electron/index.html +++ b/electron/index.html @@ -43,7 +43,7 @@
  • Paperedits
  • -
  • +
  • Donate
  • New
  • + + + + +
    -
    +
    <% if(window.process !== undefined ){%> - + @@ -39,23 +44,51 @@ <% }%>
    +

    -
    -
    -
    +
    +
    +
    +
    +
    +
    + + +
    + + + + + +
    +
    +

    IBM is fast and more accurate while Gentle is free of charge, works offline, and is only in English. Use Gentle if you are working with sensitve informations. Integration with Gentle is a bit more experimental at this stage. Follow the link for more info on setting it up .

    -

    With IBM chose narrowband for telephone recordings, everything else is broadband. +

    With IBM choose narrowband for telephone recordings, everything else is broadband.

    The IBM option always takes 5 minutes to generate a transcription regardless of the length of the media(audio or video file). In the current version Pocketsphinx and Gentle take slightly more then the duration of the media(audio or video) to do a full transcription (eg 27min will take 30min to transcribe).

    -
    - + +
    + +
    +
    +
    - - @@ -82,15 +115,170 @@ -

    Chose the language of your media file. The default is English US.

    +

    choose the language of your media file. The default is English US.

    IBM® recommends that you use narrowband model for decoding of telephone speech.

    -

    -

    + +
    +
    +
    + +
    +
    + + +

    choose the language of your media file. The default is English US.

    +
    +
    + + +
    +
    +
    + + Coming soon + +
    +
    + + +

    choose the language of your media file. The default is English US.

    +
    +
    + +
    + +
    +
    +
    + See User manual for extra setup needed, Only support US English For now
    + + + +
    +
    +
    + Does not require extra setup, only supports US English for now
    + +
    +
    +
    + coming soon +
    +
    + +
    +
    -
    +
    @@ -99,17 +287,19 @@
    -
    - - -
    -
    - + +
    + + +
    +
    diff --git a/lib/app/views/settings_view.js b/lib/app/views/settings_view.js index e6b4aa6..5ccf30e 100644 --- a/lib/app/views/settings_view.js +++ b/lib/app/views/settings_view.js @@ -7,6 +7,7 @@ var render = require('./utils').render; if (typeof window.nw !== 'undefined') { var watsonKeysPath = window.nw.App.dataPath + '/wttskeys.json'; + var googleKeysPath = window.nw.App.dataPath + '/gskeys.json'; }else{ //not in nwjs var watsonKeysPath = "/"; @@ -29,7 +30,10 @@ module.exports = Backbone.View.extend({ }, events :{ - 'click #submitBtn': 'save', + 'click #submitBtnIbmCredentials': 'saveIBM', + 'click #submitBtnGoogleCredentials': 'saveGoogle', + 'click #submitBtnIbmMicrosoftCredentisl': 'saveMicrosoft', + "click #btnElectronInputMediaFileGoogleCredentials":"electronGetFilePathGoogleCredentials", "keypress .form-control": "onEnterListener" }, @@ -41,8 +45,47 @@ module.exports = Backbone.View.extend({ } }, - save: function(e){ + electronGetFilePathGoogleCredentials: function(e){ + e.preventDefault(); + var self = this; + window.openFileDiaglogueJSON(function(fileName){ + console.log(fileName); + self.newFilePath = fileName[0]; + console.log(self.newFilePath ); + document.getElementById("inputFilePreviewGoogleCredentials").innerHTML = self.newFilePath; + // console.log(document.getElementById("title").value); + if(window.process !== undefined){ + //TODO: maybe use fs instead. + // const fs = require('fs'); + // var obj = JSON.parse(fs.readFileSync('file', 'utf8')); + // const googleCrdentials = require(self.newFilePath); + // console.log(googleCrdentials); + window.setGoogleAPIkeys(self.newFilePath); + window.alert("Thank you! Saved the Google API keys so you don't have to enter them again."); + //update elements in form form + var googleKeys = window.GoogleKeys(); + + document.getElementById("apiKey").value = googleKeys.apiKey; + // document.getElementById("project_id").value = googleKeys.project_id; + // document.getElementById("private_key_id").value = googleKeys.private_key_id; + // document.getElementById("private_key").value = googleKeys.private_key; + // document.getElementById("client_email").value = googleKeys.client_email; + // document.getElementById("client_id").value = googleKeys.client_id; + // document.getElementById("auth_uri").value = googleKeys.auth_uri; + // document.getElementById("token_uri").value = googleKeys.token_uri; + // document.getElementById("auth_provider_x509_cert_url").value = googleKeys.auth_provider_x509_cert_url; + // document.getElementById("client_x509_cert_url").value = googleKeys.client_x509_cert_url; + } + + + + + }); + }, + + saveIBM: function(e){ e.preventDefault(); + //SAVE IBM credentialls var ibmCredentials = {}; ibmCredentials.username = this.$('input[name=username]').val().trim(); ibmCredentials.password = this.$('input[name=password]').val().trim(); @@ -50,10 +93,41 @@ module.exports = Backbone.View.extend({ if((ibmCredentials.username != "") && (ibmCredentials.password != "")){ //save window.setWatsonAPIkeys(ibmCredentials) - window.alert("Thank you! Saved the keys so you don't have to enter them again."); + window.alert("Thank you! Saved the IBM keys so you don't have to enter them again."); }else{ alert("Please add valid credentials to save"); } + // End Save IBM crdentials + + // + }, + saveGoogle: function(e){ + e.preventDefault(); + console.log(document.getElementById("apiKey").value ); + + var apiKeyToSave = {apiKey: document.getElementById("apiKey").value }; + window.setGoogleAPIkeys(apiKeyToSave); + //SAVE Google credentialls + alert("Thank you! Saved the Google keys so you don't have to enter them again."); + + // + }, + + saveMicrosoft:function(e){ + e.preventDefault(); + // var ibmCredentials = {}; + // ibmCredentials.username = this.$('input[name=username]').val().trim(); + // ibmCredentials.password = this.$('input[name=password]').val().trim(); + // //TODO: double check this + // if((ibmCredentials.username != "") && (ibmCredentials.password != "")){ + // //save + // window.setWatsonAPIkeys(ibmCredentials) + // window.alert("Thank you! Saved the keys so you don't have to enter them again."); + // }else{ + // alert("Please add valid credentials to save"); + // } + + // }, render: function(){ diff --git a/lib/app/views/transcription_form_view.js b/lib/app/views/transcription_form_view.js index fce8edf..916b950 100644 --- a/lib/app/views/transcription_form_view.js +++ b/lib/app/views/transcription_form_view.js @@ -23,10 +23,15 @@ module.exports = Backbone.View.extend({ this.newFilePath = ""; }, events :{ - "click #btnElectronInputMediaFile":"electronGetFilePath", - 'click #submitBtn': 'save', - "keypress .form-control": "onEnterListener" + 'click #btnElectronInputMediaFile':'electronGetFilePath', + 'click #submitBtn': 'save', + 'keypress .form-control': 'onEnterListener', + 'change input[type=radio]': 'changedRadio' + }, +//change view of language tab preferences when making a choice in radio button language options. + changedRadio: function(e){ + $('#languageTabs a[href="#'+e.currentTarget.value+'"]').tab('show'); }, onEnterListener: function(e){ @@ -39,11 +44,7 @@ module.exports = Backbone.View.extend({ electronGetFilePath: function(e){ e.preventDefault(); - - // if (window.process !== undefined) { - // document.getElementById("open-file").click(); - // } - // + var self = this; window.openFileDiaglogue(function(fileName){ console.log(fileName); @@ -59,33 +60,6 @@ module.exports = Backbone.View.extend({ }, - - - - - // console.log(fileName); - // //TODO: here do some file type checks and alert if not compatible file type with ffmpeg. - // //eg add in config.js array off ffmpeg `ffmpeg -formats` in termanl for list. - // //use path library to get extension, if extension not in array then give error. - - // //return an array of files, since we only accepting one, then it's always first elemet - // //TODO: here if modify that can accept multiple, then here could deal with that logic, eg generate a panel/card with title and description for each. - // //here could also default transcript name to name of file. - // self.newFilePath = fileName[0]; - // console.log(self.newFilePath ); - - // document.getElementById("inputFilePreview").innerHTML = self.newFilePath; - - // // console.log(document.getElementById("title").value); - // if(document.getElementById("title").value ===""){ - - // // self.newFilePath.split("/") - // document.getElementById("title").value = path.basename(self.newFilePath); - // } - - - // }, - save: function(e){ console.log( e.target); //TODO: there might be a better way to get values from a form in backbone? @@ -97,41 +71,53 @@ module.exports = Backbone.View.extend({ //If using "multiple" in unput will return all selected files's paths separated with `;`. split(";") to make an array. // loop through that array to create a list of title, description etc.. - // //before trying this, test how many clips at same time. // https://trello.com/c/oDr7bSy7/173-raised-by-ben-need-to-be-able-to-add-a-batch-of-clips-into-new-transcription-not-one-by-one - - var newDescription = this.$('textarea[name=description]').val(); //removing # carachter coz it breaks file path as it gets converted to %23 //TODO: there might be other symbols that have effect. figure proper way to sanitise input // var newFilePath = this.$('input[name=file]').val(); - var newLanguage = $('#languageModel').find(":selected")[0].value; + var newLanguage = ''; var newFilePath = this.newFilePath; + + var radios = document.querySelectorAll('.languageRadio'); + var sttEngine ; + //see which one has been selected by the user. + for (var i = 0; i < radios.length; i++) { + if (radios[i].type === 'radio' && radios[i].checked) { + // get value, set checked flag or do whatever you need to + sttEngine = radios[i].value; + } + } + //Listener on checkbox, that adds and removes IBM options if IBM is unclicked. //Need to have IBM Options as element here in form view that can be appended or removed //TODO: There has to be a better way to get the value of radio buttons check boxes eg document.querySelector(".options"); - if($('#IBMoption')[0].checked){ - //check if inside electron - // if(window.process!== undefined){ - // //check if the app is connnected to the internet - // if(navigator.onLine){ - // sttEngine = "ibm"; - // //if not connected to the internet, alert that ibm stt won't work - // }else{ - // alert("You seem to be offline, check your internet connection and try again if you want to use IBM as a speech to text option."); - // } - // //if not in electron then just assign sttEngine to ibm - // }else{ - sttEngine = "ibm"; - // } - - }else if($('#genelteOption')[0].checked){ - sttEngine = "gentle"; - }else if($('#pocketSphinxOption')[0].checked){ - sttEngine = "pocketsphinx"; + // if($('#IBMoption')[0].checked){ + // sttEngine = "ibm"; + // $('#languageModelIBM').find(":selected")[0].value; + // }else if(){ + // sttEngine = "google"; + // $('#languageModelIBM').find(":selected")[0].value; + + // }else if($('#genelteOption')[0].checked){ + // sttEngine = "gentle"; + // }else if($('#pocketSphinxOption')[0].checked){ + // sttEngine = "pocketsphinx"; + // } + + //TODO: there might be a better way to do this? + //set the language + if(sttEngine == 'ibm'){ + newLanguage = $('#languageModelIBM').find(":selected")[0].value; + + }else if(sttEngine == 'google'){ + newLanguage = $('#languageModelGoogle').find(":selected")[0].value; + + }else if(sttEngine == 'microsoft'){ + newLanguage = $('#languageModelMicrosoft').find(":selected")[0].value; } if (newFilePath == ""){ @@ -141,9 +127,7 @@ module.exports = Backbone.View.extend({ alert("please give this transcriptiona title"); //TODO: Set description in focus }else{ - - - if(sttEngine === "ibm"){ + if(sttEngine === "ibm" || sttEngine === "google"||sttEngine === "microsoft"){ if(navigator.onLine){ this.model.save({title: newTitle, description: newDescription, @@ -162,6 +146,27 @@ module.exports = Backbone.View.extend({ }else{ alert("You seem to be offline, check your internet connection and try again if you'd like to use IBM"); } + // }else if(sttEngine === "google"){ + // if(navigator.onLine){ + + + // }else{ + // alert("You seem to be offline, check your internet connection and try again if you'd like to use Google"); + // } + // }else if(sttEngine === "microsoft"){ + // if(navigator.onLine){ + + + // }else{ + // alert("You seem to be offline, check your internet connection and try again if you'd like to use Microsoft"); + // } + //captions can be used offline + }else if(sttEngine === "captions"){ + + + //pocketsphinx and Gentle handled as fallback cases. + // in the "backend" the `sttEngine` will determine which one is uded. + // these can be used offline }else{ //TODO: sort out this repetition this.model.save({title: newTitle, diff --git a/lib/interactive_transcription_generator/transcriber/baidu_stt_node b/lib/interactive_transcription_generator/transcriber/baidu_stt_node new file mode 160000 index 0000000..d16141c --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/baidu_stt_node @@ -0,0 +1 @@ +Subproject commit d16141c01507c4e094652103ed9f01cdc7776c82 diff --git a/lib/interactive_transcription_generator/transcriber/convert_to_audio.js b/lib/interactive_transcription_generator/transcriber/convert_to_audio.js index f4948a5..5711d36 100644 --- a/lib/interactive_transcription_generator/transcriber/convert_to_audio.js +++ b/lib/interactive_transcription_generator/transcriber/convert_to_audio.js @@ -38,7 +38,7 @@ function convertToWav(file,audioFile,ffmpegPath, callback) { //running ffmpeg comand var comand = ffmpeg(file) .noVideo() - .audioCodec('libopus') + // .audioCodec('libopus') .audioChannels(1) .audioFrequency(16000) .output(audioFile) diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.js b/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.js new file mode 100644 index 0000000..62e370f --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.js @@ -0,0 +1,55 @@ +//a module to convert google results into autoEdit JSON. + +function convertToJson(transcriptionJson){ + console.log("transcriptionJson",JSON.stringify(transcriptionJson,null,2)); + + var wordCounter = 0; + var lines = []; + var line ={"line":[]}; + //for now IBM does not do speaker diarization so adding everything into one paragraph for now. But modeled transcription with paragraph containing lines with speaker associated to it. + var paragraphs = [{"id":0, "speaker": "Unnamed Speaker","paragraph":{}}]; + //iterating over the IBM STT json lines + for(var i =0; i< transcriptionJson.length; i++){ + var oldLine = transcriptionJson[i]; + //iteratign over words + for(var k =0; k< oldLine.words.length; k++){ + + var oldWord = oldLine.words[k]; + // console.log("oldWord:", JSON.stringify(oldWord,null,2)); + //creates a word object + var newWord = { + id: wordCounter, + text: oldWord.word, + startTime: oldWord.startTime, + endTime: oldWord.endTime + }; + //ad counter id to line object + line.id =i; + //TODO: need to add start and end time for lines + //line start and end time, same as first and last word object times + line.startTime = oldLine.words[0].startTime; + // console.log("line.startTime", line.startTime); + line.endTime = oldLine.words[oldLine.words.length-1].endTime; + // console.log("line.endTime", line.endTime); + //adding words to line + line.line.push(newWord); + // console.log("---line", JSON.stringify(line,null,2)); + wordCounter+=1;// + } + //add to lines + lines.push(line); + //reset words in line for next iteration + line ={"line":[]}; + } + //return results + paragraphs[0].paragraph = lines;; + console.log("-----paragraphs------") + console.log(JSON.stringify(paragraphs,null,2)); + + return paragraphs; + + +} + + +module.exports = convertToJson; \ No newline at end of file diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.test.js b/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.test.js new file mode 100644 index 0000000..34a57e5 --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/convert_to_json.test.js @@ -0,0 +1,502 @@ +var convertGoogleToJson = require('./convert_to_json.js'); +var sampleResponse = { + "sentences": [ + { + "transcript": "a little hand thing though sort of indicates full but we still have terrible terrible doors in the world so many of them for whether I buy this house or not is not a function of weather has good doors in it and so except for safety reasons stores 10 not to be rude but the tyranny of bad Wars must end", + "confidence": 0.932209, + "words": [ + { + "word": "a", + "start": 444, + "end": 444 + }, + { + "word": "little", + "start": 444, + "end": 444.4 + }, + { + "word": "hand", + "start": 444.4, + "end": 444.8 + }, + { + "word": "thing", + "start": 444.8, + "end": 445.1 + }, + { + "word": "though", + "start": 445.1, + "end": 445.3 + }, + { + "word": "sort", + "start": 445.3, + "end": 445.8 + }, + { + "word": "of", + "start": 445.8, + "end": 445.9 + }, + { + "word": "indicates", + "start": 445.9, + "end": 446.4 + }, + { + "word": "full", + "start": 446.4, + "end": 447 + }, + { + "word": "but", + "start": 447, + "end": 447.7 + }, + { + "word": "we", + "start": 447.7, + "end": 447.7 + }, + { + "word": "still", + "start": 447.7, + "end": 448.1 + }, + { + "word": "have", + "start": 448.1, + "end": 448.4 + }, + { + "word": "terrible", + "start": 448.4, + "end": 449 + }, + { + "word": "terrible", + "start": 449, + "end": 449.8 + }, + { + "word": "doors", + "start": 449.8, + "end": 450.4 + }, + { + "word": "in", + "start": 450.4, + "end": 450.5 + }, + { + "word": "the", + "start": 450.5, + "end": 450.6 + }, + { + "word": "world", + "start": 450.6, + "end": 450.6 + }, + { + "word": "so", + "start": 450.6, + "end": 451.7 + }, + { + "word": "many", + "start": 451.7, + "end": 452.3 + }, + { + "word": "of", + "start": 452.3, + "end": 452.4 + }, + { + "word": "them", + "start": 452.4, + "end": 452.6 + }, + { + "word": "for", + "start": 452.6, + "end": 456.1 + }, + { + "word": "whether", + "start": 456.1, + "end": 456.9 + }, + { + "word": "I", + "start": 456.9, + "end": 457 + }, + { + "word": "buy", + "start": 457, + "end": 457.3 + }, + { + "word": "this", + "start": 457.3, + "end": 457.6 + }, + { + "word": "house", + "start": 457.6, + "end": 458 + }, + { + "word": "or", + "start": 458, + "end": 458.1 + }, + { + "word": "not", + "start": 458.1, + "end": 458.4 + }, + { + "word": "is", + "start": 458.4, + "end": 458.5 + }, + { + "word": "not", + "start": 458.5, + "end": 458.8 + }, + { + "word": "a", + "start": 458.8, + "end": 458.9 + }, + { + "word": "function", + "start": 458.9, + "end": 459.3 + }, + { + "word": "of", + "start": 459.3, + "end": 459.4 + }, + { + "word": "weather", + "start": 459.4, + "end": 459.6 + }, + { + "word": "has", + "start": 459.6, + "end": 459.8 + }, + { + "word": "good", + "start": 459.8, + "end": 460 + }, + { + "word": "doors", + "start": 460, + "end": 460.4 + }, + { + "word": "in", + "start": 460.4, + "end": 460.6 + }, + { + "word": "it", + "start": 460.6, + "end": 460.7 + }, + { + "word": "and", + "start": 460.7, + "end": 461.5 + }, + { + "word": "so", + "start": 461.5, + "end": 461.7 + }, + { + "word": "except", + "start": 461.7, + "end": 462.9 + }, + { + "word": "for", + "start": 462.9, + "end": 463.2 + }, + { + "word": "safety", + "start": 463.2, + "end": 463.7 + }, + { + "word": "reasons", + "start": 463.7, + "end": 463.9 + }, + { + "word": "stores", + "start": 463.9, + "end": 464.7 + }, + { + "word": "10", + "start": 464.7, + "end": 465.1 + }, + { + "word": "not", + "start": 465.1, + "end": 465.3 + }, + { + "word": "to", + "start": 465.3, + "end": 465.5 + }, + { + "word": "be", + "start": 465.5, + "end": 465.7 + }, + { + "word": "rude", + "start": 465.7, + "end": 466 + }, + { + "word": "but", + "start": 466, + "end": 466.2 + }, + { + "word": "the", + "start": 466.2, + "end": 466.5 + }, + { + "word": "tyranny", + "start": 466.5, + "end": 467 + }, + { + "word": "of", + "start": 467, + "end": 467.1 + }, + { + "word": "bad", + "start": 467.1, + "end": 467.6 + }, + { + "word": "Wars", + "start": 467.6, + "end": 468.2 + }, + { + "word": "must", + "start": 468.2, + "end": 468.8 + }, + { + "word": "end", + "start": 468.8, + "end": 469.2 + } + ] + }, + { + "transcript": "and I told him that's my feelings are very misleading you're goddamn right and if we all thought like you well we might just design a better world", + "confidence": 0.9221018, + "words": [ + { + "word": "and", + "start": 477.9, + "end": 478.4 + }, + { + "word": "I", + "start": 478.4, + "end": 478.5 + }, + { + "word": "told", + "start": 478.5, + "end": 479.5 + }, + { + "word": "him", + "start": 479.5, + "end": 479.6 + }, + { + "word": "that's", + "start": 479.6, + "end": 480.4 + }, + { + "word": "my", + "start": 480.4, + "end": 480.6 + }, + { + "word": "feelings", + "start": 480.6, + "end": 481 + }, + { + "word": "are", + "start": 481, + "end": 481.2 + }, + { + "word": "very", + "start": 481.2, + "end": 481.2 + }, + { + "word": "misleading", + "start": 481.2, + "end": 481.7 + }, + { + "word": "you're", + "start": 481.7, + "end": 483.7 + }, + { + "word": "goddamn", + "start": 483.7, + "end": 485.2 + }, + { + "word": "right", + "start": 485.2, + "end": 485.7 + }, + { + "word": "and", + "start": 485.7, + "end": 486.3 + }, + { + "word": "if", + "start": 486.3, + "end": 486.3 + }, + { + "word": "we", + "start": 486.3, + "end": 486.5 + }, + { + "word": "all", + "start": 486.5, + "end": 486.6 + }, + { + "word": "thought", + "start": 486.6, + "end": 486.9 + }, + { + "word": "like", + "start": 486.9, + "end": 487.2 + }, + { + "word": "you", + "start": 487.2, + "end": 487.3 + }, + { + "word": "well", + "start": 487.3, + "end": 488.1 + }, + { + "word": "we", + "start": 488.1, + "end": 488.2 + }, + { + "word": "might", + "start": 488.2, + "end": 488.4 + }, + { + "word": "just", + "start": 488.4, + "end": 488.5 + }, + { + "word": "design", + "start": 488.5, + "end": 489.1 + }, + { + "word": "a", + "start": 489.1, + "end": 489.2 + }, + { + "word": "better", + "start": 489.2, + "end": 489.6 + }, + { + "word": "world", + "start": 489.6, + "end": 489.8 + } + ] + }, + { + "transcript": " it won't open because it", + "confidence": 0.8995269, + "words": [ + { + "word": "it", + "start": 491.6, + "end": 492 + }, + { + "word": "won't", + "start": 492, + "end": 492.4 + }, + { + "word": "open", + "start": 492.4, + "end": 492.8 + }, + { + "word": "because", + "start": 492.8, + "end": 493.2 + }, + { + "word": "it", + "start": 493.2, + "end": 493.8 + } + ] + } + ] +} + +var result = convertGoogleToJson(sampleResponse) + +console.log(JSON.stringify(result, null, 2)) \ No newline at end of file diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/parse.js b/lib/interactive_transcription_generator/transcriber/google_stt/parse.js new file mode 100644 index 0000000..bff8abd --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/parse.js @@ -0,0 +1,85 @@ +//Not needed for google as no transcriptions in the API? +// or add + +/** +* @module parse +* @description adds time offest onto each word IBM Watson STT Service json. +* @author Pietro Passarelli +* @description this is so that each chunk of audio that has been transcribed separately can be joined back togethere. +* @tutorial IBM_watson_stt_specs +*/ + + +/** +* @function parse +* @description Takes IBM Watson STT Service json and adds time offest onto each word. +* this is so that each chunk of audio that has been transcribed separately can be joined back togethere. +* @param {Object[]} data - array list of transcription json with IBM specs +* @param {number} offset - number offset of the chunked clip relative to original source audio +* @returns {Object} - same json IBM STT transcription specs(but with offset). +*/ + +"use strict"; + +function parse(data, offset) { + console.log("prase", offset, data); + console.log("INSIDE PARSE.js: ",JSON.stringify(data, null, 2)); + // if(data != null){ + //sentences output + var out = { + sentences: [] + }; + + //TODO: not sure if this is necessary. eg when is the case in which offset would be undefined. + // if (typeof offset === 'undefined') { + // offset = 0; + // } + + // modifying sentences results + out.sentences = data.results.map(function(r) { + // new item object + var item = {}; + // set item to IBM Json transcription one + var _item = r.alternatives[0]; + item.transcript = _item.transcript; + item.confidence = _item.confidence; + // modify item IBM Json transcription to add time offset + item.words = _item.words.map(function(t, index, array) { + + // var startTimeTmp = t.startTime.split("s")[0]; + // var endTimeTmp = t.endTime.split("s")[0]; + // add time offset for each word start and end time + var endTime = t.endTime; + //if the word element has start and end time that are equal, possibly a bug on google part, then making the end time equal to start of next word as temporary patch before raising the issue and waiting for it to be solved. + // if((t.startTime == t.endTime) && (array[index+1]!= undefined) ){ + // // console.log("::does it go here?::",t.startTime,t.endTime ) + // console.log("-->does it go here?<---",t.startTime,t.endTime,"endTime",endTime , index, array); + // endTime = array[index+1].startTime; + // console.log("endTimeChanged", endTime) + + // } + // if(t.startTime == t.endTime){ + // endTime = parseFloat(t.endTime) +0.005; + // } + + var tmpWord = { + word: t.word, + //For some reason I don't understand google returns timecodes as `48.400s` with the s for second in the string, + startTime: parseFloat(t.startTime)+ parseFloat(offset), + endTime: parseFloat(endTime) + parseFloat(offset) + }; + + return tmpWord; + }); + // add item back to the list of results + return item; + }); + + console.log("INSIDE PARSE.js after parsing: ",JSON.stringify(out, null, 2)); + //returning results + return out; + +} + + +module.exports = parse; diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/parse.test.js b/lib/interactive_transcription_generator/transcriber/google_stt/parse.test.js new file mode 100644 index 0000000..2e9c5c0 --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/parse.test.js @@ -0,0 +1,978 @@ +var parseGoogle = require('./parse.js') + + +var sampleResponse = { + "results": [ + { + "alternatives": [ + { + "transcript": "once there was a young rat named Arthur who could never make up his mind whenever his friends asked him if he would like to go out with him he would only answer I don't know", + "confidence": 0.9644845, + "words": [ + { + "startTime": "0s", + "endTime": "0.600s", + "word": "once" + }, + { + "startTime": "0.600s", + "endTime": "0.800s", + "word": "there" + }, + { + "startTime": "0.800s", + "endTime": "0.800s", + "word": "was" + }, + { + "startTime": "0.800s", + "endTime": "1s", + "word": "a" + }, + { + "startTime": "1s", + "endTime": "1.100s", + "word": "young" + }, + { + "startTime": "1.100s", + "endTime": "1.500s", + "word": "rat" + }, + { + "startTime": "1.500s", + "endTime": "1.700s", + "word": "named" + }, + { + "startTime": "1.700s", + "endTime": "2s", + "word": "Arthur" + }, + { + "startTime": "2s", + "endTime": "2.600s", + "word": "who" + }, + { + "startTime": "2.600s", + "endTime": "2.700s", + "word": "could" + }, + { + "startTime": "2.700s", + "endTime": "2.800s", + "word": "never" + }, + { + "startTime": "2.800s", + "endTime": "3.200s", + "word": "make" + }, + { + "startTime": "3.200s", + "endTime": "3.300s", + "word": "up" + }, + { + "startTime": "3.300s", + "endTime": "3.300s", + "word": "his" + }, + { + "startTime": "3.300s", + "endTime": "3.500s", + "word": "mind" + }, + { + "startTime": "3.500s", + "endTime": "4.800s", + "word": "whenever" + }, + { + "startTime": "4.800s", + "endTime": "5.100s", + "word": "his" + }, + { + "startTime": "5.100s", + "endTime": "5.400s", + "word": "friends" + }, + { + "startTime": "5.400s", + "endTime": "5.800s", + "word": "asked" + }, + { + "startTime": "5.800s", + "endTime": "5.900s", + "word": "him" + }, + { + "startTime": "5.900s", + "endTime": "6s", + "word": "if" + }, + { + "startTime": "6s", + "endTime": "6.100s", + "word": "he" + }, + { + "startTime": "6.100s", + "endTime": "6.200s", + "word": "would" + }, + { + "startTime": "6.200s", + "endTime": "6.400s", + "word": "like" + }, + { + "startTime": "6.400s", + "endTime": "6.500s", + "word": "to" + }, + { + "startTime": "6.500s", + "endTime": "6.600s", + "word": "go" + }, + { + "startTime": "6.600s", + "endTime": "6.800s", + "word": "out" + }, + { + "startTime": "6.800s", + "endTime": "7s", + "word": "with" + }, + { + "startTime": "7s", + "endTime": "7.300s", + "word": "him" + }, + { + "startTime": "7.300s", + "endTime": "7.600s", + "word": "he" + }, + { + "startTime": "7.600s", + "endTime": "7.700s", + "word": "would" + }, + { + "startTime": "7.700s", + "endTime": "7.900s", + "word": "only" + }, + { + "startTime": "7.900s", + "endTime": "8.300s", + "word": "answer" + }, + { + "startTime": "8.300s", + "endTime": "8.400s", + "word": "I" + }, + { + "startTime": "8.400s", + "endTime": "9.200s", + "word": "don't" + }, + { + "startTime": "9.200s", + "endTime": "9.300s", + "word": "know" + } + ] + } + ] + }, + { + "alternatives": [ + { + "transcript": " he wouldn't say yes or no either would always sure to make me a choice his Aunt Helen said to him now look here no one is going to care for you if you carry on like this you have no more mind in a plate of grass one rainy day of the rats are the great noise in the Loft the pine Raptors were all rotten so that the barn was rather unsafe at last to Joyce gave way and fell to the ground the wall truck and all the rats hair stood on end with fear and horror this won't do so the captain I'll send out Scouts to search for a new home", + "confidence": 0.9567386, + "words": [ + { + "startTime": "10.400s", + "endTime": "10.800s", + "word": "he" + }, + { + "startTime": "10.800s", + "endTime": "11s", + "word": "wouldn't" + }, + { + "startTime": "11s", + "endTime": "11.100s", + "word": "say" + }, + { + "startTime": "11.100s", + "endTime": "11.400s", + "word": "yes" + }, + { + "startTime": "11.400s", + "endTime": "11.700s", + "word": "or" + }, + { + "startTime": "11.700s", + "endTime": "11.800s", + "word": "no" + }, + { + "startTime": "11.800s", + "endTime": "12.200s", + "word": "either" + }, + { + "startTime": "12.200s", + "endTime": "13s", + "word": "would" + }, + { + "startTime": "13s", + "endTime": "13.200s", + "word": "always" + }, + { + "startTime": "13.200s", + "endTime": "13.500s", + "word": "sure" + }, + { + "startTime": "13.500s", + "endTime": "13.700s", + "word": "to" + }, + { + "startTime": "13.700s", + "endTime": "13.800s", + "word": "make" + }, + { + "startTime": "13.800s", + "endTime": "13.900s", + "word": "me" + }, + { + "startTime": "13.900s", + "endTime": "14s", + "word": "a" + }, + { + "startTime": "14s", + "endTime": "14.200s", + "word": "choice" + }, + { + "startTime": "14.200s", + "endTime": "15.500s", + "word": "his" + }, + { + "startTime": "15.500s", + "endTime": "15.700s", + "word": "Aunt" + }, + { + "startTime": "15.700s", + "endTime": "16s", + "word": "Helen" + }, + { + "startTime": "16s", + "endTime": "16.100s", + "word": "said" + }, + { + "startTime": "16.100s", + "endTime": "16.300s", + "word": "to" + }, + { + "startTime": "16.300s", + "endTime": "16.500s", + "word": "him" + }, + { + "startTime": "16.500s", + "endTime": "16.800s", + "word": "now" + }, + { + "startTime": "16.800s", + "endTime": "17.100s", + "word": "look" + }, + { + "startTime": "17.100s", + "endTime": "17.200s", + "word": "here" + }, + { + "startTime": "17.200s", + "endTime": "18.100s", + "word": "no" + }, + { + "startTime": "18.100s", + "endTime": "18.300s", + "word": "one" + }, + { + "startTime": "18.300s", + "endTime": "18.400s", + "word": "is" + }, + { + "startTime": "18.400s", + "endTime": "18.500s", + "word": "going" + }, + { + "startTime": "18.500s", + "endTime": "18.600s", + "word": "to" + }, + { + "startTime": "18.600s", + "endTime": "18.700s", + "word": "care" + }, + { + "startTime": "18.700s", + "endTime": "19s", + "word": "for" + }, + { + "startTime": "19s", + "endTime": "19.100s", + "word": "you" + }, + { + "startTime": "19.100s", + "endTime": "19.400s", + "word": "if" + }, + { + "startTime": "19.400s", + "endTime": "19.500s", + "word": "you" + }, + { + "startTime": "19.500s", + "endTime": "19.800s", + "word": "carry" + }, + { + "startTime": "19.800s", + "endTime": "19.900s", + "word": "on" + }, + { + "startTime": "19.900s", + "endTime": "20.100s", + "word": "like" + }, + { + "startTime": "20.100s", + "endTime": "20.300s", + "word": "this" + }, + { + "startTime": "20.300s", + "endTime": "21.500s", + "word": "you" + }, + { + "startTime": "21.500s", + "endTime": "21.600s", + "word": "have" + }, + { + "startTime": "21.600s", + "endTime": "21.700s", + "word": "no" + }, + { + "startTime": "21.700s", + "endTime": "22s", + "word": "more" + }, + { + "startTime": "22s", + "endTime": "22.400s", + "word": "mind" + }, + { + "startTime": "22.400s", + "endTime": "22.500s", + "word": "in" + }, + { + "startTime": "22.500s", + "endTime": "22.600s", + "word": "a" + }, + { + "startTime": "22.600s", + "endTime": "22.800s", + "word": "plate" + }, + { + "startTime": "22.800s", + "endTime": "22.900s", + "word": "of" + }, + { + "startTime": "22.900s", + "endTime": "23.300s", + "word": "grass" + }, + { + "startTime": "23.300s", + "endTime": "24.400s", + "word": "one" + }, + { + "startTime": "24.400s", + "endTime": "24.700s", + "word": "rainy" + }, + { + "startTime": "24.700s", + "endTime": "24.700s", + "word": "day" + }, + { + "startTime": "24.700s", + "endTime": "25s", + "word": "of" + }, + { + "startTime": "25s", + "endTime": "25.100s", + "word": "the" + }, + { + "startTime": "25.100s", + "endTime": "25.300s", + "word": "rats" + }, + { + "startTime": "25.300s", + "endTime": "25.400s", + "word": "are" + }, + { + "startTime": "25.400s", + "endTime": "25.500s", + "word": "the" + }, + { + "startTime": "25.500s", + "endTime": "25.700s", + "word": "great" + }, + { + "startTime": "25.700s", + "endTime": "25.900s", + "word": "noise" + }, + { + "startTime": "25.900s", + "endTime": "26.200s", + "word": "in" + }, + { + "startTime": "26.200s", + "endTime": "26.300s", + "word": "the" + }, + { + "startTime": "26.300s", + "endTime": "26.700s", + "word": "Loft" + }, + { + "startTime": "26.700s", + "endTime": "27s", + "word": "the" + }, + { + "startTime": "27s", + "endTime": "27.300s", + "word": "pine" + }, + { + "startTime": "27.300s", + "endTime": "27.800s", + "word": "Raptors" + }, + { + "startTime": "27.800s", + "endTime": "28s", + "word": "were" + }, + { + "startTime": "28s", + "endTime": "28.100s", + "word": "all" + }, + { + "startTime": "28.100s", + "endTime": "28.300s", + "word": "rotten" + }, + { + "startTime": "28.300s", + "endTime": "28.700s", + "word": "so" + }, + { + "startTime": "28.700s", + "endTime": "28.900s", + "word": "that" + }, + { + "startTime": "28.900s", + "endTime": "29s", + "word": "the" + }, + { + "startTime": "29s", + "endTime": "29.300s", + "word": "barn" + }, + { + "startTime": "29.300s", + "endTime": "29.400s", + "word": "was" + }, + { + "startTime": "29.400s", + "endTime": "29.600s", + "word": "rather" + }, + { + "startTime": "29.600s", + "endTime": "30.300s", + "word": "unsafe" + }, + { + "startTime": "30.300s", + "endTime": "31.200s", + "word": "at" + }, + { + "startTime": "31.200s", + "endTime": "31.600s", + "word": "last" + }, + { + "startTime": "31.600s", + "endTime": "31.700s", + "word": "to" + }, + { + "startTime": "31.700s", + "endTime": "31.900s", + "word": "Joyce" + }, + { + "startTime": "31.900s", + "endTime": "32.300s", + "word": "gave" + }, + { + "startTime": "32.300s", + "endTime": "32.500s", + "word": "way" + }, + { + "startTime": "32.500s", + "endTime": "32.600s", + "word": "and" + }, + { + "startTime": "32.600s", + "endTime": "32.800s", + "word": "fell" + }, + { + "startTime": "32.800s", + "endTime": "33s", + "word": "to" + }, + { + "startTime": "33s", + "endTime": "33s", + "word": "the" + }, + { + "startTime": "33s", + "endTime": "33.100s", + "word": "ground" + }, + { + "startTime": "33.100s", + "endTime": "34.100s", + "word": "the" + }, + { + "startTime": "34.100s", + "endTime": "34.300s", + "word": "wall" + }, + { + "startTime": "34.300s", + "endTime": "34.700s", + "word": "truck" + }, + { + "startTime": "34.700s", + "endTime": "35.100s", + "word": "and" + }, + { + "startTime": "35.100s", + "endTime": "35.200s", + "word": "all" + }, + { + "startTime": "35.200s", + "endTime": "35.400s", + "word": "the" + }, + { + "startTime": "35.400s", + "endTime": "35.700s", + "word": "rats" + }, + { + "startTime": "35.700s", + "endTime": "35.900s", + "word": "hair" + }, + { + "startTime": "35.900s", + "endTime": "36.200s", + "word": "stood" + }, + { + "startTime": "36.200s", + "endTime": "36.300s", + "word": "on" + }, + { + "startTime": "36.300s", + "endTime": "36.400s", + "word": "end" + }, + { + "startTime": "36.400s", + "endTime": "36.800s", + "word": "with" + }, + { + "startTime": "36.800s", + "endTime": "37s", + "word": "fear" + }, + { + "startTime": "37s", + "endTime": "37.100s", + "word": "and" + }, + { + "startTime": "37.100s", + "endTime": "37.300s", + "word": "horror" + }, + { + "startTime": "37.300s", + "endTime": "38.100s", + "word": "this" + }, + { + "startTime": "38.100s", + "endTime": "38.400s", + "word": "won't" + }, + { + "startTime": "38.400s", + "endTime": "38.600s", + "word": "do" + }, + { + "startTime": "38.600s", + "endTime": "38.800s", + "word": "so" + }, + { + "startTime": "38.800s", + "endTime": "39s", + "word": "the" + }, + { + "startTime": "39s", + "endTime": "39.300s", + "word": "captain" + }, + { + "startTime": "39.300s", + "endTime": "39.500s", + "word": "I'll" + }, + { + "startTime": "39.500s", + "endTime": "39.700s", + "word": "send" + }, + { + "startTime": "39.700s", + "endTime": "39.900s", + "word": "out" + }, + { + "startTime": "39.900s", + "endTime": "40.300s", + "word": "Scouts" + }, + { + "startTime": "40.300s", + "endTime": "40.400s", + "word": "to" + }, + { + "startTime": "40.400s", + "endTime": "40.800s", + "word": "search" + }, + { + "startTime": "40.800s", + "endTime": "40.900s", + "word": "for" + }, + { + "startTime": "40.900s", + "endTime": "41s", + "word": "a" + }, + { + "startTime": "41s", + "endTime": "41.200s", + "word": "new" + }, + { + "startTime": "41.200s", + "endTime": "41.400s", + "word": "home" + } + ] + } + ] + }, + { + "alternatives": [ + { + "transcript": " within 5 hours attempt Scouts came back and said we found a stone house where there is room and board for a Saul there's a kindly horse named", + "confidence": 0.8543271, + "words": [ + { + "startTime": "42.300s", + "endTime": "42.900s", + "word": "within" + }, + { + "startTime": "42.900s", + "endTime": "43.200s", + "word": "5" + }, + { + "startTime": "43.200s", + "endTime": "43.300s", + "word": "hours" + }, + { + "startTime": "43.300s", + "endTime": "43.800s", + "word": "attempt" + }, + { + "startTime": "43.800s", + "endTime": "44.100s", + "word": "Scouts" + }, + { + "startTime": "44.100s", + "endTime": "44.400s", + "word": "came" + }, + { + "startTime": "44.400s", + "endTime": "44.600s", + "word": "back" + }, + { + "startTime": "44.600s", + "endTime": "44.700s", + "word": "and" + }, + { + "startTime": "44.700s", + "endTime": "44.900s", + "word": "said" + }, + { + "startTime": "44.900s", + "endTime": "45.200s", + "word": "we" + }, + { + "startTime": "45.200s", + "endTime": "45.400s", + "word": "found" + }, + { + "startTime": "45.400s", + "endTime": "45.500s", + "word": "a" + }, + { + "startTime": "45.500s", + "endTime": "45.800s", + "word": "stone" + }, + { + "startTime": "45.800s", + "endTime": "46.100s", + "word": "house" + }, + { + "startTime": "46.100s", + "endTime": "46.800s", + "word": "where" + }, + { + "startTime": "46.800s", + "endTime": "47s", + "word": "there" + }, + { + "startTime": "47s", + "endTime": "47.100s", + "word": "is" + }, + { + "startTime": "47.100s", + "endTime": "47.300s", + "word": "room" + }, + { + "startTime": "47.300s", + "endTime": "47.400s", + "word": "and" + }, + { + "startTime": "47.400s", + "endTime": "47.500s", + "word": "board" + }, + { + "startTime": "47.500s", + "endTime": "47.800s", + "word": "for" + }, + { + "startTime": "47.800s", + "endTime": "47.900s", + "word": "a" + }, + { + "startTime": "47.900s", + "endTime": "48.100s", + "word": "Saul" + }, + { + "startTime": "48.100s", + "endTime": "48.800s", + "word": "there's" + }, + { + "startTime": "48.800s", + "endTime": "48.800s", + "word": "a" + }, + { + "startTime": "48.800s", + "endTime": "49.200s", + "word": "kindly" + }, + { + "startTime": "49.200s", + "endTime": "49.500s", + "word": "horse" + }, + { + "startTime": "49.500s", + "endTime": "49.700s", + "word": "named" + } + ] + } + ] + } + ] +} + +var parsed = parseGoogle(sampleResponse,'444'); + +console.log("----"); +console.log(JSON.stringify(parsed,null,2)); + + +// function parseGoogle(data, offset){ +// var out = { +// sentences: [] +// }; + +// if (typeof offset === 'undefined') { +// offset = 0; +// } + +// // modifying sentences results +// out.sentences = data.results.map(function(r) { +// // new item object +// var item = {}; +// // set item to IBM Json transcription one +// var _item = r.alternatives[0]; +// item.transcript = _item.transcript; +// item.confidence = _item.confidence; +// // modify item IBM Json transcription to add time offset +// item.words = _item.timestamps.map(function(t) { +// // add time offset for each word start and end time +// return { +// word: t[0], +// start: t[1] + offset, +// end: t[2] + offset +// }; +// }); +// // add item back to the list of results +// return item; +// }); + +// //returning results +// return out; + +// } \ No newline at end of file diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/send_to_google.js b/lib/interactive_transcription_generator/transcriber/google_stt/send_to_google.js new file mode 100644 index 0000000..e5ed92c --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/send_to_google.js @@ -0,0 +1,50 @@ +'use strict'; +// using unofficula google module +// https://github.com/pietrop/gcloud_speech_electron +const Speech = require('gcloud_speech_electron'); + +var SendToGoogle = function(){}; + +SendToGoogle.prototype.send = function(audioFile,keys, languageModel, cb){ + + const APIKEY = keys.apiKey; + console.log("APIKEY",APIKEY); + + var configSTT = { + "encoding": 'FLAC', + "sampleRateHertz": 16000, + // for supported languages see https://cloud.google.com/speech/docs/languages + "languageCode": languageModel, + "maxAlternatives": 1, + "profanityFilter": false, + "enableWordTimeOffsets": true + }; + + + var client = new Speech(APIKEY); + + client.recognize(audioFile,configSTT, function(error, response){ + if(error){ + console.error("There has been an error"); + //console.error(JSON.stringify(error.error.message, null, 2)); + // Do something with the Error + console.error(JSON.stringify(error,null,2)); + + if(cb){cb(error,null);}else{return error;} + + }else{ + if(response == null){ + console.log(response); + console.error(error); + } + // Do something with the results + // console.log("error: ",JSON.stringify(response,null,2)); + console.log("response: ",JSON.stringify(response,null,2)); + + if(cb){cb(null,response);}else{return response;} + } + }); + +}; + +module.exports = SendToGoogle; diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/write_out.js b/lib/interactive_transcription_generator/transcriber/google_stt/write_out.js new file mode 100644 index 0000000..da01c8d --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/write_out.js @@ -0,0 +1,48 @@ +/** + * @module writeOut + * @description reorganise IBM Watson STT Json in the right timecode order + * @author Pietro Passarelli + * @description sorting concat json, deleting tmp audio files, and returning + * takes in data array of ibm watson json stt, callback for final json to output + * @requires fs + * @tutorial IBM_watson_stt_specs + */ + +"use strict"; + +var fs = require('fs'); + + +/** +* @function writeOut +* @description reorganise IBM Watson STT Json in the right timecode order +* @param {object} data - IBM STT transcription Json specs +*/ +function writeOut(data) { + + //results list + var out = []; + //order by timecode number in seconds + data = data.sort(function(a, b) { + return a.f.offset - b.f.offset; + }); + //concat json transcription for individual audio clips into one json + data.forEach(function(d) { + out = out.concat(d.data.sentences); + }); + + //removing temp audio files + // if (data.length > 1) { + // data.forEach(function(d) { + // fs.unlink(d.f.name); + // }); + // } + //return resuls list, output json of transcription IBM Specs + return out; + +} + + +// writeOut(exampleOut); + +module.exports = writeOut; diff --git a/lib/interactive_transcription_generator/transcriber/google_stt/write_out.test.js b/lib/interactive_transcription_generator/transcriber/google_stt/write_out.test.js new file mode 100644 index 0000000..66ee2a5 --- /dev/null +++ b/lib/interactive_transcription_generator/transcriber/google_stt/write_out.test.js @@ -0,0 +1,431 @@ +'use strict'; + + +var writeOutGoogle = require('./write_out.js'); + +var sampleInputOneFile = [ + { + "f": { + "name": "/Users/pietropassarelli/Library/Application Support/autoEdit2/media/norman_door_trimmed.mp4.1504069013038.tmp.flac", + "offset": 0 + }, + "data": { + "sentences": [ + { + "transcript": "there's this door on the 10th floor of the VOX media office that I hate so much", + "confidence": 0.95495653, + "words": [ + { + "word": "there's", + "start": 0, + "end": 0.4 + }, + { + "word": "this", + "start": 0.4, + "end": 0.5 + }, + { + "word": "door", + "start": 0.5, + "end": 1 + }, + { + "word": "on", + "start": 1, + "end": 1.3 + }, + { + "word": "the", + "start": 1.3, + "end": 1.5 + }, + { + "word": "10th", + "start": 1.5, + "end": 1.7 + }, + { + "word": "floor", + "start": 1.7, + "end": 1.8 + }, + { + "word": "of", + "start": 1.8, + "end": 2.2 + }, + { + "word": "the", + "start": 2.2, + "end": 2.4 + }, + { + "word": "VOX", + "start": 2.4, + "end": 2.7 + }, + { + "word": "media", + "start": 2.7, + "end": 2.8 + }, + { + "word": "office", + "start": 2.8, + "end": 3 + }, + { + "word": "that", + "start": 3, + "end": 3.4 + }, + { + "word": "I", + "start": 3.4, + "end": 3.5 + }, + { + "word": "hate", + "start": 3.5, + "end": 3.6 + }, + { + "word": "so", + "start": 3.6, + "end": 3.8 + }, + { + "word": "much", + "start": 3.8, + "end": 4.2 + } + ] + }, + { + "transcript": " dammit", + "confidence": 0.43232667, + "words": [ + { + "word": "dammit", + "start": 6.3, + "end": 6.9 + } + ] + }, + { + "transcript": " . Is your wrong", + "confidence": 0.5716926, + "words": [ + { + "word": ".", + "start": 8.9, + "end": 9.4 + }, + { + "word": "Is", + "start": 9.4, + "end": 9.5 + }, + { + "word": "your", + "start": 9.5, + "end": 9.7 + }, + { + "word": "wrong", + "start": 9.7, + "end": 9.9 + } + ] + } + ] + } + } +] + + +var sampleInputTwoFiles = [ + { + "f": { + "name": "/Users/pietropassarelli/Library/Application Support/autoEdit2/media/norman_door_trimmed.mp4.1504069013038.tmp.flac", + "offset": 0 + }, + "data": { + "sentences": [ + { + "transcript": "there's this door on the 10th floor of the VOX media office that I hate so much", + "confidence": 0.95495653, + "words": [ + { + "word": "there's", + "start": 0, + "end": 0.4 + }, + { + "word": "this", + "start": 0.4, + "end": 0.5 + }, + { + "word": "door", + "start": 0.5, + "end": 1 + }, + { + "word": "on", + "start": 1, + "end": 1.3 + }, + { + "word": "the", + "start": 1.3, + "end": 1.5 + }, + { + "word": "10th", + "start": 1.5, + "end": 1.7 + }, + { + "word": "floor", + "start": 1.7, + "end": 1.8 + }, + { + "word": "of", + "start": 1.8, + "end": 2.2 + }, + { + "word": "the", + "start": 2.2, + "end": 2.4 + }, + { + "word": "VOX", + "start": 2.4, + "end": 2.7 + }, + { + "word": "media", + "start": 2.7, + "end": 2.8 + }, + { + "word": "office", + "start": 2.8, + "end": 3 + }, + { + "word": "that", + "start": 3, + "end": 3.4 + }, + { + "word": "I", + "start": 3.4, + "end": 3.5 + }, + { + "word": "hate", + "start": 3.5, + "end": 3.6 + }, + { + "word": "so", + "start": 3.6, + "end": 3.8 + }, + { + "word": "much", + "start": 3.8, + "end": 4.2 + } + ] + }, + { + "transcript": " dammit", + "confidence": 0.43232667, + "words": [ + { + "word": "dammit", + "start": 6.3, + "end": 6.9 + } + ] + }, + { + "transcript": " . Is your wrong", + "confidence": 0.5716926, + "words": [ + { + "word": ".", + "start": 8.9, + "end": 9.4 + }, + { + "word": "Is", + "start": 9.4, + "end": 9.5 + }, + { + "word": "your", + "start": 9.5, + "end": 9.7 + }, + { + "word": "wrong", + "start": 9.7, + "end": 9.9 + } + ] + } + ] + } + }, + + { + "f": { + "name": "/Users/pietropassarelli/Library/Application Support/autoEdit2/media/norman_door_trimmed.mp4.1504069013038.tmp.flac", + "offset": 400000 + }, + "data": { + "sentences": [ + { + "transcript": "there's this door on the 10th floor of the VOX media office that I hate so much", + "confidence": 0.95495653, + "words": [ + { + "word": "there's", + "start": 0, + "end": 0.4 + }, + { + "word": "this", + "start": 0.4, + "end": 0.5 + }, + { + "word": "door", + "start": 0.5, + "end": 1 + }, + { + "word": "on", + "start": 1, + "end": 1.3 + }, + { + "word": "the", + "start": 1.3, + "end": 1.5 + }, + { + "word": "10th", + "start": 1.5, + "end": 1.7 + }, + { + "word": "floor", + "start": 1.7, + "end": 1.8 + }, + { + "word": "of", + "start": 1.8, + "end": 2.2 + }, + { + "word": "the", + "start": 2.2, + "end": 2.4 + }, + { + "word": "VOX", + "start": 2.4, + "end": 2.7 + }, + { + "word": "media", + "start": 2.7, + "end": 2.8 + }, + { + "word": "office", + "start": 2.8, + "end": 3 + }, + { + "word": "that", + "start": 3, + "end": 3.4 + }, + { + "word": "I", + "start": 3.4, + "end": 3.5 + }, + { + "word": "hate", + "start": 3.5, + "end": 3.6 + }, + { + "word": "so", + "start": 3.6, + "end": 3.8 + }, + { + "word": "much", + "start": 3.8, + "end": 4.2 + } + ] + }, + { + "transcript": " dammit", + "confidence": 0.43232667, + "words": [ + { + "word": "dammit", + "start": 6.3, + "end": 6.9 + } + ] + }, + { + "transcript": " . Is your wrong", + "confidence": 0.5716926, + "words": [ + { + "word": ".", + "start": 8.9, + "end": 9.4 + }, + { + "word": "Is", + "start": 9.4, + "end": 9.5 + }, + { + "word": "your", + "start": 9.5, + "end": 9.7 + }, + { + "word": "wrong", + "start": 9.7, + "end": 9.9 + } + ] + } + ] + } + } +] + +var result = writeOutGoogle( sampleInputOneFile ); +// var result = writeOutGoogle( sampleInputTwoFiles ) + +console.log(JSON.stringify(result,null,2)); \ No newline at end of file diff --git a/lib/interactive_transcription_generator/transcriber/ibm_stt_node/parse.js b/lib/interactive_transcription_generator/transcriber/ibm_stt_node/parse.js index 173eb13..c3827df 100644 --- a/lib/interactive_transcription_generator/transcriber/ibm_stt_node/parse.js +++ b/lib/interactive_transcription_generator/transcriber/ibm_stt_node/parse.js @@ -19,7 +19,7 @@ // "use strict"; function parse(data, offset) { - + console.log("parse data", data, offset); //sentences output var out = { sentences: [] diff --git a/lib/interactive_transcription_generator/transcriber/index.js b/lib/interactive_transcription_generator/transcriber/index.js index 1fd7462..2cf374f 100644 --- a/lib/interactive_transcription_generator/transcriber/index.js +++ b/lib/interactive_transcription_generator/transcriber/index.js @@ -70,7 +70,7 @@ * @tutorial IBM_watson_stt_specs */ -// "use strict"; +"use strict"; var convertToWav = require('./convert_to_audio.js'); var split = require('./split.js'); @@ -81,6 +81,11 @@ var parse = require('./ibm_stt_node/parse.js'); var writeOut = require('./ibm_stt_node/write_out.js'); var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_convert.js"); + +var parseGoogle = require('./google_stt/parse.js'); +var SendToGoogle = require('./google_stt/send_to_google.js'); +var convertGoogleToJson = require('./google_stt/convert_to_json.js'); +var writeOutGoogle = require('./google_stt/write_out.js'); /** * @function transcribe * @description Takes in the file path to a media audio or video file and returns a json of transcription. @@ -98,6 +103,8 @@ var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_c * @returns {callback} config.callback - Optional callback to return when transcription has done processing. It returns an json object of the transcription. */ +var ibmMaxLengthSlit = 60*5; //seconds +var googleMaxLengthSplit = 50; //seconds //TODO: refactor this with promisses? @@ -110,6 +117,11 @@ var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_c var audioFile = config.audioFileOutput; //TODO: pocketsphinx needs a wave and ibm and ogg audio. so doing this patch for now. needs a better solution. var audioFileForPocketsphinx = audioFile.split(".ogg")[0]+".tmp.wav"; + var audioFileForIBM = audioFile.split(".ogg")[0]+".tmp.flac"; + + if(config.sttEngine == 'google'){ + audioFile = audioFileForIBM; + } // list of audio clips when audio file chunked to send to IBM STT API in 5 min chunks var out = []; //number of audio clips @@ -127,7 +139,9 @@ var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_c // if using IBM STT API if ( config.sttEngine == "ibm" ) { // 2. Split audio into 5 min chunks - split(newFile, tmpFolder, ffmpegPath, ffprobePath, function(files) { + var ibmSttExtension = 'ogg'; + + split(newFile,ibmMaxLengthSlit, tmpFolder, ffmpegPath, ffprobePath, ibmSttExtension, function(files) { //reading number of audio files total = files.length; //3. iterate and send to STT @@ -141,6 +155,7 @@ var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_c callback(error, null ); }else{ //add offset to json of each audio clippings transcription + var parsed = parse(data, f.offset); //add json of each audio clippings transcription to out list. out.push({ f: f, data: parsed }); @@ -175,6 +190,56 @@ var parseSamJsonToTranscripJson = require("./ibm_stt_node/sam_transcriber_json_c }else if(config.sttEngine == "google"){ console.info("YOU HAVE CHOSEN Google"); + console.info(JSON.stringify(config,null,2)); + + var SendToGoogleUtil = new SendToGoogle(); + var googleSttExtension = 'flac'; + // var out = []; + // var total = 0; + var googleKeys = {apiKey: config.keys.apiKey};//{projectId: config.keys.project_id, keyFilename: config.keys.path, credentials: config.keys }; + //TODO: move max length for split somewhere that is not a magic number + split(newFile,googleMaxLengthSplit, tmpFolder, ffmpegPath, ffprobePath, googleSttExtension, function(files) { + console.log("files: ", files); + //iterate [optional] + // reading number of audio files + total = files.length; + //3. iterate and send to STT + files.forEach(function(f) { + console.log("f: ", JSON.stringify(f,null, 2)); + // TODO: change param to config object to make self documenting. + SendToGoogleUtil.send(f.name, googleKeys, config.languageModel, function(err, data){ + + //temporary patch + if(data!= null){ + + console.log("data",data); + // receive + if(err){ + console.error('ERROR:', err); + callback(err, null ); + } + //parse + var parsed = parseGoogle(data, f.offset); + console.log("parsed", JSON.stringify(parsed, null, 2)); + + out.push({ f: f, data: parsed }); + total--; + if (total === 0) { + // callback(null, convertToJson( writeOut( out ))); + callback(null, convertGoogleToJson( writeOutGoogle( out )) ); + } + + } + + + }); + });//iterate over files split + });//split + + }else if(config.sttEngine == "microsoft"){ + console.info("YOU HAVE CHOSEN Microsoft "); + console.info(JSON.stringify(config,null,2)); + diff --git a/lib/interactive_transcription_generator/transcriber/split.js b/lib/interactive_transcription_generator/transcriber/split.js index b327e2e..19b0adf 100644 --- a/lib/interactive_transcription_generator/transcriber/split.js +++ b/lib/interactive_transcription_generator/transcriber/split.js @@ -61,9 +61,12 @@ var trimmer = require('./trimmer.js'); * @param {callback} callback - * @returns {callback} callback - returns array of audio clips names with offsts eg [{ name: filename, offset: 0 }] */ -function split(file, tmpFolder, ffmpegBinPath, ffprobeBinPath, cb) { +function split(file,maxLength, tmpFolder, ffmpegBinPath, ffprobeBinPath, extension, cb) { + // if(extension == undefined){ + // extension = 'ogg'; + // } //maximum legth of clips in seconds. 5 minutes each. - var maxLength = 60 * 5; + // var maxLength = 60 * 5; //number of files var total = 0; //list of files @@ -108,7 +111,7 @@ function split(file, tmpFolder, ffmpegBinPath, ffprobeBinPath, cb) { //file name of original audio file var fileName = path.parse(file).base; //file name for clips - var filePart = path.join(tmpFolder, fileName + '.' + i + '.ogg'); + var filePart = path.join(tmpFolder, fileName + '.' + i + '.'+extension); //trim audio files trimmer.trim({ src: file, diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4bc3ee5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6066 @@ +{ + "name": "autoEdit2", + "version": "1.0.8", + "lockfileVersion": 1, + "dependencies": { + "@google-cloud/speech": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@google-cloud/speech/-/speech-0.10.3.tgz", + "integrity": "sha1-ovMmiSkCW2C1yL0yRkNPimGHgHs=" + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=" + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@types/long": { + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@types/long/-/long-3.0.32.tgz", + "integrity": "sha512-ZXyOOm83p7X8p3s0IYM3VeueNmHpkk/yMlP8CLeOnEcu6hIwPH7YjZBvhQkR0ZFS2DqZAxKtJ/M5fcuv3OU5BA==" + }, + "@types/node": { + "version": "7.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.33.tgz", + "integrity": "sha512-8fVvl6Yyk3jZvSYxRMS9/AmZJ5RXCOP9N4xSlykyBViVESu751pxHYTN14Embn1Fem78YwEHdC7p7KGQQpwunw==", + "dev": true + }, + "7zip-bin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-2.1.0.tgz", + "integrity": "sha512-jgBTCcJ0gQedE9o8Jw+H/Gyq//EnQxmVpha7CdprIwzRSC81Uj37inHvPzv6jaZgZwkCcfho52rAaIFBrdbO7w==", + "dev": true + }, + "7zip-bin-linux": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/7zip-bin-linux/-/7zip-bin-linux-1.1.0.tgz", + "integrity": "sha512-BfW7XsUWNV/j723el3gGbiNWdmvLrnTB9VD0BondfCinxCwz4RQ60W4c3UxRpfHn1Q4Cn1o/DxYFmLMgHTEKqg==", + "dev": true, + "optional": true + }, + "7zip-bin-mac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz", + "integrity": "sha1-Pmh3i78JJq3GgVlCcHRQXUdVXAI=", + "dev": true, + "optional": true + }, + "7zip-bin-win": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/7zip-bin-win/-/7zip-bin-win-2.1.0.tgz", + "integrity": "sha512-7t8V+cGvZ0xUAuTLH1iDkrl+XVYWxlS3hHCvA6yELTcx2VwgMDNe4FdQlyKJRjO0PExn0sit8wD3PGaPKBpt2A==", + "dev": true, + "optional": true + }, + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "abstract-leveldown": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz", + "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=" + }, + "accessory": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/accessory/-/accessory-1.1.0.tgz", + "integrity": "sha1-eDPpg5oy3tdtJgIfNqQXB6Ug9ZM=", + "dev": true, + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", + "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=", + "dev": true + } + } + }, + "acorn": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", + "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==" + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + }, + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true + }, + "ap": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ap/-/ap-0.2.0.tgz", + "integrity": "sha1-rglCYAspkS8NKxTsYMRejzMLYRA=", + "dev": true + }, + "appdmg": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.4.5.tgz", + "integrity": "sha1-R6gnhluKC+SKuzUiVn40k9LxuDg=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "append-stream": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/append-stream/-/append-stream-1.2.2.tgz", + "integrity": "sha1-NsYjgTP/1PktQ3F4KJCkEtoC34Q=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-buffer-from-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/array-buffer-from-string/-/array-buffer-from-string-0.1.0.tgz", + "integrity": "sha1-OxQ1H4YUnYTvxhLFrafthRadewc=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asar": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-0.13.0.tgz", + "integrity": "sha1-3zPdnQG/+EJGTQ2fCVdA1KYq+xQ=", + "dev": true, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true + } + } + }, + "asar-integrity": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/asar-integrity/-/asar-integrity-0.1.1.tgz", + "integrity": "sha512-Nt9p2sWWNFkgqaioFCjsjTQTBAu0YFy2UyW0cWqNr1UBs9vV0j1kG0GI3r1lEJ6XxV4jiz1/AwCJnCDj5DLJUg==", + "dev": true + }, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "astw": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", + "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "dev": true + }, + "babel-core": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "dev": true + }, + "babel-generator": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", + "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true + }, + "babel-register": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", + "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "dev": true + }, + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "babel-template": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", + "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "dev": true + }, + "babel-traverse": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", + "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "dev": true + }, + "babel-types": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true + }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "dev": true + }, + "babylon": { + "version": "6.17.4", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", + "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", + "dev": true + }, + "backbone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz", + "integrity": "sha1-TMgOp8sWMaxHSInOQPL4vGg7KZk=" + }, + "bagpipe": { + "version": "github:ivshti/bagpipe#328cc576d682539d635af3a8c360696af353e44a" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base32-encode": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-0.1.0.tgz", + "integrity": "sha1-HrxcnM+r9sJ4yGOSiLpOUO4rsfU=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "base64url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true + }, + "bignumber.js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.1.1.tgz", + "integrity": "sha1-GkFdmsAUwTJWrx/u2dGj5XF6jPc=" + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true + }, + "binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true + }, + "binary-search-tree": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.6.tgz", + "integrity": "sha1-xtKRlOKGgn/P/geQEOa/d97xDOM=", + "dependencies": { + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" + } + } + }, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + } + } + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "bluebird-lst": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.2.tgz", + "integrity": "sha1-x7JhdrbI+kWL5wPesGRKKPZKR1s=", + "dev": true, + "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + } + } + }, + "bn.js": { + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", + "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + }, + "bootstrap": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", + "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" + }, + "boxen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.1.0.tgz", + "integrity": "sha1-sbad1SIwXoB6md7ud329blFnsQI=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + } + } + }, + "bplist-creator": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", + "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", + "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + } + } + }, + "browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true + }, + "browserify-shim": { + "version": "3.8.14", + "resolved": "https://registry.npmjs.org/browserify-shim/-/browserify-shim-3.8.14.tgz", + "integrity": "sha1-vxBXAmky0yU8de991xTzuHft7Gs=", + "dev": true, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true + }, + "browserify-transform-tools": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.7.0.tgz", + "integrity": "sha1-g+J3Ih9jJZvtLn6yooOpcKUB9MQ=" + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytebuffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", + "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=" + }, + "cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "catharsis": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.8.tgz", + "integrity": "sha1-aTR59DqsVJ2Aa9c+kkzQ2USVGgY=", + "dev": true + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true + }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "ci-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz", + "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "colour": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", + "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" + }, + "combine-source-map": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", + "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", + "dev": true, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true + } + } + }, + "configstore": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.0.tgz", + "integrity": "sha1-Rd+QcHPibfoc9LLVL1tgVF6qEdE=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "copy-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-0.3.0.tgz", + "integrity": "sha1-3rLcL6nJKQ7UfIQVWpmabUX1o1g=", + "dev": true + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cp-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-3.2.0.tgz", + "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true + }, + "cross-spawn-async": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", + "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + }, + "crypto-browserify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", + "dev": true + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "csv-stringify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.0.4.tgz", + "integrity": "sha1-vBi6ua1M7zGV/SV5gLWLR5xC0+U=" + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=" + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decompress-zip": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz", + "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", + "dev": true + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, + "deferred-leveldown": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.1.tgz", + "integrity": "sha1-XSXDMQ9f6QmUb2JA3J+Q3RCace8=" + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true + }, + "detective": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", + "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true + }, + "docco": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/docco/-/docco-0.7.0.tgz", + "integrity": "sha1-1gblqZDLoFLKHhgDqcWH7O48XDg=", + "dev": true + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "dot-parts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dot-parts/-/dot-parts-1.0.1.tgz", + "integrity": "sha1-iEvXvPwwgv+tL+XbU+SU2PPgdD8=", + "dev": true + }, + "dot-prop": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.1.1.tgz", + "integrity": "sha1-qEk/C3te7sglJbXHWH+n3nyoWcE=", + "dev": true + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "ds-store": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ds-store/-/ds-store-0.1.6.tgz", + "integrity": "sha1-0QJO90btDBPw9/7IXH6FjoxLfKc=", + "dev": true + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + } + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true + }, + "ecdsa-sig-formatter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", + "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=" + }, + "electron": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/electron/-/electron-1.6.11.tgz", + "integrity": "sha1-vnnA69zv7bW/KBF0CYAPpTus7/o=", + "dev": true + }, + "electron-builder": { + "version": "18.8.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-18.8.1.tgz", + "integrity": "sha512-NpzryxnocKYjGFUrCYYdk3aF0Bq6hEPO14uSo7aYalagVFvMrQh6riVFQixClroX9rcDU+bBbKBSPepEtu55cA==", + "dev": true, + "dependencies": { + "ajv": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.1.tgz", + "integrity": "sha1-3NAwRRdYg7obY25a6ew9+auFMjo=", + "dev": true + }, + "electron-download-tf": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/electron-download-tf/-/electron-download-tf-4.3.1.tgz", + "integrity": "sha1-eTDySgjjZp6q04pffyiKEEYcr3I=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "sumchecker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "dev": true + } + } + }, + "electron-builder-core": { + "version": "18.7.0", + "resolved": "https://registry.npmjs.org/electron-builder-core/-/electron-builder-core-18.7.0.tgz", + "integrity": "sha512-gXQpgtsudDs9CuAthtQHhBDukFt8JNNxOkx60Dy8VAu6AUXmZhfdwb1XyH43axtDlJH5sFBFJVWP68h05LbGzw==", + "dev": true + }, + "electron-builder-http": { + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/electron-builder-http/-/electron-builder-http-18.8.0.tgz", + "integrity": "sha512-pqTGItyJs8aZLJYHtsWZQcBZFCuUrUKE966ElGEvMOySMr1WrntuOyK1CGQGZYhReXoImHzr4zcdzX1gZRsjRw==", + "dev": true + }, + "electron-builder-util": { + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/electron-builder-util/-/electron-builder-util-18.8.0.tgz", + "integrity": "sha512-E0J4RAoDl+95/QQAfmaSIESyUYJFuRmsLOakUvblN2KSIypJwrCKRzOIpwXphtXg1WLOegdUk/JfuzClrURb9w==", + "dev": true + }, + "electron-debug": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-1.2.0.tgz", + "integrity": "sha1-IuUac+G/CV0LtRpsPZeiAzZMQiI=" + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "electron-is-accelerator": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", + "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" + }, + "electron-is-dev": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.1.2.tgz", + "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" + }, + "electron-localshortcut": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-2.0.2.tgz", + "integrity": "sha512-PVPhNwQ7hOPRqGZuK0YTzjAu2gzPOPCDPDU7kzXuuFtNNNAdOdpaXe8XTJW7LOw9JdmT/akrzdGitZ+6xOSnIw==" + }, + "electron-osx-sign": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.6.tgz", + "integrity": "sha1-I5ji18q1wdjD7quxzUkDdlKOw5o=", + "dev": true, + "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "electron-packager": { + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-8.7.2.tgz", + "integrity": "sha1-RX078kvJYHwGrUsettqkrMrcIQg=", + "dev": true, + "dependencies": { + "electron-download": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz", + "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=", + "dev": true, + "dependencies": { + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "dev": true + } + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "sumchecker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "dev": true + } + } + }, + "electron-publish": { + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-18.8.0.tgz", + "integrity": "sha512-T/6zvotjnGYvLYA0AXLsV+gd5fpvltqMIYeGjlbdoQdYmifi6hS5Eq9sFepP6J6lEQhJMA70THEx1JRfu9V2YQ==", + "dev": true + }, + "electron-recompile": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/electron-recompile/-/electron-recompile-1.0.16.tgz", + "integrity": "sha1-klDaL4iisfYCC2v+J68XFzn7D9U=", + "dev": true, + "dependencies": { + "fs-extra": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", + "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true + } + } + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dependencies": { + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + } + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true + }, + "es5-ext": { + "version": "0.10.23", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", + "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=" + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=" + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=" + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=" + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz", + "integrity": "sha1-xmOSP24gqtSNDA+knzHG1PSTYM8=", + "dev": true, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true + } + } + }, + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "dev": true + }, + "execa": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.4.0.tgz", + "integrity": "sha1-TrZGejaglfq7KXD/nV4/t7zm68M=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true + }, + "exposify": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/exposify/-/exposify-0.5.0.tgz", + "integrity": "sha1-+S0AlMJls/VT4fpFagOhiD0QWcw=", + "dev": true, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=" + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true + }, + "extract-zip": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz", + "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=", + "dev": true, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + }, + "falafel": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=" + }, + "fcopy-pre-bundled": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/fcopy-pre-bundled/-/fcopy-pre-bundled-0.1.2.tgz", + "integrity": "sha512-tsboc66HjCjXf93MAA316XR4IiL+NFoohvyczR+T/YnVbqVe9V3KchaJMlWLbH+fNX4seugCx3rCqGN9KT+zkg==", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true + }, + "ffmpeg-static": { + "version": "git+ssh://git@github.com/pietrop/ffmpeg-static.git#5355dfdcd79f52a662a3849a18d620d43ca71303" + }, + "ffprobe-static": { + "version": "git+https://github.com/pietrop/ffprobe-static.git#cf75a358c695bd58c94823efb06dab258d019ccb" + }, + "file-saver": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz", + "integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=" + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true + }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true + }, + "fluent-ffmpeg": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", + "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=" + }, + "fmix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz", + "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true + }, + "fs-extra-p": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.3.0.tgz", + "integrity": "sha1-LhSKVEKH3wJYkxyrxYMGO07tIwM=", + "dev": true + }, + "fs-temp": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.1.2.tgz", + "integrity": "sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8=", + "dev": true + }, + "fs-xattr": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.1.15.tgz", + "integrity": "sha1-huFirCcn5msi/LtF69IMV5Pnq/Q=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dev": true, + "optional": true, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "dev": true, + "optional": true + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "optional": true + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "dev": true + }, + "gcloud_speech_electron": { + "version": "git+https://github.com/pietrop/gcloud_speech_electron.git#452a6aa1e227781bafedfec8f4ae9e9930539fce" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=" + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-package-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", + "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=", + "dev": true, + "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=" + }, + "globo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/globo/-/globo-1.1.0.tgz", + "integrity": "sha1-DSYJiVXepCLrIAGxBImLChAcqvM=", + "dev": true + }, + "google-auth-library": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.10.0.tgz", + "integrity": "sha1-bhW6vuhf0d0U2NEoopW2g41SE24=" + }, + "google-auto-auth": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.5.4.tgz", + "integrity": "sha1-HYbHko1jPnWpwasDSlJ+/M5KQLE=", + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "google-gax": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.13.5.tgz", + "integrity": "sha1-OkjMUrfhZPcxk4836t0rc/fEk9c=", + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + } + } + }, + "google-p12-pem": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz", + "integrity": "sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=" + }, + "google-proto-files": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.13.1.tgz", + "integrity": "sha512-CivI3rZ85dMPTCAyxq6lq9s7vDkeWEIFxweopC1vEjjRmFMJwOX/MOmFZ90a0BGal/Dsb63vq7Ael9ryeokz0g==" + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "grpc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.10.1.tgz", + "integrity": "sha512-xmhA11h2XhqpSVzDAmoQAYdNQ+swILXpKOiRpAEQ2kX55ioxVADc6v7SkS4zQBxm4klhQHgGqpGKvoL6LGx4VQ==", + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ajv": { + "version": "5.5.2", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true + }, + "asn1": { + "version": "0.2.3", + "bundled": true + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "block-stream": { + "version": "0.0.9", + "bundled": true + }, + "boom": { + "version": "4.3.1", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.8", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true + }, + "co": { + "version": "4.6.0", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.6", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "3.1.2", + "bundled": true, + "dependencies": { + "boom": { + "version": "5.2.0", + "bundled": true + } + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true + }, + "debug": { + "version": "2.6.9", + "bundled": true + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "extend": { + "version": "3.0.1", + "bundled": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true + }, + "form-data": { + "version": "2.3.2", + "bundled": true + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true + }, + "glob": { + "version": "7.1.2", + "bundled": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true + }, + "har-validator": { + "version": "5.0.3", + "bundled": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "hawk": { + "version": "6.0.2", + "bundled": true + }, + "hoek": { + "version": "4.2.1", + "bundled": true + }, + "http-signature": { + "version": "1.2.0", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true + }, + "mime-db": { + "version": "1.33.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.18", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, + "node-pre-gyp": { + "version": "0.7.0", + "bundled": true + }, + "nopt": { + "version": "4.0.1", + "bundled": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "protobufjs": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.2.tgz", + "integrity": "sha1-WXSNfc8D0tsiwT2p/rAk4Wq4DJE=" + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qs": { + "version": "6.5.1", + "bundled": true + }, + "rc": { + "version": "1.2.6", + "bundled": true + }, + "readable-stream": { + "version": "2.3.5", + "bundled": true + }, + "request": { + "version": "2.83.0", + "bundled": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "sntp": { + "version": "2.1.0", + "bundled": true + }, + "sshpk": { + "version": "1.14.1", + "bundled": true + }, + "string_decoder": { + "version": "1.0.3", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "tar": { + "version": "2.2.1", + "bundled": true + }, + "tar-pack": { + "version": "3.4.1", + "bundled": true + }, + "tough-cookie": { + "version": "2.3.4", + "bundled": true + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.2.1", + "bundled": true + }, + "verror": { + "version": "1.10.0", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=" + } + } + }, + "gtoken": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.3.tgz", + "integrity": "sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==", + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + }, + "has-require": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/has-require/-/has-require-1.2.2.tgz", + "integrity": "sha1-khZ1qxMNvZdo/I2o8ajiQt+kF3Q=", + "dev": true + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "hat": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", + "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=" + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + }, + "highlight.js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", + "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true + }, + "hnp": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/hnp/-/hnp-0.0.1.tgz", + "integrity": "sha1-2RSJpd/N9BznQVhCmKcwZldqkoY=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true + }, + "home-path": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", + "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-minifier": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-0.5.6.tgz", + "integrity": "sha1-DxW0N8J7XOmqhKRMooUIgOkleZY=", + "dev": true + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + }, + "httperror": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/httperror/-/httperror-0.2.3.tgz", + "integrity": "sha1-yW4NZsvPbg4Z2A5HJ6laCddf4Lg=" + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imul": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz", + "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "github:Ivshti/inherits#0c5b02ddc4172bf2e55460916401ac37cfe6f9d3" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true + }, + "insert-module-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", + "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true + }, + "is-defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-defined/-/is-defined-1.0.0.tgz", + "integrity": "sha1-HwfKZ9Vx9ZTEsUQVpF9774j5K/U=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=" + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jasmine": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.6.0.tgz", + "integrity": "sha1-ayLnCIPo5YnUVjRhU7TSBt2+IX8=", + "dev": true + }, + "jasmine-core": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", + "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", + "dev": true + }, + "jquery": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", + "integrity": "sha1-AeHfuikP5z3rp3zurLD5ui/sngw=" + }, + "jquery-sortable": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/jquery-sortable/-/jquery-sortable-0.9.13.tgz", + "integrity": "sha1-HL+2VQE6B0c3BXHwbiL1JKAP+6I=", + "dependencies": { + "jquery": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", + "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI=" + } + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", + "integrity": "sha512-0LoUNELX4S+iofCT8f4uEHIiRBR+c2AINyC8qRWfC6QNruLtxVZRJaPcu/xwMgFIgDxF25tGHaDjvxzJCNE9yw==", + "dev": true, + "dependencies": { + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + } + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsdoc": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.0.tgz", + "integrity": "sha512-AkXuBHsvZ7D81lV2BRiZhvcWPAaNNfWssEoDqKte07mhE+/6FUgeTQxMhbQPx1gaeWNtd4K60fo/ecD9FPIpjA==", + "dev": true, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.16", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.16.tgz", + "integrity": "sha1-RIzu3uwKXvVrYoEuNVa/NsW7l4E=", + "dev": true + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "klaw": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-bigint": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.1.4.tgz", + "integrity": "sha1-tdQLipAJ6S8Vf3wHnbCXABgw4B4=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "JSONStream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.0.7.tgz", + "integrity": "sha1-cAyORxH+8c5CH2UL6tVSNbsh194=" + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "jwa": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", + "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=" + }, + "jws": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", + "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=" + }, + "keydir": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/keydir/-/keydir-2.1.1.tgz", + "integrity": "sha1-qYHz5/DDw3UdQ1cg5u3jvmol07c=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true + }, + "labeled-stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", + "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" + }, + "level-codec": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-6.1.0.tgz", + "integrity": "sha1-9d8KmVgvdtrEOFUVGrb05NDWAEU=" + }, + "level-errors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.4.tgz", + "integrity": "sha1-NYXmI5dMc3qTdVSSpDwCZ82kQl8=" + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=" + }, + "leveldown-open": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/leveldown-open/-/leveldown-open-1.0.3.tgz", + "integrity": "sha1-gJT771sbjFJS8yOewUUX6fhmWgI=" + }, + "levelup": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.8.tgz", + "integrity": "sha1-+0QsSI776hBD9+uZKaeSp0+9HaY=" + }, + "lexical-scope": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", + "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", + "dev": true + }, + "linvodb3": { + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/linvodb3/-/linvodb3-3.24.0.tgz", + "integrity": "sha1-fVhtEcADSHQDw5fEWK8gxCfsu0Q=", + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "lodash.noop": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.1.tgz", + "integrity": "sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=" + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true + }, + "ltgt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-1.2.0.tgz", + "integrity": "sha1-YXcH3DnzgpRBXmagLzwnBaxAeGY=" + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "macos-alias": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/macos-alias/-/macos-alias-0.2.11.tgz", + "integrity": "sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo=", + "dev": true + }, + "make-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", + "dev": true + }, + "medea": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/medea/-/medea-1.0.3.tgz", + "integrity": "sha1-0WNlsxXvZNbMjsyOwW22RC/1JYM=", + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + } + } + }, + "medeadown": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/medeadown/-/medeadown-1.1.8.tgz", + "integrity": "sha1-tY+6gN68NRTZ4L1EeBPQlqFrsCc=", + "dependencies": { + "abstract-leveldown": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-1.0.0.tgz", + "integrity": "sha1-q83BgnkzExeFJp1dwtYy1Ophl2o=" + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=" + } + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true + }, + "miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true + }, + "mime": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "dev": true + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdir-p": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mkdir-p/-/mkdir-p-0.0.7.tgz", + "integrity": "sha1-JMXb4m2jqZ7xWKHu+aXC3Z3laDw=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + }, + "mkpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", + "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=", + "dev": true + }, + "mksnapshot": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz", + "integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=", + "dev": true, + "dependencies": { + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true + } + } + }, + "module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "moment": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + }, + "monotonic-timestamp": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/monotonic-timestamp/-/monotonic-timestamp-0.0.8.tgz", + "integrity": "sha1-Z5h9AqQcFfVotsCgWIWYndJAK6A=" + }, + "mothership": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mothership/-/mothership-0.2.0.tgz", + "integrity": "sha1-k9SKL7w+UOKl/I7VhvW8RMZfmpk=", + "dev": true + }, + "mousetrap": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.1.tgz", + "integrity": "sha1-KghfXHUSlMdefoH27CVFspy/Qtk=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "murmur-32": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.1.0.tgz", + "integrity": "sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE=", + "dev": true + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + }, + "nested-error-stacks": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", + "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", + "dev": true + }, + "nmp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/nmp/-/nmp-1.0.3.tgz", + "integrity": "sha1-amloftApt1kpl4RirE76XZ7RXfs=", + "dev": true + }, + "node-emoji": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.6.1.tgz", + "integrity": "sha512-cMmAHLDT/QHCSuHBL3vQ8qXwFypx/3zN1sForcR65OM8FbC+LKefUCI29NAik4Crpiv2byyWj1SWZRlNBtbi2g==", + "dev": true + }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + }, + "node-timecodes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/node-timecodes/-/node-timecodes-2.4.1.tgz", + "integrity": "sha1-mqI9mGjRQ4/T7BnREhl54+OtfaY=" + }, + "node-underscorify": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/node-underscorify/-/node-underscorify-0.0.14.tgz", + "integrity": "sha1-PRC7aHoLYgfpvFeyAqGb7E7mz78=", + "dev": true, + "dependencies": { + "through": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", + "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", + "dev": true + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true + }, + "npm-run-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz", + "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=", + "dev": true + }, + "nugget": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=" + }, + "object.pick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.1.2.tgz", + "integrity": "sha1-wk2mzkXxDFqr5xeX0WqDnNWWmx4=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "optjs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", + "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", + "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", + "dev": true, + "dependencies": { + "execa": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", + "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true + }, + "package.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/package.js/-/package.js-1.1.3.tgz", + "integrity": "sha1-/sQlRMIvxwNJU2fXkXeXBTmCctU=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true + }, + "parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true + }, + "patch-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/patch-text/-/patch-text-1.0.2.tgz", + "integrity": "sha1-S/NuZeUXM9bpjwz2LgkDTaoDSKw=", + "dev": true + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz", + "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true + }, + "pbkdf2": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", + "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "pidlockfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pidlockfile/-/pidlockfile-1.1.1.tgz", + "integrity": "sha1-1nMS+zJt7rReVBmkfBQYd708yYw=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + }, + "plist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz", + "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=", + "dev": true, + "dependencies": { + "base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", + "dev": true + } + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true + }, + "private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "through2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true + } + } + }, + "protobufjs": { + "version": "6.8.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.6.tgz", + "integrity": "sha512-eH2OTP9s55vojr3b7NBaF9i4WhWPkv/nq55nznWNp/FomKrLViprUcqnBjHph2tFQ+7KciGPTPsVWGz0SOhL0Q==", + "dependencies": { + "@types/node": { + "version": "8.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.3.tgz", + "integrity": "sha512-vjiRZkhKEyZndtFOz/FtIp0CqPbgOOki8o9IcPOLTqlzcnvFLToYdERshLaI6TCz7pDWoKlmvgftqB4xlltn9g==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==" + }, + "pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "random-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.1.tgz", + "integrity": "sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "dev": true + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "rcedit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-0.9.0.tgz", + "integrity": "sha1-ORDfVzRTmeKwMl9KUZAH+J5V7xw=", + "dev": true + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=" + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true + }, + "registry-auth-token": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", + "dev": true + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "rename-function-calls": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/rename-function-calls/-/rename-function-calls-0.1.1.tgz", + "integrity": "sha1-f4M2nAB6MAf2q+MDPM+BaGoQjgE=", + "dev": true, + "dependencies": { + "detective": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-3.1.0.tgz", + "integrity": "sha1-d3gkRKt1K4jKG+Lp0KA5Xx2iXu0=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true + }, + "replace-requires": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/replace-requires/-/replace-requires-1.0.4.tgz", + "integrity": "sha1-AUtzMLa54lV7cQQ7ZvsCZgw79mc=", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-globify": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/require-globify/-/require-globify-1.4.1.tgz", + "integrity": "sha1-Wxf6WcoyUkJk/T0i0+QNlP6qRFg=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true + }, + "run-parallel": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz", + "integrity": "sha1-KQA8miFj4B4tLfyQV18sbB1hoDk=" + }, + "run-series": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz", + "integrity": "sha1-iac93F51ye+KtjIMChYA1qQRebk=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sanitize-filename": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", + "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "dev": true + }, + "semver": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz", + "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk=" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "dependencies": { + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true + } + } + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + }, + "solr-client": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/solr-client/-/solr-client-0.6.0.tgz", + "integrity": "sha1-xc7bi4bjOr7pkpBcl7ImV0pJBZQ=", + "dependencies": { + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=" + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=" + }, + "bl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=" + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=" + }, + "har-validator": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "integrity": "sha1-2DhCsOtMQ1lgrrEIoGejqpTA7rI=" + }, + "http-signature": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "integrity": "sha1-F5bPZ6ABrVzWhJ3KCZFIXwkIn+Y=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "qs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + }, + "request": { + "version": "2.63.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.63.0.tgz", + "integrity": "sha1-yD58NIXl2b+bFGMYQpvEjxJT2L4=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + } + } + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=" + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "dev": true + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "stream-events": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.3.tgz", + "integrity": "sha512-SvnBCMhEBQSJml4/ImlWkzGWgchjo1tVxnoBUOa1i1g3BsYNWz4W6a9Hc8VhqfmwJiEGu6tLrGdNRm/K/I4YXw==" + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "string": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/string/-/string-3.3.1.tgz", + "integrity": "sha1-jSdX7BwObFJnlvu2sUA2pAmDmLc=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + }, + "string.prototype.codepointat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz", + "integrity": "sha1-aybpvTr8qnvjtCabUm3huCAArHg=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "syntax-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", + "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "dev": true, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "term-size": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-0.1.1.tgz", + "integrity": "sha1-hzYLljlsq1dgljcUzaDQy+7K2co=", + "dev": true + }, + "ternary": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ternary/-/ternary-1.0.0.tgz", + "integrity": "sha1-RXAnJWCMlJnUapYQ6bDkn/JveJ4=", + "dev": true + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true + }, + "tmp": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", + "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=", + "dev": true + }, + "tn1150": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tn1150/-/tn1150-0.1.0.tgz", + "integrity": "sha1-ZzUD0k1WuH3ouMd/7j/AhT1ZoY0=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "touch": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", + "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", + "dev": true, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true + } + } + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + }, + "transformify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/transformify/-/transformify-0.1.2.tgz", + "integrity": "sha1-mk9CoVRDPdcnuAV1Qoo8nlSJ6/E=", + "dev": true + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", + "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=" + }, + "umd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", + "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", + "dev": true + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=" + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true + }, + "universalify": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz", + "integrity": "sha1-nrHEZR3rzGcMyU8adXYjMruWd3g=", + "dev": true + }, + "unorm": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", + "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=", + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "update-notifier": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.2.0.tgz", + "integrity": "sha1-G1g3z5DAc22IYncytmHBOPht5y8=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "util": { + "version": "github:ivshti/node-util#97b6beed8e0e478cd4184965ac94bf316f94e5f5" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "uuid-1345": { + "version": "0.99.6", + "resolved": "https://registry.npmjs.org/uuid-1345/-/uuid-1345-0.99.6.tgz", + "integrity": "sha1-sScK4BWnchx63sbEbsFpxgmK7UA=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true + }, + "vcap_services": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/vcap_services/-/vcap_services-0.2.0.tgz", + "integrity": "sha1-zlNqhWniczyznmzFOUVvxXZ1nyg=" + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=" + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true + }, + "watchify": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz", + "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=", + "dev": true, + "dependencies": { + "browserify": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.4.0.tgz", + "integrity": "sha1-CJo0Y69Y0OSNjNQHCz90ZU1avKk=", + "dev": true + }, + "buffer": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.6.tgz", + "integrity": "sha1-LqZp9+7Atu2gWwj4tf9mGyhXNYg=", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + } + } + }, + "watson-developer-cloud": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watson-developer-cloud/-/watson-developer-cloud-2.4.1.tgz", + "integrity": "sha1-sjqpi/KxsxsaX1KUJlO64iyxmWE=", + "dependencies": { + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=" + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=" + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=" + }, + "request": { + "version": "2.74.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", + "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + } + } + }, + "websocket": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.24.tgz", + "integrity": "sha1-dJA+dfJUW2suHeFCW8HJBZF6GJA=" + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=" + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "widest-line": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz", + "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==", + "dev": true + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true + }, + "string-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true + } + } +} diff --git a/package.json b/package.json index 71131af..1dd4d86 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "electron": "electron .", "make_js": "browserify lib/app/app.js > electron/app.js", "start": "npm run make_js && npm run electron", - + "postinstall": "electron-rebuild", + "electron-rebuild": "electron-rebuild", + "recompile": "electron-recompile --electron 1.6.11", "pack": "build --dir", "pack:mac": "build --dir --mac --x64", "pack:linux": "build --dir --linux --x64", @@ -19,15 +21,13 @@ "build:mac_app_store": "echo 'Mac App Store Option Not currently implemented'", "build:win": "build --win nsis-web --x64", "build:linux": "build --linux --x64", - "publish:github": "build --publish always --draft true", - "make_demo": "npm run make_js && node ./config/make_demo.js", "preview_page": "npm run make_demo && jekyll serve --source project_page --destination docs", "preview_page_no_demo_reload": "jekyll serve --source project_page --destination docs", "make_page": "npm run make_demo && jekyll build --source project_page --destination docs" }, - "build": { + "build": { "appId": "org.autoEdit2.autoEdit2-electron", "asar": false, "files": [ @@ -100,7 +100,7 @@ "win": { "target": "nsis", "icon": "build/icon.ico", - "files": [ + "files": [ "node_modules/ffmpeg-static/bin/win/${arch}/ffmpeg", "!node_modules/ffmpeg-static/bin/win/ia32${/*}", "!node_modules/ffmpeg-static/bin/linux${/*}", @@ -115,21 +115,22 @@ "author": "Pietro Passarelli (http://pietropassarelli.com)", "license": "MIT", "dependencies": { + "@google-cloud/speech": "^0.10.3", "backbone": "^1.3.3", "bootstrap": "^3.3.7", "electron-debug": "^1.1.0", "ffmpeg-static": "git@github.com:pietrop/ffmpeg-static.git", - "ffprobe-static": "git@github.com:pietrop/ffprobe-static.git", + "ffprobe-static": "git+https://github.com/pietrop/ffprobe-static.git", "file-saver": "^1.3.3", "fluent-ffmpeg": "^2.1.0", + "gcloud_speech_electron": "git+https://github.com/pietrop/gcloud_speech_electron.git", "jquery": "1.12.4", "jquery-sortable": "^0.9.13", - "linvodb3": "^3.24.0", + "linvodb3": "3.24.0", "medeadown": "^1.1.8", "moment": "^2.15.2", "mousetrap": "^1.6.0", "node-timecodes": "^2.4.1", - "node-underscorify": "0.0.14", "path": "^0.12.7", "request": "^2.81.0", "require-globify": "^1.4.1", @@ -140,15 +141,18 @@ "devDependencies": { "appdmg": "^0.4.5", "babelify": "^7.3.0", - "browserify": "^13.1.1", - "browserify-shim": "^3.8.12", + "browserify": "^13.3.0", + "browserify-shim": "^3.8.14", "copy-dir": "^0.3.0", "docco": "^0.7.0", - "electron": "^1.6.10", + "electron": "^1.6.11", "electron-builder": "^18.1.1", "electron-packager": "^8.7.0", + "electron-rebuild": "^1.6.0", + "electron-recompile": "^1.0.16", "jasmine": "^2.5.2", "jsdoc": "^3.4.1", + "node-underscorify": "0.0.14", "watchify": "^3.7.0" }, "repository": { diff --git a/project_page/_config.yml b/project_page/_config.yml index e7e41d8..3f0b030 100644 --- a/project_page/_config.yml +++ b/project_page/_config.yml @@ -40,7 +40,7 @@ guide: "https://pietropassarelli.gitbooks.io/autoedit2-user-manual/content/" donate: "https://donorbox.org/c9762eef-0e08-468e-90cb-2d00643697f8?recurring=true" mailinglist: "http://eepurl.com/cMzwSX" documentation: "https://pietropassarelli.gitbooks.io/autoedit-2-documentation/content/" -twitter: "http://tiwtter.com/autoEdit2" +twitter: "http://twitter.com/autoEdit2" facebook: "https://www.facebook.com/autoEdit.io" # Dates are not included in permalinks permalink: none