commit d073dec84dc50e386cd2336fc8fd0be89d4cb81d
parent 5f9dc0595637fa2d1c5ab126298b24f97382f029
Author: Dan Stillman <dstillman@zotero.org>
Date: Thu, 5 Oct 2017 17:21:03 -0400
Merge pull request #1293 from zotero/xhr-processDocuments
XMLHttpRequest() processDocuments
Diffstat:
13 files changed, 2173 insertions(+), 636 deletions(-)
diff --git a/.babelrc b/.babelrc
@@ -28,13 +28,6 @@
"transform-react-jsx",
"transform-react-display-name",
[
- "transform-async-to-module-method",
- {
- "module": "resource://zotero/bluebird.js",
- "method": "coroutine"
- }
- ],
- [
"transform-es2015-modules-commonjs",
{
"strictMode": false
diff --git a/chrome/content/zotero/tools/testTranslators/translatorTester.js b/chrome/content/zotero/tools/testTranslators/translatorTester.js
@@ -63,7 +63,7 @@ var Zotero_TranslatorTesters = new function() {
try {
for(var i=0; i<translators.length; i++) {
if (includeTranslators.length
- && !includeTranslators.includes(translators[i].label)) continue;
+ && !includeTranslators.some(x => translators[i].label.includes(x))) continue;
if (skipTranslators && skipTranslators[translators[i].translatorID]) continue;
testers.push(new Zotero_TranslatorTester(translators[i], type));
};
@@ -298,10 +298,18 @@ Zotero_TranslatorTester._sanitizeItem = function(item, testItem, keepValidFields
// remove fields to be ignored
if(!keepValidFields && "accessDate" in item) delete item.accessDate;
-
- //sort tags, if they're still there
- if(item.tags && typeof item.tags === "object" && "sort" in item.tags) {
- item.tags = Zotero.Utilities.arrayUnique(item.tags).sort();
+
+ // Sort tags
+ if (item.tags && Array.isArray(item.tags)) {
+ // Normalize tags -- necessary until tests are updated for 5.0
+ if (testItem) {
+ item.tags = Zotero.Translate.Base.prototype._cleanTags(item.tags);
+ }
+ item.tags.sort((a, b) => {
+ if (a.tag < b.tag) return -1;
+ if (b.tag < a.tag) return 1;
+ return 0;
+ });
}
return item;
@@ -391,54 +399,25 @@ Zotero_TranslatorTester.prototype._runTestsRecursively = function(testDoneCallba
/**
* Fetches the page for a given test and runs it
+ *
* This function is only applicable in Firefox; it is overridden in translator_global.js in Chrome
- * and Safari
- * @param {Object} test Test to execute
- * @param {Document} doc DOM document to test against
- * @param {Function} testDoneCallback A callback to be executed when test is complete
+ * and Safari.
+ *
+ * @param {Object} test - Test to execute
+ * @param {Function} testDoneCallback - A callback to be executed when test is complete
*/
-Zotero_TranslatorTester.prototype.fetchPageAndRunTest = function(test, testDoneCallback) {
- var timer = Components.classes["@mozilla.org/timer;1"].
- createInstance(Components.interfaces.nsITimer);
- timer.initWithCallback({"notify":function() {
- try {
- if (hiddenBrowser) Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- } catch(e) {}
- }}, TEST_RUN_TIMEOUT, Components.interfaces.nsITimer.TYPE_ONE_SHOT);
-
- var me = this;
- var runTest = function(doc) {
- me.runTest(test, doc, function(obj, test, status, message) {
- try {
- timer.cancel();
- } catch(e) {};
- if(hiddenBrowser) Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- testDoneCallback(obj, test, status, message);
- });
- };
- var hiddenBrowser = Zotero.HTTP.processDocuments(test.url,
- function(doc) {
- if(test.defer) {
- me._debug(this, "TranslatorTesting: Waiting "
- + (Zotero_TranslatorTester.DEFER_DELAY/1000)
- + " second(s) for page content to settle"
- );
- Zotero.setTimeout(() => runTest(doc), Zotero_TranslatorTester.DEFER_DELAY);
- } else {
- runTest(doc);
- }
- },
- null,
- function(e) {
- testDoneCallback(this, test, "failed", "Translation failed to initialize: "+e);
- },
- true
- );
-
- // No hidden browser returned from translation-server processDocuments()
- if (hiddenBrowser) {
- hiddenBrowser.docShell.allowMetaRedirects = true;
- }
+Zotero_TranslatorTester.prototype.fetchPageAndRunTest = function (test, testDoneCallback) {
+ Zotero.HTTP.processDocuments(
+ test.url,
+ (doc) => {
+ this.runTest(test, doc, function (obj, test, status, message) {
+ testDoneCallback(obj, test, status, message);
+ });
+ }
+ )
+ .catch(function (e) {
+ testDoneCallback(this, test, "failed", "Translation failed to initialize: " + e);
+ }.bind(this))
};
/**
@@ -531,7 +510,9 @@ Zotero_TranslatorTester.prototype._runTestTranslate = function(translate, transl
}
translate.setTranslator(this.translator);
- translate.translate(false);
+ translate.translate({
+ libraryID: false
+ });
};
/**
@@ -628,7 +609,9 @@ Zotero_TranslatorTester.prototype.newTest = function(doc, testReadyCallback) {
});
translate.setHandler("done", function(obj, returnValue) { me._createTest(obj, multipleMode, returnValue, testReadyCallback) });
translate.capitalizeTitles = false;
- translate.translate(false);
+ translate.translate({
+ libraryID: false
+ });
};
/**
diff --git a/chrome/content/zotero/xpcom/attachments.js b/chrome/content/zotero/xpcom/attachments.js
@@ -265,7 +265,7 @@ Zotero.Attachments = new function(){
// Save using a hidden browser
var nativeHandlerImport = function () {
return new Zotero.Promise(function (resolve, reject) {
- var browser = Zotero.HTTP.processDocuments(
+ var browser = Zotero.HTTP.loadDocuments(
url,
Zotero.Promise.coroutine(function* () {
let channel = browser.docShell.currentDocumentChannel;
@@ -591,7 +591,9 @@ Zotero.Attachments = new function(){
}
}
- if (contentType === 'text/html' || contentType === 'application/xhtml+xml') {
+ if ((contentType === 'text/html' || contentType === 'application/xhtml+xml')
+ // Documents from XHR don't work here
+ && document instanceof Ci.nsIDOMDocument) {
Zotero.debug('Saving document with saveDocument()');
yield Zotero.Utilities.Internal.saveDocument(document, tmpFile);
}
diff --git a/chrome/content/zotero/xpcom/data/feedItem.js b/chrome/content/zotero/xpcom/data/feedItem.js
@@ -234,10 +234,12 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
}
// Load document
- let hiddenBrowser = Zotero.HTTP.processDocuments(
- this.getField('url'),
- item => deferred.resolve(item),
- ()=>{}, error, true
+ let hiddenBrowser = Zotero.HTTP.loadDocuments(
+ this.getField('url'),
+ doc => deferred.resolve(doc),
+ () => {},
+ error,
+ true
);
let doc = yield deferred.promise;
diff --git a/chrome/content/zotero/xpcom/http.js b/chrome/content/zotero/xpcom/http.js
@@ -65,7 +65,10 @@ Zotero.HTTP = new function() {
this[i] = options[i];
}
};
- this.SecurityException.prototype = Object.create(Zotero.Error.prototype);
+ this.SecurityException.prototype = Object.create(
+ // Zotero.Error not available in the connector
+ Zotero.Error ? Zotero.Error.prototype : Error.prototype
+ );
this.promise = function () {
@@ -797,20 +800,81 @@ Zotero.HTTP = new function() {
.getService(Components.interfaces.nsIIOService).offline;
}
+
+ /**
+ * Load one or more documents using XMLHttpRequest
+ *
+ * This should stay in sync with the equivalent function in the connector
+ *
+ * @param {String|String[]} urls URL(s) of documents to load
+ * @param {Function} processor - Callback to be executed for each document loaded; if function returns
+ * a promise, it's waited for before continuing
+ * @param {Zotero.CookieSandbox} [cookieSandbox] Cookie sandbox object
+ * @return {Promise<Array>} - A promise for an array of results from the processor runs
+ */
+ this.processDocuments = async function (urls, processor, cookieSandbox) {
+ // Handle old signature: urls, processor, onDone, onError, dontDelete, cookieSandbox
+ if (arguments.length > 3) {
+ Zotero.debug("Zotero.HTTP.processDocuments() now takes only 3 arguments -- update your code");
+ var onDone = arguments[2];
+ var onError = arguments[3];
+ var cookieSandbox = arguments[5];
+ }
+
+ if (typeof urls == "string") urls = [urls];
+ var funcs = urls.map(url => () => {
+ return Zotero.HTTP.request(
+ "GET",
+ url,
+ {
+ responseType: 'document'
+ }
+ )
+ .then((xhr) => {
+ var doc = this.wrapDocument(xhr.response, url);
+ return processor(doc, url);
+ });
+ });
+
+ // Run processes serially
+ // TODO: Add some concurrency?
+ var f;
+ var results = [];
+ while (f = funcs.shift()) {
+ try {
+ results.push(await f());
+ }
+ catch (e) {
+ if (onError) {
+ onError(e);
+ }
+ throw e;
+ }
+ }
+
+ // Deprecated
+ if (onDone) {
+ onDone();
+ }
+
+ return results;
+ };
+
+
/**
* Load one or more documents in a hidden browser
*
* @param {String|String[]} urls URL(s) of documents to load
* @param {Function} processor - Callback to be executed for each document loaded; if function returns
* a promise, it's waited for before continuing
- * @param {Function} done Callback to be executed after all documents have been loaded
- * @param {Function} exception Callback to be executed if an exception occurs
+ * @param {Function} onDone - Callback to be executed after all documents have been loaded
+ * @param {Function} onError - Callback to be executed if an error occurs
* @param {Boolean} dontDelete Don't delete the hidden browser upon completion; calling function
* must call deleteHiddenBrowser itself.
* @param {Zotero.CookieSandbox} [cookieSandbox] Cookie sandbox object
* @return {browser} Hidden browser used for loading
*/
- this.processDocuments = function(urls, processor, done, exception, dontDelete, cookieSandbox) {
+ this.loadDocuments = function (urls, processor, onDone, onError, dontDelete, cookieSandbox) {
// (Approximately) how many seconds to wait if the document is left in the loading state and
// pageshow is called before we call pageshow with an incomplete document
const LOADING_STATE_TIMEOUT = 120;
@@ -827,11 +891,11 @@ Zotero.HTTP = new function() {
firedLoadEvent = 0;
currentURL++;
try {
- Zotero.debug("Zotero.HTTP.processDocuments: Loading "+url);
+ Zotero.debug("Zotero.HTTP.loadDocuments: Loading " + url);
hiddenBrowser.loadURI(url);
} catch(e) {
- if(exception) {
- exception(e);
+ if (onError) {
+ onError(e);
return;
} else {
if(!dontDelete) Zotero.Browser.deleteHiddenBrowser(hiddenBrowsers);
@@ -840,7 +904,7 @@ Zotero.HTTP = new function() {
}
} else {
if(!dontDelete) Zotero.Browser.deleteHiddenBrowser(hiddenBrowsers);
- if(done) done();
+ if (onDone) onDone();
}
};
@@ -861,7 +925,7 @@ Zotero.HTTP = new function() {
return;
}
- Zotero.debug("Zotero.HTTP.processDocuments: "+url+" loaded");
+ Zotero.debug("Zotero.HTTP.loadDocuments: " + url + " loaded");
hiddenBrowser.removeEventListener("pageshow", onLoad, true);
hiddenBrowser.zotero_loaded = true;
@@ -878,8 +942,8 @@ Zotero.HTTP = new function() {
if (maybePromise && maybePromise.then) {
maybePromise.then(() => doLoad())
.catch(e => {
- if (exception) {
- exception(e);
+ if (onError) {
+ onError(e);
}
else {
throw e;
@@ -890,8 +954,8 @@ Zotero.HTTP = new function() {
try {
if (error) {
- if (exception) {
- exception(error);
+ if (onError) {
+ onError(error);
}
else {
throw error;
diff --git a/chrome/content/zotero/xpcom/server_connector.js b/chrome/content/zotero/xpcom/server_connector.js
@@ -505,7 +505,7 @@ Zotero.Server.Connector.SaveSnapshot.prototype = {
}
else {
let deferred = Zotero.Promise.defer();
- Zotero.HTTP.processDocuments(
+ Zotero.HTTP.loadDocuments(
["zotero://connector/" + encodeURIComponent(data.url)],
Zotero.Promise.coroutine(function* (doc) {
delete Zotero.Server.Connector.Data[data.url];
diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js
@@ -86,7 +86,7 @@ Zotero.Translate.Sandbox = {
&& translate.translator[0].configOptions
&& translate.translator[0].configOptions.async;
- var run = function (resolve) {
+ var run = async function (async) {
Zotero.debug("Translate: Saving item");
// warn if itemDone called after translation completed
@@ -152,7 +152,7 @@ Zotero.Translate.Sandbox = {
if(translate._libraryID === false || translate._parentTranslator) {
translate.newItems.push(item);
if(translate._parentTranslator && Zotero.isFx && !Zotero.isBookmarklet) {
- // Copy object so it is accessible to child translator
+ // Copy object so it is accessible to parent translator
item = translate._sandboxManager.copyObject(item);
item.complete = oldItem.complete;
}
@@ -216,12 +216,9 @@ Zotero.Translate.Sandbox = {
// For synchronous import (when Promise isn't available in the sandbox or the do*
// function doesn't use it) and web translators, queue saves
- if (!resolve || !asyncTranslator) {
+ if (!async || !asyncTranslator) {
Zotero.debug("Translate: Saving via queue");
translate.saveQueue.push(item);
- if (resolve) {
- resolve();
- }
}
// For async import, save items immediately
else {
@@ -240,11 +237,9 @@ Zotero.Translate.Sandbox = {
return new translate._sandboxManager.sandbox.Promise(function (resolve, reject) {
try {
- let maybePromise = run(resolve);
- if (maybePromise) {
- maybePromise
- .then(resolve)
- .catch(function (e) {
+ run(true).then(
+ resolve,
+ function (e) {
// Fix wrapping error from sandbox when error is thrown from _saveItems()
if (Zotero.isFx) {
reject(translate._sandboxManager.copyObject(e));
@@ -252,8 +247,8 @@ Zotero.Translate.Sandbox = {
else {
reject(e);
}
- });
- }
+ }
+ );
}
catch (e) {
reject(e);
@@ -1106,7 +1101,9 @@ Zotero.Translate.Base.prototype = {
var handlers = this._handlers[type].slice();
for(var i=0, n=handlers.length; i<n; i++) {
- Zotero.debug("Translate: Running handler "+i+" for "+type, 5);
+ if (type != 'debug') {
+ Zotero.debug(`Translate: Running handler ${i} for ${type}`, 5);
+ }
try {
returnValue = handlers[i].apply(null, args);
} catch(e) {
diff --git a/chrome/content/zotero/xpcom/utilities_translate.js b/chrome/content/zotero/xpcom/utilities_translate.js
@@ -191,13 +191,22 @@ Zotero.Utilities.Translate.prototype.loadDocument = function(url, succeeded, fai
}
/**
- * Already documented in Zotero.HTTP
+ * Already documented in Zotero.HTTP, except this optionally takes noCompleteOnError, which prevents
+ * the translation process from being cancelled automatically on error, as it is normally. The promise
+ * is still rejected on error for handling by the calling function.
* @ignore
*/
-Zotero.Utilities.Translate.prototype.processDocuments = function(urls, processor, done, exception) {
+Zotero.Utilities.Translate.prototype.processDocuments = async function (urls, processor, noCompleteOnError) {
+ // Handle old signature: urls, processor, onDone, onError
+ if (arguments.length > 3 || typeof arguments[2] == 'function') {
+ Zotero.debug("ZU.processDocuments() now takes only 3 arguments -- update your code");
+ var onDone = arguments[2];
+ var onError = arguments[3];
+ }
+
var translate = this._translate;
- if(typeof(urls) == "string") {
+ if (typeof urls == "string") {
urls = [translate.resolveURL(urls)];
} else {
for(var i in urls) {
@@ -205,109 +214,89 @@ Zotero.Utilities.Translate.prototype.processDocuments = function(urls, processor
}
}
- // Unless the translator has proposed some way to handle an error, handle it
- // by throwing a "scraping error" message
- if(exception) {
- var myException = function(e) {
- var browserDeleted;
- try {
- exception(e);
- } catch(e) {
- if(hiddenBrowser) {
- try {
- Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- } catch(e) {}
- }
- browserDeleted = true;
- translate.complete(false, e);
- }
-
- if(!browserDeleted) {
- try {
- Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- } catch(e) {}
- }
- }
- } else {
- var myException = function(e) {
- if(hiddenBrowser) {
- try {
- Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- } catch(e) {}
- }
- translate.complete(false, e);
- }
- }
-
- if(Zotero.isFx) {
- if(typeof translate._sandboxLocation === "object") {
- var protocol = translate._sandboxLocation.location.protocol,
- host = translate._sandboxLocation.location.host;
- } else {
- var url = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService)
- .newURI(translate._sandboxLocation, null, null),
- protocol = url.scheme+":",
- host = url.host;
+ var processDoc = function (doc) {
+ if (Zotero.isFx) {
+ let newLoc = doc.location;
+ let url = Services.io.newURI(newLoc.href, null, null);
+ return processor(
+ // Rewrap document for the sandbox
+ translate._sandboxManager.wrap(
+ Zotero.Translate.DOMWrapper.unwrap(doc),
+ null,
+ // Duplicate overrides from Zotero.HTTP.wrapDocument()
+ {
+ documentURI: newLoc.spec,
+ URL: newLoc.spec,
+ location: new Zotero.HTTP.Location(url),
+ defaultView: new Zotero.HTTP.Window(url)
+ }
+ ),
+ newLoc.href
+ );
}
- }
+
+ return processor(doc, doc.location.href);
+ };
- for(var i=0; i<urls.length; i++) {
+ var funcs = [];
+ // If current URL passed, use loaded document instead of reloading
+ for (var i = 0; i < urls.length; i++) {
if(translate.document && translate.document.location
&& translate.document.location.toString() === urls[i]) {
- // Document is attempting to reload itself
Zotero.debug("Translate: Attempted to load the current document using processDocuments; using loaded document instead");
- // This fixes document permissions issues in translation-server when translators call
- // processDocuments() on the original URL (e.g., AOSIC)
- // DEBUG: Why is this necessary? (see below also)
- if (Zotero.isServer) {
- processor(
- translate._sandboxManager.wrap(
- Zotero.Translate.DOMWrapper.unwrap(
- this._translate.document
- )
- ),
- urls[i]
- );
- }
- else {
- processor(this._translate.document, urls[i]);
- }
+ funcs.push(() => processDoc(this._translate.document, urls[i]));
urls.splice(i, 1);
i--;
}
}
translate.incrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
- var hiddenBrowser = Zotero.HTTP.processDocuments(urls, function (doc, url) {
- if(!processor) return;
-
- var newLoc = doc.location;
- if((Zotero.isFx && !Zotero.isBookmarklet && (protocol != newLoc.protocol || host != newLoc.host))
- // This fixes document permissions issues in translation-server when translators call
- // processDocuments() on same-domain URLs (e.g., some of the Code4Lib tests).
- // DEBUG: Is there a better fix for this?
- || Zotero.isServer) {
- // Cross-site; need to wrap
- processor(translate._sandboxManager.wrap(doc), url);
- } else {
- // Not cross-site; no need to wrap
- processor(doc, url);
+
+ if (urls.length) {
+ funcs.push(
+ () => Zotero.HTTP.processDocuments(
+ urls,
+ function (doc) {
+ if (!processor) return;
+ return processDoc(doc);
+ },
+ translate.cookieSandbox
+ )
+ );
+ }
+
+ var f;
+ while (f = funcs.shift()) {
+ try {
+ let maybePromise = f();
+ // The processor may or may not return a promise
+ if (maybePromise) {
+ await maybePromise;
+ }
}
- },
- function() {
- if(done) done();
- var handler = function() {
- if(hiddenBrowser) {
+ catch (e) {
+ if (onError) {
try {
- Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
- } catch(e) {}
+ onError(e);
+ }
+ catch (e) {
+ translate.complete(false, e);
+ }
}
- translate.removeHandler("done", handler);
- };
- translate.setHandler("done", handler);
- translate.decrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
- }, myException, true, translate.cookieSandbox);
+ // Unless instructed otherwise, end the translation on error
+ else if (!noCompleteOnError) {
+ translate.complete(false, e);
+ }
+ throw e;
+ }
+ }
+
+ // Deprecated
+ if (onDone) {
+ onDone();
+ }
+
+ translate.decrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
}
/**
diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js
@@ -3885,18 +3885,17 @@ var ZoteroPane = new function()
var deferred = Zotero.Promise.defer();
var processor = function (doc) {
- ZoteroPane_Local.addItemFromDocument(doc, itemType, saveSnapshot, row)
+ return ZoteroPane_Local.addItemFromDocument(doc, itemType, saveSnapshot, row)
.then(function () {
deferred.resolve()
- })
+ });
};
- // TODO: processDocuments should wait for the processor promise to be resolved
var done = function () {}
var exception = function (e) {
Zotero.debug(e, 1);
deferred.reject(e);
}
- Zotero.HTTP.processDocuments([url], processor, done, exception);
+ Zotero.HTTP.loadDocuments([url], processor, done, exception);
return deferred.promise;
}
diff --git a/package-lock.json b/package-lock.json
@@ -2,6 +2,7 @@
"name": "zotero",
"version": "5.0.0",
"lockfileVersion": 1,
+ "requires": true,
"dependencies": {
"abbrev": {
"version": "1.1.0",
@@ -20,12 +21,19 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ },
"dependencies": {
"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=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
}
}
},
@@ -51,7 +59,11 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
"integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "micromatch": "2.3.11"
+ }
},
"aproba": {
"version": "1.1.2",
@@ -63,13 +75,20 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
"integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.0"
+ }
},
"arr-diff": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.0.3"
+ }
},
"arr-flatten": {
"version": "1.0.3",
@@ -95,6 +114,16 @@
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"dev": true
},
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.9.0"
+ }
+ },
"array-map": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
@@ -111,7 +140,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "array-uniq": "1.0.3"
+ }
},
"array-uniq": {
"version": "1.0.3",
@@ -146,13 +178,21 @@
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
"integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
},
"assert": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
"integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ }
},
"assert-plus": {
"version": "0.2.0",
@@ -170,7 +210,10 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz",
"integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ }
},
"async-each": {
"version": "1.0.1",
@@ -206,61 +249,85 @@
"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
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.1"
+ }
},
"babel-core": {
"version": "6.25.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz",
"integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.22.0",
+ "babel-generator": "6.25.0",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.24.1",
+ "babel-runtime": "6.23.0",
+ "babel-template": "6.25.0",
+ "babel-traverse": "6.25.0",
+ "babel-types": "6.25.0",
+ "babylon": "6.17.4",
+ "convert-source-map": "1.5.0",
+ "debug": "2.6.8",
+ "json5": "0.5.1",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.7",
+ "slash": "1.0.0",
+ "source-map": "0.5.6"
+ }
},
"babel-generator": {
"version": "6.25.0",
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz",
"integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.23.0",
+ "babel-types": "6.25.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.4",
+ "source-map": "0.5.6",
+ "trim-right": "1.0.1"
+ }
},
"babel-helper-builder-react-jsx": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz",
"integrity": "sha1-CteRfjPI11HmRtrKTnfMGTd9LLw=",
- "dev": true
- },
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "dev": true
- },
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "dev": true
- },
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0",
+ "babel-types": "6.25.0",
+ "esutils": "2.0.2"
+ }
},
"babel-helpers": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0",
+ "babel-template": "6.25.0"
+ }
},
"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-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-syntax-async-generators": {
"version": "6.13.0",
@@ -310,71 +377,115 @@
"integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
"dev": true
},
- "babel-plugin-transform-async-to-module-method": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-module-method/-/babel-plugin-transform-async-to-module-method-6.24.1.tgz",
- "integrity": "sha1-kQmgiYd5S0EcshOFDOk17C8CnNs=",
- "dev": true
- },
"babel-plugin-transform-es2015-modules-commonjs": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz",
"integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.23.0",
+ "babel-template": "6.25.0",
+ "babel-types": "6.25.0"
+ }
},
"babel-plugin-transform-flow-strip-types": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
"integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-flow": "6.18.0",
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-transform-react-display-name": {
"version": "6.25.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
"integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-transform-react-jsx": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
"integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-react-jsx": "6.24.1",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-transform-react-jsx-self": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
"integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-transform-react-jsx-source": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
"integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.23.0"
+ }
},
"babel-plugin-transform-strict-mode": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0",
+ "babel-types": "6.25.0"
+ }
},
"babel-preset-flow": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
"integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "6.22.0"
+ }
},
"babel-preset-react": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-plugin-transform-react-display-name": "6.25.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-preset-flow": "6.23.0"
+ }
},
"babel-register": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
"integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=",
"dev": true,
+ "requires": {
+ "babel-core": "6.25.0",
+ "babel-runtime": "6.23.0",
+ "core-js": "2.4.1",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.4",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.15"
+ },
"dependencies": {
"core-js": {
"version": "2.4.1",
@@ -389,6 +500,10 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz",
"integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=",
"dev": true,
+ "requires": {
+ "core-js": "2.4.1",
+ "regenerator-runtime": "0.10.5"
+ },
"dependencies": {
"core-js": {
"version": "2.4.1",
@@ -402,19 +517,43 @@
"version": "6.25.0",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz",
"integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0",
+ "babel-traverse": "6.25.0",
+ "babel-types": "6.25.0",
+ "babylon": "6.17.4",
+ "lodash": "4.17.4"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.22.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.23.0",
+ "babel-types": "6.25.0",
+ "babylon": "6.17.4",
+ "debug": "2.6.8",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.23.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.4",
+ "to-fast-properties": "1.0.3"
+ }
},
"babylon": {
"version": "6.17.4",
@@ -439,7 +578,10 @@
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
},
"binary-extensions": {
"version": "1.8.0",
@@ -451,12 +593,15 @@
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"bluebird": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
- "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw="
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
},
"bn.js": {
"version": "4.11.6",
@@ -468,7 +613,10 @@
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
},
"bootstrap-sass": {
"version": "3.3.7",
@@ -479,13 +627,22 @@
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
},
"braces": {
"version": "1.8.5",
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
},
"brorand": {
"version": "1.1.0",
@@ -497,13 +654,23 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
"integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "combine-source-map": "0.7.2",
+ "defined": "1.0.0",
+ "JSONStream": "1.3.1",
+ "through2": "2.0.3",
+ "umd": "3.0.1"
+ }
},
"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,
+ "requires": {
+ "resolve": "1.1.7"
+ },
"dependencies": {
"resolve": {
"version": "1.1.7",
@@ -523,49 +690,135 @@
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/browserify/-/browserify-14.4.0.tgz",
"integrity": "sha1-CJo0Y69Y0OSNjNQHCz90ZU1avKk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "browser-pack": "6.0.2",
+ "browser-resolve": "1.11.2",
+ "browserify-zlib": "0.1.4",
+ "buffer": "5.0.6",
+ "cached-path-relative": "1.0.1",
+ "concat-stream": "1.5.2",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.11.0",
+ "defined": "1.0.0",
+ "deps-sort": "2.0.0",
+ "domain-browser": "1.1.7",
+ "duplexer2": "0.1.4",
+ "events": "1.1.1",
+ "glob": "7.1.2",
+ "has": "1.0.1",
+ "htmlescape": "1.1.1",
+ "https-browserify": "1.0.0",
+ "inherits": "2.0.3",
+ "insert-module-globals": "7.0.1",
+ "JSONStream": "1.3.1",
+ "labeled-stream-splicer": "2.0.0",
+ "module-deps": "4.1.1",
+ "os-browserify": "0.1.2",
+ "parents": "1.0.1",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "read-only-stream": "2.0.0",
+ "readable-stream": "2.3.0",
+ "resolve": "1.3.3",
+ "shasum": "1.0.2",
+ "shell-quote": "1.6.1",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.7.2",
+ "string_decoder": "1.0.2",
+ "subarg": "1.0.0",
+ "syntax-error": "1.3.0",
+ "through2": "2.0.3",
+ "timers-browserify": "1.4.2",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.3",
+ "vm-browserify": "0.0.4",
+ "xtend": "4.0.1"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.3",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.0",
+ "inherits": "2.0.3"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "browserify-aes": "1.0.6",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.0"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.3",
+ "des.js": "1.0.0",
+ "inherits": "2.0.3"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "randombytes": "2.0.5"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "pako": "0.2.9"
+ }
},
"buffer": {
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.6.tgz",
"integrity": "sha1-LqZp9+7Atu2gWwj4tf9mGyhXNYg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "base64-js": "1.2.0",
+ "ieee754": "1.1.8"
+ }
},
"buffer-xor": {
"version": "1.0.3",
@@ -601,7 +854,11 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
},
"caseless": {
"version": "0.12.0",
@@ -613,19 +870,34 @@
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
"integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "assertion-error": "1.0.2",
+ "deep-eql": "0.1.3",
+ "type-detect": "1.0.0"
+ }
},
"chai-as-promised": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-6.0.0.tgz",
"integrity": "sha1-GgKkM6byTa+sY7nJb6FoTbGqjaY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "check-error": "1.0.2"
+ }
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
},
"check-error": {
"version": "1.0.2",
@@ -637,19 +909,38 @@
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "anymatch": "1.3.0",
+ "async-each": "1.0.1",
+ "fsevents": "1.1.2",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0"
+ }
},
"cipher-base": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
"integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
},
"co": {
"version": "4.6.0",
@@ -661,7 +952,11 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/co-mocha/-/co-mocha-1.2.0.tgz",
"integrity": "sha1-2b41oqLRb0sbDoP2lzQByktmYK8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "is-generator": "1.0.3"
+ }
},
"code-point-at": {
"version": "1.1.0",
@@ -680,6 +975,12 @@
"resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
"integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
"dev": true,
+ "requires": {
+ "convert-source-map": "1.1.3",
+ "inline-source-map": "0.6.2",
+ "lodash.memoize": "3.0.4",
+ "source-map": "0.5.6"
+ },
"dependencies": {
"convert-source-map": {
"version": "1.1.3",
@@ -693,13 +994,19 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
},
"commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
},
"concat-map": {
"version": "0.0.1",
@@ -712,12 +1019,25 @@
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
"integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
"dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.0.6",
+ "typedarray": "0.0.6"
+ },
"dependencies": {
"readable-stream": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
},
"string_decoder": {
"version": "0.10.31",
@@ -731,7 +1051,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "date-now": "0.1.4"
+ }
},
"console-control-strings": {
"version": "1.1.0",
@@ -766,54 +1089,102 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
"integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "elliptic": "6.4.0"
+ }
},
"create-hash": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
"integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.8"
+ }
},
"create-hmac": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
"integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.3",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.0",
+ "sha.js": "2.4.8"
+ }
},
"create-react-class": {
"version": "15.6.0",
"resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz",
- "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ="
+ "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=",
+ "requires": {
+ "fbjs": "0.8.12",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
},
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "which": "1.2.14"
+ }
},
"cryptiles": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
},
"crypto-browserify": {
"version": "3.11.0",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
"integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.12",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.5"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
"dependencies": {
"assert-plus": {
"version": "1.0.0",
@@ -833,7 +1204,10 @@
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
"integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
},
"decamelize": {
"version": "1.2.0",
@@ -851,6 +1225,9 @@
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
"integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
"dev": true,
+ "requires": {
+ "type-detect": "0.1.1"
+ },
"dependencies": {
"type-detect": {
"version": "0.1.1",
@@ -865,6 +1242,16 @@
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
"integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
},
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
+ }
+ },
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
@@ -887,25 +1274,42 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
"integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "JSONStream": "1.3.1",
+ "shasum": "1.0.2",
+ "subarg": "1.0.0",
+ "through2": "2.0.3"
+ }
},
"des.js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
"integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
},
"detect-indent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
},
"detective": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz",
"integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13",
+ "defined": "1.0.0"
+ }
},
"diff": {
"version": "3.2.0",
@@ -917,13 +1321,22 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
"integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "miller-rabin": "4.0.0",
+ "randombytes": "2.0.5"
+ }
},
"doctrine": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
"integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "isarray": "1.0.0"
+ }
},
"domain-browser": {
"version": "1.1.7",
@@ -935,31 +1348,84 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.0"
+ }
},
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
},
"elliptic": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
"integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.1",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
- "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s="
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "0.4.18"
+ }
},
"error-ex": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz",
+ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ },
+ "dependencies": {
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
},
"es6-promise": {
"version": "3.3.1",
@@ -973,10 +1439,16 @@
"dev": true
},
"eslint-plugin-react": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz",
- "integrity": "sha1-J3cKzzn1/UnNCvQIPOWBBOs5DUw=",
- "dev": true
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz",
+ "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==",
+ "dev": true,
+ "requires": {
+ "doctrine": "2.0.0",
+ "has": "1.0.1",
+ "jsx-ast-utils": "2.0.1",
+ "prop-types": "15.5.10"
+ }
},
"esutils": {
"version": "2.0.2",
@@ -994,19 +1466,28 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
"integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "create-hash": "1.1.3"
+ }
},
"expand-brackets": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true
- },
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
"expand-range": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "fill-range": "2.2.3"
+ }
},
"extend": {
"version": "3.0.1",
@@ -1018,7 +1499,10 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
},
"extsprintf": {
"version": "1.0.2",
@@ -1029,7 +1513,16 @@
"fbjs": {
"version": "0.8.12",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
- "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ="
+ "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.12"
+ }
},
"filename-regex": {
"version": "2.0.1",
@@ -1041,13 +1534,24 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
},
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
},
"floatthead": {
"version": "1.4.0",
@@ -1057,7 +1561,10 @@
"flux-standard-action": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.1.tgz",
- "integrity": "sha1-bzQhG5SDTqHDzDD056+tPQ+/caI="
+ "integrity": "sha1-bzQhG5SDTqHDzDD056+tPQ+/caI=",
+ "requires": {
+ "lodash.isplainobject": "3.2.0"
+ }
},
"for-in": {
"version": "1.0.2",
@@ -1069,6 +1576,15 @@
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
"dev": true
},
"forever-agent": {
@@ -1081,19 +1597,32 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.15"
+ }
},
"formatio": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
"integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "samsam": "1.2.1"
+ }
},
"fs-extra": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
"integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "3.0.0",
+ "universalify": "0.1.0"
+ }
},
"fs.realpath": {
"version": "1.0.0",
@@ -1107,29 +1636,30 @@
"integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
"dev": true,
"optional": true,
+ "requires": {
+ "nan": "2.6.2",
+ "node-pre-gyp": "0.6.36"
+ },
"dependencies": {
"abbrev": {
"version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"ajv": {
"version": "4.11.8",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"aproba": {
"version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"are-we-there-yet": {
"version": "1.1.4",
@@ -1139,54 +1669,48 @@
},
"asn1": {
"version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"assert-plus": {
"version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"asynckit": {
"version": "0.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"aws-sign2": {
"version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"aws4": {
"version": "1.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"balanced-match": {
"version": "0.4.2",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
},
"block-stream": {
"version": "0.0.9",
"bundled": true,
- "dev": true
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"boom": {
"version": "2.10.1",
"bundled": true,
- "dev": true
+ "requires": {
+ "hoek": "2.16.3"
+ }
},
"brace-expansion": {
"version": "1.1.7",
@@ -1195,8 +1719,7 @@
},
"buffer-shims": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"caseless": {
"version": "0.12.0",
@@ -1206,52 +1729,48 @@
},
"co": {
"version": "4.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"combined-stream": {
"version": "1.0.5",
"bundled": true,
- "dev": true
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
},
"concat-map": {
"version": "0.0.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "boom": "2.10.1"
+ }
},
"dashdash": {
"version": "1.14.1",
"bundled": true,
- "dev": true,
- "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
"dependencies": {
"assert-plus": {
"version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
}
}
},
@@ -1269,20 +1788,18 @@
},
"delayed-stream": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"delegates": {
"version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "jsbn": "0.1.1"
+ }
},
"extend": {
"version": "3.0.1",
@@ -1292,14 +1809,11 @@
},
"extsprintf": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"forever-agent": {
"version": "0.6.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"form-data": {
"version": "2.1.4",
@@ -1309,8 +1823,7 @@
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"fstream": {
"version": "1.0.11",
@@ -1320,8 +1833,11 @@
"fstream-ignore": {
"version": "1.0.5",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "fstream": "1.0.11",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4"
+ }
},
"gauge": {
"version": "2.7.4",
@@ -1350,14 +1866,11 @@
},
"graceful-fs": {
"version": "4.1.11",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"har-schema": {
"version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"har-validator": {
"version": "4.2.1",
@@ -1367,100 +1880,95 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"hawk": {
"version": "3.1.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
},
"hoek": {
"version": "2.16.3",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"http-signature": {
"version": "1.1.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.0"
+ }
},
"inflight": {
"version": "1.0.6",
"bundled": true,
- "dev": true
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
},
"inherits": {
"version": "2.0.3",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"ini": {
"version": "1.3.4",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
- "dev": true
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
},
"is-typedarray": {
"version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"isarray": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"isstream": {
"version": "0.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"jodid25519": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "jsbn": "0.1.1"
+ }
},
"jsbn": {
"version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"json-schema": {
"version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"json-stable-stringify": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "jsonify": "0.0.0"
+ }
},
"json-stringify-safe": {
"version": "5.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"jsonify": {
"version": "0.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"jsprim": {
"version": "1.4.0",
@@ -1493,13 +2001,14 @@
},
"minimist": {
"version": "0.0.8",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
- "dev": true
+ "requires": {
+ "minimist": "0.0.8"
+ }
},
"ms": {
"version": "2.0.0",
@@ -1527,65 +2036,54 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"oauth-sign": {
"version": "0.8.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"object-assign": {
"version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"once": {
"version": "1.4.0",
"bundled": true,
- "dev": true
+ "requires": {
+ "wrappy": "1.0.2"
+ }
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"osenv": {
"version": "0.1.4",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"performance-now": {
"version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"process-nextick-args": {
"version": "1.0.7",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"punycode": {
"version": "1.4.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"qs": {
"version": "6.4.0",
@@ -1625,32 +2123,26 @@
},
"safe-buffer": {
"version": "5.0.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"semver": {
"version": "5.3.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"sntp": {
"version": "1.0.9",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "hoek": "2.16.3"
+ }
},
"sshpk": {
"version": "1.13.0",
@@ -1674,29 +2166,35 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
},
"stringstream": {
"version": "0.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
- "dev": true
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"tar": {
"version": "2.2.1",
"bundled": true,
- "dev": true
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
},
"tar-pack": {
"version": "3.4.0",
@@ -1707,8 +2205,9 @@
"tough-cookie": {
"version": "2.3.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "punycode": "1.4.1"
+ }
},
"tunnel-agent": {
"version": "0.6.0",
@@ -1718,32 +2217,26 @@
},
"tweetnacl": {
"version": "0.14.5",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"uid-number": {
"version": "0.0.6",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"uuid": {
"version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "bundled": true
},
"verror": {
"version": "1.3.6",
"bundled": true,
- "dev": true,
- "optional": true
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
},
"wide-align": {
"version": "1.1.2",
@@ -1753,8 +2246,7 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
}
}
},
@@ -1762,7 +2254,13 @@
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.1"
+ }
},
"function-bind": {
"version": "1.1.0",
@@ -1774,13 +2272,26 @@
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "aproba": "1.1.2",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
},
"gaze": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
"integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "globule": "1.2.0"
+ }
},
"get-caller-file": {
"version": "1.0.2",
@@ -1799,6 +2310,9 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
"dependencies": {
"assert-plus": {
"version": "1.0.0",
@@ -1812,19 +2326,34 @@
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
},
"glob-base": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
},
"glob-parent": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-glob": "2.0.1"
+ }
},
"globals": {
"version": "9.18.0",
@@ -1836,13 +2365,25 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
},
"globule": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
"integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4"
+ }
},
"graceful-fs": {
"version": "4.1.11",
@@ -1872,19 +2413,29 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
},
"has": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.0"
+ }
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
},
"has-flag": {
"version": "1.0.0",
@@ -1902,30 +2453,54 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
"integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"hash.js": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz",
"integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
},
"hawk": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
},
"history": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz",
- "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew="
+ "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=",
+ "requires": {
+ "deep-equal": "1.0.1",
+ "invariant": "2.2.2",
+ "query-string": "3.0.3",
+ "warning": "2.1.0"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "hash.js": "1.1.1",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
},
"hoek": {
"version": "2.16.3",
@@ -1942,7 +2517,11 @@
"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
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
},
"hosted-git-info": {
"version": "2.4.2",
@@ -1960,7 +2539,12 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.1"
+ }
},
"https-browserify": {
"version": "1.0.0",
@@ -1989,7 +2573,10 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
},
"indexof": {
"version": "0.0.1",
@@ -2001,7 +2588,11 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
},
"inherits": {
"version": "2.0.3",
@@ -2013,18 +2604,34 @@
"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
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.6"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "combine-source-map": "0.7.2",
+ "concat-stream": "1.5.2",
+ "is-buffer": "1.1.5",
+ "JSONStream": "1.3.1",
+ "lexical-scope": "1.2.0",
+ "process": "0.11.10",
+ "through2": "2.0.3",
+ "xtend": "4.0.1"
+ }
},
"invariant": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A="
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
},
"invert-kv": {
"version": "1.0.0",
@@ -2042,7 +2649,10 @@
"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
+ "dev": true,
+ "requires": {
+ "binary-extensions": "1.8.0"
+ }
},
"is-buffer": {
"version": "1.1.5",
@@ -2054,6 +2664,21 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
"dev": true
},
"is-dotfile": {
@@ -2066,7 +2691,10 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
},
"is-extendable": {
"version": "0.1.1",
@@ -2084,13 +2712,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
},
"is-generator": {
"version": "1.0.3",
@@ -2102,13 +2736,19 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
},
"is-number": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
},
"is-posix-bracket": {
"version": "0.1.1",
@@ -2122,11 +2762,26 @@
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
"dev": true
},
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1"
+ }
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -2155,12 +2810,19 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
},
"isomorphic-fetch": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
- "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk="
+ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "requires": {
+ "node-fetch": "1.7.1",
+ "whatwg-fetch": "2.0.3"
+ }
},
"isstream": {
"version": "0.1.2",
@@ -2207,7 +2869,10 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
"integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
},
"json-stringify-safe": {
"version": "5.0.1",
@@ -2231,7 +2896,10 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz",
"integrity": "sha1-kufHRE5f/V+jLmqa6LhQNN+DR9A=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
},
"jsonify": {
"version": "0.0.0",
@@ -2249,13 +2917,23 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
"integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "jsonparse": "1.3.1",
+ "through": "2.3.8"
+ }
},
"jsprim": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
"integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
"dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ },
"dependencies": {
"assert-plus": {
"version": "1.0.0",
@@ -2266,22 +2944,33 @@
}
},
"jsx-ast-utils": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
- "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
+ "dev": true,
+ "requires": {
+ "array-includes": "3.0.3"
+ }
},
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
},
"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,
+ "requires": {
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "stream-splicer": "2.0.0"
+ },
"dependencies": {
"isarray": {
"version": "0.0.1",
@@ -2295,18 +2984,31 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
},
"lexical-scope": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
"integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "astw": "2.2.0"
+ }
},
"libzotero": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/libzotero/-/libzotero-0.1.13.tgz",
"integrity": "sha1-QQhFtsHa9jmSZwIfnLw0t8SBuzI=",
+ "requires": {
+ "es6-promise": "3.3.1",
+ "node-fetch": "1.7.1",
+ "spark-md5": "2.0.2",
+ "striptags": "2.2.1",
+ "whatwg-fetch": "1.1.1"
+ },
"dependencies": {
"whatwg-fetch": {
"version": "1.1.1",
@@ -2319,7 +3021,14 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
},
"lodash": {
"version": "4.17.4",
@@ -2335,7 +3044,11 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
"integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "lodash._basecopy": "3.0.1",
+ "lodash.keys": "3.1.2"
+ }
},
"lodash._basecopy": {
"version": "3.0.1",
@@ -2382,7 +3095,12 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
"integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "lodash._baseassign": "3.2.0",
+ "lodash._basecreate": "3.0.3",
+ "lodash._isiterateecall": "3.0.9"
+ }
},
"lodash.isarguments": {
"version": "3.1.0",
@@ -2397,18 +3115,32 @@
"lodash.isplainobject": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz",
- "integrity": "sha1-moI4rhayAEMpYM1zRlEtASP79MU="
+ "integrity": "sha1-moI4rhayAEMpYM1zRlEtASP79MU=",
+ "requires": {
+ "lodash._basefor": "3.0.3",
+ "lodash.isarguments": "3.1.0",
+ "lodash.keysin": "3.0.8"
+ }
},
"lodash.keys": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "lodash._getnative": "3.9.1",
+ "lodash.isarguments": "3.1.0",
+ "lodash.isarray": "3.0.4"
+ }
},
"lodash.keysin": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz",
- "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8="
+ "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=",
+ "requires": {
+ "lodash.isarguments": "3.1.0",
+ "lodash.isarray": "3.0.4"
+ }
},
"lodash.memoize": {
"version": "3.0.4",
@@ -2431,19 +3163,30 @@
"loose-envify": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg="
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "3.0.1"
+ }
},
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
},
"map-obj": {
"version": "1.0.1",
@@ -2456,6 +3199,18 @@
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.3.8",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
"dependencies": {
"minimist": {
"version": "1.2.0",
@@ -2469,13 +3224,32 @@
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.3"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "brorand": "1.1.0"
+ }
},
"mime-db": {
"version": "1.27.0",
@@ -2487,7 +3261,10 @@
"version": "2.1.15",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
"integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "mime-db": "1.27.0"
+ }
},
"minimalistic-assert": {
"version": "1.0.0",
@@ -2505,7 +3282,10 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
},
"minimist": {
"version": "0.0.8",
@@ -2517,25 +3297,52 @@
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
},
"mocha": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz",
"integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=",
"dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.9.0",
+ "debug": "2.6.0",
+ "diff": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.1",
+ "growl": "1.9.2",
+ "json3": "3.3.2",
+ "lodash.create": "3.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "3.1.2"
+ },
"dependencies": {
"debug": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
"integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ms": "0.7.2"
+ }
},
"glob": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
},
"ms": {
"version": "0.7.2",
@@ -2547,7 +3354,10 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
"integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
}
}
},
@@ -2555,7 +3365,24 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
"integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "browser-resolve": "1.11.2",
+ "cached-path-relative": "1.0.1",
+ "concat-stream": "1.5.2",
+ "defined": "1.0.0",
+ "detective": "4.5.0",
+ "duplexer2": "0.1.4",
+ "inherits": "2.0.3",
+ "JSONStream": "1.3.1",
+ "parents": "1.0.1",
+ "readable-stream": "2.3.0",
+ "resolve": "1.3.3",
+ "stream-combiner2": "1.1.1",
+ "subarg": "1.0.0",
+ "through2": "2.0.3",
+ "xtend": "4.0.1"
+ }
},
"ms": {
"version": "2.0.0",
@@ -2567,7 +3394,13 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
"integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "array-differ": "1.0.0",
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "minimatch": "3.0.4"
+ }
},
"nan": {
"version": "2.6.2",
@@ -2584,43 +3417,100 @@
"node-fetch": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz",
- "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ=="
+ "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==",
+ "requires": {
+ "encoding": "0.1.12",
+ "is-stream": "1.1.0"
+ }
},
"node-gyp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
"integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "npmlog": "4.1.0",
+ "osenv": "0.1.4",
+ "request": "2.81.0",
+ "rimraf": "2.6.1",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "which": "1.2.14"
+ }
},
"node-sass": {
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz",
"integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chalk": "1.1.3",
+ "cross-spawn": "3.0.1",
+ "gaze": "1.1.2",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "in-publish": "2.0.0",
+ "lodash.assign": "4.2.0",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.mergewith": "4.6.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "nan": "2.6.2",
+ "node-gyp": "3.6.2",
+ "npmlog": "4.1.0",
+ "request": "2.81.0",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0"
+ }
},
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "abbrev": "1.1.0"
+ }
},
"normalize-package-data": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
"integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.4.2",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.3.0",
+ "validate-npm-package-license": "3.0.1"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "1.0.2"
+ }
},
"npmlog": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz",
"integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
},
"number-is-nan": {
"version": "1.0.1",
@@ -2639,17 +3529,30 @@
"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=",
+ "dev": true
+ },
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
},
"os-browserify": {
"version": "0.1.2",
@@ -2667,7 +3570,10 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "lcid": "1.0.0"
+ }
},
"os-tmpdir": {
"version": "1.0.2",
@@ -2679,7 +3585,11 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
},
"pako": {
"version": "0.2.9",
@@ -2691,25 +3601,44 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
"integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "path-platform": "0.11.15"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "asn1.js": "4.9.1",
+ "browserify-aes": "1.0.6",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.0",
+ "pbkdf2": "3.0.12"
+ }
},
"parse-glob": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
},
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
},
"path-browserify": {
"version": "0.0.0",
@@ -2721,7 +3650,10 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
},
"path-is-absolute": {
"version": "1.0.1",
@@ -2746,6 +3678,9 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
"integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
"dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
"dependencies": {
"isarray": {
"version": "0.0.1",
@@ -2759,13 +3694,25 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
},
"pbkdf2": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
"integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.0",
+ "sha.js": "2.4.8"
+ }
},
"performance-now": {
"version": "0.2.0",
@@ -2789,7 +3736,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
},
"preserve": {
"version": "0.2.0",
@@ -2818,12 +3768,19 @@
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
- "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "2.0.5"
+ }
},
"prop-types": {
"version": "15.5.10",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
- "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ="
+ "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=",
+ "requires": {
+ "fbjs": "0.8.12",
+ "loose-envify": "1.3.1"
+ }
},
"pseudomap": {
"version": "1.0.2",
@@ -2835,7 +3792,14 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
"integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.5"
+ }
},
"punycode": {
"version": "1.4.1",
@@ -2852,7 +3816,10 @@
"query-string": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz",
- "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg="
+ "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=",
+ "requires": {
+ "strict-uri-encode": "1.1.0"
+ }
},
"querystring": {
"version": "0.2.0",
@@ -2871,18 +3838,28 @@
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
"dev": true,
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
"dependencies": {
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
"dependencies": {
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
}
}
},
@@ -2890,7 +3867,10 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
}
}
},
@@ -2898,32 +3878,66 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
"integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.0"
+ }
},
"react": {
"version": "15.6.1",
"resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz",
- "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98="
+ "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=",
+ "requires": {
+ "create-react-class": "15.6.0",
+ "fbjs": "0.8.12",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.5.10"
+ }
},
"react-dom": {
"version": "15.6.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz",
- "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA="
+ "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=",
+ "requires": {
+ "fbjs": "0.8.12",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.5.10"
+ }
},
"react-redux": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz",
- "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8="
+ "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=",
+ "requires": {
+ "create-react-class": "15.6.0",
+ "hoist-non-react-statics": "1.2.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4",
+ "loose-envify": "1.3.1",
+ "prop-types": "15.5.10"
+ }
},
"react-router": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz",
"integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=",
+ "requires": {
+ "history": "2.1.2",
+ "hoist-non-react-statics": "1.2.0",
+ "invariant": "2.2.2",
+ "loose-envify": "1.3.1",
+ "warning": "3.0.0"
+ },
"dependencies": {
"warning": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w="
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
}
}
},
@@ -2931,57 +3945,103 @@
"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
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.0"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.3.8",
+ "path-type": "1.1.0"
+ }
},
"read-pkg-up": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
},
"readable-stream": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz",
"integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.0",
+ "string_decoder": "1.0.2",
+ "util-deprecate": "1.0.2"
+ }
},
"readdirp": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "readable-stream": "2.3.0",
+ "set-immediate-shim": "1.0.1"
+ }
},
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
},
"redux": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-3.7.0.tgz",
- "integrity": "sha512-GHjaOkEQtQnnuLoYPFkRKHIqs1i1tdTlisu/xUHfk2juzCobSy4STxs4Lz5bPkc07Owb6BeGKx/r76c9IVTkOw=="
+ "integrity": "sha512-GHjaOkEQtQnnuLoYPFkRKHIqs1i1tdTlisu/xUHfk2juzCobSy4STxs4Lz5bPkc07Owb6BeGKx/r76c9IVTkOw==",
+ "requires": {
+ "lodash": "4.17.4",
+ "lodash-es": "4.17.4",
+ "loose-envify": "1.3.1",
+ "symbol-observable": "1.0.4"
+ }
},
"redux-logger": {
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz",
- "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc="
+ "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=",
+ "requires": {
+ "deep-diff": "0.3.4"
+ }
},
"redux-promise": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.3.tgz",
- "integrity": "sha1-6X5snTvzdurLebq+bZBtogES1tg="
+ "integrity": "sha1-6X5snTvzdurLebq+bZBtogES1tg=",
+ "requires": {
+ "flux-standard-action": "0.6.1"
+ }
},
"redux-router": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/redux-router/-/redux-router-2.1.2.tgz",
- "integrity": "sha1-A0ckutCPQbr3VNtNIuLYWK22TxE="
+ "integrity": "sha1-A0ckutCPQbr3VNtNIuLYWK22TxE=",
+ "requires": {
+ "deep-equal": "1.0.1"
+ }
},
"redux-thunk": {
"version": "2.2.0",
@@ -2998,7 +4058,11 @@
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
"integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "0.1.3",
+ "is-primitive": "2.0.0"
+ }
},
"remove-trailing-separator": {
"version": "1.0.2",
@@ -3022,13 +4086,40 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
},
"request": {
"version": "2.81.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.15",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.1.0",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.2",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.1.0"
+ }
},
"require-directory": {
"version": "2.1.1",
@@ -3046,19 +4137,29 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
"integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
},
"rimraf": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
"integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
},
"ripemd160": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
"integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
},
"safe-buffer": {
"version": "5.1.0",
@@ -3076,19 +4177,32 @@
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "scss-tokenizer": "0.2.3",
+ "yargs": "7.1.0"
+ }
},
"scss-tokenizer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"dev": true,
+ "requires": {
+ "js-base64": "2.1.9",
+ "source-map": "0.4.4"
+ },
"dependencies": {
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
}
}
},
@@ -3119,19 +4233,32 @@
"version": "2.4.8",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
"integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"shasum": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
"integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "json-stable-stringify": "0.0.1",
+ "sha.js": "2.4.8"
+ }
},
"shell-quote": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
"integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
+ }
},
"signal-exit": {
"version": "3.0.2",
@@ -3144,6 +4271,16 @@
"resolved": "https://registry.npmjs.org/sinon/-/sinon-2.3.5.tgz",
"integrity": "sha1-mi/A/41SbacW8wlTqixl1RiRf2w=",
"dev": true,
+ "requires": {
+ "diff": "3.2.0",
+ "formatio": "1.2.0",
+ "lolex": "1.6.0",
+ "native-promise-only": "0.8.1",
+ "path-to-regexp": "1.7.0",
+ "samsam": "1.2.1",
+ "text-encoding": "0.6.4",
+ "type-detect": "4.0.3"
+ },
"dependencies": {
"type-detect": {
"version": "4.0.3",
@@ -3163,7 +4300,10 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
},
"source-map": {
"version": "0.5.6",
@@ -3175,7 +4315,10 @@
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
"integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.6"
+ }
},
"spark-md5": {
"version": "2.0.2",
@@ -3186,7 +4329,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
},
"spdx-expression-parse": {
"version": "1.0.4",
@@ -3205,6 +4351,16 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
"integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
"dev": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
"dependencies": {
"assert-plus": {
"version": "1.0.0",
@@ -3218,31 +4374,53 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
"integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.0"
+ }
},
"stream-browserify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
"integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.0"
+ }
},
"stream-combiner2": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "duplexer2": "0.1.4",
+ "readable-stream": "2.3.0"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.0",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.0"
+ }
},
"strict-uri-encode": {
"version": "1.1.0",
@@ -3254,6 +4432,9 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz",
"integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=",
"dev": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ },
"dependencies": {
"safe-buffer": {
"version": "5.0.1",
@@ -3267,7 +4448,12 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
},
"stringstream": {
"version": "0.0.5",
@@ -3279,19 +4465,28 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
},
"strip-bom": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
},
"strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
},
"striptags": {
"version": "2.2.1",
@@ -3303,6 +4498,9 @@
"resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
"integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
"dev": true,
+ "requires": {
+ "minimist": "1.2.0"
+ },
"dependencies": {
"minimist": {
"version": "1.2.0",
@@ -3327,13 +4525,21 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz",
"integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ }
},
"tar": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
},
"text-encoding": {
"version": "0.6.4",
@@ -3351,13 +4557,20 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.0",
+ "xtend": "4.0.1"
+ }
},
"timers-browserify": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
"integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "process": "0.11.10"
+ }
},
"to-arraybuffer": {
"version": "1.0.1",
@@ -3375,7 +4588,10 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
"integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
},
"trim-newlines": {
"version": "1.0.0",
@@ -3399,7 +4615,10 @@
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.0"
+ }
},
"tweetnacl": {
"version": "0.14.5",
@@ -3442,6 +4661,10 @@
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
"dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
"dependencies": {
"punycode": {
"version": "1.3.2",
@@ -3456,6 +4679,9 @@
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
"dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ },
"dependencies": {
"inherits": {
"version": "2.0.1",
@@ -3481,19 +4707,29 @@
"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
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
},
"verror": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
"integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
},
"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
+ "dev": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
},
"w3c-xmlhttprequest": {
"version": "2.1.2",
@@ -3503,7 +4739,10 @@
"warning": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
- "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE="
+ "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
},
"whatwg-fetch": {
"version": "2.0.3",
@@ -3514,7 +4753,10 @@
"version": "1.2.14",
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
"integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
},
"which-module": {
"version": "1.0.0",
@@ -3526,13 +4768,20 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
"integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
- "dev": true
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
},
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ }
},
"wrappy": {
"version": "1.0.2",
@@ -3563,6 +4812,21 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"dev": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "5.0.0"
+ },
"dependencies": {
"camelcase": {
"version": "3.0.0",
@@ -3577,6 +4841,9 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ },
"dependencies": {
"camelcase": {
"version": "3.0.0",
@@ -3589,7 +4856,24 @@
"zotero-web-library": {
"version": "0.9.4-alpha",
"resolved": "https://registry.npmjs.org/zotero-web-library/-/zotero-web-library-0.9.4-alpha.tgz",
- "integrity": "sha1-AbLMXXqmsDEbhNZeLsc6llBdqS4="
+ "integrity": "sha1-AbLMXXqmsDEbhNZeLsc6llBdqS4=",
+ "requires": {
+ "bootstrap-sass": "3.3.7",
+ "floatthead": "1.4.0",
+ "history": "2.1.2",
+ "jquery": "2.2.4",
+ "libzotero": "0.1.13",
+ "react": "15.6.1",
+ "react-dom": "15.6.1",
+ "react-redux": "4.4.8",
+ "react-router": "2.8.1",
+ "redux": "3.7.0",
+ "redux-logger": "2.10.2",
+ "redux-promise": "0.5.3",
+ "redux-router": "2.1.2",
+ "redux-thunk": "2.2.0",
+ "w3c-xmlhttprequest": "2.1.2"
+ }
}
}
}
diff --git a/package.json b/package.json
@@ -30,7 +30,6 @@
"babel-plugin-syntax-flow": "^6.13.0",
"babel-plugin-syntax-jsx": "^6.13.0",
"babel-plugin-syntax-object-rest-spread": "^6.13.0",
- "babel-plugin-transform-async-to-module-method": "^6.16.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.18.0",
"babel-preset-react": "^6.16.0",
"browserify": "^14.3.0",
diff --git a/test/tests/httpTest.js b/test/tests/httpTest.js
@@ -0,0 +1,76 @@
+describe("Zotero.HTTP", function () {
+ var httpd;
+ var port = 16213;
+
+ before(function* () {
+ Components.utils.import("resource://zotero-unit/httpd.js");
+
+ httpd = new HttpServer();
+ httpd.start(port);
+ httpd.registerPathHandler(
+ '/test.html',
+ {
+ handle: function (request, response) {
+ response.setStatusLine(null, 200, "OK");
+ response.write("<html><body><p>Test</p><p>Test 2</p></body></html>");
+ }
+ }
+ );
+ });
+
+ after(function* () {
+ var defer = new Zotero.Promise.defer();
+ httpd.stop(() => defer.resolve());
+ yield defer.promise;
+ });
+
+ describe("#processDocuments()", function () {
+ it("should provide a document object", function* () {
+ var called = false;
+ var url = `http://127.0.0.1:${port}/test.html`;
+ yield Zotero.HTTP.processDocuments(
+ url,
+ function (doc) {
+ assert.equal(doc.location.href, url);
+ assert.equal(doc.querySelector('p').textContent, 'Test');
+ var p = doc.evaluate('//p', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
+ assert.equal(p.textContent, 'Test');
+ called = true;
+ }
+ );
+ assert.isTrue(called);
+ });
+ });
+
+ describe("#loadDocuments()", function () {
+ var win;
+
+ before(function* () {
+ // TEMP: createHiddenBrowser currently needs a parent window
+ win = yield loadBrowserWindow();
+ });
+
+ after(function* () {
+ win.close();
+ });
+
+ it("should provide a document object", function* () {
+ var called = false;
+ var url = `http://127.0.0.1:${port}/test.html`;
+ yield new Zotero.Promise((resolve) => {
+ Zotero.HTTP.loadDocuments(
+ url,
+ function (doc) {
+ assert.equal(doc.location.href, url);
+ assert.equal(doc.querySelector('p').textContent, 'Test');
+ var p = doc.evaluate('//p', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
+ assert.equal(p.textContent, 'Test');
+ called = true;
+ },
+ resolve
+ );
+ });
+ assert.isTrue(called);
+ });
+ });
+});
diff --git a/test/tests/translateTest.js b/test/tests/translateTest.js
@@ -486,11 +486,15 @@ describe("Zotero.Translate", function() {
checkTestTags(pdf, true);
});
- it('web translators should save attachment from document', function* () {
+ it('web translators should save attachment from browser document', function* () {
let deferred = Zotero.Promise.defer();
- let browser = Zotero.HTTP.processDocuments("http://127.0.0.1:23119/test/translate/test.html",
- function (doc) { deferred.resolve(doc) }, undefined,
- undefined, true);
+ let browser = Zotero.HTTP.loadDocuments(
+ "http://127.0.0.1:23119/test/translate/test.html",
+ doc => deferred.resolve(doc),
+ undefined,
+ undefined,
+ true
+ );
let doc = yield deferred.promise;
let translate = new Zotero.Translate.Web();
@@ -510,7 +514,7 @@ describe("Zotero.Translate", function() {
'}'));
let newItems = yield translate.translate();
assert.equal(newItems.length, 1);
- let containedAttachments = yield Zotero.Items.getAsync(newItems[0].getAttachments());
+ let containedAttachments = Zotero.Items.get(newItems[0].getAttachments());
assert.equal(containedAttachments.length, 1);
let snapshot = containedAttachments[0];
@@ -522,6 +526,40 @@ describe("Zotero.Translate", function() {
Zotero.Browser.deleteHiddenBrowser(browser);
});
+
+ it('web translators should save attachment from non-browser document', function* () {
+ return Zotero.HTTP.processDocuments(
+ "http://127.0.0.1:23119/test/translate/test.html",
+ async function (doc) {
+ let translate = new Zotero.Translate.Web();
+ translate.setDocument(doc);
+ translate.setTranslator(buildDummyTranslator(4,
+ 'function detectWeb() {}\n'+
+ 'function doWeb(doc) {\n'+
+ ' var item = new Zotero.Item("book");\n'+
+ ' item.title = "Container Item";\n'+
+ ' item.attachments = [{\n'+
+ ' "document":doc,\n'+
+ ' "title":"Snapshot from Document",\n'+
+ ' "note":"attachment note",\n'+
+ ' "tags":'+JSON.stringify(TEST_TAGS)+'\n'+
+ ' }];\n'+
+ ' item.complete();\n'+
+ '}'));
+ let newItems = await translate.translate();
+ assert.equal(newItems.length, 1);
+ let containedAttachments = Zotero.Items.get(newItems[0].getAttachments());
+ assert.equal(containedAttachments.length, 1);
+
+ let snapshot = containedAttachments[0];
+ assert.equal(snapshot.getField("url"), "http://127.0.0.1:23119/test/translate/test.html");
+ assert.equal(snapshot.getNote(), "attachment note");
+ assert.equal(snapshot.attachmentLinkMode, Zotero.Attachments.LINK_MODE_IMPORTED_URL);
+ assert.equal(snapshot.attachmentContentType, "text/html");
+ checkTestTags(snapshot, true);
+ }
+ );
+ });
it('web translators should ignore attachments that return error codes', function* () {
this.timeout(60000);
@@ -629,6 +667,117 @@ describe("Zotero.Translate", function() {
});
+ describe("#processDocuments()", function () {
+ var url = "http://127.0.0.1:23119/test/translate/test.html";
+ var doc;
+
+ beforeEach(function* () {
+ // This is the main processDocuments, not the translation sandbox one being tested
+ doc = (yield Zotero.HTTP.processDocuments(url, doc => doc))[0];
+ });
+
+ it("should provide document object", async function () {
+ var translate = new Zotero.Translate.Web();
+ translate.setDocument(doc);
+ translate.setTranslator(
+ buildDummyTranslator(
+ 4,
+ `function detectWeb() {}
+ function doWeb(doc) {
+ ZU.processDocuments(
+ doc.location.href + '?t',
+ function (doc) {
+ var item = new Zotero.Item("book");
+ item.title = "Container Item";
+ // document.location
+ item.url = doc.location.href;
+ // document.evaluate()
+ item.extra = doc
+ .evaluate('//p', doc, null, XPathResult.ANY_TYPE, null)
+ .iterateNext()
+ .textContent;
+ item.attachments = [{
+ document: doc,
+ title: "Snapshot from Document",
+ note: "attachment note",
+ tags: ${JSON.stringify(TEST_TAGS)}
+ }];
+ item.complete();
+ }
+ );
+ }`
+ )
+ );
+ var newItems = await translate.translate();
+ assert.equal(newItems.length, 1);
+
+ var item = newItems[0];
+ assert.equal(item.getField('url'), url + '?t');
+ assert.include(item.getField('extra'), 'your research sources');
+
+ var containedAttachments = Zotero.Items.get(newItems[0].getAttachments());
+ assert.equal(containedAttachments.length, 1);
+
+ var snapshot = containedAttachments[0];
+ assert.equal(snapshot.getField("url"), url + '?t');
+ assert.equal(snapshot.getNote(), "attachment note");
+ assert.equal(snapshot.attachmentLinkMode, Zotero.Attachments.LINK_MODE_IMPORTED_URL);
+ assert.equal(snapshot.attachmentContentType, "text/html");
+ checkTestTags(snapshot, true);
+ });
+
+ it("should use loaded document instead of reloading if possible", function* () {
+ var translate = new Zotero.Translate.Web();
+ translate.setDocument(doc);
+ translate.setTranslator(
+ buildDummyTranslator(
+ 4,
+ `function detectWeb() {}
+ function doWeb(doc) {
+ ZU.processDocuments(
+ doc.location.href,
+ function (doc) {
+ var item = new Zotero.Item("book");
+ item.title = "Container Item";
+ // document.location
+ item.url = doc.location.href;
+ // document.evaluate()
+ item.extra = doc
+ .evaluate('//p', doc, null, XPathResult.ANY_TYPE, null)
+ .iterateNext()
+ .textContent;
+ item.attachments = [{
+ document: doc,
+ title: "Snapshot from Document",
+ note: "attachment note",
+ tags: ${JSON.stringify(TEST_TAGS)}
+ }];
+ item.complete();
+ }
+ );
+ }`
+ )
+ );
+ var newItems = yield translate.translate();
+ assert.equal(newItems.length, 1);
+
+ var item = newItems[0];
+ assert.equal(item.getField('url'), url);
+ assert.include(item.getField('extra'), 'your research sources');
+
+ var containedAttachments = Zotero.Items.get(newItems[0].getAttachments());
+ assert.equal(containedAttachments.length, 1);
+
+ var snapshot = containedAttachments[0];
+ assert.equal(snapshot.getField("url"), url);
+ assert.equal(snapshot.getNote(), "attachment note");
+ assert.equal(snapshot.attachmentLinkMode, Zotero.Attachments.LINK_MODE_IMPORTED_URL);
+ assert.equal(snapshot.attachmentContentType, "text/html");
+ checkTestTags(snapshot, true);
+ });
+ });
+
+
describe("Translators", function () {
it("should round-trip child attachment via BibTeX", function* () {
var item = yield createDataObject('item');