diff --git a/dist/composi.js.map b/dist/composi.js.map index 98dd314..042b4bc 100644 --- a/dist/composi.js.map +++ b/dist/composi.js.map @@ -1 +1 @@ -{"version":3,"file":"composi.js","sources":["../lib/utils/patchElementHelpers/getKey.js","../lib/utils/mixin.js","../lib/utils/patchElementHelpers/setProp.js","../lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js","../lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js","../lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js","../lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js","../lib/utils/patchElementHelpers/removeElement.js","../lib/utils/patchElementHelpers/removeChildren.js","../lib/utils/patchElementHelpers/createNewElement.js","../lib/utils/patchElementHelpers/createElement.js","../lib/utils/patchElement.js","../lib/utils/patchElementHelpers/updateElement.js","../lib/utils/patchElementHelpers/trackOldElements.js","../lib/utils/patchElementHelpers/removeOldChild.js","../lib/utils/patchElementHelpers/removeOldKeyedElements.js","../lib/patch.js","../lib/utils/rAF.js","../lib/utils/componentHelpers/isObject.js","../lib/utils/componentHelpers/updateComponent.js","../lib/utils/componentHelpers/isSameNode.js","../lib/utils/componentHelpers/eventWhitelist.js","../lib/component.js","../lib/utils/componentHelpers/handleSetState.js","../lib/utils/componentHelpers/unmountComponent.js","../lib/h.js","../lib/mount.js","../lib/utils/fragmentError.js","../lib/render.js","../lib/fragment.js"],"sourcesContent":["/**\n * @description Function to get a node's key.\n * @param {Object} node A virtual node.\n * @returns {string | number | null} key.\n */\nexport const getKey = node => (node ? node.key : null)\n","/**\n * @description A function to merge two objects together. The properties of the second object will overwrite any matching properties in the first object.\n * @param {Object.} obj1 The first object to merge.\n * @param {Object.} obj2 The second object to merge.\n * @returns {Object.} Returns a new object of the second object merged with the first.\n */\nexport function mixin(obj1, obj2) {\n const result = {}\n for (let i in obj1) {\n result[i] = obj1[i]\n }\n for (let i in obj2) {\n result[i] = obj2[i]\n }\n return result\n}\n","import { handleStyles } from './setPropHelpers/handleStyles'\nimport { handleClassName } from './setPropHelpers/handleClassName'\nimport { handleDangerouslySetInnerHTML } from './setPropHelpers/handleDangerouslySetInnerHTML'\nimport { handleXlinkHref } from './setPropHelpers/handleXlinkHref'\n\n/**\n * @description Function to set properties and attributes on element.\n * @param {Node} element The element to set props on.\n * @param {string} prop The property/attribute.\n * @param {*} value The value of the prop.\n * @param {string | number | boolean} oldValue The original value of the prop.\n * @param {boolean} isSVG Whether this is SVG or not\n * @returns {void} undefined\n */\nexport function setProp(element, prop, value, oldValue, isSVG) {\n // Do not add these as node attributes:\n if (\n prop === 'key' ||\n prop === 'onComponentDidMount' ||\n prop === 'onComponentDidUpdate' ||\n prop === 'onComponentWillUnmount'\n ) {\n return\n } else if (prop === 'style' && typeof value !== 'string') {\n handleStyles(element, prop, value, oldValue)\n } else {\n // Convert camel case props to lower case:\n prop = prop.toLowerCase()\n\n // Handle cases where 'className' is used:\n prop = handleClassName(prop)\n\n // Allow setting innerHTML:\n handleDangerouslySetInnerHTML(element, prop, value)\n\n if (prop in element && prop !== 'list' && !isSVG) {\n element[prop] = value == (null || 'no') ? '' : value\n } else if (\n value != null &&\n value !== 'null' &&\n value !== 'false' &&\n value !== 'no' &&\n value !== 'off'\n ) {\n // Support SVG 'xlink:href' property:\n if (prop === 'xlink-href') {\n handleXlinkHref(element, prop, value)\n } else {\n if (value === 'true') value = ''\n // Set prop as attribute, except dangerouslySetInnerHTML:\n if (prop !== 'dangerouslysetinnerhtml') {\n /** @type {Element} */ (element).setAttribute(prop, value)\n }\n }\n }\n\n if (\n value == null ||\n value === 'null' ||\n value === 'undefined' ||\n value === 'false' ||\n value === 'no' ||\n value === 'off'\n ) {\n /** @type {Element} */ (element).removeAttribute(prop)\n }\n }\n}\n","/**\n * @description Enable setting xlink href value for browser that only support SVG 1.0.\n * @param {Node} element\n * @param {string} prop\n * @param {*} value\n * @returns {void} undefined\n */\nexport function handleXlinkHref(element, prop, value) {\n /** @type {Element} */ (element).setAttributeNS('http://www.w3.org/1999/xlink', 'href', value);\n /** @type {Element} */(element).setAttribute('href', value)\n}\n","/**\n * @description Enable setting innerHTML as a prop.\n * @param {Node} element\n * @param {string} prop\n * @param {*} value\n * @returns {void} undefined\n */\nexport function handleDangerouslySetInnerHTML(element, prop, value) {\n if (prop === 'dangerouslysetinnerhtml') {\n /** @type {Element} */ (element).innerHTML = value\n }\n}\n","/**\n * @description Handle converting 'className' to 'class'.\n * @param {string} prop\n * @returns {string} string\n */\nexport function handleClassName(prop) {\n if (prop === 'classname') {\n prop = 'class'\n }\n return prop\n}\n","import { mixin } from '../../mixin'\n\n/**\n * @description Handle styles defined as object literals.\n * @param {Node} element\n * @param {string} prop\n * @param {any} value\n * @param {any} oldValue\n * @returns {void} undefined\n */\nexport function handleStyles(element, prop, value, oldValue) {\n for (let i in mixin(oldValue, value)) {\n const style = value == null || value[i] == null ? '' : value[i]\n if (i[0] === '-') {\n element[prop].setProperty(i, style)\n } else {\n element[prop][i] = style\n }\n }\n}\n","import { removeChildren } from './removeChildren'\n\n/**\n * @description Function to remove element from DOM.\n * @param {Node} parent The containing element in which the component resides.\n * @param {Node} element The parent of the element to remove.\n * @namespace {Node} node The element to remove.\n * @property {Object.} node.props\n * @returns {void} undefined\n */\nexport const removeElement = (parent, element, node) => {\n parent.removeChild(removeChildren(element, node))\n if (node && node.props && node.props.onComponentDidUnmount) {\n node.props.onComponentDidUnmount.call(\n node.props.onComponentDidUnmount,\n parent\n )\n }\n}\n","/**\n * @description A function to remove the children of a node.\n * @param {Node} element The parent of the node whose children will be removed.\n * @param {Node} node The node whose children will be removed.\n * @returns {Node} element The parent of the removed nodes.\n */\nexport function removeChildren(element, node) {\n const props = node['props']\n if (props) {\n for (let i = 0; i < /** @type {Element} */ (node).children.length; i++) {\n removeChildren(element.childNodes[i], /** @type {Element} */ (node).children[i])\n }\n }\n return element\n}\n","import { createElement } from '../patchElementHelpers/createElement'\nimport { removeElement} from '../patchElementHelpers/removeElement'\n\n/**\n * @description When oldNode does not exist or node.type is different, create a new element.\n * @param {Node} node \n * @param {boolean} isSVG \n * @param {Node} parent \n * @param {Node} element \n * @param {Node} oldNode \n * @returns {Node} Node\n */\nexport function createNewElement(node, isSVG, parent, element, oldNode) {\n const newElement = createElement(node, isSVG)\n if (parent) {\n parent.insertBefore(newElement, element)\n if (oldNode != null) {\n removeElement(parent, element, oldNode)\n }\n }\n element = newElement\n return element\n}\n","import { setProp } from './setProp'\n\n/**\n * @description Function to convert hyperscript/JSX into DOM nodes.\n * @param {string | number | Object} node A node to create. This may be a hyperscript function or a JSX tag which gets converted to hyperscript during transpilation.\n * @param {boolean} [isSVG] Whether the node is SVG or not.\n * @returns {Node} An element created from a virtual dom object.\n */\nexport function createElement(node, isSVG) {\n let element\n if (typeof node === 'number') node = node.toString()\n if (typeof node === 'string') {\n element = document.createTextNode(node)\n } else if ((isSVG = isSVG || node.type === 'svg')) {\n element = document.createElementNS('http://www.w3.org/2000/svg', node.type)\n } else {\n element = document.createElement(node.type)\n }\n /**\n * @property {Object.} node.props A virtual node stored on the node.\n */\n const props = node.props\n if (props) {\n for (let i = 0; i < node.children.length; i++) {\n element.appendChild(createElement(node.children[i], isSVG))\n }\n\n for (let prop in props) {\n setProp(element, prop, props[prop], null, isSVG)\n }\n }\n\n return element\n}\n","import { getKey } from './patchElementHelpers/getKey'\nimport { updateElement } from './patchElementHelpers/updateElement'\nimport { removeElement } from './patchElementHelpers/removeElement'\nimport { createNewElement } from './patchElementHelpers/createNewElement'\nimport { removeOldChild } from './patchElementHelpers/removeOldChild'\nimport { trackOldElements } from './patchElementHelpers/trackOldElements'\nimport { removeOldKeyedElements } from './patchElementHelpers/removeOldKeyedElements'\n\n/**\n * @description A function to diff and patch a DOM node with a virtual node.\n * @param {Node} parent The parent node of the elment being patched.\n * @param {Node} element The element being patched.\n * @param {Object} oldNode A virtual dom newNode from the previous patch.\n * @param {Object} newNode The current virtual dom node.\n * @param {boolean} [isSVG] Whether we are dealing with an SVG element or not.\n * @returns {Node} element The patched element.\n */\nexport function patchElement(parent, element, oldNode, newNode, isSVG) {\n // Short circuit patch if VNodes are identical\n if (newNode === oldNode) {\n return\n } else if (oldNode == null || oldNode.type !== newNode.type) {\n element = createNewElement(newNode, isSVG, parent, element, oldNode)\n } else if (oldNode.type == null) {\n element.nodeValue = newNode\n } else {\n updateElement(\n element,\n oldNode.props,\n newNode.props,\n (isSVG = isSVG || newNode.type === 'svg')\n )\n\n const oldKeyed = {}\n const newKeyed = {}\n const oldElements = []\n const oldChildren = oldNode.children\n const children = newNode.children\n\n trackOldElements(element, oldElements, oldChildren, oldKeyed)\n\n let i = 0\n let j = 0\n\n while (j < children.length) {\n let oldKey = getKey(oldChildren[i])\n let newKey = getKey(children[j])\n\n if (newKeyed[oldKey]) {\n i++\n continue\n }\n\n if (newKey != null && newKey === getKey(oldChildren[i + 1])) {\n if (oldKey == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n continue\n }\n\n if (newKey == null) {\n if (oldKey == null) {\n patchElement(\n element,\n oldElements[i],\n oldChildren[i],\n children[j],\n isSVG\n )\n j++\n }\n i++\n } else {\n const keyedNode = oldKeyed[newKey] || []\n\n if (oldKey === newKey) {\n patchElement(element, keyedNode[0], keyedNode[1], children[j], isSVG)\n i++\n } else if (keyedNode[0]) {\n patchElement(\n element,\n element.insertBefore(keyedNode[0], oldElements[i]),\n keyedNode[1],\n children[j],\n isSVG\n )\n } else {\n patchElement(element, oldElements[i], null, children[j], isSVG)\n }\n\n newKeyed[newKey] = children[j]\n j++\n }\n }\n\n removeOldChild(element, oldChildren, oldElements, i)\n removeOldKeyedElements(element, oldKeyed, newKeyed)\n }\n return element\n}\n","import { mixin } from '../mixin'\nimport { setProp } from '../patchElementHelpers/setProp'\n\n/**\n * @description A function to update an element based on a virtual dom node.\n * @param {Node} element\n * @param {Object.} oldProps The original props used to create the element.\n * @param {Object.} props New props generated by the virtual dom.\n * @param {boolean} isSVG Whether we are dealing with SVG or not.\n * @function {function(element: Node, oldProps: VNode, props: VNode,isSVG: boolean): void}\n * @returns {void} undefined\n */\nexport function updateElement(element, oldProps, props, isSVG) {\n for (let prop in mixin(oldProps, props)) {\n if (\n props[prop] !==\n (prop === 'value' || prop === 'checked' ? element[prop] : oldProps[prop])\n ) {\n setProp(element, prop, props[prop], oldProps[prop], isSVG)\n }\n }\n // @ts-ignore\n // Handle lifecycle hook:\n if (element.mounted && props && props.onComponentDidUpdate) {\n props.onComponentDidUpdate.call(\n props.onComponentDidUpdate,\n oldProps,\n props,\n element\n )\n }\n}\n","import { getKey } from '../patchElementHelpers/getKey'\n\n/**\n * @description Update values for old element and key.\n * @param {Node} element \n * @param {Node[]} oldElements\n * @param {Node[]} oldChildren\n * @param {Object.} oldKeyed \n * @returns {void} undefined\n */\nexport function trackOldElements(element, oldElements, oldChildren, oldKeyed) {\n for (let i = 0; i < oldChildren.length; i++) {\n oldElements[i] = element.childNodes[i]\n\n const oldKey = getKey(oldChildren[i])\n if (oldKey != null) {\n oldKeyed[oldKey] = [oldElements[i], oldChildren[i]]\n }\n }\n}\n","import {removeElement} from '../patchElementHelpers/removeElement'\nimport {getKey} from '../patchElementHelpers/getKey'\n\n/**\n * Function to remove oldChild element when patching.\n * @param {Node} element \n * @param {any[]} oldChildren\n * @param {Node[]} oldElements\n * @param {number} i \n * @returns {void} undefined\n */\nexport function removeOldChild(element, oldChildren, oldElements, i) {\n while (i < oldChildren.length) {\n if (getKey(oldChildren[i]) == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n } \n}\n","import { removeElement } from '../patchElementHelpers/removeElement'\n\n/**\n * @description Remove old keyed elements.\n * @param {Node} element \n * @param {Object.} oldKeyed\n * @param {Object.} newKeyed\n * @returns {void} undefined\n */\nexport function removeOldKeyedElements(element, oldKeyed, newKeyed) {\n for (let k in oldKeyed) {\n if (!newKeyed[k]) {\n removeElement(element, oldKeyed[k][0], oldKeyed[k][1])\n }\n }\n}\n","import { patchElement } from './utils/patchElement'\n\n/**\n * @description A function to patch a virtual node against a DOM element, updating it in the most efficient manner possible.\n * @param {() => import('./h').VNode} node A function that returns a virtual node. This may be a JSX tag, which gets converted into a function, or a hyperscript function.\n * @param {Node} [element] The element to patch.\n * @returns {Node} The updated element.\n */\nexport function patch(node, element) {\n if (element) {\n // @ts-ignore\n patchElement(element.parentNode, element, element && element.vnode, node)\n } else {\n element = patchElement(null, null, null, node)\n }\n // @ts-ignore\n element.vnode = node\n\n return element\n}\n","/**\n * @description A cross-browser normalization/polyfill for requestAnimationFrame.\n * @param {Function} cb A callback to execute.\n * @returns {number} The request id, that uniquely identifies the entry in the browser's callback list.\n */\nexport const rAF =\n (window && window.requestAnimationFrame) ||\n (window && window['msRequestAnimationFrame']) ||\n function(cb) {\n return setTimeout(cb, 16)\n }\n","/**\n * @description A function to test where something is an object literal or not. Used by Component setState.\n * @param {Object.} obj An object literal to test.\n * @returns boolean\n */\nexport function isObject(obj) {\n if (Array.isArray(obj)) return false\n else if (typeof obj === 'object') return true\n return false\n}\n","import { isSameNode } from './isSameNode'\nimport { patch } from '../../patch'\n\n/**\n * @description This function updates an already rendered component. In doing so it checks to see if user provided data as an argument to this function. If data was provided, it uses that to render the component. Otherwise it checks if the component has state. If true, the function uses that to render the component. If no data was provided and the component is stateless, nothing will happen.\n * @param {boolean | number | string | Object. | any[]} data\n * @param {import('../../component').Component} component \n */\nexport function updateComponent(data, component) {\n if (!component.render) return\n\n // If componentShouldUpdate is set to false,\n // render one time only.\n // All other updates will be ignored.\n if (!component.componentShouldUpdate && component.mounted) return\n\n // If data is 0 or non-boolean, use,\n // else use component state.\n let __data = component.state\n if (data !== true && data) __data = data\n\n if (component.container && typeof component.container === 'string') {\n component.selector = component.container\n component.container = document.querySelector(component.container)\n }\n\n // Create virtual dom and check if component id\n // already exists in document.\n /**\n * @type {Object. | null}\n */\n const vdom = component.render(__data)\n let elem\n if (vdom && vdom.props && vdom.props.id && component.container) {\n elem = component.container && component.container.querySelector(`#${vdom.props.id}`)\n }\n\n // If component element id already exists in DOM,\n // remove it before rendering the component.\n if (elem && !component.mounted) {\n elem.parentNode.removeChild(elem)\n }\n\n // Capture old node to use with isSameNode if component is already mounted:\n const __oldNode = component.element && component.element.vnode\n\n // Short circuit update if VNodes are identical:\n if (isSameNode(__oldNode, __data, component)) return\n\n /**\n * @property {HTMLElement} element The base element of the rendered component. You can use component as the base for comopnent instance specific DOM queries or event registration.\n */\n component.element = patch(component.render(__data), component.element)\n if (!component.mounted) {\n component.componentWillMount && component.componentWillMount()\n if (!component.container || component.container.nodeType !== 1) {\n console.error(\n 'The container for a class component is not a valid DOM node. Check the selector provided for the class to make sure it is a valid CSS selector and that the container exists in the DOM. You might be targeting a nonexistent node.'\n )\n }\n component.container.appendChild(component.element)\n component.mounted = true\n component.componentDidMount && component.componentDidMount()\n return\n }\n\n component.componentWillUpdate && component.componentWillUpdate()\n component.componentDidUpdate && component.componentDidUpdate()\n}\n","/**\n * @description A function to test whether the data provided for updating a component creates a new virtual node or not.\n * @param {import('../../h').VNode} oldNode The previous virtual node of a component.\n * @param {*} data Data to be used when rendering a new virtual node for a component.\n * @param {import('../../component').Component} component A reference to the component being used.\n */\nexport function isSameNode(oldNode, data, component) {\n if (\n component && JSON.stringify(oldNode) === JSON.stringify(component.render(data))\n ) {\n return true\n }\n return false\n}\n","/**\n * @description Array of events to remove when a component is unmounted.\n * @type {string[]} eventWhitelist \n */\nexport const eventWhitelist = [\n 'change',\n 'click',\n 'dblclick',\n 'input',\n 'keydown',\n 'keypress',\n 'keyup',\n 'mousedown',\n 'mouseleave',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'pointercancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'select',\n 'submit',\n 'touchcancel',\n 'touchend',\n 'touchmove',\n 'touchstart'\n]\n","import { rAF } from './utils/rAF'\nimport { handleSetState } from './utils/componentHelpers/handleSetState'\nimport { updateComponent } from './utils/componentHelpers/updateComponent'\nimport { unmountComponent } from './utils/componentHelpers/unmountComponent'\n\n/**\n * @description This is a numeric value derived from the Date object used as a key to create a pseudo-private property in the Component class for holding state.\n * @type {number} dataStore A numeric value to use as pseudo-private key to store the component's state.\n */\nconst dataStore = new Date().getTime()\n\n/**\n * @description Component can be instantiated with the new keyword, or extended to create a custom version of the class.\n * @class Class to create a component.\n * @example New instance of Component class:\n * const title = new Component({\n * container: 'header',\n * state: 'World',\n * render: message =>

Hello, {message}!

\n * })\n * @example Extending Component class:\n * class UserList extends Component {\n * constructor(props) {\n * super(props)\n * this.state = users\n * this.container = 'section'\n * }\n * render(users) {\n * return (\n *
    \n * {\n * users.map(user =>
  • {user.name}
  • )\n * }\n *
\n * )\n * }\n * }\n */\nexport class Component {\n /**\n * @constructor\n * @description Constructor for Component class.\n * @property {state} [props.state] The state object of the component. This can be of type boolean, string, number, object or array.\n * @property {string} selector A CSS selector describing the DOM container in which to render the component.\n * @property {HTMLElement} container The DOM node in which the component is rendered.\n * @property {boolean} componentShouldUpdate A flag to determine whether a component can render or not. Setting this to false allows you to maipulate a component's state without triggering and automatic render. After setting to true, you may need to execute `update()` on a component instance to force render it.\n * @property {boolean} mounted A boolean flag that tracks whether a component has been mounted in the DOM or not. This is used internally by Composi, do not touch!\n * @property {Node} element The root or base element of a component's DOM tree. You can use it to register events or as the basis of a component-specific DOM query.\n * @method componentWillMount A callback that is called before a component is mounted in the DOM.\n * @method componentDidMount A callback that is called after a component is mounted in the DOM. Use this to register events, query the component DOM, etc.\n * @method componentWillUpdate A callback that is called before a component is updated. This is not called the first time a component is rendered.\n * @method componentDidUpdate A callback that is called after a component is updated. This is not called the first time a component is rendered.\n * @method componentWillUnmount A callback that is called before a component is unmounted from the DOM. Use this for any environmental cleanup.\n * @method render A method that returns nodes to render to the DOM.ΒΈ\n * @method update A method that renders the component template with provided data to the DOM. Data may be provided directly as the primary argument, or it can be derived from the component's state. Data provided as an argument will override use of component state.\n * @method unmount A method to unmount a component from the DOM. This deletes the DOM tree structure starting from the component's base element, and sets the component instance properties to null.\n * @constructs Component\n */\n constructor(props) {\n if (!props) props = {}\n /**\n * @property {Object} props An object literal of options passed to the class constructor during initialization.\n */\n this.props = props\n /**\n * @property {string | HTMLElement} container The HTML element in which the component gets rendered. This can be a CSS selector describing the container or a DOM node reference.\n */\n this.selector = props.container || 'body'\n\n if (props.render) {\n /**\n * @property {Function} render A method to convert markup into DOM nodes to inject in the document. The method itself gets provided at init time by a function provided by the user as an argument, or in the case of extending, a method defined directly on the class extension.\n */\n this.render = props.render\n }\n\n if (props.state) {\n /**\n * @property {boolean | number | string | Object | any[]}\n */\n this.state = props.state\n }\n\n if (this.selector) {\n /**\n * @property {HTMLElement} container The HTML element in which the component gets rendered.\n */\n this.container = document.querySelector(this.selector)\n }\n\n /**\n * @property {boolean} componentShouldUpdate Determines whether a component should update. Set `componentShouldUpdate` to `false`, make changes, then set `componentShouldUpdate` to `true` and update component with `update` method.\n */\n this.componentShouldUpdate = true\n\n /**\n * @property {boolean} mounted Indicates whether a component is mounted in the DOM or not. This is used internally, so do not change!\n */\n this.mounted = false\n\n /**\n * @property {HTMLElement} this.element\n * @property {Object} this.element.vnode\n */\n this.element = null\n\n if (props.componentWillMount)\n /**\n * @property {() => void} componentWillMount A method to execute before the component mounts. The callback gets a reference to the component instance as its argument.\n * @returns {void} undefined\n */\n this.componentWillMount = props.componentWillMount\n\n if (props.componentDidMount)\n /**\n * @property {() => void} componentDidMount A method to execute after the component mounts. The callback gets a reference to the component instance as its argument.\n * @returns {void} undefined\n */\n this.componentDidMount = props.componentDidMount\n\n if (props.componentWillUpdate)\n /**\n * @property {() => void} componentWillUpdate A method to execute before the component updates. The callback gets a reference to the component instance as its argument.\n * @returns {void} undefined\n */\n this.componentWillUpdate = props.componentWillUpdate\n\n if (props.componentDidUpdate)\n /**\n * @property {() => void} componentDidUpdate -A method to execute after the component updates. The callback gets a reference to the component instance as its argument.\n * @returns {void} undefined\n */\n this.componentDidUpdate = props.componentDidUpdate\n\n if (props.componentWillUnmount)\n /**\n * @property {() => void} componentWillUnmount A method to execute before the component unmounts. The callback gets a reference to the component instance as its argument.\n * @returns {void} undefined\n */\n this.componentWillUnmount = props.componentWillUnmount\n }\n\n /**\n * @method A method to execute before the component mounts.\n * @param {() => void} [cb] A callback to execute.\n * @returns {void} undefined\n */\n componentWillMount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component mounts.\n * @param {() => void} [cb] A callback to execute.\n * @returns {void} undefined\n */\n componentDidMount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute before the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @returns {void} undefined\n */\n componentWillUpdate(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @returns {void} undefined\n */\n componentDidUpdate(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @returns {void} undefined\n */\n componentWillUnmount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to create a virtual node from data and markup. The returned virtual node will get converted into a node that gets injected in the DOM.\n * @param {*} data\n */\n render(data) {\n return data\n }\n /** End of type stubs */\n\n /**\n * @method This is getter to access the component's state using the pseudo-private key dataStore.\n * @returns {boolean | number | string | Object | any[]} The component's state\n */\n get state() {\n return this[dataStore]\n }\n\n /**\n * @method This is a setter to define the component's state. It uses the dataStore object as a pseudo-private key. It uses requestAnimationFrame to throttle component updates to avoid layout thrashing.\n * @param {string | number | boolean | Object | any[]} data Data to set as component state.\n * @returns {void} undefined\n */\n set state(data) {\n this[dataStore] = data\n rAF(() => this.update())\n }\n\n /**\n * @method Method to set a component's state. This accepts simple types or Objects. If updating an array, you can pass in the data and the position (number) in the array to update. Optionally you can pass a callback, which receives the state as its argument. You need to return the state changes in order to update the component's state.\n * @example\n * this.setState(true)\n * this.setState(0)\n * this.setState({name: 'Joe'})\n * this.setState([1,2,3])\n * this.setState(prevState => prevState + 1)\n * @param {string | number | boolean | Object | any[] | Function} data The data to set. If a callback is passed as the argument to execute, it gets passed the previous state as its argument. You need to make sure the callback returns the final state or the component will not update.\n * @returns {void} undefined\n */\n setState(data) {\n handleSetState(data, this)\n }\n\n /**\n * @method Function to render component after data changes.\n * If data is passed as argument, it will be used.\n * Otherwise state will be used.\n * @param {boolean | number | string | Object | any[]} [data] By default, data will be the component's current state, otherwise, if data is provided as an argument, that will be used, overriding the state.\n * @returns {void} undefined\n */\n update(data) {\n updateComponent(data, this)\n }\n\n /**\n * @method Method to destroy a component.\n * First unbind events.\n * Then remove component element from DOM.\n * Also null out component properties.\n * @returns {void} undefined\n */\n unmount() {\n unmountComponent(this)\n }\n}\n","import { mixin } from '../mixin'\nimport { isObject } from '../componentHelpers/isObject'\n\n/**\n * @function A helper function for the Component class. This sets state on the class component provided.\n * @param {*} data Data to use as state.\n * @param {import('../../component').Component} component A reference to the component to use.\n */\nexport function handleSetState(data, component) {\n if (typeof data === 'function') {\n const state = data.call(component, component.state)\n if (state) component.state = state\n } else if (isObject(component.state) && isObject(data)) {\n const state = component.state\n component.state = mixin(state, data)\n } else {\n component.state = data\n }\n}","import { eventWhitelist } from './eventWhitelist'\n\n/**\n * @description This function will unmount the provided component. Doing so it unregisters a whitelist of events, deletes the base element of the component from the DOM, and sets the component instance properties to null.\n * @param {import('../../component').Component} component \n */\nexport function unmountComponent(component) {\n if (!component.element) return\n component.componentWillUnmount && component.componentWillUnmount()\n eventWhitelist.map(event => {\n component.element.removeEventListener(event, component)\n })\n component.container.removeChild(component.element)\n component.container = null\n for (let key in component) {\n delete component[key]\n }\n delete component.state\n component.update = null\n component.unmount = null\n}\n","// import {vnode} from './utils/vnode'\n/**\n * @typedef {Object} VNode;\n * @property {string | Function} VNode.type;\n * @property {any[]} VNode.children;\n * @property {string | number | null} VNode.key;\n * @property {Object. } VNode.props;\n */\n/**\n * @description Hyperscript function. Enables definition of HTML/SVG using functions.\n * @param {string | Function} type A tag name or function.\n * @param {Object} [props] An Object literal of key-value pairs.\n * @param {any[]} children An array of strings or other arrays.\n * @returns {VNode} VNode An object literal of type, props and children.\n *\n * @example Virtual node with string as content:\n * const title = h('h1', {class: 'main-title'}, 'This is the Titel!')\n * @example Virtual node with children:\n * const list = h(\n * 'ul',\n * {class: 'list'},\n * [\n * h('li', {}, 'One'),\n * h('li', {}, 'Two'),\n * h('li', {}, 'Three')\n * ]\n * )\n */\nexport function h(type, props, ...children) {\n const nodes = []\n const childNodes = []\n let length = children.length\n props = props || {}\n let key = props.key || null\n\n // Remove key from props if present:\n delete props.key\n\n while (length-- > 0) nodes.push(children[length])\n\n while (nodes.length) {\n const node = nodes.pop()\n if (node && node.pop) {\n for (length = node.length; length--; ) {\n nodes.push(node[length])\n }\n } else if (node != null && node !== true && node !== false) {\n childNodes.push(node)\n }\n }\n\n children = childNodes\n\n if (typeof type === 'function') {\n return type(props || {}, childNodes)\n } else {\n return {\n type,\n props,\n children,\n key\n }\n }\n}\n","import { patch } from './patch'\nimport { FragmentError } from './utils/fragmentError'\n\n/**\n * @description A function to create and inject a virtual node into the document. The node will be appended to the container. The first argument can be either a JSX tag or an h function. After mounting, use the render function and the element returned by mount to udate the DOM.\n * @example Insert Title tag into section:\n * const title = mount(, 'section').\n * // Update the node with new prop value and reference to DOM from mount:\n * render(<Title message='New stuff'/>, title)\n * @param {Object | Function} tag A JSX tag or hyperscript function to render.\n * @param {Node | string} [container] The element into which the tag will be rendered.\n * @param {HTMLElement} [elementToHydrate] A server-rendered element to hydrate during initial load.\n * @returns {Node} The base element of the rendered tag.\n */\nexport const mount = (tag, container, elementToHydrate) => {\n container = typeof container === 'string' && document.querySelector(container)\n if (!container) container = document.body\n if (Array.isArray(tag)) throw new FragmentError()\n const element = patch(tag)\n if (tag.props && tag.props.onComponentDidMount) {\n tag.props.onComponentDidMount.call(tag.props.onComponentDidMount, element)\n }\n // @ts-ignore\n element.mounted = true\n if (elementToHydrate) {\n if (typeof elementToHydrate === 'string') {\n elementToHydrate = document.querySelector(elementToHydrate)\n }\n if (elementToHydrate.nextElementSibling) {\n elementToHydrate.parentNode.insertBefore(\n element,\n elementToHydrate.nextElementSibling\n )\n elementToHydrate.parentNode.removeChild(elementToHydrate)\n return element\n } else {\n elementToHydrate.parentNode.appendChild(element)\n elementToHydrate.parentNode.removeChild(elementToHydrate)\n return element\n }\n } else {\n return container.appendChild(element)\n }\n}\n","/**\n * Class to throw error message when attempting to insert Fragement tag directly into DOM.\n */\nexport class FragmentError {\n constructor() {\n this.message = 'Cannot insert Fragment tag directly into DOM.'\n this.toString = function() {\n return this.message\n }\n }\n}\n","import { patch } from './patch'\n\n/**\n * @description A function to update a functional component already mounted in the DOM. The first argument can be either a JSX tag or an h function.\n * @example Update Title tag into section:\n * const element = mount(<Title message='Hello World!'/>, 'section')\n * // Pass the captured element to the render function:\n * render(<Title message='Hello Everyone!'/>, 'header')\n * @param {() => import('./h').VNode} tag A JSX tag or hyperscript function to render.\n * @param {Node} [element] The element in the DOM which will be updated.\n * @returns {Node} The base element of the rendered tag.\n */\nexport function render(tag, element) {\n return patch(tag, element)\n}\n","/**\n * @description A tag to enable returning sibling elements. This is useful for returning list items to render in a list or table cells to render in a table row.\n * @example\n * <Fragment>\n * <li>A</li>\n * <li>B</li>\n * <li>C</li>\n * </Fragment>\n * Or functionally:\n * Fragment(null, [\n * h('li', {}, 'A'),\n * h('li', {}, 'B'),\n * h('li', {}, 'C')\n * ])\n * @param {Object} [props] When using Fragment as a function, props is the first argument. Provide either null or {} as the value for props.\n * @param {import('./h').VNode[]} [children] The siblings to return with the Fragment. This will be an array of sibling elements.\n * @returns {import('./h').VNode[]} An array of virtual nodes.\n */\nexport const Fragment = (props, children) => children\n"],"names":["getKey","node","key","mixin","obj1","obj2","result","i","setProp","element","prop","value","oldValue","isSVG","style","setProperty","toLowerCase","innerHTML","setAttributeNS","setAttribute","removeAttribute","removeElement","parent","removeChild","removeChildren","children","length","childNodes","props","onComponentDidUnmount","call","createNewElement","oldNode","newElement","createElement","toString","document","createTextNode","type","createElementNS","appendChild","insertBefore","patchElement","newNode","nodeValue","oldProps","mounted","onComponentDidUpdate","oldKeyed","newKeyed","oldElements","oldChildren","oldKey","j","newKey","keyedNode","k","patch","parentNode","vnode","rAF","window","requestAnimationFrame","cb","setTimeout","isObject","obj","Array","isArray","updateComponent","data","component","render","componentShouldUpdate","__data","state","container","selector","querySelector","vdom","elem","id","__oldNode","JSON","stringify","componentWillMount","nodeType","error","componentDidMount","componentWillUpdate","componentDidUpdate","eventWhitelist","dataStore","Date","getTime","Component","this","componentWillUnmount","map","removeEventListener","event","update","unmount","_this","nodes","push","pop","tag","elementToHydrate","body","message","onComponentDidMount","nextElementSibling"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"composi.js.map","sources":["../lib/utils/patchElementHelpers/getKey.js","../lib/utils/mixin.js","../lib/utils/patchElementHelpers/setProp.js","../lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js","../lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js","../lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js","../lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js","../lib/utils/patchElementHelpers/removeElement.js","../lib/utils/patchElementHelpers/removeChildren.js","../lib/utils/patchElementHelpers/createNewElement.js","../lib/utils/patchElementHelpers/createElement.js","../lib/utils/patchElement.js","../lib/utils/patchElementHelpers/updateElement.js","../lib/utils/patchElementHelpers/trackOldElements.js","../lib/utils/patchElementHelpers/removeOldChild.js","../lib/utils/patchElementHelpers/removeOldKeyedElements.js","../lib/patch.js","../lib/utils/rAF.js","../lib/utils/componentHelpers/isObject.js","../lib/utils/componentHelpers/updateComponent.js","../lib/utils/componentHelpers/isSameNode.js","../lib/utils/componentHelpers/eventWhitelist.js","../lib/component.js","../lib/utils/componentHelpers/handleSetState.js","../lib/utils/componentHelpers/unmountComponent.js","../lib/h.js","../lib/mount.js","../lib/utils/fragmentError.js","../lib/render.js","../lib/fragment.js"],"sourcesContent":["/**\n * Function to get a node's key.\n * @param {import('../../h').VNode} node A virtual node.\n * @return {string | number | null} key.\n */\nexport const getKey = node => (node ? node.key : null)\n","/**\n * A function to merge two objects together. The properties of the second object will overwrite any matching properties in the first object.\n * @param {Object.<string, any>} obj1 The first object to merge.\n * @param {Object.<string, any>} obj2 The second object to merge.\n * @return {Object.<string, any>} Returns a new object of the second object merged with the first.\n */\nexport function mixin(obj1, obj2) {\n const result = {}\n for (let i in obj1) {\n result[i] = obj1[i]\n }\n for (let i in obj2) {\n result[i] = obj2[i]\n }\n return result\n}\n","import { handleStyles } from './setPropHelpers/handleStyles'\nimport { handleClassName } from './setPropHelpers/handleClassName'\nimport { handleDangerouslySetInnerHTML } from './setPropHelpers/handleDangerouslySetInnerHTML'\nimport { handleXlinkHref } from './setPropHelpers/handleXlinkHref'\n\n/**\n * Function to set properties and attributes on element.\n * @param {Node} element The element to set props on.\n * @param {string} prop The property/attribute.\n * @param {*} value The value of the prop.\n * @param {string | number | boolean} oldValue The original value of the prop.\n * @param {boolean} isSVG Whether this is SVG or not\n * @return {void} undefined\n */\nexport function setProp(element, prop, value, oldValue, isSVG) {\n // Do not add these as node attributes:\n if (\n prop === 'key' ||\n prop === 'onComponentDidMount' ||\n prop === 'onComponentDidUpdate' ||\n prop === 'onComponentWillUnmount'\n ) {\n return\n } else if (prop === 'style' && typeof value !== 'string') {\n handleStyles(element, prop, value, oldValue)\n } else {\n // Convert camel case props to lower case:\n prop = prop.toLowerCase()\n\n // Handle cases where 'className' is used:\n prop = handleClassName(prop)\n\n // Allow setting innerHTML:\n handleDangerouslySetInnerHTML(element, prop, value)\n\n if (prop in element && prop !== 'list' && !isSVG) {\n element[prop] = value == (null || 'no') ? '' : value\n } else if (\n value != null &&\n value !== 'null' &&\n value !== 'false' &&\n value !== 'no' &&\n value !== 'off'\n ) {\n // Support SVG 'xlink:href' property:\n if (prop === 'xlink-href') {\n handleXlinkHref(element, prop, value)\n } else {\n if (value === 'true') value = ''\n // Set prop as attribute, except dangerouslySetInnerHTML:\n if (prop !== 'dangerouslysetinnerhtml') {\n /** @type {Element} */ (element).setAttribute(prop, value)\n }\n }\n }\n\n if (\n value == null ||\n value === 'null' ||\n value === 'undefined' ||\n value === 'false' ||\n value === 'no' ||\n value === 'off'\n ) {\n /** @type {Element} */ (element).removeAttribute(prop)\n }\n }\n}\n","/**\n * Enable setting xlink href value for browser that only support SVG 1.0.\n * @param {Node} element\n * @param {string} prop\n * @param {*} value\n * @return {void} undefined\n */\nexport function handleXlinkHref(element, prop, value) {\n /** @type {Element} */ (element).setAttributeNS('http://www.w3.org/1999/xlink', 'href', value);\n /** @type {Element} */(element).setAttribute('href', value)\n}\n","/**\n * Enable setting innerHTML as a prop.\n * @param {Node} element\n * @param {string} prop\n * @param {*} value\n * @return {void} undefined\n */\nexport function handleDangerouslySetInnerHTML(element, prop, value) {\n if (prop === 'dangerouslysetinnerhtml') {\n /** @type {Element} */ (element).innerHTML = value\n }\n}\n","/**\n * Handle converting 'className' to 'class'.\n * @param {string} prop\n * @return {string} string\n */\nexport function handleClassName(prop) {\n if (prop === 'classname') {\n prop = 'class'\n }\n return prop\n}\n","import { mixin } from '../../mixin'\n\n/**\n * Handle styles defined as object literals.\n * @param {Node} element\n * @param {string} prop\n * @param {any} value\n * @param {any} oldValue\n * @return {void} undefined\n */\nexport function handleStyles(element, prop, value, oldValue) {\n for (let i in mixin(oldValue, value)) {\n const style = value == null || value[i] == null ? '' : value[i]\n if (i[0] === '-') {\n element[prop].setProperty(i, style)\n } else {\n element[prop][i] = style\n }\n }\n}\n","import { removeChildren } from './removeChildren'\n\n/**\n * Function to remove element from DOM.\n * @param {Node} parent The containing element in which the component resides.\n * @param {Node} element The parent of the element to remove.\n * @param {Node} node The element to remove.\n * @return {void} undefined\n */\nexport const removeElement = (parent, element, node) => {\n parent.removeChild(removeChildren(element, node))\n if (node && /** @type {Object.<string, any>}*/(node).props && /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount) {\n /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount.call(\n /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount,\n parent\n )\n }\n}\n","/**\n * A function to remove the children of a node.\n * @param {Node} element The parent of the node whose children will be removed.\n * @param {Node} node The node whose children will be removed.\n * @return {Node} element The parent of the removed nodes.\n */\nexport function removeChildren(element, node) {\n const props = node['props']\n if (props) {\n for (let i = 0; i < /** @type {Element} */ (node).children.length; i++) {\n removeChildren(element.childNodes[i], /** @type {Element} */ (node).children[i])\n }\n }\n return element\n}\n","import { createElement } from '../patchElementHelpers/createElement'\nimport { removeElement} from '../patchElementHelpers/removeElement'\n\n/**\n * When oldNode does not exist or node.type is different, create a new element.\n * @param {Node} node \n * @param {boolean} isSVG \n * @param {Node} parent \n * @param {Node} element \n * @param {Node} oldNode \n * @return {Node} Node\n */\nexport function createNewElement(node, isSVG, parent, element, oldNode) {\n const newElement = createElement(node, isSVG)\n if (parent) {\n parent.insertBefore(newElement, element)\n if (oldNode != null) {\n removeElement(parent, element, oldNode)\n }\n }\n element = newElement\n return element\n}\n","import { setProp } from './setProp'\n\n/**\n * Function to convert hyperscript/JSX into DOM nodes.\n * @param {string | number | Object} node A node to create. This may be a hyperscript function or a JSX tag which gets converted to hyperscript during transpilation.\n * @param {boolean} [isSVG] Whether the node is SVG or not.\n * @return {Node} An element created from a virtual dom object.\n */\nexport function createElement(node, isSVG) {\n let element\n if (typeof node === 'number') node = node.toString()\n if (typeof node === 'string') {\n element = document.createTextNode(node)\n } else if ((isSVG = isSVG || node.type === 'svg')) {\n element = document.createElementNS('http://www.w3.org/2000/svg', node.type)\n } else {\n element = document.createElement(node.type)\n }\n /**\n * @property {Object.<string, any>} node.props A virtual node stored on the node.\n */\n const props = node.props\n if (props) {\n for (let i = 0; i < node.children.length; i++) {\n element.appendChild(createElement(node.children[i], isSVG))\n }\n\n for (let prop in props) {\n setProp(element, prop, props[prop], null, isSVG)\n }\n }\n\n return element\n}\n","import { getKey } from './patchElementHelpers/getKey'\nimport { updateElement } from './patchElementHelpers/updateElement'\nimport { removeElement } from './patchElementHelpers/removeElement'\nimport { createNewElement } from './patchElementHelpers/createNewElement'\nimport { removeOldChild } from './patchElementHelpers/removeOldChild'\nimport { trackOldElements } from './patchElementHelpers/trackOldElements'\nimport { removeOldKeyedElements } from './patchElementHelpers/removeOldKeyedElements'\n\n/**\n * A function to diff and patch a DOM node with a virtual node.\n * @param {Node} parent The parent node of the elment being patched.\n * @param {Node} element The element being patched.\n * @param {Object} oldNode A virtual dom node from the previous patch.\n * @param {Object} newNode The current virtual dom node.\n * @param {boolean} [isSVG] Whether we are dealing with an SVG element or not.\n * @return {Node} element The patched element.\n */\nexport function patchElement(parent, element, oldNode, newNode, isSVG) {\n // Short circuit patch if VNodes are identical\n if (newNode === oldNode) {\n return\n } else if (oldNode == null || oldNode.type !== newNode.type) {\n element = createNewElement(newNode, isSVG, parent, element, oldNode)\n } else if (oldNode.type == null) {\n element.nodeValue = newNode\n } else {\n updateElement(\n element,\n oldNode.props,\n newNode.props,\n (isSVG = isSVG || newNode.type === 'svg')\n )\n\n const oldKeyed = {}\n const newKeyed = {}\n const oldElements = []\n const oldChildren = oldNode.children\n const children = newNode.children\n\n trackOldElements(element, oldElements, oldChildren, oldKeyed)\n\n let i = 0\n let j = 0\n\n while (j < children.length) {\n let oldKey = getKey(oldChildren[i])\n let newKey = getKey(children[j])\n\n if (newKeyed[oldKey]) {\n i++\n continue\n }\n\n if (newKey != null && newKey === getKey(oldChildren[i + 1])) {\n if (oldKey == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n continue\n }\n\n if (newKey == null) {\n if (oldKey == null) {\n patchElement(\n element,\n oldElements[i],\n oldChildren[i],\n children[j],\n isSVG\n )\n j++\n }\n i++\n } else {\n const keyedNode = oldKeyed[newKey] || []\n\n if (oldKey === newKey) {\n patchElement(element, keyedNode[0], keyedNode[1], children[j], isSVG)\n i++\n } else if (keyedNode[0]) {\n patchElement(\n element,\n element.insertBefore(keyedNode[0], oldElements[i]),\n keyedNode[1],\n children[j],\n isSVG\n )\n } else {\n patchElement(element, oldElements[i], null, children[j], isSVG)\n }\n\n newKeyed[newKey] = children[j]\n j++\n }\n }\n\n removeOldChild(element, oldChildren, oldElements, i)\n removeOldKeyedElements(element, oldKeyed, newKeyed)\n }\n return element\n}\n","import { mixin } from '../mixin'\nimport { setProp } from '../patchElementHelpers/setProp'\n\n/**\n * @description A function to update an element based on a virtual dom node.\n * @param {Node} element\n * @param {Object.<string, any>} oldProps The original props used to create the element.\n * @param {Object.<string, any>} props New props generated by the virtual dom.\n * @param {boolean} isSVG Whether we are dealing with SVG or not.\n * @function {function(element: Node, oldProps: VNode, props: VNode,isSVG: boolean): void}\n * @return {void} undefined\n */\nexport function updateElement(element, oldProps, props, isSVG) {\n for (let prop in mixin(oldProps, props)) {\n if (\n props[prop] !==\n (prop === 'value' || prop === 'checked' ? element[prop] : oldProps[prop])\n ) {\n setProp(element, prop, props[prop], oldProps[prop], isSVG)\n }\n }\n \n // Handle lifecycle hook:\n if (/** @type {Object.<string, any>}*/(element).mounted && props && props.onComponentDidUpdate) {\n props.onComponentDidUpdate.call(\n props.onComponentDidUpdate,\n oldProps,\n props,\n element\n )\n }\n}\n","import { getKey } from '../patchElementHelpers/getKey'\n\n/**\n * Update values for old element and key.\n * @param {Node} element \n * @param {Node[]} oldElements\n * @param {import('../../h').VNode[]} oldChildren\n * @param {Object.<string, any>} oldKeyed \n * @return {void} undefined\n */\nexport function trackOldElements(element, oldElements, oldChildren, oldKeyed) {\n for (let i = 0; i < oldChildren.length; i++) {\n oldElements[i] = element.childNodes[i]\n\n const oldKey = getKey(oldChildren[i])\n if (oldKey != null) {\n oldKeyed[oldKey] = [oldElements[i], oldChildren[i]]\n }\n }\n}\n","import {removeElement} from '../patchElementHelpers/removeElement'\nimport {getKey} from '../patchElementHelpers/getKey'\n\n/**\n * Function to remove oldChild element when patching.\n * @param {Node} element \n * @param {any[]} oldChildren\n * @param {Node[]} oldElements\n * @param {number} i \n * @return {void} undefined\n */\nexport function removeOldChild(element, oldChildren, oldElements, i) {\n while (i < oldChildren.length) {\n if (getKey(oldChildren[i]) == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n } \n}\n","import { removeElement } from '../patchElementHelpers/removeElement'\n\n/**\n * Remove old keyed elements.\n * @param {Node} element \n * @param {Object.<string, any>} oldKeyed\n * @param {Object.<string, any>} newKeyed\n * @return {void} undefined\n */\nexport function removeOldKeyedElements(element, oldKeyed, newKeyed) {\n for (let k in oldKeyed) {\n if (!newKeyed[k]) {\n removeElement(element, oldKeyed[k][0], oldKeyed[k][1])\n }\n }\n}\n","import { patchElement } from './utils/patchElement'\n\n/**\n * A function to patch a virtual node against a DOM element, updating it in the most efficient manner possible.\n * @param {() => import('./h').VNode} node A function that returns a virtual node. This may be a JSX tag, which gets converted into a function, or a hyperscript function.\n * @param {Node} [element] The element to patch.\n * @return {Node} The updated element.\n */\nexport function patch(node, element) {\n if (element) {\n patchElement(element.parentNode, element, element && element['vnode'], node)\n } else {\n element = patchElement(null, null, null, node)\n }\n\n element['vnode'] = node\n\n return element\n}\n","/**\n * A cross-browser normalization/polyfill for requestAnimationFrame.\n * @param {Function} cb A callback to execute.\n * @return {number} The request id, that uniquely identifies the entry in the browser's callback list.\n */\nexport const rAF =\n (window && window.requestAnimationFrame) ||\n (window && window['msRequestAnimationFrame']) ||\n function(cb) {\n return setTimeout(cb, 16)\n }\n","/**\n * A function to test where something is an object literal or not. Used by Component setState.\n * @param {Object.<string, any>} obj An object literal to test.\n * @return {boolean} boolean\n */\nexport function isObject(obj) {\n if (Array.isArray(obj)) return false\n else if (typeof obj === 'object') return true\n return false\n}\n","import { isSameNode } from './isSameNode'\nimport { patch } from '../../patch'\n\n/**\n * This function updates an already rendered component. In doing so it checks to see if user provided data as an argument to this function. If data was provided, it uses that to render the component. Otherwise it checks if the component has state. If true, the function uses that to render the component. If no data was provided and the component is stateless, nothing will happen.\n * @param {boolean | number | string | Object.<string, any> | any[]} data\n * @param {import('../../component').Component} component \n * @return {void} undefined\n */\nexport function updateComponent(data, component) {\n if (!component.render) return\n\n // If componentShouldUpdate is set to false,\n // render one time only.\n // All other updates will be ignored.\n if (!component.componentShouldUpdate && component.mounted) return\n\n // If data is 0 or non-boolean, use,\n // else use component state.\n let __data = component.state\n if (data !== true && data) __data = data\n\n if (component.container && typeof component.container === 'string') {\n component.selector = component.container\n component.container = document.querySelector(component.container)\n }\n\n // Create virtual dom and check if component id\n // already exists in document.\n /**\n * @type {Object.<string, any> | null}\n */\n const vdom = component.render(__data)\n let elem\n if (vdom && vdom.props && vdom.props.id && component.container) {\n elem = component.container && component.container.querySelector(`#${vdom.props.id}`)\n }\n\n // If component element id already exists in DOM,\n // remove it before rendering the component.\n if (elem && !component.mounted) {\n elem.parentNode.removeChild(elem)\n }\n\n // Capture old node to use with isSameNode if component is already mounted:\n const __oldNode = component.element && component.element.vnode\n\n // Short circuit update if VNodes are identical:\n if (isSameNode(__oldNode, __data, component)) return\n\n /**\n * @property {HTMLElement} element The base element of the rendered component. You can use component as the base for comopnent instance specific DOM queries or event registration.\n */\n component.element = patch(component.render(__data), component.element)\n if (!component.mounted) {\n component.componentWillMount && component.componentWillMount()\n if (!component.container || component.container.nodeType !== 1) {\n console.error(\n 'The container for a class component is not a valid DOM node. Check the selector provided for the class to make sure it is a valid CSS selector and that the container exists in the DOM. You might be targeting a nonexistent node.'\n )\n }\n component.container.appendChild(component.element)\n component.mounted = true\n component.componentDidMount && component.componentDidMount()\n return\n }\n\n component.componentWillUpdate && component.componentWillUpdate()\n component.componentDidUpdate && component.componentDidUpdate()\n}\n","/**\n * A function to test whether the data provided for updating a component creates a new virtual node or not.\n * @param {import('../../h').VNode} oldNode The previous virtual node of a component.\n * @param {*} data Data to be used when rendering a new virtual node for a component.\n * @param {import('../../component').Component} component A reference to the component being used.\n * @return {boolean} boolean\n */\nexport function isSameNode(oldNode, data, component) {\n if (\n component && JSON.stringify(oldNode) === JSON.stringify(component.render(data))\n ) {\n return true\n }\n return false\n}\n","/**\n * Array of events to remove when a component is unmounted.\n * @type {string[]} eventWhitelist \n */\nexport const eventWhitelist = [\n 'change',\n 'click',\n 'dblclick',\n 'input',\n 'keydown',\n 'keypress',\n 'keyup',\n 'mousedown',\n 'mouseleave',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'pointercancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'select',\n 'submit',\n 'touchcancel',\n 'touchend',\n 'touchmove',\n 'touchstart'\n]\n","import { rAF } from './utils/rAF'\nimport { handleSetState } from './utils/componentHelpers/handleSetState'\nimport { updateComponent } from './utils/componentHelpers/updateComponent'\nimport { unmountComponent } from './utils/componentHelpers/unmountComponent'\n\n/**\n * This is a numeric value derived from the Date object used as a key to create a pseudo-private property in the Component class for holding state.\n * @type {number} dataStore A numeric value to use as pseudo-private key to store the component's state.\n */\nconst dataStore = new Date().getTime()\n\n/**\n * Component can be instantiated with the new keyword, or extended to create a custom version of the class.\n * @class Class to create a component.\n * @example New instance of Component class:\n * const title = new Component({\n * container: 'header',\n * state: 'World',\n * render: message => <h1>Hello, {message}!</h1>\n * })\n * @example Extending Component class:\n * class UserList extends Component {\n * constructor(props) {\n * super(props)\n * this.state = users\n * this.container = 'section'\n * }\n * render(users) {\n * return (\n * <ul class='user-list'>\n * {\n * users.map(user => <li>{user.name}</li>)\n * }\n * </ul>\n * )\n * }\n * }\n */\nexport class Component {\n /**\n * Constructor for Component class.\n * @property {state} [props.state] The state object of the component. This can be of type boolean, string, number, object or array.\n * @property {string} selector A CSS selector describing the DOM container in which to render the component.\n * @property {HTMLElement} container The DOM node in which the component is rendered.\n * @property {boolean} componentShouldUpdate A flag to determine whether a component can render or not. Setting this to false allows you to maipulate a component's state without triggering and automatic render. After setting to true, you may need to execute `update()` on a component instance to force render it.\n * @property {boolean} mounted A boolean flag that tracks whether a component has been mounted in the DOM or not. This is used internally by Composi, do not touch!\n * @property {Node} element The root or base element of a component's DOM tree. You can use it to register events or as the basis of a component-specific DOM query.\n * @method componentWillMount A callback that is called before a component is mounted in the DOM.\n * @method componentDidMount A callback that is called after a component is mounted in the DOM. Use this to register events, query the component DOM, etc.\n * @method componentWillUpdate A callback that is called before a component is updated. This is not called the first time a component is rendered.\n * @method componentDidUpdate A callback that is called after a component is updated. This is not called the first time a component is rendered.\n * @method componentWillUnmount A callback that is called before a component is unmounted from the DOM. Use this for any environmental cleanup.\n * @method render A method that returns nodes to render to the DOM.ΒΈ\n * @method update A method that renders the component template with provided data to the DOM. Data may be provided directly as the primary argument, or it can be derived from the component's state. Data provided as an argument will override use of component state.\n * @method unmount A method to unmount a component from the DOM. This deletes the DOM tree structure starting from the component's base element, and sets the component instance properties to null.\n * @constructs Component\n */\n constructor(props) {\n if (!props) props = {}\n /**\n * @property {Object} props An object literal of options passed to the class constructor during initialization.\n */\n this.props = props\n /**\n * @property {string | HTMLElement} container The HTML element in which the component gets rendered. This can be a CSS selector describing the container or a DOM node reference.\n */\n this.selector = props.container || 'body'\n\n if (props.render) {\n /**\n * @property {Function} render A method to convert markup into DOM nodes to inject in the document. The method itself gets provided at init time by a function provided by the user as an argument, or in the case of extending, a method defined directly on the class extension.\n */\n this.render = props.render\n }\n\n if (props.state) {\n /**\n * @property {boolean | number | string | Object | any[]}\n */\n this.state = props.state\n }\n\n if (this.selector) {\n /**\n * @property {HTMLElement} container The HTML element in which the component gets rendered.\n */\n this.container = document.querySelector(this.selector)\n }\n\n /**\n * @property {boolean} componentShouldUpdate Determines whether a component should update. Set `componentShouldUpdate` to `false`, make changes, then set `componentShouldUpdate` to `true` and update component with `update` method.\n */\n this.componentShouldUpdate = true\n\n /**\n * @property {boolean} mounted Indicates whether a component is mounted in the DOM or not. This is used internally, so do not change!\n */\n this.mounted = false\n\n /**\n * @property {HTMLElement} this.element\n * @property {Object} this.element.vnode\n */\n this.element = null\n\n if (props.componentWillMount)\n /**\n * @property {() => void} componentWillMount A method to execute before the component mounts. The callback gets a reference to the component instance as its argument.\n * @return {void} undefined\n */\n this.componentWillMount = props.componentWillMount\n\n if (props.componentDidMount)\n /**\n * @property {() => void} componentDidMount A method to execute after the component mounts. The callback gets a reference to the component instance as its argument.\n * @return {void} undefined\n */\n this.componentDidMount = props.componentDidMount\n\n if (props.componentWillUpdate)\n /**\n * @property {() => void} componentWillUpdate A method to execute before the component updates. The callback gets a reference to the component instance as its argument.\n * @return {void} undefined\n */\n this.componentWillUpdate = props.componentWillUpdate\n\n if (props.componentDidUpdate)\n /**\n * @property {() => void} componentDidUpdate -A method to execute after the component updates. The callback gets a reference to the component instance as its argument.\n * @return {void} undefined\n */\n this.componentDidUpdate = props.componentDidUpdate\n\n if (props.componentWillUnmount)\n /**\n * @property {() => void} componentWillUnmount A method to execute before the component unmounts. The callback gets a reference to the component instance as its argument.\n * @return {void} undefined\n */\n this.componentWillUnmount = props.componentWillUnmount\n }\n\n /**\n * @method A method to execute before the component mounts.\n * @param {() => void} [cb] A callback to execute.\n * @return {void} undefined\n */\n componentWillMount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component mounts.\n * @param {() => void} [cb] A callback to execute.\n * @return {void} undefined\n */\n componentDidMount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute before the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @return {void} undefined\n */\n componentWillUpdate(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @return {void} undefined\n */\n componentDidUpdate(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to execute after the component updates.\n * @param {() => void} [cb] A callback to execute.\n * @return {void} undefined\n */\n componentWillUnmount(cb) {\n if (cb && typeof cb === 'function') {\n cb.call(cb, this)\n }\n }\n\n /**\n * @method A method to create a virtual node from data and markup. The returned virtual node will get converted into a node that gets injected in the DOM.\n * @param {*} data\n */\n render(data) {\n return data\n }\n /** End of type stubs */\n\n /**\n * @method This is getter to access the component's state using the pseudo-private key dataStore.\n * @return {boolean | number | string | Object | any[]} The component's state\n */\n get state() {\n return this[dataStore]\n }\n\n /**\n * @method This is a setter to define the component's state. It uses the dataStore object as a pseudo-private key. It uses requestAnimationFrame to throttle component updates to avoid layout thrashing.\n * @param {string | number | boolean | Object | any[]} data Data to set as component state.\n * @return {void} undefined\n */\n set state(data) {\n this[dataStore] = data\n rAF(() => this.update())\n }\n\n /**\n * @method Method to set a component's state. This accepts simple types or Objects. If updating an array, you can pass in the data and the position (number) in the array to update. Optionally you can pass a callback, which receives the state as its argument. You need to return the state changes in order to update the component's state.\n * @example\n * this.setState(true)\n * this.setState(0)\n * this.setState({name: 'Joe'})\n * this.setState([1,2,3])\n * this.setState(prevState => prevState + 1)\n * @param {string | number | boolean | Object | any[] | Function} data The data to set. If a callback is passed as the argument to execute, it gets passed the previous state as its argument. You need to make sure the callback returns the final state or the component will not update.\n * @return {void} undefined\n */\n setState(data) {\n handleSetState(data, this)\n }\n\n /**\n * @method Function to render component after data changes.\n * If data is passed as argument, it will be used.\n * Otherwise state will be used.\n * @param {boolean | number | string | Object | any[]} [data] By default, data will be the component's current state, otherwise, if data is provided as an argument, that will be used, overriding the state.\n * @return {void} undefined\n */\n update(data) {\n updateComponent(data, this)\n }\n\n /**\n * @method Method to destroy a component.\n * First unbind events.\n * Then remove component element from DOM.\n * Also null out component properties.\n * @return {void} undefined\n */\n unmount() {\n unmountComponent(this)\n }\n}\n","import { mixin } from '../mixin'\nimport { isObject } from '../componentHelpers/isObject'\n\n/**\n * A helper function for the Component class. This sets state on the class component provided.\n * @param {*} data Data to use as state.\n * @param {import('../../component').Component} component A reference to the component to use.\n * @return {void} undefined\n */\nexport function handleSetState(data, component) {\n if (typeof data === 'function') {\n const state = data.call(component, component.state)\n if (state) component.state = state\n } else if (isObject(component.state) && isObject(data)) {\n const state = component.state\n component.state = mixin(state, data)\n } else {\n component.state = data\n }\n}","import { eventWhitelist } from './eventWhitelist'\n\n/**\n * This function will unmount the provided component. Doing so it unregisters a whitelist of events, deletes the base element of the component from the DOM, and sets the component instance properties to null.\n * @param {import('../../component').Component} component \n * @return {void} undefined\n */\nexport function unmountComponent(component) {\n if (!component.element) return\n component.componentWillUnmount && component.componentWillUnmount()\n eventWhitelist.map(event => {\n component.element.removeEventListener(event, component)\n })\n component.container.removeChild(component.element)\n component.container = null\n for (let key in component) {\n delete component[key]\n }\n delete component.state\n component.update = null\n component.unmount = null\n}\n","/**\n * @typedef {Object.<string, any>} Props\n */\n/**\n * @typedef {Object} VNode;\n * @property {string | Function} VNode.type;\n * @property {Props} VNode.props;\n * @property {any[]} VNode.children;\n * @property {string | number | null} VNode.key;\n */\n/**\n * Hyperscript function. Enables definition of HTML/SVG using functions.\n * @param {string | Function} type A tag name or function.\n * @param {Object} [props] An Object literal of key-value pairs.\n * @param {any[]} children An array of strings or other arrays.\n * @return {VNode} VNode An object literal of type, props and children.\n *\n * @example Virtual node with string as content:\n * const title = h('h1', {class: 'main-title'}, 'This is the Titel!')\n * @example Virtual node with children:\n * const list = h(\n * 'ul',\n * {class: 'list'},\n * [\n * h('li', {}, 'One'),\n * h('li', {}, 'Two'),\n * h('li', {}, 'Three')\n * ]\n * )\n */\nexport function h(type, props, ...children) {\n const nodes = []\n const childNodes = []\n let length = children.length\n props = props || {}\n let key = props.key || null\n\n // Remove key from props if present:\n delete props.key\n\n while (length-- > 0) nodes.push(children[length])\n\n while (nodes.length) {\n const node = nodes.pop()\n if (node && node.pop) {\n for (length = node.length; length--; ) {\n nodes.push(node[length])\n }\n } else if (node != null && node !== true && node !== false) {\n childNodes.push(node)\n }\n }\n\n children = childNodes\n\n if (typeof type === 'function') {\n return type(props || {}, childNodes)\n } else {\n return {\n type,\n props,\n children,\n key\n }\n }\n}\n","import { patch } from './patch'\nimport { FragmentError } from './utils/fragmentError'\n\n/**\n * A function to create and inject a virtual node into the document. The node will be appended to the container. The first argument can be either a JSX tag or an h function. After mounting, use the render function and the element returned by mount to udate the DOM.\n * @example Insert Title tag into section:\n * const title = mount(<Title message='Hello World!'/>, 'section').\n * // Update the node with new prop value and reference to DOM from mount:\n * render(<Title message='New stuff'/>, title)\n * @param {Object | Function} tag A JSX tag or hyperscript function to render.\n * @param {Node | string} [container] The element into which the tag will be rendered.\n * @param {HTMLElement} [elementToHydrate] A server-rendered element to hydrate during initial load.\n * @return {Node} The base element of the rendered tag.\n */\nexport const mount = (tag, container, elementToHydrate) => {\n container = typeof container === 'string' && document.querySelector(container)\n if (!container) container = document.body\n if (Array.isArray(tag)) throw new FragmentError()\n const element = patch(tag)\n if (tag.props && tag.props.onComponentDidMount) {\n tag.props.onComponentDidMount.call(tag.props.onComponentDidMount, element)\n }\n\n element['mounted'] = true\n if (elementToHydrate) {\n if (typeof elementToHydrate === 'string') {\n elementToHydrate = document.querySelector(elementToHydrate)\n }\n if (elementToHydrate.nextElementSibling) {\n elementToHydrate.parentNode.insertBefore(\n element,\n elementToHydrate.nextElementSibling\n )\n elementToHydrate.parentNode.removeChild(elementToHydrate)\n return element\n } else {\n elementToHydrate.parentNode.appendChild(element)\n elementToHydrate.parentNode.removeChild(elementToHydrate)\n return element\n }\n } else {\n return container.appendChild(element)\n }\n}\n","/**\n * Class to throw error message when attempting to insert Fragement tag directly into DOM.\n * @return {string} message\n */\nexport class FragmentError {\n constructor() {\n this.message = 'Cannot insert Fragment tag directly into DOM.'\n this.toString = function() {\n return this.message\n }\n }\n}\n","import { patch } from './patch'\n\n/**\n * A function to update a functional component already mounted in the DOM. The first argument can be either a JSX tag or an h function.\n * @example Update Title tag into section:\n * const element = mount(<Title message='Hello World!'/>, 'section')\n * // Pass the captured element to the render function:\n * render(<Title message='Hello Everyone!'/>, 'header')\n * @param {() => import('./h').VNode} tag A JSX tag or hyperscript function to render.\n * @param {Node} [element] The element in the DOM which will be updated.\n * @return {Node} The base element of the rendered tag.\n */\nexport function render(tag, element) {\n return patch(tag, element)\n}\n","/**\n * A tag to enable returning sibling elements. This is useful for returning list items to render in a list or table cells to render in a table row.\n * @example\n * <Fragment>\n * <li>A</li>\n * <li>B</li>\n * <li>C</li>\n * </Fragment>\n * Or functionally:\n * Fragment(null, [\n * h('li', {}, 'A'),\n * h('li', {}, 'B'),\n * h('li', {}, 'C')\n * ])\n * @param {Object} [props] When using Fragment as a function, props is the first argument. Provide either null or {} as the value for props.\n * @param {import('./h').VNode[]} [children] The siblings to return with the Fragment. This will be an array of sibling elements.\n * @return {import('./h').VNode[]} An array of virtual nodes.\n */\nexport const Fragment = (props, children) => children\n"],"names":["getKey","node","key","mixin","obj1","obj2","result","i","setProp","element","prop","value","oldValue","isSVG","style","setProperty","toLowerCase","innerHTML","setAttributeNS","setAttribute","removeAttribute","removeElement","parent","removeChild","removeChildren","children","length","childNodes","props","onComponentDidUnmount","call","createNewElement","oldNode","newElement","createElement","toString","document","createTextNode","type","createElementNS","appendChild","insertBefore","patchElement","newNode","nodeValue","oldProps","mounted","onComponentDidUpdate","oldKeyed","newKeyed","oldElements","oldChildren","oldKey","j","newKey","keyedNode","k","patch","parentNode","rAF","window","requestAnimationFrame","cb","setTimeout","isObject","obj","Array","isArray","updateComponent","data","component","render","componentShouldUpdate","__data","state","container","selector","querySelector","vdom","elem","id","__oldNode","vnode","JSON","stringify","componentWillMount","nodeType","error","componentDidMount","componentWillUpdate","componentDidUpdate","eventWhitelist","dataStore","Date","getTime","Component","this","componentWillUnmount","map","removeEventListener","event","update","unmount","_this","nodes","push","pop","tag","elementToHydrate","body","message","onComponentDidMount","nextElementSibling"],"mappings":"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"} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 502a00a..8827809 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,45 +1,13 @@ +// @ts-nocheck const gulp = require('gulp') const browserSync = require('browser-sync') -const rollup = require('rollup') -const babel = require('rollup-plugin-babel') -const uglify = require('rollup-plugin-uglify') -const resolve = require('rollup-plugin-node-resolve') -const commonjs = require('rollup-plugin-commonjs') const gzip = require('gulp-gzip') -gulp.task('build', () => { - return rollup.rollup({ - input: './index.js', - plugins: [ - babel({ - exclude: 'node_modules/**' - }), - resolve({ - jsnext: true, - main: true, - browser: true - }), - commonjs(), - uglify({ - compress: { - collapse_vars: true - } - }) - ] - }) - .then((bundle) => { - return bundle.write({ - format: 'umd', - name: 'composi', - file: './dist/composi.js', - sourcemap: true - }) - }) - .then((bundle) => { - gulp.src('./dist/composi.js') - .pipe(gzip({ extension: 'gzip' })) - .pipe(gulp.dest('./dist')) - }) +// Gzip files: +gulp.task('gzip', function() { + gulp.src('./dist/composi.js') + .pipe(gzip({ extension: 'gzip' })) + .pipe(gulp.dest('./dist')) }) // Setup tests: @@ -54,5 +22,3 @@ gulp.task('test', function() { } }).reload }) - -gulp.task('default', ['build']) diff --git a/lib/component.js b/lib/component.js index 0b20967..f91db44 100644 --- a/lib/component.js +++ b/lib/component.js @@ -4,13 +4,13 @@ import { updateComponent } from './utils/componentHelpers/updateComponent' import { unmountComponent } from './utils/componentHelpers/unmountComponent' /** - * @description This is a numeric value derived from the Date object used as a key to create a pseudo-private property in the Component class for holding state. + * This is a numeric value derived from the Date object used as a key to create a pseudo-private property in the Component class for holding state. * @type {number} dataStore A numeric value to use as pseudo-private key to store the component's state. */ const dataStore = new Date().getTime() /** - * @description Component can be instantiated with the new keyword, or extended to create a custom version of the class. + * Component can be instantiated with the new keyword, or extended to create a custom version of the class. * @class Class to create a component. * @example New instance of Component class: * const title = new Component({ @@ -38,8 +38,7 @@ const dataStore = new Date().getTime() */ export class Component { /** - * @constructor - * @description Constructor for Component class. + * Constructor for Component class. * @property {state} [props.state] The state object of the component. This can be of type boolean, string, number, object or array. * @property {string} selector A CSS selector describing the DOM container in which to render the component. * @property {HTMLElement} container The DOM node in which the component is rendered. @@ -107,35 +106,35 @@ export class Component { if (props.componentWillMount) /** * @property {() => void} componentWillMount A method to execute before the component mounts. The callback gets a reference to the component instance as its argument. - * @returns {void} undefined + * @return {void} undefined */ this.componentWillMount = props.componentWillMount if (props.componentDidMount) /** * @property {() => void} componentDidMount A method to execute after the component mounts. The callback gets a reference to the component instance as its argument. - * @returns {void} undefined + * @return {void} undefined */ this.componentDidMount = props.componentDidMount if (props.componentWillUpdate) /** * @property {() => void} componentWillUpdate A method to execute before the component updates. The callback gets a reference to the component instance as its argument. - * @returns {void} undefined + * @return {void} undefined */ this.componentWillUpdate = props.componentWillUpdate if (props.componentDidUpdate) /** * @property {() => void} componentDidUpdate -A method to execute after the component updates. The callback gets a reference to the component instance as its argument. - * @returns {void} undefined + * @return {void} undefined */ this.componentDidUpdate = props.componentDidUpdate if (props.componentWillUnmount) /** * @property {() => void} componentWillUnmount A method to execute before the component unmounts. The callback gets a reference to the component instance as its argument. - * @returns {void} undefined + * @return {void} undefined */ this.componentWillUnmount = props.componentWillUnmount } @@ -143,7 +142,7 @@ export class Component { /** * @method A method to execute before the component mounts. * @param {() => void} [cb] A callback to execute. - * @returns {void} undefined + * @return {void} undefined */ componentWillMount(cb) { if (cb && typeof cb === 'function') { @@ -154,7 +153,7 @@ export class Component { /** * @method A method to execute after the component mounts. * @param {() => void} [cb] A callback to execute. - * @returns {void} undefined + * @return {void} undefined */ componentDidMount(cb) { if (cb && typeof cb === 'function') { @@ -165,7 +164,7 @@ export class Component { /** * @method A method to execute before the component updates. * @param {() => void} [cb] A callback to execute. - * @returns {void} undefined + * @return {void} undefined */ componentWillUpdate(cb) { if (cb && typeof cb === 'function') { @@ -176,7 +175,7 @@ export class Component { /** * @method A method to execute after the component updates. * @param {() => void} [cb] A callback to execute. - * @returns {void} undefined + * @return {void} undefined */ componentDidUpdate(cb) { if (cb && typeof cb === 'function') { @@ -187,7 +186,7 @@ export class Component { /** * @method A method to execute after the component updates. * @param {() => void} [cb] A callback to execute. - * @returns {void} undefined + * @return {void} undefined */ componentWillUnmount(cb) { if (cb && typeof cb === 'function') { @@ -206,7 +205,7 @@ export class Component { /** * @method This is getter to access the component's state using the pseudo-private key dataStore. - * @returns {boolean | number | string | Object | any[]} The component's state + * @return {boolean | number | string | Object | any[]} The component's state */ get state() { return this[dataStore] @@ -215,7 +214,7 @@ export class Component { /** * @method This is a setter to define the component's state. It uses the dataStore object as a pseudo-private key. It uses requestAnimationFrame to throttle component updates to avoid layout thrashing. * @param {string | number | boolean | Object | any[]} data Data to set as component state. - * @returns {void} undefined + * @return {void} undefined */ set state(data) { this[dataStore] = data @@ -231,7 +230,7 @@ export class Component { * this.setState([1,2,3]) * this.setState(prevState => prevState + 1) * @param {string | number | boolean | Object | any[] | Function} data The data to set. If a callback is passed as the argument to execute, it gets passed the previous state as its argument. You need to make sure the callback returns the final state or the component will not update. - * @returns {void} undefined + * @return {void} undefined */ setState(data) { handleSetState(data, this) @@ -242,7 +241,7 @@ export class Component { * If data is passed as argument, it will be used. * Otherwise state will be used. * @param {boolean | number | string | Object | any[]} [data] By default, data will be the component's current state, otherwise, if data is provided as an argument, that will be used, overriding the state. - * @returns {void} undefined + * @return {void} undefined */ update(data) { updateComponent(data, this) @@ -253,7 +252,7 @@ export class Component { * First unbind events. * Then remove component element from DOM. * Also null out component properties. - * @returns {void} undefined + * @return {void} undefined */ unmount() { unmountComponent(this) diff --git a/lib/fragment.js b/lib/fragment.js index 8e69daa..2f8cc49 100644 --- a/lib/fragment.js +++ b/lib/fragment.js @@ -1,5 +1,5 @@ /** - * @description A tag to enable returning sibling elements. This is useful for returning list items to render in a list or table cells to render in a table row. + * A tag to enable returning sibling elements. This is useful for returning list items to render in a list or table cells to render in a table row. * @example * <Fragment> * <li>A</li> @@ -14,6 +14,6 @@ * ]) * @param {Object} [props] When using Fragment as a function, props is the first argument. Provide either null or {} as the value for props. * @param {import('./h').VNode[]} [children] The siblings to return with the Fragment. This will be an array of sibling elements. - * @returns {import('./h').VNode[]} An array of virtual nodes. + * @return {import('./h').VNode[]} An array of virtual nodes. */ export const Fragment = (props, children) => children diff --git a/lib/h.js b/lib/h.js index a056319..882b571 100755 --- a/lib/h.js +++ b/lib/h.js @@ -1,17 +1,19 @@ -// import {vnode} from './utils/vnode' +/** + * @typedef {Object.<string, any>} Props + */ /** * @typedef {Object} VNode; * @property {string | Function} VNode.type; + * @property {Props} VNode.props; * @property {any[]} VNode.children; * @property {string | number | null} VNode.key; - * @property {Object.<string, any> } VNode.props; */ /** - * @description Hyperscript function. Enables definition of HTML/SVG using functions. + * Hyperscript function. Enables definition of HTML/SVG using functions. * @param {string | Function} type A tag name or function. * @param {Object} [props] An Object literal of key-value pairs. * @param {any[]} children An array of strings or other arrays. - * @returns {VNode} VNode An object literal of type, props and children. + * @return {VNode} VNode An object literal of type, props and children. * * @example Virtual node with string as content: * const title = h('h1', {class: 'main-title'}, 'This is the Titel!') diff --git a/lib/mount.js b/lib/mount.js index 0783b9f..ba5f553 100644 --- a/lib/mount.js +++ b/lib/mount.js @@ -2,7 +2,7 @@ import { patch } from './patch' import { FragmentError } from './utils/fragmentError' /** - * @description A function to create and inject a virtual node into the document. The node will be appended to the container. The first argument can be either a JSX tag or an h function. After mounting, use the render function and the element returned by mount to udate the DOM. + * A function to create and inject a virtual node into the document. The node will be appended to the container. The first argument can be either a JSX tag or an h function. After mounting, use the render function and the element returned by mount to udate the DOM. * @example Insert Title tag into section: * const title = mount(<Title message='Hello World!'/>, 'section'). * // Update the node with new prop value and reference to DOM from mount: @@ -10,7 +10,7 @@ import { FragmentError } from './utils/fragmentError' * @param {Object | Function} tag A JSX tag or hyperscript function to render. * @param {Node | string} [container] The element into which the tag will be rendered. * @param {HTMLElement} [elementToHydrate] A server-rendered element to hydrate during initial load. - * @returns {Node} The base element of the rendered tag. + * @return {Node} The base element of the rendered tag. */ export const mount = (tag, container, elementToHydrate) => { container = typeof container === 'string' && document.querySelector(container) @@ -20,8 +20,8 @@ export const mount = (tag, container, elementToHydrate) => { if (tag.props && tag.props.onComponentDidMount) { tag.props.onComponentDidMount.call(tag.props.onComponentDidMount, element) } - // @ts-ignore - element.mounted = true + + element['mounted'] = true if (elementToHydrate) { if (typeof elementToHydrate === 'string') { elementToHydrate = document.querySelector(elementToHydrate) diff --git a/lib/patch.js b/lib/patch.js index 9bc1b3e..bbdfdd0 100755 --- a/lib/patch.js +++ b/lib/patch.js @@ -1,20 +1,19 @@ import { patchElement } from './utils/patchElement' /** - * @description A function to patch a virtual node against a DOM element, updating it in the most efficient manner possible. + * A function to patch a virtual node against a DOM element, updating it in the most efficient manner possible. * @param {() => import('./h').VNode} node A function that returns a virtual node. This may be a JSX tag, which gets converted into a function, or a hyperscript function. * @param {Node} [element] The element to patch. - * @returns {Node} The updated element. + * @return {Node} The updated element. */ export function patch(node, element) { if (element) { - // @ts-ignore - patchElement(element.parentNode, element, element && element.vnode, node) + patchElement(element.parentNode, element, element && element['vnode'], node) } else { element = patchElement(null, null, null, node) } - // @ts-ignore - element.vnode = node + + element['vnode'] = node return element } diff --git a/lib/render.js b/lib/render.js index 02ddf1b..665f2c2 100644 --- a/lib/render.js +++ b/lib/render.js @@ -1,14 +1,14 @@ import { patch } from './patch' /** - * @description A function to update a functional component already mounted in the DOM. The first argument can be either a JSX tag or an h function. + * A function to update a functional component already mounted in the DOM. The first argument can be either a JSX tag or an h function. * @example Update Title tag into section: * const element = mount(<Title message='Hello World!'/>, 'section') * // Pass the captured element to the render function: * render(<Title message='Hello Everyone!'/>, 'header') * @param {() => import('./h').VNode} tag A JSX tag or hyperscript function to render. * @param {Node} [element] The element in the DOM which will be updated. - * @returns {Node} The base element of the rendered tag. + * @return {Node} The base element of the rendered tag. */ export function render(tag, element) { return patch(tag, element) diff --git a/lib/utils/componentHelpers/eventWhitelist.js b/lib/utils/componentHelpers/eventWhitelist.js index d93f645..ba330e1 100644 --- a/lib/utils/componentHelpers/eventWhitelist.js +++ b/lib/utils/componentHelpers/eventWhitelist.js @@ -1,5 +1,5 @@ /** - * @description Array of events to remove when a component is unmounted. + * Array of events to remove when a component is unmounted. * @type {string[]} eventWhitelist */ export const eventWhitelist = [ diff --git a/lib/utils/componentHelpers/handleSetState.js b/lib/utils/componentHelpers/handleSetState.js index 8df1835..8aec338 100644 --- a/lib/utils/componentHelpers/handleSetState.js +++ b/lib/utils/componentHelpers/handleSetState.js @@ -2,9 +2,10 @@ import { mixin } from '../mixin' import { isObject } from '../componentHelpers/isObject' /** - * @function A helper function for the Component class. This sets state on the class component provided. + * A helper function for the Component class. This sets state on the class component provided. * @param {*} data Data to use as state. * @param {import('../../component').Component} component A reference to the component to use. + * @return {void} undefined */ export function handleSetState(data, component) { if (typeof data === 'function') { diff --git a/lib/utils/componentHelpers/isObject.js b/lib/utils/componentHelpers/isObject.js index c0e3397..492c4e1 100644 --- a/lib/utils/componentHelpers/isObject.js +++ b/lib/utils/componentHelpers/isObject.js @@ -1,7 +1,7 @@ /** - * @description A function to test where something is an object literal or not. Used by Component setState. + * A function to test where something is an object literal or not. Used by Component setState. * @param {Object.<string, any>} obj An object literal to test. - * @returns boolean + * @return {boolean} boolean */ export function isObject(obj) { if (Array.isArray(obj)) return false diff --git a/lib/utils/componentHelpers/isSameNode.js b/lib/utils/componentHelpers/isSameNode.js index c3c8132..35f9936 100644 --- a/lib/utils/componentHelpers/isSameNode.js +++ b/lib/utils/componentHelpers/isSameNode.js @@ -1,8 +1,9 @@ /** - * @description A function to test whether the data provided for updating a component creates a new virtual node or not. + * A function to test whether the data provided for updating a component creates a new virtual node or not. * @param {import('../../h').VNode} oldNode The previous virtual node of a component. * @param {*} data Data to be used when rendering a new virtual node for a component. * @param {import('../../component').Component} component A reference to the component being used. + * @return {boolean} boolean */ export function isSameNode(oldNode, data, component) { if ( diff --git a/lib/utils/componentHelpers/unmountComponent.js b/lib/utils/componentHelpers/unmountComponent.js index efa164d..40ac083 100644 --- a/lib/utils/componentHelpers/unmountComponent.js +++ b/lib/utils/componentHelpers/unmountComponent.js @@ -1,8 +1,9 @@ import { eventWhitelist } from './eventWhitelist' /** - * @description This function will unmount the provided component. Doing so it unregisters a whitelist of events, deletes the base element of the component from the DOM, and sets the component instance properties to null. + * This function will unmount the provided component. Doing so it unregisters a whitelist of events, deletes the base element of the component from the DOM, and sets the component instance properties to null. * @param {import('../../component').Component} component + * @return {void} undefined */ export function unmountComponent(component) { if (!component.element) return diff --git a/lib/utils/componentHelpers/updateComponent.js b/lib/utils/componentHelpers/updateComponent.js index 0a42051..8223cf1 100644 --- a/lib/utils/componentHelpers/updateComponent.js +++ b/lib/utils/componentHelpers/updateComponent.js @@ -2,9 +2,10 @@ import { isSameNode } from './isSameNode' import { patch } from '../../patch' /** - * @description This function updates an already rendered component. In doing so it checks to see if user provided data as an argument to this function. If data was provided, it uses that to render the component. Otherwise it checks if the component has state. If true, the function uses that to render the component. If no data was provided and the component is stateless, nothing will happen. + * This function updates an already rendered component. In doing so it checks to see if user provided data as an argument to this function. If data was provided, it uses that to render the component. Otherwise it checks if the component has state. If true, the function uses that to render the component. If no data was provided and the component is stateless, nothing will happen. * @param {boolean | number | string | Object.<string, any> | any[]} data * @param {import('../../component').Component} component + * @return {void} undefined */ export function updateComponent(data, component) { if (!component.render) return diff --git a/lib/utils/fragmentError.js b/lib/utils/fragmentError.js index e5bba57..df619e9 100644 --- a/lib/utils/fragmentError.js +++ b/lib/utils/fragmentError.js @@ -1,5 +1,6 @@ /** * Class to throw error message when attempting to insert Fragement tag directly into DOM. + * @return {string} message */ export class FragmentError { constructor() { diff --git a/lib/utils/mixin.js b/lib/utils/mixin.js index 719ae4b..b7e4332 100644 --- a/lib/utils/mixin.js +++ b/lib/utils/mixin.js @@ -1,8 +1,8 @@ /** - * @description A function to merge two objects together. The properties of the second object will overwrite any matching properties in the first object. + * A function to merge two objects together. The properties of the second object will overwrite any matching properties in the first object. * @param {Object.<string, any>} obj1 The first object to merge. * @param {Object.<string, any>} obj2 The second object to merge. - * @returns {Object.<string, any>} Returns a new object of the second object merged with the first. + * @return {Object.<string, any>} Returns a new object of the second object merged with the first. */ export function mixin(obj1, obj2) { const result = {} diff --git a/lib/utils/patchElement.js b/lib/utils/patchElement.js index 2cfb70c..0ebf7c3 100755 --- a/lib/utils/patchElement.js +++ b/lib/utils/patchElement.js @@ -7,13 +7,13 @@ import { trackOldElements } from './patchElementHelpers/trackOldElements' import { removeOldKeyedElements } from './patchElementHelpers/removeOldKeyedElements' /** - * @description A function to diff and patch a DOM node with a virtual node. + * A function to diff and patch a DOM node with a virtual node. * @param {Node} parent The parent node of the elment being patched. * @param {Node} element The element being patched. - * @param {Object} oldNode A virtual dom newNode from the previous patch. + * @param {Object} oldNode A virtual dom node from the previous patch. * @param {Object} newNode The current virtual dom node. * @param {boolean} [isSVG] Whether we are dealing with an SVG element or not. - * @returns {Node} element The patched element. + * @return {Node} element The patched element. */ export function patchElement(parent, element, oldNode, newNode, isSVG) { // Short circuit patch if VNodes are identical diff --git a/lib/utils/patchElementHelpers/createElement.js b/lib/utils/patchElementHelpers/createElement.js index 21839a2..ab6a5c2 100755 --- a/lib/utils/patchElementHelpers/createElement.js +++ b/lib/utils/patchElementHelpers/createElement.js @@ -1,10 +1,10 @@ import { setProp } from './setProp' /** - * @description Function to convert hyperscript/JSX into DOM nodes. + * Function to convert hyperscript/JSX into DOM nodes. * @param {string | number | Object} node A node to create. This may be a hyperscript function or a JSX tag which gets converted to hyperscript during transpilation. * @param {boolean} [isSVG] Whether the node is SVG or not. - * @returns {Node} An element created from a virtual dom object. + * @return {Node} An element created from a virtual dom object. */ export function createElement(node, isSVG) { let element diff --git a/lib/utils/patchElementHelpers/createNewElement.js b/lib/utils/patchElementHelpers/createNewElement.js index 2c698ec..44bb55c 100644 --- a/lib/utils/patchElementHelpers/createNewElement.js +++ b/lib/utils/patchElementHelpers/createNewElement.js @@ -2,13 +2,13 @@ import { createElement } from '../patchElementHelpers/createElement' import { removeElement} from '../patchElementHelpers/removeElement' /** - * @description When oldNode does not exist or node.type is different, create a new element. + * When oldNode does not exist or node.type is different, create a new element. * @param {Node} node * @param {boolean} isSVG * @param {Node} parent * @param {Node} element * @param {Node} oldNode - * @returns {Node} Node + * @return {Node} Node */ export function createNewElement(node, isSVG, parent, element, oldNode) { const newElement = createElement(node, isSVG) diff --git a/lib/utils/patchElementHelpers/getKey.js b/lib/utils/patchElementHelpers/getKey.js index a31c28a..fc48429 100755 --- a/lib/utils/patchElementHelpers/getKey.js +++ b/lib/utils/patchElementHelpers/getKey.js @@ -1,6 +1,6 @@ /** - * @description Function to get a node's key. - * @param {Object} node A virtual node. - * @returns {string | number | null} key. + * Function to get a node's key. + * @param {import('../../h').VNode} node A virtual node. + * @return {string | number | null} key. */ export const getKey = node => (node ? node.key : null) diff --git a/lib/utils/patchElementHelpers/removeChildren.js b/lib/utils/patchElementHelpers/removeChildren.js index f52dbfb..7e06704 100755 --- a/lib/utils/patchElementHelpers/removeChildren.js +++ b/lib/utils/patchElementHelpers/removeChildren.js @@ -1,8 +1,8 @@ /** - * @description A function to remove the children of a node. + * A function to remove the children of a node. * @param {Node} element The parent of the node whose children will be removed. * @param {Node} node The node whose children will be removed. - * @returns {Node} element The parent of the removed nodes. + * @return {Node} element The parent of the removed nodes. */ export function removeChildren(element, node) { const props = node['props'] diff --git a/lib/utils/patchElementHelpers/removeElement.js b/lib/utils/patchElementHelpers/removeElement.js index f53c180..e9568ed 100755 --- a/lib/utils/patchElementHelpers/removeElement.js +++ b/lib/utils/patchElementHelpers/removeElement.js @@ -1,18 +1,17 @@ import { removeChildren } from './removeChildren' /** - * @description Function to remove element from DOM. + * Function to remove element from DOM. * @param {Node} parent The containing element in which the component resides. * @param {Node} element The parent of the element to remove. - * @namespace {Node} node The element to remove. - * @property {Object.<string, any>} node.props - * @returns {void} undefined + * @param {Node} node The element to remove. + * @return {void} undefined */ export const removeElement = (parent, element, node) => { parent.removeChild(removeChildren(element, node)) - if (node && node.props && node.props.onComponentDidUnmount) { - node.props.onComponentDidUnmount.call( - node.props.onComponentDidUnmount, + if (node && /** @type {Object.<string, any>}*/(node).props && /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount) { + /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount.call( + /** @type {Object.<string, any>}*/(node).props.onComponentDidUnmount, parent ) } diff --git a/lib/utils/patchElementHelpers/removeOldChild.js b/lib/utils/patchElementHelpers/removeOldChild.js index f5d15e1..efde484 100644 --- a/lib/utils/patchElementHelpers/removeOldChild.js +++ b/lib/utils/patchElementHelpers/removeOldChild.js @@ -7,7 +7,7 @@ import {getKey} from '../patchElementHelpers/getKey' * @param {any[]} oldChildren * @param {Node[]} oldElements * @param {number} i - * @returns {void} undefined + * @return {void} undefined */ export function removeOldChild(element, oldChildren, oldElements, i) { while (i < oldChildren.length) { diff --git a/lib/utils/patchElementHelpers/removeOldKeyedElements.js b/lib/utils/patchElementHelpers/removeOldKeyedElements.js index 202c28b..f7ca6e3 100644 --- a/lib/utils/patchElementHelpers/removeOldKeyedElements.js +++ b/lib/utils/patchElementHelpers/removeOldKeyedElements.js @@ -1,11 +1,11 @@ import { removeElement } from '../patchElementHelpers/removeElement' /** - * @description Remove old keyed elements. + * Remove old keyed elements. * @param {Node} element * @param {Object.<string, any>} oldKeyed * @param {Object.<string, any>} newKeyed - * @returns {void} undefined + * @return {void} undefined */ export function removeOldKeyedElements(element, oldKeyed, newKeyed) { for (let k in oldKeyed) { diff --git a/lib/utils/patchElementHelpers/setProp.js b/lib/utils/patchElementHelpers/setProp.js index 746bd61..2372fd3 100755 --- a/lib/utils/patchElementHelpers/setProp.js +++ b/lib/utils/patchElementHelpers/setProp.js @@ -4,13 +4,13 @@ import { handleDangerouslySetInnerHTML } from './setPropHelpers/handleDangerousl import { handleXlinkHref } from './setPropHelpers/handleXlinkHref' /** - * @description Function to set properties and attributes on element. + * Function to set properties and attributes on element. * @param {Node} element The element to set props on. * @param {string} prop The property/attribute. * @param {*} value The value of the prop. * @param {string | number | boolean} oldValue The original value of the prop. * @param {boolean} isSVG Whether this is SVG or not - * @returns {void} undefined + * @return {void} undefined */ export function setProp(element, prop, value, oldValue, isSVG) { // Do not add these as node attributes: diff --git a/lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js b/lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js index f8e38a4..ae07da7 100644 --- a/lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js +++ b/lib/utils/patchElementHelpers/setPropHelpers/handleClassName.js @@ -1,7 +1,7 @@ /** - * @description Handle converting 'className' to 'class'. + * Handle converting 'className' to 'class'. * @param {string} prop - * @returns {string} string + * @return {string} string */ export function handleClassName(prop) { if (prop === 'classname') { diff --git a/lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js b/lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js index 84e45e9..b0b6ff6 100644 --- a/lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js +++ b/lib/utils/patchElementHelpers/setPropHelpers/handleDangerouslySetInnerHTML.js @@ -1,9 +1,9 @@ /** - * @description Enable setting innerHTML as a prop. + * Enable setting innerHTML as a prop. * @param {Node} element * @param {string} prop * @param {*} value - * @returns {void} undefined + * @return {void} undefined */ export function handleDangerouslySetInnerHTML(element, prop, value) { if (prop === 'dangerouslysetinnerhtml') { diff --git a/lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js b/lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js index 4207cdd..a72ce69 100644 --- a/lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js +++ b/lib/utils/patchElementHelpers/setPropHelpers/handleStyles.js @@ -1,12 +1,12 @@ import { mixin } from '../../mixin' /** - * @description Handle styles defined as object literals. + * Handle styles defined as object literals. * @param {Node} element * @param {string} prop * @param {any} value * @param {any} oldValue - * @returns {void} undefined + * @return {void} undefined */ export function handleStyles(element, prop, value, oldValue) { for (let i in mixin(oldValue, value)) { diff --git a/lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js b/lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js index da77e4d..f3ab0ef 100644 --- a/lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js +++ b/lib/utils/patchElementHelpers/setPropHelpers/handleXlinkHref.js @@ -1,9 +1,9 @@ /** - * @description Enable setting xlink href value for browser that only support SVG 1.0. + * Enable setting xlink href value for browser that only support SVG 1.0. * @param {Node} element * @param {string} prop * @param {*} value - * @returns {void} undefined + * @return {void} undefined */ export function handleXlinkHref(element, prop, value) { /** @type {Element} */ (element).setAttributeNS('http://www.w3.org/1999/xlink', 'href', value); diff --git a/lib/utils/patchElementHelpers/trackOldElements.js b/lib/utils/patchElementHelpers/trackOldElements.js index 314c2aa..74384e7 100644 --- a/lib/utils/patchElementHelpers/trackOldElements.js +++ b/lib/utils/patchElementHelpers/trackOldElements.js @@ -1,12 +1,12 @@ import { getKey } from '../patchElementHelpers/getKey' /** - * @description Update values for old element and key. + * Update values for old element and key. * @param {Node} element * @param {Node[]} oldElements - * @param {Node[]} oldChildren + * @param {import('../../h').VNode[]} oldChildren * @param {Object.<string, any>} oldKeyed - * @returns {void} undefined + * @return {void} undefined */ export function trackOldElements(element, oldElements, oldChildren, oldKeyed) { for (let i = 0; i < oldChildren.length; i++) { diff --git a/lib/utils/patchElementHelpers/updateElement.js b/lib/utils/patchElementHelpers/updateElement.js index 2133c02..b4d98fb 100755 --- a/lib/utils/patchElementHelpers/updateElement.js +++ b/lib/utils/patchElementHelpers/updateElement.js @@ -8,7 +8,7 @@ import { setProp } from '../patchElementHelpers/setProp' * @param {Object.<string, any>} props New props generated by the virtual dom. * @param {boolean} isSVG Whether we are dealing with SVG or not. * @function {function(element: Node, oldProps: VNode, props: VNode,isSVG: boolean): void} - * @returns {void} undefined + * @return {void} undefined */ export function updateElement(element, oldProps, props, isSVG) { for (let prop in mixin(oldProps, props)) { @@ -19,9 +19,9 @@ export function updateElement(element, oldProps, props, isSVG) { setProp(element, prop, props[prop], oldProps[prop], isSVG) } } - // @ts-ignore + // Handle lifecycle hook: - if (element.mounted && props && props.onComponentDidUpdate) { + if (/** @type {Object.<string, any>}*/(element).mounted && props && props.onComponentDidUpdate) { props.onComponentDidUpdate.call( props.onComponentDidUpdate, oldProps, diff --git a/lib/utils/rAF.js b/lib/utils/rAF.js index ef5b883..af6b23e 100644 --- a/lib/utils/rAF.js +++ b/lib/utils/rAF.js @@ -1,7 +1,7 @@ /** - * @description A cross-browser normalization/polyfill for requestAnimationFrame. + * A cross-browser normalization/polyfill for requestAnimationFrame. * @param {Function} cb A callback to execute. - * @returns {number} The request id, that uniquely identifies the entry in the browser's callback list. + * @return {number} The request id, that uniquely identifies the entry in the browser's callback list. */ export const rAF = (window && window.requestAnimationFrame) || diff --git a/package-lock.json b/package-lock.json index a96112e..a66e9da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "composi", - "version": "2.4.11", + "version": "2.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -5598,5811 +5598,6 @@ "remove-trailing-separator": "1.1.0" } }, - "npm": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.1.0.tgz", - "integrity": "sha512-e38cCtJ0lEjLXXpc4twEfj8Xw5hDLolc2Py87ueWnUhJfZ8GA/5RVIeD+XbSr1+aVRGsRsdtLdzUNO63PvQJ1w==", - "requires": { - "JSONStream": "1.3.2", - "abbrev": "1.1.1", - "ansi-regex": "3.0.0", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "aproba": "1.2.0", - "archy": "1.0.0", - "bin-links": "1.1.2", - "bluebird": "3.5.1", - "byte-size": "4.0.3", - "cacache": "11.0.2", - "call-limit": "1.1.0", - "chownr": "1.0.1", - "cli-columns": "3.1.2", - "cli-table2": "0.2.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.11", - "debuglog": "1.0.1", - "detect-indent": "5.0.0", - "detect-newline": "2.1.0", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "figgy-pudding": "3.1.0", - "find-npm-prefix": "1.0.2", - "fs-vacuum": "1.2.10", - "fs-write-stream-atomic": "1.0.10", - "gentle-fs": "2.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "has-unicode": "2.0.1", - "hosted-git-info": "2.6.0", - "iferr": "1.0.0", - "imurmurhash": "0.1.4", - "inflight": "1.0.6", - "inherits": "2.0.3", - "ini": "1.3.5", - "init-package-json": "1.10.3", - "is-cidr": "2.0.5", - "json-parse-better-errors": "1.0.2", - "lazy-property": "1.0.0", - "libcipm": "1.6.2", - "libnpmhook": "4.0.1", - "libnpx": "10.2.0", - "lock-verify": "2.0.2", - "lockfile": "1.0.4", - "lodash._baseindexof": "3.1.0", - "lodash._baseuniq": "4.6.0", - "lodash._bindcallback": "3.0.1", - "lodash._cacheindexof": "3.0.2", - "lodash._createcache": "3.1.2", - "lodash._getnative": "3.9.1", - "lodash.clonedeep": "4.5.0", - "lodash.restparam": "3.6.1", - "lodash.union": "4.6.0", - "lodash.uniq": "4.5.0", - "lodash.without": "4.4.0", - "lru-cache": "4.1.3", - "meant": "1.0.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "node-gyp": "3.6.2", - "nopt": "4.0.1", - "normalize-package-data": "2.4.0", - "npm-audit-report": "1.2.1", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "3.0.0", - "npm-lifecycle": "2.0.3", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.10", - "npm-pick-manifest": "2.1.0", - "npm-profile": "3.0.1", - "npm-registry-client": "8.5.1", - "npm-registry-fetch": "1.1.0", - "npm-user-validate": "1.0.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "opener": "1.4.3", - "osenv": "0.1.5", - "pacote": "8.1.5", - "path-is-inside": "1.0.2", - "promise-inflight": "1.0.1", - "qrcode-terminal": "0.12.0", - "query-string": "6.1.0", - "qw": "1.0.1", - "read": "1.0.7", - "read-cmd-shim": "1.0.1", - "read-installed": "4.0.3", - "read-package-json": "2.0.13", - "read-package-tree": "5.2.1", - "readable-stream": "2.3.6", - "readdir-scoped-modules": "1.0.2", - "request": "2.86.0", - "retry": "0.12.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.1", - "sorted-union-stream": "2.1.3", - "ssri": "6.0.0", - "strip-ansi": "4.0.0", - "tar": "4.4.1", - "text-table": "0.2.0", - "tiny-relative-date": "1.3.0", - "uid-number": "0.0.6", - "umask": "1.1.0", - "unique-filename": "1.1.0", - "unpipe": "1.0.0", - "update-notifier": "2.5.0", - "uuid": "3.2.1", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0", - "which": "1.3.0", - "worker-farm": "1.6.0", - "wrappy": "1.0.2", - "write-file-atomic": "2.3.0" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - }, - "dependencies": { - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - } - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "ansistyles": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "bin-links": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz", - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", - "requires": { - "bluebird": "3.5.1", - "cmd-shim": "2.0.2", - "gentle-fs": "2.0.1", - "graceful-fs": "4.1.11", - "write-file-atomic": "2.3.0" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "byte-size": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz", - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==" - }, - "cacache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.0.2.tgz", - "integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==", - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "figgy-pudding": "3.1.0", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "6.0.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - }, - "dependencies": { - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - } - } - }, - "call-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=" - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" - }, - "cli-columns": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", - "requires": { - "string-width": "2.1.1", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - } - } - }, - "cli-table2": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", - "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", - "requires": { - "colors": "1.1.2", - "lodash": "3.10.1", - "string-width": "1.0.2" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "optional": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - } - } - } - } - }, - "cmd-shim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1" - } - }, - "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "1.0.3" - }, - "dependencies": { - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" - } - } - } - } - } - } - }, - "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" - }, - "dependencies": { - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" - } - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" - }, - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "requires": { - "asap": "2.0.5", - "wrappy": "1.0.2" - }, - "dependencies": { - "asap": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", - "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=" - } - } - }, - "editor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" - }, - "figgy-pudding": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.1.0.tgz", - "integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==" - }, - "find-npm-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" - }, - "fs-vacuum": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "requires": { - "graceful-fs": "4.1.11", - "path-is-inside": "1.0.2", - "rimraf": "2.6.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - } - } - }, - "gentle-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", - "requires": { - "aproba": "1.2.0", - "fs-vacuum": "1.2.10", - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "path-is-inside": "1.0.2", - "read-cmd-shim": "1.0.1", - "slide": "1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - }, - "dependencies": { - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" - }, - "iferr": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.0.tgz", - "integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", - "requires": { - "glob": "7.1.2", - "npm-package-arg": "6.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0" - }, - "dependencies": { - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", - "requires": { - "read": "1.0.7" - } - } - } - }, - "is-cidr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.5.tgz", - "integrity": "sha512-KUGux04sdwBgpr/YREUyuefs4s1Ib4mRmOCIX1KdPnxjUCZMg13BXEp68Uw5IiDl3N4ZZtStDgPu4MWJxNBpKQ==", - "requires": { - "cidr-regex": "2.0.8" - }, - "dependencies": { - "cidr-regex": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.8.tgz", - "integrity": "sha512-3r0E5P6Oeg4SCvEERX7W5fPkPz8nKWwGzU6RJ/VvROOsqiq5g6sf43c/g+sUpA29Htc7R0SG15P/Scr5lfap4g==", - "requires": { - "ip-regex": "2.1.0" - }, - "dependencies": { - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - } - } - } - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "lazy-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=" - }, - "libcipm": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-1.6.2.tgz", - "integrity": "sha512-3Dy9bcOfe/+F9ZVFwjjSVtYXasAoGim1IYX3B6gfOe1hFFOcXLHZcXJPRNgUSVpu9WxshQnFs2n6L0zVPEJKCQ==", - "requires": { - "bin-links": "1.1.2", - "bluebird": "3.5.1", - "find-npm-prefix": "1.0.2", - "graceful-fs": "4.1.11", - "lock-verify": "2.0.2", - "npm-lifecycle": "2.0.3", - "npm-logical-tree": "1.2.1", - "npm-package-arg": "6.1.0", - "pacote": "7.6.1", - "protoduck": "5.0.0", - "read-package-json": "2.0.13", - "rimraf": "2.6.2", - "worker-farm": "1.6.0" - }, - "dependencies": { - "npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" - }, - "pacote": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-7.6.1.tgz", - "integrity": "sha512-2kRIsHxjuYC1KRUIK80AFIXKWy0IgtFj76nKcaunozKAOSlfT+DFh3EfeaaKvNHCWixgi0G0rLg11lJeyEnp/Q==", - "requires": { - "bluebird": "3.5.1", - "cacache": "10.0.4", - "get-stream": "3.0.0", - "glob": "7.1.2", - "lru-cache": "4.1.3", - "make-fetch-happen": "2.6.0", - "minimatch": "3.0.4", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.10", - "npm-pick-manifest": "2.1.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "ssri": "5.3.0", - "tar": "4.4.1", - "unique-filename": "1.1.0", - "which": "1.3.0" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "make-fetch-happen": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz", - "integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==", - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "1.3.1", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - } - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "mississippi": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz", - "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==", - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "1.0.3", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.21" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "requires": { - "safer-buffer": "2.1.2" - }, - "dependencies": { - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - } - } - } - } - } - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" - } - } - } - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - } - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "protoduck": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", - "requires": { - "genfun": "4.0.1" - }, - "dependencies": { - "genfun": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" - } - } - } - } - }, - "libnpmhook": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", - "requires": { - "figgy-pudding": "3.1.0", - "npm-registry-fetch": "3.1.1" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", - "requires": { - "bluebird": "3.5.1", - "figgy-pudding": "3.1.0", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" - }, - "dependencies": { - "make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "11.0.2", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.0", - "ssri": "6.0.0" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - } - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.21" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "requires": { - "safer-buffer": "2.1.2" - }, - "dependencies": { - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - } - } - } - } - } - } - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - } - } - }, - "socks-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.0.tgz", - "integrity": "sha512-M0x7LYYRzKOEn5NchNPkUeVQ98hvUgwKI6URgnzB9L1Xwe1PBzX8pnThw5JYumzdLWW4qiY1XtBH7iFN21859A==", - "requires": { - "agent-base": "4.1.2", - "socks": "2.1.6" - }, - "dependencies": { - "agent-base": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.2.tgz", - "integrity": "sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "socks": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.1.6.tgz", - "integrity": "sha512-cHaaOUfK1FIyUv5T9Tg5y7apRqluAjgCzCeOg9Eg3E4ooGJocGgQ+BEHp5o4ev2DBjkmroNjWl1njijx0epv4Q==", - "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "smart-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" - } - } - } - } - } - } - } - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz", - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", - "requires": { - "dotenv": "5.0.1", - "npm-package-arg": "6.1.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "update-notifier": "2.5.0", - "which": "1.3.0", - "y18n": "4.0.0", - "yargs": "11.0.0" - }, - "dependencies": { - "dotenv": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "requires": { - "cliui": "4.0.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", - "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - } - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - } - } - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - }, - "dependencies": { - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.2.0" - }, - "dependencies": { - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "requires": { - "p-try": "1.0.0" - }, - "dependencies": { - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - } - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - }, - "dependencies": { - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - }, - "dependencies": { - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - } - } - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - } - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - }, - "dependencies": { - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - } - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "1.2.0" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - } - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - } - } - } - } - }, - "lock-verify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz", - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", - "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "requires": { - "signal-exit": "3.0.2" - }, - "dependencies": { - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - } - } - }, - "lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=" - }, - "lodash._baseuniq": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", - "requires": { - "lodash._createset": "4.0.3", - "lodash._root": "3.0.1" - }, - "dependencies": { - "lodash._createset": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" - } - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=" - }, - "lodash._createcache": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", - "requires": { - "lodash._getnative": "3.9.1" - } - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "lodash.without": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - }, - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, - "meant": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "1.6.1", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - }, - "dependencies": { - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - } - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "1.2.0" - } - } - } - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.86.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1.1.1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - }, - "dependencies": { - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - } - } - } - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - }, - "dependencies": { - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "1.1.1" - }, - "dependencies": { - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - } - } - } - } - }, - "npm-audit-report": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.2.1.tgz", - "integrity": "sha512-1eh6z0FivYQkLIU5xYcal8ssiGAgn0817u56EcF751HJD0m1PbAxurM/mc9WmAm3vhNZGkExleU/55VN/WRjFw==", - "requires": { - "cli-table2": "0.2.0", - "console-control-strings": "1.1.0" - }, - "dependencies": { - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - } - } - }, - "npm-cache-filename": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=" - }, - "npm-install-checks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", - "requires": { - "semver": "5.5.0" - } - }, - "npm-lifecycle": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.3.tgz", - "integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==", - "requires": { - "byline": "5.0.0", - "graceful-fs": "4.1.11", - "node-gyp": "3.6.2", - "resolve-from": "4.0.0", - "slide": "1.1.6", - "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.0" - }, - "dependencies": { - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } - } - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - }, - "dependencies": { - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - } - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" - } - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", - "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "npm-profile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.1.tgz", - "integrity": "sha512-U/jvnERvBRYgIdHkPURsa8mjLCOiImdA8fw1FzzCF//PKro4w1QANCmXiQex8f/Id1h939lqOiUT+ywKL0AG4Q==", - "requires": { - "aproba": "1.2.0", - "make-fetch-happen": "2.6.0" - }, - "dependencies": { - "make-fetch-happen": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz", - "integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==", - "requires": { - "agentkeepalive": "3.3.0", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "1.3.1", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz", - "integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==", - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - } - } - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - } - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "mississippi": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz", - "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==", - "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.3", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "1.0.3", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.3", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.1", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - } - } - }, - "json-parse-better-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", - "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" - } - } - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - } - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" - } - } - } - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - } - } - }, - "npm-registry-client": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.1.tgz", - "integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==", - "requires": { - "concat-stream": "1.6.1", - "graceful-fs": "4.1.11", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.86.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slide": "1.1.6", - "ssri": "5.3.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz", - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", - "requires": { - "bluebird": "3.5.1", - "figgy-pudding": "2.0.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "3.0.0", - "npm-package-arg": "6.1.0", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "figgy-pudding": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==" - }, - "make-fetch-happen": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - } - } - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - } - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", - "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - } - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.21" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "requires": { - "safer-buffer": "2.1.2" - }, - "dependencies": { - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - } - } - } - } - } - } - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - } - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" - } - } - } - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - } - } - }, - "npm-user-validate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=" - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - }, - "dependencies": { - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - } - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "requires": { - "string-width": "1.0.2" - } - } - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - } - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - }, - "dependencies": { - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - } - } - }, - "pacote": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.5.tgz", - "integrity": "sha512-gf0D3OXSRh9T9spo7sE2tfuyauuPnK1uVz0WPEhLfmuWZ0o6o9jrt3u8VZwCBKZBPGVZnBPXBkUDQd0avo14tQ==", - "requires": { - "bluebird": "3.5.1", - "cacache": "11.0.2", - "get-stream": "3.0.0", - "glob": "7.1.2", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.10", - "npm-pick-manifest": "2.1.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "ssri": "6.0.0", - "tar": "4.4.1", - "unique-filename": "1.1.0", - "which": "1.3.0" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "11.0.2", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.0" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - } - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.23" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "requires": { - "safer-buffer": "2.1.2" - }, - "dependencies": { - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - } - } - } - } - } - } - }, - "socks-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", - "requires": { - "agent-base": "4.2.0", - "socks": "2.2.0" - }, - "dependencies": { - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "4.2.4" - }, - "dependencies": { - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - } - } - } - } - }, - "socks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz", - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", - "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "smart-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" - } - } - } - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "minipass": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } - } - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - } - } - }, - "protoduck": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", - "requires": { - "genfun": "4.0.1" - }, - "dependencies": { - "genfun": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" - } - } - } - } - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "qrcode-terminal": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" - }, - "query-string": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz", - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", - "requires": { - "decode-uri-component": "0.2.0", - "strict-uri-encode": "2.0.0" - }, - "dependencies": { - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" - } - } - }, - "qw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=" - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "0.0.7" - }, - "dependencies": { - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - } - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "read-installed": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", - "requires": { - "debuglog": "1.0.1", - "graceful-fs": "4.1.11", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2", - "semver": "5.5.0", - "slide": "1.1.6", - "util-extend": "1.0.3" - }, - "dependencies": { - "util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" - } - } - }, - "read-package-json": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", - "requires": { - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "json-parse-better-errors": "1.0.1", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" - }, - "dependencies": { - "json-parse-better-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", - "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "read-package-tree": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - } - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.11", - "once": "1.4.0" - } - }, - "request": { - "version": "2.86.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", - "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - }, - "dependencies": { - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - }, - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - } - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - }, - "dependencies": { - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - } - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - }, - "dependencies": { - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - } - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - }, - "dependencies": { - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - } - } - } - } - }, - "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "sha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", - "requires": { - "graceful-fs": "4.1.11", - "readable-stream": "2.3.6" - } - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "sorted-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=" - }, - "sorted-union-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", - "requires": { - "from2": "1.3.0", - "stream-iterate": "1.2.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - } - } - }, - "stream-iterate": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", - "requires": { - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - } - } - } - } - }, - "ssri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz", - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - } - } - }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.1", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - }, - "dependencies": { - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "requires": { - "minipass": "2.3.1" - } - }, - "minipass": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.1.tgz", - "integrity": "sha512-liT0Gjaz7OHXg2qsfefVFfryBE9uAsqVFWQ6wVf4KNMzI2edsrCDjdGDpTxRaykbxhSKHu/SDtRRcMEcCcTQ2g==", - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "requires": { - "minipass": "2.3.1" - } - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "tiny-relative-date": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==" - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" - }, - "umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "requires": { - "unique-slug": "2.0.0" - }, - "dependencies": { - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "requires": { - "imurmurhash": "0.1.4" - } - } - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" - }, - "dependencies": { - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "2.1.1" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "0.7.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - }, - "dependencies": { - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - }, - "dependencies": { - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - } - } - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - } - } - } - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "requires": { - "string-width": "2.1.1" - } - } - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "1.9.1" - }, - "dependencies": { - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "1.1.3" - }, - "dependencies": { - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - } - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "requires": { - "has-flag": "3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - } - } - } - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.2.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "requires": { - "is-obj": "1.0.1" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - } - } - }, - "make-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", - "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", - "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "1.0.0" - }, - "dependencies": { - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - } - } - } - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "requires": { - "ci-info": "1.1.3" - }, - "dependencies": { - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==" - } - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - }, - "dependencies": { - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "requires": { - "ini": "1.3.5" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "1.0.2" - } - } - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "requires": { - "package-json": "4.0.1" - }, - "dependencies": { - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" - }, - "dependencies": { - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" - }, - "dependencies": { - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "1.0.0" - }, - "dependencies": { - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "1.0.4" - }, - "dependencies": { - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - } - } - } - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } - } - } - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "requires": { - "rc": "1.2.7" - }, - "dependencies": { - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } - } - } - } - } - } - } - } - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "requires": { - "semver": "5.5.0" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - } - } - }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - }, - "dependencies": { - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - }, - "dependencies": { - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" - } - } - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - }, - "dependencies": { - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" - } - } - } - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "requires": { - "builtins": "1.0.3" - }, - "dependencies": { - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - } - } - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - }, - "dependencies": { - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - } - } - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "requires": { - "errno": "0.1.7" - }, - "dependencies": { - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "1.0.1" - }, - "dependencies": { - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - } - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - }, - "dependencies": { - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - } - } - } - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -11949,9 +6144,9 @@ "dev": true }, "prettier": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.5.tgz", - "integrity": "sha512-4M90mfvLz6yRf2Dhzd+xPIE6b4xkI8nHMJhsSm9IlfG17g6wujrrm7+H1X8x52tC4cSNm6HmuhCUSNe6Hd5wfw==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", + "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", "dev": true }, "pretty-hrtime": { diff --git a/package.json b/package.json index 92b0f8f..8035921 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,11 @@ { "name": "composi", - "version": "2.4.11", + "version": "2.5.0", "description": "A JavaScript library for creating websites, PWAs and hybrid apps.", "main": "index.js", "scripts": { - "build": "npm run format && npm run lint && gulp", + "bundle": "rollup -c", + "build": "npm run format && npm run lint && npm run bundle && gulp gzip", "test": "gulp test", "prepare": "npm run build", "format": "prettier --no-semi --single-quote --write ./lib/*.js ./lib/utils/*.js", @@ -40,7 +41,6 @@ "homepage": "https://github.com/composor/composi#readme", "dependencies": { "fs-extra": "^5.0.0", - "npm": "^6.1.0", "replace-in-file": "^2.6.4", "yargs": "^11.0.0" }, @@ -55,7 +55,7 @@ "eslint": "^4.19.1", "gulp": "^3.9.1", "gulp-gzip": "^1.4.0", - "prettier": "^1.13.5", + "prettier": "^1.13.7", "rollup": "^0.49.2", "rollup-plugin-babel": "^3.0.2", "rollup-plugin-commonjs": "^8.2.0", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..8b242ae --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,32 @@ +import babel from 'rollup-plugin-babel'; +import commonjs from 'rollup-plugin-commonjs' +import resolve from 'rollup-plugin-node-resolve' +import uglify from 'rollup-plugin-uglify' + +export default { + input: 'index.js', + output: { + file: 'dist/composi.js', + format: 'umd', + name: 'composi', + sourcemap: true, + sourcemapFile: 'dist/composi.js.map' + }, + plugins: + [ + babel({ + exclude: 'node_modules/**' + }), + resolve({ + jsnext: true, + main: true, + browser: true + }), + commonjs(), + uglify({ + compress: { + collapse_vars: true + } + }) + ] +} diff --git a/test/component.html b/test/component.html index 42d8b44..e40629d 100644 --- a/test/component.html +++ b/test/component.html @@ -7,6 +7,8 @@ <title>Document + +