From 1e5ea94221173fa7094216e5e8f8f351395747dd Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Mon, 9 Oct 2017 12:42:16 -0700 Subject: [PATCH] Clean up closure externs Generated closure externs substantially reduced in size with newer generator --- externs/closure-types.js | 2182 +++------------------- externs/polymer-closure-types.html | 157 -- externs/polymer-externs.js | 4 +- externs/polymer-internal-shared-types.js | 158 ++ externs/polymer-internal-types.html | 11 + gulpfile.js | 44 +- package-lock.json | 1593 ++++++++++------ package.json | 16 +- 8 files changed, 1538 insertions(+), 2627 deletions(-) delete mode 100644 externs/polymer-closure-types.html create mode 100644 externs/polymer-internal-shared-types.js create mode 100644 externs/polymer-internal-types.html diff --git a/externs/closure-types.js b/externs/closure-types.js index ee8285c794..8c730130e0 100644 --- a/externs/closure-types.js +++ b/externs/closure-types.js @@ -1,5 +1,5 @@ /** - * @fileoverview Closure types for Polymer mixins + * @fileoverview Generated typings for Polymer mixins * @externs * * @license @@ -9,11 +9,8 @@ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt * 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 - * - * This file is generated, do not edit manually */ -/* eslint-disable no-unused-vars, strict */ - +/* eslint-disable */ /** * @interface */ @@ -164,6 +161,7 @@ Polymer_PropertyAccessors.prototype._propertiesChanged = function(currentProps, */ Polymer_PropertyAccessors.prototype._shouldPropertyChange = function(property, value, old){}; /** +* @return {undefined} */ Polymer_PropertyAccessors.createPropertiesForAttributes = function(){}; /** @@ -204,9 +202,9 @@ Polymer_TemplateStamp.prototype._removeEventListenerFromNode = function(node, ev */ Polymer_TemplateStamp._parseTemplate = function(template, outerTemplateInfo){}; /** -* @param {*} template -* @param {*} templateInfo -* @param {*} nodeInfo +* @param {*} template +* @param {*} templateInfo +* @param {*} nodeInfo */ Polymer_TemplateStamp._parseTemplateContent = function(template, templateInfo, nodeInfo){}; /** @@ -324,33 +322,6 @@ Polymer_PropertyEffects.prototype.__templateInfo; */ Polymer_PropertyEffects.prototype._stampTemplate = function(template){}; /** -* @param {Node} node Node to add listener on -* @param {string} eventName Name of event -* @param {string} methodName Name of method -* @param {*=} context Context the method will be called on (defaults - to `node`) -* @return {Function} -*/ -Polymer_PropertyEffects.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){}; -/** -* @param {Node} node Node to add event listener to -* @param {string} eventName Name of event -* @param {Function} handler Listener function to add -*/ -Polymer_PropertyEffects.prototype._addEventListenerToNode = function(node, eventName, handler){}; -/** -* @param {Node} node Node to remove event listener from -* @param {string} eventName Name of event -* @param {Function} handler Listener function to remove -*/ -Polymer_PropertyEffects.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; -/** -* @param {string} name Name of attribute that changed -* @param {?string} old Old attribute value -* @param {?string} value New attribute value -*/ -Polymer_PropertyEffects.prototype.attributeChangedCallback = function(name, old, value){}; -/** * @return {undefined} */ Polymer_PropertyEffects.prototype._initializeProperties = function(){}; @@ -365,51 +336,6 @@ Polymer_PropertyEffects.prototype._initializeProtoProperties = function(props){} */ Polymer_PropertyEffects.prototype._initializeInstanceProperties = function(props){}; /** -* @param {string} attribute Name of attribute to ensure is set. -* @param {string} value of the attribute. -*/ -Polymer_PropertyEffects.prototype._ensureAttribute = function(attribute, value){}; -/** -* @param {string} attribute Name of attribute to deserialize. -* @param {?string} value of the attribute. -* @param {*=} type type to deserialize to. -*/ -Polymer_PropertyEffects.prototype._attributeToProperty = function(attribute, value, type){}; -/** -* @param {string} property Property name to reflect. -* @param {string=} attribute Attribute name to reflect. -* @param {*=} value Property value to refect. -*/ -Polymer_PropertyEffects.prototype._propertyToAttribute = function(property, attribute, value){}; -/** -* @param {Element} node Element to set attribute to. -* @param {*} value Value to serialize. -* @param {string} attribute Attribute name to serialize to. -*/ -Polymer_PropertyEffects.prototype._valueToNodeAttribute = function(node, value, attribute){}; -/** -* @param {*} value Property value to serialize. -* @return {(string|undefined)} -*/ -Polymer_PropertyEffects.prototype._serializeValue = function(value){}; -/** -* @param {?string} value Attribute value to deserialize. -* @param {*=} type Type to deserialize the string to. -* @return {*} -*/ -Polymer_PropertyEffects.prototype._deserializeValue = function(value, type){}; -/** -* @param {string} property Name of the property -* @param {boolean=} readOnly When true, no setter is created; the - protected `_setProperty` function must be used to set the property -*/ -Polymer_PropertyEffects.prototype._createPropertyAccessor = function(property, readOnly){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_PropertyEffects.prototype._hasAccessor = function(property){}; -/** * @override */ Polymer_PropertyEffects.prototype._setProperty = function(property, value){}; @@ -423,23 +349,10 @@ Polymer_PropertyEffects.prototype._setProperty = function(property, value){}; */ Polymer_PropertyEffects.prototype._setPendingProperty = function(property, value, shouldNotify){}; /** -* @param {string} prop Property name -* @return {boolean} -*/ -Polymer_PropertyEffects.prototype._isPropertyPending = function(prop){}; -/** * @override */ Polymer_PropertyEffects.prototype._invalidateProperties = function(){}; /** -* @return {undefined} -*/ -Polymer_PropertyEffects.prototype._enableProperties = function(){}; -/** -* @return {undefined} -*/ -Polymer_PropertyEffects.prototype._flushProperties = function(){}; -/** * @override */ Polymer_PropertyEffects.prototype.ready = function(){}; @@ -448,13 +361,6 @@ Polymer_PropertyEffects.prototype.ready = function(){}; */ Polymer_PropertyEffects.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){}; /** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} -*/ -Polymer_PropertyEffects.prototype._shouldPropertyChange = function(property, value, old){}; -/** * @param {string} property Property that should trigger the effect * @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES * @param {Object=} effect Effect metadata object @@ -589,7 +495,7 @@ Polymer_PropertyEffects.prototype.get = function(path, root){}; Polymer_PropertyEffects.prototype.set = function(path, value, root){}; /** * @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items +* @param {...*} items * @return {number} */ Polymer_PropertyEffects.prototype.push = function(path, items){}; @@ -602,7 +508,7 @@ Polymer_PropertyEffects.prototype.pop = function(path){}; * @param {(string|!Array.<(string|number)>)} path Path to array. * @param {number} start Index from which to start removing/inserting. * @param {number} deleteCount Number of items to remove. -* @param {...*} items +* @param {...*} items * @return {Array} */ Polymer_PropertyEffects.prototype.splice = function(path, start, deleteCount, items){}; @@ -613,7 +519,7 @@ Polymer_PropertyEffects.prototype.splice = function(path, start, deleteCount, it Polymer_PropertyEffects.prototype.shift = function(path){}; /** * @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items +* @param {...*} items * @return {number} */ Polymer_PropertyEffects.prototype.unshift = function(path, items){}; @@ -673,19 +579,6 @@ Polymer_PropertyEffects.prototype._bindTemplate = function(template, instanceBin */ Polymer_PropertyEffects.prototype._removeBoundDom = function(dom){}; /** -* @param {!HTMLTemplateElement} template Template to parse -* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer - template, for parsing nested templates -* @return {!TemplateInfo} -*/ -Polymer_PropertyEffects._parseTemplate = function(template, outerTemplateInfo){}; -/** -* @param {*} template -* @param {*} templateInfo -* @param {*} nodeInfo -*/ -Polymer_PropertyEffects._parseTemplateContent = function(template, templateInfo, nodeInfo){}; -/** * @override * @param {Node} node Node to parse * @param {TemplateInfo} templateInfo Template metadata for current template @@ -694,12 +587,6 @@ Polymer_PropertyEffects._parseTemplateContent = function(template, templateInfo, */ Polymer_PropertyEffects._parseTemplateNode = function(node, templateInfo, nodeInfo){}; /** -* @param {Node} root Root node whose `childNodes` will be parsed -* @param {!TemplateInfo} templateInfo Template metadata for current template -* @param {!NodeInfo} nodeInfo Node metadata for current template. -*/ -Polymer_PropertyEffects._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; -/** * @override * @param {Node} node Node to parse * @param {TemplateInfo} templateInfo Template metadata for current template @@ -708,31 +595,16 @@ Polymer_PropertyEffects._parseTemplateChildNodes = function(root, templateInfo, */ Polymer_PropertyEffects._parseTemplateNestedTemplate = function(node, templateInfo, nodeInfo){}; /** -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template. -* @return {boolean} -*/ -Polymer_PropertyEffects._parseTemplateNodeAttributes = function(node, templateInfo, nodeInfo){}; -/** * @override * @param {Element} node Node to parse * @param {TemplateInfo} templateInfo Template metadata for current template * @param {NodeInfo} nodeInfo Node metadata for current template node -* @param {*} name -* @param {*} value +* @param {string} name Attribute name +* @param {string} value Attribute value * @return {boolean} */ Polymer_PropertyEffects._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){}; /** -* @param {HTMLTemplateElement} template Template to retrieve `content` for -* @return {DocumentFragment} -*/ -Polymer_PropertyEffects._contentForTemplate = function(template){}; -/** -*/ -Polymer_PropertyEffects.createPropertiesForAttributes = function(){}; -/** * @param {string} property Property that should trigger the effect * @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES * @param {Object=} effect Effect metadata object @@ -824,33 +696,6 @@ Polymer_ElementMixin.prototype.root; /** @type {!Object.} */ Polymer_ElementMixin.prototype.$; -/** -* @override -* @param {!HTMLTemplateElement} template Template to stamp -* @return {!StampedTemplate} -*/ -Polymer_ElementMixin.prototype._stampTemplate = function(template){}; -/** -* @param {Node} node Node to add listener on -* @param {string} eventName Name of event -* @param {string} methodName Name of method -* @param {*=} context Context the method will be called on (defaults - to `node`) -* @return {Function} -*/ -Polymer_ElementMixin.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){}; -/** -* @param {Node} node Node to add event listener to -* @param {string} eventName Name of event -* @param {Function} handler Listener function to add -*/ -Polymer_ElementMixin.prototype._addEventListenerToNode = function(node, eventName, handler){}; -/** -* @param {Node} node Node to remove event listener from -* @param {string} eventName Name of event -* @param {Function} handler Listener function to remove -*/ -Polymer_ElementMixin.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; /** * @override * @param {string} name Name of attribute. @@ -864,1895 +709,464 @@ Polymer_ElementMixin.prototype.attributeChangedCallback = function(name, old, va Polymer_ElementMixin.prototype._initializeProperties = function(){}; /** * @override -* @param {Object} props Properties to initialize on the prototype */ -Polymer_ElementMixin.prototype._initializeProtoProperties = function(props){}; +Polymer_ElementMixin.prototype.ready = function(){}; /** * @override -* @param {Object} props Properties to initialize on the instance */ -Polymer_ElementMixin.prototype._initializeInstanceProperties = function(props){}; +Polymer_ElementMixin.prototype._readyClients = function(){}; /** -* @param {string} attribute Name of attribute to ensure is set. -* @param {string} value of the attribute. +* @return {undefined} */ -Polymer_ElementMixin.prototype._ensureAttribute = function(attribute, value){}; +Polymer_ElementMixin.prototype.connectedCallback = function(){}; /** -* @param {string} attribute Name of attribute to deserialize. -* @param {?string} value of the attribute. -* @param {*=} type type to deserialize to. +* @return {undefined} */ -Polymer_ElementMixin.prototype._attributeToProperty = function(attribute, value, type){}; +Polymer_ElementMixin.prototype.disconnectedCallback = function(){}; /** -* @param {string} property Property name to reflect. -* @param {string=} attribute Attribute name to reflect. -* @param {*=} value Property value to refect. +* @param {StampedTemplate} dom to attach to the element. +* @return {ShadowRoot} */ -Polymer_ElementMixin.prototype._propertyToAttribute = function(property, attribute, value){}; +Polymer_ElementMixin.prototype._attachDom = function(dom){}; /** -* @param {Element} node Element to set attribute to. -* @param {*} value Value to serialize. -* @param {string} attribute Attribute name to serialize to. +* @param {Object=} properties Bag of custom property key/values to + apply to this element. */ -Polymer_ElementMixin.prototype._valueToNodeAttribute = function(node, value, attribute){}; +Polymer_ElementMixin.prototype.updateStyles = function(properties){}; /** -* @param {*} value Property value to serialize. -* @return {(string|undefined)} +* @param {string} url URL to resolve. +* @param {string=} base Optional base URL to resolve against, defaults +to the element's `importPath` +* @return {string} */ -Polymer_ElementMixin.prototype._serializeValue = function(value){}; +Polymer_ElementMixin.prototype.resolveUrl = function(url, base){}; /** -* @param {?string} value Attribute value to deserialize. -* @param {*=} type Type to deserialize the string to. -* @return {*} +* @override */ -Polymer_ElementMixin.prototype._deserializeValue = function(value, type){}; +Polymer_ElementMixin._parseTemplateContent = function(template, templateInfo, nodeInfo){}; /** -* @param {string} property Name of the property -* @param {boolean=} readOnly When true, no setter is created; the - protected `_setProperty` function must be used to set the property +* @return {undefined} */ -Polymer_ElementMixin.prototype._createPropertyAccessor = function(property, readOnly){}; +Polymer_ElementMixin.finalize = function(){}; /** -* @param {string} property Property name -* @return {boolean} +* @interface */ -Polymer_ElementMixin.prototype._hasAccessor = function(property){}; +function Polymer_GestureEventListeners(){} /** -* @override +* @param {*} node +* @param {*} eventName +* @param {*} handler */ -Polymer_ElementMixin.prototype._setProperty = function(property, value){}; +Polymer_GestureEventListeners.prototype._addEventListenerToNode = function(node, eventName, handler){}; /** -* @override -* @param {string} property Name of the property -* @param {*} value Value to set -* @param {boolean=} shouldNotify True if property should fire notification - event (applies only for `notify: true` properties) -* @return {boolean} +* @param {*} node +* @param {*} eventName +* @param {*} handler */ -Polymer_ElementMixin.prototype._setPendingProperty = function(property, value, shouldNotify){}; +Polymer_GestureEventListeners.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; /** -* @param {string} prop Property name -* @return {boolean} +* @interface +* @extends {Polymer_ElementMixin} +* @extends {Polymer_GestureEventListeners} */ -Polymer_ElementMixin.prototype._isPropertyPending = function(prop){}; +function Polymer_LegacyElementMixin(){} +/** @type {boolean} */ +Polymer_LegacyElementMixin.prototype.isAttached; + +/** @type {WeakMap.>} */ +Polymer_LegacyElementMixin.prototype.__boundListeners; + +/** @type {Object.} */ +Polymer_LegacyElementMixin.prototype._debouncers; + /** * @override +* @param {string} name Name of attribute. +* @param {?string} old Old value of attribute. +* @param {?string} value Current value of attribute. */ -Polymer_ElementMixin.prototype._invalidateProperties = function(){}; +Polymer_LegacyElementMixin.prototype.attributeChangedCallback = function(name, old, value){}; /** -* @return {undefined} +* @override */ -Polymer_ElementMixin.prototype._enableProperties = function(){}; +Polymer_LegacyElementMixin.prototype._initializeProperties = function(){}; /** -* @return {undefined} +* @override */ -Polymer_ElementMixin.prototype._flushProperties = function(){}; +Polymer_LegacyElementMixin.prototype.ready = function(){}; /** * @override */ -Polymer_ElementMixin.prototype.ready = function(){}; +Polymer_LegacyElementMixin.prototype.connectedCallback = function(){}; /** * @override */ -Polymer_ElementMixin.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){}; +Polymer_LegacyElementMixin.prototype.disconnectedCallback = function(){}; /** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} +* @return {undefined} */ -Polymer_ElementMixin.prototype._shouldPropertyChange = function(property, value, old){}; +Polymer_LegacyElementMixin.prototype.created = function(){}; /** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object +* @return {undefined} */ -Polymer_ElementMixin.prototype._addPropertyEffect = function(property, type, effect){}; +Polymer_LegacyElementMixin.prototype.attached = function(){}; /** -* @param {string} property Property the effect was associated with -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object to remove +* @return {undefined} */ -Polymer_ElementMixin.prototype._removePropertyEffect = function(property, type, effect){}; +Polymer_LegacyElementMixin.prototype.detached = function(){}; /** -* @param {string} property Property name -* @param {string=} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @return {boolean} +* @param {string} name Name of attribute. +* @param {?string} old Old value of attribute. +* @param {?string} value Current value of attribute. */ -Polymer_ElementMixin.prototype._hasPropertyEffect = function(property, type){}; +Polymer_LegacyElementMixin.prototype.attributeChanged = function(name, old, value){}; /** -* @param {string} property Property name -* @return {boolean} +* @return {undefined} */ -Polymer_ElementMixin.prototype._hasReadOnlyEffect = function(property){}; +Polymer_LegacyElementMixin.prototype._registered = function(){}; /** -* @param {string} property Property name -* @return {boolean} +* @return {undefined} */ -Polymer_ElementMixin.prototype._hasNotifyEffect = function(property){}; +Polymer_LegacyElementMixin.prototype._ensureAttributes = function(){}; /** -* @param {string} property Property name -* @return {boolean} +* @return {undefined} */ -Polymer_ElementMixin.prototype._hasReflectEffect = function(property){}; +Polymer_LegacyElementMixin.prototype._applyListeners = function(){}; /** -* @param {string} property Property name -* @return {boolean} +* @param {*} value Value to deserialize +* @return {(string|undefined)} */ -Polymer_ElementMixin.prototype._hasComputedEffect = function(property){}; +Polymer_LegacyElementMixin.prototype.serialize = function(value){}; /** -* @param {(string|!Array.<(number|string)>)} path Path to set -* @param {*} value Value to set -* @param {boolean=} shouldNotify Set to true if this change should - cause a property notification event dispatch -* @param {boolean=} isPathNotification If the path being set is a path - notification of an already changed value, as opposed to a request - to set and notify the change. In the latter `false` case, a dirty - check is performed and then the value is set to the path before - enqueuing the pending property change. -* @return {boolean} -*/ -Polymer_ElementMixin.prototype._setPendingPropertyOrPath = function(path, value, shouldNotify, isPathNotification){}; -/** -* @param {Node} node The node to set a property on -* @param {string} prop The property to set -* @param {*} value The value to set -*/ -Polymer_ElementMixin.prototype._setUnmanagedPropertyToNode = function(node, prop, value){}; -/** -* @param {Object} client PropertyEffects client to enqueue -*/ -Polymer_ElementMixin.prototype._enqueueClient = function(client){}; -/** -* @return {undefined} -*/ -Polymer_ElementMixin.prototype._flushClients = function(){}; -/** -* @override -*/ -Polymer_ElementMixin.prototype._readyClients = function(){}; -/** -* @param {Object} props Bag of one or more key-value pairs whose key is - a property and value is the new value to set for that property. -* @param {boolean=} setReadOnly When true, any private values set in - `props` will be set. By default, `setProperties` will not set - `readOnly: true` root properties. -*/ -Polymer_ElementMixin.prototype.setProperties = function(props, setReadOnly){}; -/** -* @param {Object} changedProps Bag of changed properties -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -*/ -Polymer_ElementMixin.prototype._propagatePropertyChanges = function(changedProps, oldProps, hasPaths){}; -/** -* @param {(string|!Array.<(string|number)>)} to Target path to link. -* @param {(string|!Array.<(string|number)>)} from Source path to link. -*/ -Polymer_ElementMixin.prototype.linkPaths = function(to, from){}; -/** -* @param {(string|!Array.<(string|number)>)} path Target path to unlink. -*/ -Polymer_ElementMixin.prototype.unlinkPaths = function(path){}; -/** -* @param {string} path Path that should be notified. -* @param {Array} splices Array of splice records indicating ordered - changes that occurred to the array. Each record should have the - following fields: - * index: index at which the change occurred - * removed: array of items that were removed from this index - * addedCount: number of new items added at this index - * object: a reference to the array in question - * type: the string literal 'splice' - - Note that splice records _must_ be normalized such that they are - reported in index order (raw results from `Object.observe` are not - ordered and must be normalized/merged before notifying). -*/ -Polymer_ElementMixin.prototype.notifySplices = function(path, splices){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to read. The path may be specified as a string (e.g. `foo.bar.baz`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `users.12.name` or `['users', 12, 'name']`). -* @param {Object=} root Root object from which the path is evaluated. -* @return {*} -*/ -Polymer_ElementMixin.prototype.get = function(path, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to write. The path may be specified as a string (e.g. `'foo.bar.baz'`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `'users.12.name'` or `['users', 12, 'name']`). -* @param {*} value Value to set at the specified path. -* @param {Object=} root Root object from which the path is evaluated. - When specified, no notification will occur. -*/ -Polymer_ElementMixin.prototype.set = function(path, value, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} -*/ -Polymer_ElementMixin.prototype.push = function(path, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_ElementMixin.prototype.pop = function(path){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {number} start Index from which to start removing/inserting. -* @param {number} deleteCount Number of items to remove. -* @param {...*} items -* @return {Array} -*/ -Polymer_ElementMixin.prototype.splice = function(path, start, deleteCount, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_ElementMixin.prototype.shift = function(path){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} -*/ -Polymer_ElementMixin.prototype.unshift = function(path, items){}; -/** -* @param {string} path Path that should be notified. -* @param {*=} value Value at the path (optional). -*/ -Polymer_ElementMixin.prototype.notifyPath = function(path, value){}; -/** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. -*/ -Polymer_ElementMixin.prototype._createReadOnlyProperty = function(property, protectedSetter){}; -/** -* @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. -*/ -Polymer_ElementMixin.prototype._createPropertyObserver = function(property, methodName, dynamicFn){}; -/** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_ElementMixin.prototype._createMethodObserver = function(expression, dynamicFn){}; -/** -* @param {string} property Property name -*/ -Polymer_ElementMixin.prototype._createNotifyingProperty = function(property){}; -/** -* @param {string} property Property name -*/ -Polymer_ElementMixin.prototype._createReflectedProperty = function(property){}; -/** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_ElementMixin.prototype._createComputedProperty = function(property, expression, dynamicFn){}; -/** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @param {boolean=} instanceBinding When false (default), performs - "prototypical" binding of the template and overwrites any previously - bound template for the class. When true (as passed from - `_stampTemplate`), the template info is instanced and linked into - the list of bound templates. -* @return {!TemplateInfo} -*/ -Polymer_ElementMixin.prototype._bindTemplate = function(template, instanceBinding){}; -/** -* @param {!StampedTemplate} dom DocumentFragment previously returned - from `_stampTemplate` associated with the nodes to be removed -*/ -Polymer_ElementMixin.prototype._removeBoundDom = function(dom){}; -/** -* @return {undefined} -*/ -Polymer_ElementMixin.prototype.connectedCallback = function(){}; -/** -* @return {undefined} -*/ -Polymer_ElementMixin.prototype.disconnectedCallback = function(){}; -/** -* @param {StampedTemplate} dom to attach to the element. -* @return {ShadowRoot} -*/ -Polymer_ElementMixin.prototype._attachDom = function(dom){}; -/** -* @param {Object=} properties Bag of custom property key/values to - apply to this element. -*/ -Polymer_ElementMixin.prototype.updateStyles = function(properties){}; -/** -* @param {string} url URL to resolve. -* @param {string=} base Optional base URL to resolve against, defaults -to the element's `importPath` -* @return {string} -*/ -Polymer_ElementMixin.prototype.resolveUrl = function(url, base){}; -/** -* @param {!HTMLTemplateElement} template Template to parse -* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer - template, for parsing nested templates -* @return {!TemplateInfo} -*/ -Polymer_ElementMixin._parseTemplate = function(template, outerTemplateInfo){}; -/** -* @override -*/ -Polymer_ElementMixin._parseTemplateContent = function(template, templateInfo, nodeInfo){}; -/** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} -*/ -Polymer_ElementMixin._parseTemplateNode = function(node, templateInfo, nodeInfo){}; -/** -* @param {Node} root Root node whose `childNodes` will be parsed -* @param {!TemplateInfo} templateInfo Template metadata for current template -* @param {!NodeInfo} nodeInfo Node metadata for current template. -*/ -Polymer_ElementMixin._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; -/** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} -*/ -Polymer_ElementMixin._parseTemplateNestedTemplate = function(node, templateInfo, nodeInfo){}; -/** -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template. -* @return {boolean} -*/ -Polymer_ElementMixin._parseTemplateNodeAttributes = function(node, templateInfo, nodeInfo){}; -/** -* @override -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @param {*} name -* @param {*} value -* @return {boolean} -*/ -Polymer_ElementMixin._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){}; -/** -* @param {HTMLTemplateElement} template Template to retrieve `content` for -* @return {DocumentFragment} -*/ -Polymer_ElementMixin._contentForTemplate = function(template){}; -/** -*/ -Polymer_ElementMixin.createPropertiesForAttributes = function(){}; -/** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object -*/ -Polymer_ElementMixin.addPropertyEffect = function(property, type, effect){}; -/** -* @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. -*/ -Polymer_ElementMixin.createPropertyObserver = function(property, methodName, dynamicFn){}; -/** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_ElementMixin.createMethodObserver = function(expression, dynamicFn){}; -/** -* @param {string} property Property name -*/ -Polymer_ElementMixin.createNotifyingProperty = function(property){}; -/** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. -*/ -Polymer_ElementMixin.createReadOnlyProperty = function(property, protectedSetter){}; -/** -* @param {string} property Property name -*/ -Polymer_ElementMixin.createReflectedProperty = function(property){}; -/** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating whether - method names should be included as a dependency to the effect. -*/ -Polymer_ElementMixin.createComputedProperty = function(property, expression, dynamicFn){}; -/** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @return {Object} -*/ -Polymer_ElementMixin.bindTemplate = function(template){}; -/** -* @param {Object} templateInfo Template metadata to add effect to -* @param {string} prop Property that should trigger the effect -* @param {Object=} effect Effect metadata object -*/ -Polymer_ElementMixin._addTemplatePropertyEffect = function(templateInfo, prop, effect){}; -/** -* @param {string} text Text to parse from attribute or textContent -* @param {Object} templateInfo Current template metadata -* @return {Array.} -*/ -Polymer_ElementMixin._parseBindings = function(text, templateInfo){}; -/** -* @param {this} inst Element that should be used as scope for - binding dependencies -* @param {BindingPart} part Binding part metadata -* @param {string} path Property/path that triggered this effect -* @param {Object} props Bag of current property changes -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -* @return {*} -*/ -Polymer_ElementMixin._evaluateBinding = function(inst, part, path, props, oldProps, hasPaths){}; -/** -*/ -Polymer_ElementMixin.finalize = function(){}; -/** -* @interface -*/ -function Polymer_GestureEventListeners(){} -/** -* @param {*} node -* @param {*} eventName -* @param {*} handler -*/ -Polymer_GestureEventListeners.prototype._addEventListenerToNode = function(node, eventName, handler){}; -/** -* @param {*} node -* @param {*} eventName -* @param {*} handler -*/ -Polymer_GestureEventListeners.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; -/** -* @interface -* @extends {Polymer_ElementMixin} -* @extends {Polymer_GestureEventListeners} -*/ -function Polymer_LegacyElementMixin(){} -/** @type {boolean} */ -Polymer_LegacyElementMixin.prototype.isAttached; - -/** @type {WeakMap.>} */ -Polymer_LegacyElementMixin.prototype.__boundListeners; - -/** @type {Object.} */ -Polymer_LegacyElementMixin.prototype._debouncers; - -/** -* @override -* @param {!HTMLTemplateElement} template Template to stamp -* @return {!StampedTemplate} -*/ -Polymer_LegacyElementMixin.prototype._stampTemplate = function(template){}; -/** -* @param {Node} node Node to add listener on -* @param {string} eventName Name of event -* @param {string} methodName Name of method -* @param {*=} context Context the method will be called on (defaults - to `node`) -* @return {Function} -*/ -Polymer_LegacyElementMixin.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){}; -/** -* @param {*} node -* @param {*} eventName -* @param {*} handler -*/ -Polymer_LegacyElementMixin.prototype._addEventListenerToNode = function(node, eventName, handler){}; -/** -* @param {*} node -* @param {*} eventName -* @param {*} handler -*/ -Polymer_LegacyElementMixin.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; -/** -* @override -* @param {string} name Name of attribute. -* @param {?string} old Old value of attribute. -* @param {?string} value Current value of attribute. -*/ -Polymer_LegacyElementMixin.prototype.attributeChangedCallback = function(name, old, value){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype._initializeProperties = function(){}; -/** -* @override -* @param {Object} props Properties to initialize on the prototype -*/ -Polymer_LegacyElementMixin.prototype._initializeProtoProperties = function(props){}; -/** -* @override -* @param {Object} props Properties to initialize on the instance -*/ -Polymer_LegacyElementMixin.prototype._initializeInstanceProperties = function(props){}; -/** -* @param {string} attribute Name of attribute to ensure is set. -* @param {string} value of the attribute. -*/ -Polymer_LegacyElementMixin.prototype._ensureAttribute = function(attribute, value){}; -/** -* @param {string} attribute Name of attribute to deserialize. -* @param {?string} value of the attribute. -* @param {*=} type type to deserialize to. -*/ -Polymer_LegacyElementMixin.prototype._attributeToProperty = function(attribute, value, type){}; -/** -* @param {string} property Property name to reflect. -* @param {string=} attribute Attribute name to reflect. -* @param {*=} value Property value to refect. -*/ -Polymer_LegacyElementMixin.prototype._propertyToAttribute = function(property, attribute, value){}; -/** -* @param {Element} node Element to set attribute to. -* @param {*} value Value to serialize. -* @param {string} attribute Attribute name to serialize to. -*/ -Polymer_LegacyElementMixin.prototype._valueToNodeAttribute = function(node, value, attribute){}; -/** -* @param {*} value Property value to serialize. -* @return {(string|undefined)} -*/ -Polymer_LegacyElementMixin.prototype._serializeValue = function(value){}; -/** -* @param {?string} value Attribute value to deserialize. -* @param {*=} type Type to deserialize the string to. -* @return {*} -*/ -Polymer_LegacyElementMixin.prototype._deserializeValue = function(value, type){}; -/** -* @param {string} property Name of the property -* @param {boolean=} readOnly When true, no setter is created; the - protected `_setProperty` function must be used to set the property -*/ -Polymer_LegacyElementMixin.prototype._createPropertyAccessor = function(property, readOnly){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasAccessor = function(property){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype._setProperty = function(property, value){}; -/** -* @override -* @param {string} property Name of the property -* @param {*} value Value to set -* @param {boolean=} shouldNotify True if property should fire notification - event (applies only for `notify: true` properties) -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._setPendingProperty = function(property, value, shouldNotify){}; -/** -* @param {string} prop Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._isPropertyPending = function(prop){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype._invalidateProperties = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._enableProperties = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._flushProperties = function(){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype.ready = function(){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){}; -/** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._shouldPropertyChange = function(property, value, old){}; -/** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object -*/ -Polymer_LegacyElementMixin.prototype._addPropertyEffect = function(property, type, effect){}; -/** -* @param {string} property Property the effect was associated with -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object to remove -*/ -Polymer_LegacyElementMixin.prototype._removePropertyEffect = function(property, type, effect){}; -/** -* @param {string} property Property name -* @param {string=} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasPropertyEffect = function(property, type){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasReadOnlyEffect = function(property){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasNotifyEffect = function(property){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasReflectEffect = function(property){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._hasComputedEffect = function(property){}; -/** -* @param {(string|!Array.<(number|string)>)} path Path to set -* @param {*} value Value to set -* @param {boolean=} shouldNotify Set to true if this change should - cause a property notification event dispatch -* @param {boolean=} isPathNotification If the path being set is a path - notification of an already changed value, as opposed to a request - to set and notify the change. In the latter `false` case, a dirty - check is performed and then the value is set to the path before - enqueuing the pending property change. -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype._setPendingPropertyOrPath = function(path, value, shouldNotify, isPathNotification){}; -/** -* @param {Node} node The node to set a property on -* @param {string} prop The property to set -* @param {*} value The value to set -*/ -Polymer_LegacyElementMixin.prototype._setUnmanagedPropertyToNode = function(node, prop, value){}; -/** -* @param {Object} client PropertyEffects client to enqueue -*/ -Polymer_LegacyElementMixin.prototype._enqueueClient = function(client){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._flushClients = function(){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype._readyClients = function(){}; -/** -* @param {Object} props Bag of one or more key-value pairs whose key is - a property and value is the new value to set for that property. -* @param {boolean=} setReadOnly When true, any private values set in - `props` will be set. By default, `setProperties` will not set - `readOnly: true` root properties. -*/ -Polymer_LegacyElementMixin.prototype.setProperties = function(props, setReadOnly){}; -/** -* @param {Object} changedProps Bag of changed properties -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -*/ -Polymer_LegacyElementMixin.prototype._propagatePropertyChanges = function(changedProps, oldProps, hasPaths){}; -/** -* @param {(string|!Array.<(string|number)>)} to Target path to link. -* @param {(string|!Array.<(string|number)>)} from Source path to link. -*/ -Polymer_LegacyElementMixin.prototype.linkPaths = function(to, from){}; -/** -* @param {(string|!Array.<(string|number)>)} path Target path to unlink. -*/ -Polymer_LegacyElementMixin.prototype.unlinkPaths = function(path){}; -/** -* @param {string} path Path that should be notified. -* @param {Array} splices Array of splice records indicating ordered - changes that occurred to the array. Each record should have the - following fields: - * index: index at which the change occurred - * removed: array of items that were removed from this index - * addedCount: number of new items added at this index - * object: a reference to the array in question - * type: the string literal 'splice' - - Note that splice records _must_ be normalized such that they are - reported in index order (raw results from `Object.observe` are not - ordered and must be normalized/merged before notifying). -*/ -Polymer_LegacyElementMixin.prototype.notifySplices = function(path, splices){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to read. The path may be specified as a string (e.g. `foo.bar.baz`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `users.12.name` or `['users', 12, 'name']`). -* @param {Object=} root Root object from which the path is evaluated. -* @return {*} -*/ -Polymer_LegacyElementMixin.prototype.get = function(path, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to write. The path may be specified as a string (e.g. `'foo.bar.baz'`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `'users.12.name'` or `['users', 12, 'name']`). -* @param {*} value Value to set at the specified path. -* @param {Object=} root Root object from which the path is evaluated. - When specified, no notification will occur. -*/ -Polymer_LegacyElementMixin.prototype.set = function(path, value, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} -*/ -Polymer_LegacyElementMixin.prototype.push = function(path, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_LegacyElementMixin.prototype.pop = function(path){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {number} start Index from which to start removing/inserting. -* @param {number} deleteCount Number of items to remove. -* @param {...*} items -* @return {Array} -*/ -Polymer_LegacyElementMixin.prototype.splice = function(path, start, deleteCount, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_LegacyElementMixin.prototype.shift = function(path){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} -*/ -Polymer_LegacyElementMixin.prototype.unshift = function(path, items){}; -/** -* @param {string} path Path that should be notified. -* @param {*=} value Value at the path (optional). -*/ -Polymer_LegacyElementMixin.prototype.notifyPath = function(path, value){}; -/** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. -*/ -Polymer_LegacyElementMixin.prototype._createReadOnlyProperty = function(property, protectedSetter){}; -/** -* @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. -*/ -Polymer_LegacyElementMixin.prototype._createPropertyObserver = function(property, methodName, dynamicFn){}; -/** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_LegacyElementMixin.prototype._createMethodObserver = function(expression, dynamicFn){}; -/** -* @param {string} property Property name -*/ -Polymer_LegacyElementMixin.prototype._createNotifyingProperty = function(property){}; -/** -* @param {string} property Property name -*/ -Polymer_LegacyElementMixin.prototype._createReflectedProperty = function(property){}; -/** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_LegacyElementMixin.prototype._createComputedProperty = function(property, expression, dynamicFn){}; -/** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @param {boolean=} instanceBinding When false (default), performs - "prototypical" binding of the template and overwrites any previously - bound template for the class. When true (as passed from - `_stampTemplate`), the template info is instanced and linked into - the list of bound templates. -* @return {!TemplateInfo} -*/ -Polymer_LegacyElementMixin.prototype._bindTemplate = function(template, instanceBinding){}; -/** -* @param {!StampedTemplate} dom DocumentFragment previously returned - from `_stampTemplate` associated with the nodes to be removed -*/ -Polymer_LegacyElementMixin.prototype._removeBoundDom = function(dom){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype.connectedCallback = function(){}; -/** -* @override -*/ -Polymer_LegacyElementMixin.prototype.disconnectedCallback = function(){}; -/** -* @param {StampedTemplate} dom to attach to the element. -* @return {ShadowRoot} -*/ -Polymer_LegacyElementMixin.prototype._attachDom = function(dom){}; -/** -* @param {Object=} properties Bag of custom property key/values to - apply to this element. -*/ -Polymer_LegacyElementMixin.prototype.updateStyles = function(properties){}; -/** -* @param {string} url URL to resolve. -* @param {string=} base Optional base URL to resolve against, defaults -to the element's `importPath` -* @return {string} -*/ -Polymer_LegacyElementMixin.prototype.resolveUrl = function(url, base){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype.created = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype.attached = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype.detached = function(){}; -/** -* @param {string} name Name of attribute. -* @param {?string} old Old value of attribute. -* @param {?string} value Current value of attribute. -*/ -Polymer_LegacyElementMixin.prototype.attributeChanged = function(name, old, value){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._registered = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._ensureAttributes = function(){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype._applyListeners = function(){}; -/** -* @param {*} value Value to deserialize -* @return {(string|undefined)} -*/ -Polymer_LegacyElementMixin.prototype.serialize = function(value){}; -/** -* @param {string} value String to deserialize -* @param {*} type Type to deserialize the string to -* @return {*} -*/ -Polymer_LegacyElementMixin.prototype.deserialize = function(value, type){}; -/** -* @param {string} property Property name to reflect. -* @param {string=} attribute Attribute name to reflect. -* @param {*=} value Property value to refect. -*/ -Polymer_LegacyElementMixin.prototype.reflectPropertyToAttribute = function(property, attribute, value){}; -/** -* @param {*} value Value to serialize. -* @param {string} attribute Attribute name to serialize to. -* @param {Element} node Element to set attribute to. -*/ -Polymer_LegacyElementMixin.prototype.serializeValueToAttribute = function(value, attribute, node){}; -/** -* @param {Object} prototype Target object to copy properties to. -* @param {Object} api Source object to copy properties from. -* @return {Object} -*/ -Polymer_LegacyElementMixin.prototype.extend = function(prototype, api){}; -/** -* @param {Object} target Target object to copy properties to. -* @param {Object} source Source object to copy properties from. -* @return {Object} -*/ -Polymer_LegacyElementMixin.prototype.mixin = function(target, source){}; -/** -* @param {Object} object The object on which to set the prototype. -* @param {Object} prototype The prototype that will be set on the given -`object`. -* @return {Object} -*/ -Polymer_LegacyElementMixin.prototype.chainObject = function(object, prototype){}; -/** -* @param {HTMLTemplateElement} template HTML template element to instance. -* @return {DocumentFragment} -*/ -Polymer_LegacyElementMixin.prototype.instanceTemplate = function(template){}; -/** -* @param {string} type Name of event type. -* @param {*=} detail Detail value containing event-specific - payload. -* @param {{bubbles: (boolean|undefined), cancelable: (boolean|undefined), composed: (boolean|undefined)}=} options Object specifying options. These may include: - `bubbles` (boolean, defaults to `true`), - `cancelable` (boolean, defaults to false), and - `node` on which to fire the event (HTMLElement, defaults to `this`). -* @return {Event} -*/ -Polymer_LegacyElementMixin.prototype.fire = function(type, detail, options){}; -/** -* @param {Element} node Element to add event listener to. -* @param {string} eventName Name of event to listen for. -* @param {string} methodName Name of handler method on `this` to call. -*/ -Polymer_LegacyElementMixin.prototype.listen = function(node, eventName, methodName){}; -/** -* @param {Element} node Element to remove event listener from. -* @param {string} eventName Name of event to stop listening to. -* @param {string} methodName Name of handler method on `this` to not call - anymore. -*/ -Polymer_LegacyElementMixin.prototype.unlisten = function(node, eventName, methodName){}; -/** -* @param {string=} direction Direction to allow scrolling -Defaults to `all`. -* @param {Element=} node Element to apply scroll direction setting. -Defaults to `this`. -*/ -Polymer_LegacyElementMixin.prototype.setScrollDirection = function(direction, node){}; -/** -* @param {string} slctr Selector to run on this local DOM scope -* @return {Element} -*/ -Polymer_LegacyElementMixin.prototype.$$ = function(slctr){}; -/** -* @return {undefined} -*/ -Polymer_LegacyElementMixin.prototype.distributeContent = function(){}; -/** -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.getEffectiveChildNodes = function(){}; -/** -* @param {string} selector Selector to run. -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.queryDistributedElements = function(selector){}; -/** -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.getEffectiveChildren = function(){}; -/** -* @return {string} -*/ -Polymer_LegacyElementMixin.prototype.getEffectiveTextContent = function(){}; -/** -* @param {string} selector Selector to run. -* @return {Object.} -*/ -Polymer_LegacyElementMixin.prototype.queryEffectiveChildren = function(selector){}; -/** -* @param {string} selector Selector to run. -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.queryAllEffectiveChildren = function(selector){}; -/** -* @param {string=} slctr CSS selector to choose the desired - ``. Defaults to `content`. -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.getContentChildNodes = function(slctr){}; -/** -* @param {string=} slctr CSS selector to choose the desired - ``. Defaults to `content`. -* @return {Array.} -*/ -Polymer_LegacyElementMixin.prototype.getContentChildren = function(slctr){}; -/** -* @param {?Node} node The element to be checked. -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype.isLightDescendant = function(node){}; -/** -* @param {Element=} node The element to be checked. -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype.isLocalDescendant = function(node){}; -/** -* @param {*} container -* @param {*} shouldObserve -*/ -Polymer_LegacyElementMixin.prototype.scopeSubtree = function(container, shouldObserve){}; -/** -* @param {string} property The css property name. -* @return {string} -*/ -Polymer_LegacyElementMixin.prototype.getComputedStyleValue = function(property){}; -/** -* @param {string} jobName String to identify the debounce job. -* @param {function ()} callback Function that is called (with `this` - context) when the wait time elapses. -* @param {number} wait Optional wait time in milliseconds (ms) after the - last signal that must elapse before invoking `callback` -* @return {Object} -*/ -Polymer_LegacyElementMixin.prototype.debounce = function(jobName, callback, wait){}; -/** -* @param {string} jobName The name of the debouncer started with `debounce` -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype.isDebouncerActive = function(jobName){}; -/** -* @param {string} jobName The name of the debouncer started with `debounce` -*/ -Polymer_LegacyElementMixin.prototype.flushDebouncer = function(jobName){}; -/** -* @param {string} jobName The name of the debouncer started with `debounce` -*/ -Polymer_LegacyElementMixin.prototype.cancelDebouncer = function(jobName){}; -/** -* @param {Function} callback The callback function to run, bound to `this`. -* @param {number=} waitTime Time to wait before calling the - `callback`. If unspecified or 0, the callback will be run at microtask - timing (before paint). -* @return {number} -*/ -Polymer_LegacyElementMixin.prototype.async = function(callback, waitTime){}; -/** -* @param {number} handle Handle returned from original `async` call to - cancel. -*/ -Polymer_LegacyElementMixin.prototype.cancelAsync = function(handle){}; -/** -* @param {string} tag HTML element tag to create. -* @param {Object} props Object of properties to configure on the - instance. -* @return {Element} -*/ -Polymer_LegacyElementMixin.prototype.create = function(tag, props){}; -/** -* @param {string} href URL to document to load. -* @param {Function} onload Callback to notify when an import successfully - loaded. -* @param {Function} onerror Callback to notify when an import - unsuccessfully loaded. -* @param {boolean} optAsync True if the import should be loaded `async`. - Defaults to `false`. -* @return {HTMLLinkElement} -*/ -Polymer_LegacyElementMixin.prototype.importHref = function(href, onload, onerror, optAsync){}; -/** -* @param {string} selector Selector to test. -* @param {Element=} node Element to test the selector against. -* @return {boolean} -*/ -Polymer_LegacyElementMixin.prototype.elementMatches = function(selector, node){}; -/** -* @param {string} name HTML attribute name -* @param {boolean=} bool Boolean to force the attribute on or off. - When unspecified, the state of the attribute will be reversed. -* @param {Element=} node Node to target. Defaults to `this`. -*/ -Polymer_LegacyElementMixin.prototype.toggleAttribute = function(name, bool, node){}; -/** -* @param {string} name CSS class name -* @param {boolean=} bool Boolean to force the class on or off. - When unspecified, the state of the class will be reversed. -* @param {Element=} node Node to target. Defaults to `this`. -*/ -Polymer_LegacyElementMixin.prototype.toggleClass = function(name, bool, node){}; -/** -* @param {string} transformText Transform setting. -* @param {Element=} node Element to apply the transform to. -Defaults to `this` -*/ -Polymer_LegacyElementMixin.prototype.transform = function(transformText, node){}; -/** -* @param {number} x X offset. -* @param {number} y Y offset. -* @param {number} z Z offset. -* @param {Element=} node Element to apply the transform to. -Defaults to `this`. -*/ -Polymer_LegacyElementMixin.prototype.translate3d = function(x, y, z, node){}; -/** -* @param {(string|!Array.<(number|string)>)} arrayOrPath Path to array from which to remove the item - (or the array itself). -* @param {*} item Item to remove. -* @return {Array} -*/ -Polymer_LegacyElementMixin.prototype.arrayDelete = function(arrayOrPath, item){}; -/** -* @param {string} level One of 'log', 'warn', 'error' -* @param {Array} args Array of strings or objects to log -*/ -Polymer_LegacyElementMixin.prototype._logger = function(level, args){}; -/** -* @param {...*} args -*/ -Polymer_LegacyElementMixin.prototype._log = function(args){}; -/** -* @param {...*} args -*/ -Polymer_LegacyElementMixin.prototype._warn = function(args){}; -/** -* @param {...*} args -*/ -Polymer_LegacyElementMixin.prototype._error = function(args){}; -/** -* @param {string} methodName Method name to associate with message -* @param {...*} args -* @return {Array} -*/ -Polymer_LegacyElementMixin.prototype._logf = function(methodName, args){}; -/** -* @param {!HTMLTemplateElement} template Template to parse -* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer - template, for parsing nested templates -* @return {!TemplateInfo} -*/ -Polymer_LegacyElementMixin._parseTemplate = function(template, outerTemplateInfo){}; -/** -* @override -*/ -Polymer_LegacyElementMixin._parseTemplateContent = function(template, templateInfo, nodeInfo){}; -/** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} -*/ -Polymer_LegacyElementMixin._parseTemplateNode = function(node, templateInfo, nodeInfo){}; -/** -* @param {Node} root Root node whose `childNodes` will be parsed -* @param {!TemplateInfo} templateInfo Template metadata for current template -* @param {!NodeInfo} nodeInfo Node metadata for current template. -*/ -Polymer_LegacyElementMixin._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; -/** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} -*/ -Polymer_LegacyElementMixin._parseTemplateNestedTemplate = function(node, templateInfo, nodeInfo){}; -/** -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template. -* @return {boolean} -*/ -Polymer_LegacyElementMixin._parseTemplateNodeAttributes = function(node, templateInfo, nodeInfo){}; -/** -* @override -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @param {*} name -* @param {*} value -* @return {boolean} -*/ -Polymer_LegacyElementMixin._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){}; -/** -* @param {HTMLTemplateElement} template Template to retrieve `content` for -* @return {DocumentFragment} -*/ -Polymer_LegacyElementMixin._contentForTemplate = function(template){}; -/** -*/ -Polymer_LegacyElementMixin.createPropertiesForAttributes = function(){}; -/** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object -*/ -Polymer_LegacyElementMixin.addPropertyEffect = function(property, type, effect){}; -/** -* @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. -*/ -Polymer_LegacyElementMixin.createPropertyObserver = function(property, methodName, dynamicFn){}; -/** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. -*/ -Polymer_LegacyElementMixin.createMethodObserver = function(expression, dynamicFn){}; -/** -* @param {string} property Property name -*/ -Polymer_LegacyElementMixin.createNotifyingProperty = function(property){}; -/** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. -*/ -Polymer_LegacyElementMixin.createReadOnlyProperty = function(property, protectedSetter){}; -/** -* @param {string} property Property name -*/ -Polymer_LegacyElementMixin.createReflectedProperty = function(property){}; -/** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating whether - method names should be included as a dependency to the effect. -*/ -Polymer_LegacyElementMixin.createComputedProperty = function(property, expression, dynamicFn){}; -/** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @return {Object} -*/ -Polymer_LegacyElementMixin.bindTemplate = function(template){}; -/** -* @param {Object} templateInfo Template metadata to add effect to -* @param {string} prop Property that should trigger the effect -* @param {Object=} effect Effect metadata object -*/ -Polymer_LegacyElementMixin._addTemplatePropertyEffect = function(templateInfo, prop, effect){}; -/** -* @param {string} text Text to parse from attribute or textContent -* @param {Object} templateInfo Current template metadata -* @return {Array.} -*/ -Polymer_LegacyElementMixin._parseBindings = function(text, templateInfo){}; -/** -* @param {this} inst Element that should be used as scope for - binding dependencies -* @param {BindingPart} part Binding part metadata -* @param {string} path Property/path that triggered this effect -* @param {Object} props Bag of current property changes -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -* @return {*} -*/ -Polymer_LegacyElementMixin._evaluateBinding = function(inst, part, path, props, oldProps, hasPaths){}; -/** -*/ -Polymer_LegacyElementMixin.finalize = function(){}; -/** -* @interface -*/ -function Polymer_MutableData(){} -/** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} -*/ -Polymer_MutableData.prototype._shouldPropertyChange = function(property, value, old){}; -/** -* @interface -*/ -function Polymer_OptionalMutableData(){} -/** @type {boolean} */ -Polymer_OptionalMutableData.prototype.mutableData; - -/** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} -*/ -Polymer_OptionalMutableData.prototype._shouldPropertyChange = function(property, value, old){}; -/** -* @interface -* @extends {Polymer_ElementMixin} -*/ -function Polymer_ArraySelectorMixin(){} -/** @type {Array} */ -Polymer_ArraySelectorMixin.prototype.items; - -/** @type {boolean} */ -Polymer_ArraySelectorMixin.prototype.multi; - -/** @type {?(Object|Array.)} */ -Polymer_ArraySelectorMixin.prototype.selected; - -/** @type {?Object} */ -Polymer_ArraySelectorMixin.prototype.selectedItem; - -/** @type {boolean} */ -Polymer_ArraySelectorMixin.prototype.toggle; - -/** -* @override -* @param {!HTMLTemplateElement} template Template to stamp -* @return {!StampedTemplate} -*/ -Polymer_ArraySelectorMixin.prototype._stampTemplate = function(template){}; -/** -* @param {Node} node Node to add listener on -* @param {string} eventName Name of event -* @param {string} methodName Name of method -* @param {*=} context Context the method will be called on (defaults - to `node`) -* @return {Function} -*/ -Polymer_ArraySelectorMixin.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){}; -/** -* @param {Node} node Node to add event listener to -* @param {string} eventName Name of event -* @param {Function} handler Listener function to add -*/ -Polymer_ArraySelectorMixin.prototype._addEventListenerToNode = function(node, eventName, handler){}; -/** -* @param {Node} node Node to remove event listener from -* @param {string} eventName Name of event -* @param {Function} handler Listener function to remove -*/ -Polymer_ArraySelectorMixin.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; -/** -* @override -* @param {string} name Name of attribute. -* @param {?string} old Old value of attribute. -* @param {?string} value Current value of attribute. -*/ -Polymer_ArraySelectorMixin.prototype.attributeChangedCallback = function(name, old, value){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype._initializeProperties = function(){}; -/** -* @override -* @param {Object} props Properties to initialize on the prototype -*/ -Polymer_ArraySelectorMixin.prototype._initializeProtoProperties = function(props){}; -/** -* @override -* @param {Object} props Properties to initialize on the instance -*/ -Polymer_ArraySelectorMixin.prototype._initializeInstanceProperties = function(props){}; -/** -* @param {string} attribute Name of attribute to ensure is set. -* @param {string} value of the attribute. -*/ -Polymer_ArraySelectorMixin.prototype._ensureAttribute = function(attribute, value){}; -/** -* @param {string} attribute Name of attribute to deserialize. -* @param {?string} value of the attribute. -* @param {*=} type type to deserialize to. +* @param {string} value String to deserialize +* @param {*} type Type to deserialize the string to +* @return {*} */ -Polymer_ArraySelectorMixin.prototype._attributeToProperty = function(attribute, value, type){}; +Polymer_LegacyElementMixin.prototype.deserialize = function(value, type){}; /** * @param {string} property Property name to reflect. * @param {string=} attribute Attribute name to reflect. -* @param {*=} value Property value to refect. +* @param {*=} value Property value to reflect. */ -Polymer_ArraySelectorMixin.prototype._propertyToAttribute = function(property, attribute, value){}; +Polymer_LegacyElementMixin.prototype.reflectPropertyToAttribute = function(property, attribute, value){}; /** -* @param {Element} node Element to set attribute to. * @param {*} value Value to serialize. * @param {string} attribute Attribute name to serialize to. +* @param {Element} node Element to set attribute to. */ -Polymer_ArraySelectorMixin.prototype._valueToNodeAttribute = function(node, value, attribute){}; -/** -* @param {*} value Property value to serialize. -* @return {(string|undefined)} -*/ -Polymer_ArraySelectorMixin.prototype._serializeValue = function(value){}; -/** -* @param {?string} value Attribute value to deserialize. -* @param {*=} type Type to deserialize the string to. -* @return {*} -*/ -Polymer_ArraySelectorMixin.prototype._deserializeValue = function(value, type){}; -/** -* @param {string} property Name of the property -* @param {boolean=} readOnly When true, no setter is created; the - protected `_setProperty` function must be used to set the property -*/ -Polymer_ArraySelectorMixin.prototype._createPropertyAccessor = function(property, readOnly){}; -/** -* @param {string} property Property name -* @return {boolean} -*/ -Polymer_ArraySelectorMixin.prototype._hasAccessor = function(property){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype._setProperty = function(property, value){}; -/** -* @override -* @param {string} property Name of the property -* @param {*} value Value to set -* @param {boolean=} shouldNotify True if property should fire notification - event (applies only for `notify: true` properties) -* @return {boolean} -*/ -Polymer_ArraySelectorMixin.prototype._setPendingProperty = function(property, value, shouldNotify){}; -/** -* @param {string} prop Property name -* @return {boolean} -*/ -Polymer_ArraySelectorMixin.prototype._isPropertyPending = function(prop){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype._invalidateProperties = function(){}; -/** -* @return {undefined} -*/ -Polymer_ArraySelectorMixin.prototype._enableProperties = function(){}; -/** -* @return {undefined} -*/ -Polymer_ArraySelectorMixin.prototype._flushProperties = function(){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype.ready = function(){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){}; -/** -* @param {string} property Property name -* @param {*} value New property value -* @param {*} old Previous property value -* @return {boolean} -*/ -Polymer_ArraySelectorMixin.prototype._shouldPropertyChange = function(property, value, old){}; -/** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object -*/ -Polymer_ArraySelectorMixin.prototype._addPropertyEffect = function(property, type, effect){}; +Polymer_LegacyElementMixin.prototype.serializeValueToAttribute = function(value, attribute, node){}; /** -* @param {string} property Property the effect was associated with -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object to remove +* @param {Object} prototype Target object to copy properties to. +* @param {Object} api Source object to copy properties from. +* @return {Object} */ -Polymer_ArraySelectorMixin.prototype._removePropertyEffect = function(property, type, effect){}; +Polymer_LegacyElementMixin.prototype.extend = function(prototype, api){}; /** -* @param {string} property Property name -* @param {string=} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @return {boolean} +* @param {Object} target Target object to copy properties to. +* @param {Object} source Source object to copy properties from. +* @return {Object} */ -Polymer_ArraySelectorMixin.prototype._hasPropertyEffect = function(property, type){}; +Polymer_LegacyElementMixin.prototype.mixin = function(target, source){}; /** -* @param {string} property Property name -* @return {boolean} +* @param {Object} object The object on which to set the prototype. +* @param {Object} prototype The prototype that will be set on the given +`object`. +* @return {Object} */ -Polymer_ArraySelectorMixin.prototype._hasReadOnlyEffect = function(property){}; +Polymer_LegacyElementMixin.prototype.chainObject = function(object, prototype){}; /** -* @param {string} property Property name -* @return {boolean} +* @param {HTMLTemplateElement} template HTML template element to instance. +* @return {DocumentFragment} */ -Polymer_ArraySelectorMixin.prototype._hasNotifyEffect = function(property){}; +Polymer_LegacyElementMixin.prototype.instanceTemplate = function(template){}; /** -* @param {string} property Property name -* @return {boolean} +* @param {string} type Name of event type. +* @param {*=} detail Detail value containing event-specific + payload. +* @param {{bubbles: (boolean|undefined), cancelable: (boolean|undefined), composed: (boolean|undefined)}=} options Object specifying options. These may include: + `bubbles` (boolean, defaults to `true`), + `cancelable` (boolean, defaults to false), and + `node` on which to fire the event (HTMLElement, defaults to `this`). +* @return {Event} */ -Polymer_ArraySelectorMixin.prototype._hasReflectEffect = function(property){}; +Polymer_LegacyElementMixin.prototype.fire = function(type, detail, options){}; /** -* @param {string} property Property name -* @return {boolean} +* @param {Element} node Element to add event listener to. +* @param {string} eventName Name of event to listen for. +* @param {string} methodName Name of handler method on `this` to call. */ -Polymer_ArraySelectorMixin.prototype._hasComputedEffect = function(property){}; +Polymer_LegacyElementMixin.prototype.listen = function(node, eventName, methodName){}; /** -* @param {(string|!Array.<(number|string)>)} path Path to set -* @param {*} value Value to set -* @param {boolean=} shouldNotify Set to true if this change should - cause a property notification event dispatch -* @param {boolean=} isPathNotification If the path being set is a path - notification of an already changed value, as opposed to a request - to set and notify the change. In the latter `false` case, a dirty - check is performed and then the value is set to the path before - enqueuing the pending property change. -* @return {boolean} +* @param {Element} node Element to remove event listener from. +* @param {string} eventName Name of event to stop listening to. +* @param {string} methodName Name of handler method on `this` to not call + anymore. */ -Polymer_ArraySelectorMixin.prototype._setPendingPropertyOrPath = function(path, value, shouldNotify, isPathNotification){}; +Polymer_LegacyElementMixin.prototype.unlisten = function(node, eventName, methodName){}; /** -* @param {Node} node The node to set a property on -* @param {string} prop The property to set -* @param {*} value The value to set +* @param {string=} direction Direction to allow scrolling +Defaults to `all`. +* @param {Element=} node Element to apply scroll direction setting. +Defaults to `this`. */ -Polymer_ArraySelectorMixin.prototype._setUnmanagedPropertyToNode = function(node, prop, value){}; +Polymer_LegacyElementMixin.prototype.setScrollDirection = function(direction, node){}; /** -* @param {Object} client PropertyEffects client to enqueue +* @param {string} slctr Selector to run on this local DOM scope +* @return {Element} */ -Polymer_ArraySelectorMixin.prototype._enqueueClient = function(client){}; +Polymer_LegacyElementMixin.prototype.$$ = function(slctr){}; /** * @return {undefined} */ -Polymer_ArraySelectorMixin.prototype._flushClients = function(){}; -/** -* @override -*/ -Polymer_ArraySelectorMixin.prototype._readyClients = function(){}; -/** -* @param {Object} props Bag of one or more key-value pairs whose key is - a property and value is the new value to set for that property. -* @param {boolean=} setReadOnly When true, any private values set in - `props` will be set. By default, `setProperties` will not set - `readOnly: true` root properties. -*/ -Polymer_ArraySelectorMixin.prototype.setProperties = function(props, setReadOnly){}; -/** -* @param {Object} changedProps Bag of changed properties -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -*/ -Polymer_ArraySelectorMixin.prototype._propagatePropertyChanges = function(changedProps, oldProps, hasPaths){}; -/** -* @param {(string|!Array.<(string|number)>)} to Target path to link. -* @param {(string|!Array.<(string|number)>)} from Source path to link. -*/ -Polymer_ArraySelectorMixin.prototype.linkPaths = function(to, from){}; -/** -* @param {(string|!Array.<(string|number)>)} path Target path to unlink. -*/ -Polymer_ArraySelectorMixin.prototype.unlinkPaths = function(path){}; -/** -* @param {string} path Path that should be notified. -* @param {Array} splices Array of splice records indicating ordered - changes that occurred to the array. Each record should have the - following fields: - * index: index at which the change occurred - * removed: array of items that were removed from this index - * addedCount: number of new items added at this index - * object: a reference to the array in question - * type: the string literal 'splice' - - Note that splice records _must_ be normalized such that they are - reported in index order (raw results from `Object.observe` are not - ordered and must be normalized/merged before notifying). -*/ -Polymer_ArraySelectorMixin.prototype.notifySplices = function(path, splices){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to read. The path may be specified as a string (e.g. `foo.bar.baz`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `users.12.name` or `['users', 12, 'name']`). -* @param {Object=} root Root object from which the path is evaluated. -* @return {*} -*/ -Polymer_ArraySelectorMixin.prototype.get = function(path, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to the value - to write. The path may be specified as a string (e.g. `'foo.bar.baz'`) - or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that - bracketed expressions are not supported; string-based path parts - *must* be separated by dots. Note that when dereferencing array - indices, the index may be used as a dotted part directly - (e.g. `'users.12.name'` or `['users', 12, 'name']`). -* @param {*} value Value to set at the specified path. -* @param {Object=} root Root object from which the path is evaluated. - When specified, no notification will occur. -*/ -Polymer_ArraySelectorMixin.prototype.set = function(path, value, root){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} -*/ -Polymer_ArraySelectorMixin.prototype.push = function(path, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_ArraySelectorMixin.prototype.pop = function(path){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {number} start Index from which to start removing/inserting. -* @param {number} deleteCount Number of items to remove. -* @param {...*} items -* @return {Array} -*/ -Polymer_ArraySelectorMixin.prototype.splice = function(path, start, deleteCount, items){}; -/** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @return {*} -*/ -Polymer_ArraySelectorMixin.prototype.shift = function(path){}; +Polymer_LegacyElementMixin.prototype.distributeContent = function(){}; /** -* @param {(string|!Array.<(string|number)>)} path Path to array. -* @param {...*} items -* @return {number} +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype.unshift = function(path, items){}; +Polymer_LegacyElementMixin.prototype.getEffectiveChildNodes = function(){}; /** -* @param {string} path Path that should be notified. -* @param {*=} value Value at the path (optional). +* @param {string} selector Selector to run. +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype.notifyPath = function(path, value){}; +Polymer_LegacyElementMixin.prototype.queryDistributedElements = function(selector){}; /** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype._createReadOnlyProperty = function(property, protectedSetter){}; +Polymer_LegacyElementMixin.prototype.getEffectiveChildren = function(){}; /** -* @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. +* @return {string} */ -Polymer_ArraySelectorMixin.prototype._createPropertyObserver = function(property, methodName, dynamicFn){}; +Polymer_LegacyElementMixin.prototype.getEffectiveTextContent = function(){}; /** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. +* @param {string} selector Selector to run. +* @return {Object.} */ -Polymer_ArraySelectorMixin.prototype._createMethodObserver = function(expression, dynamicFn){}; +Polymer_LegacyElementMixin.prototype.queryEffectiveChildren = function(selector){}; /** -* @param {string} property Property name +* @param {string} selector Selector to run. +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype._createNotifyingProperty = function(property){}; +Polymer_LegacyElementMixin.prototype.queryAllEffectiveChildren = function(selector){}; /** -* @param {string} property Property name +* @param {string=} slctr CSS selector to choose the desired + ``. Defaults to `content`. +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype._createReflectedProperty = function(property){}; +Polymer_LegacyElementMixin.prototype.getContentChildNodes = function(slctr){}; /** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. +* @param {string=} slctr CSS selector to choose the desired + ``. Defaults to `content`. +* @return {Array.} */ -Polymer_ArraySelectorMixin.prototype._createComputedProperty = function(property, expression, dynamicFn){}; +Polymer_LegacyElementMixin.prototype.getContentChildren = function(slctr){}; /** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @param {boolean=} instanceBinding When false (default), performs - "prototypical" binding of the template and overwrites any previously - bound template for the class. When true (as passed from - `_stampTemplate`), the template info is instanced and linked into - the list of bound templates. -* @return {!TemplateInfo} +* @param {?Node} node The element to be checked. +* @return {boolean} */ -Polymer_ArraySelectorMixin.prototype._bindTemplate = function(template, instanceBinding){}; +Polymer_LegacyElementMixin.prototype.isLightDescendant = function(node){}; /** -* @param {!StampedTemplate} dom DocumentFragment previously returned - from `_stampTemplate` associated with the nodes to be removed +* @param {Element=} node The element to be checked. +* @return {boolean} */ -Polymer_ArraySelectorMixin.prototype._removeBoundDom = function(dom){}; +Polymer_LegacyElementMixin.prototype.isLocalDescendant = function(node){}; /** -* @return {undefined} +* @param {*} container +* @param {*} shouldObserve */ -Polymer_ArraySelectorMixin.prototype.connectedCallback = function(){}; +Polymer_LegacyElementMixin.prototype.scopeSubtree = function(container, shouldObserve){}; /** -* @return {undefined} +* @param {string} property The css property name. +* @return {string} */ -Polymer_ArraySelectorMixin.prototype.disconnectedCallback = function(){}; +Polymer_LegacyElementMixin.prototype.getComputedStyleValue = function(property){}; /** -* @param {StampedTemplate} dom to attach to the element. -* @return {ShadowRoot} +* @param {string} jobName String to identify the debounce job. +* @param {function ()} callback Function that is called (with `this` + context) when the wait time elapses. +* @param {number} wait Optional wait time in milliseconds (ms) after the + last signal that must elapse before invoking `callback` +* @return {Object} */ -Polymer_ArraySelectorMixin.prototype._attachDom = function(dom){}; +Polymer_LegacyElementMixin.prototype.debounce = function(jobName, callback, wait){}; /** -* @param {Object=} properties Bag of custom property key/values to - apply to this element. +* @param {string} jobName The name of the debouncer started with `debounce` +* @return {boolean} */ -Polymer_ArraySelectorMixin.prototype.updateStyles = function(properties){}; +Polymer_LegacyElementMixin.prototype.isDebouncerActive = function(jobName){}; /** -* @param {string} url URL to resolve. -* @param {string=} base Optional base URL to resolve against, defaults -to the element's `importPath` -* @return {string} +* @param {string} jobName The name of the debouncer started with `debounce` */ -Polymer_ArraySelectorMixin.prototype.resolveUrl = function(url, base){}; +Polymer_LegacyElementMixin.prototype.flushDebouncer = function(jobName){}; /** -* @return {undefined} +* @param {string} jobName The name of the debouncer started with `debounce` */ -Polymer_ArraySelectorMixin.prototype.clearSelection = function(){}; +Polymer_LegacyElementMixin.prototype.cancelDebouncer = function(jobName){}; /** -* @param {*} item Item from `items` array to test -* @return {boolean} +* @param {Function} callback The callback function to run, bound to `this`. +* @param {number=} waitTime Time to wait before calling the + `callback`. If unspecified or 0, the callback will be run at microtask + timing (before paint). +* @return {number} */ -Polymer_ArraySelectorMixin.prototype.isSelected = function(item){}; +Polymer_LegacyElementMixin.prototype.async = function(callback, waitTime){}; /** -* @param {number} idx Index from `items` array to test -* @return {boolean} +* @param {number} handle Handle returned from original `async` call to + cancel. */ -Polymer_ArraySelectorMixin.prototype.isIndexSelected = function(idx){}; +Polymer_LegacyElementMixin.prototype.cancelAsync = function(handle){}; /** -* @param {*} item Item from `items` array to deselect +* @param {string} tag HTML element tag to create. +* @param {Object} props Object of properties to configure on the + instance. +* @return {Element} */ -Polymer_ArraySelectorMixin.prototype.deselect = function(item){}; +Polymer_LegacyElementMixin.prototype.create = function(tag, props){}; /** -* @param {number} idx Index from `items` array to deselect +* @param {string} href URL to document to load. +* @param {Function} onload Callback to notify when an import successfully + loaded. +* @param {Function} onerror Callback to notify when an import + unsuccessfully loaded. +* @param {boolean} optAsync True if the import should be loaded `async`. + Defaults to `false`. +* @return {HTMLLinkElement} */ -Polymer_ArraySelectorMixin.prototype.deselectIndex = function(idx){}; +Polymer_LegacyElementMixin.prototype.importHref = function(href, onload, onerror, optAsync){}; /** -* @param {*} item Item from `items` array to select +* @param {string} selector Selector to test. +* @param {Element=} node Element to test the selector against. +* @return {boolean} */ -Polymer_ArraySelectorMixin.prototype.select = function(item){}; +Polymer_LegacyElementMixin.prototype.elementMatches = function(selector, node){}; /** -* @param {number} idx Index from `items` array to select +* @param {string} name HTML attribute name +* @param {boolean=} bool Boolean to force the attribute on or off. + When unspecified, the state of the attribute will be reversed. +* @param {Element=} node Node to target. Defaults to `this`. */ -Polymer_ArraySelectorMixin.prototype.selectIndex = function(idx){}; +Polymer_LegacyElementMixin.prototype.toggleAttribute = function(name, bool, node){}; /** -* @param {!HTMLTemplateElement} template Template to parse -* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer - template, for parsing nested templates -* @return {!TemplateInfo} +* @param {string} name CSS class name +* @param {boolean=} bool Boolean to force the class on or off. + When unspecified, the state of the class will be reversed. +* @param {Element=} node Node to target. Defaults to `this`. */ -Polymer_ArraySelectorMixin._parseTemplate = function(template, outerTemplateInfo){}; +Polymer_LegacyElementMixin.prototype.toggleClass = function(name, bool, node){}; /** -* @override +* @param {string} transformText Transform setting. +* @param {Element=} node Element to apply the transform to. +Defaults to `this` */ -Polymer_ArraySelectorMixin._parseTemplateContent = function(template, templateInfo, nodeInfo){}; +Polymer_LegacyElementMixin.prototype.transform = function(transformText, node){}; /** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} +* @param {number} x X offset. +* @param {number} y Y offset. +* @param {number} z Z offset. +* @param {Element=} node Element to apply the transform to. +Defaults to `this`. */ -Polymer_ArraySelectorMixin._parseTemplateNode = function(node, templateInfo, nodeInfo){}; +Polymer_LegacyElementMixin.prototype.translate3d = function(x, y, z, node){}; /** -* @param {Node} root Root node whose `childNodes` will be parsed -* @param {!TemplateInfo} templateInfo Template metadata for current template -* @param {!NodeInfo} nodeInfo Node metadata for current template. +* @param {(string|!Array.<(number|string)>)} arrayOrPath Path to array from which to remove the item + (or the array itself). +* @param {*} item Item to remove. +* @return {Array} */ -Polymer_ArraySelectorMixin._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; +Polymer_LegacyElementMixin.prototype.arrayDelete = function(arrayOrPath, item){}; /** -* @override -* @param {Node} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @return {boolean} +* @param {string} level One of 'log', 'warn', 'error' +* @param {Array} args Array of strings or objects to log */ -Polymer_ArraySelectorMixin._parseTemplateNestedTemplate = function(node, templateInfo, nodeInfo){}; +Polymer_LegacyElementMixin.prototype._logger = function(level, args){}; /** -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template. -* @return {boolean} +* @param {...*} args */ -Polymer_ArraySelectorMixin._parseTemplateNodeAttributes = function(node, templateInfo, nodeInfo){}; +Polymer_LegacyElementMixin.prototype._log = function(args){}; /** -* @override -* @param {Element} node Node to parse -* @param {TemplateInfo} templateInfo Template metadata for current template -* @param {NodeInfo} nodeInfo Node metadata for current template node -* @param {*} name -* @param {*} value -* @return {boolean} +* @param {...*} args */ -Polymer_ArraySelectorMixin._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){}; +Polymer_LegacyElementMixin.prototype._warn = function(args){}; /** -* @param {HTMLTemplateElement} template Template to retrieve `content` for -* @return {DocumentFragment} +* @param {...*} args */ -Polymer_ArraySelectorMixin._contentForTemplate = function(template){}; +Polymer_LegacyElementMixin.prototype._error = function(args){}; /** +* @param {string} methodName Method name to associate with message +* @param {...*} args +* @return {Array} */ -Polymer_ArraySelectorMixin.createPropertiesForAttributes = function(){}; +Polymer_LegacyElementMixin.prototype._logf = function(methodName, args){}; /** -* @param {string} property Property that should trigger the effect -* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES -* @param {Object=} effect Effect metadata object +* @interface */ -Polymer_ArraySelectorMixin.addPropertyEffect = function(property, type, effect){}; +function Polymer_MutableData(){} /** * @param {string} property Property name -* @param {string} methodName Name of observer method to call -* @param {boolean=} dynamicFn Whether the method name should be included as - a dependency to the effect. +* @param {*} value New property value +* @param {*} old Previous property value +* @return {boolean} */ -Polymer_ArraySelectorMixin.createPropertyObserver = function(property, methodName, dynamicFn){}; +Polymer_MutableData.prototype._shouldPropertyChange = function(property, value, old){}; /** -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating - whether method names should be included as a dependency to the effect. +* @interface */ -Polymer_ArraySelectorMixin.createMethodObserver = function(expression, dynamicFn){}; +function Polymer_OptionalMutableData(){} +/** @type {boolean} */ +Polymer_OptionalMutableData.prototype.mutableData; + /** * @param {string} property Property name +* @param {*} value New property value +* @param {*} old Previous property value +* @return {boolean} */ -Polymer_ArraySelectorMixin.createNotifyingProperty = function(property){}; +Polymer_OptionalMutableData.prototype._shouldPropertyChange = function(property, value, old){}; /** -* @param {string} property Property name -* @param {boolean=} protectedSetter Creates a custom protected setter - when `true`. +* @interface +* @extends {Polymer_ElementMixin} */ -Polymer_ArraySelectorMixin.createReadOnlyProperty = function(property, protectedSetter){}; +function Polymer_ArraySelectorMixin(){} +/** @type {Array} */ +Polymer_ArraySelectorMixin.prototype.items; + +/** @type {boolean} */ +Polymer_ArraySelectorMixin.prototype.multi; + +/** @type {?(Object|Array.)} */ +Polymer_ArraySelectorMixin.prototype.selected; + +/** @type {?Object} */ +Polymer_ArraySelectorMixin.prototype.selectedItem; + +/** @type {boolean} */ +Polymer_ArraySelectorMixin.prototype.toggle; + /** -* @param {string} property Property name +* @return {undefined} */ -Polymer_ArraySelectorMixin.createReflectedProperty = function(property){}; +Polymer_ArraySelectorMixin.prototype.clearSelection = function(){}; /** -* @param {string} property Name of computed property to set -* @param {string} expression Method expression -* @param {(boolean|Object)=} dynamicFn Boolean or object map indicating whether - method names should be included as a dependency to the effect. +* @param {*} item Item from `items` array to test +* @return {boolean} */ -Polymer_ArraySelectorMixin.createComputedProperty = function(property, expression, dynamicFn){}; +Polymer_ArraySelectorMixin.prototype.isSelected = function(item){}; /** -* @param {HTMLTemplateElement} template Template containing binding - bindings -* @return {Object} +* @param {number} idx Index from `items` array to test +* @return {boolean} */ -Polymer_ArraySelectorMixin.bindTemplate = function(template){}; +Polymer_ArraySelectorMixin.prototype.isIndexSelected = function(idx){}; /** -* @param {Object} templateInfo Template metadata to add effect to -* @param {string} prop Property that should trigger the effect -* @param {Object=} effect Effect metadata object +* @param {*} item Item from `items` array to deselect */ -Polymer_ArraySelectorMixin._addTemplatePropertyEffect = function(templateInfo, prop, effect){}; +Polymer_ArraySelectorMixin.prototype.deselect = function(item){}; /** -* @param {string} text Text to parse from attribute or textContent -* @param {Object} templateInfo Current template metadata -* @return {Array.} +* @param {number} idx Index from `items` array to deselect */ -Polymer_ArraySelectorMixin._parseBindings = function(text, templateInfo){}; +Polymer_ArraySelectorMixin.prototype.deselectIndex = function(idx){}; /** -* @param {this} inst Element that should be used as scope for - binding dependencies -* @param {BindingPart} part Binding part metadata -* @param {string} path Property/path that triggered this effect -* @param {Object} props Bag of current property changes -* @param {Object} oldProps Bag of previous values for changed properties -* @param {boolean} hasPaths True with `props` contains one or more paths -* @return {*} +* @param {*} item Item from `items` array to select */ -Polymer_ArraySelectorMixin._evaluateBinding = function(inst, part, path, props, oldProps, hasPaths){}; +Polymer_ArraySelectorMixin.prototype.select = function(item){}; /** +* @param {number} idx Index from `items` array to select */ -Polymer_ArraySelectorMixin.finalize = function(){}; +Polymer_ArraySelectorMixin.prototype.selectIndex = function(idx){}; \ No newline at end of file diff --git a/externs/polymer-closure-types.html b/externs/polymer-closure-types.html deleted file mode 100644 index faf9152e1b..0000000000 --- a/externs/polymer-closure-types.html +++ /dev/null @@ -1,157 +0,0 @@ - - - \ No newline at end of file diff --git a/externs/polymer-externs.js b/externs/polymer-externs.js index 7d90eba52e..ceef420468 100644 --- a/externs/polymer-externs.js +++ b/externs/polymer-externs.js @@ -1,5 +1,5 @@ /** - * @fileoverview Externs for Polymer + * @fileoverview Externs for Polymer Pass and external Polymer API * @externs * * @license @@ -101,4 +101,4 @@ Polymer.telemetry; * @extends {HTMLElement} * @implements {Polymer_LegacyElementMixin} */ -var PolymerElement = Polymer.LegacyElementMixin(); +let PolymerElement = Polymer.LegacyElementMixin(); diff --git a/externs/polymer-internal-shared-types.js b/externs/polymer-internal-shared-types.js new file mode 100644 index 0000000000..ef49e68dc9 --- /dev/null +++ b/externs/polymer-internal-shared-types.js @@ -0,0 +1,158 @@ +/** + * @fileoverview Internal shared types for Polymer + * + * @license + * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * 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 + */ + +/* eslint-disable no-unused-vars, strict, valid-jsdoc */ + +/** + * @constructor + * @extends {DocumentFragment} + */ +function StampedTemplate() { } +/** @type {boolean} */ +StampedTemplate.prototype.__noInsertionPoint; +/** @type {!Array} */ +StampedTemplate.prototype.nodeList; +/** @type {!Object} */ +StampedTemplate.prototype.$; +/** @type {!TemplateInfo | undefined} */ +StampedTemplate.prototype.templateInfo; + +/** @interface */ +function NodeInfo() { } +/** @type {string} */ +NodeInfo.prototype.id; +/** @type {!Array<{name: string, value: string}>}*/ +NodeInfo.prototype.events; +/** @type {boolean} */ +NodeInfo.prototype.hasInsertionPoint; +/** @type {!TemplateInfo} */ +NodeInfo.prototype.templateInfo; +/** @type {!NodeInfo} */ +NodeInfo.prototype.parentInfo; +/** @type {number} */ +NodeInfo.prototype.parentIndex; +/** @type {number} */ +NodeInfo.prototype.infoIndex; +/** @type {!Array} */ +NodeInfo.prototype.bindings; + +/** @interface */ +function TemplateInfo() { } +/** @type {!Array} */ +TemplateInfo.prototype.nodeInfoList; +/** @type {!Array} */ +TemplateInfo.prototype.nodeList; +/** @type {boolean} */ +TemplateInfo.prototype.stripWhitespace; +/** @type {boolean | undefined} */ +TemplateInfo.prototype.hasInsertionPoint; +/** @type {!Object} */ +TemplateInfo.prototype.hostProps; +/** @type {!Object} */ +TemplateInfo.prototype.propertyEffects; +/** @type {TemplateInfo | undefined} */ +TemplateInfo.prototype.nextTemplateInfo; +/** @type {TemplateInfo | undefined} */ +TemplateInfo.prototype.previousTemplateInfo; +/** @type {!Array} */ +TemplateInfo.prototype.childNodes; +/** @type {boolean} */ +TemplateInfo.prototype.wasPreBound; + +/** + * type for HTMLTemplateElement with `_templateInfo` + * + * @constructor + * @extends {HTMLTemplateElement} + */ +function HTMLTemplateElementWithInfo() { } +/** @type {TemplateInfo} */ +HTMLTemplateElementWithInfo.prototype._templateInfo; + +/** + * @typedef {{ + * literal: string, + * compoundIndex: (number | undefined) + * }} + */ +let LiteralBindingPart; + +/** + * @typedef {{ + * literal: boolean, + * name: string, + * value: (string | number), + * rootProperty: (string | undefined), + * structured: (boolean | undefined), + * wildcard: (boolean | undefined) + * }} + */ +let MethodArg; + +/** + * @typedef {{ + * methodName: string, + * static: boolean, + * args: !Array, + * dynamicFn: (boolean | undefined), + * }} + */ +let MethodSignature; + +/** + * @typedef {{ + * mode: string, + * negate: boolean, + * source: string, + * dependencies: !Array<(!MethodArg|string)>, + * customEvent: boolean, + * signature: Object, + * event: string + * }} + */ +let ExpressionBindingPart; + +/** + * @typedef {LiteralBindingPart | ExpressionBindingPart} + */ +let BindingPart; + +/** + * @typedef {{ + * kind: string, + * target: string, + * parts: Array, + * literal: (string | undefined), + * isCompound: boolean, + * listenerEvent: (string | undefined), + * listenerNegate: (boolean | undefined) + * }} + */ +let Binding; + +/** + * @typedef {{ + * path: string + * }} + */ +let PathInfo; + +/** + * @typedef {{ + * forwardHostProp: (function(string, *) | undefined), + * instanceProps: (Object | undefined), + * mutableData: (boolean | undefined), + * notifyInstanceProp: (function(*, string, *) | undefined), + * parentModel: (boolean | undefined) + * }} + */ +let TemplatizeOptions; \ No newline at end of file diff --git a/externs/polymer-internal-types.html b/externs/polymer-internal-types.html new file mode 100644 index 0000000000..bc7abad636 --- /dev/null +++ b/externs/polymer-internal-types.html @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index aa6d6b1f1f..32de03178b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -23,7 +23,7 @@ const babel = require('gulp-babel'); const size = require('gulp-size'); const lazypipe = require('lazypipe'); const closure = require('google-closure-compiler').gulp(); -const minimalDocument = require('./util/minimalDocument.js') +const minimalDocument = require('./util/minimalDocument.js'); const dom5 = require('dom5'); const parse5 = require('parse5'); @@ -33,8 +33,7 @@ const COMPILED_DIR = path.join(DIST_DIR, 'compiled'); const POLYMER_LEGACY = 'polymer.html'; const POLYMER_ELEMENT = 'polymer-element.html'; -const polymer = require('polymer-build'); -const PolymerProject = polymer.PolymerProject; +const {PolymerProject, HtmlSplitter} = require('polymer-build'); const {Transform} = require('stream'); @@ -66,10 +65,15 @@ class BackfillStream extends Transform { let CLOSURE_LINT_ONLY = false; -let firstImportFinder = dom5.predicates.AND(dom5.predicates.hasTagName('link'), dom5.predicates.hasAttrValue('rel', 'import')); +let firstImportFinder = dom5.predicates.AND( + dom5.predicates.hasTagName('link'), dom5.predicates.hasAttrValue('rel', 'import') +); -const licenseHeader = +const header = `/** + * @fileoverview Generated typings for Polymer mixins + * @externs + * * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt @@ -77,7 +81,9 @@ const licenseHeader = * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt * 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 - */`; + */ +/* eslint-disable */ +`; class AddClosureTypeImport extends Transform { constructor(entryFileName, typeFileName) { @@ -114,7 +120,7 @@ gulp.task('closure', ['clean'], () => { entry = path; joinRx = new RegExp(path.split('/').join('\\/')); splitRx = new RegExp(joinRx.source + '_script_\\d+\\.js$'); - addClosureTypes = new AddClosureTypeImport(entry, 'externs/polymer-closure-types.html'); + addClosureTypes = new AddClosureTypeImport(entry, 'externs/polymer-internal-types.html'); } config('polymer.html'); @@ -127,7 +133,7 @@ gulp.task('closure', ['clean'], () => { ], extraDependencies: [ addClosureTypes.importPath, - 'externs/closure-types.js' + 'externs/polymer-internal-shared-types.js', ] }); @@ -144,7 +150,7 @@ gulp.task('closure', ['clean'], () => { if (CLOSURE_LINT_ONLY) { closurePluginOptions = { logger: closureLintLogger - } + }; } const closureStream = closure({ @@ -175,7 +181,7 @@ gulp.task('closure', ['clean'], () => { const closurePipeline = lazypipe() .pipe(() => closureStream) - .pipe(() => new BackfillStream(closureStream.fileList_)) + .pipe(() => new BackfillStream(closureStream.fileList_)); // process source files in the project const sources = project.sources(); @@ -186,7 +192,7 @@ gulp.task('closure', ['clean'], () => { // merge the source and dependencies streams to we can analyze the project const mergedFiles = mergeStream(sources, dependencies); - const splitter = new polymer.HtmlSplitter(); + const splitter = new HtmlSplitter(); return mergedFiles .pipe(addClosureTypes) .pipe(project.bundler()) @@ -195,18 +201,18 @@ gulp.task('closure', ['clean'], () => { .pipe(splitter.rejoin()) .pipe(gulpif(joinRx, minimalDocument())) .pipe(gulpif(joinRx, size({title: 'closure size', gzip: true, showTotal: false, showFiles: true}))) - .pipe(gulp.dest(COMPILED_DIR)) + .pipe(gulp.dest(COMPILED_DIR)); }); gulp.task('lint-closure', (done) => { CLOSURE_LINT_ONLY = true; runseq('closure', done); -}) +}); gulp.task('estimate-size', ['clean'], () => { const babelPresets = { - presets: [['babili', {regexpConstructors: false, simplifyComparisons: false}]] + presets: [['minify', {regexpConstructors: false, simplifyComparisons: false}]] }; const project = new PolymerProject({ @@ -226,20 +232,20 @@ gulp.task('estimate-size', ['clean'], () => { // merge the source and dependencies streams to we can analyze the project const mergedFiles = mergeStream(sources, dependencies); - const bundledSplitter = new polymer.HtmlSplitter(); + const bundledSplitter = new HtmlSplitter(); const bundlePipe = lazypipe() .pipe(() => bundledSplitter.split()) .pipe(() => gulpif(/\.js$/, babel(babelPresets))) .pipe(() => bundledSplitter.rejoin()) - .pipe(minimalDocument) + .pipe(minimalDocument); return mergedFiles .pipe(project.bundler()) .pipe(gulpif(/polymer\.html$/, bundlePipe())) .pipe(gulpif(/polymer\.html$/, size({ title: 'bundled size', gzip: true, showTotal: false, showFiles: true }))) // write to the bundled folder - .pipe(gulp.dest(BUNDLED_DIR)) + .pipe(gulp.dest(BUNDLED_DIR)); }); gulp.task('lint-eslint', function() { @@ -253,9 +259,9 @@ gulp.task('lint', (done) => { runseq('lint-eslint', 'lint-closure', done); }); -gulp.task('generate-closure-externs', ['clean'], () => { +gulp.task('generate-externs', ['clean'], () => { let genClosure = require('@polymer/gen-closure-declarations').generateDeclarations; return genClosure().then((declarations) => { - fs.writeFileSync('externs/closure-types.js', `${licenseHeader}${declarations}`); + fs.writeFileSync('externs/closure-types.js', `${header}${declarations}`); }); }); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f205824098..1c3767f596 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,15 +5,109 @@ "requires": true, "dependencies": { "@polymer/gen-closure-declarations": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@polymer/gen-closure-declarations/-/gen-closure-declarations-0.2.0.tgz", - "integrity": "sha512-PxRtS8Od26GUx8st/9HPaRzpD9z97HlcVge45/gDBFPno5iCwbPEtOePaY5zqLfJ5WoKgceaHMyjUQ2Y4A1JyQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-closure-declarations/-/gen-closure-declarations-0.4.0.tgz", + "integrity": "sha512-gRDYxL/2nko1dJDIS+l+nc7BBzIz4x5LF+X+fskXcoiH+2A4PdCBeQXbCSpq9Dne5iig6MIr7GaK+Z3Y+5STCA==", "dev": true, "requires": { - "escodegen": "1.8.1", - "polymer-analyzer": "2.2.2" + "escodegen": "1.9.0", + "polymer-analyzer": "2.3.0" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.37.tgz", + "integrity": "sha512-1IT6vNpmU9w18P3v6mN9idv18z5KPVTi4t7+rU9VLnkxo0LCam8IXy/eSVzOaQ1Wpabra2cN3A8K/SliPK/Suw==", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=", + "dev": true + }, + "polymer-analyzer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-2.3.0.tgz", + "integrity": "sha512-mgvLJ7hez52/Iy54GGFVRs9CoO0jXWeS2Iqows5GJpL+KnFiR1afziI2s/5teQcC53vtPUtWba8PEeQHroD5Hw==", + "dev": true, + "requires": { + "@types/chai-subset": "1.3.0", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/escodegen": "0.0.2", + "@types/estraverse": "0.0.6", + "@types/estree": "0.0.37", + "@types/node": "6.0.85", + "@types/parse5": "2.2.34", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.0.0", + "dom5": "2.3.0", + "escodegen": "1.9.0", + "espree": "3.5.0", + "estraverse": "4.2.0", + "jsonschema": "1.1.1", + "parse5": "2.2.3", + "shady-css-parser": "0.1.0", + "strip-indent": "2.0.0" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } } }, + "@polymer/sinonjs": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@polymer/sinonjs/-/sinonjs-1.17.1.tgz", + "integrity": "sha512-/U8F/cOTrbF2iVVYgINYmvKbtbexs+89Q3v8AaHADRYabTg7aOZGOb0RyWpOI+sUJt04kj63U4FwMhzW5r4wZA==", + "dev": true + }, + "@polymer/test-fixture": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@polymer/test-fixture/-/test-fixture-0.0.3.tgz", + "integrity": "sha1-REN1JpfU2Sk7vEEuoLXk00HxSdk=", + "dev": true + }, "@types/assert": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/assert/-/assert-0.0.29.tgz", @@ -21,13 +115,24 @@ "dev": true }, "@types/babel-core": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/@types/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha512-6slGEgitUD2n8UuO0SUxyOrx9eD3+P1GMbeVv5ItftnYn7QJiUktn0YAjzZxsH6ugg/qp88Es7Zvu5QgIwSaFw==", + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-core/-/babel-core-6.25.2.tgz", + "integrity": "sha512-+Ush/fQHUDIithA5yDJWZiL6KdOiVOs5yuj4qcgvQOCnmJec+RgzkLgxnpgmM6Ear9RXa3aCcwjPiUnStPp1zA==", "dev": true, "requires": { + "@types/babel-generator": "6.25.0", "@types/babel-template": "6.25.0", - "@types/babel-traverse": "6.25.1", + "@types/babel-traverse": "6.25.2", + "@types/babel-types": "6.25.1", + "@types/babylon": "6.16.2" + } + }, + "@types/babel-generator": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.0.tgz", + "integrity": "sha512-WbrKGSt8SKOxAivCHB1fsIP59EyCCfMHuCYcA6yenjGxnjh0rK3BOSPHR96RdZD6ukgyDwzMF/biQH4llowTDg==", + "dev": true, + "requires": { "@types/babel-types": "6.25.1" } }, @@ -42,9 +147,9 @@ } }, "@types/babel-traverse": { - "version": "6.25.1", - "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.1.tgz", - "integrity": "sha512-tac3sdvagKMgAaSUIWkZL72rQDcnaG3Ju++u3p3aeZu1c+xaxYhVm9n6PcP9xEgQ2JJzkVlsoI9agGPB0PiLzQ==", + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.2.tgz", + "integrity": "sha512-SO/YPiHOYApenZJecbw1Psd2lopAQ9Wc9HnFevEvM1mOoNXHglV8mHgVkCQJRIrn6UgWqHE/QfvQ1uG1crNgHA==", "dev": true, "requires": { "@types/babel-types": "6.25.1" @@ -66,9 +171,9 @@ } }, "@types/bluebird": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.8.tgz", - "integrity": "sha512-rBfrD56OxaqVjghtVqp2EEX0ieHkRk6IefDVrQXIVGvlhDOEBTvZff4Q02uo84ukVkH4k5eB1cPKGDM2NlFL8A==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.14.tgz", + "integrity": "sha512-tjQcDgJMNUf87h7hzlu923Mf1A4Co0KTwgUA6BlywwfJYL8lD+gIYJWEHL3kMuYyfPuypE1TDA9Vt8kT6tgWuQ==", "dev": true }, "@types/chai": { @@ -104,17 +209,14 @@ "integrity": "sha1-ldxzOiM5qoRjgdfxN3eS0lU9wn0=", "dev": true, "requires": { - "@types/express": "4.0.36" + "@types/express": "4.0.37" } }, "@types/content-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@types/content-type/-/content-type-1.1.0.tgz", - "integrity": "sha512-mHFVIWPuPnN4m4yiiQEN/L/aAlH9v6KWrQ1bdKEBB/KluMEVTBE4r48SaDIDR9G3tq0X428Xv55se4kogg89Tg==", - "dev": true, - "requires": { - "@types/express": "4.0.36" - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/content-type/-/content-type-1.1.1.tgz", + "integrity": "sha512-sM4E6PLLKsr7YQVvr57fRCWEElo0QjwPLjUnYYdAcMC5a9R7u3YuTVIWQH2OQXHoyvWmogaDqkWs9zyNJ8KiwA==", + "dev": true }, "@types/cssbeautify": { "version": "0.3.1", @@ -134,6 +236,15 @@ "integrity": "sha1-fOpBqyQukQ6xD2WuGK66RZ1ms18=", "dev": true }, + "@types/estraverse": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/estraverse/-/estraverse-0.0.6.tgz", + "integrity": "sha1-Zp9833KreX5hJfjQD+0z1M8wwiE=", + "dev": true, + "requires": { + "@types/estree": "0.0.34" + } + }, "@types/estree": { "version": "0.0.34", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.34.tgz", @@ -141,19 +252,19 @@ "dev": true }, "@types/express": { - "version": "4.0.36", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.0.36.tgz", - "integrity": "sha512-bT9q2eqH/E72AGBQKT50dh6AXzheTqigGZ1GwDiwmx7vfHff0bZOrvUWjvGpNWPNkRmX1vDF6wonG6rlpBHb1A==", + "version": "4.0.37", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.0.37.tgz", + "integrity": "sha512-tIULTLzQpFFs5/PKnFIAFOsXQxss76glppbVKR3/jddPK26SBsD5HF5grn5G2jOGtpRWSBvYmDYoduVv+3wOXg==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.0.49", - "@types/serve-static": "1.7.31" + "@types/express-serve-static-core": "4.0.53", + "@types/serve-static": "1.7.32" } }, "@types/express-serve-static-core": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.0.49.tgz", - "integrity": "sha512-b7mVHoURu1xaP/V6xw1sYwyv9V0EZ7euyi+sdnbnTZxEkAh4/hzPsI6Eflq+ZzHQ/Tgl7l16Jz+0oz8F46MLnA==", + "version": "4.0.53", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.0.53.tgz", + "integrity": "sha512-zaGeOpEYp5G2EhjaUFdVwysDrfEYc6Q6iPhd3Kl4ip30x0tvVv7SuJvY3yzCUSuFlzAG8N5KsyY6BJg93/cn+Q==", "dev": true, "requires": { "@types/node": "6.0.85" @@ -167,22 +278,22 @@ "optional": true }, "@types/glob": { - "version": "5.0.30", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz", - "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=", + "version": "5.0.33", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.33.tgz", + "integrity": "sha512-BcD4yyWz+qmCggaYMSFF0Xn7GkO6tgwm3Fh9Gxk/kQmEU3Z7flQTnVlMyKBUNvXXNTCCyjqK4XT4/2hLd1gQ2A==", "dev": true, "requires": { - "@types/minimatch": "2.0.29", + "@types/minimatch": "3.0.1", "@types/node": "6.0.85" } }, "@types/glob-stream": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-3.1.30.tgz", - "integrity": "sha1-uFOZC0Ckz+aoDsDS+t9o2AYPeLE=", + "version": "3.1.31", + "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-3.1.31.tgz", + "integrity": "sha512-UxdJkuoXh48URR4gJSAQAXSTeo98KTsEalJc+7wNmWrkK+8/z/V71tddUYzxtM/nlDJEKHW5Fbyh02KuHwlytg==", "dev": true, "requires": { - "@types/glob": "5.0.30", + "@types/glob": "5.0.33", "@types/node": "6.0.85" } }, @@ -200,9 +311,9 @@ "dev": true }, "@types/minimatch": { - "version": "2.0.29", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-2.0.29.tgz", - "integrity": "sha1-UALhT3Xi1x5WQoHfBDHIwbSio2o=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.1.tgz", + "integrity": "sha512-rUO/jz10KRSyA9SHoCWQ8WX9BICyj5jZYu1/ucKEJKb4KzLZCKMURdYbadP157Q6Zl1x0vHsrU+Z/O0XlhYQDw==", "dev": true }, "@types/mz": { @@ -245,34 +356,34 @@ "dev": true }, "@types/serve-static": { - "version": "1.7.31", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.7.31.tgz", - "integrity": "sha1-FUVt6NmNa0z/Mb5savdJKuY/Uho=", + "version": "1.7.32", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.7.32.tgz", + "integrity": "sha512-WpI0g7M1FiOmJ/a97Qrjafq2I938tjAZ3hZr9O7sXyA6oUhH3bqUNZIt7r1KZg8TQAKxcvxt6JjQ5XuLfIBFvg==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.0.49", + "@types/express-serve-static-core": "4.0.53", "@types/mime": "0.0.29" } }, "@types/spdy": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.2.tgz", - "integrity": "sha512-MfIOcqTpECcKEMEAtpRQJqAdczKk/R55VGRfi5PDUlbpndrPz5t+knh7E3X0MnBMEOpRFY1oubLy81RHa6HrPg==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.4.tgz", + "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { "@types/node": "6.0.85" } }, "@types/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-TPIseVAeeQWgtiRx8z2/JFz+xVI9iRC2xXwmxddCk8s8ggNk5n6EiSWTBNDIGVdle7eAgEfEIPUXIPRULzAAjQ==", + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-+z7Q72Mlnq6SFkQYHzLg2Z70pIsgRVzgx1b5PV8eUv5uaZ/zoqIs45XnhtToW4gTeX4FbjIP49nhIjyvPF4rPg==", "dev": true }, "@types/vinyl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.0.tgz", - "integrity": "sha1-/SE79/QTbd4h/hiVUAsSwYb4wmg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.1.tgz", + "integrity": "sha512-Joudabfn2ZofU2usW04y8OLmN75u7ZQkW0MCT3AnoBf5oUBp5iQ3Pgfz9+y1RdWkzhCPZo9/wBJ7FMWW2JrY0g==", "dev": true, "requires": { "@types/node": "6.0.85" @@ -284,9 +395,9 @@ "integrity": "sha1-RmMBe8gCxlcOrk80Cf1cq/l8v94=", "dev": true, "requires": { - "@types/glob-stream": "3.1.30", + "@types/glob-stream": "3.1.31", "@types/node": "6.0.85", - "@types/vinyl": "2.0.0" + "@types/vinyl": "2.0.1" } }, "@types/which": { @@ -297,24 +408,24 @@ "optional": true }, "@types/winston": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.4.tgz", - "integrity": "sha512-lUhWIhgSpk4GHoa/hUuvkueAdP0a4NG9BRDjKX9r6pSYo1xSKKYXu+WatBwTzX96wJgeQdzrlGeUF9f2iOjSKA==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.6.tgz", + "integrity": "sha512-gZsUc53u4JHqt5nvfgTnjNP1SkzDmDtY7eZz/8WUFL43Pp8KMR+g8LiHjslwLLheIS/hfGH55QW4tJVjNwYh/Q==", "dev": true, "requires": { "@types/node": "6.0.85" } }, "@webcomponents/shadycss": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.0.4.tgz", - "integrity": "sha512-GYIVWDKRtZACex15XUj3m118YYEeagl1ZO4WiMGjnVVVoElYV5ZP+Jc6AIpjAKU4we2XkxVljCf2OiBQpCoKjg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.0.6.tgz", + "integrity": "sha512-4yGifxIQkDzf3SRQIRE4e4cI09yawgZ6GHsnrkSLdohesKo4oMgxc5sF0wv2DQN7o7mCAjBYnunQXcHmC62qhw==", "dev": true }, "@webcomponents/webcomponentsjs": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.0.7.tgz", - "integrity": "sha512-LG33Gw6YUB4TECH67mtB+8fZZVn4Yfav5Ev7QQu+KlTFLcPTdQhRyERsznbnEF7DQBKritZhYSuem/RWVS3k4g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.0.14.tgz", + "integrity": "sha512-YtxQ9S318BmLLkc8I4hmugg+P1HXgLrPoTCwNJkEH4nt+qxEkp7lv7xi/ljEnSxprxAYQrQt4kHJajs8G7069A==", "dev": true }, "abbrev": { @@ -324,12 +435,12 @@ "dev": true }, "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "2.1.16", + "mime-types": "2.1.17", "negotiator": "0.6.1" } }, @@ -773,37 +884,53 @@ } }, "babel-helper-define-map": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.25.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.0", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true } } }, - "babel-helper-evaluate-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.1.0.tgz", - "integrity": "sha1-ldmMTqNhUEg9sufT7J4ZVKcmKcs=", - "dev": true - }, - "babel-helper-flip-expressions": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.1.2.tgz", - "integrity": "sha1-d/ZlL53pxCQB2Ce9RuvSEJ4+8Yo=", - "dev": true - }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", @@ -843,18 +970,6 @@ "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", "dev": true }, - "babel-helper-is-void-0": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.1.1.tgz", - "integrity": "sha1-cvIaOrugvvODf5F0/KcxrtmgKIg=", - "dev": true - }, - "babel-helper-mark-eval-scopes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.1.1.tgz", - "integrity": "sha1-RVQ0Xt+fJUlCe9IJjlMCU/ivKZI=", - "dev": true - }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", @@ -866,30 +981,52 @@ } }, "babel-helper-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.25.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.0", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true } } }, - "babel-helper-remove-or-void": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.1.1.tgz", - "integrity": "sha1-nX4YVtxvr8tBsoOkFnMNwYRPZtc=", - "dev": true - }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", @@ -904,12 +1041,6 @@ "babel-types": "6.25.0" } }, - "babel-helper-to-multiple-sequence-expressions": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.1.1.tgz", - "integrity": "sha1-XxuDKznkrPlU6RN/AlE5XHEZazU=", - "dev": true - }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", @@ -929,100 +1060,6 @@ "babel-runtime": "6.25.0" } }, - "babel-plugin-minify-builtins": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.1.3.tgz", - "integrity": "sha1-TyGn3LUfkaBOpx1H/w6OOwX+wCE=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "0.1.0" - } - }, - "babel-plugin-minify-constant-folding": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.1.3.tgz", - "integrity": "sha1-V70XKt+LjXStfJlhLrlQQU6+o8o=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "0.1.0" - } - }, - "babel-plugin-minify-dead-code-elimination": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.7.tgz", - "integrity": "sha1-d09TbzR7mDk6J7qnF4cpaIE8NCw=", - "dev": true, - "requires": { - "babel-helper-mark-eval-scopes": "0.1.1", - "babel-helper-remove-or-void": "0.1.1", - "lodash.some": "4.6.0" - } - }, - "babel-plugin-minify-flip-comparisons": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.1.2.tgz", - "integrity": "sha1-4oa0C3WZsY3+oZUHHkJ5Rlz8GIQ=", - "dev": true, - "requires": { - "babel-helper-is-void-0": "0.1.1" - } - }, - "babel-plugin-minify-guarded-expressions": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.1.2.tgz", - "integrity": "sha1-38PUc7A2LZYF084KweIjKMYNEAc=", - "dev": true, - "requires": { - "babel-helper-flip-expressions": "0.1.2" - } - }, - "babel-plugin-minify-infinity": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.1.2.tgz", - "integrity": "sha1-Xxz2fd7cuhPIoA2oMlQt8AkaHNQ=", - "dev": true - }, - "babel-plugin-minify-mangle-names": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.1.3.tgz", - "integrity": "sha1-v6JGYaZ5T7A4M1h+VYKLZUSeBv4=", - "dev": true, - "requires": { - "babel-helper-mark-eval-scopes": "0.1.1" - } - }, - "babel-plugin-minify-numeric-literals": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.1.1.tgz", - "integrity": "sha1-1LiwySX4dHFO4z7ksmZ4WD185/s=", - "dev": true - }, - "babel-plugin-minify-replace": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.1.2.tgz", - "integrity": "sha1-uQuecatNOzYyVimpG+q+E7CxasE=", - "dev": true - }, - "babel-plugin-minify-simplify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.1.2.tgz", - "integrity": "sha1-qWjxZY/esvx1noH+Mx2Jgp3w9rk=", - "dev": true, - "requires": { - "babel-helper-flip-expressions": "0.1.2", - "babel-helper-is-nodes-equiv": "0.0.1", - "babel-helper-to-multiple-sequence-expressions": "0.1.1" - } - }, - "babel-plugin-minify-type-constructors": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.1.2.tgz", - "integrity": "sha1-21PFt2y44vzUXYYvFxBMeHYTN+4=", - "dev": true, - "requires": { - "babel-helper-is-void-0": "0.1.1" - } - }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -1042,23 +1079,98 @@ } }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.25.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.0", + "regenerator-runtime": "0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true } } }, @@ -1068,7 +1180,7 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.24.1", + "babel-helper-define-map": "6.26.0", "babel-helper-function-name": "6.24.1", "babel-helper-optimise-call-expression": "6.24.1", "babel-helper-replace-supers": "6.24.1", @@ -1137,6 +1249,112 @@ "babel-runtime": "6.25.0" } }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.0", + "regenerator-runtime": "0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", @@ -1186,7 +1404,7 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.24.1", + "babel-helper-regex": "6.26.0", "babel-runtime": "6.25.0", "babel-types": "6.25.0" } @@ -1215,89 +1433,30 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.24.1", + "babel-helper-regex": "6.26.0", "babel-runtime": "6.25.0", "regexpu-core": "2.0.0" } }, - "babel-plugin-transform-inline-consecutive-adds": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz", - "integrity": "sha1-VELp8cGceKeJn4pN7m/UgfYQAfU=", - "dev": true - }, - "babel-plugin-transform-member-expression-literals": { - "version": "6.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.4.tgz", - "integrity": "sha1-BWebxAWWuRKTQBlZqhYgqxsr5Dc=", - "dev": true - }, - "babel-plugin-transform-merge-sibling-variables": { - "version": "6.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.5.tgz", - "integrity": "sha1-A6vfEHxhJBkT6yaN3t5tW8VBhiw=", - "dev": true - }, - "babel-plugin-transform-minify-booleans": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.2.tgz", - "integrity": "sha1-hFFXn3BucCweGrJ1beXI6jac8Hw=", - "dev": true - }, - "babel-plugin-transform-property-literals": { - "version": "6.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.4.tgz", - "integrity": "sha1-atMREQuAoZKlbvtd30/jym96Ydo=", + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "esutils": "2.0.2" + "regenerator-transform": "0.10.1" } }, - "babel-plugin-transform-regenerator": { + "babel-plugin-transform-strict-mode": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "regenerator-transform": "0.9.11" + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" } }, - "babel-plugin-transform-regexp-constructors": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.1.1.tgz", - "integrity": "sha1-MSq3SHzIihxi7iXqG2CH6JuHeZw=", - "dev": true - }, - "babel-plugin-transform-remove-console": { - "version": "6.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.4.tgz", - "integrity": "sha1-Qf3awZpymkw91+8pZOrAewlvmo8=", - "dev": true - }, - "babel-plugin-transform-remove-debugger": { - "version": "6.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.4.tgz", - "integrity": "sha1-+FcEoIrapxtV13AFtblOm53yH24=", - "dev": true - }, - "babel-plugin-transform-remove-undefined": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.1.2.tgz", - "integrity": "sha1-4ev1ERD2seBmXyg4Lvc/leUCNlI=", - "dev": true - }, - "babel-plugin-transform-simplify-comparison-operators": { - "version": "6.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.4.tgz", - "integrity": "sha1-KqJKJi1mTIyz4SWjBseY16LeCNU=", - "dev": true - }, - "babel-plugin-transform-undefined-to-void": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.2.tgz", - "integrity": "sha1-/isdKU6wXodSTrk3JN6m4sPWb6E=", - "dev": true - }, "babel-polyfill": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", @@ -1309,35 +1468,240 @@ "regenerator-runtime": "0.10.5" } }, - "babel-preset-babili": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/babel-preset-babili/-/babel-preset-babili-0.1.4.tgz", - "integrity": "sha1-rZ1mUQAvW8PwfKswB4EWf1RyS/I=", - "dev": true, - "requires": { - "babel-plugin-minify-builtins": "0.1.3", - "babel-plugin-minify-constant-folding": "0.1.3", - "babel-plugin-minify-dead-code-elimination": "0.1.7", - "babel-plugin-minify-flip-comparisons": "0.1.2", - "babel-plugin-minify-guarded-expressions": "0.1.2", - "babel-plugin-minify-infinity": "0.1.2", - "babel-plugin-minify-mangle-names": "0.1.3", - "babel-plugin-minify-numeric-literals": "0.1.1", - "babel-plugin-minify-replace": "0.1.2", - "babel-plugin-minify-simplify": "0.1.2", - "babel-plugin-minify-type-constructors": "0.1.2", - "babel-plugin-transform-inline-consecutive-adds": "0.1.2", - "babel-plugin-transform-member-expression-literals": "6.8.4", - "babel-plugin-transform-merge-sibling-variables": "6.8.5", - "babel-plugin-transform-minify-booleans": "6.8.2", - "babel-plugin-transform-property-literals": "6.8.4", - "babel-plugin-transform-regexp-constructors": "0.1.1", - "babel-plugin-transform-remove-console": "6.8.4", - "babel-plugin-transform-remove-debugger": "6.8.4", - "babel-plugin-transform-remove-undefined": "0.1.2", - "babel-plugin-transform-simplify-comparison-operators": "6.8.4", - "babel-plugin-transform-undefined-to-void": "6.8.2", + "babel-preset-minify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz", + "integrity": "sha512-mR8Q44RmMzm18bM2Lqd9uiPopzk5GDCtVuquNbLFmX6lOKnqWoenaNBxnWW0UhBFC75lEHTIgNGCbnsRI0pJVw==", + "dev": true, + "requires": { + "babel-plugin-minify-builtins": "0.2.0", + "babel-plugin-minify-constant-folding": "0.2.0", + "babel-plugin-minify-dead-code-elimination": "0.2.0", + "babel-plugin-minify-flip-comparisons": "0.2.0", + "babel-plugin-minify-guarded-expressions": "0.2.0", + "babel-plugin-minify-infinity": "0.2.0", + "babel-plugin-minify-mangle-names": "0.2.0", + "babel-plugin-minify-numeric-literals": "0.2.0", + "babel-plugin-minify-replace": "0.2.0", + "babel-plugin-minify-simplify": "0.2.0", + "babel-plugin-minify-type-constructors": "0.2.0", + "babel-plugin-transform-inline-consecutive-adds": "0.2.0", + "babel-plugin-transform-member-expression-literals": "6.8.5", + "babel-plugin-transform-merge-sibling-variables": "6.8.6", + "babel-plugin-transform-minify-booleans": "6.8.3", + "babel-plugin-transform-property-literals": "6.8.5", + "babel-plugin-transform-regexp-constructors": "0.2.0", + "babel-plugin-transform-remove-console": "6.8.5", + "babel-plugin-transform-remove-debugger": "6.8.5", + "babel-plugin-transform-remove-undefined": "0.2.0", + "babel-plugin-transform-simplify-comparison-operators": "6.8.5", + "babel-plugin-transform-undefined-to-void": "6.8.3", "lodash.isplainobject": "4.0.6" + }, + "dependencies": { + "babel-helper-evaluate-path": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz", + "integrity": "sha512-0EK9TUKMxHL549hWDPkQoS7R0Ozg1CDLheVBHYds2B2qoAvmr9ejY3zOXFsrICK73TN7bPhU14PBeKc8jcBTwg==", + "dev": true + }, + "babel-helper-flip-expressions": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz", + "integrity": "sha512-rAsPA1pWBc7e2E6HepkP2e1sXugT+Oq/VCqhyuHJ8aJ2d/ifwnJfd4Qxjm21qlW43AN8tqaeByagKK6wECFMSw==", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz", + "integrity": "sha512-Axj1AYuD0E3Dl7nT3KxROP7VekEofz3XtEljzURf3fABalLpr8PamtgLFt+zuxtaCxRf9iuZmbAMMYWri5Bazw==", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz", + "integrity": "sha512-KJuwrOUcHbvbh6he4xRXZFLaivK9DF9o3CrvpWnK1Wp0B+1ANYABXBMgwrnNFIDK/AvicxQ9CNr8wsgivlp4Aw==", + "dev": true + }, + "babel-helper-remove-or-void": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz", + "integrity": "sha512-1Z41upf/XR+PwY7Nd+F15Jo5BiQi5205ZXUuKed3yoyQgDkMyoM7vAdjEJS/T+M6jy32sXjskMUgms4zeiVtRA==", + "dev": true + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz", + "integrity": "sha512-ij9lpfdP3+Zc/7kNwa+NXbTrUlsYEWPwt/ugmQO0qflzLrveTIkbfOqQztvitk81aG5NblYDQXDlRohzu3oa8Q==", + "dev": true + }, + "babel-plugin-minify-builtins": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz", + "integrity": "sha512-4i+8ntaS8gwVUcOz5y+zE+55OVOl2nTbmHV51D4wAIiKcRI8U5K//ip1GHfhsgk/NJrrHK7h97Oy5jpqt0Iixg==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "0.2.0" + } + }, + "babel-plugin-minify-constant-folding": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz", + "integrity": "sha512-B3ffQBEUQ8ydlIkYv2MkZtTCbV7FAkWAV7NkyhcXlGpD10PaCxNGQ/B9oguXGowR1m16Q5nGhvNn8Pkn1MO6Hw==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "0.2.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz", + "integrity": "sha512-zE7y3pRyzA4zK5nBou0kTcwUTSQ/AiFrynt1cIEYN7vcO2gS9ZFZoI0aO9JYLUdct5fsC1vfB35408yrzTyVfg==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "0.2.0", + "babel-helper-mark-eval-scopes": "0.2.0", + "babel-helper-remove-or-void": "0.2.0", + "lodash.some": "4.6.0" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz", + "integrity": "sha512-QOqXSEmD/LhT3LpM1WCyzAGcQZYYKJF7oOHvS6QbpomHenydrV53DMdPX2mK01icBExKZcJAHF209wvDBa+CSg==", + "dev": true, + "requires": { + "babel-helper-is-void-0": "0.2.0" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz", + "integrity": "sha512-5+NSPdRQ9mnrHaA+zFj+D5OzmSiv90EX5zGH6cWQgR/OUqmCHSDqgTRPFvOctgpo8MJyO7Rt7ajs2UfLnlAwYg==", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "0.2.0" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz", + "integrity": "sha512-U694vrla1lN6vDHWGrR832t3a/A2eh+kyl019LxEE2+sS4VTydyOPRsAOIYAdJegWRA4cMX1lm9azAN0cLIr8g==", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz", + "integrity": "sha512-Gixuak1/CO7VCdjn15/8Bxe/QsAtDG4zPbnsNoe1mIJGCIH/kcmSjFhMlGJtXDQZd6EKzeMfA5WmX9+jvGRefw==", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "0.2.0" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz", + "integrity": "sha512-VcLpb+r1YS7+RIOXdRsFVLLqoh22177USpHf+JM/g1nZbzdqENmfd5v534MLAbRErhbz6SyK+NQViVzVtBxu8g==", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz", + "integrity": "sha512-SEW6zoSVxh3OH6E1LCgyhhTWMnCv+JIRu5h5IlJDA11tU4ZeSF7uPQcO4vN/o52+FssRB26dmzJ/8D+z0QPg5Q==", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz", + "integrity": "sha512-Mj3Mwy2zVosMfXDWXZrQH5/uMAyfJdmDQ1NVqit+ArbHC3LlXVzptuyC1JxTyai/wgFvjLaichm/7vSUshkWqw==", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "0.2.0", + "babel-helper-is-nodes-equiv": "0.0.1", + "babel-helper-to-multiple-sequence-expressions": "0.2.0" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz", + "integrity": "sha512-NiOvvA9Pq6bki6nP4BayXwT5GZadw7DJFDDzHmkpnOQpENWe8RtHtKZM44MG1R6EQ5XxgbLdsdhswIzTkFlO5g==", + "dev": true, + "requires": { + "babel-helper-is-void-0": "0.2.0" + } + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz", + "integrity": "sha512-GlhOuLOQ28ua9prg0hT33HslCrEmz9xWXy9ZNZSACppCyRxxRW+haYtRgm7uYXCcd0q8ggCWD2pfWEJp5iiZfQ==", + "dev": true + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.5.tgz", + "integrity": "sha512-Ux3ligf+ukzWaCbBYOstDuFBhRgMiJHlpJBKV4P47qtzVkd0lg1ddPj9fqIJqAM0n+CvxipyrZrnNnw3CdtQCg==", + "dev": true + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.6.tgz", + "integrity": "sha512-o5Jioq553HtEAUN5uty7ELJMenXIxHI3PIs1yLqYWYQwP6mg6IPVAJ+U7i4zr9XGF/kb2RGsdehglGTV+vngqA==", + "dev": true + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.3.tgz", + "integrity": "sha512-bPbUhkeN2Nc0KH0/A19GwQGj8w+CvdJzyu8t59VoEDgsNMQ9Bopzi5DrVkrSsVjbYUaZpzq/DYLrH+wD5K2Tig==", + "dev": true + }, + "babel-plugin-transform-property-literals": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.5.tgz", + "integrity": "sha512-MmiQsQ5AcIaRZMJD0zY5C4H3xuHm06/nWgtOsz7AXV44VEIXIlPiJ39IFYJ4Qx67/fEm8zJAedzR8t+B7d10Bg==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz", + "integrity": "sha512-7IsQ6aQx6LAaOqy97/PthTf+5Nx9grZww3r6E62IdWe76Yr8KsuwVjxzqSPQvESJqTE3EMADQ9S0RtwWDGNG9Q==", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.5.tgz", + "integrity": "sha512-uuCKvtweCyIvvC8fi92EcWRtO2Kt5KMNMRK6BhpDXdeb3sxvGM7453RSmgeu4DlKns3OlvY9Ep5Q9m5a7RQAgg==", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.5.tgz", + "integrity": "sha512-InDQDdHPOLJKM+G6oXrEesf+P29QFBmcTXID+TAvZziVz+38xe2VO/Bn3FcRcRtnOOycbgsJkUNp9jIK+ist6g==", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz", + "integrity": "sha512-O8v57tPMHkp89kA4ZfQEYds/pzgvz/QYerBJjIuL5/Jc7RnvMVRA5gJY9zFKP7WayW8WOSBV4vh8Y8FJRio+ow==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "0.2.0" + } + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.5.tgz", + "integrity": "sha512-B3HlBZb+Uq86nRj5yNPO6pJ3noEdqHvzYkEYoUWtrsWTv48ZIRatYlumoOiif/v8llF13YjYjx9zhyznDx+N9g==", + "dev": true + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.3.tgz", + "integrity": "sha512-goYwp8dMrzHD6x9GjZ2M85Mk2vxf1h85CnUgAjfftUnlJvzF4uj5MrbReHBTbjQ96C8CuRzvhYZ3tv8H3Sc1ZA==", + "dev": true + } } }, "babel-register": { @@ -1517,27 +1881,27 @@ "dev": true }, "body-parser": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "dev": true, "requires": { - "bytes": "2.4.0", - "content-type": "1.0.2", - "debug": "2.6.7", + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", "depd": "1.1.1", "http-errors": "1.6.2", - "iconv-lite": "0.4.15", + "iconv-lite": "0.4.19", "on-finished": "2.3.0", - "qs": "6.4.0", - "raw-body": "2.2.0", + "qs": "6.5.1", + "raw-body": "2.3.2", "type-is": "1.6.15" }, "dependencies": { "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -1592,6 +1956,16 @@ "repeat-element": "1.1.2" } }, + "browser-capabilities": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browser-capabilities/-/browser-capabilities-0.2.0.tgz", + "integrity": "sha512-DGqul/36J8Pn+Ko4hrNjozeplctd/Dhb8V2gh3jxyqoYgisqCqlBSDmEb/xLRX47GXhav/NNITnpEcpW41ohzQ==", + "dev": true, + "requires": { + "@types/ua-parser-js": "0.7.32", + "ua-parser-js": "0.7.14" + } + }, "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", @@ -1666,9 +2040,9 @@ } }, "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "caller-path": { @@ -1744,6 +2118,12 @@ "supports-color": "2.0.0" } }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -1886,9 +2266,9 @@ "dev": true }, "compress-commons": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", - "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.1.tgz", + "integrity": "sha1-A77UVxhQv4dLQoOnNyaSh2j2Ry8=", "dev": true, "requires": { "buffer-crc32": "0.2.13", @@ -1903,29 +2283,32 @@ "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", "dev": true, "requires": { - "mime-db": "1.29.0" + "mime-db": "1.30.0" } }, "compression": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", - "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", "dev": true, "requires": { - "accepts": "1.3.3", - "bytes": "2.5.0", + "accepts": "1.3.4", + "bytes": "3.0.0", "compressible": "2.0.11", - "debug": "2.6.8", + "debug": "2.6.9", "on-headers": "1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.1" + "vary": "1.1.2" }, "dependencies": { - "bytes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", - "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -1978,9 +2361,9 @@ "dev": true }, "content-type": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, "convert-source-map": { @@ -2025,14 +2408,14 @@ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", "dev": true, "requires": { - "crc": "3.4.4", + "crc": "3.5.0", "readable-stream": "2.3.3" }, "dependencies": { "crc": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", - "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", "dev": true } } @@ -2046,6 +2429,12 @@ "capture-stack-trace": "1.0.0" } }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", @@ -2307,7 +2696,7 @@ "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", "dev": true, "requires": { - "urijs": "1.18.12" + "urijs": "1.19.0" } }, "dom5": { @@ -2485,6 +2874,16 @@ "ws": "1.1.4" }, "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, "debug": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", @@ -2850,9 +3249,9 @@ "dev": true }, "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "event-emitter": { @@ -2905,73 +3304,84 @@ } }, "express": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", - "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.1.tgz", + "integrity": "sha512-STB7LZ4N0L+81FJHGla2oboUHTk4PaN1RsOkoRh9OSeEKylvF5hwKYVX1xCLFaCT7MD0BNG/gX2WFMLqY6EMBw==", "dev": true, "requires": { - "accepts": "1.3.3", + "accepts": "1.3.4", "array-flatten": "1.1.1", + "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.2", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", - "debug": "2.6.8", + "debug": "2.6.9", "depd": "1.1.1", "encodeurl": "1.0.1", "escape-html": "1.0.3", - "etag": "1.8.0", - "finalhandler": "1.0.4", - "fresh": "0.5.0", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "1.1.2", "on-finished": "2.3.0", - "parseurl": "1.3.1", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "1.1.5", - "qs": "6.5.0", + "proxy-addr": "2.0.2", + "qs": "6.5.1", "range-parser": "1.2.0", - "send": "0.15.4", - "serve-static": "1.12.4", - "setprototypeof": "1.0.3", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", "statuses": "1.3.1", "type-is": "1.6.15", - "utils-merge": "1.0.0", - "vary": "1.1.1" + "utils-merge": "1.0.1", + "vary": "1.1.2" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, - "qs": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", - "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==", - "dev": true - }, "send": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "dev": true, "requires": { - "debug": "2.6.8", + "debug": "2.6.9", "depd": "1.1.1", "destroy": "1.0.4", "encodeurl": "1.0.1", "escape-html": "1.0.3", - "etag": "1.8.0", - "fresh": "0.5.0", + "etag": "1.8.1", + "fresh": "0.5.2", "http-errors": "1.6.2", - "mime": "1.3.4", + "mime": "1.4.1", "ms": "2.0.0", "on-finished": "2.3.0", "range-parser": "1.2.0", "statuses": "1.3.1" } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true } } }, @@ -3092,18 +3502,29 @@ "dev": true }, "finalhandler": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", - "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "dev": true, "requires": { - "debug": "2.6.8", + "debug": "2.6.9", "encodeurl": "1.0.1", "escape-html": "1.0.3", "on-finished": "2.3.0", - "parseurl": "1.3.1", + "parseurl": "1.3.2", "statuses": "1.3.1", "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "find-index": { @@ -3287,7 +3708,7 @@ "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", - "mime-types": "2.1.16" + "mime-types": "2.1.17" } }, "formatio": { @@ -3300,9 +3721,9 @@ } }, "forwarded": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, "freeport": { @@ -3313,9 +3734,9 @@ "optional": true }, "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "fs-exists-sync": { @@ -3604,9 +4025,9 @@ } }, "google-closure-compiler": { - "version": "20170806.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20170806.0.0.tgz", - "integrity": "sha1-GwTZgFqLblxvl/2b4Ktx4aeIjuE=", + "version": "20170910.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20170910.0.0.tgz", + "integrity": "sha1-enz1ER1zdrN2znRhE34bA5MD8eo=", "dev": true, "requires": { "chalk": "1.1.3", @@ -3992,6 +4413,12 @@ "sntp": "1.0.9" } }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -4203,9 +4630,9 @@ } }, "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "ignore": { @@ -4302,9 +4729,9 @@ } }, "ipaddr.js": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "dev": true }, "is-absolute": { @@ -5071,6 +5498,17 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "1.1.5" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5138,24 +5576,24 @@ } }, "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", "dev": true }, "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "1.29.0" + "mime-db": "1.30.0" } }, "minimalistic-assert": { @@ -5206,9 +5644,9 @@ } }, "mocha": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz", - "integrity": "sha512-pIU2PJjrPYvYRqVpjXzj76qltO9uBYI7woYAMoxbSefsa+vqAfptjoeevd6bUgwD0mPIO+hv9f7ltvsNreL2PA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -5218,6 +5656,7 @@ "escape-string-regexp": "1.0.5", "glob": "7.1.1", "growl": "1.9.2", + "he": "1.1.1", "json3": "3.3.2", "lodash.create": "3.1.1", "mkdirp": "0.5.1", @@ -5295,9 +5734,9 @@ "dev": true }, "mz": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.6.0.tgz", - "integrity": "sha1-yLhSHZWN8KTydoAl22nHGe5O8c4=", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "requires": { "any-promise": "1.3.0", @@ -5680,9 +6119,9 @@ } }, "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, "path-dirname": { @@ -5782,12 +6221,14 @@ } }, "pem": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/pem/-/pem-1.9.7.tgz", - "integrity": "sha1-04f5lvKSx8nepjmlNYBedMtQMWE=", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/pem/-/pem-1.12.2.tgz", + "integrity": "sha512-HhWhqbtPEWbhfFOA4i/4KIK5p/MbdqmlYBniUZPDmOXAXghXugYk1KfrWLcRd6SVFpmsNqFE7hq8ekW0U9Mytg==", "dev": true, "requires": { + "md5": "2.2.1", "os-tmpdir": "1.0.2", + "safe-buffer": "5.1.1", "which": "1.3.0" } }, @@ -5843,23 +6284,23 @@ "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", "dev": true, "requires": { - "@types/node": "4.2.16", - "@types/winston": "2.3.4", - "winston": "2.3.1" + "@types/node": "4.2.20", + "@types/winston": "2.3.6", + "winston": "2.4.0" }, "dependencies": { "@types/node": { - "version": "4.2.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.16.tgz", - "integrity": "sha512-goVnbj0oGmXXGYjXviARHjgxj/rEyizBy3q0kYI/kb1yKDVaNrj0/vaFcYzfBQvFEbd3K+1SNru432et3/ys6w==", + "version": "4.2.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.20.tgz", + "integrity": "sha512-nSLKvYxEIV2bBlWvvpas2z7tKkg2qfkx2BdotvL1rkhbStlijGajd9+db8fghja1citNOa9cOVn20JQ6ImP9tg==", "dev": true } } }, "polymer-analyzer": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-2.2.2.tgz", - "integrity": "sha512-8kwxAAx95AMJbDQ1x6vKyCkTDnowG5q1nn8gPf91PP+GNgQhgVRPBeLZQzpPyHY7dplvOyEoBhtjZvaQDg5teA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-2.3.0.tgz", + "integrity": "sha512-mgvLJ7hez52/Iy54GGFVRs9CoO0jXWeS2Iqows5GJpL+KnFiR1afziI2s/5teQcC53vtPUtWba8PEeQHroD5Hw==", "dev": true, "requires": { "@types/chai-subset": "1.3.0", @@ -5868,7 +6309,8 @@ "@types/cssbeautify": "0.3.1", "@types/doctrine": "0.0.1", "@types/escodegen": "0.0.2", - "@types/estree": "0.0.34", + "@types/estraverse": "0.0.6", + "@types/estree": "0.0.37", "@types/node": "6.0.85", "@types/parse5": "2.2.34", "chalk": "1.1.3", @@ -5881,10 +6323,16 @@ "estraverse": "4.2.0", "jsonschema": "1.1.1", "parse5": "2.2.3", - "shady-css-parser": "0.0.8", + "shady-css-parser": "0.1.0", "strip-indent": "2.0.0" }, "dependencies": { + "@types/estree": { + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.37.tgz", + "integrity": "sha512-1IT6vNpmU9w18P3v6mN9idv18z5KPVTi4t7+rU9VLnkxo0LCam8IXy/eSVzOaQ1Wpabra2cN3A8K/SliPK/Suw==", + "dev": true + }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", @@ -5900,23 +6348,23 @@ } }, "polymer-build": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/polymer-build/-/polymer-build-2.0.0.tgz", - "integrity": "sha512-3m5BiEBZBYV3+tHk5OBgxypfQBkP3MuYpp8UbdQblf2uR1JopyWsLw55xbxdCpHqbjG0/KqSE9FcHx+ZGRKpkQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/polymer-build/-/polymer-build-2.1.0.tgz", + "integrity": "sha512-1I/bS4Jz6ed7WXDHES+mJ4v1hdexYZlMDvf2pmO1JvO2WwxUG4tlEdyhxn0T6jG7lES8y3NEfrB44/wilkpATQ==", "dev": true, "requires": { "@types/mz": "0.0.31", "@types/node": "6.0.85", "@types/parse5": "2.2.34", - "@types/vinyl": "2.0.0", + "@types/vinyl": "2.0.1", "@types/vinyl-fs": "0.0.28", "dom5": "2.3.0", "multipipe": "1.0.2", - "mz": "2.6.0", + "mz": "2.7.0", "parse5": "2.2.3", "plylog": "0.5.0", - "polymer-analyzer": "2.2.2", - "polymer-bundler": "3.0.1", + "polymer-analyzer": "2.3.0", + "polymer-bundler": "3.1.0", "polymer-project-config": "3.4.0", "sw-precache": "5.2.0", "vinyl": "1.2.0", @@ -6130,9 +6578,9 @@ } }, "polymer-bundler": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/polymer-bundler/-/polymer-bundler-3.0.1.tgz", - "integrity": "sha512-nimtMd5n+PfrKqSlJCx4dXUJLoocZ79/rce7OvV6CraQjWP/waPcIYbIQfUm0NGz8LqCJlyu5SN+IIbv0HNLIw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/polymer-bundler/-/polymer-bundler-3.1.0.tgz", + "integrity": "sha512-iBeqzoapRTMernTeoaJSAzmsJtCRNV5CRpUoncZCs+P80x6SX0YMxANPcTEWha4GtIQmo+suNVE4DdMm5oTJ4Q==", "dev": true, "requires": { "clone": "2.1.1", @@ -6142,8 +6590,8 @@ "espree": "3.5.0", "mkdirp": "0.5.1", "parse5": "2.2.3", - "polymer-analyzer": "2.2.2", - "source-map": "0.5.6" + "polymer-analyzer": "2.3.0", + "source-map": "0.5.7" }, "dependencies": { "parse5": { @@ -6153,9 +6601,9 @@ "dev": true }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } @@ -6173,29 +6621,30 @@ } }, "polyserve": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/polyserve/-/polyserve-0.20.0.tgz", - "integrity": "sha512-i99n2lHz2Xuje7dRZAFx4DhLPLhZyDiiBz6QLaq0TmWEjqoDYsf/EFikemD2SEz8Cf4Q03Tn0E6EZ742KuXGhw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/polyserve/-/polyserve-0.23.0.tgz", + "integrity": "sha512-ijzCbFttKG1F0hMTWWIzMoo+sxsfpXctoHFigw2ViBcvUt/aUBfJCUTHPKHhi/3zAgtw5Ej3SgoIOY9LflpXAw==", "dev": true, "requires": { "@types/assert": "0.0.29", - "@types/babel-core": "6.25.0", + "@types/babel-core": "6.25.2", + "@types/babylon": "6.16.2", "@types/compression": "0.0.33", - "@types/content-type": "1.1.0", - "@types/express": "4.0.36", + "@types/content-type": "1.1.1", + "@types/express": "4.0.37", "@types/mime": "0.0.29", "@types/mz": "0.0.29", - "@types/node": "8.0.20", + "@types/node": "8.0.33", "@types/opn": "3.0.28", "@types/parse5": "2.2.34", "@types/pem": "1.9.2", - "@types/serve-static": "1.7.31", - "@types/spdy": "3.4.2", - "@types/ua-parser-js": "0.7.31", + "@types/serve-static": "1.7.32", + "@types/spdy": "3.4.4", + "@types/ua-parser-js": "0.7.32", "babel-core": "6.25.0", "babel-plugin-transform-es2015-arrow-functions": "6.22.0", "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.24.1", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", "babel-plugin-transform-es2015-classes": "6.24.1", "babel-plugin-transform-es2015-computed-properties": "6.24.1", "babel-plugin-transform-es2015-destructuring": "6.23.0", @@ -6203,6 +6652,7 @@ "babel-plugin-transform-es2015-for-of": "6.23.0", "babel-plugin-transform-es2015-function-name": "6.24.1", "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", "babel-plugin-transform-es2015-object-super": "6.24.1", "babel-plugin-transform-es2015-parameters": "6.24.1", "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", @@ -6211,26 +6661,28 @@ "babel-plugin-transform-es2015-template-literals": "6.22.0", "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "babylon": "6.17.4", + "browser-capabilities": "0.2.0", "command-line-args": "3.0.5", "command-line-usage": "3.0.8", - "compression": "1.7.0", - "content-type": "1.0.2", + "compression": "1.7.1", + "content-type": "1.0.4", "dom5": "2.3.0", - "express": "4.15.4", + "express": "4.16.1", "find-port": "1.0.1", "http-proxy-middleware": "0.17.4", "lru-cache": "4.1.1", - "mime": "1.3.4", - "mz": "2.6.0", + "mime": "1.4.1", + "mz": "2.7.0", "opn": "3.0.3", "parse5": "2.2.3", - "pem": "1.9.7", - "polymer-build": "2.0.0", + "pem": "1.12.2", + "polymer-build": "2.1.0", + "requirejs": "2.3.5", "resolve": "1.4.0", "send": "0.14.2", - "spdy": "3.4.7", - "ua-parser-js": "0.7.14" + "spdy": "3.4.7" }, "dependencies": { "@types/mz": { @@ -6239,14 +6691,14 @@ "integrity": "sha1-vCRyjGSZc/HHhR6QM/nOUlZowns=", "dev": true, "requires": { - "@types/bluebird": "3.5.8", - "@types/node": "8.0.20" + "@types/bluebird": "3.5.14", + "@types/node": "8.0.33" } }, "@types/node": { - "version": "8.0.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.20.tgz", - "integrity": "sha512-MnB7YEpmLUyEWRVRhKpRs4swwqITnY8BcVFPoTuCl99SCplI/lLUiU5vcJ/OANDqwkpdIg0pDEM38K22KQT2RA==", + "version": "8.0.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.33.tgz", + "integrity": "sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==", "dev": true }, "debug": { @@ -6330,6 +6782,14 @@ "on-finished": "2.3.0", "range-parser": "1.2.0", "statuses": "1.3.1" + }, + "dependencies": { + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + } } }, "setprototypeof": { @@ -6402,13 +6862,13 @@ } }, "proxy-addr": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "dev": true, "requires": { - "forwarded": "0.1.0", - "ipaddr.js": "1.4.0" + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" } }, "pseudomap": { @@ -6431,9 +6891,9 @@ "optional": true }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, "randomatic": { @@ -6484,13 +6944,14 @@ "dev": true }, "raw-body": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", "dev": true, "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.15", + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", "unpipe": "1.0.0" } }, @@ -6600,9 +7061,9 @@ "dev": true }, "regenerate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", "dev": true }, "regenerator-runtime": { @@ -6612,9 +7073,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { "babel-runtime": "6.25.0", @@ -6638,7 +7099,7 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.2", + "regenerate": "1.3.3", "regjsgen": "0.2.0", "regjsparser": "0.1.5" } @@ -6737,11 +7198,11 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.16", + "mime-types": "2.1.17", "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.2", + "tough-cookie": "2.3.3", "tunnel-agent": "0.4.3", "uuid": "3.1.0" }, @@ -6770,6 +7231,12 @@ "resolve-from": "1.0.1" } }, + "requirejs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.5.tgz", + "integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==", + "dev": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -6830,9 +7297,9 @@ } }, "run-sequence": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-2.1.0.tgz", - "integrity": "sha1-FJ2gElFvIdz3nbbcmaKpVgNjGyE=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-2.2.0.tgz", + "integrity": "sha512-xW5DmUwdvoyYQUMPKN8UW7TZSFs7AxtT59xo1m5y91jHbvwGlGgOmdV1Yw5P68fkjf3aHUZ4G1o1mZCtNe0qtw==", "dev": true, "requires": { "chalk": "1.1.3", @@ -7123,32 +7590,41 @@ "dev": true }, "serve-static": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", - "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "dev": true, "requires": { "encodeurl": "1.0.1", "escape-html": "1.0.3", - "parseurl": "1.3.1", - "send": "0.15.4" + "parseurl": "1.3.2", + "send": "0.16.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "send": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "dev": true, "requires": { - "debug": "2.6.8", + "debug": "2.6.9", "depd": "1.1.1", "destroy": "1.0.4", "encodeurl": "1.0.1", "escape-html": "1.0.3", - "etag": "1.8.0", - "fresh": "0.5.0", + "etag": "1.8.1", + "fresh": "0.5.2", "http-errors": "1.6.2", - "mime": "1.3.4", + "mime": "1.4.1", "ms": "2.0.0", "on-finished": "2.3.0", "range-parser": "1.2.0", @@ -7176,9 +7652,9 @@ "dev": true }, "shady-css-parser": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.0.8.tgz", - "integrity": "sha1-Ae7FprnsjkftvakbRN/lkSeeoNE=", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", "dev": true }, "shelljs": { @@ -7217,9 +7693,9 @@ } }, "sinon-chai": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.12.0.tgz", - "integrity": "sha512-/J38xAWY5ppvRKuSrdnpVv7rWmxjfma9lL/iYaqn+ge/JynkhM9w8PaFAoGvGv+Tj2nEQWkkS8S4Syt4Lw1K6Q==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz", + "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==", "dev": true }, "slash": { @@ -7938,9 +8414,9 @@ "dev": true }, "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { "punycode": "1.4.1" @@ -7999,7 +8475,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.16" + "mime-types": "2.1.17" } }, "typedarray": { @@ -8083,9 +8559,9 @@ } }, "urijs": { - "version": "1.18.12", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.18.12.tgz", - "integrity": "sha512-WlvUkocbQ+GYhi8zkcbecbGYq7YLSd2I3InxAfqeh6mWvWalBE7bISDHcAL3J7STrWFfizuJ709srHD+RuABPQ==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.0.tgz", + "integrity": "sha512-Qs2odXn0hST5VSPVjpi73CMqtbAoanahaqWBujGU+IyMrMqpWcIhDewxQRhCkmqYxuyvICDcSuLdv2O7ncWBGw==", "dev": true }, "url-parse-lax": { @@ -8127,9 +8603,9 @@ "dev": true }, "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { @@ -8170,9 +8646,9 @@ "dev": true }, "vary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "verror": { @@ -8385,7 +8861,7 @@ "optional": true, "requires": { "@types/chalk": "0.4.31", - "@types/express": "4.0.36", + "@types/express": "4.0.37", "@types/freeport": "1.0.21", "@types/launchpad": "0.6.0", "@types/node": "6.0.85", @@ -8425,9 +8901,9 @@ } }, "wd": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/wd/-/wd-1.4.0.tgz", - "integrity": "sha512-VHii2f+jck5fgEcTQYCR3z99B99tPz0HlLCGsNowI2qsI21xMnKwd9O3SnJQnEBq0Erx9FPFfiZno+OYtXDXyw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/wd/-/wd-1.4.1.tgz", + "integrity": "sha512-C0wWd2X4SWWcyx5qxaixiZE4Vb07sl0yDfWHPeml8lDHSbmI9erE9BmTHIqOGoDxGgJ3/hkFmODQ7ZLKiF8+8Q==", "dev": true, "requires": { "archiver": "1.3.0", @@ -8464,38 +8940,41 @@ } }, "web-component-tester": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/web-component-tester/-/web-component-tester-6.0.1.tgz", - "integrity": "sha512-viy1V/XAbkuDP6N0EZWmyBvfeZwQXEfnzSZs66ur/8iu07QBHsp9lIAFlUswfsEkUHMQHqiuncsp7EA5AgCDvA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/web-component-tester/-/web-component-tester-6.3.0.tgz", + "integrity": "sha512-UZnbRBFh0/lAT3sZe0M9guWa9iHosKJP/HzaqDhVja0vxZlIiaVcHGVEQ1SqZbXCV3oOHKSBK2ff28oaknLCWg==", "dev": true, "requires": { + "@polymer/sinonjs": "1.17.1", + "@polymer/test-fixture": "0.0.3", + "@webcomponents/webcomponentsjs": "1.0.14", "accessibility-developer-tools": "2.12.0", "async": "1.5.2", - "body-parser": "1.17.2", + "body-parser": "1.18.2", "chai": "3.5.0", "chalk": "1.1.3", "cleankill": "1.0.3", - "express": "4.15.4", + "express": "4.16.1", "findup-sync": "0.4.3", "glob": "7.1.2", "lodash": "3.10.1", - "mocha": "3.5.0", + "mocha": "3.5.3", "multer": "1.3.0", "nomnom": "1.8.1", - "polyserve": "0.20.0", + "polyserve": "0.23.0", "promisify-node": "0.4.0", "resolve": "1.4.0", "semver": "5.4.1", "send": "0.11.1", "server-destroy": "1.0.1", "sinon": "1.17.7", - "sinon-chai": "2.12.0", + "sinon-chai": "2.14.0", "socket.io": "1.7.4", "stacky": "1.3.1", "update-notifier": "1.0.3", "wct-local": "2.0.15", "wct-sauce": "2.0.0-pre.1", - "wd": "1.4.0" + "wd": "1.4.1" }, "dependencies": { "async": { @@ -8537,9 +9016,9 @@ } }, "winston": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.3.1.tgz", - "integrity": "sha1-C0hCDZeMAYBM8CMLZIhhWYIloRk=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", "dev": true, "requires": { "async": "1.0.0", @@ -8683,7 +9162,7 @@ "dev": true, "requires": { "archiver-utils": "1.3.0", - "compress-commons": "1.2.0", + "compress-commons": "1.2.1", "lodash": "4.17.4", "readable-stream": "2.3.3" }, diff --git a/package.json b/package.json index 86ee55a8f3..4a791ee97d 100644 --- a/package.json +++ b/package.json @@ -8,14 +8,14 @@ "test": "test" }, "devDependencies": { - "@polymer/gen-closure-declarations": "^0.2.0", - "@webcomponents/shadycss": "^1.0.4", - "@webcomponents/webcomponentsjs": "^1.0.7", - "babel-preset-babili": "^0.1.4", + "@polymer/gen-closure-declarations": "^0.4.0", + "@webcomponents/shadycss": "^1.0.6", + "@webcomponents/webcomponentsjs": "^1.0.14", + "babel-preset-minify": "^0.2.0", "del": "^3.0.0", "dom5": "^2.3.0", "eslint-plugin-html": "^2.0.1", - "google-closure-compiler": "^20170806.0.0", + "google-closure-compiler": "^20170910.0.0", "gulp": "^3.9.1", "gulp-babel": "^6.1.2", "gulp-eslint": "^3.0.1", @@ -25,10 +25,10 @@ "lazypipe": "^1.0.1", "merge-stream": "^1.0.1", "parse5": "^3.0.2", - "polymer-build": "^2.0.0", - "run-sequence": "^2.1.0", + "polymer-build": "^2.1.0", + "run-sequence": "^2.2.0", "through2": "^2.0.0", - "web-component-tester": "^6.0.1" + "web-component-tester": "^6.3.0" }, "scripts": { "build": "gulp",