diff --git a/custom-elements.min.js b/custom-elements.min.js index ff12241..b236264 100644 --- a/custom-elements.min.js +++ b/custom-elements.min.js @@ -7,18 +7,18 @@ Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ -'use strict';(function(){function c(){this.a=new Map;this.j=new Map;this.h=new Map;this.o=new Set;this.C=new MutationObserver(this.D.bind(this));this.f=null;this.F=new Set;this.enableFlush=!0;this.s=!1;this.m=null}function g(){return h.customElements}function l(a){if(!/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a)||-1!==t.indexOf(a))return Error("The element name '"+a+"' is not valid.")}function m(a,b,e,d){var c=g();a=e?n.call(a,b,e):n.call(a,b);(b=c.a.get(b.toLowerCase()))&&c.u(a,b,d);c.b(a);return a} -function p(a,b,e,d){b=b.toLowerCase();var c=a.getAttribute(b);d.call(a,b,e);1==a.__$CE_upgraded&&(d=g().a.get(a.localName),e=d.A,(d=d.i)&&0<=e.indexOf(b)&&(e=a.getAttribute(b),e!==c&&d.call(a,b,c,e,null)))}var f=document,h=window;if(g()&&(g().g=function(){},!g().forcePolyfill))return;var t="annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" ");c.prototype.L=function(a,b){function e(a){var b=f[a];if(void 0!==b&&"function"!==typeof b)throw Error(c+ -" '"+a+"' is not a Function");return b}if("function"!==typeof b)throw new TypeError("constructor must be a Constructor");var d=l(a);if(d)throw d;if(this.a.has(a))throw Error("An element with name '"+a+"' is already defined");if(this.j.has(b))throw Error("Definition failed for '"+a+"': The constructor is already used.");var c=a,f=b.prototype;if("object"!==typeof f)throw new TypeError("Definition failed for '"+a+"': constructor.prototype must be an object");var d=e("connectedCallback"),g=e("disconnectedCallback"), -k=e("attributeChangedCallback");this.a.set(c,{name:a,localName:c,constructor:b,v:d,w:g,i:k,A:k&&b.observedAttributes||[]});this.j.set(b,c);this.K();if(a=this.h.get(c))a.resolve(void 0),this.h.delete(c)};c.prototype.get=function(a){return(a=this.a.get(a))?a.constructor:void 0};c.prototype.M=function(a){var b=l(a);if(b)return Promise.reject(b);if(this.a.has(a))return Promise.resolve();if(b=this.h.get(a))return b.N;var e,d=new Promise(function(a){e=a}),b={N:d,resolve:e};this.h.set(a,b);return d};c.prototype.g= -function(){this.enableFlush&&(this.l(this.m.takeRecords()),this.D(this.C.takeRecords()),this.o.forEach(function(a){this.l(a.takeRecords())},this))};c.prototype.K=function(){var a=this;if(!this.s){this.s=!0;var b=function(){a.s=!1;a.m||(a.m=a.b(f));a.c(f.childNodes)};window.HTMLImports?window.HTMLImports.whenReady(b):b()}};c.prototype.I=function(a){this.f=a};c.prototype.b=function(a){if(null!=a.__$CE_observer)return a.__$CE_observer;a.__$CE_observer=new MutationObserver(this.l.bind(this));a.__$CE_observer.observe(a, -{childList:!0,subtree:!0});this.enableFlush&&this.o.add(a.__$CE_observer);return a.__$CE_observer};c.prototype.J=function(a){null!=a.__$CE_observer&&(a.__$CE_observer.disconnect(),this.enableFlush&&this.o.delete(a.__$CE_observer),a.__$CE_observer=null)};c.prototype.l=function(a){for(var b=0;b,\n * }}\n */\nlet CustomElementDefinition;\n\n/**\n * @typedef {{\n * resolve: !function(undefined),\n * promise: !Promise,\n * }}\n */\nlet Deferred;\n\n(function() {\n 'use strict';\n\n const doc = document;\n const win = window;\n\n /**\n * Gets 'customElement' from window so that it could be modified after\n * the polyfill loads.\n * @function\n * @return {CustomElementRegistry}\n */\n const _customElements = () => win['customElements'];\n\n const _observerProp = '__$CE_observer';\n const _attachedProp = '__$CE_attached';\n const _upgradedProp = '__$CE_upgraded';\n\n if (_customElements()) {\n _customElements().flush = function() {};\n if (!_customElements().forcePolyfill) {\n return;\n }\n }\n\n // name validation\n // https://html.spec.whatwg.org/multipage/scripting.html#valid-custom-element-name\n\n /**\n * @const\n * @type {Array}\n */\n const reservedTagList = [\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n ];\n\n /**\n * @param {!string} name\n * @return {!Error|undefined}\n */\n function checkValidCustomElementName(name) {\n if (!(/^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(name) &&\n reservedTagList.indexOf(name) === -1)) {\n return new Error(`The element name '${name}' is not valid.`)\n }\n }\n\n /**\n * @param {!Node} root\n * @return {TreeWalker}\n */\n function createTreeWalker(root) {\n // IE 11 requires the third and fourth arguments be present. If the third\n // arg is null, it applies the default behaviour. However IE also requires\n // the fourth argument be present even though the other browsers ignore it.\n return doc.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false);\n }\n\n /**\n * @param {!Node} node\n * @return {boolean}\n */\n function isElement(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * @param {!Element} element\n * @return {boolean}\n */\n function isHtmlImport(element) {\n return element.tagName === 'LINK' &&\n element.rel &&\n element.rel.toLowerCase().split(' ').indexOf('import') !== -1;\n }\n\n /**\n * @param {!Element} element\n * @return {boolean}\n */\n function isConnected(element) {\n let n = element;\n do {\n if (n[_attachedProp] || n.nodeType === Node.DOCUMENT_NODE) return true;\n n = n.parentNode || n.nodeType === Node.DOCUMENT_FRAGMENT_NODE && n.host;\n } while(n);\n return false;\n }\n\n /**\n * A registry of custom element definitions.\n *\n * See https://html.spec.whatwg.org/multipage/scripting.html#customelementsregistry\n *\n * @property {boolean} enableFlush Set to true to enable the flush() method\n * to work. This should only be done for tests, as it causes a memory leak.\n */\n class CustomElementRegistry {\n\n constructor() {\n /** @private {!Map} **/\n this._definitions = new Map();\n\n /** @private {!Map} **/\n this._constructors = new Map();\n\n /** @private {!Map} **/\n this._whenDefinedMap = new Map();\n\n /** @private {!Set} **/\n this._observers = new Set();\n\n /** @private {!MutationObserver} **/\n this._attributeObserver = new MutationObserver(\n /** @type {function(Array, MutationObserver)} */\n (this._handleAttributeChange.bind(this)));\n\n /** @private {?HTMLElement} **/\n this._newInstance = null;\n\n /** @private {!Set} **/\n this._pendingHtmlImportUrls = new Set();\n\n /** @type {boolean} **/\n this.enableFlush = true;\n\n /** @private {boolean} **/\n this._upgradeScheduled = false;\n\n /** @type {MutationObserver} **/\n this._mainDocumentObserver = null;\n }\n\n // HTML spec part 4.13.4\n // https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementsregistry-define\n /**\n * @param {string} name\n * @param {function(new:HTMLElement)} constructor\n * @param {{extends: string}} options\n * @return {undefined}\n */\n define(name, constructor, options) {\n // 1:\n if (typeof constructor !== 'function') {\n throw new TypeError('constructor must be a Constructor');\n }\n\n // 2. If constructor is an interface object whose corresponding interface\n // either is HTMLElement or has HTMLElement in its set of inherited\n // interfaces, throw a TypeError and abort these steps.\n //\n // It doesn't appear possible to check this condition from script\n\n // 3:\n const nameError = checkValidCustomElementName(name);\n if (nameError) throw nameError;\n\n // 4, 5:\n // Note: we don't track being-defined names and constructors because\n // define() isn't normally reentrant. The only time user code can run\n // during define() is when getting callbacks off the prototype, which\n // would be highly-unusual. We can make define() reentrant-safe if needed.\n if (this._definitions.has(name)) {\n throw new Error(`An element with name '${name}' is already defined`);\n }\n\n // 6, 7:\n if (this._constructors.has(constructor)) {\n throw new Error(`Definition failed for '${name}': ` +\n `The constructor is already used.`);\n }\n\n // 8:\n /** @type {string} */\n const localName = name;\n\n // 9, 10: We do not support extends currently.\n\n // 11, 12, 13: Our define() isn't rentrant-safe\n\n // 14.1:\n /** @type {Object} */\n const prototype = constructor.prototype;\n\n // 14.2:\n if (typeof prototype !== 'object') {\n throw new TypeError(`Definition failed for '${name}': ` +\n `constructor.prototype must be an object`);\n }\n\n /**\n * @param {string} callbackName\n * @return {Function|undefined}\n */\n function getCallback(callbackName) {\n const callback = prototype[callbackName];\n if (callback !== undefined && typeof callback !== 'function') {\n throw new Error(`${localName} '${callbackName}' is not a Function`);\n }\n return callback;\n }\n\n // 3, 4:\n const connectedCallback = getCallback('connectedCallback');\n\n // 5, 6:\n const disconnectedCallback = getCallback('disconnectedCallback');\n\n // Divergence from spec: we always throw if attributeChangedCallback is\n // not a function.\n\n // 7, 9.1:\n const attributeChangedCallback = getCallback('attributeChangedCallback');\n\n // 8, 9.2, 9.3:\n const observedAttributes =\n (attributeChangedCallback && constructor['observedAttributes']) || [];\n\n // 15:\n /** @type {CustomElementDefinition} */\n const definition = {\n name: name,\n localName: localName,\n constructor: constructor,\n connectedCallback: connectedCallback,\n disconnectedCallback: disconnectedCallback,\n attributeChangedCallback: attributeChangedCallback,\n observedAttributes: observedAttributes,\n };\n\n // 16:\n this._definitions.set(localName, definition);\n this._constructors.set(constructor, localName);\n\n // 17, 18, 19:\n this._upgradeDoc();\n\n // 20:\n /** @type {Deferred} **/\n const deferred = this._whenDefinedMap.get(localName);\n if (deferred) {\n deferred.resolve(undefined);\n this._whenDefinedMap.delete(localName);\n }\n }\n\n /**\n * Returns the constructor defined for `name`, or `null`.\n *\n * @param {string} name\n * @return {Function|undefined}\n */\n get(name) {\n // https://html.spec.whatwg.org/multipage/scripting.html#custom-elements-api\n const def = this._definitions.get(name);\n return def ? def.constructor : undefined;\n }\n\n /**\n * Returns a `Promise` that resolves when a custom element for `name` has\n * been defined.\n *\n * @param {string} name\n * @return {!Promise}\n */\n whenDefined(name) {\n // https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementsregistry-whendefined\n const nameError = checkValidCustomElementName(name);\n if (nameError) return Promise.reject(nameError);\n if (this._definitions.has(name)) return Promise.resolve();\n\n /** @type {Deferred} **/\n let deferred = this._whenDefinedMap.get(name);\n if (deferred) return deferred.promise;\n\n let resolve;\n const promise = new Promise(function(_resolve, _) {\n resolve = _resolve;\n });\n deferred = {promise, resolve};\n this._whenDefinedMap.set(name, deferred);\n return promise;\n }\n\n /**\n * Causes all pending mutation records to be processed, and thus all\n * customization, upgrades and custom element reactions to be called.\n * `enableFlush` must be true for this to work. Only use during tests!\n */\n flush() {\n if (this.enableFlush) {\n // console.warn(\"flush!!!\");\n this._handleMutations(this._mainDocumentObserver.takeRecords());\n this._handleAttributeChange(this._attributeObserver.takeRecords());\n this._observers.forEach(\n /**\n * @param {!MutationObserver} observer\n * @this {CustomElementRegistry}\n */\n function(observer) {\n this._handleMutations(observer.takeRecords());\n }, this);\n }\n }\n\n /**\n * Upgrade all existing in document elements. This process is expensive so\n * is optionally batched based on the state of HTMLImports. (Note,\n * this batching might not be necessary if instead of walking the dom,\n * a map of upgrade candidates was maintained.)\n * @private\n */\n _upgradeDoc() {\n if (!this._upgradeScheduled) {\n this._upgradeScheduled = true;\n const onReady = () => {\n this._upgradeScheduled = false;\n if (!this._mainDocumentObserver) {\n this._mainDocumentObserver = this._observeRoot(doc);\n }\n this._addNodes(doc.childNodes);\n\n };\n if (window['HTMLImports']) {\n window['HTMLImports']['whenReady'](onReady);\n } else {\n onReady();\n }\n }\n }\n\n /**\n * @param {?HTMLElement} instance\n * @private\n */\n _setNewInstance(instance) {\n this._newInstance = instance;\n }\n\n /**\n * Observes a DOM root for mutations that trigger upgrades and reactions.\n * @param {Node} root\n * @private\n */\n _observeRoot(root) {\n //console.log('_observeRoot', root, root.baseURI);\n // console.assert(!root[_observerProp]);\n if (root[_observerProp] != null) {\n //console.warn(`Root ${root} is already observed`);\n return root[_observerProp];\n }\n root[_observerProp] = new MutationObserver(\n /** @type {function(Array, MutationObserver)} */\n (this._handleMutations.bind(this)));\n root[_observerProp].observe(root, {childList: true, subtree: true});\n if (this.enableFlush) {\n // this is memory leak, only use in tests\n this._observers.add(root[_observerProp]);\n }\n return root[_observerProp];\n }\n\n /**\n * @param {Node} root\n * @private\n */\n _unobserveRoot(root) {\n if (root[_observerProp] != null) {\n root[_observerProp].disconnect();\n if (this.enableFlush) {\n this._observers.delete(root[_observerProp]);\n }\n root[_observerProp] = null;\n }\n }\n\n /**\n * @param {!Array} mutations\n * @private\n */\n _handleMutations(mutations) {\n for (let i = 0; i < mutations.length; i++) {\n /** @type {!MutationRecord} */\n const mutation = mutations[i];\n if (mutation.type === 'childList') {\n // Note: we can't get an ordering between additions and removals, and\n // so might diverge from spec reaction ordering\n const addedNodes = /** @type {!NodeList} */(mutation.addedNodes);\n const removedNodes = /** @type {!NodeList} */(mutation.removedNodes);\n this._addNodes(addedNodes);\n this._removeNodes(removedNodes);\n }\n }\n }\n\n /**\n * @param {!(NodeList|Array)} nodeList\n * @param {?Set=} visitedNodes\n * @private\n */\n _addNodes(nodeList, visitedNodes) {\n visitedNodes = visitedNodes || new Set();\n\n for (let i = 0; i < nodeList.length; i++) {\n const root = nodeList[i];\n\n if (!isElement(root)) {\n continue;\n }\n\n // Since we're adding this node to an observed tree, we can unobserve\n this._unobserveRoot(root);\n\n const walker = createTreeWalker(root);\n do {\n const node = /** @type {!HTMLElement} */ (walker.currentNode);\n this._addElement(node, visitedNodes);\n } while (walker.nextNode())\n }\n }\n\n /**\n * @param {!HTMLElement} element\n * @param {!Set=} visitedNodes\n */\n _addElement(element, visitedNodes) {\n if (visitedNodes.has(element)) return;\n visitedNodes.add(element);\n\n /** @type {?CustomElementDefinition} */\n const definition = this._definitions.get(element.localName);\n if (definition) {\n if (!element[_upgradedProp]) {\n this._upgradeElement(element, definition, true);\n }\n if (element[_upgradedProp] && !element[_attachedProp] && isConnected(element)) {\n element[_attachedProp] = true;\n if (definition.connectedCallback) {\n definition.connectedCallback.call(element);\n }\n }\n }\n if (element.shadowRoot) {\n // TODO(justinfagnani): do we need to check that the shadowRoot\n // is observed?\n this._addNodes(element.shadowRoot.childNodes, visitedNodes);\n }\n if (isHtmlImport(element)) {\n this._addImport(/** @type {!HTMLLinkElement} */(element), visitedNodes);\n }\n }\n\n /**\n * @param {!HTMLLinkElement} link\n * @param {!Set=} visitedNodes\n */\n _addImport(link, visitedNodes) {\n // During a tree walk to add or upgrade nodes, we may encounter multiple\n // HTML imports that reference the same document, and may encounter\n // imports in various states of loading.\n\n // First, we only want to process the first import for a document in a\n // walk, so we check visitedNodes for the document, not the link.\n //\n // Second, for documents that haven't loaded yet, we only want to add one\n // listener, regardless of the number of links or walks, so we track\n // pending loads in _pendingHtmlImportUrls.\n\n // Check to see if the import is loaded\n /** @type {?Document} */\n const _import = link.import;\n if (_import) {\n // The import is loaded, but only process the first link element\n if (visitedNodes.has(_import)) return;\n visitedNodes.add(_import);\n\n // The import is loaded observe it\n if (!_import[_observerProp]) this._observeRoot(_import);\n\n // walk the document\n this._addNodes(_import.childNodes, visitedNodes);\n } else {\n // The import is not loaded, so wait for it\n /** @type {string} */\n const importUrl = link.href;\n if (this._pendingHtmlImportUrls.has(importUrl)) return;\n this._pendingHtmlImportUrls.add(importUrl);\n\n /**\n * @const\n * @type {CustomElementRegistry}\n */\n const _this = this;\n const onLoad = function() {\n link.removeEventListener('load', /** @type {function(Event)} */(onLoad));\n if (!link.import[_observerProp]) _this._observeRoot(link.import);\n // We don't pass visitedNodes because this is async and not part of\n // the current tree walk.\n _this._addNodes(link.import.childNodes);\n };\n link.addEventListener('load', onLoad);\n }\n }\n\n /**\n * @param {NodeList} nodeList\n * @private\n */\n _removeNodes(nodeList) {\n for (let i = 0; i < nodeList.length; i++) {\n const root = nodeList[i];\n\n if (!isElement(root)) {\n continue;\n }\n\n // Since we're detatching this element from an observed root, we need to\n // reobserve it.\n // TODO(justinfagnani): can we do this in a microtask so we don't thrash\n // on creating and destroying MutationObservers on batch DOM mutations?\n this._observeRoot(root);\n\n const walker = createTreeWalker(root);\n do {\n const node = walker.currentNode;\n if (node[_upgradedProp] && node[_attachedProp]) {\n node[_attachedProp] = false;\n const definition = this._definitions.get(node.localName);\n if (definition && definition.disconnectedCallback) {\n definition.disconnectedCallback.call(node);\n }\n }\n } while (walker.nextNode())\n }\n }\n\n /**\n * Upgrades or customizes a custom element.\n *\n * @param {HTMLElement} element\n * @param {CustomElementDefinition} definition\n * @param {boolean} callConstructor\n * @private\n */\n _upgradeElement(element, definition, callConstructor) {\n const prototype = definition.constructor.prototype;\n element.__proto__ = prototype;\n if (callConstructor) {\n this._setNewInstance(element);\n new (definition.constructor)();\n element[_upgradedProp] = true;\n console.assert(this._newInstance == null);\n }\n\n const observedAttributes = definition.observedAttributes;\n const attributeChangedCallback = definition.attributeChangedCallback;\n if (attributeChangedCallback && observedAttributes.length > 0) {\n this._attributeObserver.observe(element, {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: observedAttributes,\n });\n\n // Trigger attributeChangedCallback for existing attributes.\n // https://html.spec.whatwg.org/multipage/scripting.html#upgrades\n for (let i = 0; i < observedAttributes.length; i++) {\n const name = observedAttributes[i];\n if (element.hasAttribute(name)) {\n const value = element.getAttribute(name);\n attributeChangedCallback.call(element, name, null, value, null);\n }\n }\n }\n }\n\n /**\n * @param {!Array} mutations\n * @private\n */\n _handleAttributeChange(mutations) {\n for (let i = 0; i < mutations.length; i++) {\n const mutation = mutations[i];\n if (mutation.type === 'attributes') {\n const target = /** @type {HTMLElement} */(mutation.target);\n // We should be gaurenteed to have a definition because this mutation\n // observer is only observing custom elements observedAttributes\n const definition = this._definitions.get(target.localName);\n const name = /** @type {!string} */(mutation.attributeName);\n const oldValue = mutation.oldValue;\n const newValue = target.getAttribute(name);\n // Skip changes that were handled synchronously by setAttribute\n if (newValue !== oldValue) {\n const namespace = mutation.attributeNamespace;\n definition.attributeChangedCallback.call(target, name, oldValue, newValue, namespace);\n }\n }\n }\n }\n }\n\n // Closure Compiler Exports\n window['CustomElementRegistry'] = CustomElementRegistry;\n CustomElementRegistry.prototype['define'] = CustomElementRegistry.prototype.define;\n CustomElementRegistry.prototype['get'] = CustomElementRegistry.prototype.get;\n CustomElementRegistry.prototype['whenDefined'] = CustomElementRegistry.prototype.whenDefined;\n CustomElementRegistry.prototype['flush'] = CustomElementRegistry.prototype.flush;\n CustomElementRegistry.prototype['polyfilled'] = true;\n // TODO(justinfagnani): remove these in production code\n CustomElementRegistry.prototype['_observeRoot'] = CustomElementRegistry.prototype._observeRoot;\n CustomElementRegistry.prototype['_addImport'] = CustomElementRegistry.prototype._addImport;\n\n // patch window.HTMLElement\n\n /** @const */\n const origHTMLElement = win.HTMLElement;\n CustomElementRegistry.prototype['nativeHTMLElement'] = origHTMLElement;\n /**\n * @type {function(new: HTMLElement)}\n */\n const newHTMLElement = function HTMLElement() {\n const customElements = _customElements();\n\n // If there's an being upgraded, return that\n if (customElements._newInstance) {\n const i = customElements._newInstance;\n customElements._newInstance = null;\n return i;\n }\n if (this.constructor) {\n // Find the tagname of the constructor and create a new element with it\n const tagName = customElements._constructors.get(this.constructor);\n return _createElement(doc, tagName, undefined, false);\n }\n throw new Error('Unknown constructor. Did you call customElements.define()?');\n }\n win.HTMLElement = newHTMLElement;\n // By setting the patched HTMLElement's prototype property to the native\n // HTMLElement's prototype we make sure that:\n // document.createElement('a') instanceof HTMLElement\n // works because instanceof uses HTMLElement.prototype, which is on the\n // ptototype chain of built-in elements.\n win.HTMLElement.prototype = origHTMLElement.prototype;\n\n // patch doc.createElement\n // TODO(justinfagnani): why is the cast neccessary?\n // Can we fix the Closure DOM externs?\n const _origCreateElement =\n /** @type {function(this:Document, string, (Object|undefined)=): !HTMLElement}}*/\n (doc.createElement);\n\n /**\n * Creates a new element and upgrades it if it's a custom element.\n * @param {!Document} doc\n * @param {!string} tagName\n * @param {Object|undefined} options\n * @param {boolean} callConstructor whether or not to call the elements\n * constructor after upgrading. If an element is created by calling its\n * constructor, then `callConstructor` should be false to prevent double\n * initialization.\n */\n function _createElement(doc, tagName, options, callConstructor) {\n const customElements = _customElements();\n const element = options ? _origCreateElement.call(doc, tagName, options) :\n _origCreateElement.call(doc, tagName);\n const definition = customElements._definitions.get(tagName.toLowerCase());\n if (definition) {\n customElements._upgradeElement(element, definition, callConstructor);\n }\n customElements._observeRoot(element);\n return element;\n };\n doc.createElement = function(tagName, options) {\n return _createElement(doc, tagName, options, true);\n }\n\n // patch doc.createElementNS\n\n const HTMLNS = 'http://www.w3.org/1999/xhtml';\n\n /** @type {function(this:Document,string,string):Element} */\n const _origCreateElementNS = doc.createElementNS;\n doc.createElementNS =\n /** @type {function(this:Document,(string|null),string):!Element} */\n (function(namespaceURI, qualifiedName) {\n if (namespaceURI === 'http://www.w3.org/1999/xhtml') {\n return doc.createElement(qualifiedName);\n } else {\n return _origCreateElementNS.call(doc, namespaceURI, qualifiedName);\n }\n });\n\n // patch Element.attachShadow\n\n /** @type {function({closed: boolean})} */\n const _origAttachShadow = Element.prototype['attachShadow'];\n if (_origAttachShadow) {\n Object.defineProperty(Element.prototype, 'attachShadow', {\n value: function(options) {\n /** @type {!Node} */\n const root = _origAttachShadow.call(this, options);\n /** @type {CustomElementRegistry} */\n const customElements = _customElements();\n customElements._observeRoot(root);\n return root;\n },\n });\n }\n\n // patch doc.importNode\n\n const rawImportNode = doc.importNode;\n doc.importNode = function(node, deep) {\n const clone = /** @type{!Node} */(rawImportNode.call(doc, node, deep));\n const customElements = _customElements();\n const nodes = isElement(clone) ? [clone] : clone.childNodes;\n /** @type {CustomElementRegistry} */(_customElements())._addNodes(nodes);\n return clone;\n };\n\n // patch Element.setAttribute & removeAttribute\n\n const _origSetAttribute = Element.prototype.setAttribute;\n Element.prototype['setAttribute'] = function(name, value) {\n changeAttribute(this, name, value, _origSetAttribute);\n };\n const _origRemoveAttribute = Element.prototype.removeAttribute;\n Element.prototype['removeAttribute'] = function(name) {\n changeAttribute(this, name, null, _origRemoveAttribute);\n };\n\n function changeAttribute(element, name, value, operation) {\n name = name.toLowerCase();\n const oldValue = element.getAttribute(name);\n operation.call(element, name, value);\n\n // Bail if this wasn't a fully upgraded custom element\n if (element[_upgradedProp] == true) {\n const definition = _customElements()._definitions.get(element.localName);\n const observedAttributes = definition.observedAttributes;\n const attributeChangedCallback = definition.attributeChangedCallback;\n if (attributeChangedCallback && observedAttributes.indexOf(name) >= 0) {\n const newValue = element.getAttribute(name);\n if (newValue !== oldValue) {\n attributeChangedCallback.call(element, name, oldValue, newValue, null);\n }\n }\n }\n }\n\n Object.defineProperty(window, 'customElements', {\n value: new CustomElementRegistry(),\n configurable: true,\n enumerable: true,\n });\n\n // TODO(justinfagnani): Remove. Temporary for backward-compatibility\n window['CustomElements'] = {\n takeRecords() {\n if (_customElements().flush) _customElements().flush();\n }\n }\n})();\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["src/custom-elements.js"],"names":["constructor","CustomElementRegistry","_definitions","Map","_constructors","_whenDefinedMap","_observers","Set","_attributeObserver","MutationObserver","_handleAttributeChange","bind","_newInstance","_pendingHtmlImportUrls","enableFlush","_upgradeScheduled","_mainDocumentObserver","_customElements","window","checkValidCustomElementName","name","test","reservedTagList","indexOf","Error","_createElement","tagName","options","callConstructor","document","customElements","element","_nativeCreateElement","call","doc","definition","get","toLowerCase","_upgradeElement","_observeRoot","changeAttribute","value","operation","oldValue","getAttribute","localName","observedAttributes","attributeChangedCallback","newValue","flush","forcePolyfill","define","getCallback","callbackName","callback","prototype","undefined","TypeError","nameError","has","connectedCallback","disconnectedCallback","set","_upgradeDoc","deferred","resolve","delete","def","whenDefined","Promise","reject","promise","_resolve","_handleMutations","takeRecords","forEach","observer","onReady","_addNodes","childNodes","_setNewInstance","instance","root","observe","childList","subtree","add","_unobserveRoot","disconnect","mutations","i","length","mutation","type","removedNodes","addedNodes","_removeNodes","nodeList","visitedNodes","nodeType","Node","ELEMENT_NODE","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","_addElement","currentNode","nextNode","n","DOCUMENT_NODE","parentNode","DOCUMENT_FRAGMENT_NODE","host","shadowRoot","rel","split","_addImport","link","_import","import","importUrl","href","_this","onLoad","removeEventListener","addEventListener","node","__proto__","console","assert","attributes","attributeOldValue","attributeFilter","hasAttribute","target","attributeName","attributeNamespace","origHTMLElement","HTMLElement","newHTMLElement","createElement","document.createElement","_nativeCreateElementNS","createElementNS","namespaceURI","qualifiedName","HTMLNS","_nativeAttachShadow","Element","Object","defineProperty","_nativeImportNode","importNode","document.importNode","deep","clone","nodes","_nativeSetAttribute","setAttribute","_nativeRemoveAttribute","removeAttribute","configurable","enumerable"],"mappings":"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","file":"custom-elements.min.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * 2.3\n * http://w3c.github.io/webcomponents/spec/custom/#dfn-element-definition\n * @typedef {{\n * name: string,\n * localName: string,\n * constructor: function(new:HTMLElement),\n * connectedCallback: (Function|undefined),\n * disconnectedCallback: (Function|undefined),\n * attributeChangedCallback: (Function|undefined),\n * observedAttributes: Array,\n * }}\n */\nlet CustomElementDefinition;\n\n/**\n * @typedef {{\n * resolve: !function(undefined),\n * promise: !Promise,\n * }}\n */\nlet Deferred;\n\n(function() {\n 'use strict';\n\n /**\n * Gets 'customElement' from window so that it could be modified after\n * the polyfill loads.\n * @function\n * @return {CustomElementRegistry}\n */\n const _customElements = () => window['customElements'];\n\n const _observerProp = '__$CE_observer';\n const _attachedProp = '__$CE_attached';\n const _upgradedProp = '__$CE_upgraded';\n\n if (_customElements()) {\n _customElements().flush = function() {};\n if (!_customElements().forcePolyfill) {\n return;\n }\n }\n\n // name validation\n // https://html.spec.whatwg.org/multipage/scripting.html#valid-custom-element-name\n\n /**\n * @const\n * @type {Array}\n */\n const reservedTagList = [\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n ];\n\n /**\n * @param {!string} name\n * @return {!Error|undefined}\n */\n function checkValidCustomElementName(name) {\n if (!(/^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(name) &&\n reservedTagList.indexOf(name) === -1)) {\n return new Error(`The element name '${name}' is not valid.`)\n }\n }\n\n /**\n * @param {!Node} root\n * @return {TreeWalker}\n */\n function createTreeWalker(root) {\n // IE 11 requires the third and fourth arguments be present. If the third\n // arg is null, it applies the default behaviour. However IE also requires\n // the fourth argument be present even though the other browsers ignore it.\n return document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false);\n }\n\n /**\n * @param {!Node} node\n * @return {boolean}\n */\n function isElement(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * @param {!Element} element\n * @return {boolean}\n */\n function isHtmlImport(element) {\n return element.tagName === 'LINK' &&\n element.rel &&\n element.rel.toLowerCase().split(' ').indexOf('import') !== -1;\n }\n\n /**\n * @param {!Element} element\n * @return {boolean}\n */\n function isConnected(element) {\n let n = element;\n do {\n if (n[_attachedProp] || n.nodeType === Node.DOCUMENT_NODE) return true;\n n = n.parentNode || n.nodeType === Node.DOCUMENT_FRAGMENT_NODE && n.host;\n } while(n);\n return false;\n }\n\n /**\n * A registry of custom element definitions.\n *\n * See https://html.spec.whatwg.org/multipage/scripting.html#customelementsregistry\n *\n * @property {boolean} enableFlush Set to true to enable the flush() method\n * to work. This should only be done for tests, as it causes a memory leak.\n */\n class CustomElementRegistry {\n\n constructor() {\n /** @private {!Map} **/\n this._definitions = new Map();\n\n /** @private {!Map} **/\n this._constructors = new Map();\n\n /** @private {!Map} **/\n this._whenDefinedMap = new Map();\n\n /** @private {!Set} **/\n this._observers = new Set();\n\n /** @private {!MutationObserver} **/\n this._attributeObserver = new MutationObserver(\n /** @type {function(Array, MutationObserver)} */\n (this._handleAttributeChange.bind(this)));\n\n /** @private {?HTMLElement} **/\n this._newInstance = null;\n\n /** @private {!Set} **/\n this._pendingHtmlImportUrls = new Set();\n\n /** @type {boolean} **/\n this.enableFlush = true;\n\n /** @private {boolean} **/\n this._upgradeScheduled = false;\n\n /** @type {MutationObserver} **/\n this._mainDocumentObserver = null;\n }\n\n // HTML spec part 4.13.4\n // https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementsregistry-define\n /**\n * @param {string} name\n * @param {function(new:HTMLElement)} constructor\n * @param {{extends: string}} options\n * @return {undefined}\n */\n define(name, constructor, options) {\n // 1:\n if (typeof constructor !== 'function') {\n throw new TypeError('constructor must be a Constructor');\n }\n\n // 2. If constructor is an interface object whose corresponding interface\n // either is HTMLElement or has HTMLElement in its set of inherited\n // interfaces, throw a TypeError and abort these steps.\n //\n // It doesn't appear possible to check this condition from script\n\n // 3:\n const nameError = checkValidCustomElementName(name);\n if (nameError) throw nameError;\n\n // 4, 5:\n // Note: we don't track being-defined names and constructors because\n // define() isn't normally reentrant. The only time user code can run\n // during define() is when getting callbacks off the prototype, which\n // would be highly-unusual. We can make define() reentrant-safe if needed.\n if (this._definitions.has(name)) {\n throw new Error(`An element with name '${name}' is already defined`);\n }\n\n // 6, 7:\n if (this._constructors.has(constructor)) {\n throw new Error(`Definition failed for '${name}': ` +\n `The constructor is already used.`);\n }\n\n // 8:\n /** @type {string} */\n const localName = name;\n\n // 9, 10: We do not support extends currently.\n\n // 11, 12, 13: Our define() isn't rentrant-safe\n\n // 14.1:\n /** @type {Object} */\n const prototype = constructor.prototype;\n\n // 14.2:\n if (typeof prototype !== 'object') {\n throw new TypeError(`Definition failed for '${name}': ` +\n `constructor.prototype must be an object`);\n }\n\n /**\n * @param {string} callbackName\n * @return {Function|undefined}\n */\n function getCallback(callbackName) {\n const callback = prototype[callbackName];\n if (callback !== undefined && typeof callback !== 'function') {\n throw new Error(`${localName} '${callbackName}' is not a Function`);\n }\n return callback;\n }\n\n // 3, 4:\n const connectedCallback = getCallback('connectedCallback');\n\n // 5, 6:\n const disconnectedCallback = getCallback('disconnectedCallback');\n\n // Divergence from spec: we always throw if attributeChangedCallback is\n // not a function.\n\n // 7, 9.1:\n const attributeChangedCallback = getCallback('attributeChangedCallback');\n\n // 8, 9.2, 9.3:\n const observedAttributes =\n (attributeChangedCallback && constructor['observedAttributes']) || [];\n\n // 15:\n /** @type {CustomElementDefinition} */\n const definition = {\n name: name,\n localName: localName,\n constructor: constructor,\n connectedCallback: connectedCallback,\n disconnectedCallback: disconnectedCallback,\n attributeChangedCallback: attributeChangedCallback,\n observedAttributes: observedAttributes,\n };\n\n // 16:\n this._definitions.set(localName, definition);\n this._constructors.set(constructor, localName);\n\n // 17, 18, 19:\n this._upgradeDoc();\n\n // 20:\n /** @type {Deferred} **/\n const deferred = this._whenDefinedMap.get(localName);\n if (deferred) {\n deferred.resolve(undefined);\n this._whenDefinedMap.delete(localName);\n }\n }\n\n /**\n * Returns the constructor defined for `name`, or `null`.\n *\n * @param {string} name\n * @return {Function|undefined}\n */\n get(name) {\n // https://html.spec.whatwg.org/multipage/scripting.html#custom-elements-api\n const def = this._definitions.get(name);\n return def ? def.constructor : undefined;\n }\n\n /**\n * Returns a `Promise` that resolves when a custom element for `name` has\n * been defined.\n *\n * @param {string} name\n * @return {!Promise}\n */\n whenDefined(name) {\n // https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementsregistry-whendefined\n const nameError = checkValidCustomElementName(name);\n if (nameError) return Promise.reject(nameError);\n if (this._definitions.has(name)) return Promise.resolve();\n\n /** @type {Deferred} **/\n let deferred = this._whenDefinedMap.get(name);\n if (deferred) return deferred.promise;\n\n let resolve;\n const promise = new Promise(function(_resolve, _) {\n resolve = _resolve;\n });\n deferred = {promise, resolve};\n this._whenDefinedMap.set(name, deferred);\n return promise;\n }\n\n /**\n * Causes all pending mutation records to be processed, and thus all\n * customization, upgrades and custom element reactions to be called.\n * `enableFlush` must be true for this to work. Only use during tests!\n */\n flush() {\n if (this.enableFlush) {\n // console.warn(\"flush!!!\");\n this._handleMutations(this._mainDocumentObserver.takeRecords());\n this._handleAttributeChange(this._attributeObserver.takeRecords());\n this._observers.forEach(\n /**\n * @param {!MutationObserver} observer\n * @this {CustomElementRegistry}\n */\n function(observer) {\n this._handleMutations(observer.takeRecords());\n }, this);\n }\n }\n\n /**\n * Upgrade all existing in document elements. This process is expensive so\n * is optionally batched based on the state of HTMLImports. (Note,\n * this batching might not be necessary if instead of walking the dom,\n * a map of upgrade candidates was maintained.)\n * @private\n */\n _upgradeDoc() {\n if (!this._upgradeScheduled) {\n this._upgradeScheduled = true;\n const onReady = () => {\n this._upgradeScheduled = false;\n if (!this._mainDocumentObserver) {\n this._mainDocumentObserver = this._observeRoot(document);\n }\n this._addNodes(document.childNodes);\n\n };\n if (window['HTMLImports']) {\n window['HTMLImports']['whenReady'](onReady);\n } else {\n onReady();\n }\n }\n }\n\n /**\n * @param {?HTMLElement} instance\n * @private\n */\n _setNewInstance(instance) {\n this._newInstance = instance;\n }\n\n /**\n * Observes a DOM root for mutations that trigger upgrades and reactions.\n * @param {Node} root\n * @private\n */\n _observeRoot(root) {\n //console.log('_observeRoot', root, root.baseURI);\n // console.assert(!root[_observerProp]);\n if (root[_observerProp] != null) {\n //console.warn(`Root ${root} is already observed`);\n return root[_observerProp];\n }\n root[_observerProp] = new MutationObserver(\n /** @type {function(Array, MutationObserver)} */\n (this._handleMutations.bind(this)));\n root[_observerProp].observe(root, {childList: true, subtree: true});\n if (this.enableFlush) {\n // this is memory leak, only use in tests\n this._observers.add(root[_observerProp]);\n }\n return root[_observerProp];\n }\n\n /**\n * @param {Node} root\n * @private\n */\n _unobserveRoot(root) {\n if (root[_observerProp] != null) {\n root[_observerProp].disconnect();\n if (this.enableFlush) {\n this._observers.delete(root[_observerProp]);\n }\n root[_observerProp] = null;\n }\n }\n\n /**\n * @param {!Array} mutations\n * @private\n */\n _handleMutations(mutations) {\n for (let i = 0; i < mutations.length; i++) {\n /** @type {!MutationRecord} */\n const mutation = mutations[i];\n if (mutation.type === 'childList') {\n // Note: we can't get an ordering between additions and removals, and\n // so might diverge from spec reaction ordering\n const addedNodes = /** @type {!NodeList} */(mutation.addedNodes);\n const removedNodes = /** @type {!NodeList} */(mutation.removedNodes);\n this._addNodes(addedNodes);\n this._removeNodes(removedNodes);\n }\n }\n }\n\n /**\n * @param {!(NodeList|Array)} nodeList\n * @param {?Set=} visitedNodes\n * @private\n */\n _addNodes(nodeList, visitedNodes) {\n visitedNodes = visitedNodes || new Set();\n\n for (let i = 0; i < nodeList.length; i++) {\n const root = nodeList[i];\n\n if (!isElement(root)) {\n continue;\n }\n\n // Since we're adding this node to an observed tree, we can unobserve\n this._unobserveRoot(root);\n\n const walker = createTreeWalker(root);\n do {\n const node = /** @type {!HTMLElement} */ (walker.currentNode);\n this._addElement(node, visitedNodes);\n } while (walker.nextNode())\n }\n }\n\n /**\n * @param {!HTMLElement} element\n * @param {!Set=} visitedNodes\n */\n _addElement(element, visitedNodes) {\n if (visitedNodes.has(element)) return;\n visitedNodes.add(element);\n\n /** @type {?CustomElementDefinition} */\n const definition = this._definitions.get(element.localName);\n if (definition) {\n if (!element[_upgradedProp]) {\n this._upgradeElement(element, definition, true);\n }\n if (element[_upgradedProp] && !element[_attachedProp] && isConnected(element)) {\n element[_attachedProp] = true;\n if (definition.connectedCallback) {\n definition.connectedCallback.call(element);\n }\n }\n }\n if (element.shadowRoot) {\n // TODO(justinfagnani): do we need to check that the shadowRoot\n // is observed?\n this._addNodes(element.shadowRoot.childNodes, visitedNodes);\n }\n if (isHtmlImport(element)) {\n this._addImport(/** @type {!HTMLLinkElement} */(element), visitedNodes);\n }\n }\n\n /**\n * @param {!HTMLLinkElement} link\n * @param {!Set=} visitedNodes\n */\n _addImport(link, visitedNodes) {\n // During a tree walk to add or upgrade nodes, we may encounter multiple\n // HTML imports that reference the same document, and may encounter\n // imports in various states of loading.\n\n // First, we only want to process the first import for a document in a\n // walk, so we check visitedNodes for the document, not the link.\n //\n // Second, for documents that haven't loaded yet, we only want to add one\n // listener, regardless of the number of links or walks, so we track\n // pending loads in _pendingHtmlImportUrls.\n\n // Check to see if the import is loaded\n /** @type {?Document} */\n const _import = link.import;\n if (_import) {\n // The import is loaded, but only process the first link element\n if (visitedNodes.has(_import)) return;\n visitedNodes.add(_import);\n\n // The import is loaded observe it\n if (!_import[_observerProp]) this._observeRoot(_import);\n\n // walk the document\n this._addNodes(_import.childNodes, visitedNodes);\n } else {\n // The import is not loaded, so wait for it\n /** @type {string} */\n const importUrl = link.href;\n if (this._pendingHtmlImportUrls.has(importUrl)) return;\n this._pendingHtmlImportUrls.add(importUrl);\n\n /**\n * @const\n * @type {CustomElementRegistry}\n */\n const _this = this;\n const onLoad = function() {\n link.removeEventListener('load', /** @type {function(Event)} */(onLoad));\n if (!link.import[_observerProp]) _this._observeRoot(link.import);\n // We don't pass visitedNodes because this is async and not part of\n // the current tree walk.\n _this._addNodes(link.import.childNodes);\n };\n link.addEventListener('load', onLoad);\n }\n }\n\n /**\n * @param {NodeList} nodeList\n * @private\n */\n _removeNodes(nodeList) {\n for (let i = 0; i < nodeList.length; i++) {\n const root = nodeList[i];\n\n if (!isElement(root)) {\n continue;\n }\n\n // Since we're detatching this element from an observed root, we need to\n // reobserve it.\n // TODO(justinfagnani): can we do this in a microtask so we don't thrash\n // on creating and destroying MutationObservers on batch DOM mutations?\n this._observeRoot(root);\n\n const walker = createTreeWalker(root);\n do {\n const node = walker.currentNode;\n if (node[_upgradedProp] && node[_attachedProp]) {\n node[_attachedProp] = false;\n const definition = this._definitions.get(node.localName);\n if (definition && definition.disconnectedCallback) {\n definition.disconnectedCallback.call(node);\n }\n }\n } while (walker.nextNode())\n }\n }\n\n /**\n * Upgrades or customizes a custom element.\n *\n * @param {HTMLElement} element\n * @param {CustomElementDefinition} definition\n * @param {boolean} callConstructor\n * @private\n */\n _upgradeElement(element, definition, callConstructor) {\n const prototype = definition.constructor.prototype;\n element.__proto__ = prototype;\n if (callConstructor) {\n this._setNewInstance(element);\n new (definition.constructor)();\n element[_upgradedProp] = true;\n console.assert(this._newInstance == null);\n }\n\n const observedAttributes = definition.observedAttributes;\n const attributeChangedCallback = definition.attributeChangedCallback;\n if (attributeChangedCallback && observedAttributes.length > 0) {\n this._attributeObserver.observe(element, {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: observedAttributes,\n });\n\n // Trigger attributeChangedCallback for existing attributes.\n // https://html.spec.whatwg.org/multipage/scripting.html#upgrades\n for (let i = 0; i < observedAttributes.length; i++) {\n const name = observedAttributes[i];\n if (element.hasAttribute(name)) {\n const value = element.getAttribute(name);\n attributeChangedCallback.call(element, name, null, value, null);\n }\n }\n }\n }\n\n /**\n * @param {!Array} mutations\n * @private\n */\n _handleAttributeChange(mutations) {\n for (let i = 0; i < mutations.length; i++) {\n const mutation = mutations[i];\n if (mutation.type === 'attributes') {\n const target = /** @type {HTMLElement} */(mutation.target);\n // We should be gaurenteed to have a definition because this mutation\n // observer is only observing custom elements observedAttributes\n const definition = this._definitions.get(target.localName);\n const name = /** @type {!string} */(mutation.attributeName);\n const oldValue = mutation.oldValue;\n const newValue = target.getAttribute(name);\n // Skip changes that were handled synchronously by setAttribute\n if (newValue !== oldValue) {\n const namespace = mutation.attributeNamespace;\n definition.attributeChangedCallback.call(target, name, oldValue, newValue, namespace);\n }\n }\n }\n }\n }\n\n // Closure Compiler Exports\n window['CustomElementRegistry'] = CustomElementRegistry;\n CustomElementRegistry.prototype['define'] = CustomElementRegistry.prototype.define;\n CustomElementRegistry.prototype['get'] = CustomElementRegistry.prototype.get;\n CustomElementRegistry.prototype['whenDefined'] = CustomElementRegistry.prototype.whenDefined;\n CustomElementRegistry.prototype['flush'] = CustomElementRegistry.prototype.flush;\n CustomElementRegistry.prototype['polyfilled'] = true;\n // TODO(justinfagnani): remove these in production code\n CustomElementRegistry.prototype['_observeRoot'] = CustomElementRegistry.prototype._observeRoot;\n CustomElementRegistry.prototype['_addImport'] = CustomElementRegistry.prototype._addImport;\n\n // patch window.HTMLElement\n\n /** @const */\n const origHTMLElement = window.HTMLElement;\n CustomElementRegistry.prototype['nativeHTMLElement'] = origHTMLElement;\n /**\n * @type {function(new: HTMLElement)}\n */\n const newHTMLElement = function HTMLElement() {\n const customElements = _customElements();\n\n // If there's an being upgraded, return that\n if (customElements._newInstance) {\n const i = customElements._newInstance;\n customElements._newInstance = null;\n return i;\n }\n if (this.constructor) {\n // Find the tagname of the constructor and create a new element with it\n const tagName = customElements._constructors.get(this.constructor);\n return _createElement(document, tagName, undefined, false);\n }\n throw new Error('Unknown constructor. Did you call customElements.define()?');\n }\n window.HTMLElement = newHTMLElement;\n // By setting the patched HTMLElement's prototype property to the native\n // HTMLElement's prototype we make sure that:\n // document.createElement('a') instanceof HTMLElement\n // works because instanceof uses HTMLElement.prototype, which is on the\n // ptototype chain of built-in elements.\n window.HTMLElement.prototype = origHTMLElement.prototype;\n\n // patch doc.createElement\n // TODO(justinfagnani): why is the cast neccessary?\n // Can we fix the Closure DOM externs?\n const _nativeCreateElement =\n /** @type {function(this:Document, string, (Object|undefined)=): !HTMLElement}}*/\n (document.createElement);\n\n /**\n * Creates a new element and upgrades it if it's a custom element.\n * @param {!Document} doc\n * @param {!string} tagName\n * @param {Object|undefined} options\n * @param {boolean} callConstructor whether or not to call the elements\n * constructor after upgrading. If an element is created by calling its\n * constructor, then `callConstructor` should be false to prevent double\n * initialization.\n */\n function _createElement(doc, tagName, options, callConstructor) {\n const customElements = _customElements();\n const element = options ? _nativeCreateElement.call(doc, tagName, options) :\n _nativeCreateElement.call(doc, tagName);\n const definition = customElements._definitions.get(tagName.toLowerCase());\n if (definition) {\n customElements._upgradeElement(element, definition, callConstructor);\n }\n customElements._observeRoot(element);\n return element;\n };\n document.createElement = function(tagName, options) {\n return _createElement(document, tagName, options, true);\n }\n\n // patch document.createElementNS\n\n const HTMLNS = 'http://www.w3.org/1999/xhtml';\n\n /** @type {function(this:Document,string,string):Element} */\n const _nativeCreateElementNS = document.createElementNS;\n document.createElementNS =\n /** @type {function(this:Document,(string|null),string):!Element} */\n (function(namespaceURI, qualifiedName) {\n if (namespaceURI === HTMLNS) {\n return document.createElement(qualifiedName);\n } else {\n return _nativeCreateElementNS.call(document, namespaceURI, qualifiedName);\n }\n });\n\n // patch Element.attachShadow\n\n /** @type {function({closed: boolean})} */\n const _nativeAttachShadow = Element.prototype['attachShadow'];\n if (_nativeAttachShadow) {\n Object.defineProperty(Element.prototype, 'attachShadow', {\n value: function(options) {\n /** @type {!Node} */\n const root = _nativeAttachShadow.call(this, options);\n /** @type {CustomElementRegistry} */\n const customElements = _customElements();\n customElements._observeRoot(root);\n return root;\n },\n });\n }\n\n // patch document.importNode\n\n const _nativeImportNode = document.importNode;\n document.importNode = function(node, deep) {\n const clone = /** @type{!Node} */(_nativeImportNode.call(document, node, deep));\n const customElements = _customElements();\n const nodes = isElement(clone) ? [clone] : clone.childNodes;\n /** @type {CustomElementRegistry} */(_customElements())._addNodes(nodes);\n return clone;\n };\n\n // patch Element.setAttribute & removeAttribute\n\n const _nativeSetAttribute = Element.prototype.setAttribute;\n Element.prototype['setAttribute'] = function(name, value) {\n changeAttribute(this, name, value, _nativeSetAttribute);\n };\n const _nativeRemoveAttribute = Element.prototype.removeAttribute;\n Element.prototype['removeAttribute'] = function(name) {\n changeAttribute(this, name, null, _nativeRemoveAttribute);\n };\n\n function changeAttribute(element, name, value, operation) {\n name = name.toLowerCase();\n const oldValue = element.getAttribute(name);\n operation.call(element, name, value);\n\n // Bail if this wasn't a fully upgraded custom element\n if (element[_upgradedProp] == true) {\n const definition = _customElements()._definitions.get(element.localName);\n const observedAttributes = definition.observedAttributes;\n const attributeChangedCallback = definition.attributeChangedCallback;\n if (attributeChangedCallback && observedAttributes.indexOf(name) >= 0) {\n const newValue = element.getAttribute(name);\n if (newValue !== oldValue) {\n attributeChangedCallback.call(element, name, oldValue, newValue, null);\n }\n }\n }\n }\n\n Object.defineProperty(window, 'customElements', {\n value: new CustomElementRegistry(),\n configurable: true,\n enumerable: true,\n });\n\n // TODO(justinfagnani): Remove. Temporary for backward-compatibility\n window['CustomElements'] = {\n takeRecords() {\n if (_customElements().flush) _customElements().flush();\n }\n }\n})();\n"]} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 5ed8b2b..1426f0b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,14 +10,16 @@ 'use strict'; -const compilerPackage = require('google-closure-compiler'); const gulp = require('gulp'); +const rename = require('gulp-rename'); const sourcemaps = require('gulp-sourcemaps'); +const babel = require('gulp-babel'); +const compilerPackage = require('google-closure-compiler'); const closureCompiler = compilerPackage.gulp(); -gulp.task('default', () => { - return gulp.src('./src/custom-elements.js', {base: './'}) +gulp.task('custom-elements', () => + gulp.src('./src/custom-elements.js', {base: './'}) .pipe(sourcemaps.init()) .pipe(closureCompiler({ compilation_level: 'ADVANCED', @@ -30,5 +32,19 @@ gulp.task('default', () => { rewrite_polyfills: false, })) .pipe(sourcemaps.write('/')) - .pipe(gulp.dest('./')); -}); + .pipe(gulp.dest('./')) +); + +gulp.task('native-shim', () => + gulp.src('./src/native-shim.js') + .pipe(rename('native-shim.min.js')) + .pipe(sourcemaps.init()) + .pipe(babel({ + presets: ['babili'], + comments: false, + })) + .pipe(sourcemaps.write('/')) + .pipe(gulp.dest('./')) +); + +gulp.task('default', ['custom-elements', 'native-shim']); diff --git a/native-shim.min.js b/native-shim.min.js new file mode 100644 index 0000000..f1a1591 --- /dev/null +++ b/native-shim.min.js @@ -0,0 +1,2 @@ +(()=>{'use strict';const a=window.HTMLElement,b=window.customElements.define,c=window.customElements.get,d=new Map,e=new Map;let f=!1,g=!1;window.HTMLElement=function(){if(!f){const h=d.get(this.constructor),i=c.call(window.customElements,h);g=!0;const j=new i;return j}f=!1},window.HTMLElement.prototype=a.prototype,window.customElements.define=(h,i)=>{const j=i.prototype,k=class extends a{constructor(){super(),Object.setPrototypeOf(this,j),g||(f=!0,i.call(this)),g=!1}},l=k.prototype;k.observedAttributes=i.observedAttributes,l.connectedCallback=j.connectedCallback,l.disconnectedCallback=j.disconnectedCallback,l.attributeChangedCallback=j.attributeChangedCallback,l.adoptedCallback=j.adoptedCallback,d.set(i,h),e.set(h,i),b.call(window.customElements,h,k)},window.customElements.get=h=>e.get(h)})(); +//# sourceMappingURL=native-shim.min.js.map diff --git a/native-shim.min.js.map b/native-shim.min.js.map new file mode 100644 index 0000000..be6557d --- /dev/null +++ b/native-shim.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["native-shim.min.js"],"names":["NativeHTMLElement","window","HTMLElement","nativeDefine","customElements","define","nativeGet","get","tagnameByConstructor","Map","constructorByTagname","browserConstruction","userConstruction","tagname","constructor","fakeClass","call","instance","prototype","elementClass","elementProto","StandInElement","Object","setPrototypeOf","standInProto","observedAttributes","connectedCallback","disconnectedCallback","attributeChangedCallback","adoptedCallback","set"],"mappings":"AA4DA,CAAC,IAAM,CACL,aAEA,KAAMA,GAAoBC,OAAOC,WAAjC,CACMC,EAAeF,OAAOG,cAAP,CAAsBC,MAD3C,CAEMC,EAAYL,OAAOG,cAAP,CAAsBG,GAFxC,CASMC,EAAuB,GAAIC,IATjC,CAgBMC,EAAuB,GAAID,IAhBjC,CAuBA,GAAIE,KAAJ,CAMIC,IANJ,CAQAX,OAAOC,WAAP,CAAqB,UAAW,CAC9B,GAAI,CAACS,CAAL,CAA0B,CACxB,KAAME,GAAUL,EAAqBD,GAArB,CAAyB,KAAKO,WAA9B,CAAhB,CACMC,EAAYT,EAAUU,IAAV,CAAef,OAAOG,cAAtB,CAAsCS,CAAtC,CADlB,CAIAD,IALwB,CAMxB,KAAMK,GAAW,GAAKF,EAAtB,CACA,MAAOE,EACR,CAGDN,IACD,CA/CI,CAqDLV,OAAOC,WAAP,CAAmBgB,SAAnB,CAA+BlB,EAAkBkB,SArD5C,CAuDLjB,OAAOG,cAAP,CAAsBC,MAAtB,CAA+B,CAACQ,CAAD,CAAUM,CAAV,GAA2B,CACxD,KAAMC,GAAeD,EAAaD,SAAlC,CACMG,EAAiB,aAAcrB,EAAkB,CACrDc,aAAc,CAGZ,OAHY,CAOZQ,OAAOC,cAAP,CAAsB,IAAtB,CAA4BH,CAA5B,CAPY,CASPR,CATO,GAYVD,IAZU,CAcVQ,EAAaH,IAAb,CAAkB,IAAlB,CAdU,EAgBZJ,IACD,CAlBoD,CADvD,CAqBMY,EAAeH,EAAeH,SArBpC,CAsBAG,EAAeI,kBAAf,CAAoCN,EAAaM,kBAvBO,CAwBxDD,EAAaE,iBAAb,CAAiCN,EAAaM,iBAxBU,CAyBxDF,EAAaG,oBAAb,CAAoCP,EAAaO,oBAzBO,CA0BxDH,EAAaI,wBAAb,CAAwCR,EAAaQ,wBA1BG,CA2BxDJ,EAAaK,eAAb,CAA+BT,EAAaS,eA3BY,CA6BxDrB,EAAqBsB,GAArB,CAAyBX,CAAzB,CAAuCN,CAAvC,CA7BwD,CA8BxDH,EAAqBoB,GAArB,CAAyBjB,CAAzB,CAAkCM,CAAlC,CA9BwD,CA+BxDhB,EAAaa,IAAb,CAAkBf,OAAOG,cAAzB,CAAyCS,CAAzC,CAAkDQ,CAAlD,CACD,CAvFI,CAyFLpB,OAAOG,cAAP,CAAsBG,GAAtB,CAA6BM,CAAD,EAAaH,EAAqBH,GAArB,CAAyBM,CAAzB,CAE1C,CA3FD,G","file":"native-shim.min.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements.\n *\n * ES5-style classes don't work with native Custom Elements because the\n * HTMLElement constructor uses the value of `new.target` to look up the custom\n * element definition for the currently called constructor. `new.target` is only\n * set when `new` is called and is only propagated via super() calls. super()\n * is not emulatable in ES5. The pattern of `SuperClass.call(this)`` only works\n * when extending other ES5-style classes, and does not propagate `new.target`.\n *\n * This shim allows the native HTMLElement constructor to work by generating and\n * registering a stand-in class instead of the users custom element class. This\n * stand-in class's constructor has an actual call to super().\n * `customElements.define()` and `customElements.get()` are both overridden to\n * hide this stand-in class from users.\n *\n * In order to create instance of the user-defined class, rather than the stand\n * in, the stand-in's constructor swizzles its instances prototype and invokes\n * the user-defined constructor. When the user-defined constructor is called\n * directly it creates an instance of the stand-in class to get a real extension\n * of HTMLElement and returns that.\n *\n * There are two important constructors: A patched HTMLElement constructor, and\n * the StandInElement constructor. They both will be called to create an element\n * but which is called first depends on whether the browser creates the element\n * or the user-defined constructor is called directly. The variables\n * `browserConstruction` and `userConstruction` control the flow between the\n * two constructors.\n *\n * This shim should be better than forcing the polyfill because:\n * 1. It's smaller\n * 2. All reaction timings are the same as native (mostly synchronous)\n * 3. All reaction triggering DOM operations are automatically supported\n *\n * There are some restrictions and requirements on ES5 constructors:\n * 1. All constructors in a inheritance hierarchy must be ES5-style, so that\n * they can be called with Function.call(). This effectively means that the\n * whole application must be compiled to ES5.\n * 2. Constructors must return the value of the emulated super() call. Like\n * `return SuperClass.call(this)`\n * 3. The `this` reference should not be used before the emulated super() call\n * just like `this` is illegal to use before super() in ES6.\n * 4. Constructors should not create other custom elements before the emulated\n * super() call. This is the same restriction as with native custom\n * elements.\n *\n * Compiling valid class-based custom elements to ES5 will satisfy these\n * requirements with the latest version of popular transpilers.\n */\n(() => {\n 'use strict';\n\n const NativeHTMLElement = window.HTMLElement;\n const nativeDefine = window.customElements.define;\n const nativeGet = window.customElements.get;\n\n /**\n * Map of user-provided constructors to tag names.\n *\n * @type {Map}\n */\n const tagnameByConstructor = new Map();\n\n /**\n * Map of tag names to user-provided constructors.\n *\n * @type {Map}\n */\n const constructorByTagname = new Map();\n\n\n /**\n * Whether the constructors are being called by a browser process, ie parsing\n * or createElement.\n */\n let browserConstruction = false;\n\n /**\n * Whether the constructors are being called by a user-space process, ie\n * calling an element constructor.\n */\n let userConstruction = false;\n\n window.HTMLElement = function() {\n if (!browserConstruction) {\n const tagname = tagnameByConstructor.get(this.constructor);\n const fakeClass = nativeGet.call(window.customElements, tagname);\n\n // Make sure that the fake constructor doesn't call back to this constructor\n userConstruction = true;\n const instance = new (fakeClass)();\n return instance;\n }\n // Else do nothing. This will be reached by ES5-style classes doing\n // HTMLElement.call() during initialization\n browserConstruction = false;\n };\n // By setting the patched HTMLElement's prototype property to the native\n // HTMLElement's prototype we make sure that:\n // document.createElement('a') instanceof HTMLElement\n // works because instanceof uses HTMLElement.prototype, which is on the\n // ptototype chain of built-in elements.\n window.HTMLElement.prototype = NativeHTMLElement.prototype;\n\n window.customElements.define = (tagname, elementClass) => {\n const elementProto = elementClass.prototype;\n const StandInElement = class extends NativeHTMLElement {\n constructor() {\n // Call the native HTMLElement constructor, this gives us the\n // under-construction instance as `this`:\n super();\n\n // The prototype will be wrong up because the browser used our fake\n // class, so fix it:\n Object.setPrototypeOf(this, elementProto);\n\n if (!userConstruction) {\n // Make sure that user-defined constructor bottom's out to a do-nothing\n // HTMLElement() call\n browserConstruction = true;\n // Call the user-defined constructor on our instance:\n elementClass.call(this);\n }\n userConstruction = false;\n }\n };\n const standInProto = StandInElement.prototype;\n StandInElement.observedAttributes = elementClass.observedAttributes;\n standInProto.connectedCallback = elementProto.connectedCallback;\n standInProto.disconnectedCallback = elementProto.disconnectedCallback;\n standInProto.attributeChangedCallback = elementProto.attributeChangedCallback;\n standInProto.adoptedCallback = elementProto.adoptedCallback;\n\n tagnameByConstructor.set(elementClass, tagname);\n constructorByTagname.set(tagname, elementClass);\n nativeDefine.call(window.customElements, tagname, StandInElement);\n };\n\n window.customElements.get = (tagname) => constructorByTagname.get(tagname);\n\n})();\n"]} \ No newline at end of file diff --git a/package.json b/package.json index c2d6567..1ca18f4 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,11 @@ }, "homepage": "http://webcomponents.org", "devDependencies": { + "babel-preset-babili": "^0.0.9", "google-closure-compiler": "^20160822.1.0", "gulp": "^3.8.8", + "gulp-babel": "^6.1.2", + "gulp-rename": "^1.2.2", "gulp-sourcemaps": "^1.6.0", "web-component-tester": "^4.0.1" } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..b6ce055 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3693 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/chalk@^0.4.28": + version "0.4.31" + resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-0.4.31.tgz#a31d74241a6b1edbb973cf36d97a2896834a51f9" + +"@types/express-serve-static-core@*": + version "4.0.40" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.0.40.tgz#168e82978bffc81ee7737bc60728d64733a4f37b" + dependencies: + "@types/node" "*" + +"@types/express@^4.0.30": + version "4.0.34" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.0.34.tgz#cdc0afd69d70d2295b81b3aa47f26f672afcde1c" + dependencies: + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/freeport@^1.0.19": + version "1.0.20" + resolved "https://registry.yarnpkg.com/@types/freeport/-/freeport-1.0.20.tgz#6639143f80c5822416dfd0c63bcd9d52228f9376" + +"@types/mime@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-0.0.29.tgz#fbcfd330573b912ef59eeee14602bface630754b" + +"@types/node@*", "@types/node@^6.0.31": + version "6.0.59" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.59.tgz#b7fd8f3144c447c829a8eab8805c3a523e9e5b44" + +"@types/serve-static@*": + version "1.7.31" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.7.31.tgz#15456de8d98d6b4cff31be6c6af7492ae63f521a" + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/which@^1.0.27": + version "1.0.28" + resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6" + +accepts@1.3.3, accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accessibility-developer-tools@^2.10.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/accessibility-developer-tools/-/accessibility-developer-tools-2.11.0.tgz#2b669c802671672aed5c61c42a782082a2fc7d2c" + +acorn@4.X: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + +adm-zip@~0.4.3: + version "0.4.7" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@2: + version "2.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +append-field@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-0.1.0.tgz#6ddc58fa083c7bc545d3c5995b2830cc2366d44a" + +archiver@~0.14.0: + version "0.14.4" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.14.4.tgz#5b9ddb9f5ee1ceef21cb8f3b020e6240ecb4315c" + dependencies: + async "~0.9.0" + buffer-crc32 "~0.2.1" + glob "~4.3.0" + lazystream "~0.1.0" + lodash "~3.2.0" + readable-stream "~1.0.26" + tar-stream "~1.1.0" + zip-stream "~0.5.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assertion-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + +async@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-1.2.1.tgz#a4816a17cd5ff516dfa2c7698a453369b9790de0" + +async@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1, async@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" + +atob@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + +babel-code-frame@^6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^2.0.0" + +babel-core@^6.0.2, babel-core@^6.18.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.21.0.tgz#75525480c21c803f826ef3867d22c19f080a3724" + dependencies: + babel-code-frame "^6.20.0" + babel-generator "^6.21.0" + babel-helpers "^6.16.0" + babel-messages "^6.8.0" + babel-register "^6.18.0" + babel-runtime "^6.20.0" + babel-template "^6.16.0" + babel-traverse "^6.21.0" + babel-types "^6.21.0" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-generator@^6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.21.0.tgz#605f1269c489a1c75deeca7ea16d43d4656c8494" + dependencies: + babel-messages "^6.8.0" + babel-runtime "^6.20.0" + babel-types "^6.21.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + +babel-helper-evaluate-path@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.0.3.tgz#1d103ac9d4a59e5d431842212f151785f7ac547b" + +babel-helper-flip-expressions@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.0.1.tgz#c2ba1599426e7928333fd5c08eee6cdf8328c848" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.0.1.tgz#ed74553b883e68226ae45f989a99b02c190f105a" + +babel-helper-remove-or-void@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.0.1.tgz#f602790e465acf2dfbe84fb3dd210c43a2dd7262" + +babel-helper-to-multiple-sequence-expressions@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.0.2.tgz#07d5d2e674aa62962ac9e0000b539920c301c4b9" + +babel-helpers@^6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" + dependencies: + babel-runtime "^6.0.0" + babel-template "^6.16.0" + +babel-messages@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-minify-constant-folding@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.0.3.tgz#a511e839562489811987a7a503c43c312c40138a" + dependencies: + babel-helper-evaluate-path "^0.0.3" + +babel-plugin-minify-dead-code-elimination@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.1.tgz#1a0133fcd06c7fa477b01c193ba3213c8944ff01" + dependencies: + babel-helper-remove-or-void "^0.0.1" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.0.1.tgz#679f4493a692afc705c4b79fde1dadb535c4eb08" + dependencies: + babel-helper-is-void-0 "^0.0.1" + +babel-plugin-minify-guarded-expressions@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.0.3.tgz#6da1caa0b6abda964647377bd5e19afdbf91cae8" + dependencies: + babel-helper-flip-expressions "^0.0.1" + +babel-plugin-minify-infinity@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.0.3.tgz#4cc99b61d12b434ce80ad675103335c589cba9a1" + +babel-plugin-minify-mangle-names@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.0.5.tgz#53e4905de90a215622012cc003c3e0d5bdf18a8a" + +babel-plugin-minify-numeric-literals@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.0.1.tgz#9597e6c31154d7daf3744d0bd417c144b275bd53" + +babel-plugin-minify-replace@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.0.1.tgz#5d5aea7cb9899245248d1ee9ce7a2fe556a8facc" + +babel-plugin-minify-simplify@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.0.5.tgz#71d1de1993a138282c679aad74060829b2b13ed2" + dependencies: + babel-helper-flip-expressions "^0.0.1" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.0.2" + +babel-plugin-minify-type-constructors@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.0.2.tgz#4f9a28951e776f31ac11a29cd58cf9eef8b2e292" + dependencies: + babel-helper-is-void-0 "^0.0.1" + +babel-plugin-transform-member-expression-literals@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.0.tgz#718755a70492a895d8f41810afa9998bc09f57b9" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-merge-sibling-variables@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.0.tgz#724074e4ef78b601fcf9a34165c972a1b6117e99" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-minify-booleans@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.0.tgz#b1a48864a727847696b84eae36fa4d085a54b42b" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-property-literals@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.0.tgz#a65b2e6e1274d25df0f3a4c5e85bc8f1cdd9e019" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-regexp-constructors@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.0.3.tgz#463200d8371a06f077226b967858369211b5cfe3" + +babel-plugin-transform-remove-undefined@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.0.3.tgz#34baeb7bde4fc01d5235304ee891e7b6bff00432" + +babel-plugin-transform-simplify-comparison-operators@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.0.tgz#0183d65bfdc54c80d922a3a9b3008e25fa9d32a7" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-undefined-to-void@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.0.tgz#bc5b6b4908d3b1262170e67cb3963903ddce167e" + dependencies: + babel-runtime "^6.0.0" + +babel-preset-babili@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/babel-preset-babili/-/babel-preset-babili-0.0.9.tgz#699f08703ff1c84f4f6c229ffe5662c8f1861bf2" + dependencies: + babel-plugin-minify-constant-folding "^0.0.3" + babel-plugin-minify-dead-code-elimination "^0.1.1" + babel-plugin-minify-flip-comparisons "^0.0.1" + babel-plugin-minify-guarded-expressions "^0.0.3" + babel-plugin-minify-infinity "^0.0.3" + babel-plugin-minify-mangle-names "^0.0.5" + babel-plugin-minify-numeric-literals "^0.0.1" + babel-plugin-minify-replace "^0.0.1" + babel-plugin-minify-simplify "^0.0.5" + babel-plugin-minify-type-constructors "^0.0.2" + babel-plugin-transform-member-expression-literals "^6.8.0" + babel-plugin-transform-merge-sibling-variables "^6.8.0" + babel-plugin-transform-minify-booleans "^6.8.0" + babel-plugin-transform-property-literals "^6.8.0" + babel-plugin-transform-regexp-constructors "^0.0.3" + babel-plugin-transform-remove-undefined "^0.0.3" + babel-plugin-transform-simplify-comparison-operators "^6.8.0" + babel-plugin-transform-undefined-to-void "^6.8.0" + +babel-register@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" + dependencies: + babel-core "^6.18.0" + babel-runtime "^6.11.6" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.20.0, babel-runtime@^6.9.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-template@^6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" + dependencies: + babel-runtime "^6.9.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.16.0, babel-traverse@^6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad" + dependencies: + babel-code-frame "^6.20.0" + babel-messages "^6.8.0" + babel-runtime "^6.20.0" + babel-types "^6.21.0" + babylon "^6.11.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.16.0, babel-types@^6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2" + dependencies: + babel-runtime "^6.20.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.11.0: + version "6.14.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +backoff@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" + dependencies: + precond "0.2" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +bl@^0.9.0, bl@~0.9.0: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" + dependencies: + readable-stream "~1.0.26" + +bl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" + dependencies: + readable-stream "^2.0.5" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +bluebird@^2.9.30: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +body-parser@^1.14.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.15.2.tgz#d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67" + dependencies: + bytes "2.4.0" + content-type "~1.0.2" + debug "~2.2.0" + depd "~1.1.0" + http-errors "~1.5.0" + iconv-lite "0.4.13" + on-finished "~2.3.0" + qs "6.2.0" + raw-body "~2.1.7" + type-is "~1.6.13" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boxen@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.3.1.tgz#a7d898243ae622f7abb6bb604d740a76c6a5461b" + dependencies: + chalk "^1.1.1" + filled-array "^1.0.0" + object-assign "^4.0.1" + repeating "^2.0.0" + string-width "^1.0.1" + widest-line "^1.0.0" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browserstack@^1.2.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.0.tgz#b565425ad62ed72c1082a1eb979d5313c7d4754f" + dependencies: + https-proxy-agent "1.0.0" + +buffer-crc32@~0.2.1, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +bunyan@^1.4.0: + version "1.8.5" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.5.tgz#0d619e83005fb89070f5f47982fc1bf00600878a" + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +busboy@^0.2.11: + version "0.2.13" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.13.tgz#90fc4f6a3967d815616fc976bfa8e56aed0c58b6" + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.8.0.tgz#5bca2881d41437f54b2407ebe34888c7b9ad4f7d" + +caseless@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.9.0.tgz#b7b65ce6bf1413886539cfd533f0b30effa9cf88" + +chai@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +cleankill@^1.0.0, cleankill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cleankill/-/cleankill-1.0.3.tgz#e7419bd24abc07f2d182d3a09a935c1bcdede6bd" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +combined-stream@~0.0.4, combined-stream@~0.0.5: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" + +commander@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" + +commander@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" + +commander@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compress-commons@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-0.2.9.tgz#422d927430c01abd06cd455b6dfc04cb4cf8003c" + dependencies: + buffer-crc32 "~0.2.1" + crc32-stream "~0.3.1" + node-int64 "~0.3.0" + readable-stream "~1.0.26" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" + dependencies: + dot-prop "^3.0.0" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +content-disposition@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +convert-source-map@1.X, convert-source-map@^1.1.0, convert-source-map@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +crc32-stream@~0.3.1: + version "0.3.4" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-0.3.4.tgz#73bc25b45fac1db6632231a7bfce8927e9f06552" + dependencies: + buffer-crc32 "~0.2.1" + readable-stream "~1.0.24" + +crc@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.2.1.tgz#5d9c8fb77a245cd5eca291e5d2d005334bab0082" + +create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +css@2.X: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" + dependencies: + inherits "^2.0.1" + source-map "^0.1.38" + source-map-resolve "^0.3.0" + urix "^0.1.0" + +csv-generate@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-0.0.6.tgz#97e4e63ae46b21912cd9475bc31469d26f5ade66" + +csv-parse@^1.0.0: + version "1.1.9" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-1.1.9.tgz#5010f93e052578fcab67e30e9b59129c6248ad81" + +csv-stringify@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-0.0.8.tgz#52cc3b3dfc197758c55ad325a95be85071f9e51b" + +csv@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/csv/-/csv-0.4.6.tgz#8dbae7ddfdbaae62c1ea987c3e0f8a9ac737b73d" + dependencies: + csv-generate "^0.0.6" + csv-parse "^1.0.0" + csv-stringify "^0.0.8" + stream-transform "^0.1.0" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +dateformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + +debug-fabulous@0.0.X: + version "0.0.4" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.0.4.tgz#fa071c5d87484685424807421ca4b16b0b1a0763" + dependencies: + debug "2.X" + lazy-debug-legacy "0.0.X" + object-assign "4.1.0" + +debug@2, debug@2.X, debug@^2.1.1, debug@^2.2.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + +debug@2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +debug@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.1.3.tgz#ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e" + dependencies: + ms "0.7.0" + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + dependencies: + type-detect "0.1.1" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +depd@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa" + +depd@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +destroy@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.3.tgz#b433b4724e71fd8551d9885174851c5fc377e2c9" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-newline@2.X: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +dtrace-provider@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.6.0.tgz#0b078d5517937d873101452d9146737557b75e51" + dependencies: + nan "^2.0.8" + +dtrace-provider@~0.8: + version "0.8.0" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.0.tgz#fa95fbf67ed3ae3e97364f9664af7302e5ff5625" + dependencies: + nan "^2.3.3" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexify@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" + dependencies: + end-of-stream "1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ee-first@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.0.tgz#6a0d7c6221e490feefd92ec3f441c9ce8cd097f4" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +end-of-stream@1.0.0, end-of-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" + dependencies: + once "~1.3.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +engine.io-client@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.2.tgz#c38767547f2a7d184f5752f6f0ad501006703766" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.2.tgz#6b59be730b348c0125b0a4589de1c355abcf7a7e" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.1" + +error-ex@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + dependencies: + is-arrayish "^0.2.1" + +escape-html@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-regexp-component@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" + +escape-string-regexp@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.5.1.tgz#54c50de04ee42695562925ac566588291be7e9ea" + dependencies: + crc "3.2.1" + +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.1, expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +express@^4.8.5: + version "4.14.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.1" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "~2.2.0" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + finalhandler "0.5.0" + fresh "0.3.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.2" + qs "6.2.0" + range-parser "~1.2.0" + send "0.14.1" + serve-static "~1.11.1" + type-is "~1.6.13" + utils-merge "1.0.0" + vary "~1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@3, extend@^3.0.0, extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" + +extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +filled-array@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" + +finalhandler@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +findup-sync@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.2.1.tgz#e0a90a450075c49466ee513732057514b81e878c" + dependencies: + glob "~4.3.0" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +fined@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97" + dependencies: + expand-tilde "^1.2.1" + lodash.assignwith "^4.0.7" + lodash.isempty "^4.2.1" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.pick "^4.2.1" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + +for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +forever-agent@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.2.0.tgz#26f8bc26da6440e299cbdcfb69035c4f77a6e466" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime-types "~2.0.3" + +formatio@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" + dependencies: + samsam "~1.1" + +formidable@^1.0.14: + version "1.0.17" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +freeport@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/freeport/-/freeport-1.0.5.tgz#255e8ab84170c33ba85d990e821ae5f4a1a9bc5d" + +fresh@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.4.tgz#3582499206c9723714190edd74b4604feb4a614c" + +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "http://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "http://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@3.2.11: + version "3.2.11" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" + dependencies: + inherits "2" + minimatch "0.3" + +glob@^4.3.1, glob@~4.3.0: + version "4.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.3.5.tgz#80fbb08ca540f238acce5d11d1e9bc41e75173d3" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.15, glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.0.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +google-closure-compiler@^20160822.1.0: + version "20160822.2.0" + resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20160822.2.0.tgz#c5985b60439a165e9e58b1101d3d88d64ddda52e" + dependencies: + chalk "^1.0.0" + gulp-util "^3.0.7" + source-map "^0.5.3" + vinyl-fs "^2.2.1" + vinyl-sourcemaps-apply "^0.2.0" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +gulp-babel@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-6.1.2.tgz#7c0176e4ba3f244c60588a0c4b320a45d1adefce" + dependencies: + babel-core "^6.0.2" + gulp-util "^3.0.0" + object-assign "^4.0.1" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-rename@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-sourcemaps@^1.6.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.9.3.tgz#df37ac54992b220a670dec1a04bf85bf7ae5efb5" + dependencies: + acorn "4.X" + convert-source-map "1.X" + css "2.X" + debug-fabulous "0.0.X" + detect-newline "2.X" + graceful-fs "4.X" + source-map "0.X" + strip-bom "2.X" + through2 "2.X" + vinyl "1.X" + +gulp-util@^3.0.0, gulp-util@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^3.8.8: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +handle-thing@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +har-validator@^1.4.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-1.8.0.tgz#d83842b0eb4c435960aeb108a067a3aa94c0eeb2" + dependencies: + bluebird "^2.9.30" + chalk "^1.0.0" + commander "^2.8.1" + is-my-json-valid "^2.12.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-2.3.1.tgz#1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +http-deceiver@^1.2.4: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" + +http-signature@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.11.0.tgz#1796cf67a001ad5cd6849dca0991485f09089fe6" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +https-proxy-agent@1.0.0, https-proxy-agent@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" + +is-absolute@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-my-json-valid@^2.12.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "http://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jade@0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" + dependencies: + commander "0.6.1" + mkdirp "0.3.0" + +js-tokens@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +json-stable-stringify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +keep-alive-agent@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/keep-alive-agent/-/keep-alive-agent-0.0.1.tgz#44847ca394ce8d6b521ae85816bd64509942b385" + +kind-of@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" + dependencies: + is-buffer "^1.0.2" + +latest-version@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" + dependencies: + package-json "^2.0.0" + +launchpad@^0.5.0: + version "0.5.4" + resolved "https://registry.yarnpkg.com/launchpad/-/launchpad-0.5.4.tgz#a7c2532e21df8ef714ae00171e45630a191bbd21" + dependencies: + async "^2.0.1" + browserstack "^1.2.0" + debug "^2.2.0" + plist "^2.0.1" + q "^1.4.1" + restify "^4.0.0" + underscore "^1.8.3" + +lazy-debug-legacy@0.0.X: + version "0.0.1" + resolved "https://registry.yarnpkg.com/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz#537716c0776e4cf79e3ed1b621f7658c2911b1b1" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lazystream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-0.1.0.tgz#1b25d63c772a4c20f0a5ed0a9d77f484b6e16920" + dependencies: + readable-stream "~1.0.2" + +liftoff@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assignwith@^4.0.7: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isempty@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + +lodash.isequal@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.4.0.tgz#6295768e98e14dc15ce8d362ef6340db82852031" + +lodash.isplainobject@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash@3.9.3, lodash@~3.9.3: + version "3.9.3" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.9.3.tgz#0159e86832feffc6d61d852b12a953b99496bd32" + +lodash@^3.0.0, lodash@^3.0.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.14.0, lodash@^4.16.6, lodash@^4.2.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +lodash@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.2.0.tgz#4bf50a3243f9aeb0bac41a55d3d5990675a462fb" + +lolex@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31" + +loose-envify@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" + dependencies: + js-tokens "^2.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + +mime-db@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" + +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + +mime-types@~2.0.1, mime-types@~2.0.3: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + dependencies: + mime-db "~1.12.0" + +mime-types@~2.1.11, mime-types@~2.1.13: + version "2.1.13" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" + dependencies: + mime-db "~1.25.0" + +mime@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mime@1.3.4, mime@^1.2.11: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimatch@0.3: + version "0.3.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +"minimatch@2 || 3", minimatch@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.0.tgz#cdf225e8898f840a258ded44fc91776770afdc93" + +minimist@^1.1.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + dependencies: + minimist "0.0.8" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^2.2.4: + version "2.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" + dependencies: + commander "2.3.0" + debug "2.2.0" + diff "1.4.0" + escape-string-regexp "1.0.2" + glob "3.2.11" + growl "1.9.2" + jade "0.26.3" + mkdirp "0.5.1" + supports-color "1.2.0" + to-iso-string "0.0.2" + +moment@^2.10.6: + version "2.17.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" + +ms@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.0.tgz#865be94c2e7397ad8a57da6a633a6e2f30798b83" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +multer@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.2.1.tgz#759959c6c19f7fb03d0239f1df0b1ecec88473a3" + dependencies: + append-field "^0.1.0" + busboy "^0.2.11" + concat-stream "^1.5.0" + mkdirp "^0.5.1" + object-assign "^3.0.0" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.0.8, nan@^2.3.3: + version "2.5.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" + +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + +negotiator@0.6.1, negotiator@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-int64@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.3.3.tgz#2d6e6b2ece5de8588b43d88d1bc41b26cd1fa84d" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +node-uuid@^1.4.1, node-uuid@~1.4.0: + version "1.4.7" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +nodegit-promise@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" + dependencies: + asap "~2.0.3" + +nomnom@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.5.0.tgz#d767f5169325620eab2e087ef0c472e773db6461" + +oauth-sign@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.6.0.tgz#7dbeae44f6ca454e1f168451d630746735813ce3" + +object-assign@4.1.0, object-assign@^4.0.0, object-assign@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +obuf@^1.0.0, obuf@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-finished@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.2.1.tgz#5c85c1cc36299f78029653f667f27b6b99ebc029" + dependencies: + ee-first "1.1.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +package-json@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" + dependencies: + got "^5.0.0" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@^1.3.0, parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +plist@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b" + dependencies: + base64-js "1.1.2" + xmlbuilder "8.2.2" + xmldom "0.1.x" + +precond@0.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promisify-node@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/promisify-node/-/promisify-node-0.4.0.tgz#32803874ec411784e4786c339902a87a179a469c" + dependencies: + nodegit-promise "~4.0.0" + object-assign "^4.0.1" + +proxy-addr@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.1.1" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.4.1, q@~1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +qs@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + +qs@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +qs@~2.3.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" + +qs@~2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +range-parser@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@~2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.13" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +readable-stream@1.1.x, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26, readable-stream@~1.0.33: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +regenerator-runtime@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "http://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +registry-auth-token@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" + dependencies: + rc "^1.1.6" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request@2.51.0: + version "2.51.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.51.0.tgz#35d00bbecc012e55f907b1bd9e0dbd577bfef26e" + dependencies: + aws-sign2 "~0.5.0" + bl "~0.9.0" + caseless "~0.8.0" + combined-stream "~0.0.5" + forever-agent "~0.5.0" + form-data "~0.2.0" + hawk "1.1.1" + http-signature "~0.10.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + oauth-sign "~0.5.0" + qs "~2.3.1" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + tunnel-agent "~0.4.0" + +request@^2.53.0, request@~2.55.0: + version "2.55.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.55.0.tgz#d75c1cdf679d76bb100f9bffe1fe551b5c24e93d" + dependencies: + aws-sign2 "~0.5.0" + bl "~0.9.0" + caseless "~0.9.0" + combined-stream "~0.0.5" + forever-agent "~0.6.0" + form-data "~0.2.0" + har-validator "^1.4.0" + hawk "~2.3.0" + http-signature "~0.10.0" + isstream "~0.1.1" + json-stringify-safe "~5.0.0" + mime-types "~2.0.1" + node-uuid "~1.4.0" + oauth-sign "~0.6.0" + qs "~2.4.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + tunnel-agent "~0.4.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-url@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.0.0, resolve@^1.1.6, resolve@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" + +restify@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/restify/-/restify-4.3.0.tgz#03b67960d1d42a6dafcde3bd82fb882173a27678" + dependencies: + assert-plus "^0.1.5" + backoff "^2.4.0" + bunyan "^1.4.0" + csv "^0.4.0" + escape-regexp-component "^1.0.2" + formidable "^1.0.14" + http-signature "^0.11.0" + keep-alive-agent "^0.0.1" + lru-cache "^4.0.1" + mime "^1.2.11" + negotiator "^0.6.1" + node-uuid "^1.4.1" + once "^1.3.0" + qs "^6.2.1" + semver "^4.3.3" + spdy "^3.3.3" + tunnel-agent "^0.4.0" + vasync "1.6.3" + verror "^1.4.0" + optionalDependencies: + dtrace-provider "^0.6.0" + +rimraf@^2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + dependencies: + glob "^6.0.1" + +safe-json-stringify@~1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz#3cb6717660a086d07cb5bd9b7a6875bcf67bd05e" + +samsam@1.1.2, samsam@~1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" + +sauce-connect-launcher@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.2.0.tgz#6dc26611ef23428abe8b8f49e0044d7c752b8a6c" + dependencies: + adm-zip "~0.4.3" + async "^2.1.2" + https-proxy-agent "~1.0.0" + lodash "^4.16.6" + rimraf "^2.5.4" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selenium-standalone@^5.0.0: + version "5.9.1" + resolved "https://registry.yarnpkg.com/selenium-standalone/-/selenium-standalone-5.9.1.tgz#63bde8159bd47ffcb3d7bae19112d5d963b0df26" + dependencies: + async "1.2.1" + commander "2.6.0" + lodash "3.9.3" + minimist "1.1.0" + mkdirp "0.5.0" + progress "1.1.8" + request "2.51.0" + tar-stream "1.5.2" + urijs "1.16.1" + which "1.1.1" + yauzl "^2.5.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver@^4.1.0, semver@^4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +semver@^5.0.3, semver@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +send@0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.0" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.0" + +send@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.11.1.tgz#1beabfd42f9e2709f99028af3078ac12b47092d5" + dependencies: + debug "~2.1.1" + depd "~1.0.0" + destroy "1.0.3" + escape-html "1.0.1" + etag "~1.5.1" + fresh "0.2.4" + mime "1.2.11" + ms "0.7.0" + on-finished "~2.2.0" + range-parser "~1.0.2" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +serve-static@~1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.1" + +serve-waterfall@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/serve-waterfall/-/serve-waterfall-1.1.1.tgz#3ae633529eff5616afb1fbdfcf0169d0045c17e4" + dependencies: + parseurl "^1.3.0" + send "^0.11.1" + +server-destroy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +sinon-chai@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.8.0.tgz#432a9bbfd51a6fc00798f4d2526a829c060687ac" + +sinon@^1.11.1: + version "1.17.7" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.7.tgz#4542a4f49ba0c45c05eb2e9dd9d203e2b8efe0bf" + dependencies: + formatio "1.1.1" + lolex "1.3.2" + samsam "1.1.2" + util ">=0.10.3 <1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.2.tgz#39fdb0c3dd450e321b7e40cfd83612ec533dd644" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.2" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@^1.3.7: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.2.tgz#83bbbdf2e79263b378900da403e7843e05dc3b71" + dependencies: + debug "2.3.3" + engine.io "1.8.2" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.2" + socket.io-parser "2.3.1" + +source-map-resolve@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.3.0" + urix "~0.1.0" + +source-map-support@^0.4.2: + version "0.4.8" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.8.tgz#4871918d8a3af07289182e974e32844327b2e98b" + dependencies: + source-map "^0.5.3" + +source-map-url@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + +source-map@0.X, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@^0.1.38: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdy-transport@^2.0.15: + version "2.0.18" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.18.tgz#43fc9c56be2cccc12bb3e2754aa971154e836ea6" + dependencies: + debug "^2.2.0" + hpack.js "^2.1.6" + obuf "^1.1.0" + readable-stream "^2.0.1" + wbuf "^1.4.0" + +spdy@^3.3.3: + version "3.4.4" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.4.tgz#e0406407ca90ff01b553eb013505442649f5a819" + dependencies: + debug "^2.2.0" + handle-thing "^1.2.4" + http-deceiver "^1.2.4" + select-hose "^2.0.0" + spdy-transport "^2.0.15" + +stacky@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/stacky/-/stacky-1.3.1.tgz#3f117e5187b9a73d23f876d69f05c85b11804a12" + dependencies: + chalk "^1.1.1" + lodash "^3.0.0" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-transform@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-0.1.1.tgz#0a54a2b81eea88da55a50df2441cb63edc101c71" + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@2.X, strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-json-comments@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +supports-color@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tar-stream@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tar-stream@~1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.1.5.tgz#be9218c130c20029e107b0f967fb23de0579d13c" + dependencies: + bl "^0.9.0" + end-of-stream "^1.0.0" + readable-stream "~1.0.33" + xtend "^4.0.0" + +temp@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + +test-fixture@PolymerElements/test-fixture: + version "1.1.1" + resolved "https://codeload.github.com/PolymerElements/test-fixture/tar.gz/35210e359c82d778c75f13e798bdacf72261ab3f" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@2.X, through2@^2.0.0, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + +to-iso-string@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" + +tough-cookie@>=0.12.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tunnel-agent@^0.4.0, tunnel-agent@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + +type-is@^1.6.4, type-is@~1.6.13: + version "1.6.14" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.13" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "http://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +underscore.string@~3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.0.3.tgz#4617b8c1a250cf6e5064fbbb363d0fa96cf14552" + +underscore@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +update-notifier@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.6.3.tgz#776dec8daa13e962a341e8a1d98354306b67ae08" + dependencies: + boxen "^0.3.1" + chalk "^1.0.0" + configstore "^2.0.0" + is-npm "^1.0.0" + latest-version "^2.0.0" + semver-diff "^2.0.0" + +urijs@1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.16.1.tgz#859ad31890f5f9528727be89f1932c94fb4731e2" + +urix@^0.1.0, urix@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +"util@>=0.10.3 <1": + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +v8flags@^2.0.2: + version "2.0.11" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" + dependencies: + user-home "^1.1.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +vargs@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff" + +vary@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +vasync@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.3.tgz#4a69d7052a47f4ce85503d7641df1cbf40432a94" + dependencies: + verror "1.6.0" + +verror@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" + dependencies: + extsprintf "1.2.0" + +verror@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.9.0.tgz#107a8a2d14c33586fc4bb830057cd2d19ae2a6ee" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-fs@^2.2.1: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl-sourcemaps-apply@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@1.X, vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +wbuf@^1.1.0, wbuf@^1.4.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +wct-local@^2.0.8: + version "2.0.13" + resolved "https://registry.yarnpkg.com/wct-local/-/wct-local-2.0.13.tgz#3580aae6f97ec37f3f9d771d0a23430952f47e65" + dependencies: + "@types/chalk" "^0.4.28" + "@types/express" "^4.0.30" + "@types/freeport" "^1.0.19" + "@types/node" "^6.0.31" + "@types/which" "^1.0.27" + chalk "^1.1.1" + cleankill "^1.0.3" + freeport "^1.0.4" + launchpad "^0.5.0" + promisify-node "^0.4.0" + selenium-standalone "^5.0.0" + which "^1.0.8" + +wct-sauce@^1.8.2: + version "1.8.6" + resolved "https://registry.yarnpkg.com/wct-sauce/-/wct-sauce-1.8.6.tgz#d37ef52a007acb088288cebf9f94da218565d700" + dependencies: + chalk "^1.1.1" + cleankill "^1.0.0" + lodash "^3.0.1" + request "^2.53.0" + sauce-connect-launcher "^1.0.0" + temp "^0.8.1" + uuid "^2.0.1" + +wd@^0.3.8: + version "0.3.12" + resolved "https://registry.yarnpkg.com/wd/-/wd-0.3.12.tgz#3fb4f1d759f8c85dde5393d17334ffe03e9bb329" + dependencies: + archiver "~0.14.0" + async "~1.0.0" + lodash "~3.9.3" + q "~1.4.1" + request "~2.55.0" + underscore.string "~3.0.3" + vargs "~0.1.0" + +web-component-tester@^4.0.1: + version "4.3.6" + resolved "https://registry.yarnpkg.com/web-component-tester/-/web-component-tester-4.3.6.tgz#1a9bd83df8f38a76180ed8bad0b3e1b21910640c" + dependencies: + accessibility-developer-tools "^2.10.0" + async "^1.5.0" + body-parser "^1.14.2" + chai "^3.2.0" + chalk "^1.1.1" + cleankill "^1.0.0" + express "^4.8.5" + findup-sync "^0.2.1" + glob "^5.0.15" + lodash "^3.0.1" + mocha "^2.2.4" + multer "^1.1.0" + nomnom "^1.8.1" + promisify-node "^0.4.0" + resolve "^1.0.0" + send "^0.11.1" + serve-waterfall "^1.1.0" + server-destroy "^1.0.1" + sinon "^1.11.1" + sinon-chai "^2.6.0" + socket.io "^1.3.7" + stacky "^1.3.1" + test-fixture PolymerElements/test-fixture + wd "^0.3.8" + optionalDependencies: + update-notifier "^0.6.0" + wct-local "^2.0.8" + wct-sauce "^1.8.2" + +which@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.1.1.tgz#9ce512459946166e12c083f08ec073380fc8cbbb" + dependencies: + is-absolute "^0.1.7" + +which@^1.0.8, which@^1.2.12: + version "1.2.12" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + dependencies: + isexe "^1.1.1" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^1.1.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + dependencies: + os-homedir "^1.0.0" + +xmlbuilder@8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + +xmldom@0.1.x: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yallist@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + +yauzl@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.7.0.tgz#e21d847868b496fc29eaec23ee87fdd33e9b2bce" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +zip-stream@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.5.2.tgz#32dcbc506d0dab4d21372625bd7ebaac3c2fff56" + dependencies: + compress-commons "~0.2.0" + lodash "~3.2.0" + readable-stream "~1.0.26"